IEEE 802.11 MAC帧
在IEEE802.11 格式中,位的传送顺序由左到右,最低bit最先出现,最高效bit最后出现,感觉有点像大端对齐和小端对齐的注意事项
-
大端对齐:高内存地址放整数高位 ,低内存地址放整数低位 例如x86 arm都是采用大端对齐
-
小端对其:高内存地址放整数低位, 低内存地址放整数高位 例如unix大型服务器
mac帧格式
一般的802.11 MAC帧
除了Framebody 和FCS 剩下的就是mac 帧头
Frame Control
帧控制占用 2个字节,展开如下:
-
Protocol位
占用2bit,代表协议编号,目前一直是0 -
Type 位 和 Sub type位
Type占2bit,Sub type 占4bit,两个变量指定帧的类型
Type占有4个值 00 01 10 11
Type | 帧类型 |
---|---|
00 | 管理帧 |
01 | 数据帧 |
10 | 控制帧 |
11 | 保留 |
Sub type 决定哪些帧是管理帧 数据帧 控制帧
- Management frames 管理帧(Type=00):用在加入和推出Wi-Fi,处理基站间转移的事情
Sub type | 帧作用 |
---|---|
0010 | Probe Request(探查请求) |
1010 | Probe Request(探查应答) |
0001 | Beacon (引导信号) |
1101 | Authentication(身份验证) |
0011 | Deauthentication(解除认证) |
0000 | Association Request (连接请求) |
1000 | Association Response (连接应答) |
0100 | Reassociation Request(重新连接请求) |
1100 | Reassociation Response(重新连接应答) |
0101 | Disassociation(解除连接) |
1001 | Announcement traffic indication message (ATIM) (数据待传指示通知信号) |
- Control frames 控制帧(Type=10):和数据帧配合使用,提高数据传输的可靠性
Sub type | 帧作用 |
---|---|
0101 | Power Save-Poll(省电模式-轮询) |
1101 | RTS(请求发送) |
0011 | CTS(允许发送) |
1011 | Beacon (引导信号) |
1101 | ACK(确认) |
0111 | CF-End(免竞争期间结束) |
1111 | CF-End(面竞争期间结束) + CF-ACK (面竞争期间回应) |
- Dataframes 数据帧(Type=01):发送包含数据的帧
Sub type | 帧作用 |
---|---|
0000 | Data(数据) |
1000 | Data+CF-ACK |
0101 | Data+CF-Poll |
1100 | Data+CF-ACK+CF-Poll |
0010 | NULL data (无数据,未发送数据) |
1010 | CF-ACK(未发送数据) |
0110 | CF-Poll (未发送数据) |
1110 | Data+CF-ACK+CF-Poll |
0001 | QoS Data(未标准化) |
1001 | QoS Data + CF-ACK(未标准化) |
0101 | QoS Data + CF-Poll(未标准化) |
1101 | QoS Data + CF-ACK+ CF-Poll(未标准化) |
0011 | QoS NULL (未发送数据)(未标准化) |
1011 | QoS CF-ACK (未发送数据)(未标准化) |
1110 | QoS CF-Poll (未发送数据)(未标准化) |
1111 | QoS CF-ACK+CF-Poll (未发送数据)(未标准化) |
- To DS 和 From DS 1 bit
判断这个帧的目的地是否是传输系统,也能看出帧的类型
xxx | To DS = 0 | To DS = 1 |
---|---|---|
From DS = 0 | 所有管理和控制帧 IBSS(非基础型数据帧) | 基础型网络 sta 发送数据帧 |
From DS = 0 | 基础型网络sta 接收到的数据帧 | 无线桥接器的数据帧 |
-
More fragments 1 bit
大型的数据帧需要分段,不需要分段的帧 值为0 ,分段的帧,会显示1,除非最后一个分段帧显示0 -
Retry 1 bit
重传帧 显示1 ,协助接收端去除重复帧 -
Power management 1 bit
设置1 ,表示发送端,发送完这帧,关闭网卡进入省电模式,0表示清醒,一般sta 会设置,基站一直为0 保持清醒 -
More data 1 bit
因为sta 进入省电模式,基站 将帧缓存,基站设定为More data 1,至少有一个帧待传 -
Protected Frame 1 bit
如果用链路层安全协议保护,设置为1 -
Order 1 bit
设置为1 , 进行严格的依次传送
以上就是MAC 帧头的 Frame Control