首页 » 互联网 » wifi基本事理_无线收集_地址

wifi基本事理_无线收集_地址

神尊大人 2024-11-07 12:56:04 0

扫一扫用手机浏览

文章目录 [+]

紧张内容:

一、基本概述

wifi基本事理_无线收集_地址 wifi基本事理_无线收集_地址 互联网

二、实践根本

wifi基本事理_无线收集_地址 wifi基本事理_无线收集_地址 互联网
(图片来自网络侵删)

三、一些事理

四、补充

五、其它

一、基本概述

============================

1、有线和无线网络

目前有线网络中最著名的因此太网(Ethenet),但是无线网络WLAN是一个很有前景的发展领域,虽然可能不会完备取代以太网,但是它正拥有越来越多的用户,无线网络中最有前景的是Wifi。
本文先容无线网络干系内容。

无线网络比较有线网络,还是有许多的缺陷的:

()通信双方由于是通过无线进行通信,以是通信之前须要建立连接;而有线网络就直接用线缆连接,不用这个过程了。

()通信双方通信办法是半双工的通信办法;而有线网络可以是全双工。

()通信时在网络层以下出错的概率非常高,以是帧的重传概率很大,须要在网络层之下的协议添加重传的机制(不能只依赖上面TCP/IP的延时等待重传等开销来担保);而有线网络出错概率非常小,无需在网络层有如此繁芜的机制。

()数据是在无线环境下进行的,以是抓包非常随意马虎,存在安全隐患。

()由于收发无线旗子暗记,以是功耗较大,对电池来说是一个磨练。

()相对有线网络吞吐量低,这一点正在逐步改进,802.11n协议可以达到600Mbps的吞吐量。

2、协议

Ethenet和Wifi采取的协议都属于IEEE 802协议集。
个中,Ethenet以802.3协议做为其网络层以下的协议;而Wifi以802.11做为其网络层以下的协议。
无论是有线网络,还是无线网络,其网络层以上的部分,基本一样。

这里紧张关注的是Wifi网络中干系的内容。
Wifi的802.11协议包含许多子部分。
个中按照韶光顺序发展,紧张有:

(1)802.11a,1999年9月制订,事情在5gHZ的频率范围(频段宽度325MHZ),最大传输速率54mbps,但当时不是很盛行,以是利用的不多。

(2)802.11b,1999年9月制订,韶光比802.11a稍晚,事情在2.4g的频率范围(频段宽度83.5MHZ),最大传输速率11mbps。

(3)802.11g,2003年6月制订,事情在2.4gHZ频率范围(频段宽度83.5MHZ),最大传输速率54mbps。

(4)802.11n,2009年才被IEEE批准,在2.4gHZ和5gHZ均可事情,最大的传输速率为600mbps。

这些协议均为无线网络的通信所需的基本协议,最新发展的,一样平常要比最初的有所改进。

其余值得把稳的是,802.11n在MAC层上进行了一些主要的改进,以是导致网络性能有了很大的提升例如:

()由于传输速率在很大的程度上取决于Channel(信道)的ChannelWidth有多宽,而802.11n中采取了一种技能,可以在传输数据的时候将两个信道合并为一个,再进行传输,极大地提高了传输速率(这又称HT-40,high through)。

()802.11n的MIMO(多输入输出)特性,使得两对天线可以在同时同Channel上传输数据,而两者却能够不相互滋扰(采取了OFDM分外的调制技能)

3、术语

讲述之前,我们须要对无线网络中一些常用的术语有所理解。
这里先列出一些,后面描述中涌现的新的术语,将会在描述中阐明。

()LAN:即局域网,是路由和主机组成的内部局域网,一样平常为有线网络。

()WAN:即广域网,是外部一个更大的局域网。

()WLAN(Wireless LAN,即无线局域网):前面我们说过LAN是局域网,实在大多数指的是有线网络中的局域网,无线网络中的局域网,一样平常用WLAN。

()AP(Access point的简称,即访问点,接入点):是一个无线网络中的分外节点,通过这个节点,无线网络中的其它类型节点可以和无线网络外部以及内部进行通信。
这里,AP和无线路由都在一台设备上(即Cisco E3000)。

()Station(事情站):表示连接到无线网络中的设备,这些设备通过AP,可以和内部其它设备或者无线网络外部通信。

()Assosiate:连接。
如果一个Station想要加入到无线网络中,须要和这个无线网络中的AP关联(即Assosiate)。

()SSID:用来标识一个无线网络,后面会详细先容,我们这里只需理解,每个无线网络都有它自己的SSID。

()BSSID:用来标识一个BSS,其格式和MAC地址一样,是48位的地址格式。
一样平常来说,它便是所处的无线接入点的MAC地址。
某种程度来说,它的浸染和SSID类似,但是SSID是网络的名字,是给人看的,BSSID是给机器看的,BSSID类似MAC地址。

()BSS(Basic Service Set):由一组相互通信的事情站组成,是802.11无线网络的基本组件。
紧张有两种类型的IBSS和根本构造型网络。
IBSS又叫ADHOC,组网是临时的,通信办法为Station<->Station,这里不关注这种组网办法;我们关注的根本构造形网络,其通信办法是Station<->AP<->Station,也便是所有无线网络中的设备要想通信,都得经由AP。
在无线网络的根本形网络中,最主要的两类设备:AP和Station。

