在 802.11(Wi-Fi)协议中,控制帧(Control Frame) 是一种用于管理和协调无线网络通信的帧类型,控制帧的主要作用是帮助无线设备(如客户端和接入点)管理对无线介质的访问,并确保数据帧的传输过程有效且可靠。
1. 802.11 控制帧的作用
控制帧并不携带用户数据,而是用于:
1. 控制访问无线介质(即信道);
2. 确认数据帧的接收,避免数据重传;
3. 管理数据帧传输中的流程控制;
4. 协调无线设备之间的通信(如功率管理、清除信道等)。
2. 802.11 控制帧格式
与数据帧相比,控制帧的结构相对简单,包含的字段较少,因为它们主要用于网络的控制和管理任务,控制帧的一般结构如下:
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration ID | 2 bytes
+-----------------------+
| Address 1 | 6 bytes
+-----------------------+
| Address 2 (Optional) | 6 bytes (依子类型而定)
+-----------------------+
| FCS (Frame Check Sequence) | 4 bytes
+-----------------------+
3. 802.11 控制帧的字段说明
-
Frame Control :
和数据帧一样,帧控制字段定义了帧的类型、子类型以及控制信息。Type 字段:指示帧的类型,对于控制帧,Type 为 01; Subtype 字段:指定具体的控制帧类型(如 RTS、CTS、ACK 等);
Duration ID :
表示接收设备应等待的时间,用于控制无线介质的访问,防止冲突。Address Fields:
Address 1:目标设备的地址(MAC 地址);
Address 2:在某些控制帧中(如 RTS/CTS),会包含发送设备的地址;FCS:
帧校验序列,使用 CRC-32 算法用于检验数据帧是否在传输过程中出错。
4. 802.11 控制帧的子类型
- RTS(Request to Send,发送请求):
RTS 是一种减少数据帧碰撞的机制,通常用于防止隐蔽节点问题,发送方先发送 RTS 帧,告知接入点或目标设备自己要发送数据,RTS 帧请求接入点或目标设备在信道上保留一定的时间段,用于之后的数据传输。
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration/ID | 2 bytes
+-----------------------+
| Address 1 (Receiver) | 6 bytes
+-----------------------+
| Address 2 (Transmitter)| 6 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
地址字段:
Address 1:目标设备的 MAC 地址;
Address 2:发送设备的 MAC 地址;
- CTS(Clear to Send,清除发送):
接收 RTS 帧后,目标设备会回复 CTS 帧,告知发送设备信道已经清空,它可以发送数据。CTS 帧帮助确保没有其他设备使用信道,避免数据冲突,CTS和RTS一起配合使用,减少隐蔽节点问题,确保信道的可用性。
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration/ID | 2 bytes
+-----------------------+
| Address 1 (Receiver) | 6 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
地址字段:
Address 1:发送设备的 MAC 地址(即之前发送 RTS 帧的设备);
- ACK(Acknowledgment,确认):
ACK 帧用于确认数据帧或其他控制帧(如 RTS、CTS)的成功接收,每当设备成功接收到一个数据帧时,它会发送 ACK 帧以通知发送方传输成功,避免数据的重传。
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration/ID | 2 bytes
+-----------------------+
| Address 1 (Receiver) | 6 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
地址字段:
Address 1:发送设备的 MAC 地址(即数据帧的发送者);
- PS-Poll(Power Save Poll,省电轮询):
省电模式的设备在唤醒后,会发送 PS-Poll 帧请求接入点发送它在休眠期间缓存的数据,PS-Poll 帧告诉接入点,该设备已准备好接收数据。
+-----------------------+
| Frame Control | 2 bytes
+-----------------------+
| Duration/ID | 2 bytes
+-----------------------+
| Address 1 (AP) | 6 bytes
+-----------------------+
| Address 2 (Station) | 6 bytes
+-----------------------+
| FCS (Frame Check Sequence)| 4 bytes
+-----------------------+
地址字段:
Address 1:接入点的 MAC 地址;
Address 2:客户端设备的 MAC 地址;
- Block Ack(块确认):
802.11e 引入的机制,用于在高吞吐量场景下提高数据确认效率,它允许接收方一次确认多个数据帧,而不是单独确认每个帧。
地址字段:
Address 1:目标设备的 MAC 地址;
Address 2:发送设备的 MAC 地址。