MU-PPDU:
我们已在另一篇文章中探讨过 MU-OFDMA 传输的第一部分(MU 触发帧)。
当满足以下任一条件时:
- AP 已发送 MU-RTS 触发帧
- 设备返回 CTS 响应,或 AP 主动发送 CTS
此时 AP 即可开始发送数据。我们会看到 AP 向触发帧中包含 AID(关联标识符)的客户端设备发送 MU PPDU。
当 AP 收到客户端设备返回的 ACK(确认帧)后,本次传输流程即完成。

图 1:(采用 MU-RTS/CTS 及 Nav 设置的 MU-OFDMA 传输)
在我们开始用 Wireshark 分析 MU-PPDU 之前,有必要先了解 802.11ax 标准中存在多种不同的帧格式。
- HE-SU:这是单站点到另一站点的传输方式,属于单用户模式(上下行通用,UL-DL)。

HE-EXT-SU
这种 PPDU 适用于远距离传输
- 单用户模式(上下行通用,UL-DL)
- 专为户外场景设计(长距离传输)
- 仅支持 20MHz 带宽,采用固定的调制与编码方式

HE-MU
MU-PPDU 用于下行 MU-OFDMA 传输,我们将在本文档中详细讨论这种模式。
- 多用户模式(仅下行,DL)
- 支持一个或多个用户

HE-TRIG
- 基于触发帧的 PPDU(仅上行,UL)
- 用于响应接入点(AP)发出的触发帧
- 承载单用户传输数据

同样需要了解的是,在 IEEE 802.11-2016 标准中,前导码(preamble)被分为两部分:
一部分是传统前导码(legacy part),这是所有帧都包含的通用部分;
另一部分则是**PHY 相关前导码**,其内容取决于所使用的物理层(PHY)类型。

图 2:802.11 帧前导码
虽然前导码的信息很重要,但可能不是所有人都感兴趣。
因此,我们将重点放在更吸引人的部分 ------HE-SIGA 和 HE-SIGB 信息字段,它们与 MU-OFDMA 或 MU-MIMO 技术直接相关。
- L-STF、L-LTF 和 L-SIG 都是传统字段,存在于所有 PPDU 格式中。
- RL-SIG(重复传统 SIG) 的作用是确认帧的类型,判断其为传统 OFDM、HT、VHT 还是 HE。

图 3:MU-PPDU 帧格式
在本文中,我们将仅聚焦两个字段:
- HE-SIG-A 字段
- HE-SIG-B 字段
HE-SIG-A 字段
HE-SIG-A 字段承载了解析 HE-PPDU 所需的信息。其内容会根据帧的类型而变化。
例如,HE SU PPDU、HE ER SU PPDU 和 HE MU PPDU 的 HE-SIG-A 字段内容各不相同。我们将仅关注 MU-OFDMA 传输中的 MU PPDU。
HE-SIG-B 字段
SIG-B 字段提供了与 OFDMA 和下行 MU-MIMO 资源分配相关的必要信息。
该字段仅存在于多用户传输中。
因此,可以说抓包文件(PCAP)中的大部分 HE 信息数据都来自 SIG-A。
单用户传输的 PPDU 中仅包含 HE 信息字段,如下方图 7 所示。

图 4:(单用户 PPDU)
我们将借助 Wireshark,通过展开 MU-PPDU 来识别抓包文件(PCAP)中的这两个字段。
注意 :在 PCAP 文件的 MU-PPDU 中,并没有名为 SIG-A 或 SIG-B 的字段,而是用 HE 信息(HE information) 和 HE-MU 信息(HE-MU information) 分别表示 SIG-A 和 SIG-B 的内容。
理论上,抓包文件可以对这些字段进行更清晰的命名或排列,这样就不会混淆哪些字段属于 SIG-A,哪些属于 SIG-B 了。

图 5:MU-PPDU 抓包(PCAP)
既然我们正在分析 MU-PPDU,那么在抓包文件(PCAP)中就会同时包含这两个字段:
- HE 信息(HE information)
- HE-MU 信息(HE-MU information)
HE 信息字段还可以进一步细分为多个子字段。
前两个子字段 HE data 1 和 HE data 2 仅为状态信息,用于指示某些值是已知还是未知。
接下来我会逐一解析这些字段,梳理它们的含义,并将其归类到 SIG-A 或 SIG-B 中。
HE 信息字段:

