802.11之控制帧

在 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 控制帧的字段说明

  1. Frame Control :
    和数据帧一样,帧控制字段定义了帧的类型、子类型以及控制信息。

    Type 字段:指示帧的类型,对于控制帧,Type 为 01;
    Subtype 字段:指定具体的控制帧类型(如 RTS、CTS、ACK 等);
    
  2. Duration ID :
    表示接收设备应等待的时间,用于控制无线介质的访问,防止冲突。

  3. Address Fields:
    Address 1:目标设备的地址(MAC 地址);
    Address 2:在某些控制帧中(如 RTS/CTS),会包含发送设备的地址;

  4. FCS:
    帧校验序列,使用 CRC-32 算法用于检验数据帧是否在传输过程中出错。

4. 802.11 控制帧的子类型

  1. 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 地址;

  1. 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 帧的设备);

  1. 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 地址(即数据帧的发送者);

  1. 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 地址;

  1. Block Ack(块确认):
    802.11e 引入的机制,用于在高吞吐量场景下提高数据确认效率,它允许接收方一次确认多个数据帧,而不是单独确认每个帧。
    地址字段:
    Address 1:目标设备的 MAC 地址;
    Address 2:发送设备的 MAC 地址。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容