您的位置:首页 > 其它

WifiRemoteStationManager中速率控制算法详解

2017-04-21 22:32 435 查看
ARF(Auto Rate Fallback)速率控制算法

  ARF算法会以一个非常低的基础的数据速率(2Mbps)开始,然后触发一个定时器,当任意一个定时器停止或者发送机成功的进行了N(N是个固定的阀值)次连续的传输后,发射器就会从旧的数据速率 rold 增加到一个新的值 rnew ,然后重置定时器,每次增加的数值是一个固定的值,如果增加后第一次传输就失败,那么就退回到先前的速率 rold,如果再次发送失败,那就再次依固定的值递减。ARF将帧丢失率视为信道条件的指标。根据连续成功的传输次数调整速率。——参考论文1

AARF(Adaptive Auto Rate Fallback)速率控制算法

  AARF正是在ARF基础上演变来的,AARF算法旨在提高稳定环境下的性能。ARF机制中多用户环境下工作的不是很好,主要就是因为它选择传输速率取决于固定的连续成功或不成功的传输尝试。不像ARF算法中每次增加都是一个固定的值,AARF算法会自动调整这个阀值。更确切的说,当一个发射器连续进行N次成功的传输后,发射器会把数据速率从rold 增加到 rnew ,如果第一次以 rnew 这个速率传输就失败了,那么久退回到先前的rold ,然后把下次增加传输速率的阀值设为2N。否则,当以rnew 传输成功后,重置阀值。这种自适应的阀值更新,相比ARF,使得AARF在稳定的信道环境中扩大了增加速率时的时间间隔,产生更少的速率波动。(参考论文同上)

AARF-CD(Adaptive Auto Rate Fallback Collision Detection)

  就像AARF是从ARF演变过来的一样,AARF-CD是从AARF演变过来的。在判断是否增加速率之前,该算法会打开RTS/CTS机制,当数目可变的传输尝试成功之后会再次关闭RTS/CTS机制。AARF-CD算法保留了ARF中的定时器,提高了传输多媒体资源时的性能。该算法最大的贡献就是通过碰撞检测即加入RTS/CTS机制解决了传输时的资源竞争问题。关于该机制实现的细节,请详细阅读参考论文2

