• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 全部
  • 全部
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
高级搜索

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

【网络老爬虫第9期-无线新技术专题】802.11协议选速策略的研究

2018-01-16发布
  • 0关注
粉丝:3人 关注:0人

802.11协议选速策略的研究

文/李大鲲

 ——网络老爬虫(无线新技术专题)


1.1      前言

如何测试评价一款AP产品的射频效果的好与坏?从用户的角度来说,最直接的评判标准来自于用户体验:

  • 无线终端接入到网络中速度的快与慢;
  • 无线终端接入之后下载速度的高与低;
  • 用户在使用WIFI网络通话时是否断断续续。

上面几个方面,抛开现象看本质,都涉及到速率选择机制和一些报文重传机制的处理。本文将从这些常见简单的现象来入手,从射频的角度来分析和挖掘一下AP的速率选择算法。


1.2      速率的概念

在介绍速率选择之前,我们先了解一下802.11协议中速率相关的概念。笼统的说,速率是指无线工作站与接入点或无线工作站之间报文交互时的速度,速率的高低决定了系统吞吐的大小。

1.2.1  Legacy速率集

每个BSS必须负责维护一组速率,即打算加入此 BSS 的工作站所需支持的速率清单。如下是802.11a/b/g协议中规定的一些速率集。

  • 802.11b的速率:工作在2.4G频段,物理层采用CCK/DSSS编码,具有1Mbps2Mbps5.5Mbps11Mbps四个速率。
  • 802.11a的速率:工作在5G频段,物理层采用OFDM编码,具有6Mbps9Mbps12Mbps18Mbps24Mbps36Mbps48Mbps、和54Mbps共八个速率。
  • 802.11g的速率:工作在2.4G频段,物理层采用OFDM编码,具有6Mbps9Mbps12Mbps18Mbps24Mbps36Mbps48Mbps54Mbps。同时向前兼容802.11b协议,支持1Mbps2Mbps5.5Mbps11MbpsCCK速率集。

1.2.2   HT速率

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小节讲到了MCS20.6小节的Table 20-29 Table 20-43列出了所有的MCS表。

如下为802.11n 40M带宽模式下,MCS 0-23对应的速率索引:

图1 802.11n 40M带宽模式部分速率表

1.2.3  VHT速率

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条流速率表


1.3      速率选择的概念

市面上销售的各种WLAN产品,总能看到150Mbps300Mbps450Mbps1300Mbps等等这样的表示路由器最大速率的字样,可实际上我们在用笔记本上网的时候,真正传输的速率却往往达不到这样的最高速率。一方面实际的速率受制于Station(无线终端,以下简称STA)的硬件能力,另一方面较低的速率也是速率选择工作的结果。那么,在可以使用更高速率的情况下,为什么不使用传输速度快的速率反而是使用慢的速率呢?换言之,设备为什么要进行速率选择呢?

802.11协议通过无线电磁波进行数据的收发,使用空气作为传播媒介,这就决定了数据传输的过程是不稳定的,会受到各种各样的干扰。较高的速率传输数据消耗的时间短,但是接收端解析难度更大,受到干扰时不容易接收正确;较低的速率则更容易解析,但是传输数据花费的时间会增加,这样一来数据传输效率不高,二来受到干扰的几率也会增加。干扰导致的接收错误会使得当前的报文整个被丢弃,这样会大大降低数据传输效率。因此选速的作用就是从一堆可用的速率中找出一个能最大化传输效率的速率,过高或者过低的速率都会影响到传输效率。

选速是802.11协议实现中非常重要的一个环节。一个设计优良的选速算法,既可以提高数据传输效能,又能提高数据传输的稳定性;相反,使用了不合适的选速算法,最终导致的就是龟速一般的上网体验,甚至于不能正常地进行通信。


1.4      干扰源的类型

