80211帧格式解析.docx
- 文档编号:28227167
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:31
- 大小:136.80KB
80211帧格式解析.docx
《80211帧格式解析.docx》由会员分享,可在线阅读,更多相关《80211帧格式解析.docx(31页珍藏版)》请在冰豆网上搜索。
80211帧格式解析
802.11帧格式解析
2012-02-13 0 个评论
收藏
我要投稿
1MAC802.11数据帧格式
首先要说明的是mac802.11的帧格式很特别,它与TCP/IP这一类协议不同,它的长度是可变的。
不同功能的数据帧长度会不一样。
这一特性说明mac802.11数据帧显得更加灵活,然而,也会更加复杂。
mac802.11的数据帧长度不定主要是由于以下几点决定的
1.1mac地址数目不定,根据帧类型不同,mac802.11的mac地址数会不一样。
比如说ACK帧仅有一个mac地址,而数据帧有3个mac地址,在WDS模式(下面要提到)下,帧头竟然有4个mac地址。
1.2802.11的管理帧所携带的信息长度不定,在管理帧中,不仅仅只有一些类似于mac地址,分片标志之类的这些信息,而且另外还会包括一些其它的信息,这些信息有关于安全设置的,有关于物理通信的,比如说我们的SSID名称就是通过管理帧获得的。
AP会根据不同的情况发送包含有不同信息的管理帧。
管理帧的细节问题我们会在后面的文章中讨论,这里暂时跳过。
1.3加密(wep,wpa等)信息,QOS(qualityofservice)信息,若有加密的数据帧格式和没有加密的数据帧格式还不一样,加密数据帧格式还多了个加密头,用于解密用。
然则QOS也是同样道理。
竟然mac802.11数据帧那么复杂,我们就先从通用的格式开始说吧
帧控制(2bytes):
用于指示数据帧的类型,是否分片等等信息,说白了,这个字段就是记录了mac802.11的属性。
*Protocolversion:
表明版本类型,现在所有帧里面这个字段都是0x00
*Type:
指明数据帧类型,是管理帧,数据帧还是控制帧
*Subtype:
指明数据帧的子类型,因为就算是控制帧,控制帧还分RTS帧,CTS帧,ACK帧等等,通过这个域判断出该数据帧的具体类型
*ToDS/FromDS:
这两个数据帧表明数据包的发送方向,分四种可能情况讨论
**若数据包ToDS为0,FromDS为0,表明该数据包在网络主机间传输
**若数据包ToDS为0,FromDS为1,表明该数据帧来自AP
**若数据包ToDS为1,FromDS为0,表明该数据帧发送往AP
**若数据包ToDS为1,FromDS为1,表明该数据帧是从AP发送自AP的,也就是说这个是个WDS(WirelessDistributionSystem)数据帧,至于什么是WDS,可以参考下这里的介绍#传送门
*Moreflag:
分片标志,若数据帧被分片了,那么这个标志为1,否则为0
*Retry:
表明是否是重发的帧,若是为1,不是为0
*PowerManage:
当网络主机处于省电模式时,该标志为1,否则为0.
*Moredata:
当AP缓存了处于省电模式下的网络主机的数据包时,AP给该省电模式下的网络主机的数据帧中该位为1,否则为0
*Wep:
加密标志,若为1表示数据内容加密,否则为0
*Order这个表示用于PCF模式下,这里不予讨论
生存周期/AssociateID(2bytes):
先前不是讲过虚拟载波监听的一个机制么,他的NetworkAllocationVector(NAV)就存在这里,这里叫duration,即生存周期。
当然不是所有时候这个字段存放的NAV值。
在特定类型数据帧中,它也可能表示AssociateID。
一旦有主机关联到AP了,AP都会为主机分配一个AssociateID。
比如在网络主机通知AP自己要进入省电模式(powersaving)的时候,网络主机发给AP的通知数据帧里面,这个域就表示的是AssociateID而不是NAV了。
当然还可以通过最高位来判断这个域的含义:
*在15bit为0的时候,该域表示duration
*在15bit为1,14bit为1的时候,表示AssociateID。
序列控制(2bytes:
4bits/12bits):
这个域分2部分,一个是分片序列号和标识帧列号。
分片序列号就是记录分片序号的。
比如一个帧A被分片成a1,a2,a3,那么a1,a2,a3这三个分片帧的分片序列分别是0,1,2。
这个和IP分段原理一样的,该域占4个比特位。
剩下的12个比特位就用于标识帧的序号,这个跟IP头里面的序列号一样。
MAC地址1-4
这四个地址在不同帧中有不同含义。
这些以后会讨论。
以后我们可能会碰到以下类型的mac地址
RA(receiveraddress):
无线网络中,该数据帧的接收者
TA(transmitteraddress):
无线网络中,该数据帧的发送者
BSSID(BasicServiceSetID):
在infrastructureBBS中,BSSID就是AP的mac地址。
但是在IBBS中,它是一个随机即生成的46位二进制序列,还有最高两位分别是Universal/Local标志位和Individual/Group标志位。
IBBS的BSSID中,Universal/Local标志位为1,表示本地MAC,Individual/Group标志位为0,表示是个人MAC。
也就是说在IBBS中,BSSID地址应该类如10xxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx-xxxxxxxx(x表示随机数要么0要么1,2进制表示)
DA(destineaddress):
该帧的目的mac地址
SA(sourceaddress):
该帧的源mac地址
这里的DA和SA含义和普通以太网中的含义一样,在无线网络中可能我们需要通过AP把数据发送到其它网络内的某台主机中。
但是有的人会奇怪,直接在RA中填这台主机的mac地址不就久好了么。
但是请注意RA的含义,说的是无线网络中的接收者,不是网络中的接收者,也就是说这台目的主机不再无线网络范围内。
在这种情况下我们的RA只是一个中转,所以需要多出一个DA字段来指明该帧的最终目的地,当然,如果有了DA那必须有SA,因为若目的主机要回应的话,SA字段是必不可少的。
(假设没有SA字段,那么目的主机回应的数据包就只能发送到源主机所属的AP上了~)
最典型的一个例子就是在WDS模式下,数据帧会有4个地址,RA,TA表示接收端和发送端,这两个地址用于无线传输的时候。
还有2个地址是DA和SA,分别跟以太网中一样表示源地址和目的地址。
WDS帧的格式如下图:
打个比方说,AP1有主机A,AP2有主机B。
如果A要和B同学,那么A会首先发送数据帧给AP1,然后AP1发送帧给AP2。
这个时候帧里面会有4个地址,分别是RA=mac(AP2),TA=mac(AP1),DA=mac(B),SA=mac(A)。
WiFi协议物理层包结构
(一)
(2011-05-1809:
07:
13)
转载▼
标签:
杂谈
看了几篇文档,WiFi协议其实只是OSI7层协议的物理层协议和数据链路层的一部分.在对硬件进行测试时,其实我们测试的大部分只是物理层的性能.整天工作凌乱复杂,总是没有足够的时间去将协议的文档仔细的研读归类,在写这篇博客的时候其实还是处于混沌状态,只能把看到的东西暂时罗列在这里,看得多了也就自然会清晰起来.
在物理层的空中接口中,数据信息势必以某种格式进行传输.这种传输经常是一帧一帧的进行,每一帧都会按照一定的规矩,顺序进行排列,也就是帧结构,或者包结构.
无线局域网物理层有三部分组成:
.物理管理层(PhysicalLayerManagerment):
为物理层提供管理功能,它与MAC层管理连接.
.物理成汇聚子层(PLCP):
MAC层和PLCP通过物理层服务访问点(SAP)利用原语进行通讯.MAC层发出指示后,PLCP就开始准备需要传输的介质协议数据单元(MPDUs).PLCP也从无线介质想MAC层传递引人帧.PLCP为MPDU附加字段,字段中包含物理层发生和接收所需的信息,802.11保准称这个合成帧为PLCP写数据单元(PPDU).PLCP将MAC协议数据单元映射成适合被PMD传送的格式,从而降低MAC层对PMD层的依赖程度.PPDU的帧结构提供了种种站之间MPDU的异步传输,因此,接收工作站的物理层必须同步每个单独的将道路的帧.
.物理介质依赖(PMD)子层:
在PLCP下方,PMD支持两个工作站之间通过无线介质实现物理层实体的放送和接收.为了实现以上功能,PMD需直接面向无线介质(大气空间),并对数据进行调整和解调.PLCP和PMD之间通过原语通信,控制发送和接收功能.
*长PLCPPreamble包结构:
Preamble这个词在我刚刚开始接触通信技术的时候好长一段时间都没有理解,后来才知道Preamble(译为"前导码"),前导码就是通信之前用于握手,同步,开始等目的的一串码字.在这种包结构中,前导码位数比较多,因此称为长前导码.
我们先看一下下面的长PLCP前导码包结构.
这个长PLCP前导码的格式是否在802.11a,802.11g以及802.11n中使用,目前我还不清楚,但至少应该是在802.111999和802.11b中使用的.
SYNC是128bits的码,应该是一种特殊指定的码,例如128个"1".
SFD:
开始单元
PLCP:
物理层汇聚协议
PSDU:
PLCP服务数据单元
PPDU:
PLCP协议数据单元
从上面的图中我们可以看到,(PLCPPreamble)144bits+(PLCPHeader)48bits=192bits,也就是说192bits的传输时间是192uS,计算一下,Preamble和Header的传输速度应该是1Mbits/S.
而对于PSDU来说,其传输速度更加不同的调制方式,其传输速度分别是1M,2M,5.5M或者11M.
WiFi协议物理层包结构
(二)
(2011-05-1813:
40:
04)
转载▼
标签:
it
对于802.1199和802.11b来说,除了长PLCP前导码包格式外,还有一种短PLCP前导码包格式,其情况如下图:
从图中,我们可以看到短PLCP前导码的床上速度是1MBits/S,而短PLCPHeader在2Bits/S时传输24Bits,即96uS可以传输96bits.对于PSDU的传输速度与长PLCP前导码得情况是相同.
为了保证802.11a,802.11g与802.11b的兼容,在传输格式中,使用了与802.11b相同的PLCP前导码和PLCP头.只是在PSDU的传输中采用了不同的方式.因为802.11a,802.11g采用了OFDM正交频分复用技术代替802.11b中的直接序列扩频技术使得PSDU的传输速率最高能达到54Mbits/S.
图太小,有点模糊.不过,我们只是讲道理,不追究细节.我的工作是做测试开发,所以更多的是考虑如何去测试它物理层的射频性能.
WIFI基本知识整理
这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习。
因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种情况就直接英文来描述了。
主要内容:
一、基本概述
二、实践基础
三、一些原理
四、补充
五、其它
一、基本概述
============================
1、有线和无线网络
目前有线网络中最著名的是以太网(Ethenet),但是无线网络WLAN是一个很有前景的发展领域,虽然可能不会完全取代以太网,但是它正拥有越来越多的用户,无线网络中最有前景的是Wifi。
本文介绍无线网络相关内容。
无线网络相比有线网络,还是有许多的缺点的:
(*)通信双方因为是通过无线进行通信,所以通信之前需要建立连接;而有线网络就直接用线缆连接,不用这个过程了。
(*)通信双方通信方式是半双工的通信方式;而有线网络可以是全双工。
(*)通信时在网络层以下出错的概率非常高,所以帧的重传概率很大,需要在网络层之下的协议添加重传的机制(不能只依赖上面TCP/IP的延时等待重传等开销来保证);而有线网络出错概率非常小,无需在网络层有如此复杂的机制。
(*)数据是在无线环境下进行的,所以抓包非常容易,存在安全隐患。
(*)因为收发无线信号,所以功耗较大,对电池来说是一个考验。
(*)相对有线网络吞吐量低,这一点正在逐步改善,802.11n协议可以达到600Mbps的吞吐量。
2、协议
Ethenet和Wifi采用的协议都属于IEEE802协议集。
其中,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,highthrough)。
(*)802.11n的MIMO(多输入输出)特性,使得两对天线可以在同时同Channel上传输数据,而两者却能够不相互干扰(采用了OFDM特殊的调制技术)
3、术语
讲述之前,我们需要对无线网络中一些常用的术语有所了解。
这里先列出一些,后面描述中出现的新的术语,将会在描述中解释。
(*)LAN:
即局域网,是路由和主机组成的内部局域网,一般为有线网络。
(*)WAN:
即广域网,是外部一个更大的局域网。
(*)WLAN(WirelessLAN,即无线局域网):
前面我们说过LAN是局域网,其实大多数指的是有线网络中的局域网,无线网络中的局域网,一般用WLAN。
(*)AP(Accesspoint的简称,即访问点,接入点):
是一个无线网络中的特殊节点,通过这个节点,无线网络中的其它类型节点可以和无线网络外部以及内部进行通信。
这里,AP和无线路由都在一台设备上(即CiscoE3000)。
(*)Station(工作站):
表示连接到无线网络中的设备,这些设备通过AP,可以和内部其它设备或者无线网络外部通信。
(*)Assosiate:
连接。
如果一个Station想要加入到无线网络中,需要和这个无线网络中的AP关联(即Assosiate)。
(*)SSID:
用来标识一个无线网络,后面会详细介绍,我们这里只需了解,每个无线网络都有它自己的SSID。
(*)BSSID:
用来标识一个BSS,其格式和MAC地址一样,是48位的地址格式。
一般来说,它就是所处的无线接入点的MAC地址。
某种程度来说,它的作用和SSID类似,但是SSID是网络的名字,是给人看的,BSSID是给机器看的,BSSID类似MAC地址。
(*)BSS(BasicServiceSet):
由一组相互通信的工作站组成,是802.11无线网络的基本组件。
主要有两种类型的IBSS和基础结构型网络。
IBSS又叫ADHOC,组网是临时的,通信方式为Station<->Station,这里不关注这种组网方式;我们关注的基础结构形网络,其通信方式是Station<->AP<->Station,也就是所有无线网络中的设备要想通信,都得经过AP。
在无线网络的基础形网络中,最重要的两类设备:
AP和Station。
(*)DS(DistributedSystem):
即分布式系统。
分布式系统属于802.11逻辑组件,负责将帧转发至目的地址,802.11并未规定其技术细节,大多数商业产品以桥接引擎合分步式系统媒介共同构成分布式系统。
分步式系统是接入点之间转发帧的骨干网络,一般是以太网。
其实,骨干网络并不是分步系统的全部,而是其媒介。
主要有三点:
骨干网(例如以太网)、桥接器(具有有线无线两个网络接口的接入点包含它)、属于骨干网上的接入点所管辖的基础性网络的station通信(和外界或者BSS内部的station)必须经过DS、而外部路由只知道station的mac地址,所以也需要通过分布式系统才能知道station的具体位置并且正确送到。
分步式系统中的接入点之间必须相互传递与之关联的工作站的信息,这样整个分步式系统才能知道哪个station和哪个ap关联,保证分步式系统正常工作(即转达给正确的station)。
分步式系统也可以是使用无线媒介(WDS),不一定一定是以太网。
总之,分步式系统骨干网络(例如以太网)做为媒介,连接各个接入点,每个接入点与其内的station可构成BSS,各个接入点中的桥接控制器有到达骨干网络和其内部BSS无线网的接口(类似两个MAC地址),station通信需要通过分布式系统。
二、实践基础
============================
1、一些参数
(*)MAC
MAC(即Medium/MediaAccessControl,介质访问控制),是数据链路层的一部分。
MAC地址是烧录在NetworkInterfaceCard(即网卡,简称NIC)里的,它也叫硬件地址,是由48位(即bit,一字节为8位,即1byte=8bits)16进制的数字组成。
其中0-23位叫做组织唯一标志符(organizationallyunique,简称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功能的无线路由器(FatAP)上面,很可能是:
路由器有两个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的时候,一般就不会改变了。
(*)ChannelWidth(信道宽度)
这里的ChannelWidth是信道的带宽,有”20MHZ“、”40MHZ“等,它表示一个Channel片段的宽度(假设5g的频段宽度总共为100M,平均划分为互不干扰的10个Channel,那么每个Channel的ChannelWidth就为100M/10=10M,实际Channel并不一定是完全不重叠的)。
这个参数可能依赖于一些其它的选项,例如不是802.11N的协议,就可能不会有40MHZ的ChannelWidth(N模式有一个特点就是可以把两个Channel合并,通过提高ChannelWidth来提高吞吐量)。
例如选择了"20MHZ"这个ChannelWidth之后,后面再选择一个“5.18GHZ”的Channel,则表示以5.18GHZ为中心的前"10MHZ"以及其后面的"10MHZ"频带范围被占用。
至此可知,配置无线AP的时候,如果屋子里面有很多的AP(也就是无线路由接入点)的话,仔细设置它们的ChannelWidth和Channel可以保证它们相互之间的干扰(类似收音机里面的串台)尽可能小。
当然,如果相互干扰了,那么NetMode所指定的协议也会有相应的处理方式让他们之间进行协调(例如让谁先通信谁等一会再通信之类的),但是这样网络的性能就不如没有干扰的时候好了。
(*)WirelessSecurity(无线网络的安
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 80211 格式 解析