()DS(Distributed System):即分布式系统。
分布式系统属于802.11逻辑组件,卖力将帧转发至目的地址,802.11并未规定其技能细节,大多数商业产品以桥接引擎合分步式系统媒介共同构成分布式系统。
分步式系统是接入点之间转发帧的骨干网络,一样平常因此太网。
实在,骨干网络并不是分步系统的全部,而是其媒介。
紧张有三点:骨干网(例如以太网)、桥接器(具有有线无线两个网络接口的接入点包含它)、属于骨干网上的接入点所统领的根本性网络的station通信(和外界或者BSS内部的station)必须经由DS、而外部路由只知道station的mac地址,以是也须要通过分布式系统才能知道station的详细位置并且精确送到。
分步式系统中的接入点之间必须相互通报与之关联的事情站的信息,这样全体分步式系统才能知道哪个station和哪个ap关联,担保分步式系统正常事情(即转达给精确的station)。
分步式系统也可以是利用无线媒介(WDS),不一定一定因此太网。
总之,分步式系统骨干网络(例如以太网)做为媒介,连接各个接入点,每个接入点与其内的station可构成BSS,各个接入点中的桥接掌握器有到达骨干网络和其内部BSS无线网的接口(类似两个MAC地址),station通信须要通过分布式系统。

二、实践根本

============================

1、一些参数

()MAC

MAC(即Medium/MediaAccess Control, 介质访问掌握),是数据链路层的一部分。
MAC地址是烧录在NetworkInterfaceCard(即网卡,简称NIC)里的,它也叫硬件地址,是由48位(即bit,一字节为8位,即1byte=8bits)16进制的数字组成。
个中0-23位叫做组织唯一标志符(organizationally unique,简称OUI),是识别LAN(局域网)节点的标识(在有些抓包工具抓包的时候会将前三个字节映射成某种组织名称的字符,也可以选择不显示这种映射)。
24-47位是由厂家自己分配。

()SSID

表示一个子网的名字,无线路由通过这个名字可以为其它设备标识这个无线路由的子网。
设备进行扫描的时候,就会将相应SSID扫描到,然后就能够选择相应的SSID连接到相应的无线网络(当然不扫描,理论上也可以直接指定自己事先已经知道的ssid进行连接)。
SSID可以和其它的重复,这样扫描的时候会看到两个同样SSID的无线网络,实在这一样平常用于将一个无线网络扩大的情形(毕竟无线路由器无线旗子暗记的覆盖范围是有线的):当想要扩大一个无线网络(即SSID固定)的范围的时候,可以给多个路由设置相同的SSID来达到这个目的。
(这也是漫游的事理,漫游的时候,我们可以在远方或者本地都能够打电话,也便是访问移动通信网络)。

SSID和BSSID不一定逐一对应,一个BSSID在不同的Channel上面可能会对应到多个SSID,但是它们在一个Channel是逐一对应的;其余,漫游的时候,虽然SSID不变,但是BSSID一定是会变革的。
我们常常可以看到实际数据包中的AP的MAC地址和BSSID只差几位,实在实际设备的MAC地址可能只有一个,和BSSID没什么对应关系。
在一个包含了路由功能和AP功能的无线路由器(Fat AP)上面,很可能是:路由器有两个MAC地址,一个用于外网(WAN),一个用于内网(WLAN和LAN),一样平常路由器上面或者配置路由器的网页上面只标注外网的MAC地址;内网的MAC地址和外网MAC地址一样平常只有几位不同(乃至连续,也有些相差很多的例外)。

()Band(频率范围)

一样平常ap可以支持5g或2.4g两个频率范围段的无线旗子暗记。
如果两者同时可以设置,而不是互斥那么,这个路由器还能够同时支持两种频段(频段即Band),这相称于这个ap可建立两个无线网络,它们采取不同的频段(这类似收音机在长波范围内收音和短波范围内收音)。

()Channel(信道)

Channel是对频段的进一步划分(将5G或者2.4G的频段范围再划分为几个小的频段,每个频段称作一个Channel),有”5.18GHZ“,“Auto(DFS)”等等,处于不同传输信道上面的数据,如果信道覆盖范围没有重叠,那么不会相互滋扰。
对付信道的利用,在国际上有所规定。
个中有些信道是无需授权即可直策应用的(究竟是那个频段的那个信道,依照各个国家而不同),无需授权利用的意思是,传输数据的时候(无论以哪种无线办法),可以让设备收发的功率导致传输时的数据进入该信道的频率并在该信道所在频段宽度内进行传输;授权的利用的意思是,不许可传输时利用授权信道进行,否则会违反规定,并且滋扰该信道上其他数据的传输。
其余,除了wifi,微波、红外线、蓝牙(利用802.15协议)的事情频段也都有在2.4gHZ范围内的,以是,它们传输的时候会对wifi传输造成滋扰,由于两者在不同的协议下进行通信,以是相互将对方传输的旗子暗记识别为噪声。
有时候配置AP的时候,Channel中有一个类似“Auto”的选项值,这表示打开AP的时候,AP自己Scan周围的环境,选择一个滋扰最小的Channel来进行通信,当选择好了一个Channel的时候,一样平常就不会改变了。

()Channel Width(信道宽度)

这里的Channel Width是信道的带宽,有”20M HZ“、”40M HZ“等,它表示一个Channel频段的宽度(假设5g的频段宽度统共为100M,均匀划分为互不滋扰的10个Channel,那么每个Channel的Channel Width就为100M/10=10M,实际Channel并不一定是完备不重叠的)。
这个参数可能依赖于一些其它的选项,例如不是802.11N的协议,就可能不会有40M HZ的Channel Width(N模式有一个特点便是可以把两个Channel合并,通过提高ChannelWidth来提高吞吐量)。
例如选择了"20M HZ"这个Channel Width之后,后面再选择一个“5.18GHZ”的Channel,则表示以5.18GHZ为中央的前"10M HZ"以及其后面的"10M HZ"频道范围被占用。

