摘要
- 802.11和Wifi技术并不是同一个东西。Wifi标准是802.11标准的一个子集,并且是Wi-Fi联盟负责管理。
- 802.11物理层PHY是介质访问控制层MAC个无线介质之间的接口,它传输个接收共享无线介质上的数据帧。
- 802.11将PHY进一步划分为两个组成元件:
- 物理层收敛程序(Physical Layer ConvergenceProcedure,简称PLCP),负责将MAC帧对映到传输介质;
- 实际搭配介质Physical Medium Dependent,简称PMD),负责传送这些帧。
- 这篇文章主要描述802.11 MPDU帧格式的描述及应用。
802.11帧格式MPDU(MAC层协议数据单元)
帧控制结构FC(Frame Control):
- Version:协议版本号,通常是0。
- Type:帧类型,主要有3种类型。
- 控制帧(0b01):用于竞争期间的握手通信和正向确认、结束非竞争期等。
- 管理帧(0b00): 主要用于STA与AP之间协商、关系的控制,如关联、认证、同步等。
- 数据帧(0b10):用于在竞争期和非竞争期传输数据。
- Sub Type:帧的子类型。
- 管理帧(0b00)子类型描述:
Type | 帧类型描述 | Sub Type | 帧子类型描述 |
---|---|---|---|
0b00 | 管理帧 | 0b0000 | 关联请求 |
0b00 | 管理帧 | 0b0001 | 关联响应 |
0b00 | 管理帧 | 0b0010 | 重关联请求 |
0b00 | 管理帧 | 0b0011 | 重关联响应 |
0b00 | 管理帧 | 0b0100 | 探测请求 |
0b00 | 管理帧 | 0b0101 | 探测响应 |
0b00 | 管理帧 | 0b0110 ~ 0b0111 | 保留 |
0b00 | 管理帧 | 0b1000 | 信标 |
0b00 | 管理帧 | 0b1001 | ATIM |
0b00 | 管理帧 | 0b1010 | 去关联 |
0b00 | 管理帧 | 0b1011 | 认证 |
0b00 | 管理帧 | 0b1100 | 去认证 |
0b00 | 管理帧 | 0b1101 | 功能帧 |
0b00 | 管理帧 | 0b1110 | 无需确认的功能帧 |
0b00 | 管理帧 | 0b1111 | 保留 |
- 控制帧(0b01)子类型描述:
Type | 帧类型描述 | Sub Type | 帧子类型描述 |
---|---|---|---|
0b01 | 控制帧 | 0b0000 ~ 0b0110 | 保留 |
0b01 | 控制帧 | 0b0111 | 控制包裹 |
0b01 | 控制帧 | 0b1000 | 块确认请求 |
0b01 | 控制帧 | 0b1001 | 块确认 |
0b01 | 控制帧 | 0b1010 | PS-POLL |
0b01 | 控制帧 | 0b1011 | RST |
0b01 | 控制帧 | 0b1100 | CTS |
0b01 | 控制帧 | 0b1101 | ACK |
0b01 | 控制帧 | 0b1110 | CF-End |
0b01 | 控制帧 | 0b1111 | CF-End CF-Ack |
- 数据帧(0b10)子类型描述:
Type | 帧类型描述 | Sub Type | 帧子类型描述 |
---|---|---|---|
0b10 | 控制帧 | 0b0000 | 数据 |
0b10 | 控制帧 | 0b0001 | 数据 CF-Ack |
0b10 | 控制帧 | 0b0010 | 数据 CF-Poll |
0b10 | 控制帧 | 0b0011 | 数据 CF-Ack CF-Poll |
0b10 | 控制帧 | 0b0100 | 空(无数据) |
0b10 | 控制帧 | 0b0101 | CF-Ack(无数据) |
0b10 | 控制帧 | 0b0110 | CF-Poll(无数据) |
0b10 | 控制帧 | 0b0111 | CF-Ack CF-Poll(无数据) |
0b10 | 控制帧 | 0b1000 | QoS 数据 |
0b10 | 控制帧 | 0b1001 | QoS 数据 CF-Ack |
0b10 | 控制帧 | 0b1010 | QoS 数据 CF-Poll |
0b10 | 控制帧 | 0b1011 | QoS 数据 CF-Ack CF-Poll |
0b10 | 控制帧 | 0b1100 | QoS 空(无数据) |
0b10 | 控制帧 | 0b1101 | 保留 |
0b10 | 控制帧 | 0b1110 | QoS CF-Poll(无数据) |
0b10 | 控制帧 | 0b1111 | QoS CF-Ack CF-Poll(无数据) |
- To DS:表明该帧是否是BSS向DS发送的帧。
- From DS: 表明该帧是否是DS向BSS发送的帧。
- More Fragment:用于说明长帧被分段的情况,是否还有其它的帧,如果有则该值设置为1。
- Retry(重传域): 表示该分段是先前传输分段的重发帧。
- Power Management: 表示传输帧以后,站所采用的电源管理模式。
- More Data: 表示有很多帧缓存到站中。即至少还有一个数据帧要发送给STA是设置为1。
- Protected Frame: 表示根据WEP(Wired Equivalent Privacy)算法对帧主体进行加密。如果帧体部分包含被密钥套处理过的数据,则设置为1,否则设置为0。
- Order(序号域): 在长帧分段传送时,该域设置为1表示接受者应该严格按照顺序处理该帧,否则设置为0
持续时间/标识 Dur/ID(Duration/ID):
- 表明该帧和它的确认帧将会占用信道多长时间,Duration 值用于网络分配向量(NAV)计算。
地址域 Address Fields:
- Addr1(Destination Address): 目的地址,即负责将帧交付上层协议处理的工作站
- Addr2(Source Address): 源地址,传送的来源
- Addr3(BSS ID): 接收端地址,负责处理该帧的无线工作站
序列控制域 SC(Sequence Control)
- 用于过滤重复帧。
- MSDU(MAC Server Data Unit), 12位序列号(Sequence Number)
- MMSDU(MAC Management Server Data Unit), 4位片段号(Fragment Number)组成。
帧内容 Frame Body
- 发送或接收的信息。对于不同类型的数据帧来说,这个域的格式差别较大.
校验 FCS(CRC)
- 包括32位的循环冗余校验(CRC)。
应用
- 如上图,是通过wireshark抓到802.11的帧,可以看到该帧的版本为0,类型为管理帧类型,子类型为探测请求。