举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔知了社区有害的内容
×
不规范转载
×
举报说明
文/李大鲲
——网络老爬虫(无线新技术专题)
如何测试评价一款AP产品的射频效果的好与坏?从用户的角度来说,最直接的评判标准来自于用户体验:
上面几个方面,抛开现象看本质,都涉及到速率选择机制和一些报文重传机制的处理。本文将从这些常见简单的现象来入手,从射频的角度来分析和挖掘一下AP的速率选择算法。
在介绍速率选择之前,我们先了解一下802.11协议中速率相关的概念。笼统的说,速率是指无线工作站与接入点或无线工作站之间报文交互时的速度,速率的高低决定了系统吞吐的大小。
每个BSS必须负责维护一组速率,即打算加入此 BSS 的工作站所需支持的速率清单。如下是802.11a/b/g协议中规定的一些速率集。
HT速率是指802.11n协议中规定的速率,向前兼容802.11a/b/g协议,支持802.11a/b/g的所有速率集。另外,802.11n协议为了达到高吞量还定义了自己的速率编码集MCS(Modulation and Coding Scheme,调制编码策略)。它超出了以往的单纯速率概念,实际上是一系列因素的结合,包括流数,调制、编码技术,GI,子载波数等。在802.11n-2004协议的20.3.5小节讲到了MCS,20.6小节的Table 20-29 到Table 20-43列出了所有的MCS表。
如下为802.11n 40M带宽模式下,MCS 0-23对应的速率索引:
图1 802.11n 40M带宽模式部分速率表
VHT速率是指802.11ac协议中规定的速率,向前兼容802.11a/n协议。802.11ac的速率和多个因素相关:包括空间流NSS、带宽、MCS以及Short-GI等。和802.11n协议一样,802.11ac协议中定义了一个速率集的表。如下为802.11ac模式,3条流、80M带宽模式下的速率表。
图2 802.11ac 80Mhz 3条流速率表
市面上销售的各种WLAN产品,总能看到150Mbps、300Mbps、450Mbps、1300Mbps等等这样的表示路由器最大速率的字样,可实际上我们在用笔记本上网的时候,真正传输的速率却往往达不到这样的最高速率。一方面实际的速率受制于Station(无线终端,以下简称STA)的硬件能力,另一方面较低的速率也是速率选择工作的结果。那么,在可以使用更高速率的情况下,为什么不使用传输速度快的速率反而是使用慢的速率呢?换言之,设备为什么要进行速率选择呢?
802.11协议通过无线电磁波进行数据的收发,使用空气作为传播媒介,这就决定了数据传输的过程是不稳定的,会受到各种各样的干扰。较高的速率传输数据消耗的时间短,但是接收端解析难度更大,受到干扰时不容易接收正确;较低的速率则更容易解析,但是传输数据花费的时间会增加,这样一来数据传输效率不高,二来受到干扰的几率也会增加。干扰导致的接收错误会使得当前的报文整个被丢弃,这样会大大降低数据传输效率。因此选速的作用就是从一堆可用的速率中找出一个能最大化传输效率的速率,过高或者过低的速率都会影响到传输效率。
选速是802.11协议实现中非常重要的一个环节。一个设计优良的选速算法,既可以提高数据传输效能,又能提高数据传输的稳定性;相反,使用了不合适的选速算法,最终导致的就是龟速一般的上网体验,甚至于不能正常地进行通信。
干扰信号按照英文直译的话可以翻作噪声,所以对干扰信号如何影响正常信号的理解也可以通过想象噪声的影响来理解。
图3 连续干扰对信号发送的影响
图4 突发干扰对信号发送的影响
不同的数据对于传输的要求是不一样的,这里结合文章开始时用户体验的几个方面,来简单分析一下速率选择的标准:
选速的目的是选出传输效果最好的速率,从理论上来说这是不可能的,因为我们不可能未卜先知下一次发送时的情况从而找到最合适的速率。选速只能通过统计以前的报文发送情况来找出一个以前最好的速率,并期望这个以前最好的速率能最大程度地接近下一次发送时的最好速率。
对以前报文发送情况的统计基于对端ACK/BA报文所携带的信息:
上面所说的这些信息经过组合和再计算,就形成了判断速率好坏的因素。
这种选速追求的目标是在单位时间内发送出去最多的数据量。如果要考虑到上层应用和重传等因素的话,这一计算方法就变得非常不准确了,因为过多的丢包会导致大量的802.11重传以及上层协议的重传,这一部分开销很容易就抵消掉了选择该速率所依据的吞吐量上的优势。但是把重传纳入到选速考虑范围之内,也会使得设备计算的复杂度急剧增加,代码维护难度和CPU的计算量都会提升。
这种选速希望的是报文能以最小的时间延迟到达对端,一定的丢包率是可以接受的。一般而言速率越高发送时间越短延迟也越小,所以更高的速率更能满足这一需求,不过要考虑到应用层感受的话,还是需要把丢包率纳入到计算因素内。
这种选速方式要求能尽量提高报文的发送成功率,减少丢包率,效率上则没有太高的要求。通过ACK/BA的反馈情况可以很容易地计算得到各个速率的丢包率情况。一般而言,低速率更有可能获得较小的丢包率,但在存在突发性干扰的环境中这个经验可能就不适用了。
802.11e协议加入TXOP(传输机会)概念,802.11n则加入了聚合的概念,这些新特性都对如何选速产生了较大的影响。为了生成聚合报文,发送的报文都需要在缓存中等待一段时间,这就会提高报文的延迟时间。另一方面,TXOP和聚合报文可以减少空口的无效消耗,显著地提升空口利用率。聚合报文中报文的个数则会影响到整个PPDU发送的时间长短。相对于802.11a/b/g而言,802.11n和802.11ac中加入了聚合功能。因此在考虑各种数据的选速标准上参考因素更多更复杂,评价选速的好坏也会更麻烦。
802.11涉及到的所有无线报文可以分为三类,即数据报文、控制报文和管理报文。在实际应用中,这三大类报文都有着不同的速率选择算法:
对于管理报文来说,为了能保证对端能够正确的接收,我们期望的是有一个高的可靠性,因此设备在发送管理报文时会选用基本速率集中的最低速率进行发送。比如Beacon、Probe、Authentication以及Association报文等。
802.11中最常见的控制报文是ACK或者Block ACK报文,它的作用是对端发送的单播报文进行及时的响应。如果ACK/BA报文发送的太慢或者发送失败,都会导致对端认为自己发送的单播报文没有被正确的接收,进而进行重传。因此对于控制报文来说,例如ACK报文,一般选择比发送速率相对较低的24Mbps传输进行发送。。
数据报文根据目的MAC进行分类,又分为单播、广播和组播几大类。对于广播和组播报文,我们可以统称非单播数据报文。
通常来讲,设备芯片使用的当前可用速率集只是STA所有可用速率中的一个子集,这就意味着当前可用速率集之外的速率是无法使用的,而这些速率往往都要高于当前可用速率集中的速率。解决的办法是速率探测机制,即定期的使用一些当前可用速率集之外的速率进行发送,如果使用该速率发送成功则将其添加到可用速率集里。
相对的,如果使用当前最高速率发送失败的次数过多,该速率的丢包率大于一定值以后,选速算法则会进行降速处理,将发送速率设置为低一档的速率,避免高丢包率的速率造成太多发送失败。
图5 速率探测与更新流程
速率选择算法没有一个固定的标准,一般来说芯片厂家只是提供一个参考的速率选择算法,每个设备商都会对其进行优化,以便得到更好的用户体验。对于报文选速的优化也有许多工作可以做,比如对某些低优先级的QoS报文(BK\BE队列)可以选择使用高吞吐量算法,而对一些高优先级的QoS报文(VI/VO队列)可以使用低丢包率算法。同时,对于一些关键的上层协议报文,我们就可以采用一些低速率进行发送,保证报文发送的成功率。
相信在不断的优化之后,速率选择算法会日趋完善,用户也会得到更好的使用体验。
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作