至此可知,配置无线AP的时候,如果屋子里面有很多的AP(也便是无线路由接入点)的话,仔细设置它们的Channel Width和Channel可以担保它们相互之间的滋扰(类似收音机里面的串台)尽可能小。
当然,如果相互滋扰了,那么Net Mode所指定的协议也会有相应的处理办法让他们之间进行折衷(例如让谁先通信谁等一会再通信之类的),但是这样网络的性能就不如没有滋扰的时候好了。

()Wireless Security(无线网络的安全性)

这里紧张涉及WEP、WPA、WPA2和RC4、TKIP、AES。

IEEE 802.11 所制订的是技能性标准 ,Wi-Fi 同盟所制订的是商业化标准 , 而 Wi-Fi 所制订的商业化标准基本上也都符合 IEEE 所制订的技能性标准。
WEP 是1999年9月通过的 IEEE 802.11 标准的一部分;WPA(Wi-Fi Protected Access) 事实上便是由 Wi-Fi 同盟所制订的安全性标准 , 这个商业化标准存在的目的便是为了要支持 IEEE 802.11i 这个以技能为导向的安全性标准;而 WPA2 实在便是 WPA 的第二个版本。
直不雅观点说,WEP是较老的认证方法它有好几个弱点,因此在2003年被WPA淘汰,WPA又在2004年由完全的 IEEE 802.11i 标准(又称为 WPA2)所取代。

WEP(Wired Equivalent Privacy),采取名为RC4的RSA加密技能;WPA(Wi-Fi Protected Access) ,采取新的TKIP算法,TKIP算法保留了RC4以是也有其弱点,但是这个时候更好的CCMP还没完成,以是先在WPA上用TKIP技能;WPA2是WPA的第2个版本,采取CCMP加密协定(在有些路由器等设备上设定加密协定或者加密算法的时候,可能会用类似AES之类的字眼替代CCMP)。
以是WPA2+AES是安全性最强的。

其余,在有些无线网路设备的参数中会看到像 WPA-Enterprise / WPA2-Enterprise 以及 WPA-Personal / WPA2-Personal 的字眼 , 实在 WPA-Enterprise / WPA2-Enterprise 便是 WPA / WPA2 ; WPA-Personal / WPA2-Personal 实在便是 WPA-PSK / WPA2-PSK, 也便是以 ”pre-share key” 或 ” passphrase” 的验证 (authentication) 模式来代替 IEEE 802.1X/EAP 的验证模式 ,PSK 模式下不须利用验证做事器 ( 例如 RADIUS Server), 以是特殊适宜家用或 SOHO 的利用者。

还有,wep是旧的加密办法,事情于802.11B/G模式下而802.11N草案并不支持此加密办法,以是如果802.11N的设备采取wep加密办法后,它也只会事情在802.11b/g模式下,N的性能发挥不出来。

实际中,在有些路由器上面,设置的时候,可能不是严格按照这个规定来设置的(例如设定了采取WPA办法,还可以选择AES),但是大体一样。

()Region(区域)

一样平常在无线网络中的AP上都有一个参数,表明它是处于哪个Region(地区)。
Station根据AP中设置的Region调度其相应的发射功率以遵守该地区的规定。
AP的调度过程一样平常都是手动设定,设置好AP所处的Region之后,这些信息就会在AP发送的Beacon帧(后面会说到)中包含了;通过这个AP连接到无线网络上的Station,从Beacon帧中理解到这些Region信息,并且根据这些信息中的规定和AP进行通信。
如果AP开始设置错了,那么Station和AP通信的时候,采取的将会是不符合Region规定的频段,可能会对该Region中的其它传输网络造成滋扰,这应该是“造孽”的。

()Transmission Rate

设置传输速率。
这里采取不同的无线网络传输协议(802.11a,802.11b,802.11g等),那么可以设置的速率范围有所不同,这里的速率是指理论的速率,实际中,由于各种滋扰成分,传输的速率可能会比设置的小。

一样平常而言,在无线网络中,对付某种协议的性能进行描述时,我们须要把稳的是,描述时提到的传输速率(Datarate)和吞吐量(Throughput)是不同的。
Datarate是理论上面最大数据传输速率,而Throughput是数据的实际最大吞吐量。
由于厂家以及传输时所利用的协议等各种成分造成的开销,会导致实际吞吐量比理论吞吐量要小,一样平常实际最大吞吐为理论最大的50%旁边(一个不太准确但是相对直不雅观的估计:在网络中,高清视频所需的Throughput也就30mbps旁边,网络上一样平常的视频也就4mbps旁边)。

()Qos(质量担保)

无线网络中的QOS是质量担保,大致的意思是,传输数据的时候,考虑各种成分(例如收费策略,所处地区等),以一定的优先级来担保传输的特定哀求(一样平常便是速率),如果带宽足够的话,QOS反而不须要了。

()RTS Threshold / CTS Protection Mode:

这里的RTS是Request-To-Send的简写,CTS是Clear-To-Send的简写。
设置好RTS的阈值之后,如果超过这个阈值就会在发送信息之前先发送RTS,以减少滋扰,相应的CTS会回应之前的RTS。
一样平常都是AP发送CTS数据,而Station发送RTS数据。

