来自Wi-Fi专家的声音

关于Wi-Fi调制模式的话题

本文撰写于2025年4月4日

Wi-Fi(即 IEEE 802.11 无线局域网)自 1997 年问世以来,已历经多次规格增补。1997 年推出时,其最大传输速率仅为 2Mbps;而最新的IEEE 802.11be-2024(Wi-Fi 7) 标准中,单数据流传输速率即可达到 2.9Gbps,若采用 4×4 MIMO 技术,传输速率更可高达 11.5Gbps。为实现性能提升,调制方式亦经过多轮增补迭代,相关的通知规格也因此变得错综复杂。本次内容,将围绕这部分技术要点展开讲解。

原始IEEE 802.11与802.11a/b

IEEE 802.11 无线局域网标准于 1997 年制定,最初并存着三种互不兼容的传输方式,分别为跳频扩频(FHSS)、直接序列扩频(DSSS) 以及红外线(IR)。我手头没有 1997 年版的规格说明书,不过 1999 年版的规格书中是如下定义的。

 

FHSS-PHY (14.8.2)

1Mbps 2-GFSK (Mandatory)

2Mbps 4-GFSK (Optional)

 

DSSS-PHY (15.2.3.3)

1Mbps DBPSK (Mandatory)

2Mbps DQPSK (Mandatory)

 

IR-PHY (16.2.3)

1Mbps 16-PPM (Mandatory)

2Mbps 4-PPM (Optional)

 

跳频扩频(FHSS)与红外(IR)模式下,1Mbps 为必选速率、2Mbps 为可选速率;而直接序列扩频(DSSS)模式下,1Mbps 与 2Mbps 均为必选速率。

虽然 IEEE 802.11-1999 标准在实际应用中仅支持 1Mbps 或 2Mbps 速率,但该标准的第 9.6 章中已包含关于多速率支持的相关描述。

 

9.6 多速率支持

所有控制帧均应采用基本服务集基础速率集(见 10.3.10.1)中的任一速率,或采用物理层强制速率集中的任一速率进行传输,以确保所有站点均可解析这些控制帧。

所有接收地址为组播或广播的帧,无论其帧类型如何,均应采用基本服务集基础速率集中的任一速率进行传输。

 

此处出现了术语"BSS 基础速率集(BSSBasicRateSet)",该速率集的定义为一份清单,其作用是通过接入点(AP)的信标帧(Beacon)及探测响应帧(Probe-Response)进行通知,要求所有接入该 AP 的站点(STA)均需支持清单内的数据速率;该速率集的通知由支持速率信息元素(Supported Rates IE,标签值为 1) 实现(详见第 7.3.2.2 节)。

 

datarates-fig1-80211-1999-supported-rates.jpg
图 1 IEEE 802.11-1999 标准的支持速率信息元素(Supported Rates IE)规格

 

支持速率信息元素(Supported Rates IE)的定义如下:以 500 kbit/s 为单位,通过 7 比特来表示数据速率;最高位比特用于标识该速率是否被纳入 BSS 基础速率集(BSSBasicRateSet)。接入点(AP)会将希望接入本基本服务集(BSS)的站点(STA)在关联请求帧(Association Request)中携带的支持速率(Supported Rates),与自身的基础速率集(Basic Rate Set)进行比对。仅当该站点支持基础速率集中的全部速率时,AP 才允许其接入;若站点未完全支持,则 AP 会返回状态码 18,拒绝该站点的接入请求。此外,该信息元素的数据长度被定义为1~8 字节,这一设定为后续技术演进埋下了隐患,相关内容将在后续章节详述。

 

 

1999 年,两项新标准也被正式定义:一项是在 2.4GHz 频段实现速率提升的IEEE 802.11b-1999(高速物理层,HR-PHY);另一项是在当时的全新频段 ——5GHz 频段采用正交频分复用(OFDM)调制技术的IEEE 802.11a-1999(正交频分复用物理层,OFDM-PHY)。其中,802.11b 被定义为直接序列扩频物理层(DSSS-PHY)的向下兼容版本;而 802.11a 所采用的正交频分复用物理层(OFDM-PHY)则未考虑与前代标准的向后兼容性。

 

HR-PHY (IEEE802.11b-1999 18.2.3.3)

1Mbps DBPSK (Mandatory)

2Mbps DQPSK (Mandatory)

5.5Mbps CCK (Mandatory)

11Mbps CCK (Mandatory)

 

OFDM-PHY (IEEE802.11a-1999 17.1)

6Mbps BPSK+1/2FEC (Mandatory)

9Mbps BPSK+3/4FEC (Optional)

12Mbps QPSK+1/2FEC (Mandatory)

18Mbps QPSK+3/4FEC (Optional)

24Mbps 16QAM+1/2FEC (Mandatory)

36Mbps 16QAM+3/4FEC (Optional)

48Mbps 64QAM+1/2FEC (Optional)

54Mbps 64QAM+3/4FEC (Optional)

 

