802.11帧的最大长度2346个字节,基本结构如下图:
Frame Control
所有帧的开头均是长度两个元组的Frame Control 帧控制位
* Protocol 协议版本:协议版本值为0,因为这是目前唯一的版本,未来可能会给出其他新的版本。
* Type 类型:用以区分帧类型
* Subtype 子类型:此位代表发送帧的子类型,例如请求发送帧RTS的Type=01,Subtype=1011
* To DS与From DS:分别表示无线链路向无线工作站发送的帧和无线工作站向无线链路发送的帧
* More Fragments 更多片段:用于说明长帧被分段的情况,是否还有其他帧。若较长层的封包经过MAC分段处理,最后一个片段除外,其他片段均会将此设定为1.
* Retry 重试:有时候可能需要重传帧。任何重传的帧会将此bit设定为1,以协助接收端剔除重复的帧。
* Power Management 电源管理:表示完成当前帧交换过程后,发送端的电源管理状态。1表示STA处于Power_save模式,0表示STA处于active模式
* More Data 尚有数据:用于管理数据帧,在控制帧中此bit必然为0.
* Protected Frame 受保护帧:为1表示帧体部分包含加密处理过的数据,为0则表示没有进行加密处理。
* Order 次序:帧与帧片段可依序传送,不过发送端与接收端的MAC必须付出额外代价,对帧片段进行严格编号。一旦进行性严格依序传送,此bit被设定为1.
Duration/ID
Duration持续时间:用来记载网络分配矢量NAV的值。访问介质的时间限制是由NAV所指定。
当第15个bit被设定为0时,Duration/ID位就会被用来设定NAV
此数值代表目前所进行的传输预计使用介质多少微秒。工作站必须监视所收到的任何帧头,并据以更新NAV。任何超出预计使用介质时间的数值均会更新NAV,同时阻止其他工作站访问介质。
Address
地址字段包含不同类型的MAC地址,地址的类型取决于发送帧的类型。
Address 1 代表帧接收端的地址。在某些情况下,接收端即为目的地
* 目的地是指负责处理帧中网络层封包的工作站,而接收端则是负责将无线电解码为802.11帧的工作站
* 如果Address1被设为广播或组播地址,则必须同时检查BSSID。工作站只会应答来自同一个BSS的广播或组播地址,至于来自其他不同BSS的则忽略
Address 2 发送端地址,用来发送应答信息。某些情况下,发送端即为源地址,但不全如此。
源地址是指产生帧中网络层协议封包的工作站,而发送端则是负责将帧发送至无线链路
Address 3 是供基站与传输系统过滤之用,不过该位的用法,取决于所使用的网络类型
Address 4 一般不使用,只有在WDS无线传输系统中才会使用
顺序控制位
此位长度16bit,用来重组帧片段以及丢弃重复帧。它由4个bit的fragment number(片段编号)位以及12bit的sequence number(顺序编号)组成。
顺序编号:相当于已传帧的计数器取4096的摸。此计数器由0起算,MAC每处理一个上层封包就会累加1.如果发生重传,则顺序编号不变,便于进行帧处理,丢弃重复帧。主要是将我们发送的帧进行编号,对重新传输的帧进行刷选,保证帧的正确性。
片段编号:在上层封包被切割处理时使用,第一个片段编号为0,其后每个片段依序累加1,方便帧进行重都组。所有帧片段都会具有相同的顺序编号,如果是重传帧,则顺序编号不会有任何改变。
帧主体
Frame Body帧主体位,亦称为数据位,负责在工作站间传送上层数据,802.11帧最多可传送2312个bit组的上层数据。
帧检验序列
Frame Check sequence简称FCS,FCS让工作站得以检查所收到的帧的完整性。
当帧送至无线界面时,会先计算FCS,然后再由RF或IR链路传送出去。接收端随后会为所收到的帧计算FCS,然后与记录在帧中的FCS做比较。802.11网络中,通过完整性检验的帧还需接收端送出应答,例如:接收无误的数据帧必须得到正面应答,否则就必须重传。对于未能通过FCS的帧,802.11并未提供负面应答机制;在重传之前,工作站就必须等候应答超时。
802.11帧类型
Type类型与Sub Type子类型用来指示所使用的帧类型。
Type用以区分帧类型:
管理帧的Type值为:00
控制帧的Type值为:01
数据帧的Type值为:10
帧类型11保留,尚未使用
Sub Type指各帧类型中详细使用帧类型。
数据帧
数据帧会将上层协议的数据置于帧主体加以传递,会用到哪些位,取决于该数据帧所属的类型。
* Frame Control帧控制:每个帧控制bit都可能影响到MAC标头其他位的解读方式。值得注意的是地址位,它们的意义将因ToDS及FromDSbit的值而异。
DS Distribution system分布式系统是接入点间转发帧的骨干网络,因此通常称为骨干网络,一般可理解为以太网
SA源地址,DA目的地址,RA接收端,TA发送端
以下4中情况分别对应上表中情况
上图中,源端和发送端都是终端,目的端和接收端都是AP,信号从终端发出,希望关联AP,BSSID用以过滤非此BSS的STA连接
上图中源端和发送端都是终端,接收端是AP,信号是从无线链路向AP发送,所以To Ds为1,发送的目的端为与AP相连的交换机
上图源端是与AP相连的交换机,发送端是AP,信号从AP向无线链路发送,所以From DS 为1,目的端和接收端为STA
上图为WDS模型,上表中第4列只在这种模型中会有,即四个地址位都被使用,WDS模型既有无线链路向AP发送信号,又有AP向无线链路发送信号,故ToDS和From DS均为1
控制帧
控制帧均使用相同的Frame Control位
Type:控制帧的类型标识码为01,所有控制帧均使用此标识码
To Ds和From DS:控制帧负责处理无线介质的访问,因此只能够由无线工作站产生,传输系统并不会接收控制帧,因此这两个必然为0.
More Fragments:控制帧不可分割,必然为0
Retry:必然为0
More Data:此位只用于管理数据帧,在控制帧中必然为0
Protected Frame:控制帧不会经过加密,故此bit必然为0
Order:控制帧是基本帧交换程序的组成要件,因此必须依序发送那个,所以必然为0
控制帧-PS-Poll
当客户端从省电模式中苏醒,便会发送一个PS-Poll帧给AP,以取得任何暂存帧。PS-Poll帧的格式如下
Frame Control:帧的sub type设定为1010,代表PS-Poll帧
AID连接识别码:PS-Poll帧将会以MAC标头的第三与第四bit来代表连接识别码association ID。连接识别码是基站所指定的一个数值,用以区别各个连接。将此识别码置入帧,可以让AP找出为其客户端所暂存的帧
BSSID:包含发送端目前所在BSS的BSSID
Transmitter Address发送端地址:此为PS-Poll帧之发送端的地址。
控制帧-RTS
当AP向某个客户端发送数据的时候,AP会向客户端发送一个RTS报文,这样在AP覆盖范围内的所有设备在收到RTS后都会在指定的时间内不发送数据。RTS帧可用来取得介质的控制权,以便传输帧。RTS帧格式如下:
Frame Control:帧的subtype设定为1011,代表RTS帧
Duration持续时间:RTS会试图预定介质使用权,供帧交换程序使用,因此RTS帧发送者必须计算RTS帧结束后还需要多少时间。传输所需要的微秒数经过计算后会置于Duration位。假如计算的结果不是整数,就会被修正为下一个整数微秒。
Receiver Address:接收端地址,接收RTS帧的工作站地址
Transmitter Address:发送端地址,RTS帧的发送端地址。
例如:
控制帧-CTS
CTS允许发送,目的客户端收到RTS后,发送一个CTS报文,这样在该客户端覆盖范围内的所有设备都会在指定的时间内不发送数据。CTS会令附近的工作站保持沉默,从而获取介质的控制权。其格式如下:
Frame Control:帧的subtype设定为1100,代表CTS帧
Duration持续时间:用来应答RTS时,CTS帧的发送端会以RTS帧的duration值作为持续时间的计算基准。RTS会为整个RTS-CTS-Frame-ACK交换过程预留介质使用时间。
Receiver Address:接收端地址,CTS帧的接收端即为RTS帧的发送端
控制帧-ACK
应答ACK:每个发送的单播报文,接收者在成功接收到报文后,都要发送一个应答ACK进行确认。
Frame Control:帧的subtype设定为1101,代表ACK帧
Duration持续时间:依照ACK信号在整个帧交换过程中位居何处,在完整的数据帧及一连串帧片段的最后一个片段中,duration会被设定为0
Receiver Address:由所要应答的发送端帧复制而来
管理帧
管理帧目的是通过帧的使用,为网络提供相对简单的服务
* Beacon帧(信标帧)
Beacon帧主要来声明网络的存在。定期传送的信标可以让移动式工作站得知该网络的存在,从而调整加入该网络所必须的参数。
基础结构网络中,接入点负责传送Beacon帧
* Probe Request、Probe Response帧
工作站通过Probe Request帧来扫描所在区域内的802.11网络
若Probe Request帧探查的网络与之兼容,该网络就回复Probe Response帧给予响应
* Authentication帧、Deauthentication
工作站通过共享密钥以及Authentication帧进行身份验证
Deauthentication解除身份验证帧则用来终结认证关系
* Association Request帧
一旦工作站找到兼容网络并且通过身份验证,便会发送Association Request关联请求帧试图加入网络
* Disassociation帧
取消关联帧用关联来终结一段关联关系
* Reassociation Request帧
位于相同ESS中,当在不同的BSS之间移动的工作站若要再次使用分布式系统DS,必须与网络重新关联,区别于关联请求帧的是:它包含工作站当前所关联的接入点地址
* Association Response帧与Ressociation Response帧
当工作站试图连接接入点时,接入点会回复一个Association response帧或Reassociation response帧,响应过程中,接入点会指定一个Association ID(关联标识符)