这里对RTS和CTS做一个大略阐明:假设在同一个AP所覆盖的无线网络范围内的两个Station A和B,它们之间可能会由于间隔的缘故原由相互不可见(例如它们在AP网络范围的两端,而这两端的间隔大于两者的旗子暗记覆盖范围),但是AP却知道它们是在自己的范围内。
当一个A想要在AP的网络中进行通信的时候,必定要经由AP转发它的信息,由于A不知道B的存在,以是如果同时B也通过AP进行网络通信,那么会涌现AP同时收到A、B两个Station的通信要求,而这在无线网络中是不许可的(无线网络中,同一时候不能有多个人传输数据)。
在这种情形下,B和A相互关扰了对方的通信,但是却相互不可见(不可见的节点相互被称作隐蔽节点)。
如果在一个网络中,这样的隐蔽节点很多,那么势必会影响网络的性能(由于数据一旦发送失落败,就要重传,隐蔽节点会导致重传的机率增大)。
这个时候,可采取RTS和CTS机制。
即:在A想要通信的时候,先广播发送RTS给AP,见告AP“它想要通信”,同时接管到RTS的别的Station(它们对发送RTS的Station而言可见)会知道A将要发送数据,于是它们不会发送数据以免滋扰A;AP收到RTS之后,会广播发送CTS,见告所有在AP范围内的Station(包括对A而言的隐蔽节点B)”A将要通信(同时也相称于见告A,A可以无滋扰的发送信息了)”,这样对A而言的隐蔽节点B也知道有一个A的存在并且要发送信息了,于是B就不会滋扰A了。
这里,A和B两者可以在不同的网络上,也便是说,不同网络的事情站之间也可以通过RTS/CTS来打消相互的滋扰。

()Beacon Interval:

表示无线路由定期广播其SSID的韶光间隔。
这个一样平常不会特殊设置,就采取默认值即可。
如果不广播了,那么Station端扫描的时候可能会创造不定期广播的AP对应的SSID的网络不见了,以是可能会断开连接。
这里定期广播,表示AP会定时向其范围内广播SSID的信息,以表示AP的存在,这样Station进入一个区域之后,就能够通过扫描知道这个区域是否有AP的存在。
当然,除了AP广播SSID以奉告其无线网络存在之外,Station也可主动广播探寻包,在其能够覆盖的范围内讯问是否有AP存在(即我们常日所说的扫描探求接入点)。

()DTIM Interval:

DTIM/TIM表示见告Station,AP在为Station做package buffer(例如Station就寝的时候)的缓存韶光。
为了节省电池利用韶光,处于无线网络中的Station可能会在一定韶光之后自动进入休眠状态。
这个时候,AP会为这个Station缓存发送给它的数据,而处于休眠状态的Station只会在一定韶光间隔内给AP发送一个数据帧,以确认是否有发送给自己的数据存在。
例如,当我们在主机上ping其余一台就寝的机器的时候,收到其余一台机器相应的韶光,要比它不就寝的时候相应的韶光长很多。

()Fragmentation Threshold:

表示一个package的分片阈值。
我们可以设置分片大小,当发送的数据包超过这个阈值之后,802.11协议会自动对这个数据包进行分割。
如果设置的这个分片值越小,那么全体数据包越随意马虎传输成功(由于如果出错,那么只须要传送一个片段而不是全体包,无线wifi网络中数据传输时出错的概率比有线的以太网要大的多的多),当然开销也越大(由于须要额外的信息标记每个分片,以及各个分片传输成功之后涉及到的重组问题)。

2、抓包

一样平常来说,我们的机器上面的软件抓取无线网卡上面的包的时候,实在这些包的目标地址都是这个机器的无线网卡,由于不是发给这个机器无线网卡的包都被网卡过滤了。
以是如果我们想要抓取所处无线网络环境下所有的包的时候,须要给机器配备一种分外的设备(sniffer便是嗅探器),然后再通过抓包工具抓取并剖析。
有一个硬件设备叫做AirPcap,便是做这个用的,大有几百到上千美金,它可以同时做为嗅探器或者无线网卡利用,不过做为嗅探器的时候,会抓取所有经由它的包。
这个工具目前只有Windows上面的驱动,以是利用这个工具,只能在Windows上面,合营Wireshark抓包软件进行抓包。

这里假设采取AirPcap嗅探,Wireshark软件抓包(其它抓包软件,例如linux下面的tcpdump等剖析类似)。
不用图形办法详细展示详细的抓包过程以及剖析方法了,紧张说一下抓包(这里的包实际紧张指的是网络层以下的包,更常见的称呼该当是数据帧)时候须要把稳的问题。

()Wireshark展示包的时候,大致都是按照协议规定的字段展示,也些地方按照它自己特定的办法展示。
由于这里着重讲述一些抓包时把稳的基本事理上面的东西,以是不会对此进行过多阐述。
大致便是:Wireshark软件中,对包展示的时候,按照协议规定的字段分别用Header和Body两个部分展示;其余,在Header之前还有两个部分是Wireshark为方便用户而展示的包的大小、韶光等全局信息(例如见过表示这个包在B和G mode中的Channel 1时,用"BG1"表示)。
以是,实在我们剖析的时候,实际该当按照后面的Header和Body两个部分进行。
后面将基于以上所述,进行进一步的讲解。

()抓包的时候,须要首先确认这个包是否是完全、精确的包。
只假如校验位(checksum)不对的,便是缺点的包,也无法确定吸收的时候哪里出了差错,以是这个包是该当忽略的,险些没有剖析的代价。
其余,抓包的时候,由于滋扰等缘故原由,抓取的内容可能不是在实际传输所处的Channel上的包(例如在Channel 1上面嗅探,却嗅探到了Channel 2上的包)。

