Ralink WIFI driver发送速率选择算法分析
380939960@qq.com
1. 介绍
《802.11无线网络权威指南 第二版》中对于选速和降速的描述:
市面上所有802.11接口均支持某种降速机制,可以根据不同网络环境调整所使用的数据传输速率。速率选择主要决定一张网卡该在何时提高速率以提高链路品质。802.11标准并未规范工作站如何决定降速(或者升速),因此速率选择如何实现就留给芯片组厂商自行决定。几乎所有芯片组具有自己的一套选速机制,因此大多数802.11接口的操作方式均有所不同。速率选择是可编程的,一般由驱动程序控制。
最常被用来判断何时应该变速的算法,其实是通过一些不是那么严格的信号质量测量。信号质量可以直接就信噪比加以测量,或者间接观察有多少帧需要重传。直接测量信噪比可以针对最近一个帧的瞬间信号质量,或者就最近一段时间所接收到的一定数量的帧取平均数。有些芯片会直接测量信噪比,不过随后会将之转换为相应的“信号质量signal quality”。当信号质量变差,芯片就会以降速来应变。
至于间接测量,则是监测瞬间或者平均遗失多少帧,然后予以适当补偿。采用间接测量的算法简单来说就是:如果帧已经遗失且帧重试计数器已经用尽,那就降速到下一档,然后重试一遍。反复进行以上步骤直到帧送出,或者一直尝试到以最低速率都无法成功传送为止。采用间接信号质量测量的芯片组或许会稍微修改上述算法,以避免耗费过多时间在物理层所支持的所有速度间逐次降速。尤其是近来的芯片组均支持不少的速率,在较低速率上反复重试将会相当费时。
1.1 发送速率的选择