ARTICLE DETAIL

资讯详情

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

802.11g/ERP物理层深度解析:OFDM速率与保护机制如何影响Wi-Fi性能

802.11g/ERP物理层深度解析:OFDM速率与保护机制如何影响Wi-Fi性能 本来到这篇为止WIFI基础入门已经聊到了802.11a/b按理说该往11n、11ac这些新标准上走但802.11g是个绕不开的坎。它不光是第一个把54Mbps带给2.4GHz频段的标准更是后面所有双频路由器“2.4G默认模式”的祖宗级参考。这篇是这个系列的第15篇重点拆解802.11g背后的增强速率物理层ERPExtended Rate PHY。如果你在2.4GHz上用过11n甚至11ax底层其实还带着它留下的兼容性设计如果你被“老设备一上线整个WiFi都变慢”折磨过看完这篇你就能真正想明白问题出在哪。这里先提一句今天说的ERP不是企业资源计划系统。它全称是Extended Rate PHY中文一般叫“增强速率物理层”是802.11g标准里定义的那套物理层方案。它要解决一个当年看起来相当棘手的问题2.4GHz频段已经有了大量802.11b设备怎么让新标准跑得快又不把老设备全部扔进垃圾桶。1. 802.11g/ERP 到底干了件什么事1.1 为什么非要在2.4GHz上跑OFDM不可先把时间线拉回到上世纪末。802.11b用DSSS/CCK调制峰值11Mbps实际应用层能跑到5~6Mbps就不错了。802.11a呢用OFDM调制跑到54Mbps但工作在5GHz频段问题是5GHz在当时非常不普及设备贵穿墙还差很多人压根没听过这个标准。这时候矛盾就出来了2.4GHz普及度高但慢5GHz快但没人用。行业想要的东西很简单——在2.4GHz频段上提供接近54Mbps的速率同时还要让正在卖出去的几百万台802.11b设备继续能用。不可能直接喊“你们都扔掉旧网卡换新的”。于是IEEE 802.11工作组搞了一个扩展物理层这就是ERP。ERP实现上的核心动作是把802.11a的OFDM物理层搬进2.4GHz频段再叠加一整套向后兼容机制。OFDM提供速率优势兼容机制保证旧设备不被打懵。所以它在物理层上不是一个单一方案而是一套混合体系。1.2 ERP 不是一个物理层而是三个很多人以为802.11g就是“OFDM加个2.4GHz频段”这是把问题想简单了。在标准定义里ERP包含了三种物理层模式ERP-OFDM核心模式把11a的OFDM搬到2.4GHz支持6、9、12、18、24、36、48、54Mbps。ERP-PBCC可选模式基于PBCCPacket Binary Convolutional Coding调制。这是当年TI主推的方案可以在特定条件下比OFDM多几个dB增益但实际市场上几乎没有设备采用过后来也就销声匿迹了。标准留下它更多是平衡各家芯片厂商的利益。ERP-DSSS/CCK完整保留802.11b的物理层负责和11b设备通信。想拿到802.11g认证设备必须同时支持ERP-OFDM和ERP-DSSS/CCKPBCC是可选项。所以严格说802.11g是一个“复合物理层”标准。这个设计从第一天起就决定了它要和11b长期共存后面的保护机制也是为此服务的。1.3 54Mbps这个数字是怎么算出来的我觉得搞技术的人看标准总喜欢问一句“这个速率哪来的”。ERP-OFDM的54Mbps不是拍脑袋定的它完全是由OFDM参数和编码率算出来的。ERP-OFDM沿用802.11a的物理层参数20MHz信道带宽64个子载波其中48个数据子载波4个导频子载波其余做保护间隔和DC。一个OFDM符号持续时间是4微秒。每个子载波在64QAM调制下携带6bit信息编码率3/4那么一个符号的可用数据就是48×6×0.75等于216bit。216bit除以4微秒得到54Mbps。如果编码率改成2/3就是48Mbps换成16QAM、QPSK、BPSK依次往下是36、24、18、12、9、6Mbps。完整速率表长这样调制方式编码率每个符号承载数据bit速率MbpsBPSK1/2246BPSK3/4369QPSK1/24812QPSK3/4721816QAM1/2962416QAM3/41443664QAM2/31924864QAM3/421654看到这个表你会发现ERP-OFDM的速率阶梯和802.11a完全一致并没有针对2.4GHz频段单独设计新速率。为什么因为OFDM这套子载波结构本身就够用了能不能跑满54Mbps取决于现场信噪比。2.4GHz频段干扰源多微波炉、蓝牙、无线键鼠都在挤这个频段所以实际使用时经常掉到24Mbps甚至更低。也因为这个11b的DSSS信号在低信噪比下反而比OFDM更抗造这就造成一个常见现象角落里一台老笔记本可能用11b连得稳稳的新手机用11g却频繁掉线。2. 兼容性的代价保护机制到底在干什么2.1 为什么混合组网会让所有人变慢如果你在一个AP上同时接了11b和11g客户端就进入了我最想讲的部分——保护机制。问题根源在于OFDM和DSSS/CCK是两套完全不相干的物理层。11b设备听不懂OFDM的前导码它们靠能量检测和载波监听来判断信道是否被占用。当一个11g设备在发OFDM帧时11b设备可能会认为信道是空的然后自己也开头发帧结果就是冲突。双方数据都坏了然后重传网络直接瘫痪。解决办法是让11g设备在发OFDM帧之前先发一个11b设备能听懂的“广播”我要占用信道了你们都安静一会儿。这个动作就是保护机制。802.11g提供了两种方式CTS-to-self发送方自己广播一个CTS帧告诉所有老设备“信道我要用”然后立刻发送OFDM数据。RTS/CTS先发RTS给目标接收方对方回复CTS后再发数据。这是对付隐藏节点的经典方式但比CTS-to-self多一次交互开销更大。实际部署中绝大多数AP在b/g混合模式选的是CTS-to-self。隐藏节点在家庭和办公环境不算严重没必要多付一次RTS的时间成本。只有在厂房、户外这类大范围覆盖场景RTS/CTS才有明显收益。2.2 保护帧要用什么速率发这里有个关键参数CTS-to-self帧本身的发送速率。为了让所有11b设备都能听懂保护帧速率必须落在BSS基本速率集里并且要被老设备支持。所以混合模式下AP通常会让保护帧用DSSS 1Mbps或2Mbps发送。1Mbps的DSSS速率很慢但胜在谁都能解调。你可以这么理解本来你想用一辆跑车送快递但出发前必须先骑自行车在小区里广播一圈“我要出车了”所有人都得听得见。自行车骑一圈的时间越长跑车性能被浪费得越严重。保护帧如果只能选1Mbps相当于每次都先花一大段空中时间做广播。2.3 一组算给你看保护机制吃掉多少吞吐文字描述再多不如直接算一遍。假设要发送一个1500字节的标准以太网数据帧在纯11g、54Mbps、24Mbps ACK的环境下OFDM物理层前导码加信令头20微秒1500字节按54Mbps计算每符号216bit56个符号224微秒数据帧空中时间244微秒ACK帧14字节按24Mbps发送PLCP 20微秒加2个符号8微秒共28微秒加10微秒SIFS间隔总时间约282微秒这个理想情况下MAC层吞吐约42Mbps。注意这是理想值还没算DIFS和退避时间。如果开启保护且CTS按1Mbps DSSS发送CTS帧14字节1Mbps需要112微秒加DSSS长前导192微秒共304微秒加SIFS 10微秒再发OFDM数据帧244微秒加SIFS 10微秒再发ACK 28微秒总时间变成596微秒同样一个数据帧空中时间翻了一倍。MAC层吞吐直接掉到20Mbps左右。如果CTS能用2Mbps发送总时间约540微秒吞吐约22Mbps如果能用6Mbps OFDM发送总时间约332微秒吞吐约36Mbps。但前面说了混合模式下基本不会用高速率发保护帧因为老设备听不见。所以结论很明确一旦BSS里混入11b设备整个网络的速率都被拉到11b能听懂的语言水平。这是协议兼容性设计的必然代价不是哪家路由器厂商能靠“优化”绕过去的。2.4 时隙和前导符也在跟着变保护帧只是兼容性代价的一部分。802.11g还有另外两个混用后会退化的参数。一个是时隙。纯11g网络可以用短时隙9微秒CSMA/CA退避粒度更细竞争效率更高。但11b设备理解不了短时隙它们按20微秒的时隙运行。一旦混合整个BSS回退到20微秒长时隙。这个差别虽然不如保护帧那么大但叠加起来会让整体竞争效率进一步下降。另一个是前导符。DSSS有长前导和短前导长前导192微秒短前导96微秒。ERP协议里其实可以通过ERP信息元素通告短前导模式但很多老设备不支持只能按长前导来发。这又是几十微秒的额外开销。所以一个b/g混合网络即使你看到的是11g设备在通信它也在持续为老设备的“理解能力”买单。3. 现网调试路由器配置和抓包实测3.1 AP无线模式到底怎么选现在绝大多数家用路由器2.4GHz频段的默认设置还是“11g/n mixed”或者“11b/g/n mixed”。默认兼容性优先但代价就是如果有任何一台老设备接入整个BSS的保护机制就会开启。常见模式选项如下11b only已经没人用了除非要连古董设备。11g only不允许11b接入适合只有g及以上设备的网络。11b/g mixed兼容老设备但代价是保护机制。11g/n mixed这是目前很多路由器的2.4G默认模式允许n和g设备不允许b设备。11n only或者11ax only吞吐最好但老设备直接失联。我个人的建议是如果家庭里的IoT设备不多尽量把2.4G模式设置为“11g/n mixed”或“11n only”。如果家里确实有摄像头、智能插座、老打印机等只支持11b的设备别犹豫给它们单独划一个SSID专门设成11b/g mixed主网络保持高吞吐模式。这样保护机制只在IoT那个SSID内生效不会拖累主力设备。要注意的是两个SSID如果在同一信道上还是会互相争抢介质。最好把IoT网络的信道和主网络错开8个2.4G信道里选一个相对不挤的实测效果会好不少。3.2 基本速率集和“禁用低速率”选项很多人在路由器里见过“禁用低速率”“禁用1/2/5.5/11Mbps”这类选项但不太清楚它到底干嘛的。这个选项控制的是BSS基本速率集。基本速率集决定了管理帧用哪些速率发也决定了哪些老设备可以接入。如果AP把1Mbps和2Mbps从基本速率集里去掉那么只支持DSSS低速率的老设备就无法正常关联。这一招能有效阻止b设备入网从而让AP关闭保护机制。但用这个功能要留个心眼有些老式11g设备虽然本身支持OFDM但驱动实现得很糟糕扫描阶段只会发b速率的管理帧。你把低速率一禁它们可能连SSID都扫不到。所以在动手前先确认所有需要接入的设备都支持较高基本速率。还有一个容易被忽略的点基本速率集并不等同于支持速率集。AP依然可以支持6Mbps以上的所有OFDM速率但只用基本速率集里的速率发送广播和管理帧。所以“禁用低速率”不等于“设备连接速率会变高”它主要的价值是避免低速率设备接入引发保护机制。3.3 Wireshark怎么看到保护机制很多人抓包只是为了看信号强不强其实Wi-Fi协议行为在Wireshark里看得非常清楚。我通常用这样几步确认ERP保护是否开启第一步抓beacon帧。找到Tag Number 42也就是ERP信息元素。里面有几个关键bitNonERP_Present置1说明当前BSS里存在802.11b设备。Use_Protection置1说明AP要求所有ERP设备发送前使用保护机制。Barker_Preamble_Mode置1表示使用短前导符。当一个AP的beacon里同时出现NonERP_Present1和Use_Protection1基本就可以断定这个网络里混着b设备整体吞吐已经被拖累了。第二步过滤CTS帧。在Wireshark里用过滤表达式wlan.fc.type_subtype 0x1c如果发现网络中频繁出现CTS-to-self帧且RA和TA是同一个MAC地址那就是保护机制正在工作的直接证据。这时候再看这些CTS帧的速率通常都是1Mbps或2Mbps你就知道开销有多大了。第三步看当前协商速率。Linux下用iw dev wlan0 link iw dev wlan0 station dumpWindows下用netsh wlan show interfaces重点不是只看“连接速率是多少”而是看这个速率是不是稳定。如果速率在54Mbps和6Mbps之间反复横跳往往说明信道干扰严重或者存在低速率设备在拖保护机制。3.4 常见问题速查表我在调试过程中把这些典型场景整理成一个速查表排查时可以对着看症状可能原因排查与处理2.4G网络关掉某台老设备后速度恢复BSS里存在11b设备保护机制开启把老设备迁到IoT专用SSID或强制关闭b接入抓包全是CTS-to-self吞吐上不去ERP保护开销过大检查beacon里NonERP_Present是否为1定位老设备并隔离信号显示满格但速率一直掉2.4G同频干扰或老设备占空比高换信道排查附近非Wi-Fi干扰源蓝牙、微波炉等AP设置了11n only但老设备连不上设备只支持b/g不支持n的HT单独开一个b/g mixed SSID给老设备路由器开了WPA3老设备无法接入老设备不支持WPA3协商改WPA2/WPA3混合模式或单独SSID用WPA2关闭低速率后部分设备扫描不到SSID设备驱动只实现了b速率探测恢复低速率或者让这些设备迁到IoT专用网络这张表看着不复杂但每一条背后都是我踩过的真实坑。特别是“满格信号但速率低”那条很多时候不是协议问题而是2.4G信道已经被隔壁AP和微波炉占满了再查ERP保护属于白费功夫。4. 从ERP到11ax为什么这些设计今天还阴魂不散4.1 2.4GHz的物理层正统就是ERP-OFDM很多人觉得802.11g太老不值得研究。但如果你把11n、11ac、11ax的物理层参数拉出来对比会发现2.4GHz上的OFDM子载波结构基本就是从ERP-OFDM沿用下来的。11n在20MHz模式下子载波总数为56个比ERP多了4个用于改进的导频分布数据子载波52个符号时间也是4微秒。到了11ax2.4GHz的20MHz模式把子载波间距从312.5kHz缩到78.125kHz符号时间拉长到13.6微秒但频域上的基本骨架依然是20MHz、64个子载波这一套。所以可以说你用手里的11ax路由器连上2.4G Wi-Fi时物理层底子还是当年ERP-OFDM打下的。这也是为什么我一直强调理解802.11g不是考古是在补现代Wi-Fi的底层功课。4.2 11n和11ax的保护机制是一个思路ERP保护机制的思路不仅没有消失在11n时代反而被强化了。11n的HT物理层帧设计必须能让老设备正确解调帧头否则老设备会把HT帧当成乱码导致信道误判。所以11n设计了HT mixed mode前面一段用老格式的L-SIG后面才是HT-SIG和HT-STF。目的和ERP保护完全一样——让旧设备能听懂“我要占用信道了”。11ax同样如此。HE帧前面要带L-SIG还要额外做L-SIG TXOP Protection就是为了让不支持OFDMA的旧设备在听到第一个OFDM符号后至少知道要退避多久。换句话说Wi-Fi标准里最牢固的传统不是速率翻倍而是“永远要让老设备能活下来”的兼容性设计。这个传统从802.11g的ERP就开始了。4.3 为什么IoT设备还把整个2.4G拖慢到了今天还在拖累2.4G网络的头号嫌疑犯已经变了不再是老电脑而是智能插座、智能灯泡、摄像头这类IoT设备。它们成本敏感Wi-Fi模块极简很多只支持2.4GHz的b/g协议有些甚至只以11b速率关联。这些设备平时很可能不传数据但只要它关联在BSS里AP就会在ERP信息元素里把NonERP_Present和Use_Protection置位。保护机制是全小区范围的不是只对那台老设备生效。于是现象就出现了你手机连接速率显示144Mbps但实际下载速度只有二三十Mbps原因可能只是一个角落里的智能插座在拖后腿。排查这类问题思路其实很清楚先看beacon里有没有NonERP_Present再逐个断开可疑IoT设备观察CTS-to-self频率有没有下降。只要找准那个设备把它挪到专用SSID整个网络的速度马上就能回来。我个人在实际操作中体会最深的一点是遇到这种问题不要一上来就怀疑路由器或者运营商先花两分钟确认保护机制是不是被老设备触发了往往能省下半天排查时间。另外一个小技巧移动端抓包不方便时直接进路由器后台看“已连接设备列表”按速率降序排列那个速率只有1Mbps或11Mbps的设备基本就是罪魁祸首。这种老设备如果能换就换不能换就隔离别让它在主力网络里继续“绑架”所有人的体验。
返回列表