()抓取授权阶段的包,须要把稳实际的授权是在后面进行的。
Authentication的时候,开始阶段实际是Open的(即无授权),也便是说,开始实际已经建立好了连接,以是我们在抓包的时候,开始看到的一样平常都是通过验证,但是在后面紧接着采取了类似802.11x等安全加强的协议,来进行再次鉴权认证,如果这里无法通过则立即将已经建立的Association断开。
这样的机制,是由于原来的802.11没有充分考虑安全才会这样的,这样也兼容了以前的802.11。

()抓取的包的数据,要把稳这个包是否是被加过密的。
根据协议标准的描述,包中如果有dataprotected字段,则表示这个数据本身是被加了密的,不知道这个数据详细是什么,当然,如果有密码,wireshark也有一个可以按照这个密码解密的工具,有时候不好用。
这里所说的数据加密和网络的加密不一样,可能访问网络本身是须要密码(网络是security的),而数据本身没有crpted(加密)。
对付一个加了密的数据包,我们一样平常看不出来这个包到底是做什么用的或者什么类型的等等。

()抓包的时候,要把稳包中指示的源和目的地址以及包的序号。
在无线网络中通信的时候,我们抓包的时候可能会看到被抓取的包对应AP的MAC地址是不存在的,实在抓包时AP的MAC是BSSID,它和实际标注的MAC地址不一定一样(但是一样平常都差不多,也便是之后末了面的几位不一样)。
有时候,我们看到抓取的包中的MAC地址有许多只相差几位,那么可能它们都属于一个设备(由于虽然设备可能只标注了一个网卡的MAC地址,但是它却“虚拟”出或者实际有多个MAC地址),以是当我们看到包中对应两个AP的MAC地址险些一样的时候,一样平常来说,这两个MAC地址很可能便是一个设备的。
还有在抓包的时候,一个地址上面的包的sequence(序号)是连续的,除非丢包了导致重复或者缺失落。
如果一个设备虚拟出来两个地址,那么也可能由于没有经由什么处理,导致这两个地址上面的包共同起来是连续的(如前所述,这两个地址和MAC很靠近,该当是BSSID)。

()抓取的数据帧如果是广播帧则不须要确认(ACK),如果是单播帧,则一样平常须要确认(ACK)。
例如,Probe帧是广播帧,以是它无对应的ACK确认帧,对Probe的回答则叫做Probe Response;把稳ACK帧本身用于确认,是单播的,但是它本身却不须要再被确认了。
从包中的目的MAC地址中,可以看出这个包是广播/多播帧还是单播帧。
MAC第一个字节的第一个位是1,表示组播,前两位是1表示广播,第一个字节第一个位是0表示单播。
这里把稳,MAC不是值,而是一个Pattern,以是没有Endian之说,也没有那个位高,那个MAC大之说。
例如:“a8:27:26:....:b7”,这里第一个字节便是a8(10101000),其第一个字节的第一位便是8的最“右”位,即“0”,以是它的第一个字节的第一个位是0,是一个单播地址。
实在,这里涉及到大端小端问题,后面也会讲到,总之,以太网线路上按“Big Endian”字节序传送报文(也便是最高字节先传送),而比特序是”Little Endian”(也便是字节内最低位先传送)以是,一个十六进制表示法表示的MAC地址01-80-C2-00-00-00,传送时的bit顺序便是:1000 0000 0000 0001 0100 0011 0000 0000 0000 0000 0000 0000。

()利用Wire Shark在抓包或者显示包的时候,都可以设置过滤器(filter)。
抓包时候设置的过滤器叫做capture filter,它是用BPF(berkerley package filter)这个比较通用的措辞来描述(把稳这不是Wireshark专用的filter措辞,而是一个通用的措辞)。
但是抓包期间的过滤,有时候不准,以是我们一样平常先将所有的包抓取下来,然后用WireShark中显示的过滤器(即view filter)来显示我们关注的包,这里我们可以用macro来定义比较繁芜的显示过滤条件。
保存的时候,可以用按照显示过滤还是抓取过滤的办法保存内容。

()只管即便不要抓取Channel Width为40MHZ的Channel上的帧。
我们还须要把稳的是,利用Sniffer抓取无线网络包的时候,AirPcap无法正常抓取40MHZ Channel Width的包,或者说对抓取这个Channel Width上面的包支持不好。
如果非要抓取40MHZ Channel Width的包,那么就在40或者36号Channel上面进行抓取,并在Wireshark上面设置“channel=36,offset+1”(平时offset都是0),这样能够抓取 Channel Width为40MHZ的包(但是,其他Channel上面的40mHZ的包还是无法抓取),这是由AirPcap内部的芯片固件的问题决定的(估计broad com芯片公司也不愿花过多的精力来支持这个很少有人用的抓包工具的这个功能)。

其余,假设一个无线事情站是基于Android系统的(例如智好手机或者平板电子书)那么我们可以利用“wpa_cli status”命令来可以查看当前设备的连接的SSID,BSSID,MAC,IP等信息,(这里“cli”=“command line interface”)。
还有更“繁芜”的命令“wc”和“wl”,个中wc是比较上层的命令,wl是下层的命令(是基于芯片是否支持的,例如wl在broadcom芯片上支持,但是在ti上面就没有了)。

三、一些事理

============================

1、常见的帧

