【读书笔记】【无线权威指南第五版】802.11数据帧
本文最后更新于 19 天前,其中的信息可能已经有所发展或是发生改变。

数据帧概述

IEEE 802.11-2016标准定义了15种数据帧子类型,最常见的两种数据帧是数据子类型(通常称为简单数据帧)和QoS数据子类型。二者的区别在于,QoS数据帧的QoS控制字段携带服务类别信息。简单数据帧有时也称为非QoS数据帧

这两种数据帧的帧体都封装有MSDU净荷(上层信息)。出于数据保密性考虑,MSDU净荷通常经过加密。接入点或无线局域网控制器中的集成服务负责解密数据帧的MSDU净荷,然后取出并转换为802.3以太网帧

对于802.11简单数据帧或QoS数据帧,帧体的最大长度由MSDU的最大长度(2304字节以及加密产生的开销决定。以802.11数据帧的帧体为例,WEP加密会产生8字节开销,TKIP加密会产生20字节开销,而CCMP加密会产生16字节开销

15种数据帧子类型中的大多数其实并不存在。在IEEE 802.11-2016标准定义的15种数据帧中,有11种目前仅停留在纸面上。全部15种数据帧子类型如下所示(由于所有PCFHCCA数据帧实际上从未使用过,因此主要关注普通数据帧数据帧、空数据帧、Qos数据帧、Qos空帧子类型即可

类型(Type)字段

比特值帧类型作用
00管理帧发现接入点并加入基本服务集
01控制帧确认传输成功并保留无线介质
10数据帧携带上层MSDU净荷
11扩展帧一种新的、灵活的帧格式

数据帧帧子类型(Subtype)字段

比特值帧类型作用
0000普通数据帧(Data(simple data frame))携带上层协议数据(如IP包),使用DCF(分布式协调)机制传输,无QoS支持(适用于802.11a/b/g)
0001数据 + 无竞争确认(Data +CF-Ack)PCF(点协调功能) 模式下,既传输数据,又对前一个帧进行确认(CF-Ack)。现代Wi-Fi几乎不用PCF
0010数据 + 无竞争轮询(Data +CF-Poll)PCF模式下,AP发送此帧表示“我有数据发给你,同时轮询你是否有数据要发”
0011数据 + 确认 + 轮询(Data +CF-Ack +CF-Poll)同时完成三项功能:传数据、确认前帧、轮询STA。仅用于已废弃的PCF模式
0100空数据帧(无负载)(Null(no data))不携带任何上层数据,但用于维持关联状态(如省电模式下告知AP“我还在线”),或触发响应(如漫游探测)
0101无竞争确认(无数据)(CF-Ack(no data))仅用于PCF模式下的确认,无数据负载
0110无竞争轮询(无数据)(CF-Poll(no data))APPCF周期中轮询STA是否有数据要发送
0111确认 + 轮询(无数据)(CF-Ack +CF-Poll(no data))PCF模式下组合操作,无数据
1000QoS数据帧(QoS Data)最常用的数据帧类型(802.11e及以后)。携带上层数据,并包含QoS控制字段(如TIDEOSPACK policy),支持WMM、语音/视频优先级、A-MPDU聚合等
1001QoS数据 + 确认(QoS Data +CF-Ack)理论上存在,但因PCF已弃用,实际几乎不会出现
1010QoS数据 + 轮询(QoS Data +CF-Poll)同上,仅在PCF + QoS混合场景(极罕见)
1011QoS数据 + 确认 + 轮询(QoS Data +CF-Ack +CF-Poll)同上,基本不用
1100QoS空帧(QoS Null(no data))不携带数据,但包含QoS信息。常用于: • 客户端进入/退出省电模式(通过EOSP位) • 触发AP发送缓存帧 • 保持关联并声明流量类别(如VoIP流保活)
1101保留(Reserved)未使用
1110QoS轮询(无数据)(QoS CF-Poll(no data))理论存在,实际不用(PCF已淘汰)
1111QoS确认+轮询(无数据)(QoS CF-Ack +CF-Poll(no data))同上,废弃

笔者注

由于PCF机制的淘汰,目前实际使用的数据帧类型只有Qos数据帧、Qos空帧、普通数据帧、空数据帧这几种,本文只针对这部分数据帧进行讨论

Qos字段

Qos控制字段(QoS Control)

非DMG PPDU中QoS Control

笔者注:QoS Control field详情见IEEE 802.11-2016文档9.2.4.5

QoS Control字段是一个16位的字段,用于标识该帧所属的业务类别(TC)或业务流(TS),以及与QoSA-MSDUMesh相关的其他信息;这些信息的具体内容会因帧类型、子类型以及发送STA的类型而异
当子类型(Subtype)字段中的QoS子字段等于1时,所有数据帧中均包含QoS控制字段。 在非DMG PPDU中传输时,每个QoS控制字段由五个或八个子字段组成,具体结构取决于发送方(HC或非AP STA)以及帧的类型和子类型

Applicable frame (sub)typesBits 0-3Bit 4Bits 5-6Bit 7Bits 8Bit 9Bit 10Bits 11- 15
QoS CF-Poll and QoS CF- Ack+CF-Poll frames sent by HCTIDEOSPAck PolicyReservedTXOP Limit
QoS Data+CF-Poll and QoS Data+CF-Ack+CF- Poll frames sent by HCTIDEOSPAck PolicyA-MSDU PresentTXOPLimit
QoS Data and QoS Data +CF-Ack frames sent by HCTIDEOSPAck PolicyA-MSDU PresentAP PS Buffer State
QoS Null frames sent by HCTIDEOSPAck PolicyReservedAP PS Buffer State
QoS Data and QoS Data +CF-Ack frames sent by non-APSTAs that are not a TPU buffer STA or a TPU sleep STA in a nonmesh BSSTID0Ack PolicyA-MSDU PresentTXOP Duration Requested
TID1Ack PolicyA-MSDU PresentQueue Size
QoS Null frames sent by non-AP STAs that are not a TPU buffer STA or a TPU sleep STA in a nonmesh BSSTID0Ack PolicyReservedTXOP Duration Requested
TID1Ack PolicyReservedQueue Size
QoS Data and QoS Data +CF-Ack frames sent by TPU buffer STAs in a nonmesh BSSTIDEOSPAck PolicyA-MSDU PresentReserved
QoS Null frames sent by TPU buffer STAs in a nonmesh BSSTIDEOSPAck PolicyReservedReserved
QoS Data and QoS Data +CF-Ack frames sent by TPU sleep STAs in a nonmesh BSSTIDReservedAck PolicyA-MSDU PresentReserved
QoS Null frames sent by TPU sleep STAs in a nonmesh BSSTIDReservedAck PolicyReservedReserved
All frames sent by mesh STAs in a mesh BSSTIDEOSPAck PolicyA-MSDU PresentMesh Control PresentMesh Power Save LevelRSPIReserved

TID子字段:TID子字段用于标识帧体(Frame Body)字段中对应的MSDU(或其分片)或A-MSDU所属的业务类别(TC)或业务流(TS)。此外,当通过设置“请求的TXOP时长”(TXOP duration requested)或“队列大小”(queue size)来请求TXOP时,TID子字段也用于标识所请求TXOP的业务所属的TCTS

EOSP子字段:EOSP子字段长度为1位,由混合协调器(HC)用于指示当前服务周期(SP)的结束,或由DMG STA用于指示当前SP的结束,或指示目的地AID为单播地址的当前分配CBAP(信道时间分配)的结束

Ack Policy子字段:Ack Policy(确认策略)子字段长度为2位,用于标识在成功传输MPDU后所遵循的确认策略

TXOP Limit子字段:TXOP Limit(TXOP限制)子字段是一个8位的字段,出现在子类型包含CFPollQoS数据帧中,用于指定在基础结构型BSS中由混合协调器(HC)通过QoS (+)CF-Poll帧所授予的TXOP(传输机会)的时间上限

Queue Size子字段:Queue Size(队列大小)子字段是一个8位的字段,用于指示发送该帧的STA在指定业务类别(TC)或业务流(TS)下所缓存的流量总量。该子字段出现在由非AP STA发送、且其QoS控制字段第4位为1QoS数据帧中。AP可利用Queue Size子字段中的信息来确定分配给该STATXOP时长

TXOP Duration Requested子字段:TXOP Duration Requested(请求的TXOP时长)子字段出现在非Mesh BSS中关联的STA所发送的QoS数据帧中,且要求该帧QoS控制字段的第4位为0。该子字段是一个8位字段,用于指示发送STA为其指定TID的下一次TXOP所需的时长,单位为32微秒

AP PS Buffer State子字段:AP PS缓冲区状态(AP PS Buffer State)子字段是一个8位的字段,用于指示AP针对某STA的省电(PS)缓冲区状态。该子字段进一步细分为三个子字段:

  • 缓冲区状态指示(Buffer State Indicated)
  • 最高优先级已缓存接入类别(Highest-Priority Buffered AC)
  • AP已缓存负载(AP Buffered Load)

A-MSDU Present子字段:A-MSDU存在(A-MSDU Present)子字段长度为1位,用于指示是否存在A-MSDU

Mesh Control Present子字段:Mesh控制存在(Mesh Control Present)子字段长度为1位,用于指示帧体中是否存在Mesh控制字段

Mesh Power Save Level子字段:Mesh节能等级(Mesh Power Save Level)子字段Mesh节能等级(Mesh Power Save Level)子字段长度为1位,用于指示在帧交换序列成功完成后,该Mesh STA针对特定对端所采用的Mesh节能管理模式是深度睡眠模式(deep sleep mode)还是浅度睡眠模式(light sleep mode)

DMG PPDU中QoS Control

DMG PPDU内传输的MPDU所使用的QoS控制字段格式如表所示

Applicable frame (sub-)typesBits 0-3Bit 4Bits 5-6Bit 7Bit 8Bit 9Bits 10-13Bit 14Bit 15
QoS DataTIDEOSPAck PolicyA-MSDU PresentA-MSDU TypeRDG/ More PPDUBuffered ACReservedAC Constraint
QoS NullTIDEOSPAck PolicyReservedReservedRDG/ More PPDUBuffered ACReservedAC Constraint

Receiver Service Period Initiated,RSPI子字段:接收方服务周期启动(Receiver Service Period Initiated,RSPI)子字段长度为1位。该子字段置为0表示:本帧接收方作为所有者的Mesh对等服务周期(mesh peer service period)尚未启动;置为1表示:该Mesh对等服务周期已被启动

A-MSDU Type子字段:A-MSDU类型(A-MSDU Type)子字段长度为1位,用于指示帧体(Frame Body)中所包含的A-MSDU的类型

RDG/More PPDU 子字段:对于DMG帧,QoS控制字段中的RDG/More PPDU子字段的解释方式取决于该帧是由反向传输(Reverse Direction, RD)发起方还是RD响应方发送的

AC Constraint子字段:对于DMG帧,QoS控制字段中的AC约束(AC Constraint)子字段用于指示一个反向传输(RD)数据帧所映射的接入类别(AC)是否被限制为单一AC

Buffered AC 子字段:Buffered AC(已缓存接入类别)子字段是一个4位的位图,用于指示四个接入类别(AC)是否存在已缓存的业务。如果某一位被置为1,则表示对应AC至少有一个缓存单元(BU)已被缓存。该Buffered AC子字段仅在QoS数据帧和QoS空帧(QoS Null frames)中有效,其他情况下为保留字段

Qos信息字段(QoS Info)

笔者注:QoS Control field详情见IEEE 802.11-2016文档9.4.1.17

QoS信息(QoS Info)字段长度为1个字节,包含能力信息位。该字段的具体内容取决于该STA是否位于AP内部

EDCA 参数集更新计数子字段EDCA机制为使用八种不同业务优先级的STA提供差异化的分布式无线介质(WM)接入。该机制定义了四个接入类别(AC),用于支持STA传输具有不同UP的业务。当dot11AlternateEDCAActivated为真时,定义六个发送队列;否则定义四个发送队列
Q-Ack 子字段:dot11QAckOptionImplemented为真时,APQ-Ack子字段置为1,否则置为0
Queue Request子字段:如果AP能够处理QoS数据帧中QoS控制字段内的非零队列大小(Queue Size)子字段,则将队列请求(Queue Request)子字段置为1,否则置为0
TXOP Request子字段: 如果AP能够处理QoS数据帧中QoS控制字段内的非零TXOP请求时长(TXOP Duration Requested)子字段,则将TXOP请求(TXOP Request)子字段置为1,否则置为0

Qos数据帧与非Qos数据帧

IEEE 802.11标准中的QoS(Quality of Service,服务质量)机制是在802.11e修正案中引入的,用于支持不同优先级的数据传输(如语音、视频、普通数据等)。在该机制下,数据帧被分为QoS数据帧和非QoS数据帧。以下是它们的相同点与不同点:

相同点

  1. 都属于数据帧类型
    QoS数据帧和非QoS数据帧都属于IEEE 802.11 MAC帧中的“数据帧”子类型
  2. 基本帧结构相似
    两者都包含标准的MAC帧头(Frame ControlDuration/ID、地址字段等)、帧体(Payload)和FCS(帧校验序列)
  3. 都可用于单播、组播或广播通信
    两种帧都可以用于向单个STA或多播/广播地址发送数据
  4. 都支持加密和完整性保护(如使用 WPA/WPA2/WPA3)
    安全机制对两类帧均适用

不同点

特性非 QoS 数据帧QoS 数据帧
是否包含 QoS 控制字段不包含包含(位于地址字段之后,紧接在帧头中)
QoS 控制字段内容包含TID(Traffic Identifier,0–7)、EOSPACK PolicyTXOP Limit
支持多优先级传输所有流量平等处理支持8个用户优先级(UP),映射到不同的AC(接入类别:AC_VO,AC_VI,AC_BE,AC_BK)
是否支持 A-MSDU / A-MPDU通常不支持(或受限)支持(聚合帧常用于QoS数据帧以提高效率)
是否用于 EDCA 或 HCCA仅使用DCF(分布式协调功能)可用于EDCA(增强型分布式信道访问)或HCCA(混合协调功能控制信道访问)
电源管理支持基本支持(通过PS位)更精细(通过EOSP位指示服务周期结束)
典型应用场景传统Wi-Fi设备、不支持802.11e的设备支持WMM(Wi-Fi Multimedia)的现代设备(如VoIP、视频流)

关键字段差异说明

  • QoS 控制字段(2 字节)
  • TID(Traffic Identifier)3位,标识流量类别(0–7),决定其所属的AC
  • EOSP(End of Service Period)1位,用于节能模式,表示当前帧是服务周期的最后一帧
  • Ack Policy2位,可指定是否需要ACK(例如,对于某些高优先级流可使用No Ack以减少开销)
  • TXOP Limit:在HCCA模式下使用,指示最大TXOP长度

使用场景

QoS终端既能传输QoS数据帧,也能传输非QoS数据帧。只要非QoS设备作为发送方或接收方参与通信,就必须使用非QoS数据帧。广播帧默认以非QoS帧的形式传输;但如果基本服务集中的所有终端都支持QoS,发送方将使用QoS帧作为广播帧。与之类似,多播帧默认以非QoS帧的形式传输;但如果基本服务集中属于多播组成员的所有终端都支持QoS,发送方将使用QoS帧作为多播帧。如下表

发送方接收方使用的数据帧子类型
Qos终端Qos终端简单数据帧(非Qos)
Qos终端Qos终端简单数据帧(非Qos)
Qos终端Qos终端Qos数据帧
Qos终端Qos终端简单数据帧
Qos终端广播简单数据帧
Qos终端多播简单数据帧
Qos终端广播简单数据帧;如果基本服务集中的所有终端都支持QoS,发送方将使用QoS数据帧
Qos终端多播简单数据帧;如果基本服务集中属于多播组的所有终端都支持QoS,发送方将使用QoS数据帧

空数据帧和Qos空帧

IEEE 802.11协议中,空数据帧(Null Data Frame) 和QoS空数据帧(QoS Null Data Frame) 是两类不携带上层数据(即Frame Body为空)的特殊数据帧。它们虽然“空”,但在无线网络中扮演着非常重要的控制和管理角色

主要用途

  • 功率管理(Power Management)
  • 保持连接/心跳机制
  • 触发下行数据传输(配合PS-PollU-APSD)
  • 确认链路活跃性(Link Liveness)

关键字段差异

字段空数据帧QoS 空数据帧
Frame Body
QoS Control字段不存在存在(2字节)
支持TID/UP不支持支持(用于区分业务流)
支持EOSPEnd of Service Period,用于U-APSD
适用协议802.11(原始)802.11e / WMM
是否可用于U-APSD触发

参考文档

《无线局域网权威指南 第五版》

80211-2016规范

上一篇
下一篇