在 802.11b 标准中,最终所有数据速率均被列为必选速率;而在正交频分复用(OFDM)标准中,由调制密度与纠错编码组合定义的全部 8 种速率里,仅有 3 种(6、12、24 Mbps)被定为必选速率。如今,无线局域网设备支持全部数据速率早已成为常态,因此工作在 5GHz 频段的 Wi-Fi 设备,其信标帧及关联请求帧中所携带的支持速率信息元素(Supported Rates IE)字段,默认情况下几乎都会填入下述的 8 字节数据。

 

0x8c 6Mbps(B)

0x12 9Mbps

0x98 12Mbps(B)

0x24 18Mbps

0xb0 24Mbps(B)

0x48 36Mbps

0x60 48Mbps

0x6c 54Mbps

 

此外,在 IEEE 802.11b-1999 的第 9.6 章(多速率支持)中,术语 BSSBasicRateSet 被移除,取而代之的是 BSS basic rate set,其修改意图目前尚不明确。另外,IEEE 802.11a-1999 标准中仅定义了物理层(PHY)的强制速率,并未出现任何与基础速率集相对应的描述。而后到了 IEEE 802.11g-2003 标准中,BSS basic rate set 又被改回了 BSSBasicRateSet。至于为何会出现这样一番周折,目前尚无明确结论。

 

IEEE 802.11g 标准的制定与混乱的开端

IEEE 802.11 委员会与 Wi-Fi 联盟原本有意将 “拥挤的” 2.4GHz 频段(与蓝牙、紫蜂技术共用)的技术发展止步于 802.11b,进而转向 “全新洁净频段” 的 5GHz 频段。但由于 21 世纪初的半导体技术限制,支持 5GHz 频段的设备成本居高不下;加之各国相关法规的完善需要耗费时间;同时 802.11b 的普及程度过高,市场对其向下兼容的高速率技术方案的需求日益迫切。基于上述种种原因,最终诞生了将 802.11a 的正交频分复用(OFDM)技术移植到 2.4GHz 频段的 IEEE 802.11g-2003 标准。

 

HR/DSSS-PHY (IEEE802.11g-2003 19)

1Mbps DBPSK (Mandatory)

2Mbps DQPSK (Mandatory)

5.5Mbps CCK (Mandatory)

11Mbps CCK (Mandatory)

6Mbps BPSK+1/2FEC (Mandatory)

9Mbps BPSK+3/4FEC (Optional)

12Mbps QPSK+1/2FEC (Mandatory)

18Mbps QPSK+3/4FEC (Optional)

24Mbps 16QAM+1/2FEC (Mandatory)

36Mbps 16QAM+3/4FEC (Optional)

48Mbps 64QAM+1/2FEC (Optional)

54Mbps 64QAM+3/4FEC (Optional)

 

此外,IEEE 802.11g-2003 标准中还定义了直接序列扩频 - 正交频分复用(DSSS-OFDM)以及扩展速率物理层 - 分组二进制卷积码(ERP-PBCC)这两种调制方式,但这些调制方式最终几乎未被实际采用,且在 IEEE 802.11-2016 标准中被正式废止,因此本处不作赘述。

 

此时出现的问题是,802.11b 的 4 种速率与 802.11a 的 8 种速率相加,数据速率种类会达到 12 种,这就超出了支持速率信息元素(Supported Rates IE)“长度为 1-8 字节” 的规定限制。原本修订 “最大 8 字节” 的定义是可行的,但出于这样的顾虑 ——如果存在类似unsigned char supported_rates[8];这样通过固定数组定义内存空间,且未做最大长度校验就直接执行内存拷贝(memcpy)的实现方式,那么将长度上限修改为超过 8 字节的话,就会引发栈溢出问题—— 因此,仅仅是为了容纳 “超出的速率种类”,新增了扩展支持速率信息元素(Extended Supported Rates IE,标签值为 50)。至于如何将 12 种速率按 8+4 的方式分配到两个信息元素中,标准并未作出明确规定,不同设备厂商的实现方案衍生出了多种不同的做法。

 

(A) 按速率从低到高的顺序填入支持速率信息元素(Supported Rates IE),超出部分填入扩展支持速率信息元素(Extended Supported Rates IE)

datarates-fig2-supported-rates-type1.jpg

Supported Rates:1,2,5.5,11,6,9,12,18

Extended Supported Rates:24,36,48,54

 

(B) 正交频分复用(OFDM)速率交替填入支持速率信息元素(Supported Rates IE)与扩展支持速率信息元素(Extended Supported Rates IE)

datarates-fig3-supported-rates-type2.jpg

Supported Rates:1,2,5.5,11,9,18,36,54

Extended Supported Rates:6,12,24,48

 

(C) 将直接序列扩频 - 补码键控(DSSS-CCK)速率填入支持速率信息元素(Supported Rates IE)、正交频分复用(OFDM)速率填入扩展支持速率信息元素(Extended Supported Rates IE)

datarates-fig4-supported-rates-type3.jpg

Supported Rates:1,2,5.5,11

Extended Supported Rates:6,9,12,18,24,36,48,54

 

