赵柏山,李嘉欣,陈 瑜
(1.沈阳工业大学 信息科学与工程学院,辽宁 沈阳 110870;2.中国石油长庆油田分公司第四采油厂,宁夏 银川 750006)
IEEE802.11[1-2]是无线局域网通用标准,同时也是国际电机电子工程学会定义的无线网络通信标准。第五代无线局域网标准的定制,使应用设备可以根据需要选择不同的发送速率,速率自适应[3]机制在其中必不可少,是提高发送效率的关键。
以Receiver-Based AutoRate(RBAR)[4],Opportunistic Auto Rate(OAR)[5]为代表的基于接收端的速率自适应算法,通过发送RTS/CTS控制帧进行对信道质量的评估和数据发送速率的选择,使用根据实时信道状况选择的最佳传输速率,可以提高系统吞吐量[6]。在传输过程中,RTS/CTS控制帧必须使用基本速率传输以确保在任何信道环境下接收端都可以成功接收,一般情况下为1,2 Mbps[7-8]。虽然发送控制帧可以解决很多信息传输过程中产生的问题并优化信息传输系统,但是大量发送RTS/CTS控制帧将会耗费相当可观的网络资源[9]。同样,在RBAR算法中,频繁地发送RTS/CTS控制帧进行信道评估会占用系统带宽,尤其在数据帧使用远高于基础速率的最佳发送速率传输后,发送RTS/CTS控制帧占用系统开销的比重便会相应地增加。
通过对经典速率自适应算法的研究,提出了一种基于RBAR算法的改进速率自适应算法。该改进算法沿用RBAR算法中对信道的实时估计,通过改进实时估计信道方式并减少RTS/CTS控制帧发送次数,以达到减少RTS/CTS控制帧发送次数、提高网络资源利用率和系统吞吐量的目的。针对RBAR算法修改RTS/CTS帧格式的传输方式做出改进,改进后算法可以与大部分现有通信设备兼容,便于设备的性能优化。
RBAR速率自适应算法的核心思想是根据实时信道信息选择最佳发送速率,通过在每次传输数据前发送RTS/CTS控制帧进行信道状况评估,并在RTS/CTS控制帧中携带得到的信道信息在发送端和接收端之间传递[10]。因此,RBAR速率自适应算法可以更加精准地选择最佳传输速率。同时,该算法存在很大问题:每一次传输都要使用RTS/CTS机制,在信道状况变化较小的情况下,发送大量的RTS/CTS控制帧需要占用系统带宽,增大了系统开销[11]。并且由于该算法改动了RTS/CTS帧格式,与现有802.11协议不兼容,导致将其大范围应用于现有通信产品中比较困难[12]。
由于无线信道具有时变性,信道环境是随时变化的,因此数据的传输速率应随之变化[13]。为了实现速率自适应的传输方式,必须预先了解信道状态信息。基于接收端的速率自适应技术通过实时监测信道环境,根据接收端实时估计的信道参数,将选择的最佳发送速率反馈给发送端,发送端使用该速率进行数据传输[14]。目前判断信道状况主要通过系统信噪比(SNR)和接收信号强度(RSS)等因素。
一般来说,SNR降低,BER的变化与之相反,调制信号就越难以还原为有用信号。在SNR相同情况下,数据速率同BER的变化趋势相同,数据传输速率越快,BER越大;数据传输速率越低,BER越小。因此,调制方式的选择就是数据速率与BER的一个折中[15]。不同调制方式下SNR与BER的关系如图1所示。由图1可以看出,每种调制方式的BER都随着SNR的增大而降低[16-17]。对于给定的SNR,提高数据传输速率会使BER增大。
图1 不同调制方式下SNR与BER的关系Fig.1 Relationship between BER and SNR
在IEEE802.11协议中,RTS/CTS控制帧传递网络分配矢量(NAV),向邻居节点通知数据传输预计需要时间,预先通知邻居节点保持静默[18]。RBAR算法修改了RTS/CTS控制帧结构,将协议中16 bit的持续时间字段修改为存储速率和数据信息,RTS/CTS控制帧不再传送保持时间,而是携带信道的速率和数据帧的大小,其他结构与原协议相同。这样,邻居节点也可以计算出静默保持时间,避免发生信道碰撞[19]。RBAR算法中的RTS/CTS控制帧格式如图2所示。
(a)RBAR算法中RTS控制帧格式
(b)RBAR算法中CTS控制帧格式图2 RBAR算法中的RTS/CTS控制帧格式Fig.2 The format of RTS/CTS control frame in RBAR algorithm
RBAR算法工作流程如下:
① 接收端提取RTS帧携带的信道信息,由物理层计算当前信道状况下的接收SNR,根据SNR的大小确定下一帧的最佳发送速率。
② 接收端根据RTS帧中携带的信道状况,选择最佳速率添加到CTS帧中反馈至发送端。
③ 发送端提取出CTS帧中的速率信息,作为下一次传输数据速率,下传到物理层进行相应的速率调整。
一个完整的通信系统中,持续采用高速率传输数据并不一定会使系统性能相应提升,因为若传输系统处于信道状况不佳的情况下,可能会出现传输失败导致数据重传的状况发生,并且此时系统BER增大,延长了数据传输时间,导致系统吞吐量降低。相反,在信道状况良好时,采用适当的高速率传输数据才会提高系统整体性能。针对系统通信过程中数据帧传输出错概率和发送速率对吞吐量的影响进行了理论分析。
系统传输数据时,需要在数据包前后分别加上24 Byte的介质访问控制MAC(子层协议)头部和4 Byte的帧校验序列(FCS)封装成帧,称之为MAC协议数据单元(MPDU)。当MPDU传输到物理层时,在MPDU前加上物理层汇聚协议(PLCP)组成完整的数据帧。物理层数据帧格式如图3所示。
图3 物理层数据帧格式Fig.3 The format of physical layer data frame
(1)
(2)
可以由物理层的数据帧格式,得到传输数据帧的出错概率:
(3)
由于帧格式中各部分长度固定,所以可将数据帧传输的出错概率整理表示为:
(4)
传输数据过程中,在已知SNR的条件下,可以通过BER-SNR之间的对应关系得到BER,所以数据帧传输出错的概率还可以用BER来表示:
(5)
(6)
在无线局域网环境下,无线信道会受到多径衰落、节点运动等随机因素的影响,系统吞吐量很难用公式去推导,但若不考虑以上因素,在理想情况下,系统吞吐量可以表示为:
(7)
式中,变量L,TDIFS,TDATA,TSIFS,τ,TACK分别为数据长度、帧间时隙、传送数据所需时间、短时隙、平均传输时延以及ACK帧的传输时间。在理想情况下,系统吞吐量与传送速率成正比,发送数据速率越大,传输时数据帧占用信道时间越短,系统的平均吞吐量越大。据此可以得出,如果传输数据包的大小为1 000 Byte,在IEEE802.11标准下系统的理想吞吐量如表1所示。
表1 DATA-ACK模式下使用不同速率传输的系统吞吐量 Mpbs
Tab.1 The throughput of system which using different rates in data-ack mode
数据传输速率吞吐量1.00.992.01.995.55.4911.010.98
(8)
当系统采用RBAR速率自适应算法时,传输过程中通过RTS/CTS控制帧传递信道信息并避免信道碰撞发生,这时可将系统吞吐量表示为:
(9)
(10)
在RBAR速率自适应算法基础上做出改进,改进后的算法可以在一定程度上提高系统的吞吐量,并且解决RBAR算法与现有通信协议不兼容的问题。改进后的算法仍需要根据实时无线信道状况,选择数据的最佳传输速率。算法设计主要基于2个方面,一方面是减少RTS/CTS的发送次数,在估计信道状况和获得精确数据传输速率提高系统吞吐量之间找到平衡,根据系统吞吐量变化幅度判断信道变化的剧烈程度,选择性发送RTS/CTS控制帧进行信道状况判断;另一方面,目前大多数通信设备采用802.11协议,所以要使改进后的RBAR算法与现有设备兼容,需要使用原有RTS/CTS控制帧格式,这是在优化RBAR算法过程中第二个需要改进的方向。
在移动无线网络中,路径损耗、衰落和干扰等因素的影响会导致接收信噪比的变化,同时也会导致BER的变化,所以改进的算法仍需在发送端和接收端之间传递信道信息和最佳发送速率。为了使改进后算法可以兼容IEEE802.11协议,重点是如何在避免修改RTS/CTS帧格式的情况下完成信道估计。
在IEEE802.11标准中定义的MAC帧序列中没有预留用于传输信道信息的字段,RBAR算法中使用RTS/CTS帧传输信道信息的方法很难与现有通信设备兼容。本文将RBAR算法在RTS/CTS帧格式修改方面做出了调整,将信道信息存放在RTS/CTS帧的帧校验序列FCS当中,利用FCS帧存放速率信息。发送端根据RTS帧的SNR,利用已确定的SNR阈值表来选择在当前信道环境下应使用的发送速率,将速率信息放置于CTS帧的FCS字段中返回发送端,发送端按照该速率传输。改进后RBAR算法中CTS控制帧格式如图4所示。
图4 改进后RBAR算法中CTS控制帧格式Fig.4 CTS controls frame format in the improved RBAR algorithm
改进后的算法同RBAR算法最大的不同之处在于无需改变MAC层的帧格式,仅通过RTS/CTS帧位于物理层的扰码序列携带信道信息与速率信息,即可完成实时信道估计,达到速率自适应的目的,改进后算法可与目前市场上大部分通信产品兼容。
改进后的RBAR算法修改了发送RTS/CTS控制帧的方式。若将系统吞吐量变化幅度超出门限值的概率,用Pc表示,使用改进后算法的发送n个长度为L的数据包,系统的平均吞吐量可以表示为:
(11)
根据公式推论,改进后的RBAR算法可以将改进后系统传输所用时间缩短至原算法吞吐量的1-Pc/Pc。而系统吞吐量与传输数据时间成反比,由此可见,改进后的算法在系统吞吐量方面比RBAR算法有所提升。
根据以上方法对RBAR算法进行适当优化,改进的RBAR算法流程如下:
① 节点处预先设置监测系统吞吐量变化幅度门限。
② 发送端向接收端发送RTS帧,预约信道避免发生信道碰撞。
③ 接收端根据发送的RTS帧判断信道信噪比,将最佳传输速率添加至CTS帧的FCS字段中反馈至发送端。
④ 发送端持续以该速率传输数据,并停止发送RTS/CTS控制帧。
⑤ 每传输10次,统计传输期间吞吐量的平均值。
⑥ 当监测到系统吞吐量上升或下降超过预先设置门限时,重新启动RTS/CTS机制进行信道估计,更新数据传输速率。
改进的RBAR算法流程如图5所示。
图5 改进RBAR算法流程图Fig.5 Flow chart of the improved RBAR algorithm
通过NS2.35仿真平台对本文提出的改进RBAR算法进行仿真,实验的基础条件设置如下,模拟的实验场景为1 000 m×1 000 m,无线节点的干扰范围设置为550 m,节点在场景内随机移动,模拟时间为200 s。在无线局域网环境下传输数据进行仿真,节点间采用UDP传输,数据包大小为2 000 Byte。参照IEEE802.11无线标准,具体参数设置如表2所示。
表2 IEEE802.11参数
Tab.2 IEEE802.11 parameters
参数值释义aSlotTime/μs20时隙长度aSIFSTime/μs10短帧间间隔aDIFSTime/μs50DCF帧间间隔aCWmin31最小争用窗口aCWmax1 023最大争用窗口tPLCP Preamble/μs144PLCP前导码持续时间tPLCP Header/μs48PLCP头部持续时间
在实验中,节点间分别采用ARF算法、RBAR算法和改进后的RBAR算法传输数据,通过统计改变移动节点数量对吞吐量的影响,判断改进后的RBAR算法是否能够有效地提高系统吞吐量,如图6所示。
图6 不同节点数量下吞吐量的比较Fig.6 Throughput comparison with different number of nodes
在站点数目不断增加的情况下,系统吞吐量随着节点数增加而降低,但采用改进后算法的系统,吞吐量明显高于RBAR算法和ARF算法。随着站点数量的增加,数据包在发送过程中相互碰撞,ARF算法默认2次没有成功传输便归于信道状况较差,降低数据发送速率,会降低系统吞吐量。RBAR算法和改进的算法采用RTS/CTS机制,在一定程度上避免信道碰撞,而RBAR算法大量发送RTS/CTS帧降低了系统带宽利用率。相比之下,改进后的算法不需要修改物理层帧的格式,可以兼容IEEE802.11协议。并且改进后算法大大减少了需要传输的RTS/CTS帧的数量,从整体上提高了系统的吞吐量。由图6可以看出,改进算法后系统的性能,与通过公式验证的减少RTS/CTS帧发送次数可以在一定程度上提高系统吞吐量的结论相符合。
针对经典RBAR速率自适应算法进行分析研究,并根据RBAR算法需大量发送RTS/CTS帧进行信道估计,浪费系统网络资源,且无法兼容现有IEEE802.11协议这些缺陷做出改进。改进后算法根据系统吞吐量变化幅度控制RTS/CTS握手机制的开启与关闭,既可以进行实时信道估计,又可以在信道状况变化缓慢时停止信道估计,节约系统带宽,提高网络资源利用率和系统吞吐量。通过比较不同算法传输数据的系统吞吐量可以看出,改进后的算法可以减少不断发送RTS/CTS帧的系统开销,缩短传输数据所需时间,提高系统吞吐量,进而提高了系统整体性能。但如果移动设备在信道状况极其不稳定的环境下,设备性能可能会降低,需要进一步研究优化算法使移动设备适应快速变换的传输信道,这也是日后研究的重点。