在802.11中的帧有三种类型:管理帧(Management Frame,例如Beacon帧、Association帧)、掌握帧(Control Frame,例如RTS帧、CTS帧、ACK帧)、数据帧(Data Frame,承载数据的载体,个中的DS字段用来标识方向很主要)。
帧头部中的类型字段中会标识出该帧属于哪个字段。

()ACK帧

单播(unicast)帧都须要用ACK来确认,ACK本身不是广播帧,ACK在MAC上是unicast的,帧中有receive地址字段(用来标识是对谁的确认),但是它却不须要再确认了。
ACK只有吸收地址(receive)而无源地址(src)和序号(sequence),由于发送和接管是一个整体,发送之后,其他人(除了这个发送的接管者)都不会再发送数据了(无线协议中的冲突避免机制),以是接管者会发送一个没有src的ack帧给receiver,而吸收ACK的一端会根据这个知道它收到了一个ACK帧(实在根据协议,应该把发送单播帧和收到它相应的ACK看作一个原子的不可分割的整体,表示一次成功的通信)。

()Beacon帧

Beacon帧定时广播发送,紧张用来关照网络AP的存在性。
Station和AP建立Association的时候,也须要用到Beacon。
Station可以通过Scan来扫描到Beacon,从而得知AP的存在,也可以在扫描的时候通过主动发送Probe来探寻AP是否存在。
也便是说,建立Association的时候有主动的扫描或者被动的扫描两种办法。
其余,Beacon还包含了关于Power Save、以及地区等信息。

()Association帧

常日Association帧都有Probe Request和相应的Probe Response。
Association的Request中有其所须要的Channel以及Data Rate等状态,以便让AP决定是否让它与自己建立Association。
而关联是否成功,紧张是看Response中的Status code是否为Success。

()Data帧

Data Frame具有方向,这个方向用DS(分布式系统)字段来标识,以区分不同类型帧中关于地址的解析办法;其它的类型Frame例如Control Frame或者管理帧中,这个字段是全零。
这个字段用两位表示,这两个位的含义分别表示“To Ds”和“From Ds”,大致含义如下:

(a)To DS:表示Station->AP,一样平常也叫Upload。

(b)From DS表示AP->Station,一样平常也叫Download。

这里,我们可以大致将DS看做AP,To/From是从AP的角度来考虑的。
To DS便是让AP干活。
其余Data Frame中还有一个比较主要的字段便是Sequence,表示帧的序号。
重传帧序号一样,但是多了一个Retry的字段表示该帧是重传的。

为了便于理解,这里再次详细阐明一下DS字段的含义:

To DS=0,From DS=0:表示Station之间的AD Hoc类似的通信,或者掌握侦、管理侦。

To DS=0,From DS=1:Station吸收的侦。

To DS=1,From DS = 0:Station发送的侦。

To DS=1,From DS = 1:无线桥接器上的数据侦。

这里,我们紧张关注To DS和From DS分别是01和10的情形,DS虽然大致即是AP但是它不是AP,它实在是一个别系,从Station的角度来看,比较随意马虎理解。
并且To DS和From DS一定是无线网络上面数据侦才有的字段。

2、帧和大端小端

Ethernet和802.11都是按照Little Endian的办法来传输数据,也便是说,而MAC层传输的时候,是采取Little Endian的办法,一个字节一个字节的传输的,前面的低位字节先传输,后面的高位字节后传输(传输单位不是按位而是字节);在协议标准上描述一个帧的时候,一样平常是先按照Little Endian的办法对其进行总体描述,然后详细细节说每个字段的值,这时候这个字段值是Big Endian办法表示的,这一点应该把稳。

例如,协议标准中可能能对某个帧格式做如下的描述:

|b0|b1|b2|b3|b4|b5|b6|b7|b8|b9|...|...|

这里,最低位b0在最前面,以是这里采取的便是小真个办法来描述帧的总体格式信息。
传输的时候,就按照这里的办法,以字节为单位向物理层进行传输(先传b0~b7然后b8~b16等等)。
但是,在阐明这个帧的各个域的时候却采取大真个办法进行描述。
假设b3=0,b2=1,b1=0,b0=0四者共同组成一个名字为“FLAG”地域,那么会有类似如下的描述:

FLAG=4(即FLAG为0100):表示XXX。

以是,协议标准中详细描述某个域的时候,一样平常直接用大端办法表示的数值(b3b2b1b0=0100)来描述;而传输数据帧或者在协议标准中描述整体帧的时候,中给出的却是小真个办法(b0b1b2b3=0010)。
这里的每个字段都是帧的一个部分,在管理帧(后面会说)中长度不固定的部分又叫IE(information Element) 。

其余把稳,内存地址是用来标记每个字节的而不是位,以是内存里面大端小端也因此字节而不是位为单位的(前面描述“大端“、”小端”的时候却以位序而非字节序,这一点须要明辨,不要稠浊)。
假设奔驰的机器,CPU为32位,采取Little Endian办法,那么表示1这个int类型整数的时候,假设它在数值上是十六进制的"00000001",那么存放在内存中却是由低位到高位依次存放的,由低到高地址依次为:"01"、"00"、"00"、"00"(也便是说小端办法存放在内存中的时候,是按照含有最低位的字节存放在低地址,把稳是字节,在内存中“位”没有地址,以是没有大端小端一说)。
在通报帧的时候,也是按照一个字节一个字节的传输,而一个字节内部在实际上实在没有什么真个分别,但是wireshark一律利用“b7b6b5b4b3b2b1b0”这样的办法来用大真个办法显示。

