ARTICLE DETAIL

资讯详情

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

Wi-Fi 6的ax调度是什么?从OFDMA到TWT的无线网络优化实践

Wi-Fi 6的ax调度是什么?从OFDMA到TWT的无线网络优化实践 上周帮朋友调家里那台新换的Wi-Fi 6路由器换完当天他就说“怎么感觉和原来差不多”。我一问才知道他买这台设备图的就是“穿墙强、速度快”结果一测速iPhone贴着路由器也才跑了400多兆。怪吗不怪因为很多人把Wi-Fi 6理解成“单纯提高了带宽”但真正让802.11ax在拥挤环境下脱胎换骨的是它的调度机制——也就是很多人现在会挂在嘴边的“ax调度”。这篇文章我不打算给你念协议规范只想从一个做了多年无线网络优化的从业者角度把ax调度是什么、调了什么、怎么让它真正发挥作用这件事讲透。如果你是网络工程师、路由器玩家或者单纯想搞清楚家里设备为什么“没有跑满”这篇应该对你有用。1. ax调度到底在调什么OFDMA把信道切成小格子要理解ax调度先得跳出“路由器速度变快了”这个固有思维。802.11ax和上一代802.11ac最大的区别不是单流速率从433Mbps提了多少而是它的并发能力大幅提升。这种并发能力的来源就是OFDMA——正交频分多址。1.1 传统Wi-Fi为什么像单向窄桥在802.11ac和更早的协议里整个Wi-Fi信道在同一时刻通常只服务一个终端。准确说在多数场景下AP和手机之间是你方唱罢我登场有点像一座单向窄桥桥上同一时间只能走一辆车哪怕桥上空间足够宽后面的车也得等着。这就是CSMA/CA带来的限制终端要发送数据前先侦听信道没人用才敢发如果两个终端恰好同时开麦就会发生冲突两个都得退避重来。家里设备一多每个人手机上的后台App保活、推送、云同步都在抢这个信道大家互相“让路”和“重试”的时间就越来越长。结果是单设备测试看起来还行十几台设备同时在网时延迟和掉速就非常明显。1.2 资源单元RU的划分逻辑OFDMA改变了这个游戏规则。它把信道从“整条路”切成“多个车道”每个车道就是一个小资源块协议里叫RUResource Unit资源单元。AP在发送下行数据时可以把不同车道分给不同终端在同一个时间点同时给多台设备灌数据。具体到802.11ax最小RU是26个子载波tone。以20MHz信道为例可以划分出9个26-tone RU如果分配大块一点的242-tone RU那就是把整个20MHz当一块整块用。到了80MHz信道上可以用996-tone RU近似当成一整块也可以切成各种大小混用。这里的关键不是单纯“切块”而是调度器如何决定给谁切块、切多大。打个比方如果一台4K电视在播放8K视频另一台智能插座只需要上传一个温度读数调度器当然不会给智能插座分配一个242-tone大RU给电视一个9-tone小RU那样只会让电视卡顿。合理的ax调度是让大流量终端拿大RU小流量终端拿小RU零碎的小包并在一起并行发送。这种“按需分配”的能力才是OFDMA提升整体吞吐的核心。1.3 调度器的工作模式物理层和MAC层的配合在802.11ax的帧结构里每个前导码后面都会携带HE-SIG-B字段里面有RU分配信息。AP通过这个字段告诉每个终端你的数据在第几号RU上用哪种调制方式速率是多少。这就像交通调度中心在路口用广播告诉每辆车走哪条道、限速多少。这也意味着ax调度不是网线那头“随便发一发”就能成的它需要AP实时维护一张“终端能力与负载”的表。哪些终端支持OFDMA哪些终端还停留在Wi-Fi 5甚至Wi-Fi 4哪些设备的信号比较弱需要用更低的调制等级来保证可靠性调度器必须在每个传输机会里动态计算。这也是为什么不同芯片方案的路由器在同样环境下表现差异很大的原因之一——调度算法做得好的能在几十个终端之间高效切换RU分配做得粗糙的可能花了大量时间在计算和信令上实际吞吐反而不理想。2. 上行调度远比下行复杂Trigger Frame驱动的反向通道很多人刚开始理解OFDMA时都会下意识以为它只解决“AP发给手机”这一方向的问题。实际上上行方向才是ax调度里含金量最高的部分也是最容易出问题的环节。2.1 为什么上行OFDMA必须靠AP发号施令下行的主动权在AP手里AP自己知道要给谁发数据只要把RU分配信息写在帧里就行。但上行不一样手机什么时候想发数据AP管不着。如果让每台手机“自己找个时候冲一把”那和CSMA/CA时代没什么两样——还是会冲突、还是会退避。802.11ax解决这个问题的思路是让AP主动发起一个Trigger Frame触发帧。这个触发帧相当于一个调度指令AP广播“下个时刻我留好了6个RUA手机用1号RUB手机用2号RUC手机用3号RU……你们同时给我发吧”。这时候终端不再靠随机退避竞争而是在指定时间、指定频段上同步上行。这就是上行OFDMA的核心。2.2 Trigger Trigger Frame里到底带了哪些关键参数我自己在看无线抓包时会特别关注Trigger Frame里的几个关键信息。首先是RU分配哪个终端拿到哪些子载波块这决定了终端上行时用多宽的“车道”。其次是MCS调制与编码策略和功率控制信息AP会根据它对这个终端下行信道质量的估计反推上行应该用什么速率、发射功率多大。最后是目标发送时间所有终端必须在指定的SIFS间隔之后同时发送这要求终端的时间同步足够准。这里有个很容易忽略的点Trigger Frame里的功率控制不只是为了让信号够强更关键的是解决远近问题。如果一台离AP 1米的手机和一台离AP 20米的手机同时上行近的若用满功率发射会把远的信号彻底压死。AP会通过计算各终端的路径损耗在Trigger Frame里给出一个功率偏置让远处终端提高功率、近处终端降低一点这样基站端收到的各路上行信号强度就能尽量接近——这很像蜂窝网络里的上行功率控制但放在Wi-Fi协议里做复杂度要高得多。2.3 设备不按约定上行怎么办UORA的兜底逻辑不是所有终端都能被调度到。有些报文比较特殊的或者终端没来得及同步的802.11ax还留了一条路UORA基于正交随机接入的上行。简单说AP在触发帧里留出几个专门给随机接入的RU那些没有被“点名”的终端可以在这些RU上做随机退避再发送。这和老协议里的竞争机制有点类似但好处是它不会干扰已经分配好的、正常调度的那部分终端。UORA的存在很有价值。实际网络里总有一些小包、控制帧、或者刚连上还没来得及做能力协商的终端如果没有这个兜底机制它们只能等下一轮调度周期延迟就会变高。有了UORA未调度终端可以在稀疏的空闲RU上快速插入既保住了调度的秩序又给了灵活性。这可以说是ax调度里最细腻的设计之一。3. TWT与BSS Coloring减少无谓竞争的两张底牌OFDMA解决的是“并发传输”的效率问题但在真实环境里Wi-Fi网络还会遇到两个更头疼的问题设备太多导致每个终端都在空等以及邻居路由器太多导致信道互相干扰。802.11ax针对性地给出了TWT和BSS Coloring两大机制这两个平时容易被忽略的调度细节恰恰决定了多设备家庭的体验。3.1 TWT给终端“约好时间再来”的睡眠闹钟TWT全称Target Wake Time目标唤醒时间。机制很好理解AP和一个或多个终端协商一组唤醒时间表终端在没到自己时间点的时候完全可以进入睡眠状态不用一直守着信道听有没有自己的数据。有很多人会把它和手机上的省电模式混淆。TWT不是手机系统层面的省电而是Wi-Fi链路层的一种“排班表”AP告诉手机“你每隔200ms醒来一次这里有你的数据其余时间你可以把射频模块关掉”。这样做有双重好处一是终端功耗大幅下降尤其适合IoT设备这也是为什么很多智能家居设备会宣传“支持TWT能延长电池续航”二是竞争减少因为默认不醒来的终端不会在信道里制造干扰不会和正在通信的设备抢时隙。但TWT在实际部署中也是个“麻烦精”。我遇到过不少路由器默认开启TWT之后部分老终端出现唤醒时间错乱、丢包率升高的情况。在802.11ax协议里TWT分为个体TWTIndividual TWT和广播TWTBroadcast TWT。个体TWT是AP和单个终端点对点协商灵活但信令开销大广播TWT是AP给一批终端排同样的唤醒周期信令开销小但对不同业务的适配性差。调度做得好的固件会把这两者结合起来视频流或在线游戏这类低延迟需求高的设备用个体TWT尽量调度得更频繁而智能插座、传感器这类低流量设备用广播TWT一次性打包管起来。这一步做好做坏直接关系到“家里几十台设备同时在线时手机打游戏会不会飘”。3.2 BSS Coloring色彩编号解决了密集部署的干扰问题再看另一个痛点。住在公寓里一堵墙隔着一个邻居你搜到的Wi-Fi可能有两三页。所有相邻AP都在同一信道上工作时原本是灾难性的你的AP在发数据邻居的AP也在发数据两边互相认为信道忙于是都退避整体速率崩掉。802.11ax的BSS Coloring思路非常聪明每个BSS基本服务集可以理解为一个独立Wi-Fi网络分配一个颜色编号报文帧头里有这个颜色的字段。终端收到邻居AP的信号时不再简单地根据信号强度判断“信道是不是忙”而是先看颜色如果这个信号的颜色和自己的BSS颜色相同说明是同一网络下的帧该避开就得避开如果颜色不同并且信号强度低于一个阈值说明这是隔壁网络的干扰信号可以忽略它继续使用信道。这样一来密集部署下的“假忙”就大幅减少AP可以更大胆地向同一个信道发起传输整个区域的总吞吐量随之上升。所谓空间复用Spatial Reuse指的就是这种“允许在控制好干扰的前提下同频同时传输”的能力。3.3 空间复用阈值对实际吞吐的影响BSS Coloring不是无条件的忽略关键取决于一个阈值参数OBSS_PD重叠BSS侦听功率阈值。如果邻居信号高于这个阈值终端认为干扰不可忽略仍然要退避低于阈值就当作噪声忽略。于是这个阈值的设定就成了一个经典博弈阈值设高点更多邻居信号会被“忽略”信道利用率更高但可能因为忽略太多而导致帧碰撞把阈值设低点信道利用率保守退避更多但通信更可靠。一些高端路由器在“高密度模式”或“低干扰模式”里实际上就是在调这个阈值。在极端的体育馆、地铁、展会这类高密度空间把OBSS_PD调高、接受一定误码率换取吞吐量是常见的优化策略而家里只放一台AP的场景倒不需要过于激进默认设置一般就够用。理解了这个取舍再看各种“测速大会”里同品牌同型号路由器因固件差异导致结果不同的现象就不会感到意外了。4. 实战调优从路由器后台到网卡驱动的那些开关讲完了机制说点能上手的。ax调度不是完全自动的它需要路由器固件、终端网卡驱动、以及你家里的设备形态共同配合。下面是我在实际调试中总结出的几个关键开关和检查项。4.1 路由器选项OFDMA、MU-MIMO、TWT各自的开关逻辑现在的Wi-Fi 6路由器后台基本都会提供OFDMA、MU-MIMO、TWT、BSS Coloring等开关。很多人习惯“全都打开”但这里面的逻辑并不是多多益善OFDMA开关建议保持开启。它解决信道切片并发的效率问题是Wi-Fi 6的基石几乎不会带来负面效果。但部分老芯片方案在OFDMA和MU-MIMO同时启用时调度器的计算压力会增大如果你用的是低端路由器同时开会导致偶尔的延迟抖动。MU-MIMO开关在802.11ax里OFDMA可以理解为频域上的并行MU-MIMO是空间流上的并行。两者可以叠加。但MU-MIMO需要终端支持多天线和特定空间流绝大多数手机只有一到两根天线。家里以手机为主的场景把下行MU-MIMO开着问题不大但别对它的收益抱太高期望。TWT开关这是争议最大的。如果你家里接入了不少Wi-Fi 5甚至更老的IoT设备TWT的兼容性可能成为卡顿来源。我的做法是全新一套设备都是近两年的终端就开TWT如果还有老款摄像头、某些不太知名的智能音箱优先关掉TWT稳定性优先。另外一个常被忽略的选项是“目标唤醒时间下的广播TWT间隔”。有些路由器只提供“省电模式/U节能模式”这种模糊选项实际就是把TWT周期拉长。在需要低延迟的场景比如在线竞技游戏拉长TWT反而弊大于利尤其对游戏设备会明显增加上行调度等待。这个选项建议关闭或选择较短周期。4.2 网卡端与调度相关的隐藏项路由器只是调度的一端终端网卡侧同样有一堆隐藏参数。以Intel的AX200/AX210系列无线网卡为例设备管理器里可以关闭“高级→电源管理”里的“允许计算机关闭此设备以节约电源”这个选项经常被网卡驱动用来配合TWT长期睡眠但它有时候会把调度表“睡乱”导致唤醒延迟。如果发现笔记本连Wi-Fi 6刚唤醒时前几秒ping很高多半就是这个问题。更麻烦的是部分手机厂商会在系统省电策略里干预Wi-Fi模块的TWT行为。比如某些国产手机在锁屏后台杀任务的同时会把TWT周期拉得很长结果微信消息到了AP想推送通知手机却还在下次唤醒时间之前“装睡”。这类问题在Wi-Fi这边无解只能到手机系统设置里把对应App的后台活动、省电策略改成无限制才能缓解。排查这类问题我一般会先看这台设备从待机到收到通知的延迟如果固定在一个整数倍间隔比如200ms、400ms基本就是TWT周期在作怪。4.3 如何确认ax调度真正生效有没有办法直观确认调度在工作有一个土办法用一台支持Wi-Fi 6的手机另一台设备连续做上下行大流量下载同时在路由器后台看“无线用户”列表观察多个终端的瞬时速率是否存在“同时非零”的情况。如果OFDMA正常工作你会看到多台设备的速率同时跳动而不是轮流占满。如果愿意看得更细可以抓无线包分析抓包时找传输机会里有没有AX HE帧以及Trigger Frame是否周期性出现。只要看到AP在稳定地发Trigger Frame、各终端在触发帧指定的RU和MCS上响应就说明上行调度已经正常运转。对一般用户来说没必要做到这步但如果你打算深度调优这会是一条非常有效的判断手段。5. 混用场景的调度退化与排查经验最后这部分聊聊实际部署中最容易打击人的场景换了一台旗舰Wi-Fi 6路由器结果全家设备只有手机是Wi-Fi 6其余都是几年前的Wi-Fi 5甚至Wi-Fi 4。ax调度还能发挥吗答案是可以但调度能力会被显著稀释。5.1 OFDMA和MU-MIMO为什么在老设备面前会失灵OFDMA只对支持802.11ax的终端生效。老设备不认识HE帧里的RU分配也不会响应Trigger Frame它们只能退回传统CSMA/CA模式。这就产生了一个尴尬的局面AP想用OFDMA一次性调度多台老设备做不到而AP同时又要给老设备留出传统模式的竞争窗口。为了保护老设备能正常接入和发送AP必须分配一部分时间给传统的DCF机制。这个“传统兼容时段”开销不可小视。尤其是当网络里老设备的流量比例不低时很多时间被浪费在“给老设备让行”上新设备的OFDMA调度窗口反而被压缩。技术上这个叫“混合模式调度下的效率折损”。所以如果你家有一大堆老款智能家居设备换路由器带来的体验提升幅度大概率没有想象中大。5.2 芯片厂商调度策略差异高通 vs 博通 vs 联发科不同芯片方案的调度算法在实际体验里差别真的挺明显。高通的方案通常更激进倾向于多终端并行、RU切得更碎这让它在高密度场景里很强但偶尔会在弱信号设备上牺牲一点稳定性博通的方案偏保守调度节奏更稳单终端极限速率往往好看但多设备并行时吞吐提升幅度不如高通激进联发科这两年在调度算法的并发性上追得很紧尤其在低价位路由器上体现出的多终端并发水平明显反超了同价位博通方案。这个差异直接体现在实际项目中。我曾经在同一个公寓环境里用同型号天线、同一手机做对比测试高通方案的路由器在20台终端并发时多终端平均吞吐和延迟都更稳而我另一台博通方案的设备在老设备混入时响应时间有些微波动但极限单设备速率稍高一丁点。如果你家终端数量少且追求单设备高速率博通或者联发科高端方案未必差如果家里IoT设备很多、经常需要同时工作高通的调度优势会被放大。5.3 实测中常见的“开了ax还是慢”排查链路最后给一条可复现的排查思路按顺序走基本能找出“开了Wi-Fi 6还是慢”的根因先确认终端确实连到了5GHz频段、状态栏显示Wi-Fi 6或“ax”标志而不是连到2.4GHz且忘了切换。这是最常见也最容易被忽略的一步。到后台看无线速率协商值。如果连接速率只有几百兆而不是1.2Gbps以上先判断终端天线数量和信道宽度。很多手机在80MHz下协商到1201Mbps这个数字本身不低但实际吞吐还要再打个五六折。检查路由器是不是开了“兼容模式”或“legacy模式”。部分路由器为了兼容老网卡把支持能力降到11ac甚至11n会导致ax调度完全停用。关掉在用的省电类选项路由器端的TWT、终端驱动的电源管理都逐一关掉再测如果速度回来了再针对性打开。如果以上都没问题多半是信道拥塞。尝试固定信道而不是自动。在2.4GHz频段选1、6、11之一在5GHz选36-64里的某个低干扰信道再重新测。我自己调试时还会额外看一眼信道占用率。很多路由器后台会显示“信道负载”或“繁忙时间比例”如果在深夜没人用的情况下依然超过50%很可能是邻居的Wi-Fi已经把信道占满了这时候即使ax调度算法再好也难为无米之炊。话说回来ax调度再强终究是协议层面的优化它解决的是“拥挤时段的效率”不是“穿墙的物理定律”。指望一台Wi-Fi 6路由器把隔了两堵墙的死角变成满速那是不现实的但如果你家里设备多、并发频繁把ax调度的几个关键点弄明白你会明显感受到“同样的宽带整个网络顺滑了很多”。我在实际布线、调试项目里反复验证过这一点这也是我仍然觉得802.11ax值得深挖的原因——真正让网络变好的往往不是设备本身而是你对调度机制的理解和落地能力。
返回列表