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 校验码

需要注意的是,有些组成部分在有些帧里并不是必须的。
80211_frame

帧类型分类

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 快速漫游。

🔍 管理帧(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(块确认)
      • 用于聚合帧传输的确认。

🔍 控制帧(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 帧。

🔍 数据帧(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. 连接过程

  • BeaconProbe Request/ResponseAuthenticationAssociation Request/ResponseData
  • 示例:设备开机后扫描 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 数据传输 吞吐量低、加密问题

参考