总之,须要把稳网络层下面的帧的大端小端问题(不是网络中的字节序,TCP/IP中规定的网络字节序是Big Endian),大致便是:协议规定,传输的时候利用Little Endian;标准描述的时候用Big Endian和Little Endian都用;其余,Wire shark软件抓的包中,彷佛全都用Big Endian来进行标示(无论是信息窗口还是内存窗口都这样展示)。

3、CSMA/CA的机制

与以太网的CSMA/CD机制(冲突检测)相对,802.11采取的CSMA/CA机制(冲突避免)。
采取这个机制,可以担保每次通信的原子性(即每次通信所须要传输的多种不同类型的帧之间没有夹杂其它通信的帧的滋扰),大体过程是:

(a)链路空闲下来之后,所有Station在发送帧之前都首先等待一段韶光(即DIFS,又称帧间隔韶光);

(b)到达DIFS之后,所有的Station进入竞争韶光窗口(便是竞争期间),将这个竞争韶光窗口分割成多个Slot(退避韶光间隔),然后每个Station随机选择一个Slot;

(c)当某个Station到达它的Slot对应的韶光之后,就开始发送数据。
这里,选择的Slot越靠前,则表示Station在DIFS之后再等待的韶光(退避韶光)越短,也就会越早发送实际数据;

(d)退避窗口的Slot有多个,选择的时候,可能某个Slot被多个站点同时选取,这个时候发送会产生真正的数据冲突(如果多个人同时发送,那么它们都要经由AP来转发,AP无法同时听见多个人的“说话声音”)那么Station就会再重新选择并发送;

(e)当一个Station发送数据之后,所有Station会检测到链路忙,于是放弃考试测验发送,等那个Station发送完数据之后,链路开始空闲,于是又进入到(a)重新开始这个过程。

对付以上的机制,如果我们让某个Station经由DIFS之后,选择的Slot越小,就意味着它发送帧的机会越大,也便是说这个Station的优先权越高。
这便是Qos(质量担保)的基本,前面也说过,Qos便是“以一定的优先级来担保传输的特定哀求”,要得到这种优先级,就要有相应的条件(例如“费钱”)(有一种不常用的无竞争发送,实在便是DIFS之后,不退避而直接发送)。

其余,实在对物理层上来说,所有的发送都是广播,单播与否只是在链路层以上分辨的。
上面提到的检测链路是否忙,可以从链路上用软件办法进行(例如增加帧的分外字段),也可以直接在物理层上进行,实际由于在物理层上本钱较高,常常用的是前者,详细拜会协议。
软件检测大致的思路便是,进行一个通信的时候,这个通信包含多个帧,每个帧有不同的浸染,发送的第一帧的时候,会通过个中的某个分外字段(Duration字段,也叫NAV,即网络分配向量,是一个延迟韶光值)见告所有其它Station,在未来的一段韶光内,链路被占用,以完玉成部通信过程。
这样,其它Station在此期间就不会发送数据滋扰这次通信了,往后这个通信的每一帧以及其ACK确认帧之间都会有一个很小的韶光间隔(小于DIFS,即SIFS),并且每帧会视情形延长那个Duration字段,担保全体通信期间确实不会有其它人滋扰,这样全体通信便是原子性的了。

4、帧的来源和目的地址

由于无线网络中没有采取有线电缆而是采取无线电波做为传输介质,以是须要将其网络层以下的帧格式封装得更繁芜,才能像在有线网络那样传输数据。
个中,仅从标识帧的来源和去向方面,无线网络中的帧就须要有四个地址,而不像以太网那样大略只有有两个地址(源和目的)。
这四个地址分别是:

SRC:源地址(SA),和以太网中的一样,便是发帧的最初地址,在以太网和wifi中帧格式转换的时候,相互可以直接复制。

DST:目的地址(DA),和以太网中的一样,便是终极接管数据帧的地址,在以太网和wifi中帧格式转换的时候,相互可以直接复制。

TX:也便是Transmiter(TA),表示无线网络中目前实际发送帧者的地址(可能是最初发帧的人,也可能是转发时候的路由)。

RX:也便是Receiver(RA),表示无线网络中,目前实际吸收帧者的地址(可能是终极的吸收者,也可能是吸收帧以便转发给吸收者的ap)。

把稳,实在,还有一个BSSID,用来区分不同网络的标识。
在802.11帧中,有四个地址字段,一样平常只用到个中的三个,并且,这四个字段对应哪种地址或者利用哪些地址,根据帧中的其余一个DS字段以及帧的类型而有不同的阐明。

举例:

(1)无线网络中的Station和以太网中的Host进行通信:

Station<- - - - ->AP<---------->Host

a)当Station->Host的时候:

首先Station->AP,这时候Src=Station,Dst=Host,Tx=Station,Rx=AP,然后AP->Host,这时候Src=Station,Dst=Host,由于AP转发的时候,是在以太网中,以是没有Tx和Rx。

b)当Host->Station的时候:

首先Host->AP,这时候Src=Host,Dst=Station,然后AP->Station,这时候,Src=Host,Dst=Station,Tx=AP,Rx=Station。

(2)无线网络中的Station之间进行通信:

Station1<- - - - ->AP<- - - - ->Station2

a)当Station1->Station2时

首先Station1->AP,Src=Station1,Dst=Station2,Tx=Station1,Rx=AP,然后AP->Station2,Src=Station1, Dst=Station2, Tx=AP, Rx=Station2。

可见,在无线网络中,始终存在Tx和Rx,但是,这四个地址中还是只有三个地址足矣。

(3)当两个无线网络中的Station进行通信的时候:

