首页 关于
树枝想去撕裂天空 / 却只戳了几个微小的窟窿 / 它透出天外的光亮 / 人们把它叫做月亮和星星
目录

802.11帧结构

下图显示了802.11网络的帧结构。一般802.11的网络帧都是由9个字段构成的。

802.11帧结构

1. Frame Control

所有的802.11帧都是由2字节的帧控制字段开始的,包括如下的字段:

表1 802.11的Type和Subtype

Type Subtype 功能描述
管理帧2b'00 4b'0000 关联请求(Association Request)
4b'0001 关联响应(Association Response)
4b'0010 重新关联请求(Reassociation Request)
4b'0011 重新关联响应(Reassociation Response)
4b'0100 探测请求(Probe Request)
4b'0101 探测响应(Probe Response)
4b'1000 信标(Beacon)
4b'1001 通知传输指示消息(Announcement traffic indication message, ATIM)
4b'1010 取消关联(Disassociation)
4b'1011 身份验证(Authentication)
4b'1100 解除身份验证(Deauthentication)
控制帧2b'01 4b'1010 省电-轮询(Power Save(PS)-Poll)
4b'1011 请求发送(Request to Send, RTS)
4b'1100 清除发送(Clear to Send, CTS)
4b'1101 确认接收(Acknowledgment, ACK)
4b'1110 无竞争周期结束(Contenion-Free-End, CF-End)
4b'1111 CF-End + CF-ACK
数据帧2b'10 4b'0000 数据(Data)
4b'0001 Data + CF-ACK
4b'0010 Data + CF-Poll
4b'0011 Data + CF-ACK + CF-Poll
4b'0100 空数据(Null)
4b'0101 CF-ACK(无数据传送)
4b'0110 CF-Poll(无数据传送)
4b'0111 Data + CF-ACK + CF-Poll
4b'1000 Qos Data
4b'1001 Qos Data + CF-ACK
4b'1010 Qos Data + CF-Poll
4b'1011 Qos Data + CF-ACK + CF-Poll
4b'1100 Qos空数据(Null)
4b'1101 Qos CF-ACK(无数据传送)
4b'1110 Qos CF-Poll(无数据传送)
4b'1111 Qos Data + CF-ACK + CF-Poll

2. Duration ID

Frame Control之后就是Duration ID。 此字段与我们在802.11简介中介绍的媒介访问时机有重要的关系。 如下图所示,有三种形式:

Duration字段

3. Address字段

在802.11的帧结构中有4个Address字段,在不同类型的帧中,它们具有不同的意义。大多数情况下只会用到其中的3个地址,Address1表示接收端地址,Address2表示发送端地址, Address3常用作掩码过滤地址。比如说在基础结构网络中,Address3就常被拿来判定接收的帧是否属于关联的网络。

802.11网络的寻址方式与以太网一致,也是用48位的数据来表示一个地址。如果第一位为0,则该地址代表单一设备,也称为单播(unicast)。 如果第一位为1则代表一组Station,称为组播(multicast),如果所有位都是1的话就是广播(broadcast)的形式,发送给所有的Station。

4. Sequence Control字段

在Address字段中间有一个顺序控制(Sequence Control)字段,它由4位的片段编号(fragment number)和12位的顺序编号(sequence number)。 上层吧帧交给MAC时,就会为每一个帧赋予一个顺序编号。如果是重传帧,顺序编号是不会改变的。如果需要拆分发送,则所有的帧片段都是一样的, 它们之间的区别就在于片段编号。第一个片段编号为0,其后的各个片段的序号就会累加。

5. Frame Body字段

Frame Body字段中往往记录的是通信中实际的数据,所以该字段也是数据字段。它最多可以传送2304个字节的数据(为了能够支持WEP, 各供应商在具体实现的时候通常是支持2312个字节的数据)。802.11的LLC需要占据8个字节,因而最多可以传送2296个字节的数据。

6. FCS字段

802.11帧是以帧校验序列(Frame Check Sequence, FCS)结束的,通常是一种CSC(Cyclic Redundancy Check)校验位。 FCS用于检查接收到的帧的完整性。上层应用将要发送的帧传递给MAC,MAC会先计算FCS,然后依次将之通过射频等无限媒介发送出去。 接收端在接收到数据后也计算一次FCS,然后与接收到的FCS对比。若不一致,则在数据传送的过程中一定发生了错误。发生了错误后,就应该重传。




Copyright @ 高乙超. All Rights Reserved. 京ICP备16033081号-1