最近换了个支持802.11ax(也就是WiFi 6)的路由器之后,有朋友经常问我,“ax”到底厉害在哪儿,为什么各家厂商都在宣传自己的“ax调度”能力。我通常给他们掰开揉碎讲三个字:会排队。老WiFi是所有人抢着说话,ax则是按安排好的时间、频率、空间同时说话。今天这篇就把“ax调度”这件事从原理到配置一次讲清楚,不堆参数,也不写厂商通稿,就按我实际折腾路由器和抓包的经验来。
先说结论:802.11ax对比上一代802.11ac,最核心的分水岭不是那几Gbps的速度数字,而是它第一次让WiFi拥有了真正意义上的“调度器”。速率提升只是把单条路加宽,而调度是直接修了一座立交桥。适合谁看?如果你家里设备超过15台、办公室经常30+终端在线、或者准备部署智能家居但担心WiFi扛不住,这篇文章你值得耐心看完。
1. 为什么WiFi突然需要“调度”:一场从抢麦到排课表的变革
1.1 老WiFi的抢麦机制,设备一多就崩
传统WiFi(从802.11a/b/g到802.11ac)的信道访问机制,学名叫CSMA/CA,载波侦听多路访问/冲突避免。你可以把它理解成一群人围着一张桌子开会,没有主持人,谁想说就说,但开口前要先听一下有没有别人在说。没人在说,你就开麦;如果两个人同时开麦,就都停下来,各自等一个随机时间再试。这个机制在设备少、流量小的时候非常稳定,延迟可以做到几个毫秒内。但设备一多,问题就暴露了——每个人开口前都要“听一下”,监听本身要花时间,随机退避也让信道经常处于没人说话的“空窗期”。
我在一个开放办公区做过对照:同样一台AP,接20台笔记本的时候延迟还行,加到50台设备之后,ping延迟从5ms以内直接飙到100ms以上,甚至偶尔丢包。问题不是带宽不够,而是大量设备在同一个信道上互相“抢麦”,碰撞和退避占用了大部分有效时间。这种情况下,把WiFi速率从千兆提到两千兆也救不回来,因为抢麦的机制没有变。
1.2 CSMA/CA的三个致命浪费
CSMA/CA这种随机竞争的机制,在密集场景下有三个绕不开的浪费:
- 竞争开销大:每个数据包发送前,都要先侦听信道、再走随机退避。如果发的是一个100字节的IoT心跳包,等它“抢到麦”的功夫,够别人传完好几个大包了。小包越多,竞争开销占比越高。
- 大包阻塞小包:一个终端在持续下载大文件时,信道基本被它霸占。其他终端只能趁着文件传输的间隙去抢信道。表面上看大家的网速都是“均分”,实际上所有终端都在排队等同一个大门,体验就像高峰期堵在停车场出口。
- 随机退避让信道利用率打折:退避时间是完全随机的,这意味着信道上经常出现“明明大家在排队,却没有车通过”的空档。随机性是公平的,但代价是整体吞吐量的浪费。
这些问题在WiFi速率低的时候还不明显,大家本来就不指望有多快。但现在千兆宽带入户,路由器端口速率早就不是瓶颈了,瓶颈反而变成了“信道怎么分给这么多设备”。于是802.11ax的设计者做了一个很关键的决定:不再让终端靠自觉排队,而是直接指定一个“调度器”。
1.3 “ax调度”到底在调度什么
802.11ax引入的调度能力,不是一个单一功能,而是三个维度同时展开:
- 频率维度:OFDMA把信道切成多个资源单元(RU),同一时刻可以分配给不同终端,这叫频分调度。
- 时间维度:TWT让不同的终端按约定的时间点醒来收发数据,这叫时分调度;触发帧则精确控制上行发送的时刻。
- 空间维度:MU-MIMO把天线阵列的方向作为资源,让多个终端在互不干扰的方向上同时通信,这叫空分调度。
这三个维度叠加起来,WiFi从一个“大家一起抢的共享信道”变成了“一个可以按需切分的资源池”。AP(也就是路由器)在这里扮演的角色,从过去的公共广播员变成了总调度台。老WiFi是“路边停车谁先到谁抢车位”,ax调度是“停车场管理员按你的车型和预计停留时间分配车位”。这才是ax调度最本质的改变。
2. OFDMA:把信道切开分给不同人,这才是真调度
2.1 从OFDM到OFDMA,一字之差天翻地覆
在802.11ac时代,信道使用的是OFDM技术。OFDM可以把一条信道分成很多正交子载波,但这些子载波在同一个时刻只能服务一个用户。就好比一条八车道高速路,路很宽,但某一秒只允许一辆车在上面跑。802.11ax改成了OFDMA,也就是在OFDM的基础上加上了“多址”能力。现在同一秒内,不同车辆可以分别占用不同的车道,同时往前跑。一个大货车占四条道,几个小电驴各占一条道,谁也不影响谁。
这个变化对WiFi来说是革命性的。因为现实中大多数终端的数据需求并不大——智能灯泡几十字节的状态上报、手机推送的一条消息、智能音箱的语音指令,这些小流量数据如果每次都要独占整个信道,效率极低。OFDMA让AP可以把信道切成不同大小的碎片,大设备拿大碎片,小设备拿小碎片,同时工作。
2.2 RU粒度:理解OFDMA的关键
OFDMA的最小调度单位叫资源单元,英文是Resource Unit,缩写RU。802.11ax定义了多种RU大小,我整理了一个常用对照表:
| RU大小(tone数) | 占用频宽(约) | 单个20MHz信道内可分配数量 | 典型用途 |
|---|---|---|---|
| 26-tone | 2MHz | 9个 | 低速率小包设备、IoT |
| 52-tone | 4MHz | 4个 | 一般业务,小流量 |
| 106-tone | 8MHz | 2个 | 中速业务,网页浏览 |
| 242-tone | 20MHz | 1个 | 高速业务,视频下载 |
这里有个细节你可能感兴趣:为什么最小是26个tone,而不是更小?因为一个RU里除了数据子载波,还要放导频子载波用于信道估计,同时又要留出保护子载波防止互相干扰。26-tone是工程上兼顾粒度和开销的平衡点。如果要服务更多设备,可以把20MHz分成9个26-tone RU同时给9个终端用;如果只有一个终端需要高速率,那就把整个20MHz作为一个242-tone RU给它。这种灵活切分的能力,就是OFDMA调度精细化的基础。
2.3 AP怎么“发号施令”:HE-SIG-B与触发帧
有了RU之后,关键就是AP怎么告诉每个终端“你该去哪个RU上收发数据”。下行方向靠的是HE-SIG-B字段,它携带每个终端的用户信息,包括AID(关联标识符)、RU分配位置、MCS(调制编码方案)等。终端收到帧后,先解析HE-SIG-B,找到自己的RU,再在该RU上接收数据。
上行方向则走的是另一套指令:触发帧(Trigger Frame)。AP要组织上行OFDMA时,会先发一个触发帧,里面同样包含每个终端的RU分配信息,还额外带了发送功率控制参数、空间流配置等。终端收到触发帧后,严格按照指定的RU和起始时间发送上行数据,整个过程不再有随机竞争。这也是我抓包时判断路由器有没有真正启用OFDMA调度的依据:看空口上有没有周期性的Trigger Frame。如果没有,说明这台AX路由器的OFDMA只是“参数开了,协议没跑起来”。
2.4 上行OFDMA随机接入:给“没被点名”的设备一条活路
OFDMA调度不可能覆盖所有情况。总有那么一些终端,AP没法提前点它的名——比如刚接入网络的新设备,还没被纳入调度列表;或者一个需要临时上报状态的传感器。如果整个信道都是“被调度”的终端,这些新设备就永远没机会说话了。
802.11ax为此专门设计了上行OFDMA随机接入机制,UORA。AP会在触发帧里预留一部分RU作为随机访问RU,简称RA-RU。没有被调度的终端可以在这些RA-RU上进行竞争接入,竞争的方式是走一个叫OBO的计数器,替代了老式的退避窗口。OBO的好处是,竞争只在很小的RU范围内发生,不会像以前那样整个信道一起撞。我在测试环境里看过UORA的实际运行,它就像一个会议室里专门留了几个“自由发言”座位,既能照顾到新来的人,又不影响大会的正常秩序。
3. TWT省电调度:让设备按“课表”醒来
3.1 TWT的原理和类型
TWT是Target Wake Time,目标唤醒时间。它解决的问题是:WiFi终端什么时候该醒着,什么时候可以睡。在802.11ac以及更早的时代,手机和IoT设备虽然也有省电模式,但基本是靠“听AP的Beacon信标”来定期唤醒,所有设备都在同一个时间点醒来,反而容易集中碰撞。TWT则完全不同:每个终端可以和AP协商一个属于它自己的“唤醒计划”,就像学生按自己的课表去上课,而不是所有学生听到同一个铃声就冲向教室。
TWT协商的双方是AP和终端。终端发起TWT Setup请求,里面带上期望的唤醒间隔、唤醒时长等参数;AP根据自己的调度策略决定是接受还是调整。协商成功后,终端在约定的时间窗口外可以关闭射频,进入doze状态。TWT分两种主要形态:
- Individual TWT:一对一协商,每个终端按自己专用的时刻表唤醒,适合手机、平板这种调度需求差异大的设备。
- Broadcast TWT:AP统一给一组设备分配同一个TWT服务周期,适合大量IoT设备,AP可以用一个广播帧同时管理它们。
3.2 TWT对密集场景的价值远超省电
TWT表面上是个省电技术,但它的调度意义被很多人忽略了。当大量设备都各自安排在不同时间唤醒时,任意时刻真正活跃的终端数量会大幅减少。这就相当于把设备的总数从一个“同时有50个人在会议室里抢话筒”的场景,变成了“50个人按预约轮流来讲,每个时刻只有两三人在场”。空口竞争压力骤降,整体网络容量提升。
我实测过一组智能家居设备,包括智能门锁、温湿度传感器、几个智能灯泡。在开启TWT并设置唤醒间隔为2秒时,这些设备的待机电流普遍下降了30%到50%。更重要的是,它们不再像以前那样每过几百毫秒就集体撞一次信道,AP的Beacon里能同时服务的终端数目明显改善。说白了,TWT既是电表上的数字,也是信道里的秩序。
3.3 我踩过的TWT兼容性坑
TWT参数协商是比较复杂的协议交互,厂商实现水平参差不齐。我遇到过的几个典型问题,列出来供你排查参考:
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 某个IoT设备响应偶尔慢几秒 | 设备进入doze状态后,错过AP缓存数据通知 | 关掉该设备的TWT,或延长唤醒间隔拉大容错 |
| 设备频繁掉线重连 | TWT参数协商不完整,设备对唤醒时间计算有误 | 在路由器后台关闭TWT后观察是否稳定 |
| 手机微信消息有时延迟弹出 | 手机在TWT睡眠期内,AP缓存了消息但等待下一个唤醒点 | 优先排查是否开启了Broadcast TWT,改为Individual TWT |
| 开启TWT后设备更耗电 | 部分低端模块实现Partial TWT,频繁醒来处理信令 | 这类设备直接禁用TWT |
我的经验是:新买的手机、主流IoT设备,TWT都可以放心开;但那些用了老款WiFi模块的设备,或者兼容性不明的杂牌设备,一旦出现掉线、延迟抖动,第一件事就是先把TWT关掉再排查,不要一上来就怀疑路由器坏了。
4. MU-MIMO调度:从单向特快到多线并发
4.1 802.11ac的MU-MIMO为什么用起来不过瘾
很多人在802.11ac时代就听过“MU-MIMO”这个名词,但实际体验往往觉得是个噱头。原因在于第一代MU-MIMO限制太死:只能做下行,也就是AP同时向多个终端发送数据;且同一帧最多服务4个用户,还得在波束成形效果好的前提下才有点增益。上行依旧是“一次一个人”,终端之间要抢信道发送。所以ac时代的MU-MIMO给我的感觉是:参数表上写着4x4,实际跑起来经常只有2个用户能真正受益。
4.2 802.11ax的MU-MIMO强在三个维度叠加
802.11ax把MU-MIMO从“半残”做成了“全血版”:
- 支持上行MU-MIMO:终端可以通过触发帧被调度,在同一时刻、不同空间流上同时向AP发送数据,彻底解决了上行碰撞问题。
- 支持8x8天线配置:同时服务的终端数量上限提升到8个。
- OFDMA与MU-MIMO可叠加:AP可以在同一个时间点,把不同RU分配给不同用户,同时让某些用户在同一个RU内使用多条空间流。换句话说,频率和空间两种资源可以被同时编排。这个调度能力已经接近电信级网络的资源管理方式。
我在家里用支持WiFi 6的手机做过对照测试:四台手机同时进行微信视频通话,在802.11ac路由器上,总延迟抖动明显,偶尔画面卡顿;换成同一台路由器切换到WiFi 6模式后,在信号良好的客厅,四路视频通话基本稳定,ping延迟的抖动幅度下降了一个数量级。这就是调度效果的直观体现。
4.3 调度器如何决定“谁先谁后,给多少”
关于OFDMA和MU-MIMO,路由器固件到底是怎么做调度决策的?标准里没有规定具体的调度算法,厂商各自实现。但从协议流程和我的抓包分析来看,AP在分配资源时主要依赖三个信号:
- Buffer Status Report(BSR,缓冲区状态报告):WiFi 6终端会在上行报文里向AP报告自己队列里积压了多少数据,AP根据这个数据决定下一秒给这个终端分配多少RU。如果某个终端的缓存暴涨,调度器会倾向于多给它资源。
- TID优先级:802.11ax沿用了流量标识(TID)机制,语音、视频等实时业务的TID优先级高,AP在调度时可以优先给这类业务分配低延迟的RU窗口。
- 信道质量反馈:AP会根据终端的信道状态信息(CSI)判断MCS速率。信号差的设备给它再大的RU也只能用低速率传输,纯属浪费;信号好的设备则可以抢到大RU高速传输。调度器需要在效率和公平之间做权衡,这也是各厂商固件拉开差距的地方。
这几条看起来是网络工程师关心的事,但其实决定了你实际体验——为什么同一个路由器,有的终端很流畅,有的终端老是转圈。理解了AP的调度依据,你就能明白把主力设备放在信号好的位置,比升级带宽更管用。
5. 让“ax调度”真正生效:配置、验证、避坑
5.1 先确认你的终端真的在以802.11ax连接
很多人买了AX路由器,以为所有设备都自动变成WiFi 6了。这是最常见的误区。无线协商是个“木桶效应”:AP和终端任何一方不支持802.11ax,连接就只能回退到ac甚至a/n模式。排查方法很简单:
- iPhone:路由器的后台主页和终端列表里会显示设备协商协议(通常显示为WiFi 6或802.11ax)。
- Android:进入WiFi详情页,看“协议”或“频率带宽和协议”字段。
- Windows:无线网卡连接属性里,协议显示为“Wi-Fi 6(802.11ax)”,速率显示为HE MCS开头。
如果主力的手机电脑都显示802.11ac,那你还在用老一代的竞争机制,ax调度自然无效。先把终端换代问题解决,再去折腾路由器设置。
5.2 路由器设置:三开关建议这么分配
不同厂商固件里的开关名称可能略有差异,但核心项就三个:OFDMA、TWT、MU-MIMO。我的设置建议如下,可以按这个思路去套你自己的设备:
| 功能 | 建议状态 | 说明 |
|---|---|---|
| OFDMA | 5GHz开启,2.4GHz开启 | 对多终端并发场景提升明显,小包场景收益尤其大 |
| TWT | 主力手机开启,IoT按需开启 | 兼容性风险较高,出现掉线先关它 |
| MU-MIMO | 开启 | 对支持多天线的终端有正向增益,但别指望老设备受益 |
另外还建议:2.4GHz频段如果部署了大量老IoT设备,带宽锁定为20MHz,覆盖更稳,也避免OFDMA在2.4GHz上因为带宽绑定的问题产生兼容性冲突。5GHz主力频段保持80MHz或160MHz带宽,但注意160MHz在高密度邻居环境下容易受干扰,如果测速不快,回退到80MHz往往更稳定。
5.3 怎么验证调度真的在跑
光看后台开关是心理安慰,验证调度是否生效有几个实操办法:
- 抓包验证:用支持监听模式的无线网卡和Wireshark抓取空口报文,过滤Trigger Frame和HE-SIG-B字段。能看到AP周期性发送Trigger帧,说明上行OFDMA调度在运行;能看到TWT协商的Action帧,说明TWT在生效。
- 多终端并发ping测试:在同一个位置放5台支持WiFi 6的设备同时刷视频,观察ping的抖动。如果抖动远小于ac路由器在同一位置的数值,说明调度起作用了。
- 带机量压力测试:在会议室或者办公室环境,连接设备数超过30个后,看低速率终端是否还能正常收发。ax的调度能力在带机量上的优势,比峰值速率更明显。
没有网卡抓包条件也没关系,用前两条经验判断,足以区分“开了开关”和“真正生效”这两种状态。
5.4 混合设备组网的三个坑
实际组网中,很少有一屋子全是WiFi 6终端的情况,旧设备不可避免。三个坑我踩过,提前帮你避掉:
- 老设备会拖累全局:同一信道上,ac设备仍用传统竞争方式接入,它发出的帧会打断ax设备的调度节奏。所以如果家里主力终端全是老型号,换AX路由器后改善有限,这不代表“ax没用”,而是老设备在帮倒忙。建议逐步把主力设备替换为WiFi 6终端。
- IoT设备频繁掉线优先怀疑TWT:智能插座、传感器这类低功耗设备,固件里的TWT实现通常比较简单,开了易出问题。我之前有一个智能灯泡,开启TWT后每隔几分钟掉线一次,关闭后恢复正常,稳定运行一周多。
- 别乱绑定20/40MHz和OFDMA叠加:部分固件在启用了旧的HT模式强制设置后,2.4GHz上的OFDMA反而不生效了。遇到这种问题,先把2.4GHz设为“自动/20MHz兼容模式”,再观察OFDMA的状态。
5.5 我个人的部署思路
最后聊聊我自己现在两个场景的部署方式,供你参考。家里,主力路由器是主流的AX6000级别设备,策略很简单:5GHz跑手机、平板、电脑,所有OFDMA和MU-MIMO全开,TWT开启;2.4GHz跑智能家居和旧款摄像头,TWT按设备逐个开启,谁不稳定关谁。实测在15台设备同时在线、其中6台在跑视频流的时候,ping延迟依然能保持在个位数毫秒级别。
办公室那边我反而会把TWT关掉。因为访客设备太杂,很多不规范的TWT实现会引发兼容问题,比起那点省电收益,稳定优先。OFDMA保持开启,再给访客网络限速。这套配置跑了大半年,30多台设备同时在线的环境下,没人再抱怨视频会议卡顿。
说一个我个人印象最深的实测数据:在相同的信号覆盖下,802.11ac路由器同时带40台设备时的丢包率开始明显上升,而802.11ax路由器在同样40台设备时,丢包率还维持在千分之几的级别。这比任何参数表都更能说明“ax调度”四个字的分量。