无线射频专题《协议类,IEEE 802.11无线速率自适应常见方法》

引言

根据IEEE802.11协议,工作站STA与接入点AP之间能够以不同的调制方式、速率(例如802.11b/g/n之间切换)进行通信,必然需要一种机制,可以协调出收发端彼此均可接受的数据率。速度协商对工作站而言尤其方便,工作站可以经常变化速率,以便回应无线电环境的快速变动。但工作站间的距离改变,速度也会随之变动。工作站必须能够适应随时变动的环境,必要时更改传输速率。和一些其他协议功能一样,802.11 标准并未规范该如何选择传输速率。标准只是提出一般原则,在实际上厂商享有相当大的自由。其中,有些规则适用于所有工作站:

  • 每个工作站均保有一份速率清单,其中记录工作站与所连接BSS 均支持的所有速率。(所谓BSS,通常相当于一部基站,不过较新的产品可以让使用者依虚拟基站自订速率。)高于速率组合的传输速率是不允许用来传送帧的。
  • 每个BSS 必须负责维护一组基本速率,即打算加入此BSS 的工作站所必须支持的速率清单。任何传送至群组接收地址的帧必须以基本速率传送,确保所有工作站均可正确解读。
  • 用来起始帧交换的控制帧,如RTS 与CTS,必须以基本速率组合中的一种速率进行传输。这一规则可以确保必须以CTS 回应RTS 帧的工作站,能够以相同速率工作。
  • 发送给特定工作站的帧,会在Address 1 位记载单点传播目的地址。单点传播帧(Unicast frame)可以使用目的端支持的任一速率传送。至于数据速率的选择方式,802.11 标准并未加以规范。
  • ACK 或CTS 之类的应答帧必须以基本速率组合所包含的速率传送,但不能高于这次传输所使用的起始帧。应答帧必须使用与起始帧相同的调制方式(DSSS、CCK或OFDM)

速率自适应:

市面上所有802.11 界面均支持某种降速机制,可以适应不同网络环境选择所使用的数据率。速率选择主要在决定一张网卡该在何时升速以提高链路质量。802.11 标准并未规范工作站如何决定是否降速(或升速),因此速率选择如何实现,留给芯片厂商自行决定。几乎所有芯片组均有自己一套选择机制,因此,大多数802.11 界面的工作方式均有所不同。速率选择可以通过程序控制,一般是由驱动界面的程序所控制。速率选择机制可以公国驱动程序或者软件升级。最常用来判断何时应该变速的算法,其实是通过一些不是那么严谨的信号品质量测量。信号质量可以直接就信噪比(signal-to-noise ratio)加以测量,或者间接观察有多少帧需要重传。直接测量信噪比,可以针对最近一个帧的瞬间信号质量,或者就最近一段期间所接收到之一定数量的帧取平均数。有些芯片组会直接测量信噪比,不过随后会将之转换为相应的“信号质量”(signal quality)。当信号质量变差,芯片就会以降速来适应。至于间接测量,则是监测瞬间或平均漏失多少帧,然后予以适度补偿。采用间接测量的算法,简单来讲就是:如果帧已经丢失且帧重传计数器已经用尽,那就降速至下一档,然后重试一遍;反复进行以上步骤直到帧送出,或者一直尝试到最低速率都无法成功传递为止。采用间接信号品质量测的芯片组或许会稍微修改上述算法,避免耗费过多时间在物理层所支持的所有速率间逐次降速。尤其近来的芯片组均支持不少的速率,在较低速率上反复重试将会相当费时。

常见算法一般有如下:

  • 利用传送帧连续的成功和失败次数来估计信道质量。例如ARF算法,如果连续没有收到两个ACK,则降低一档速率,发送下面的数据并启动一个定时器;如果连续收到10个帧或者定时器时间到,则提高发送速率。缺点:连续成功或失败的次数很难及时适应信道的快速变化(一般的芯片厂商都会做优化处理,避免耗时过高)
  • 利用物理层指标(如SNIR,RSS)估计信道质量
  • 每隔一段时间以不同速率发送一个或者一些试探帧,用来估计不同数量在信道中的表现。这种方法提高了对其他速率的实时估计能力,但是因为不能发送过多的试探帧,导致个别试探帧的成败决定了速率选择,容易造成误判。如SampleRate
  • 利用近一段时间的数据帧的统计特征来决定发送速率。比如RRAA。RRAA在一段时间(窗口)内统计丢帧率等信息,并将其与相应的门限进行比较。这种方法屏蔽了因为随机丢帧而导致的误判,如果窗口选择合适,能够对信道变化作出及时反应。

如果真的对上面算法有兴趣,建议参考WifiRemoteStationManager算法的实现,应该有不少厂商参照改算法,至于具体的实现代码,可以参考一些开源平台WiFi驱动源码。

以上,就是IEEE802.11无线速率自适应的常见方法,看过博文,应该不会再有人问博主:工作站与路由之间如何确定调制方式以及速率自适应。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网研究室BBC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值