ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

WiFi 6“ax调度”强在哪?从CSMA/CA到OFDMA、TWT、MU-MIMO原理与配置

WiFi 6“ax调度”强在哪?从CSMA/CA到OFDMA、TWT、MU-MIMO原理与配置 最近换了个支持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-tone2MHz9个低速率小包设备、IoT52-tone4MHz4个一般业务小流量106-tone8MHz2个中速业务网页浏览242-tone20MHz1个高速业务视频下载这里有个细节你可能感兴趣为什么最小是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 TWTAP统一给一组设备分配同一个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 ReportBSR缓冲区状态报告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 6802.11ax”速率显示为HE MCS开头。如果主力的手机电脑都显示802.11ac那你还在用老一代的竞争机制ax调度自然无效。先把终端换代问题解决再去折腾路由器设置。5.2 路由器设置三开关建议这么分配不同厂商固件里的开关名称可能略有差异但核心项就三个OFDMA、TWT、MU-MIMO。我的设置建议如下可以按这个思路去套你自己的设备功能建议状态说明OFDMA5GHz开启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调度”四个字的分量。
返回列表