📦 从数据包看协议:WiFi通信帧结构全解剖
“WiFi其实就是空气中的以太网。”
但与有线以太网不同,WiFi的数据传输依赖 802.11协议帧结构。
你可能在Wireshark里看过Beacon、ACK、Data这些字样,它们究竟是什么?今天我们就把 WiFi 帧结构从头到尾讲清楚。
一、WiFi帧是什么?
在以太网(Ethernet)中,我们传输的是 MAC帧;
而在 WiFi(IEEE 802.11)中,对应的是 802.11帧。
802.11 帧是无线通信中最基础的数据单位,所有控制、管理和数据传输都通过它完成。
WiFi帧 ≈ [MAC头] + [帧体(payload)] + [FCS校验]
二、WiFi帧的三大类
在802.11协议中,所有帧被分为三种类型:
| 类型 | 作用 | 示例帧类型 |
|---|---|---|
| 管理帧(Management Frame) | 建立、维持连接 | Beacon、Probe、Auth、Assoc |
| 控制帧(Control Frame) | 控制介质访问,确认收发 | RTS/CTS、ACK |
| 数据帧(Data Frame) | 传输实际业务数据 | Data、QoS Data、Null Data |
三、802.11通用帧格式(图解)
+------------------------------------------------------------------------------------+
| Frame Control | Duration | Address 1 | Address 2 | Address 3 | Seq Control | ... |
+------------------------------------------------------------------------------------+
| Frame Body (payload, 可选) |
+------------------------------------------------------------------------------------+
| FCS (Frame Check Sequence, 4 bytes) |
+------------------------------------------------------------------------------------+
WiFi 帧不像以太网那样简单,它最多能携带 四个地址字段!
这也是无线通信复杂的原因之一。
四、Frame Control:帧控制字段详解
Frame Control(2 字节)是 WiFi 帧头的灵魂,它决定了帧的类型和作用。
| 位段 | 名称 | 说明 |
|---|---|---|
| 2 bits | Protocol Version | 协议版本(通常是 0) |
| 2 bits | Type | 管理帧 / 控制帧 / 数据帧 |
| 4 bits | Subtype | 具体子类型,如 Beacon / ACK / Data |
| 1 bit | To DS | 发往分布系统(路由器)? |
| 1 bit | From DS | 来自分布系统? |
| 1 bit | More Fragments | 是否有后续分片 |
| 1 bit | Retry | 是否为重传帧 |
| 1 bit | Power Management | 是否进入省电模式 |
| 1 bit | More Data | 是否有更多数据要发 |
| 1 bit | Protected Frame | 是否加密(WEP/WPA) |
| 1 bit | Order | 是否顺序传输 |
💡 举个例子:
- Beacon帧:Type=00,Subtype=1000
- ACK帧:Type=01,Subtype=1101
- Data帧:Type=10,Subtype=0000
五、地址字段(Address 1~4)逻辑超清晰图
在以太网中,我们只有源地址和目的地址。
但在 WiFi 中,数据可能穿过 STA ↔ AP ↔ DS(有线分布系统),所以最多要四个地址字段。
Address 1:接收端MAC(Receiver)
Address 2:发送端MAC(Transmitter)
Address 3:最终目的或源(Depends on ToDS/FromDS)
Address 4:用于 Mesh 或 WDS 扩展链路
| To DS | From DS | Address 1 | Address 2 | Address 3 | Address 4 | 场景 |
|---|---|---|---|---|---|---|
| 0 | 0 | 接收方 | 发送方 | BSSID | - | STA ↔ STA |
| 0 | 1 | 接收方 | AP | 源地址 | - | AP → STA |
| 1 | 0 | AP | 发送方 | 目的地址 | - | STA → AP |
| 1 | 1 | 下个AP | 上个AP | 目的 | 源 | WDS / Mesh |
六、控制帧:无线通信的“秩序维护者”
控制帧的作用是管理信道竞争与确认机制。
| 控制帧类型 | 功能 | 描述 |
|---|---|---|
| RTS (Request To Send) | 请求发送 | 避免冲突(CSMA/CA协议的一部分) |
| CTS (Clear To Send) | 允许发送 | 响应RTS |
| ACK | 确认收到 | 确保可靠性 |
| PS-Poll | 省电唤醒 | 终端请求数据 |
👉 在WiFi中,没有“线”保证谁先说话,只能靠RTS/CTS机制和ACK确认来维持秩序。
七、管理帧:WiFi连接的“社交礼仪”
管理帧让设备知道谁是谁,谁能连,怎么连。
| 子类型 | 说明 | 对应阶段 |
|---|---|---|
| Beacon | 广播网络信息 | 扫描阶段 |
| Probe Request / Response | 主动/被动发现 | 扫描阶段 |
| Authentication | 认证 | 连接阶段 |
| Association Request / Response | 关联 | 连接阶段 |
| Deauthentication / Disassociation | 断开 | 断线阶段 |
八、数据帧:业务传输主力军
数据帧承载着真正的上层数据,比如 TCP/IP、HTTP、MQTT 等。
802.11 Header → LLC Header → IP Header → TCP Header → Payload → FCS
WiFi帧在传输时会被多层封装解封:
TCP 数据包 → IP → LLC → WiFi MAC → PHY
如果你用 Wireshark 抓包,会看到每一层的协议头都有对应字段。
九、一个完整WiFi数据帧示意图(文字版)
+----------------------------------------------------------------------------------+
| Frame Control | Duration | Addr1 | Addr2 | Addr3 | Seq | Addr4 | QoS | HT Ctrl |
+----------------------------------------------------------------------------------+
| -------------- MAC Header 24~30 bytes -------------- |
| ----------------- Payload (0~2312 bytes) ---------------- |
| FCS (4 bytes) |
+----------------------------------------------------------------------------------+
💬 在 Wireshark 里,你会看到:
- Frame Control: 0x0208 (Data)
- Duration: 314 µs
- Receiver: 64:bc:0c:12:aa:77
- Transmitter: 78:11:dc:af:b9:09
- Sequence: 1873
- Frame Check Sequence: OK
🔍 十、如何实际抓取WiFi帧?
1️⃣ 网卡必须支持 Monitor Mode(监听模式)
2️⃣ 使用工具:
- Wireshark(推荐)
- airodump-ng(命令行)
3️⃣ 抓包时选择信道(channel)并过滤wlan.fc.type/subtype字段
比如:
wlan.fc.type_subtype == 8→ Beacon帧wlan.fc.type_subtype == 32→ QoS Data
✅ 十一、总结
| 类型 | 功能 | 示例帧 | 常见场景 |
|---|---|---|---|
| 管理帧 | 网络发现与连接 | Beacon、Probe | 连接前阶段 |
| 控制帧 | 信道竞争与确认 | RTS、CTS、ACK | 通信控制 |
| 数据帧 | 传输业务数据 | Data | 正常通信 |
💡 记住一句话:
WiFi通信的本质是 —— 管理帧让你进门,控制帧让你别抢话,数据帧才是真正的聊天内容。
📘 延伸阅读推荐:
* 《Beacon帧、Probe帧你必须懂,搞WiFi通信绕不开它们!》
* 《WiFi连接背后的握手过程,你的设备是如何“入网”的?》
* 《SoftAP、Station、Mesh 到底有什么区别?一文读懂WiFi连接模式!》


1万+

被折叠的 条评论
为什么被折叠?



