最近好几个朋友都在问“ax调度”这个词,说是在路由器参数面板、厂商宣传页和网工群里反复出现,看着像玄学,又不敢不问。其实它在Wi-Fi圈里一点都不玄:ax就是802.11ax,也就是我们手机上常见的Wi-Fi 6;而“ax调度”说的就是802.11ax(Wi-Fi 6)里那套决定“谁在什么时候、用哪段频谱、发多少数据”的无线电资源分配机制。这篇文章我打算从协议原理讲到实际调优,再讲几个我在项目和现网里踩过的坑,给准备入坑Wi-Fi 6/7运维和做企业无线方案的朋友一份可以照着用的参考。
1. 为什么行业里会冒出“ax调度”这个词
1.1 从802.11ac到802.11ax:吞吐量不缺了,缺的是效率
先理清一个历史逻辑。802.11ac(也就是Wi-Fi 5)解决的核心问题是“单用户峰值速率”:把信道做到80MHz、160MHz,把MIMO推到8条流,让一个终端拿着大带宽跑出Gbps级别。但等到大量终端同时在线之后,问题就暴露了——单个终端跑得快没用,你不能让每个终端同时用整个信道。
Wi-Fi 5之前的无线信道接入方式是CSMA/CA,翻译成大家熟悉的场景就是“大家排队用一条车道”:不管终端的数据量是多是少,谁先抢到信道谁就先走,没抢到的就退避重试。这个机制在终端少的时候还算舒服,但在会议室、教室、展馆、仓储这些高密度环境里,几十个终端轮番抢信道,大部分时间都耗在退避等待和协议开销上。
802.11ax(Wi-Fi 6)要解决的核心问题其实不是“更快”,而是“更会安排”。它把信道从“一条整车道”变成了“一条可以动态切分成多条细分车道的路”,让AP像调度员一样,根据每个终端的缓存数据量、信道质量、业务优先级,统一决定什么时候发、用哪段频谱发。这个过程在业界术语里叫OFDMA调度,而网络热词把它浓缩成“ax调度”,本质上就是这套无线电资源分配逻辑。
1.2 OFDMA的核心思路:不再是排队,而是切车道
OFDMA的全称是Orthogonal Frequency Division Multiple Access,正交频分多址。理解它最舒服的方式,是把原来的“一次只能一个终端整信道占用”比作老式单位食堂只有一个打饭窗口:谁挤到前面谁先打,后面所有人干等。
802.11ax把20MHz信道(甚至40/80/160MHz)在频域上划分成多个Resource Unit,简称RU。RU不是随便分的块,它由一组连续的子载波组成,常见的RU大小有26个子载波、52个子载波、106个子载波、242个子载波等。一个20MHz信道大约有242个可用数据子载波,理论上如果全部切成26子载波的小RU,可以同时服务9个终端。
这样AP就可以做真正的“并行调度”:给一个只发几十KB心跳报文的传感器分配一个26-tone小RU,给一个正在传视频的平板分配一个106-tone甚至更大RU,再把它们塞进同一个物理层PPDU里同时传输。终端之间不需要再互相竞争信道,因为它们在频域上已经被隔开了。
在协议实现上,OFDMA又分成下行和上行两个方向。下行OFDMA是AP把一个多用户PPDU同时发给多个终端,每个终端只解调自己RU上的数据;上行OFDMA则复杂不少,是多个终端收到AP的触发帧之后,在各自被分配的RU上“同时”把数据发给AP。这个上行的过程,恰恰是整个调度机制里最考验AP算法、也是最容易翻车的地方。多说一句,802.11ax还保留了MU-MIMO,也就是多用户多入多出,它和OFDMA是互补关系:OFDMA在频域把终端分开,MU-MIMO在空间域把终端分开,两者可以叠加使用。所以“ax调度”严格说不是某一个算法,而是OFDMA、MU-MIMO、TWT、BSS着色等一系列机制的统称。
1.3 厂商为什么爱提“调度”,用户为什么总觉得玄
厂商宣传里所谓的智能调度、AI调度,多数是把这几件事包装在一起:根据终端缓存报告分配RU、根据信道质量调整MCS调制编码方式、根据业务类型维护TWT休眠唤醒节奏、以及在上行多用户传输时决定触发帧的发送频率。这些动作确实都在“调度”这个大筐里,但落到真实设备上,不同方案商用不用心做,差别极大。
这也是为什么单纯看某个路由器“支持OFDMA”没有意义——支持OFDMA和“把OFDMA调度做好”是两码事。前者只能说芯片里有这个功能模块,后者才决定你在高密度场景下的真实体验。
2. 一次典型的上行MU-OFDMA调度流程拆解
2.1 从缓存报告到块确认:一个完整的上行交换
我以前总觉得上行OFDMA是最难讲清楚的,因为整个流程有来有回,不像下行那么简单“AP想说啥就说啥”。我按抓包看到的过程帮大家拆一遍。
第一步是缓存状态收集。AP发一个BSRP(Buffer Status Report Poll)触发帧,问终端“你手里到底攒了多少数据要发”。终端收到之后,在对应RU上用HE TB PPDU回复一个Buffer Status Report,告诉AP自己队列里还有多少字节。这一步非常关键——没有缓存报告,AP就不知道给谁分RU、分多大RU,调度就成了盲猜。
第二步是资源分配决策。AP根据所有终端的缓存状态、信道质量反馈、历史传输率、业务优先级,生成本轮传输的资源分配方案:哪些终端参与本轮上行传输,每个终端用哪段RU,采用什么MCS,目标信号强度多少,PPDU持续时间多长。这个决策是实时的,也是各家实现差异最大的地方。
第三步是触发传输。AP发Basic Trigger触发帧,帧里携带RU分配表和MCS参数。所有被调度的终端在SIFS时间后同时启动发送,各自在指定RU上发射HE TB PPDU。因为每个终端的RU不同,即使同时发射物理信号也不会互相干扰。
第四步是确认。AP等所有终端的HE TB PPDU差不多同时到达后,发Multi-STA Block Ack一次性回复多个终端。如果还有数据没传完,就再进入下一轮触发,直到这一轮调度周期结束。
整个过程最直观的印象是:AP不是在“转发数据”,而是像一个工地调度员,先问每辆车要装多少货,再指挥它们停在指定车道,同一时间让所有车一起卸货。这个思路跟5G NR里的上行调度器其实非常像,基础架构都是“请求-授权-传输-确认”。
2.2 触发帧家族:不是所有Trigger都用来传数据
很多刚接触802.11ax的朋友会把Trigger帧理解成“一个帧”,实际上Trigger是一个帧类型家族。我整理过一张表,大家现场排查时可以对着看:
| Trigger子类型 | 常见用途 |
|---|---|
| Basic Trigger | 正式触发上行数据传输,携带RU分配和MCS信息 |
| MU-RTS | 多用户RTS,用于先抢占介质并预告后续上行传输,保护整个传输周期 |
| BSRP | 轮询终端的缓存状态,拿Buffer Status Report |
| BFRP | 轮询波束赋形反馈参数,用于下行MU-MIMO和信道探测 |
| GCR MU-BAR | 面向组播数据的重传块确认请求 |
排查的时候最有用的判断是:如果一条上行传输过程里BSRP频繁出现而Basic Trigger很少,说明AP很“饿”——它想调度却没有足够的数据信息,终端要么没数据,要么报告机制出了问题。如果Basic Trigger出现得极其频繁但单次传输时长很短,那要警惕是不是AP把调度周期切得太碎,协议开销已经吃掉了收益。
2.3 时间同步为什么是OFDMA调度的生死线
多个终端“同时”发上行PPDU,这个“同时”是协议层面用SIFS加时间对齐来保证的。终端收到Trigger帧后,经过标准SIFS间隔开始发送HE TB PPDU,同时通过HE-LTF里的相位信息做发射时间预补偿,让信号到达AP的时间尽可能对齐。
这个对齐要求非常苛刻。802.11ax的OFDM符号长度是12.8微秒,循环前缀GI有0.8、1.6、3.2微秒几档。如果两个终端的信号到达时刻错开了,错开量必须落在循环前缀的容忍范围里,否则子载波之间的正交性就会被破坏。业界做射频测试时,通常把各终端上行到达时间偏差控制在亚微秒甚至更低量级,实际设备的实现好坏,在这个指标上一测就能拉开差距。
我在项目里看到过一种典型故障:某个终端离AP很远,上行一直重传。后来抓包发现它的HE TB PPDU到达时间比其他终端晚了好几微秒,AP侧解调出来的子载波干扰严重,降MCS也没用。最终解决办法是调整这个终端的漫游边界或更换部署位置,单纯靠AP侧算法救不回来。
3. 在实际网络里调优AX调度:一份落地检查清单
3.1 先别动算法,先动射频
这是我最想强调的原则:调度算法的前提是信道质量足够好。信道质量差的时候,AP给终端分配再大的RU也没用,MCS往下掉、重传率往上走,整个调度周期兜底。
落地时先检查几个射频硬指标:各AP覆盖区域内的接收信号强度RSSI是否在-65dBm以上,信噪比SNR是否高于25dB,同频干扰信号是否低于-80dBm,终端重传率是否低于10%。这些基础项不过关,OFDMA开得再漂亮也是空中楼阁。
射频优化里最容易忽略的是“边界区域”。OFDMA调度的核心优势是并发,但如果大量终端都挤在AP边缘,它们的MCS会很低,AP为了保证PPDU时长一致,要么给它们分配较大RU但低MCS,白白占用频谱,要么用很多小RU去填边缘终端,效率依旧上不来。所以高密度场景下,宁可用更多AP把覆盖做密、让每个终端离AP更近,也不要指望调度算法能顶着烂射频创造奇迹。
3.2 上行OFDMA和下行OFDMA可以分开配置
不少企业级AP的配置面板里,DL OFDMA和UL OFDMA是分开的开关和策略选项。默认情况下我建议先全部开启,然后分别观察效果。
下行OFDMA的收益一般比较稳定,因为AP对自己要发什么数据一清二楚,调度信息完全是“本地决策”。上行OFDMA则受限于终端缓存报告,如果终端本身不支持BSR或者上报不及时,上行OFDMA的效果会大打折扣。有些老固件的设备存在“开启上行OFDMA后反而掉吞吐”的现象,就是终端报告机制和AP调度周期不匹配。遇到这种情况,可以先把上行OFDMA关闭,保留下行OFDMA,再单独跟踪问题。
还有一个容易被忽略的参数:MU-MIMO与OFDMA的偏好策略。有些AP支持设置“优先OFDMA”“优先MU-MIMO”“两者平衡”。在终端数量多但天线数少的环境,比如大量手机终端,优先OFDMA通常更好;在终端天线数多、空间流能力强的场景,比如企业笔记本会议室,优先MU-MIMO可能收益更大。这没有绝对答案,靠实测数据说话。
3.3 终端兼容性:旧设备会拖累整个调度视角
802.11ax的OFDMA调度只能在HE(High Efficiency)终端之间生效。Wi-Fi 5和更老的终端不能参与OFDMA多用户传输,它们还是要用传统的CSMA/CA机制和整个802.11ax系统抢信道。
高密度场景最怕的就是“大部分是Wi-Fi 6终端,混着一批Wi-Fi 4/5旧设备”。旧设备每发一次长数据帧,就要占住整个信道一段时间,而新终端本来可以并行协商传输,现在也必须等介质空闲。这样调度效率被拉低的速度会远超你预期。
实操方案有三个方向:一是给旧终端单独划SSID并限定低优先级,二是通过频段漫游策略把支持5GHz的旧终端尽量引导到5GHz,三是如果旧终端量太大且业务重要,考虑分批替换。千万不要指望“AP支持向下兼容”这句话能解决调度质量问题,兼容只是能用,效率完全是另一回事。
3.4 抓包看调度健康度:看什么指标
调完射频和开关之后,总要验证效果。我习惯在现网用Wireshark抓10分钟空口包,重点看几类指标。
首先看触发帧密度。抓包时使用wlan_he过滤802.11ax帧,然后统计Trigger帧占包头集的比例。如果BSRP触发帧占比过高,说明AP总在问缓存、实际数据很少,调度周期空转。
其次看上行HE TB PPDU的并发情况。一份好的抓包里,应当能看到同一时间段内多个终端的MAC地址都出现在上行传输里,而不是同一时刻只有一个终端在发数据。如果绝大多数上行数据包都来自单个终端,说明OFDMA调度实际上没有生效,要么终端不支持,要么AP策略没有匹配上。
最后看重传比例和块确认情况。Multi-STA Block Ack如果频繁被重发,说明有终端在某一轮传输失败,AP要把整轮调度打散重新安排,调度效率自然下降。这三个指标结合起来,基本能判断“ax调度”在某个AP下是真实可用还是纸面参数。
4. 三个最容易踩的调度伪优化坑
4.1 打开OFDMA开关就认为万事大吉
很多同事觉得,把AP面板里的“OFDMA”打开,调度就自动好了。实际上OFDMA只是一个功能开关,调度得好不好,取决于算法如何选择RU大小、如何匹配MCS、如何安排触发周期。
有次我在一个教室场景做测试,终端是30多台手机,AP打开了OFDMA和MU-MIMO,理论上并发能力很强,但实测单终端吞吐很不稳定。后来发现AP固件给所有终端分配的都是平均大小RU,完全不看业务需求——视频终端和心跳终端拿到的频谱一样多。这其实是一种非常初级的“静态均分调度”,离真正的应用感知调度差得很远。
所以别只看开关状态,要关注厂商固件里有没有启发式策略:是否利用BSR动态调整RU分配,是否对高优先级业务预留资源,是否根据重传历史修正MCS。如果没有这些,打开OFDMA开关只是“形式上支持”而已。
4.2 低速率终端拖住整个传输周期
调度系统里有一个细节经常被忽略:HE TB PPDU的持续时间在同一个上行调度周期内是统一的。AP为了简化确认流程,会让所有参与该轮传输的终端在同一个时间点结束PPDU。这意味着调度器的总时长取决于最慢的那个终端。
如果某轮上行调度里混了一个信道质量很差的终端,它必须用低MCS发同样的数据量,传输时间就被拉长,其他高MCS终端即使能快速发完,也必须等本轮结束。我见过一个案例,一群Wi-Fi 6旗舰手机配一个老智能门锁,调度一轮300多微秒就能结束,加进门锁之后变成500多微秒,效率直线下滑。
解决思路是把“低速率低速业务终端”和高吞吐终端分开处理:要么给它们划分单独的调度分组,要么干脆把低速率终端踢出OFDMA并发名单,让它们走传统机制,不要来拖慢主调度周期。
4.3 只调无线调度,不跨层对应业务优先级
Wi-Fi调度做得再好,如果不知道上层业务要什么,也是白做。OFDMA调度天然适合把资源切给不同业务,但AP必须知道哪些终端跑的是视频会议,哪些只是后台同步,才能把优先级落实。
这里的关键是WMM(Wi-Fi Multimedia)和DSCP(DiffServ Code Point)的配合。视频、语音业务应该在IP层打上明确的DSCP标记,AP再把DSCP映射到WMM队列,最后在射频调度层面给予更高优先接入权。很多企业网络只做了交换机上的QoS,到AP就断了,整个链路白搭。
我在部署中会给AP设定一个“最小保证带宽”策略:对视频会议终端的流量,在调度周期里预留固定比例的RU或触发机会;对后台流量,只在闲时分配小RU低速率发送。这本质上已经跨入“应用感知调度”了,效果比单纯地调OFDMA参数直观得多。
5. TWT和BSS Coloring:和AX调度捆绑出现的两个机制
5.1 TWT:把休眠和唤醒也变成可调度的资源
TWT是Target Wake Time,目标唤醒时间。简单理解,就是AP和终端协商一个“作息表”:终端在不需要通信的时候进入休眠,只在约定的TWT服务周期里醒来,在指定的信道资源上收发包。
很多人把TWT当成省电功能,这没错,但它同时也是调度工具。AP可以把大量IoT终端、低功耗传感器分组,让它们在不同时间段醒来,从而把本来会互相竞争的空口时间错开。这相当于在时域上又做了一轮调度,和OFDMA在频域上的调度正好互补。
现网中开启TWT要留个心眼:部分早期的Wi-Fi 6终端固件对TWT支持不完美,会出现休眠过久、唤醒延迟、业务时延增大的问题。我建议在语音和视频会议终端上谨慎开启TWT,优先保障低时延;在传感器和问候类IoT终端上大胆启用TWT,节省空口资源和电池。调试时可以在AP侧观察终端的省电模式切换次数,如果频繁切换,说明TWT参数设置得太激进。
5.2 BSS Coloring:让“同频干扰”变成“可容忍并发”
OFDMA解决的是同一AP下的频域并行,BSS Coloring解决的则是不同AP之间的空间复用。802.11ax在物理层帧里加入了一个BSS Color字段,相当于给每个AP打了一个“颜色标签”。终端在检测到信道忙时,会先看帧的Color是否和自己所在BSS一致;不一致的话,只要信号强度低于阈值,就认为这是“别家的干扰”,可以继续并发传输。
这套机制直接影响了无线网的容量设计。传统做法里,同频AP必须保持足够距离避免互相干扰,这是靠“信道规划”实现的静态避让。BSS Coloring出现后,同频AP只要染了不同颜色并通过适当降低CCA阈值,就有可能在物理层并发而不互相戳穿。换句话说,调度思想已经从“避让”走向“合理共存的并发”。
实际调优时,要检查AP的BSS Color分配是否冲突,支持自动分配的控制器一般会做这件事。如果你发现某AP的Color和相邻AP相同,并且两个AP在相同信道上,那这个机制就失效了,它们会退化为传统互避。手动排查时,抓包看HE-SIG-A里的Color字段,相邻AP之间颜色不一致才是正常状态。
5.3 部署思维的变化:信道规划不再是唯一手段
过去做企业Wi-Fi信道规划,基本就是“2.4G用1、6、11,5G尽量错开不重叠”,这是静态规划。到了802.11ax时代,BSS Coloring加OFDMA让算法能处理更多同频情况,规划的重心变成“确定哪些区域可以安全复用相同信道,并把Color分配好”。
这里要特别提醒一个反向误区:不是所有场景都适合加大空间复用。如果两个AP覆盖区域的重叠度过高,即便Color不同、CCA阈值也调过,终端的下行信号仍可能在接收端形成强干扰。空间复用只在“覆盖交叠轻、干扰低于阈值”的前提下有效。调度算法负责锦上添花,基础网络拓扑仍然要自己把底子打好。
6. 从ax调度到Wi-Fi 7调度:思维迁移与未来观察
6.1 Wi-Fi 7的调度复杂度更高
Wi-Fi 7对应的协议编号是802.11be,它把最大信道宽度拉到了320MHz,同时对单个终端支持多RU组合,不再像Wi-Fi 6那样一个终端只能分到一个RU。再加上前导码打孔、多链路操作MLO这些新特性,调度器的决策空间变得更大:不仅要决定频域上的RU分配,还要决定在哪条链路、哪个信道上传。
这带来的工程难点在于:多链路并发会让终端和AP之间的协商状态成倍增加,调度算法很难再靠简单的缓存报告做全局决策。据说高通的FastConnect、博通等芯片方案都在用套件级调度器去协调多频段并发,而不仅仅是一个算法模块。对我们运维人员来说,感知上的变化是:Wi-Fi 7 AP的调优参数会更多,面对同样的“高密度并发”问题,不能再用Wi-Fi 6时代的老经验直接套。
6.2 蜂窝网调度器带来的启发
如果仔细看,802.11ax的上行MU-OFDMA调度和LTE/5G NR里的上行调度非常像:终端先发调度请求,基站给物理资源块授权,终端在授权资源上传输。这个相似性说明,Wi-Fi行业正在向蜂窝网靠拢,从“分布式竞争”走向“中心化调度”。
这种趋势会倒逼网络工程师的思维方式也升级:过去我们说无线优化,主要看信号、信道、干扰;未来要更多看“资源分配模型、调度周期、QoS映射”。我自己的体会是,做企业级Wi-Fi项目的朋友,完全可以借力4G/5G知识来理解新的Wi-Fi调度参数,两者越到后面越相通。
6.3 用ROI视角看待调度调优
聊到最后,我还是想泼一点冷静水。ax调度再怎么强大,也只是优化空口效率的手段,不是解决所有无线问题的万能药。用户的真实体验是端到端的:从终端到AP、从AP到交换机、从交换机到服务器,任何一环出问题,无线侧的调度优化都无法单独兜底。
所以项目里我通常按这个顺序推进:先确认覆盖和干扰是否达标,再排查有线侧瓶颈,然后检查终端漫游与兼容性,最后才把精力投到调度参数微调上。调优后用连续48小时的指标对比确认收益,而不是看几个点测数据就下结论。
另外还有一个偏实战的小技巧:如果你不确定某台AP的OFDMA调度有没有在正常工作,可以做一个最简单的对照实验——把AP固件里的DL/UL OFDMA同时关闭,记录整网吞吐和时延;再全部打开,记录另一组数据。两组数据没有明显差距,说明要么你网内几乎都是不支持ax调度的高龄终端,要么固件实现就是摆设。这两种结论都比“参数全开图个安心”有价值得多。