图 5:HE 字段
从 Data 3 到 Data 6 的子字段,以及 HE-MU 信息字段,包含了来自 SIG-A 和 SIG-B 的信息。

图 6:Data 3 至 Data 6
HE-MU 信息:
HE-MU 信息仅在 MU-PPDU 中存在,因此该字段的大部分数据都对应 SIG-B。

图 8:HE-MU 信息
HE SIG-B 内容信道包含一个公共字段(如果存在的话),其后是用户专属字段。
如果 SIG-A 中的 HE-SIG-B 压缩字段值为 1(表示全带宽 MU-MIMO),则公共字段不会出现。
但正如上方图 6 所示,来自 SIG-A 的 Flag2 SIG-B 压缩字段为 false,这意味着它不是全带宽 MU-MIMO,因此在 MU-PPDU 中存在公共字段。

HE-MU 信息结构:
- Flag1:如上方图 8 所示,所有 Flag1 子字段均为状态字段。
- Flag2:部分子字段为状态字段,部分子字段包含具体数值,详见下方表 1。
- Channel 1 RU's(信道 1 的资源单元)
- Channel 2 RU's(信道 2 的资源单元)
注意 :目前在抓包文件(PCAP)中,尚不清楚哪些元素属于 SIG-B 公共字段,哪些属于用户专属字段。
这会带来一些混淆,因为 SIG-A 和 SIG-B 的元素会同时显示在 HE 信息和 HE-MU 信息中。
表 2:MU-HE 信息字段

现在让我们把这些信息整合起来:
- 如上方图 8 所示,来自 SIG-A 的 Flag2 SIG-B 压缩字段为 false,这意味着当前不是全带宽 MU-MIMO,因此 MU-PPDU 中存在公共字段,也说明我们正在使用资源单元(RU)。
- 当 HE-SIG-A 字段中的带宽值为 2、4 或 5 时,MU-HE 信息显示 N=2(表示 80 MHz HE MU PPDU)。
- SIG-B 符号数 Flag2 显示有 4 台设备。
- 综上,我们在 80 MHz 带宽上使用了资源单元,且连接了 4 台设备。
信道 1 & 信道 2
我们还可以看到信道 1 和信道 2 的相关信息。
信道表格展示了资源单元(RU)分配的比特索引。
信道 1 或信道 2 的生效情况取决于信道带宽:
- 信道 1 的 "已知" 字段表示信道 1 上捕获到了数据,且该信道从 20 MHz 带宽开始启用。
- 信道 2 的 "已知" 字段表示 40 MHz 或更高带宽上捕获到了数据;如果带宽仅为 20 MHz,该字段值应为 0。
表 3:信道 1

表 4:信道 2

让我们看看在抓包文件(PCAP)中,信道 1 和信道 2 是如何呈现的。
(表 3:80MHz 带宽下的 RU 分配)
现在我们来总结完整的下行 MU-OFDMA 流程:
- SIG-B 中包含 MU-PPDU 内 MU-OFDMA 的相关信息。
- 我们的信道带宽为 80 MHz。
- 接入点(AP)向多台设备发送触发帧。
- AP 在发送 MU - 触发帧后,发送 CTS(清除发送)帧。
- AP 向所有客户端发送 MU-PPDU。
细节补充
- HE 信息字段显示该帧的每个资源单元(RU)包含 242 个音调(图 8)。
- MU-HE 信息字段的 Flag2 中带宽值为 2,这表明带宽大于 20 MHz,即我们已知的 80 MHz。
- SIG-B 压缩字段为 false,表示这不是全带宽传输。
- SIG-B 符号数显示有 4 个客户端。
- 信道 1 和信道 2显示比特索引为 192,可参考 RU 分配表。

图 8:展示 MU-OFDMA 的 PPDU
总结:
通过本文可以知道MU-PPDU是802.11ax下行多用户传输的PPDU格式,AP满足触发帧与CTS条件后才能进行发送。在其含传统前导码与HE-SIGA、HE-SIGB字段,抓包中对应HE信息和HE-MU信息,前者含解析信息,后者承载资源分配数据。