或许还存在其他分配方式,毕竟标准对此并无明确规定,相关实现方案本就比较随意。

 

802.11g 接入点(AP)的基础速率集(Basic Rate Set) 在默认情况下,设置的是与 802.11b 兼容的 1、2、5.5、11 Mbps 这四种速率,但这一默认配置的依据目前尚不明确。在 IEEE 802.11g-2003 标准中,作为对 第 7.3.2.2 节的补充内容。

 

但如果上述任一速率被标记为基础速率,则收发双方的站点(STA)在解析该基础速率标识时,应认定其仅适用于补码键控(CCK)调制及对应速率。也就是说,若某速率被标记为基础速率,该标识不适用于直接序列扩频 - 正交频分复用(DSSS-OFDM)、分组二进制卷积码(PBCC)或扩展速率物理层 - 分组二进制卷积码(ERP-PBCC)调制方式。

 

这部分内容似乎就是依据,但姑且不论那些因无人实现而早已淘汰的直接序列扩频 - 正交频分复用(DSSS-OFDM)与分组二进制卷积码(PBCC)技术,该条款并不能成为默认不将与 802.11a 兼容的扩展速率物理层 - 正交频分复用(ERP-OFDM)纳入基础速率集的依据。

 

控制 / 组播帧与基础速率集

那么,Wi-Fi 设备行业内普遍存在这样一个惯例 ——控制帧与组播帧均采用对应频段的最低数据速率调制模式进行发送。具体来说,就是 “2.4GHz 频段采用 1Mbps 直接序列扩频 - 二进制相移键控(DSS-BPSK)调制发送,5GHz 频段采用 6Mbps 二进制相移键控 + 1/2 前向纠错编码正交频分复用(BPSK+1/2FEC OFDM)调制发送”。但实际上,这一惯例并无正式的标准文档作为依据。随着 IEEE 802.11 标准的历次增补修订,多速率支持(Multirate Support)章节的内容不断扩充,变得愈发复杂难懂。而在 IEEE 802.11-2020 标准中,第 10.6.5.3 节作出了相关规定……

 

若基础服务集基础速率集(BSSBasicRateSet)参数不为空,则当数据帧属于帧聚合服务(FMS)流时,应使用非高吞吐量物理层协议数据单元(non-HT PPDU)传输具有组地址(地址1字段)的数据帧或管理帧(上述帧除外), 其速率应为基础服务集基础速率集(BSSBasicRateSet)参数所包含的速率之一,或由接入点(AP), 根据11.21.8节所述选择的速率)

 

相关规定的表述如上,严格来说,(组播 / 广播帧的传输速率)要求是“选用基础服务集基础速率集(BSSBasicRateSet)参数中的任一速率”,而非“采用最低数据速率的调制模式”。理论上,基础速率集(Basic Rate Set)是 BSS 内所有接入设备都应支持收发的速率,因此无论选用其中哪一个速率,数据帧都应能被成功接收。(不过需要注意的是,不同调制模式对应的接收信噪比(SNR)阈值存在差异,速率越低的调制模式,信号理应传输得更远、更稳定)。

 

在开源软件 hostapd 中,可通过在配置文件 hostapd.conf 中写入以下语法,修改默认的支持速率(Supported Rates)与基础速率集(Basic Rate Set)。例如,即便在工作模式为 g(hw_mode=g)的 2.4GHz 频段,若配置如下:

 

supproted_rates=60 90 120 180 240 360 480 540

basic_rates=60 120 240

 

理论上就能创建这样一台接入点(AP):它不再支持与 802.11b 兼容的直接序列扩频 - 补码键控(DSSS-CCK)调制方式,且信标帧中会呈现与 802.11a 一致的配置 ——“支持速率信息元素(Supported Rates IE)包含 8 种数据速率”“其中 6、12、24 Mbps 为基础速率集”。

之所以会使用 “本应如此”“理论上可以实现” 这类表述微妙的措辞,是因为该语法对接入点(AP)实际运行产生的影响,会因驱动程序的具体实现不同而存在差异;此外,当站点(STA)接入配置了非标基础速率集的接入点时,其运行表现同样会受驱动实现方式的影响而有所不同。实际测试时,设备虽然看似能按预期运行,但仍能发现一些细节上的异常表现:例如,本应被排除在基础速率集之外的 1Mbps 直接序列扩频(DSSS)速率,却被用于传输站点到接入点的地址解析协议请求(ARP Request);或者发送请求发送帧(RTS)、块确认帧(BlockAck)时,同样采用了 1Mbps 速率。

 

IEEE 802.11n 标准与调制编码方案(MCS)的制定

正如之前多次提及的,IEEE 802.11n 标准的制定过程中,曾因多家标准化组织之间的激烈博弈而陷入巨大争议。该标准最终以 IEEE 802.11n-2009 的名义发布,但字里行间仍处处可见这场博弈留下的痕迹。

 

