802.11ac是新一代无线局域网技术标准,它通过采用更多的空间流、更高阶数的调制方式、更宽的传输带宽等方式提高了物理层性能,从而使整个网络的传输速率达到1 Gbit/s以上。目前的802.11ac[1]速率多达160余种,因业务总类和吞吐率需求各异,如何根据具体应用场景和信道质量选择一个合适的发送速率便成为学术界和产业界研究的焦点。
目前,学术界对速率自适应提出了一系列算法,以接收端是否参与速率选择过程进行区分,可以将速率自适应算法划分成两大类,即开环算法[2-7]和闭环算法[8-10]。通常情况下,开环算法基于信息统计方式,例如ONOE算法[2]维持了当前传输速率的信用度, CHARM[3]算法摒弃以探测技术寻找最佳发送速率的传统方式,采用直接获取表征信道质量的接收信号强度的方法;ARF和AARF算法[4]统计连续成功或失败帧数, Minstrel算法[5]和SampleRate算法[6]分别统计各速率对应的传输吞吐率和数据帧的平均传输时间, HA-RRAA算法[7]利用短期误帧率估计信道。并自适应调整传输速率,最终达到理想的传输性能。虽然开环算法易于兼容不同的协议标准,但速率调整的滞后性无法实时跟踪信道状况的快速变化,尤其是不利于快衰落时变信道。
以OFRA算法[8]为代表的闭环算法采用自定义帧格式的方式,RBAR[9]算法利用接收端估计当前信道质量,并将计算出的最佳发送速率反馈给发送端。该算法适用于快速变化的信道环境。M-RBAR[10]算法采用RTS和CTS来携带带宽和速率信息,但上述算法均需要修改RTS、CTS帧实现速率信息的交互,在协议兼容性方面具有一定的局限性。
本文基于发送端统计误帧率和ACK帧的RSSI来评估信道情况,针对不同衰落程度的信道环境,算法通过接收信号强度指示(received signal strength indicator, RSSI)来确定速率的范围,通过指数加权移动平均(exponentially weighted moving-average,EWMA)算法实现对信道状况的预测,采用时间触发和事件触发方式完成速率探寻,并采用‘S’型搜索方式实现灵活的速率选择。
1 IEEE 802.11ac关键技术IEEE802.11ac协议包含物理层和媒体接入控制层等,它通过采用超长帧聚合和更高阶调制等关键技术,将现有无线局域网的性能提高到可以与有线千兆级网络相媲美的程度。
1.1 帧聚合机制802.11ac支持A-MSDU(aggregate-MAC service data unit)/A-MPDU(aggregate-MAC protocol data unit)混合帧聚合模式,同时为了满足高速传输数据的要求,将A-MPDU的最大长度由65 535 B提高到了1 048 576 B。帧长度的提高导致帧重传开销的增加,进而降低了信道利用率,如何选择合适的速率来降低重传概率并提高整个系统吞吐率成为设计的难点。
1.2 调制模式IEEE802.11n的调制模式为BPSK、16QAM和64QAM[11]。802.11ac采用更高阶调制密度256QAM调制方式,更高的调制密度意味着更高的调制效率和更高的物理层速率,通过提高单个符号携带的信息量,可以在物理层速率不变的情况下提高信息的传输速率[12]。但是更高的调制密度也更容易受到干扰的影响,因此256QAM调制方式需要在良好的信道环境下使用,如何根据不同信道环境和调制模式选择合适的发送速率便成为设计的挑战。
2 AMRA速率自适应算法本质上,AMRA算法存在两个层面的速率自适应,其详细的速率调节过程如图 1所示。首先,该算法通过RTS/CTS帧交互可以实现信道带宽的动态选择,然后,在确定了发送信道带宽(20/40/80 MHz)的基础上,于空间流数与调制编码方式组成的二维平面上最终选择出适合当前信道的最佳发送速率。
采用RTS和CTS交互的方式确定数据的传输带宽。IEEE 802.11ac协议支持多种传输信道带宽,定义80 MHz带宽信道中的一条20 MHz的子信道为主信道,其他三个子信道为副信道,主信道由AP选定。在数据发送之前需要对所有子信道进行空闲信道评估,如果所有子信道均空闲则先在主信道发送一个RTS帧,同时该帧将被复制并分别从三个副信道发送出去,从而保证所有设备都会在其主信道上收到该RTS帧。所有接收到该RTS帧的其他站点必须调整其发送方案,以避免与该网络随后的数据传输产生冲突。接收端接收到RTS帧之后将对信道状况进行检测,如果有一部分带宽处于忙碌状态,则接收端只在空闲的信道上回复CTS帧来告诉发送端哪些信道可以用来发送数据。802.11ac规定所允许的子信道组合只能是20 MHz的主信道、40 MHz的包含主信道的带宽,或整个80 MHz的信道。在完成RTS/CTS帧交互之后,发送端便可在不受其他站点干扰的情况下,选择最佳传输信道带宽发起数据帧交互。
2.2 发送速率选择确定通信带宽后,如图 1所示即可将上述三维空间的选择转化为二维平面内的速率子集的探询,由于越高的调制模式需要更好的信道质量才能保障数据帧的稳定传输,因此可将空间流数与调制编码方式所组成的速率集以调制模式划分成4个子集,分别标记为GBPSK、GQPSK、GQAM16和GQAM64。每个速率子集均包含不同纠错编码方式与空间流数所对应的不同大小的速率。进一步可将各个速率子集的所有速率从小到大按序排列。因为编码方式越高,其纠错能力越差,并且空间流数越大同样也需要更好的信道质量作为保障,所以在相同的无线信道状况下,子集内按序排列的发送速率其传输性能将保持着严格的单调性。
依据二维速率平面上的子集间(横向)递增趋势和子集内(纵向)单调特性,AMRA算法采用了‘S’型的速率调节方式,如图 1所示。采用速率A的节点首先启动一次速率探询过程,已是该组GQPSK内的最大发送速率,因此会向右切换到速率组GQAM16空间内进行速率探询,计算所选速率的理论吞吐率。如小于速率A的吞吐率,则认为A为当前最佳速率;如大于采用速率A所获得的吞吐率,选择探寻速率B并继续向上探寻。若探询成功,则继续在当前速率子集内向上探询,直到该组内的最高速率C,然后再切换到速率组GQAM64内进行搜索,循环反复上述过程,探寻至发送速率E上。若速率子集内发生了探询失败,则立刻会切换到相邻组上进行速率探询。
其基本思想是通过不断地在子集间和子集内来回切换搜索,选择出最佳的发送速率以获得吞吐率性能的最大化。当无线信道状况发生变化时,首先选择在同一个速率子集内进行向上/向下搜索,直到取得该区间内吞吐率性能的最大值;然后选择向右/向左切换到不同的速率子集进行搜索,判断是否存在更高吞吐率性能的发送速率;如此往复完成一次速率探询过程。
3 AMRA算法设计与实现AMRA速率自适应算法采用发送和接收端相结合的反馈机制,基于对信道的快速响应,选择数据帧的最佳发送速率,最终实现了最大化系统吞吐率性能的目标。该算法的设计基于两条基本准则:1) 根据互易原理,认为发送端观察的信道质量等价于接收端的观察值,通过估计传输过程的路径损耗影响来进一步评估接收端接收的信号强度,可以实时、准确地估计出短期内的信道状况;2) 误帧率较好地反映了速率选择的真实效果。AMRA算法实现速率自适应调节的核心思想是,基于统计的误帧率和接收信号强度,在发送带宽、空间流数及物理层的调试模式所确定的三维空间内选择最佳的速率。AMRA算法由两部分组成,分别是统计信息更新和发送速率选择。前者是估计机制,负责评估当前信道质量;后者则是响应机制,实现速率的自适应调节。算法框架如图 2所示。
算法通过统计传输的误帧率和接收到的ACK帧的RSSI实现对当前信道状况进行统计,根据统计的信道状况选择适合的发送速率。
AMRA算法采用接收信号强度(received signal strength indication, RSSI)进行信道估计,在发送端统计接收到的ACK帧的RSSI值,经过线性权重移动平均(linear weighted moving average,LWMA)处理后得到信道质量的估计值。LWMA的计算方程如下
$ {\rm{RSS}}{{\rm{I}}_{{\rm{Avg\_New}}}} = \frac{{{\rm{RSS}}{{\rm{I}}_{{\rm{Avg\_old}}}}\;\; \cdot f({\rm{d}}T) + {\rm{RSS}}{{\rm{I}}_{{\rm{Cur}}}}}}{{1 + f({\rm{d}}T)}} $ |
式中:dT为相邻两帧的时间间隔,f(dT)为线性递减函数。
在权重分配方面,新的RSSI值所分配的权重要高于历史RSSI值所分配的权重。发送端检测出的ACK帧的RSSI值受3个因素的影响:信号强度、噪声和干扰。本文基于互易定理在评估出RSSI值之后,查找RSSI-速率阈值表并选择与RSSI所表征的信道环境匹配的发送速率,其速率选择机制参考RBAR算法进行设计[10]。假设通信双方支持的调制编码方式有MCS0,MCS1,…,MCS7,各模式在特定的误比特率(10-6)条件下,对应的RSSI阈值分别为TH0,TH1,…,THn,则具体的速率选择机制如表 1所示。通过该阈值表,粗略计算速率的大致范围。
为了能够更加准确的反映无线信道的状况,AMAR算法也对发送过程中的误帧率进行统计,算法通过两种触发方式实现对统计信息的更新,包括事件触发和时间触发两种方式,如图 3所示。处于802.11协议软件驱动的速率自适应模块会实时跟踪每个数据帧的发送处理状态,当底层硬件发送完成时,会产生相应的中断事件TxComplete(),进而触发速率自适应模块执行统计值的更新操作。与此同时,算法维护了一个定时器,会定期地产生触发事件TimerEvent(),事件处理函数中对各个发送速率的传输误帧率进行统计运算, 算法为所有的有效速率均维持了3个状态统计信息:成功传输次数、传输总次数,以及传输误帧率(per)。其中,成功传输次数、总传输次数通过事件触发完成更新,而更新过程中需要考虑数据重传对统计的影响,以及根据聚合帧的块确认反馈信息获得确切的成功传输子帧数。为了提高传输误帧率的统计精确性,算法采用定时更新方式,避免了突发错误的影响。在此选择定时周期Tupdate为2 ms,能满足物理层以65 Mbit/s的速率传输42个1.5 kbit长度的子帧的时间需求,可满足统计的需求。
而误帧率的更新则采用了EWMA序列数据处理方式。为了保证EWMA系数α的合理性,单独分析了不同EWMA系数下统计值与历史数据之间的时间相关性,α系数越大则受当前测量值的影响越大,而与历史数据的相关性越小,统计的稳定性越差。在无线信道环境中,尤其是步行甚至快速移动场景,信道相干时间设置为10~20 ms。因此,选择较为平稳的EWMA系数α=1/8,既有利于数据的运算处理,又能很好的权衡统计时效性与系统稳定性的关系。此时,EWMA运算可转换为
$ \begin{array}{c} {\rm{per}}\left( k \right) = {\rm{per}}\left( {k - 1} \right) - {\rm{per}}\left( {k - 1} \right) \gg \\ 3 + \left( {100 - 100 \cdot \frac{S}{A}} \right) \gg 3 \end{array} $ |
式中:per(k)为传输误帧率, per(k-1) 为最近一次传输误帧率,s为成功传输的次数,A为传输总次数。
3.2 发送速率选择在发送速率选择上参考SampleRate和HA-RRAA算法,采用短期观察和长期统计相结合的方法,短期统计是采用多速率重传机制,根据重传情况控制发送速率; 长期统计是根据一段时间内对数据帧的发送状态的统计决定当前的速率的使用时间以及如何进行速率的更换和探寻。影响AMRA算法的速率选择效果的一个重要因素是速率探询机制的设计,AMAR算法的速率选择流程如图 4所示,它采用了两种触发条件以启动速率探询过程,分别为时间触发和事件触发。前者采用自适应探询时间窗的方式实现定时探询;而后者则依据传输误帧率和接收的ACK的RSSI的变化情况触发最佳发送速率的搜索过程,当探询时间到并且当前速率的传输误帧率per<Pup(本文设置为15%),表明信道状况比较稳定且有变好的趋势,此时便会启动一次速率探询过程,采用‘S’型搜索方式,在3.1节所确定的MCS的大致范围内向高空间流、高调制编码方式寻找最佳的发送速率。而当误帧率per大于Pdown(本文设置为45%)时,则表明信道状况变差,同样会启动速率探询过程,在3.1节所确定的MCS的大致范围。向低空间流数、低调制编码方式的速率进行搜索。最后,根据探询结果更新当前发送速率,并自适应地调节探询时间窗。
本文在实际的室内工作环境中对AMRA速率自适应算法进行性能验证。基于不同信道环境,将AMRA算法与几种常用算法进行了性能对比。
4.1 测试环境搭建下图 5给出了速率自适应算法测试平台以及实验拓扑示意图。AP采用ZTE路由器,型号为QCA9880,支持IEEE 802.11a/b/g/n/ac协议, STA采用自研芯片原型BCS5810, 使用自主开发的协议栈驱动该无线模块,默认采用AMRA速率自适应算法。虽然本文仅在802.11n协议下进行速率自适应算法性能的实测与分析。但需要指出的是802.11ac协议除了支持更大的信道带宽以及更高阶的调制编码方式之外,与802.11n协议并没有本质的区别,所以该测试结果也将同样适用于802.11ac协议。为了验证算法的性能,在静止和移动两种场景下分别进行TCP和UDP传输性能测试。
为了验证AMRA算法性能,本文选择Atheros MIMO RA算法以及Minstrel算法作为参考。图 6给出了不同速率自适应算法的UDP和TCP吞吐率性能对比。室内站点N0~N7,AP处于实验室A904内,可提供所有站点接入到同一网络中。所有的测试均由站点主动发起,并与AP实现上层流量通信。为了确保测试过程中不受其它WLAN网络的干扰,所有的测试均在5 GHz频段上进行,在20 MHz与40 MHz带宽模式下分别测试了UDP与TCP协议的吞吐量性能。
对比图 6(a)与(b)、(c)与(d)可以发现,相同系统条件下,采用AMRA算法所获吞吐率性能明显高于采用Mintrel算法的吞吐率,同时也优于采用Atheros MIMO RA算法的性能。而采用UDP协议的吞吐率性比TCP协议性能高25%左右。这是由于TCP协议反馈确认与重传机制导致了信道的有效利用率降低引起的。
图 6(e)给出了室内移动场景(以1 m/s的速度将站点从N1匀速移动到N7然后再返回到N1),上述4种组合条件所对应的3种不同速率自适应算法的吞吐率性能对比,AMRA算法的性能略高于Atheros MIMO RA和Minstrel,表明该算法在移动环境下同样具有较好的性能。
5 结论1) 本文在综合分析IEEE 802.11ac速率自适应算法后,提出了一种AMRA速率自适应算法。该算法不改变802.11协议帧格式,保证了协议之间的兼容性。
2) 算法考虑了速率自适应的3个可调节维度(带宽、空间流、调制编码模式),通过实时预测信道状况,选择数据帧的发送速率,提升了速率选择的灵活性和准确性,也极大提升了系统的吞吐率性能。
3) 通过仿真和实际系统的测试表明,该算法在室内静止或移动场景下,能够获得高于Atheros MIMO RA和Minstrel两种算法约5%和13%的UDP吞吐率性能。
[1] | GONG M X, HART B, MAO S. Advanced wireless lan technologies:IEEE 802.11AC and beyond sigmobile mobile[J]. Computing & communications, 2015, 18(4): 48-52. (0) |
[2] | ONOERateControl[EB/OL].http://madwifi-project.org/browser/madwifi/trunk/ath_rate/onoe. 2014.8. (0) |
[3] | JUDD G, WANG X H, STEENKISTE P. Efficient channel-aware rate adaptation in dynamic environments[C]//Proceedings of the 6th International Conference on Mobile Systems, Appli-cations, and Services, New York, USA, 2008:118-131. (0) |
[4] | LACAGE M, MANSHAEI H, TURLETTI T. IEEE 802.11 rate adaptation:a practical approach[C]//Proceeding of the 7th ACM International Symposium on Modeling, Analysis and Simulation of Wireless and Mobile Systems, New York, USA, 2004:126-134. (0) |
[5] | XIA D, HART J, FU Q. Evaluation of the minstrel rate adaptation algorithm in IEEE 802.11g wlans[C]//International Conference on Communications, Hungary, 2013:2223-2228. (0) |
[6] | BICKET J C. Bit-rate selection in wireless networks[D]. Nordrhein-Westfalen:RWTH Aachen University, 2005. (0) |
[7] | PEFKIANAKIS I, WONG S H Y, YANG H, et al. Toward history-aware robust 802.11 rate adaptation[J]. IEEE transactionson mobile computing, 2013, 12(3): 502-515. DOI:10.1109/TMC.2012.18 (0) |
[8] | HITHNAWI A. An on-demand rate-adaptation mechanism for IEEE 802.11 networks[D]. Nordrhein-Westfalen:RWTH Aachen University, 2011. (0) |
[9] | HOLLAND G, VAIDYA N, BAHL V. A rate-adaptive MAC protocol for multihop wireless networks[C]//Proceeding of the 7th Annual International Conference on Mobile Computing and Networking (MOBICOM'01), Rome, Italy, 2001:236-251. (0) |
[10] | PAN Zhipeng, WU Bin, YE Tianchun. High efficient rate adaptation algorithm for IEEE 802.11ac[J]. Journal of Xidian Universty, 2016, 43(1): 120-126. (0) |
[11] | HU S P, LI J D, PAN G F. Performance and fairness enhancement in IEEE 802.11 WLAN networks[J]. International journal of electronics and communications, 2014, 68(7): 667-675. DOI:10.1016/j.aeue.2014.02.009 (0) |
[12] | LE Y, MA L, CHENG W, et al. A time fairness based MAC algorithm for throughput maximization in 802.11 networks[J]. IEEE transactions on computers, 2015, 64(1): 19-31. DOI:10.1109/TC.2013.186 (0) |
[13] |
潘志鹏, 吴斌, 叶甜春. 多速率WLAN网络的时间公平调度算法[J]. 西安电子科技大学学报:自然科学版, 2016, 43(4): 128-134. PAN Zhipeng, WU Bin, YE Tianchun. Airtime fairness scheduling algorithm for multi-rate WLANs[J]. Journal of Xidian University:natural science edition, 2016, 43(4): 128-134. (0) |
[14] |
潘志鹏, 吴斌, 尉志伟, 等. 面向802.11ac的安全加速引擎Gbps VLSI架构设计与实现[J]. 哈尔滨工程大学学报, 2015, 35(7): 943-948. PAN Zhipeng, WU Bin, WEI Zhiwei, et al. Design and implementation of Gbps VLSI architecture of the cipher engine orienting to IEEE 802.11ac[J]. Journal of Harbin Engineering University, 2015, 35(7): 943-948. (0) |
[15] | CHENG Peng, WU Bin, HEI Yong. Design and implementation of IEEE 802.11ac MAC controller in 65 nm CMOS process[J]. Journal of semiconductors, 2016, 37(2): 025002. DOI:10.1088/1674-4926/37/2/025002 (0) |
[16] |
邓晓衡, 李旭, 刘强, 等. 一种基于接收端SNR的IEEE 802.11WLAN速率自适应算法[J]. 计算机工程与科学, 2013, 35(12): 45-51. DENG Xiaoheng, LI Xu, LIU Qiang, et al. RAS:rate adaptation in IEEE 802.11 with receiver's SNR[J]. Computer engineering & science, 2013, 35(12): 45-51. (0) |
[17] |
习勇, 黄清艳, 魏急波, 等. 基于IEEE 802. 11高速无线局域网的速率自适应MAC协议研究[J]. 电子与信息学报, 2007, 29(6): 1281-1285. XI Yong, HUANG Qingyan, WEI Jibo, et al. Rate adaptation MAC protocol for high rate IEEE 802.11 WLANs, 2007, 29(6): 1281 http://kns.cnki.net/KCMS/detail/detail.aspx?filename=dzyx200706002&dbname=CJFD&dbcode=CJFQ (0) |