接着上一篇文章,我们继续看一下这些WifiManager。以下文字太多,由谷歌翻译。
IdealWifiManager(理想的速率控制算法)
这个类实现了一个理想的速率控制算法,这和RBAR(见 G.Holland, N. Vaidya, and P. Bahl写的《A rate-adaptive MAC protocol for multihop wireless networks》)在实现思想上很像:每个基站保持跟踪每个收到的包的SNR,并通过带外机制返回这个SNR给发送这个包的原始发射器。每个发射器保持跟踪由接收器发送的最后一个SNR,并使用它根据从目标BER和传输模式特定的snr/ber曲线构建的一组snr阈值来选择传输模式。
官方原文:
Ideal rate control algorithm
This class implements an ‘ideal’ rate control algorithm similar to RBAR in spirit (see A rate-adaptive MAC protocol for multihop wireless networks by G.
Holland, N. Vaidya, and P. Bahl.): every station keeps track of the snr of every packet received and sends back this snr to the original transmitter by an out-of-band mechanism. Each transmitter keeps track of the last snr sent back by a receiver and uses it to pick a transmission mode based on a set of snr thresholds built from a target ber and transmission mode-specific snr/ber curves.
MinstrelHtWifiManager(Minstrel HT速率控制算法)
Minstrel-HT是基于Minstrel的802.11n / ac标准的速率适配机制,并且基于探测频道以动态学习可支持的工作速率的方法。
Minstrel-HT专为实现多速率重试(MRR)链的高延迟设备而设计。 这种设备不会为每帧重传提供反馈,但只有当帧被正确发送(接收到ACK)或帧传输完全失败(所有重传尝试失败)时才会给出反馈。 MRR链用于向硬件提供关于重传帧时使用的速率。
Minstrel-HT适应MCS,信道宽度,流数和短保护间隔(启用或禁用)。为了保持统计,它按组排列MCS,每个组由元组(流,SGI,通道宽度)定义。有发射机的PHY层支持的所有组的向量;对于每个组,维持其能力和估计费率的持续时间。
每个站维护一个组统计表。对于每个组,一个标志指示该组是否由该站支持。与AP通信的不同站可以具有不同的功能。
当接收到AmpduTxStatus时,每个A-MPDU更新统计信息。如果成功或失败的MPDU数量大于零(接收到BlockAck),速率也将更新。如果成功和失败的MPDU数量为零(BlockAck超时),则选择的速率基于MRR链。
在每个更新间隔,它设置MRR链的最大ThrRate,第二个最大ThrRate和最大ProbRate。 这些速率仅在整个A-MPDU失败并被重试时使用。
与legacy minstrel(这句该怎么翻译??)不同,采样不是根据“周转率”进行的,而是确保所有费率至少每隔一次采样一次。然而,它较不频繁地采用低速率和高概率的错误率。
当配置此速率控制但不支持HT和VHT时,Minstrel-HT使用旧的Minstrel (minstrel-wifi-manager)进行速率控制。
官方原文:
Implementation of Minstrel HT Rate Control Algorithm
Minstrel-HT is a rate adaptation mechanism for the 802.11n/ac standard based on Minstrel, and is based on the approach of probing the channel to dynamically learn about working rates that can be supported.
Minstrel-HT is designed for high-latency devices that implement a Multiple Rate Retry (MRR) chain. This kind of device does not give feedback for every frame retransmission, but only when a frame was correctly transmitted (an ACK is received) or a frame transmission completely fails (all retransmission attempts fail). The MRR chain is used to advise the hardware about which rate to use when retransmitting a frame.
Minstrel-HT adapts the MCS, channel width, number of streams, and short guard interval (enabled or disabled). For keeping statistics, it arranges MCS in groups, where each group is defined by the tuple (streams, SGI, channel width). There is a vector of all groups supported by the PHY layer of the transmitter; for each group, the capabilities and the estimated duration of its rates are maintained.
Each station maintains a table of groups statistics. For each group, a flag indicates if the group is supported by the station. Different stations communicating with an AP can have different capabilities.
Stats are updated per A-MPDU when receiving AmpduTxStatus. If the number of successful or failed MPDUs is greater than zero (a BlockAck was received), the rates are also updated. If the number of successful and failed MPDUs is zero (BlockAck timeout), then the rate selected is based on the MRR chain.
On each update interval, it sets the maxThrRate, the secondmaxThrRate and the maxProbRate for the MRR chain. These rates are only used when an entire A-MPDU fails and is retried.
Differently from legacy minstrel, sampling is not done based on “lookaround ratio”, but assuring all rates are sampled at least once each interval. However, it samples less often the low rates and high probability of error rates.
When this rate control is configured but HT and VHT are not supported, Minstrel-HT uses legacy Minstrel (minstrel-wifi-manager) for rate control.
MinstrelWifiManager(哨兵速率控制算法?谷歌翻译的)
Minstrel是在MadWifi和Linux中实现的速率控制算法。
基本原理是根据收集成功传播概率的统计资料,探索环境,调整速度。该算法将该速率调整到其认为成功的最高速率,并花费其一小部分时间通过尝试其他速率“周围环顾”。
Minstrel适用于非HT / VHT / HE配置;对于HT / VHT / HE(即802.11n / ac / ax),用户应该使用MinstrelHtWifiManager。如果用户尝试使用设置了VhtSupported,HtSupported或HeSupported的Wi-Fi MAC进行配置,Minstrel将会出错。
关于这个实现的一些说明如下。该实现已经适应于使其更接近于Linux实现。对于每个速率,添加一个新的参数samplesSkipped。该参数旨在解决当高速率率运行良好时低速率抽样的问题,导致过时的统计。这种变化在简单稳定的情况下使吞吐量降低一些,但可能有助于动态场景更快更准确地对变化做出反应。
与以往相关,决定何时采样随机速率的逻辑如下。当采样率降到第二MRR链阶段时,增加新参数(numSamplesDeferred)。这个参数被使用(与sampleCount一起)来比较当前的样本数量和周转率。
还与采样有关,另外添加了一个sampleLimit参数。该参数限制了采样率非常低或非常高概率的次数,避免了太频繁地尝试工作不良的采样率。
当第一次更新速率的EWMA概率时,它不适用于EWMA,而是分配整个概率。由于EWMA概率被初始化为零,所以产生更准确的EWMA。
官方原文:
Implementation of Minstrel Rate Control Algorithm
Minstrel is a rate control algorithm implemented in MadWifi and Linux.
The basic principle is to probe the environment and adapt the rate based on statistics collected on the probability of successful transmission. The algorithm adapts the rate to the highest rate that it considers successful, and spends a fraction of its time doing ‘look around’ by trying other rates.
Minstrel is appropriate for non-HT/VHT/HE configurations; for HT/VHT/HE (i.e. 802.11n/ac/ax), users should use MinstrelHtWifiManager instead. Minstrel will error exit if the user tries to configure it with a Wi-Fi MAC that has VhtSupported, HtSupported or HeSupported set.
Some notes on this implementation follow. The implementation has been adapted to bring it closer to the Linux implementation. For each rate, a new parameter samplesSkipped is added. This parameter is intended to solve an issue regarding the sampling of low rates when a high rate is working well, which leads to outdated statistics. This change makes throughput a bit lower in simple, stable scenarios, but may help in dynamic scenarios to react faster and more accurately to changes.
Related to the previous, the logic for deciding when to sample random rates is as follows. When a sample rate is deffered to the second MRR chain stage, a new parameter (numSamplesDeferred) is increased. This paramters is used (jointly with sampleCount) to compare current sample count with the lookaround rate.
Also related with sampling, another parameter sampleLimit is added. This parameter limits the number of times a very low or very high probability rate is sampled, avoiding to try a poorly working sample rate too often.
When updating the EWMA probability of a rate for the first time, it does not apply EWMA but instead assigns the entire probability. Since the EWMA probability is initialized to zero, this generates a more accurate EWMA.
OnoeWifiManager(这个好像是以人名命名的)
由Atsushi Onoe开发的速率控制算法。
该算法是众所周知的,因为它已被用作madwifi驱动程序的默认速率控制算法。 除了madwifi源代码,开发者不知道有关该算法的任何出版物或引用。
该RAA不支持HT,VHT或HE模式,如果用户尝试使用已安装VhtSupported,HtSupported或HeSupported的Wi-Fi MAC来配置此RAA,则会出错。(感觉谷歌翻译的更好,不得不说,用了机器学习的谷歌简直了。。。)
官方原文:
an implementation of the rate control algorithm developed by Atsushi Onoe
This algorithm is well known because it has been used as the default rate control algorithm for the madwifi driver. I am not aware of any publication or reference about this algorithm beyond the madwifi source code.
This RAA does not support HT, VHT nor HE modes and will error exit if the user tries to configure this RAA with a Wi-Fi MAC that has VhtSupported, HtSupported or HeSupported set.
ParfWifiManager (PARF速率控制算法)
该类实现了PARF算法,如Akella, A.; Judd, G.; Seshan, S. and Steenkiste, P.等人在Wireless Networks发布的文章中所描述的。文章链接
该RAA不支持HT,VHT或HE模式,如果用户尝试使用已安装VhtSupported,HtSupported或HeSupported的Wi-Fi MAC来配置此RAA,则会出错。
英文原文:
PARF Rate control algorithm.
This class implements the PARF algorithm as described in Self-management in chaotic wireless deployments, by Akella, A.; Judd, G.; Seshan, S. and Steenkiste, P. in Wireless Networks, Kluwer Academic Publishers, 2007, 13, 737-755
http://www.cs.odu.edu/~nadeem/classes/cs795-WNS-S13/papers/enter-006.pdf
RraaWifiManager (鲁棒速率适应算法)
这实现了如”Starsky H. Y. Wong”, “Hao Yang”, “Songwu Lu”, and, “Vaduvur Bharghavan”等人在Mobicom 06上发布的《Robust rate adaptation for 802.11 wireless networks》文章中所描述的算法。
该RAA不支持HT,VHT或HE模式,如果用户尝试使用已安装VhtSupported,HtSupported或HeSupported的Wi-Fi MAC来配置此RAA,则会出错。
官方原文:
Robust Rate Adaptation Algorithm
This is an implementation of RRAA as described in “Robust rate adaptation for 802.11 wireless networks” by “Starsky H. Y. Wong”, “Hao Yang”, “Songwu Lu”, and, “Vaduvur Bharghavan” published in Mobicom 06.
This RAA does not support HT, VHT nor HE modes and will error exit if the user tries to configure this RAA with a Wi-Fi MAC that has VhtSupported, HtSupported or HeSupported set.
RrpaaWifiManager(鲁棒速率和功率适应算法)
这部分在NS3文档中直接没有介绍,什么说明都没有,用谷歌搜了一下,几乎查不到资料,不过还是找到了一篇文章谈到了这个算法。另外一篇文章提了一下,解释RRPAA为PRCS without CST control.
关于WifiManager就先贴这么多,以后有时间再慢慢补充。