WIFI无线网络之802.11帧
WIFI无线网络之802.11帧
概述
在 IEEE 802.11 协议中,Wi-Fi 帧 是无线通信的基本单元,用于传输数据、管理连接、控制介质访问等。
Wi-Fi帧分为 三大类:管理帧(Management Frame)、控制帧(Control Frame)和数据帧(Data Frame)。
以下是各类帧的详细分类、功能及常见子类型。
📦 802.11帧的通用结构
所有802.11帧的通用结构如下:
字段 | 长度 | 描述 |
---|---|---|
Frame Control | 2 字节 | 定义帧类型、子类型、方向、加密等标志 |
Duration/ID | 2 字节 | 用于介质占用时间(RTS/CTS)或关联 ID |
Address 1-4 | 6 字节/地址 | 包含 MAC 地址(DA、SA、BSSID、Transmitter 等) |
Sequence Control | 2 字节 | 分片编号和序列号 |
Frame Body | 可变长 | 数据或管理信息(如 SSID、能力信息) |
FCS(Frame Check Sequence) | 4 字节 | CRC 校验码 |
需要注意的是,有些组成部分在有些帧里并不是必须的。
帧类型分类
1. 管理帧(Management Frame)
- 作用:用于网络发现、连接管理、身份验证、关联、切换等。
- 常见子类型:
- Beacon(信标帧):
- 由 AP 周期性广播,包含 SSID、信道、加密方式等信息。
- 用于设备扫描和同步时间。
- Probe Request(探测请求):
- 设备主动发送,寻找可用 AP。
- Probe Response(探测响应):
- AP 对 Probe Request 的响应,包含详细网络信息。
- Authentication(认证):
- 设备与 AP 进行身份验证(如 Open System 或 Shared Key)。
- Deauthentication(取消认证):
- 强制断开认证状态(如密码错误)。
- Association Request(关联请求):
- 设备请求与 AP 建立关联(包含能力信息)。
- Association Response(关联响应):
- AP 回复关联结果(成功或失败)。
- Reassociation Request/Response(重新关联):
- 用于设备在 AP 间切换(漫游)。
- Disassociation(取消关联):
- 主动断开关联(如切换 AP)。
- Action Frame(动作帧):
- 用于特定操作(如测量请求、信道切换、块确认)。
- Beacon Report(信标报告):
- 用于 802.11k/v/r 快速漫游。
- Beacon(信标帧):
🔍 管理帧(Wireshark 过滤)示例:
wlan.fc.type == 0
2. 控制帧(Control Frame)
- 作用:用于介质访问控制(如 RTS/CTS、ACK/NACK)。
- 常见子类型:
- RTS(Request to Send):
- 设备请求发送数据,避免冲突。
- CTS(Clear to Send):
- AP 回复 CTS,允许设备发送数据。
- ACK(Acknowledgment):
- 确认数据帧接收成功。
- PS-Poll(Power Save Poll):
- 节能模式设备请求缓存数据。
- Block Ack Request/Response(块确认):
- 用于聚合帧传输的确认。
- RTS(Request to Send):
🔍 控制帧(Wireshark 过滤)示例:
wlan.fc.type == 1
3. 数据帧(Data Frame)
- 作用:用于传输用户数据(如 TCP/IP 数据包)。
- 常见子类型:
- Data:
- 普通数据帧(未加密或 WEP 加密)。
- Data + CF-Ack:
- 带确认的数据帧(用于 PCF 模式)。
- Data + CF-Poll:
- 带轮询的数据帧。
- Data + CF-Ack + CF-Poll:
- 带确认和轮询的数据帧。
- Null Function Data:
- 无数据负载的帧(用于保活或节能模式)。
- QoS Data:
- 支持 WMM/QoS 的数据帧(含 TID 优先级)。
- QoS Null:
- 无数据负载的 QoS 帧。
- Data:
🔍 数据帧(Wireshark 过滤)示例:
wlan.fc.type == 2
帧控制字段(Frame Control)
Frame Control
字段是 Wi-Fi 帧的关键部分,定义了帧的类型和子类型:
位 | 名称 | 描述 |
---|---|---|
0-1 | Protocol Version | 协议版本(通常为 0) |
2 | Type | 帧类型(0=管理帧,1=控制帧,2=数据帧) |
3-6 | Subtype | 子类型(如 Beacon=4、Data=0) |
7 | To DS | 是否发送到 DS(Distribution System) |
8 | From DS | 是否来自 DS |
9 | More Fragments | 是否还有更多分片 |
10 | Retry | 是否重传 |
11 | Power Management | 设备是否进入节能模式 |
12 | More Data | 是否有更多缓存数据 |
13 | Protected Frame | 是否加密(WPA/WPA2/WPA3) |
14 | Order | 是否有序传输(用于高速模式) |
常见帧的实际应用场景
1. 连接过程
- Beacon → Probe Request/Response → Authentication → Association Request/Response → Data。
- 示例:设备开机后扫描 AP → 选择目标 AP → 认证 → 关联 → 开始数据通信。
2. 快速漫游(802.11r)
- Reassociation Request/Response + FT Action Frame(Fast BSS Transition)。
- 示例:设备在 AP 间切换时,通过 FT 协议快速完成认证和关联。
3. 节能模式(Power Save)
- Null Function Data + PS-Poll。
- 示例:设备进入节能模式后,仅定期发送 PS-Poll 请求缓存数据。
4. 安全通信(WPA/WPA2/WPA3)
- EAPOL(Extensible Authentication Protocol over LAN)帧:
- 用于四次握手(Pairwise Key Handshake)和组密钥更新。
- 子类型为
Data
,但通过Protected Frame
标志加密。
🛠️ 五、抓包分析工具与命令
1. Wireshark
- 过滤管理帧:
wlan.fc.type == 0
- 过滤 Beacon 帧:
wlan.fc.type_subtype == 0x08
- 过滤 ACK 帧:
wlan.fc.type_subtype == 0x1d
2. tcpdump
- 捕获所有帧:
sudo tcpdump -i mon0 -w wifi.pcap
- 捕获管理帧:
sudo tcpdump -i mon0 "wlan type mgt" -w wifi_mgmt.pcap
3. airodump-ng
- 扫描周围 AP 和客户端:
sudo airodump-ng mon0
📊 常见帧的统计与分析
帧类型 | 子类型 | 用途 | 常见问题 |
---|---|---|---|
Beacon | 0x08 | 网络广播 | 信道拥堵、隐藏 SSID |
Probe Request | 0x04 | 主动扫描 | 信号弱、干扰 |
Authentication | 0x0b | 身份验证 | 密码错误、WEP 已淘汰 |
Association Request | 0x01 | 关联请求 | 能力不匹配、信道冲突 |
ACK | 0x1d | 确认接收 | 丢包率高、信号干扰 |
Data | 0x00 | 数据传输 | 吞吐量低、加密问题 |
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论