接着上一篇文章,我们继续看一下这些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就先贴这么多,以后有时间再慢慢补充。

关于NS3中各个WifiRemoteStationManager(二)相关推荐

  1. ns-3中随机数机制

    前言 ns-3是离散事件仿真平台,它由内核部分和常用模块两个部分组成.它的内核是用C++实现的.可以在src/core目录下查看,也可以在ns3的在线doxygen文档中查阅. 内核包含很多部分,实现 ...

  2. Java IO在Android中应用(二):APK加固

    Java I/O在Android中应用(二):APK加固套壳 前言(废话) 我,有两把键盘,第一把是Poker III(黑轴),第二把是Poker II(红轴).工作的时候我常用的是红轴的Poker ...

  3. c语言中二维数组怎么,c语言中什么是二维数组

    c语言中什么是二维数组 二维数组A[m][n],这是一个m行,n列的二维数组.以下是由应届毕业生小编整理关于c语言二维数组的内容,希望对大家有所帮助!更多相关内容请关注应届毕业生考试 网. c语言的二 ...

  4. ns3中调试程序------命令行、gdb和logging系统

    1.在调试代码时候,一直没有弄明白NS_LOG中的各种函数是如何使用的,甚至现在运行程序只知道,./waf –run,至于输出调试信息,现在真的是没有弄明白,不利于代码的理解和调试. 2.通过命令行, ...

  5. 在NS-3中安装可视化工具pyviz的一些问题的解决

    转载声明:本文为寻同学原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 原文链接:https://blog.csdn.net/qq_31676673/article ...

  6. C语言错误c2063,请教C语言中关于将二维数组复制到一个三维数组的问题

    请教C语言中关于将二维数组复制到一个三维数组的问题 小白正在填写一段代码,是有点类似与俄罗斯方块的一段游戏代码,代码如下 要求在增加参数,变量和函数的情况下完成此代码,只能填写// write app ...

  7. 【100题】三十五 求一个矩阵中最大的二维矩阵(元素和最大)

    一,题目: 求一个矩阵中最大的二维矩阵(元素和最大).如: 1 2 0 3 4 2 3 4 5 1 1 1 5 3 0 中最大的是: 4 5 5 3 要求:(1)写出算法;(2)分析时间复杂度;(3) ...

  8. (翻译)开始iOS 7中自动布局教程(二)

     (翻译)开始iOS 7中自动布局教程(二) 这篇教程的前半部分被翻译出来很久了,我也是通过这个教程学会的IOS自动布局.但是后半部分(即本篇)一直未有翻译,正好最近跳坑翻译,就寻来这篇教程,进行 ...

  9. ns-3中的数据跟踪与采集——Tracing系统的配置

    ns-3中的数据跟踪与采集--Tracing系统的配置 在文章ns-3中的数据跟踪与采集--Tracing系统综述及fourth脚本中学习的函数TraceConnectWithoutContext在实 ...

  10. autocad2007二维图画法_CAD中如何绘制二维图形

    当我们在使用CAD软件绘制图纸时,我们一般情况下绘制的都是二维图形,用到的绘图工具也有很多.那在浩辰CAD软件中如何绘制二维图形呢?今天就为大家简单介绍下. CAD软件中绘制二维图的方法: 1.绘图菜 ...

最新文章

  1. 程序员 专属的新年祝福原来是这样的! (附中奖名单)
  2. Android p2p service,android – WifiP2pDnsSdServiceInfo.newInstance中的可用服务类型
  3. Co-occurrence网络图在R中的实现
  4. 【HDU1582 HDU1452 HDU1098 HDU3524 HDU1005 HDU2623 HDU2674】
  5. Canal解析数据报错:column size is not match for table xxxx 59 vs 57
  6. cdh jar包 sqoop2_安装sqoop1.4.6-cdh5.5.2
  7. SharePoint WebPart:扩展SharePoint 2007中图片展示功能
  8. 重载session存储方式–session_set_save_handler()
  9. 如何写单片机的寄存器,这篇文章带你入门。
  10. python中读写excel_python读写Excel
  11. UVa 1605 - Building for UN
  12. 一个程序段两个小问题
  13. c++ 网络编程课设入门超详细教程 ---目录
  14. monkeyrunner之环境搭建及实例(三)
  15. web网页qq客服功能
  16. js之win10计算器
  17. 日志收集之--将Kafka数据导入elasticsearch
  18. java8 .stream().anyMatch / allMatch / noneMatch用法
  19. 在vscode中查看当前项目的工作环境
  20. Ubuntu下mosquitto 的使用

热门文章

  1. 百度一下网页简单html源码
  2. MT6761处理器介绍
  3. 第10节、飞鹅云打印机对接调用
  4. 对接飞鹅接口一直提示未注册
  5. solr 查询出异常org.apache.solr.search.SyntaxError: Cannot parse
  6. PyCharm搜索技巧快捷键
  7. 火星来客创业周刊第1期:独立开发者Twitter小工具60天,从月入300美金到月入3000美金
  8. uniapp:轮播里如何加入视频
  9. 手机方向传感器的缺点及解决方法探究
  10. 排水管网信息系统、市政排水管网信息化智慧化管理