在 802.11(Wi-Fi)协议中,数据帧(Data Frame) 是用于传输用户数据的核心帧类型之一,每个数据帧都包含了帧控制字段、地址信息、数据以及其他控制字段,数据帧是 IEEE 802.11 协议中最常见的帧类型,它主要用于在无线设备之间传递用户数据。
1. 802.11数据帧格式
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration ID | 2 bytes
+-----------------------+
| Address 1 (Receiver) | 6 bytes
+-----------------------+
| Address 2 (Transmitter)| 6 bytes
+-----------------------+
| Address 3 (Depending on Mode)| 6 bytes
+-----------------------+
| Sequence Control | 2 bytes
+-----------------------+
| Address 4 (Optional) | 6 bytes (if used in certain modes)
+-----------------------+
| Frame Body (Data) | 0-2312 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
- Frame Control :帧控制位,描述了数据帧的类型、子类型和一些控制信息,包括加密、功率管理、重试等,Frame control包括如下字段:
protocol(2bit):协议版本,默认为0;
type(2bit):类型定义如下
00:管理帧
01:控制帧
10:数据帧
11:预留
类型和子类型配合使用决定最终帧的类型;
subtype(4bit):子类型,类型和子类型配合使用决定帧的类型;
to ds(1bit):指示帧的目的地和来源,to ds与from ds配合使用决定决定帧的地址;
from ds (1bit) :指示帧的目的地和来源, to ds与from ds配合使用决定决定帧的地址;
more flag(1bit):表示是否有更多的帧片段,分段帧需要把此bit设定为1;
retry(1bit):标识该帧是否是重传的帧,重传的帧会将此bit设定为1,以协助接收端剔除重复的帧;
power management(1bit):此bit用来指出传送端在完成目前的基本帧交换之后是否进入省电模式,1代表工作站即将进入省电模式,0表示不进入;
more data(1bit):指示设备是否有更多数据需要发送,为了服务处于省电模式的工作站,基站会将这些由“传输系统”接收而来的帧加以暂存,基站如果设定此bit,即代表至少有一个帧待传给休眠中的工作站;
protected frame(1bit):安全加密,如果帧受到链路层安全协议的保护,此bit会被设定为1;
order(1bit):表示是否采用严格的顺序传输,此bit为1代表帧与帧片段严格按照顺序传送;
- Duration ID:Duration 字段用于控制无线介质的访问,表示该帧将占用介质的时间,支持3种功能,设定NAV/免竞争期间所传送的帧/PS-Poll帧;
- Address1:帧类型不同地址意义不同,一般表示数据帧的接收方,即该帧要发送给哪个设备;
- Address2:帧类型不同地址意义不同,一般表示发送方,即发送该帧的设备;
- Address3 :帧类型不同地址意义不同,通常用于基础设施模式中,表示该帧的最终目的地址或接入点的地址;
- Sequence Control:帧顺序控制位,用来重组帧片段以及丢弃重复帧,包括 Sequence Number 和 Fragment Number,Sequence Number 用于标识帧序列,防止帧的重复处理;Fragment Number 用于处理帧的分片;
- Address4 (optional):帧类型不同地址意义不同,该地址仅在无线网桥或分布式系统(DS)使用时才需要,通常用于表示源或目标地址(可选字段);
- Frame Body:帧主体,代表实际要传输的数据位,其长度可变;
- FCS:帧检验序列,循环冗余码,一般用来检查所收到的帧的完整性;
2. 802.11数据帧的子类型
802.11 数据帧可以有多个子类型,这些子类型用于不同的场景:
Data:普通的数据帧,用于传输用户数据;
Data + CF-Ack:数据帧带有确认消息(用于点协调功能,PCF);
Data + CF-Poll:数据帧带有轮询信息(PCF);
Null Function:空帧,通常用于状态报告或功率管理信号;
3. 802.11数据帧的地址说明
根据 802.11 的工作模式不同,数据帧的地址字段用途不同,主要有两种常见的模式:
基础设施模式 (Infrastructure Mode):
Address 1:目标设备地址(通常是客户端设备);
Address 2:发送方地址(通常是接入点);
Address 3:数据的目的地地址(例如最终客户端的 MAC 地址);
自组织网络 (Ad-hoc Mode):
Address 1:目标设备的 MAC 地址;
Address 2:发送方设备的 MAC 地址;
Address 3:不使用;
4. 802.11数据帧的传输过程
当一个 802.11 设备(如客户端设备)发送数据帧时,它会根据网络类型和目的地配置好相应的地址字段,然后将数据帧发送到接入点(AP)或直接发送给另一台设备,接入点会根据需要将数据帧转发给目标设备,或者进行一些处理(如协议转换等)。
5. 802.11数据帧的使用场景
数据传输:用于在客户端与接入点之间传递 IP 数据包或其他协议的承载数据;
加密通信:数据帧可能会包含加密信息,通过 WPA、WPA2 或 WEP 加密;
网络层协议传输:通过 802.11 数据帧传输网络层数据,如 IP 包、ARP 请求/响应等。