干扰信号按照英文直译的话可以翻作噪声,所以对干扰信号如何影响正常信号的理解也可以通过想象噪声的影响来理解。

  • 由于宇宙射线以及其他干扰源的存在,正常的大气中始终存在着高斯白噪声,这个噪声信号被称作底噪,就像生活中听到的背景噪声一般,如流水的声音、连续的汽车引擎声等。无线电信号需要高出这种噪声一定程度以上才能被接收机器接收到,正如嘈杂的环境中说话声要大一些才能听到。
  • 连续不断的干扰信号会一直对正常发送信号产生影响。存在这种干扰信号时,使用越高的发送速率报文越难以被解析,发送失败的几率也越高。这种情况下如果使用低一些的速率,可以有效提高报文的发送成功率。

图3 连续干扰对信号发送的影响

  • 短暂突发的干扰信号一般出现频率都比较低,但是其本身的干扰能力却是很强的,这就像突然出现的一束强光,或是安静的车厢里面突然有人大叫了一声。由于干扰信号的强度很大,所以即使使用最低速率也很难避免接收错误。在这种情况下,使用稍高一些的速率反而能提高报文的发送成功率,因为更低的速率意味着更长的发送时间,于是报文发送过程中出现干扰的可能性也越大,反之则会降低受到干扰的可能性。

图4 突发干扰对信号发送的影响


1.5      速率选择标准

不同的数据对于传输的要求是不一样的,这里结合文章开始时用户体验的几个方面,来简单分析一下速率选择的标准:

  • 无线终端接入到网络中速度的快与慢:一些很重要的数据例如用户登录时的认证和加密信息,这一类数据要求一定要发送成功,相对的由于数据量不是很大,对效率上的要求不高,这就要求使用丢包率最低的速率。一般而言较低的速率都可以提供较低的丢包率。
  • 无线终端接入之后下载速度的高与低:比如用户在使用迅雷软件进行下载时,要求是传输速率越快越好,所以选速应该选择吞吐量最大的速率。
  • 用户在使用WIFI网络通话时是否断断续续:语音、视频数据对延迟的要求较高,数据的正确性则不是那么重要,因为连续的声音、画面中缺失一点点并不会影响到使用,但是延迟过高导致声音、画面不连续或者卡顿的话就非常影响体验了。因此,传输语音视频数据时应尽可能地选用延迟低的速率,一般而言就是相对较高的速率。


1.6      速率选择算法

1.6.1  选速实现的基础

选速的目的是选出传输效果最好的速率,从理论上来说这是不可能的,因为我们不可能未卜先知下一次发送时的情况从而找到最合适的速率。选速只能通过统计以前的报文发送情况来找出一个以前最好的速率,并期望这个以前最好的速率能最大程度地接近下一次发送时的最好速率。

对以前报文发送情况的统计基于对端ACK/BA报文所携带的信息:

  • 根据ACK/BA的回复情况确定有多少报文发送成功多少报文发送失败,从而计算出在本次发送中该速率的丢包率。
  • 从报文开始发送的时刻到对端回复ACK/BA的时刻为止,可以计算出在本次发送中该速率的发包延迟时间。
  • 对端发送过来的ACK/BA报文的信号强度,也可用来表征发送信号的好坏。一方面该报文的信号强度体现了我们能正确收到ACK/BA报文的概率,另一方面可以通过对端报文的信号强度推测出我们发送报文的信号强弱。

上面所说的这些信息经过组合和再计算,就形成了判断速率好坏的因素。

1.6.2  最大吞吐量选速

这种选速追求的目标是在单位时间内发送出去最多的数据量。如果要考虑到上层应用和重传等因素的话,这一计算方法就变得非常不准确了,因为过多的丢包会导致大量的802.11重传以及上层协议的重传,这一部分开销很容易就抵消掉了选择该速率所依据的吞吐量上的优势。但是把重传纳入到选速考虑范围之内,也会使得设备计算的复杂度急剧增加,代码维护难度和CPU的计算量都会提升。

1.6.3  最快响应选速

这种选速希望的是报文能以最小的时间延迟到达对端,一定的丢包率是可以接受的。一般而言速率越高发送时间越短延迟也越小,所以更高的速率更能满足这一需求,不过要考虑到应用层感受的话,还是需要把丢包率纳入到计算因素内。

