802.11帧格式解析
一、前言
本文为学习802.11协议关于帧格式部分的笔记,方便针对802.11帧数据进行分析时参考。
二、802.11帧
下图展示了一般的802.11MAC 帧。位的传送顺序由左至右,最高效bit 将会最后出现。
三、FrameControl
所有帧的开头均是长度两个元组的Frame Control (帧控制)位,其结构如下:
1、protocol
802.11 MAC版本号,为0,目前没有新的版本。
2、Type和Subtype
帧类型,用主类型和子类型表示。
Type | Mean |
00 | 管理帧 |
01 | 控制帧 |
10 | 数据帧 |
11 | 保留 |
Subtype | Mean | Type |
0000 | Association request(连接要求) | 00 |
0001 | Association response(连接应答) | 00 |
0010 | Reassociation request(重新连接要求) | 00 |
0011 | Reassociation response(重新连接应答) | 00 |
0100 | Probe request(探查要求) | 00 |
0101 | Probe response(探查应答) | 00 |
1000 | Beacon(导引信号) | 00 |
1001 | Announcement traffic indication message | 00 |
1010 | Disassociation(解除连接) | 00 |
1011 | Authentication(身份验证) | 00 |
1100 | Deauthentication(解除认证) | 00 |
Subtype | Mean | Type |
1011 | RTS(请求发送) | 01 |
1100 | CTS(允许发送) | 01 |
1101 | ACK(应答) | 01 |
1110 | CF-End(免竞争期间结束) | 01 |
1111 | CF-End(免竞争期间结束)+CF-Ack(免竞争期间回应) | 01 |
Subtype | Mean | Type |
0000 | Data(数据) | 10 |
0001 | Data+CF-Ack | 10 |
0010 | Data+CF-Poll | 10 |
0011 | Data+CF-Ack+CF-Poll | 10 |
0100 | Null data (无数据:未发送数据) | 10 |
0101 | CF-Ack (未发送数据) | 10 |
0110 | CF-Poll (未发送数据) | 10 |
0111 | Data+CF-Ack+CF-Poll | 10 |
1000 | QoS Data | 10 |
1001 | QoS Data + CF-Ack | 10 |
1010 | QoS Data + CF-Poll | 10 |
1011 | QoS Data + CF-Ack + CF-Pol | 10 |
1100 | QoS Null (未发送数据) | 10 |
1101 | QoS CF-Ack (未发送数据) | 10 |
1110 | QoS CF-Poll (未发送数据) | 10 |
1111 | QoS CF-Ack+CF-Poll (未发送数据) | 10 |
注:1000-1111未标准化 |
3、TO DS 与From DSbit
这两个bit 用来指示帧的目的地是否为传输系统。在基础网络里,每个帧都会设定其中一个DSbit。
| To DS =0 | To DS =1 |
From DS =0 | 所有管理与控制帧IBSS (非基础型数据帧) | 基础网络里无线工作站所发送的数据帧 |
From DS =1 | 基础网络里无线工作站所收到的数据帧 | 无线桥接器上的数据帧 |
4、More fragments bit
表示是否为分段帧,此bit 的功能类似IP 的More fragmentsbit。若较上层的封包经过MAC 分段处理,最后一个片段除外,其他片段均会将此bit 设定为1。
5、Retrybit
重传帧。任何重传的帧会将此bit 设定为1,以协助接收端剔除重复的帧。
6、Powermanagement bit
此bit 用来指出传送端在完成目前的基
本帧交换之后是否进入省电模式。1 代表工作站即将进入省电模式,而0 则代表工作站会一直保持在清醒状态。基站必须行使一系列重要的管理功能,所以不允许进入省电模式,因此基站所传送的帧中,此bit 必然为0。
7、Moredata bit
为了服务处于省电模式的工作站,基站会将这些由“传输系统”接收而来的帧加以暂存。
基站如果设定此bit,即代表至少有一个帧待传给休眠中的工作站。
8、ProtectedFrame bit
相对于有线网络,无线传输本质上就比较容易遭受拦截。如果帧受到链路层安全协议的保
护,此bit会被设定为1,而且该帧会略有不同。之前,ProtectedFrame bit 被称为WEPbit。
9、Orderbit
帧与帧片段可依序传送,不过发送端与接收端的MAC 必须付出额外的代价。一旦进行“严
格依序”传送,此bit 被设定为1。
四、Duration/ID位
duration 位,用来预定一段介质使用时间,还有其他功能。
1、Duration:设定NAV
当第15个bit被设定为0时,Duration/ID位就会被用来设定NAV。此数值代表目前所进
行的传输预计使用介质多少微秒。
2、免竞争期间所传送的帧
在免竞争期间(contention-free period,简称CFP),第14 个bit 为0 ,第15 个bit 为1。其他所有bit 均为0,因此duration/ID位的值为32768。这个数值被解读为NAV。它让没有收到Beacon(信标)帧的任何工作站,得以公告免竞争期间,以便将NAV 更新为适当的数值,避免干扰到免竞争传输。
3、PS-Poll 帧
在PS-Poll(省电模式-轮询)帧中,第14与第15个bit会被同时设定为1。移动式工作
站可以关闭天线以达到省电目的。休眠中的工作站必须定期醒来。为确保不致丢失任何帧,从休
眠状态醒来的工作站必须送出一个PS-Poll 帧,以便从基站取得之前暂存的任何帧。
五、Address位
一个802.11 帧最多可以包含四个地址位。这些位地址位均经过编号,因为随着帧类型不同,
这些位的作用也有所差异(详见第4 章)。基本上,Address 1 代表接收端,Address 2 代表传送端,Address3 位被接收端拿来过虑地址。
址位本身的长度有48个bit。如果传送给实际介质的第一个bit为0,该地址位代表单一工作站(单播 unicast)。如果第一个bit为1,该地址代表一组实际工作站,称为组播(多点传
播 multicast)地址。如果所有bit 均为1,该帧即属广播(broadcast)。
六、Seqctl
顺序控制位,此位的长度为16 个bit,用来重组帧片段以及丢弃重复帧。它由4 个bit 的fragment number(片段编号)位以及12 个bit 的sequencenumber(顺序编号)位所组成。控制帧未使用顺序编号, 因此并无sequence control 位。
请注意,分段的帧序列号是一样的,重传帧的序列号不变。
七、Frame Boby
帧主体(Frame Boby)亦称为数据位,负责在工作站间传送上层数据(payload)。
八、帧检验序列(FCS)
和以太网一样,802.11 帧也是以帧检验序列(framecheck sequence,简称FCS)作为结
束。在以太网上,如果帧的FCS 有误,则随即予以丢弃,否则就会传送给上层协议处理。在
802.11 网络上,通过完整性检验的帧还需接收端送出应答。例如,接收无误的数据帧必须得到正面应答,否则就必须重传。对于未能通过FCS检验的帧,802.11并未提供负面应答机制;在重传之前,工作站就必须等候应答超时。