Station1<- - - - ->AP1<- - - - ->AP2<- - - - - ->Station2

当Station1->Station2时:

首先Station1->AP1,Src=Station,Dst=Station2,Tx=Station1,Rx=AP1,然后AP1->AP2,Src=Station, Dst=Station2, Tx=AP1, Rx=AP2,然后AP2->Station2,Src=Station1,Dst=Station2,Tx=AP2,Rx=Station2。

把稳,这个时候,AP起到桥接的浸染,以是四个地址各不相同,同时,AP之间或者Station和AP之间的那部分连接,也可以是以太网。

综上可知,无线网络中的Station想要通信,必须经由AP来进行“转发”,实在,Tx和Rx是无线网络中的发和收,也便是Radio;而Src和Dst是真正的发送源和吸收者。

5、Sleep和Power save(节电)

实在,无线网络中的Power save是指Station的Sleep(就寝),并且这个Sleep并不是全体系统的Sleep,确切来说,该当是其wifi中Receiver(吸收天线)的Sleep。
Station在就寝的期间还是可以Transmit(发送)的,只是当AP知道Station的Receiver处于Sleep状态时,就不会给Station发送帧了。
Station在Sleep之前,会给AP发送一个分外的帧,见告AP说它(Station)要就寝了,AP通过这个帧来记住是这个Station就寝了,然后AP就不会给这个Station单独发送数据了。

当有和这个Station通信的包想通过AP转达的给这个Station时候,AP会帮这个Station将它们缓存起来,然后在Beacon广播帧中添加一个分外的位(实际这个位是一个bitmap中的位,这个bitmap表示所有和该AP建立了关联的Station,而这个就寝的Station的相应位为被置1则表示有要传达给这个Station),来表示这个Station有数据到达了(Beacon是定时广播的帧,前面说过它是用来关照无线网络,这个AP的状态),而不是直接发送给Station。
而这个就寝的Station,会在就寝期间时时地醒来,以检讨Beacon帧中的状态,当创造有给它的数据的时候,就会通过发送一个Power Poll的帧来收取数据,收取之后连续就寝(以是ping一个就寝状态的Station,相应的韶光要慢好多)。

对付发送给这个Station的广播帧,其处理办法和普通帧有一点不同:当有广播帧要传达给这个Station的时候,AP会为这个Station缓存发送给它的广播帧,但是缓存的韶光是DTIM(一样平常为300ms)。
把稳:单播帧缓存的韶光不一定是多少,广播帧却缓存DTIM的韶光。
AP每发送一个Beacon的时候,都会将Dtim减少1,而Station就寝的时候,会时时地醒来,查看一下Beacon帧中的dtim值。
当Station创造其DTIM值变成0的时候,就醒来长一些的韶光,看看有没有广播给它的数据,如果有的话就用类似Power Save Poll的帧接管,没有则连续就寝。

这里,吸收数据是根据是否有more data类似的字段来确认是否有更多的数据的;重发的帧是用类似retry的字段来标记。
其余把稳,当Station进行Sleep的时候,还是可以主动Tranmit的,当Station主动Transmit的时候,它会等待Reply,以是这个时候,Receiver是on的状态。
用一个图示来标识Sleep,Receive,Transmit时的电源花费状况,大致如下:

power

^

trans | ------------------------

| | |

receive | -----------| |

| | |

sleep |--------| |--------------------

|----------------------------------------------------------------------> time

可见不同状态,电源花费状态不同(传送比吸收更耗电),其余,如果电源供电不敷,在某个状态中就会涌现通信失落败的情形。
(彷佛ap上面broadcom芯片中的就寝之后,醒来立即重新发送的时候常常开始会失落败,可能便是这个缘故原由)。

6、建立Association

下面是Station和Ap建立开放Association的过程:

(0)Ap周期性地广播Beacon帧

(1)Station广播Probe Request到达Ap

(2)Ap向Station发送Probe Reponse

(3)Station向Ap发送ACK

(4)Station向Ap发送Authentication Request

(5)Ap向Station发送ACK

(6)Ap向Station发送Authentication Reponse

(7)Station向Ap发送ACK

(8)Station向Ap发送Association Request

(9)Ap向Station发送ACK

(10)Ap向Station发送Association Reponse

(11)Station向Ap发送ACK

(12)Station和Ap开始相互通信。

可见,广播帧不用回答,单播帧须要用ACK确认,ACK本身不用被确认。

标签:

相关文章

易语言在删除操作中的应用与方法

随着信息技术的飞速发展,计算机编程语言在各个领域都得到了广泛应用。易语言作为一种简单易学、功能强大的编程语言,受到了许多编程爱好者...

互联网 2025-01-03 阅读0 评论0

易语言在人工智能时代的应用与发展

随着科技的飞速发展,人工智能技术逐渐渗透到我们生活的方方面面,为各行各业带来了革命性的变革。作为我国自主研发的编程语言,易语言以其...

互联网 2025-01-03 阅读0 评论0

易语言在坐标获取中的应用与价值

随着科技的飞速发展,坐标获取在各个领域中的应用日益广泛。易语言作为一种功能强大、易于上手的编程语言,在坐标获取领域也展现出了其独特...

互联网 2025-01-03 阅读0 评论0

易语言在页游开发中的创新应用与优势分析

随着互联网技术的飞速发展,网页游戏(页游)市场逐渐壮大,成为了游戏行业的一大亮点。而在这其中,易语言作为一种独特的编程语言,以其高...

互联网 2025-01-03 阅读0 评论0