在 IEEE 802.11n 标准中,定义了调制编码方案(MCS,Modulation and Coding Scheme) 这一术语。这是因为该标准新增了短保护间隔(SGI)与 40MHz 信道带宽的配置选项,即便采用相同的调制密度,对应的标称数据速率也会发生变化(即便是 BPSK+1/2 前向纠错编码的组合,速率也可达到 6.5/7.2/13.5/15 Mbps)。802.11n 同时还定义了可同时使用多根天线的多输入多输出(MIMO)技术,并且在该标准中,MIMO 空间流数也被纳入 MCS 的参数范畴。因此 802.11n 标准定义了 32 种 MCS 方案,对应 8 种调制模式与 1~4 条空间流的组合,具体划分如下:

 

MCS0~7:1x1

MCS8~15:2x2

MCS16~23:3x3

MCS24~31:4x4

 

在此基础上,再加上后文将会提及的 MCS32 以及 MCS33~MCS76 对应的非对称模式,共计 77 种 MCS 方案被纳入预留范畴,但这些预留方案在实际应用中几乎未被采用。

 

在 IEEE 802.11n 标准中,新增了两个概念:分别是与“支持速率(Supported Rates)”相对应的“支持调制编码方案集(Supported MCS Set)”,以及与“基础速率集(Basic Rate Set)”相对应的“基础调制编码方案集(Basic MCS Set)”。

 

首先,为了通知支持调制编码方案集(Supported MCS Set),标准在高吞吐量能力信息元素(HT Capabilities IE,标签值为 45) 中定义了一个名为 “Supported MCS Set” 的字段(详见 IEEE 802.11n-2009 第 7.3.2.56.4 节)。该字段是一个长度为 8 字节(即 128 比特)的比特字段,其中比特位 0 至比特位 76 这 77 个比特,构成了与 MCS0~MCS76 一一对应的接收调制编码方案比特掩码(Rx MCS Bitmask)。正如前文所述,由于 802.11n 标准已将空间流数纳入 MCS 的定义范畴,因此对于支持 4×4 多输入多输出(MIMO)的设备而言,这一字段中几乎会重复 4 次呈现相同的信息。

 

datarates-fig5-80211n-2009-ht-capabilities-ie.jpg图 5 IEEE 802.11n-2009 标准中高吞吐量能力信息元素(HT Capabilities IE)的定义

 

datarates-fig6-ht-supported-mcs-set.jpg

图 6 高吞吐量能力信息元素(HT Capabilities IE)/ 支持调制编码方案集(Supported MCS Set)示例(4×4 多输入多输出(MIMO)场景)

 

剩余的 51 个比特位中也定义了各类繁杂的字段,但说实话,这些字段几乎从未被实际使用。在当前的接入点(AP)设备中,常见的配置方式为:8 种调制模式的参数均按 “1 × 空间流数” 的形式重复填充,而字段后半部分的所有比特位则全部置 0。比特位 96 对应的发送调制编码方案集定义位(Tx MCS Set Defined) 无论被设为 0 还是 1,其实都没有任何实际意义。

 

基础调制编码方案集(Basic MCS Set) 以一个 16 字节的同名字段形式,实现在高吞吐量运行信息元素(HT Operation IE,标签值为 61) 的末尾(在 IEEE 802.11-2016 及后续版本中,该字段更名为基础高吞吐量调制编码方案集(Basic HT-MCS Set))。该字段的格式与支持调制编码方案集(Supported MCS Set)字段完全一致。这个字段似乎存在一些历史遗留问题,虽然标准中对其作出了定义,但实际的接入点(AP)设备在发送此字段时,几乎都将其配置为全 0。在 hostapd 的配置文件 hostapd.conf 中,也未发现用于设置该 “基础高吞吐量调制编码方案集(Basic HT-MCS Set)” 的相关配置项。

 

datarates-fig7-ht-basic-mcs-set.jpg

图 7 高吞吐量运行信息元素(HT Operation IE)/ 基础调制编码方案集(Basic MCS Set)示例—— 总之大部分比特位均为 0

 

虽然名称容易混淆,但在 802.11n 标准中,“基础调制编码方案集(Basic MCS Set)” 并非 “基础服务集基础速率集(BSSBasicRateSet)” 的组成部分,而是作为一个独立参数被单独处理。在 IEEE 802.11n-2009 标准的 10.3.10.1.2 节(MLME-START.request 原语的参数定义) 中,除了 BSSBasicRateSet 参数外,还单独定义了 BSSBasicMCSSet 参数。该参数的独立定义形式在 IEEE 802.11ac-2013 标准中被沿用,但在 IEEE 802.11-2016 标准中,其相关定义被整合至高吞吐量运行(HT Operation) 相关条款内,原有的 BSSBasicMCSSet 参数也随之被移除。

 

datarates-fig8-80211n-2009-MLME-START-request.jpg

图 8 IEEE 802.11n-2009 标准中基础服务集基础速率集(BSSBasicRateSet)与基础服务集基础调制编码方案集(BSSBasicMCSSet)的定义

 