1.6.4  最低丢包率选速

这种选速方式要求能尽量提高报文的发送成功率,减少丢包率,效率上则没有太高的要求。通过ACK/BA的反馈情况可以很容易地计算得到各个速率的丢包率情况。一般而言,低速率更有可能获得较小的丢包率,但在存在突发性干扰的环境中这个经验可能就不适用了。

1.6.5  聚合对选速的影响

802.11e协议加入TXOP(传输机会)概念,802.11n则加入了聚合的概念,这些新特性都对如何选速产生了较大的影响。为了生成聚合报文,发送的报文都需要在缓存中等待一段时间,这就会提高报文的延迟时间。另一方面,TXOP和聚合报文可以减少空口的无效消耗,显著地提升空口利用率。聚合报文中报文的个数则会影响到整个PPDU发送的时间长短。相对于802.11a/b/g而言,802.11n802.11ac中加入了聚合功能。因此在考虑各种数据的选速标准上参考因素更多更复杂,评价选速的好坏也会更麻烦。


1.7      不同报文的速率选择

802.11涉及到的所有无线报文可以分为三类,即数据报文、控制报文和管理报文。在实际应用中,这三大类报文都有着不同的速率选择算法:

  • 管理报文选速

对于管理报文来说,为了能保证对端能够正确的接收,我们期望的是有一个高的可靠性,因此设备在发送管理报文时会选用基本速率集中的最低速率进行发送。比如BeaconProbeAuthentication以及Association报文等。

  • 控制报文选速

802.11中最常见的控制报文是ACK或者Block ACK报文,它的作用是对端发送的单播报文进行及时的响应。如果ACK/BA报文发送的太慢或者发送失败,都会导致对端认为自己发送的单播报文没有被正确的接收,进而进行重传。因此对于控制报文来说,例如ACK报文,一般选择比发送速率相对较低的24Mbps传输进行发送。。

  • 数据报文选速

数据报文根据目的MAC进行分类,又分为单播、广播和组播几大类。对于广播和组播报文,我们可以统称非单播数据报文。

  1. 非单播数据报文选速:优先选择配置的组播速率进行发送,如果没有配置强制组播速率,则选取基本速率集中所有客户端支持的最大速率进行发送。
  2. 单播速率报文选速:对于不同的芯片,虽然选速代码差异很大,但是基本的思路和流程是一样的,即选择最大吞吐量算法。将STA的当前可用速率集找出,从最高速率开始,找出吞吐量最好的速率。


1.8      速率探测与降速

通常来讲,设备芯片使用的当前可用速率集只是STA所有可用速率中的一个子集,这就意味着当前可用速率集之外的速率是无法使用的,而这些速率往往都要高于当前可用速率集中的速率。解决的办法是速率探测机制,即定期的使用一些当前可用速率集之外的速率进行发送,如果使用该速率发送成功则将其添加到可用速率集里。

相对的,如果使用当前最高速率发送失败的次数过多,该速率的丢包率大于一定值以后,选速算法则会进行降速处理,将发送速率设置为低一档的速率,避免高丢包率的速率造成太多发送失败。

图5 速率探测与更新流程


1.9      结束语

速率选择算法没有一个固定的标准,一般来说芯片厂家只是提供一个参考的速率选择算法,每个设备商都会对其进行优化,以便得到更好的用户体验。对于报文选速的优化也有许多工作可以做,比如对某些低优先级的QoS报文(BK\BE队列)可以选择使用高吞吐量算法,而对一些高优先级的QoS报文(VI/VO队列)可以使用低丢包率算法。同时,对于一些关键的上层协议报文,我们就可以采用一些低速率进行发送,保证报文发送的成功率。

相信在不断的优化之后,速率选择算法会日趋完善,用户也会得到更好的使用体验。



0个回复

该话题暂时没有网友回复过

回复

分享扩散:

提出建议

    +
<

亲~登录后才可以操作哦!

确定

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作