趙柏山,李嘉欣,陳 瑜
(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幀的系統開銷,縮短傳輸數據所需時間,提高系統吞吐量,進而提高了系統整體性能。但如果移動設備在信道狀況極其不穩定的環境下,設備性能可能會降低,需要進一步研究優化算法使移動設備適應快速變換的傳輸信道,這也是日后研究的重點。