基础服务集成员选择器集(BSSMembershipSelectorSet) 的机制则更为繁琐,它是一种尝试复用 IEEE 802.11 最初定义的支持速率信息元素(Supported Rates IE) 以及 802.11b 扩展支持速率信息元素(Extended Supported Rates IE) 的设计方案。此前的支持速率信息元素(Supported Rates IE)是一个数组结构,其中比特位 7 用于标识对应速率是否属于基础速率集(Basic Rate Set),比特位 6 至 0 则以 500 Kbps 为单位表示数据速率(取值范围为 0~63.5 Mbps)。而基础服务集成员选择器集(BSSMembershipSelectorSet)的设计思路,是在这一字段取值范围的高位区间(即从 127 开始向下的数值区间)赋予其全新的含义。具体规则为:当比特位 7 的值为 1,且比特位 6 至 0 为特定数值时,该字段所表示的就不再是基础速率值,而是“设备接入该基础服务集(BSS)所需满足的附加条件”。

 

127 需支持高吞吐量物理层(HT-PHY)(对应 IEEE 802.11n 标准)

126 需支持超高速物理层(VH-PHY)(对应 IEEE 802.11ac 标准)

125 需支持 GLK 功能(对应 IEEE 802.11ak 标准)

124 需支持增强型分组检测(EPD)(对应 IEEE 802.11p 标准)

123 需仅支持同时认证对等协议哈希到元素模式(SAE Hash to Element Only)(对应 WPA3-SAE H2E 协议)

122 需支持高效物理层(HE-PHY)(对应 IEEE 802.11ax 标准,即 Wi-Fi 6)

 

虽进行了这样的功能扩展,但不知为何该信息元素的名称在很长一段时间内都未作变更,直至 IEEE 802.11-2016 标准发布后,才被正式更名为 “支持速率与基础服务集成员选择器信息元素(Supported Rates and BSS Membership Selectors element)”。在开源软件 hostapd 中,通过在配置文件 hostapd.conf 中添加以下定义,即可启用 基础服务集成员选择器集(BSSMembershipSelectorSet) 功能。

 

require_ht=1

require_vht=1

require_he=1

 