CARA(Collision-Aware Rate Adaptation)

  CARA和ARF很类似,它们就像两个对立面:CARA对传输成功的次数进行计数,ARF对传输失败的次数进行计数。当一个包到达MAC后,假如它的大小大于或等于一个给定的阀值,或者连续传输失败的次数大于另一个给定的阀值,RTS/CTS机制就会被使用。假如RTS/CTS握手失败,计数器将不会被修改,相反,如果RTS/CTS握手成功,数据帧将会以当前的状态被发送,就像RTS/CTS机制没有被使用一样,当数据传输成功之后,成功传输次数的计数器就会加1,连续传输失败的次数的计数器将会被重置。当连续成功的次数达到指定的阀值(像ARF中规定的一样,为10)后,就会增加速率。传输失败的道理是一样的,只不过给定的阀值是2。同时带这个算法也成为CARA-RTS。(参考论文2参考论文3——CARA

Ideal Rate Adaption

  这个算法意义可能主要是用来作为实验对比吧,找不到什么关于这个算法的资料。参考论文2中说该算法假设发射器知道表征信道的SNR,引入这个算法的目的仅仅是为了去更深入的了解AARF-CD的性能。

RRAA(Robust Rate Adaptation Algorithm)

  鲁棒速率适应算法有两个机制:速率选择器(RRAA-BASIC)和自适应RTS(ARts)。速率选择器计算在一个观测窗口内,发送失败传输的次数,在该窗口结束的时候,计算丢包率,如果丢包率比给定的阀值PMTL(Maximum Tolerable Loss threshold)大,速率就减少;假如丢包率小于阀值PORI (Opportunistic Rate Increase threshold),速率减少,否则维持当前状态至下一个观测窗口。观测窗口的长度和阀值取决于当前的状态。此外,作者提出了一种降低速率的机制,即使观察窗口未结束:每次检测到传输故障时,假设观察窗口中的剩余传输尝试成功,则计算丢包。如果该分组丢失估计大于PMTL,则速率立即降低(不等待观察窗口终止)。ARts机制与速率选择器同时工作,它独立于它。 计数器用于估计可以使用RTS / CTS机制进行多少传输尝试。 当计数器大于0时,使用RTS / CTS机制,每次尝试将计数器减1。 它存在一个RTS窗口,最初等于0,当不使用RTS并且最后一个传输尝试失败时,该窗口增加1。 当RTS被使用并且最后的传输成功时,或者当RTS不被使用并且最后的传输失败时,它被减半。 每当RTS窗口值被修改时,计数器被设置为窗口值。 RRAA已经在测试台中实现,并且当考虑多用户场景时,具有或不具有隐藏节点的性能优于ARF和AARF。——参考论文2

RRPAA(Robust Rate and Power Adaptation Algorithm)

  一种新的速率控制机制。对于RRPAA,我们采用了前面提到的思想(前面提到的思想是指RRAA+,详细内容请看参考文献),实现了基于帧丢失率的功率和速率控制机制。 该机制的目标是,与我们描述的许多其他机制一样,使用尽可能低的功率,而不会降低链路的性能。 因此,RRPAA首先尝试在当前信道条件下找到最大功率的最佳速率,然后如果损耗稳定开始降低功率。关于该部分的详细内容有兴趣的还是看参考文献4吧。

AMRR(Adaptive Multi Rate Retry)

  AMRR使用二进制指数退避(BEB)技术来适应用于改变速率和传输计数参数值的采样周期的长度(阈值)。 它使用探测包,并根据其传输状态自适应地改变阈值。 适应机制通过不由倒退机制指定的更高速率来确保更少的故障传输/重传和更高的吞吐量。 除此之外,AMRR采用启发式方法,通过明智地设置速率和传输计数参数来捕获信道的短期变化。——参考论文5

  更多细节请看参考论文6

PARF(Power-controlled Auto Rate Fallback)

  这部分资料好难找,我几乎都快放弃了,NS3官网上那个链接,我只是大概浏览了一下,没看到有这个缩写,后来终于在参考论文7上找到了一些说明,大致内容如下:

  功率控制自动速率回退(PARF)是基于发射功率和数据速率控制而提出的一种自我调节技术。 它尝试最小化基于自动速率回退(ARF)的相邻AP之间的干扰,ARF是一种只调整数据速率的机制。 ARF基于探测802.11 ACKs消息:ACK丢失意味着数据速率的降低和成功的接收增加。 然后,如果在较高的数据速率下没有损耗,PARF会通过降低发射功率将发射功率控制添加到ARF,并继续减小直到达到最小阈值,直到传输开始发生故障为止。 如果继续发生故障,则传输功率将增加至最大值,如果故障依然存在,则开始数据速率回退。

APARF(Adapting Power-controlled Auto Rate Fallback)

  与上面的类似, APARF自然是PARF的扩展。

  用于决定数据速率或发射功率变化的阈值是动态调整的。 这个想法的目的是估计信道状况; 例如,频道快速变化将需要一个小的阈值,以便快速适应。(参考论文6

Onoe(这个好像是以人名命名的)

  Onoe是基于信用的RCA,其中信用值根据成功发送的数量和在确定的采样周期上积累的错误传输和重传的数量来确定。 对于以特定速率的成功传输,Onoe不断提高其信用额度,达到某些阈值时,当前的传输速率将提高到下一个更高的速率。 类似地,对于失败的传输/重传,当信用低于某个阈值时,信用被扣除并且传输速率下降到下一个较低的速率。 由于其运行方式,Onoe在速率选择方面保守,对单个数据包故障较不敏感。 该算法的细节在Madwifi驱动程序中可用。——参考论文3

Minstrel Rate Control Algorithm

  这个有点复杂。Minstrel算法有三个部分:重试链机制,速率决策过程和统计计算。详细内容请参考Linux Kernel文档中关于该算法的描述以及参考论文8

Minstrel HT

  几乎花了一个小时都没找到什么有用的相关的资料,最后快要放弃的时候算是找到了一篇参考论文9,这是一个802.11n下驱动中的默认链路调整方案,话说NS3提供的也真是够全的,这么偏的东西都有,用到的人该有幸福。

ConstantRate

   我想这个应该不需要我说什么了吧。。。

  

整理了一天,累死了,终于结束了。。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息