此外,通过设置 sae_pwe=1,也会启用 SAE_H2E_ONLY(仅支持 SAE 哈希到元素模式) 功能。而对于 GLK 和 增强型分组检测(EPD),hostapd 中仅存在对应的宏定义(#define),暂无实际可配置的参数项。

 

datarates-fig9-bss-membership-selectors.jpg

图 9 已配置基础服务集成员选择器(BSS Membership Selectors)的示例

 

该功能在开源的 mac80211 驱动中也支持,但全 MAC 架构的厂商原厂驱动是否支持,不实际测试则就不清楚。

 

关于 IEEE 802.11n 标准中的 MCS32 与空时块编码(STBC)IEEE802.11nのMCS32とSTBCについて

MCS32 的调制编码方案与 MCS0(20MHz 带宽场景)基本一致,均为 BPSK+1/2 前向纠错编码(FEC),标称速率 6Mbps,但该模式仅支持 40MHz 信道带宽 —— 其核心机制是将 40MHz 带宽拆分为 20+20MHz 的组合信道,在主、副信道中传输冗余化的相同信息,属于一种特殊传输模式。虽该规格被定义为适用于高噪声环境或长距离通信场景,但实际应用中几乎未被采用。不过在捕获信标帧(Beacon Frame)进行分析时,偶尔仍能观察到标识该模式支持的比特位被置 1 的信息元素(IE)。
 

datarates-fig10-ht-mcs32-supported.jpg

图 10 高吞吐量能力信息元素(HT Capabilities IE)/ 支持调制编码方案集(Supported MCS Set)示例(4×4 多输入多输出(MIMO)+MCS32)

 

MCS33~MCS76 对应的「非对称模式」,似乎是基于 “在 MIMO 各空间流之间采用不同调制模式” 这一思路而定义的。但我始终未能理解,这一功能究竟适用于何种场景,又能带来怎样的实际价值。按照标准定义,支持非对称模式的节点,需将 Supported MCS Set 字段中 比特位 100(“发送非均等调制支持位”,Tx Unequal Modulation Supported) 置 1,以此向其他设备通知该能力 —— 但在实际应用中,我从未见过将该比特位置 1 的设备。

 

与 MCS32 功能定位类似的还有 空时块编码(STBC,Space Time Block Coding)。简单来说,这是一种适用于 2×2 及以上配置的 MIMO 技术,通过多根天线向接收端冗余化传输相同信息的特殊模式。虽该规格被定义为适用于高噪声环境或长距离通信场景,但实际上依然几乎未被实际采用。IEEE 802.11n-2009 标准的 第 9.6.0c 节(基础 STBC MCS 相关规定) 中,明确了 STBC 的启用条件:

· 高吞吐量运行信息元素(HT Operation IE)中的 双信标(Dual Beacon)位 或 双 CTS 保护(Dual CTS Protection)位 需置 1

· 基础调制编码方案集(Basic MCS Set)已完成配置,且其 最低 MCS 速率 对应的空间流数需达到 2 路及以上

但这两个条件我个人从未见过实际启用的情况,hostapd 中似乎也不存在对应的配置项。

 

datarates-fig11-ht-stbc-bits.jpg

图 11 高吞吐量能力信息元素(HT Capabilities IE)/ 高效能力信息元素(HE Capabilities Information)中的空时块编码(STBC)比特位示例

 

 

IEEE 802.11ac(Wi-Fi 5)与调制编码方案映射表(MCS Map)的规格变更

IEEE 802.11ac-2013(超高速吞吐量,VHT)作为比 802.11n 速率更高的升级版兼容规格而制定。

或许是基于 802.11n 中竟定义了多达 77 种 MCS 的反思,802.11ac 中对调制模式与空间流进行了解耦设计。此前无人使用的 MCS32 冗余调制及非对称调制,在该标准中均未再定义。不过,空时块编码(STBC)的相关定义被保留,重新指定在 超高速吞吐量能力信息元素(VHT Capabilities IE,标签值为 191)的第 7~10 比特位 中。

 

802.11ac 标准同样沿用了 “支持调制编码方案集(Supported MCS Set)” 与 “基础调制编码方案集(Basic MCS Set)” 的核心概念,但不再使用庞大的比特图,转而采用 16 比特的短字段进行标识(参考 IEEE 802.11ac-2013 标准第 8.4.2.160.3 节)。该 16 比特字段的编码规则为:每 2 个比特对应 1×1~8×8 的一种空间流配置,各组比特的取值及含义如下(参考 IEEE 802.11ac-2013 标准图 8-401bs):

 

00:MCS0-7

01:MCS0-8

10:MCS0-9

11:Not supported

 

从技术兼容性来看,MCS0~MCS7 的调制编码方案与 802.11a 标准基本一致(涵盖 BPSK 至 64QAM 调制),因此标准制定时采用了 “如今不可能存在不支持 MCS0~MCS7 的芯片” 这一前提假设。基于该现实考量,802.11ac 仅将新增的 MCS8(256QAM+3/4 前向纠错编码)和 MCS9(256QAM+5/6 前向纠错编码)设为可选支持项,形成了兼顾兼容性与实用性的务实规格设计。

datarates-fig12-80211ac-2013-vht-capabilities.jpg

图 12 IEEE 802.11ac-2013 标准中超高速吞吐量能力信息元素(VHT Capabilities IE)的定义

 

datarates-fig13-80211ac-2013-mcs-and-nss.jpg

图 13 IEEE 802.11ac-2013 标准中支持调制编码方案集 / 空间流数(Supported MCS/NSS)字段的定义

 

datarates-fig14-vht-supported-mcs.jpg

图 14 超高速吞吐量能力信息元素(VHT Capabilities IE)/ 支持调制编码方案集与空间流数(Supported MCS and NSS)示例(4×4 多输入多输出(MIMO))

 

基础超高速吞吐量调制编码方案集(Basic VHT-MCS Set)包含在 超高速吞吐量运行信息元素(VHT Operation IE,标签值为 192) 的 基础 VHT-MCS 与空间流数集字段(Basic VHT-MCS and NSS Set) 中(参考 IEEE 802.11ac-2013 标准第 8.4.2.161 节)。该字段的格式与 接收端 VHT 调制编码方案映射表(Rx VHT-MCS Map) 一致,均采用 “2 比特 ×8 路空间流” 的编码结构。值得注意的是,802.11n 中的 基础高吞吐量调制编码方案集(Basic HT-MCS Set) 基本被忽略,配置值通常全为 0;而 802.11ac 的 Basic VHT-MCS 字段会包含有效的配置值,其中将 MCS0~7(1×1 空间流配置)设为必选的实现方案(对应配置值为 0xfffc)最为常见。

 

datarates-fig15-vht-basic-mcs-set.jpg

图 15 超高速吞吐量运行信息元素(VHT Operation IE)/ 基础调制编码方案集与空间流数(Basic MCS and NSS)示例 —— 支持 4×4 MIMO 及 MCS9 的 AP,接入要求仅为 1×1 MCS7

 

 

IEEE802.11ax

IEEE 802.11ax-2021(高效,HE,即 Wi-Fi 6)是以提升多设备连接时的传输效率为核心目标的标准,同时通过引入 1024QAM 调制技术(对应 MCS10/11),实现了相较于 802.11ac(Wi-Fi 5)的速率提升。

由于 0-255 区间的元素标识(Element ID)已全部用完,高效能力信息元素(HE Capabilities IE) 被设置在扩展标签值(Extended Tag)35 处。其中的 支持高效调制编码方案集与空间流数字段(Supported HE-MCS And NSS Set)(参考 IEEE 802.11ax-2021 标准第 9.4.2.248.4 节),格式沿用了 802.11ac 的设计,采用 “2 比特 ×8 组” 的编码结构,用于标识 1×1~8×8 各空间流配置下支持的 MCS 范围。值得注意的是,由于 802.11ax 新增了 MCS11(相比 802.11ac 新增 MCS10/11 两个高阶索引),比特模式与 MCS 上限的对应规则也发生了调整。

 

00:MCS0-7

01:MCS0-9

10:MCS0-11

11:Not supported

 

802.11ac 中与 “支持超高速吞吐量调制编码方案集与空间流数集(Supported VHT-MCS and NSS Set)” 绑定的 “最高支持的长保护间隔数据速率(Highest Supported Long GI Data Rate)”“总最大空间时间流数(Maximum NSTS, total)” 等附加信息被彻底移除,该字段仅保留了 “支持的 MCS 比特模式” 这一核心内容。通常情况下,对于带宽≤80MHz / 信道的频段,会分别附带 16 比特的接收 MCS 集和 16 比特的发送 MCS 集;若芯片支持 160MHz / 信道或 80+80MHz / 信道(信道聚合)模式,则会额外增加对应这些频段的接收 MCS 集和发送 MCS 集。因此,“支持高效调制编码方案集与空间流数字段(Supported HE-MCS And NSS Set)” 的长度为可变长度,具体为 4 字节、8 字节或 12 字节。

 

datarates-fig16-80211ax-2021-he-capabilities.jpg图 16 IEEE802.11ax-2021 高效能力信息元素(HE Capabilities IE)的定义

 

在 802.11ac 中,“MAC 能力信息(MAC Capabilities Information)” 与 “PHY 能力信息(PHY Capabilities Information)” 被分离,而 STBC 能力(空时块编码能力,Space-Time Block Coding Capabilities)仍保留在高效 PHY 能力信息(HE PHY Capabilities Information)的第 62、63 位。

 

高效运行信息元素(HE Operation IE,扩展标签 = 36)中附加有 “基础 HE-MCS 及空间流数集合(Basic HE-MCS And NSS Set)”。其格式与 “支持的 HE-MCS 及空间流数集合(Supported HE-MCS And NSS Set)” 字段相同,但不存在 80/160/80+80 MHz 等带宽区分及收发区分,仅提供 1 种模式、16 比特的配置。

 

IEEE802.11be 与 MCS 映射表的再次变更

IEEE802.11be-2024 再度以提速为目标制定,也被称为 “Wi-Fi 7”。其实现提速的核心新增技术,是在 “新频段” 6GHz 频段中引入宽带信道(320MHz)与 4096-QAM 调制(对应 MCS 12/13)。

一如既往地延续了自 802.11n以来便固定的模式 —— 每当调制方式发生变更,“某某能力信息元素(Capabilities IE)” 中会包含支持的 MCS 列表,“某某运行信息元素(Operation IE)” 中则会包含基础服务集(BSS)要求的基础 MCS 列表。在 802.11be 中,EHT 能力信息元素(EHT Capabilities IE,扩展标签 = 100)包含 “支持的 EHT-MCS 及空间流数集合(Supported EHT-MCS And NSS Set)”,EHT 运行信息元素(EHT Operation IE,扩展标签 = 106)包含 “基础 EHT-MCS 及空间流数集合(Basic EHT-MCS And NSS Set)”,但格式却又一次发生了变化(是不是觉得太折腾了?反正我是这么觉得的)。在 802.11ac / 802.11ax 中,采用 “2 比特 ×8 组” 的格式,标明了 1×1~8×8 MIMO 空间流数(NSS)对应的 MCS 上限;而到了 802.11be,两者的对应关系却颠倒了过来,变为按每个 MCS 组,以 4 比特标明对应 MIMO 空间流数(NSS)的格式。

 

datarates-fig17-80211be-2024-eht-capabilities.jpg图 17 EHT 能力信息 / EHT 支持的 MCS 及空间流数集合(EHT Supported MCS and NSS Set)示例(2×2 MIMO)

 

与 802.11ax 相同,Supported EHT-MCS 及空间流数集合(Supported EHT-MCS And NSS Set)中包含的映射表数量(即 MCS 及空间流数集合的数量)会根据芯片支持的带宽而变化,且会按照芯片的实现规格依次排列,具体如下:

 

20MHz-Only : 4byte

<=80MHz : 3byte

160MHz : 3byte

320MHz : 3byte

 

仅 20MHz 独占模式为 4 字节,其他带宽配置均为 3 字节,这是由于不同带宽对应的 MCS 集合类型不同,其字段格式也存在差异。

 

20MHz独占模式下(4 字节格式):

bit0-3:RX NSS MCS0-7

bit4-7:TX NSS MCS0-7

bit8-11:RX NSS MCS8-9

bit12-15:TX NSS MCS8-9

bit16-19:RX NSS MCS10-11

bit20-23:TX NSS MCS10-11

bit24-27:RX NSS MCS12-13

bit28-31:TX NSS MCS12-13

 

datarates-fig18-80211be-2024-mcs-and-nss-20mhz.jpg图 18 IEEE802.11be 草案 4.0 版中 20MHz 独占模式 MCS 及空间流数集合(20MHz-only MCS and NSS set)的定义

 

除 20MHz 独占模式外的情况(3 字节格式):

bit0-3:RX NSS MCS8-9

bit4-7:TX NSS MCS8-9

bit8-11:RX NSS MCS10-11

bit12-15:TX NSS MCS10-11

bit16-19:RX NSS MCS12-13

bit20-23:TX NSS MCS12-13

 

datarates-fig19-80211be-2024-mcs-and-nss.jpg图 19 IEEE802.11be 草案 4.0 版中 MCS 及空间流数集合(MCS and NSS set)的定义

 

另一方面,EHT 运行信息元素(EHT Operation IE)中包含的基础 EHT-MCS 及空间流数集合(Basic EHT-MCS And NSS Set),与信道 / 带宽无关,始终固定为 4 字节。既然如此,我觉得其实可以将支持的 EHT-MCS 及空间流数集合(Supported EHT-MCS And NSS Set)也统一采用 4 字节的通用规格,规定 “除 20MHz 独占模式外,将 MCS 0-7 视为默认支持”—— 实在不理解为什么要在这种细节上纠结于字节数的节省。

datarates-fig20-eht-supported-mcs-set.jpg

图 20 IEEE802.11be 中 EHT 支持的 MCS 及空间流数集合(EHT Supported MCS and NSS Set)示例(2×2 MIMO)

 

在 802.11be 中,相当于 802.11n 中几乎被完全忽略的 MCS32 冗余调制的规格,以 MCS14“EHT 双工模式(EHT DUP mode)” 的形式得以复活(参考文献:IEEE802.11be-Draft 4.0 36.3.5)。该模式不仅实现了带宽冗余,还通过双载波调制(DCM: Dual Carrier Modulation)在两个子载波之间对符号进行冗余处理 —— 相较于同样采用 BPSK 调制 + 1/2 码率前向纠错(FEC)的 MCS0,其有效数据速率仅为前者的一半。同时,标准还新增了仅使用 DCM、不依赖带宽冗余的 MCS15 模式。

在 802.11n 中,77 种 MCS 的全部支持情况曾通过 Supported MCS Set 字段中的连续位图进行表示;但自 802.11ac 及以后的标准起,该字段格式发生变更,改为仅表示支持的 MCS 上限。因此,这类特殊 MCS 规格的支持情况无法通过 Supported EHT-MCS 及空间流数集合(Supported EHT-MCS And NSS Set)字段体现。基于此,EHT 物理层能力信息(EHT PHY Capabilities Information)字段的第 55 位(bit55)包含 MCS14(6GHz 频段专用)的支持比特位,第 51-54 位(bit51-54)则包含 MCS15(20 及 40/80/160/320MHz 各信道)的支持比特位。

 

datarates-fig21-eht-phy-capabilities.jpg

图 21 EHT 能力信息 / EHT 物理层能力信息(EHT Capabilities/EHT PHY Capabilities)中 MCS14、MCS15 的支持比特位示例
6GHz 频段的 MCS14 不支持,MCS15 仅支持 20 及 40MHz 信道

 

另一方面,在 MCS14/15 的冗余模式得以复活的同时,IEEE802.11be-2024 中明确规定「EHT 物理层不支持 STBC(An EHT PHY does not support STBC)」,并正式废除了 STBC 功能。因此,EHT 能力信息元素(EHT Capabilities IE)中并未设置 STBC 的支持状态比特位。

 

总结

· 在 Wi-Fi 技术中,每当新增调制规格时,用于通知 “支持的调制模式列表” 的相关规格也会相应地进行扩展或新增。

· 由于 Wi-Fi 采用一对多连接模式,因此存在 “支持速率(Supported Rates,MCS)” 与 “基础速率(Basic Rates,MCS)” 两个列表:前者指 “该终端所支持的规格”,后者指 “该接入点(AP)/ 基础服务集(BSS)中所有接入设备均需支持的规格”。

· 控制帧与多播帧通常会使用该频段下的最低数据速率进行发送,但在规格层面仅定义为 “使用基础速率(Basic Rates)中的任意一种”,并未强制要求必须使用最低数据速率。

· 像直接序列扩频 - 正交频分复用 / 扩展速率物理层 - 分组二进制卷积编码(DSSS-OFDM/ERP-PBCC,对应 802.11g 标准)、MCS32(对应 802.11n 标准)、空间流块编码(STBC,对应 802.11n/ac/ax 标准)等 “虽初衷良好却定义后实际应用寥寥的调制规格”,在标准中仍零散存在,相关技术规范以碎片化形式留存至今。

 

即使是平时不经意间使用的技术规格,一旦深入研读规格书,常会惊讶地发现 “原来还有这样的功能”—— 这是很常见的情况。这次也不例外,像 “BSS 成员选择器(BSS Membership Selector)”“MCS32”“STBC” 这类术语,即便在规格书中见过,我也总会下意识地忽略过去。直到这次重新查阅才恍然大悟:“原来是这样的功能啊!”“但我好像从来没用到过……”“话说回来,真的有人在实际使用这些功能吗?”