胡 劍 楊 平
(中國船舶重工集團公司第722研究所 武漢 430079)
無線自組織網絡(Ad hoc網絡)采用分布式技術,沒有中心控制節點的管理,具有較強的自組性和機動性,并且網絡建立簡單,滿足了海上軍事通信系統對構建高效、頑存、網絡化的海上戰術無線通信系統的需求。無線自組網最大的特點在于分布式環境下競爭共享的無線信道接入方式和多跳中繼的通信模式,由于信道接入協議對信道狀態的感知最快,所以,MAC協議能否高效利用有限的無線信道資源對無線自組網的性能起決定性作用,是影響整個網絡性能的一個關鍵因素。本文針對CSMA/CA協議在無線自組網中應用的不足,提出了一種帶RTS/CTS握手信號的CSMA/CA協議(CSMA/CA/RTS/CTS),并通過 QualNet[9]仿真軟件進行仿真,分析了其在多跳、基于競爭、單信道、單發射功率仿真場景中的性能。
基本的CSMA/CA無RTS/CTS握手信號,采用兩次握手的接入方式,如圖1所示。當發送節點檢測到信道空閑,并且空閑時間達到一個 DIFS后,直接向接收節點發送數據報文。接收節點在接收到一個數據報文后,等待一個SIFS,并回送一個ACK報文進行確認。如果發送節點沒有收到ACK,那么將重新發送數據。如果信道忙,或空閑時間持續不到一個DIFS,則發送節點任選一個隨機退避時間,進入沖突避免狀態[2,8]。

圖1 兩次握手接入方式
CSMA/CA協議采用的是二進制指數退避算法。節點最初開始發送時,CW被分配給一個最小值的競爭窗口CWmin,當發送失敗后,CW的取值就遞增,直到CW達到最大值的競爭窗口CWmax,并一直保持下去。當傳輸成功后,CW又重新回到初始值CWmin。CWmin和CWmax由節點的物理層參數決定。
假設一個節點的通信范圍為R,M個節點隨機分布在半徑為R的均勻分布的二維空間的圓內,網絡在發送數據報文和控制報文的時候是穩定的,不考慮路由。按照文獻[3]提出的網絡模型的計算方法,計算CSMA/CA協議在多跳無線自組網下的網絡性能。

圖2 發送節點的隱藏終端HA和接收節點的隱藏終端 HB
圖2給出了發送節點A的隱藏區域HA和接收節點B的隱藏區域HB。此時,節點 A正向節點B發送報文。假設節點 A選擇任意一個節點作為接收端的概率相等,且節點A隨機選擇了節點B作為接收端,則可確定節點A的隱藏終端的數目Nh。
在基本CSMA/CA/協議中,隱藏終端能引起DATA報文和ACK報文在傳輸中的碰撞。可通過分別確定傳輸DATA報文和ACK報文時隱藏終端的影響,分析CSMA/CA協議的性能。
首先考慮傳輸DATA 報文的情況。假設在某一時刻,節點 A正向節點B傳輸DATA 報文,有i(i∈[0,M])個節點等待。如果節點B的Nh個隱藏終端中的任意一個正在傳輸數據,此時就會產生碰撞。

如果每個節點被選擇作為接收端的概率是相等的,則節點A向節點B發送DATA 報文時,Nh個隱藏終端中至少有一個正接收數據的概率Phri為:

如果DATA報文被 Nh個隱藏終端中的一個節點H1成功接收,接收節點 H1就會回復一個ACK信號,這個信號可能會同節點 A向節點B發送的數據產生碰撞(隱藏終端之間同樣存在這種情況),而在彼此通信范圍內的隱藏終端的平均數為Nhn,Nhn≈Nh/2。若Ps(i)是節點成功發送數據的概率,則Nhn個隱藏終端的一個節點成功接收到來自非隱藏終端的DATA報文的概率Phrsi為:

其次,在節點 B成功接收到來自節點 A的DATA報文后,節點B將向節點A回復一個ACK信號,由圖2可知,節點A和B的隱藏終端的數目相等。節點B向節點A回復一個ACK信號就說明節點A已經成功向節點B發送了DATA報文,所以,節點 A的所有相鄰節點在偵聽信道前必須等待一個DIFS時間。設α是時隙大小,β和γ分別是DIFS和SIFS的持續時間,f是ACK信號的傳輸時間,則節點B的隱藏終端能夠引起碰撞的時間是 Th=(f+γ-β)/α。
設每一個等待的節點在時隙 t開始的時候偵聽信道的概率是vi。由于在傳輸半徑為R的圓內有i(i∈[0,M])個節點空閑,那么,節點B的隱藏終端的平均數為?Nh。設總的流量負載G是系統內一個歸一化單位時間內的總報文數,g是一個時隙內某個節點的包到達率,并且 Mg=α G。在基本的 CSMA/CA/協議中,只要在 Th時間內開始發送數據,Nh個隱藏終端中的任何一個節點都能引起碰撞,而至少有一個隱藏節點在 Th時內發送DATA報文的概率Pht ACKi為:

由于存在隱藏終端的問題,節點A向節點B成功發送數據報文的概率會降低Phi=(Phti+Phrsi+(1-Phti-Phrsi)×PhtACKi)×100%,πi是分布式節點的固定概率,節點傳輸成功和失敗時,信道忙的時間分別為T和C。因為所有的節點在系統內都相同,可以得出多跳無線自組網中基本CSMA/CA的吞吐量為:

若空閑節點的平均數目為ˉN,則平均報文時延為:

從計算結果可知,基本的CSMA/CA采用的兩次握手接入方式不能有效解決隱藏、暴露終端問題,使得網絡性能較差,在多跳無線自組網中較少應用。
由于基本的CSMA/CA無RTS/CTS握手信號,使得網絡通信中信號發生碰撞的幾率大增,影響了網絡的性能。MACA是第一個使用RTS/CTS控制報文來解決無線自組網隱藏、暴露終端的MAC協議,但MACA去掉了載波偵聽,只是“部分解決了隱藏終端的問題”[4],因為采用 RTSCTS兩段握手信號,缺少鏈路層確認機制,在發生沖突后要超時重發,降低了網絡性能。雖然MACAW對MACA協議進行了改進,增加了DS和ACK鏈路層確認信號,但由于握手信號較多,增加了協議的開銷,傳輸時延也比較大[5]。
在參考了MACA和MACAW協議后,我們對CSMA/CA協議進行了改進,保留了載波偵聽機制,增加了RTS/CTS握手信號,并加入ACK控制報文對鏈路層進行確認。故采用的報文交換順序是RTS-CTS-DATA-ACK,如圖3所示,這種方式可以避免隱藏終端的問題。只要有數據報文要被發送,發送節點就會先發送一個 RTS。RTS的發送和兩次握手方式里報文的發送是一樣的,也是為了競爭信道。接收節點在收到RTS后就會回送一個CTS以確定信道。發送節點在正確接收到CTS后,開始發送數據報文DATA。接收節點正確接收到DATA報文后,回送一個ACK進行確認,完成一次成功的數據傳輸。RTS/CTS報文包括它要花多長時間來發送下個數據報文的信息。因此,與發送節點相鄰的其他節點和與接收節點相鄰的隱藏終端在這段時間內將不會傳輸數據。這種來回的交換對于避免隱藏終端問題是很有必要的[6~7]。

圖3 四次握手接入方式
在CSMA/CA/RTS/CTS中,當一個節點有DATA報文要發送的時候,這個節點會首先發送一個RTS信號給接收端,接收端在收到RTS信號后等待一個SIFS時間,然后回復一個CTS信號給發送端。RTS的目的就是通知在發送端通信范圍內的節點延遲它們的數據發送,而CTS的目的是通知在接收端通信范圍內的節點延遲它們的數據發送。發送端和接收端之間成功的RTS/CTS交換為他們之間的數據傳輸預留了信道,但并不能完全解決隱藏終端的問題[2,8]。
在CSMA/CA/RTS/CTS協議中,成功發送數據的時間 T包括以下幾個時間:DIFS時間、帶傳播時延α的RTS的發送時間、SIFS時間、帶傳播時延 α的CTS的發送時間、SIFS時間、帶傳播時延α的數據報文發送時間Tp、SIFS時間以及帶傳播時延α的ACK的發送時間。設固定長度的報文傳播時間為 Th,并且被分為時隙大小為α(傳播時延/報文傳播的時間)的時隙,分別用θ和τ表示RTS和CTS的發送時間。

圖4 在節點H處的碰撞
在圖4中,假設在某一個時刻,節點 A正向節點B發送DATA報文,有i(i∈[0,M])個節點空閑。若節點A發送RTS的時候,節點 A的任一隱藏終端也在發送或接收數據,那么節點 A的數據發送就會失敗。雖然 RTS是一個很小的信號,但仍然要考慮節點A的隱藏終端的數據接收。這是因為當成功收到RTS/CTS信號的發送端和接收端正在通信的時候,RTS/CTS方式保證了他們的鄰居節點都不能發送數據或控制信號。如果節點A的一個隱藏終端正在接收數據,這個隱藏終端就會阻止節點B回復CTS信號,這就使得節點A的通信失敗了。設這個碰撞時間為C1,這個時間包括DISF時間,帶傳播時延的 RTS時間以及SIFS時間 ,即C1=(α+β+θ+γ)/α。
當節點B和節點E同時向節點H發數據的時候,節點A的隱藏終端也能造成對DATA 報文的碰撞。從上節分析可知,節點A的隱藏終端至少有一個收到數據的概率是 Phri,這也是來自節點B的CTS同來自節點E的RTS在節點A的隱藏終端處產生碰撞的概率。式(1)給出了節點A的隱藏終端中至少有一個節點發送RTS的概率,式(2)得出了節點 A的隱藏終端中至少有一個節點成功收到RTS的概率。所以,節點A的隱藏終端能造成從節點A到節點B的數據報文碰撞的概率Pdatai為:

從中可知,碰撞時間包括:DIFS時間,帶傳播時延的RTS時間,SIFS時間,帶傳播時延的CTS時間,SIFS時間以及帶傳播時延的報文發送時間。用C2表示碰撞時間,則:C2=(1+3α+β+2γ+θ+τ)/α。
由于隱藏終端的問題,節點 A成功發送DATA報文到節點B的概率共減少Phi=(Phti+Phrsi
+(1-Phti-Phrsi)×Pdatai),則帶RTS/CTS的CSMA/CA協議在多跳無線自組網中的吞吐量為:

平均數據時延為:

利用QualNet通信網絡仿真軟件分別對基本的CSMA/CA和CSMA/CA/RTS/CTS協議在多跳無線自組網下進行仿真,在相同的仿真場景下用到的系統參數為:Tp=2ms(即100個時隙),α=0.02ms,γ=0.01ms,β=γ+2α=0.05ms,f=θ=τ=0.1ms,M=21,CWmin=31,CWmax=1023。仿真假定100個節點隨機分布在一個均勻分布的正方形二維空間內,并且有M個節點分布在半徑為R的圓內,所有節點都是固定的并且不考慮路由。

圖5 CSMA/CA與CSMA/CA/RTS/CTS的吞吐量比較
圖5給出了基本CSMA/CA和CSMA/CA/RTS/CTS在多跳無線自組網下吞吐量的理論計算和仿真結果值。從圖中可以看出,不管是理論計算值還是仿真值,CSMA/CA/RTS/CTS比基本CSMA/CA在多跳無線自組網中都有更大的吞吐量,這是因為在多跳無線自組網中隱藏與暴露終端的問題非常明顯,而RTS/CTS能部分的解決隱藏與暴露終端問題。

圖6 CSMA/CA與CSMA/CA/RTS/CTS的時延比較
圖6比較了基本CSMA/CA和CSMA/CA/RTS/CTS在多跳無線自組網中的時延。從結果可知,在多跳無線自組網中,CSMA/CA/RTS/CTS比基本的CSMA/CA有較少的時延。這是因為基本的CSMA/CA協議無法解決在多跳無線自組網中存在的隱藏與暴露終端問題。而即使CSMA/CA/RTS/CTS使用RTS/CTS握手信號去解決隱藏終端的問題,但碰撞仍然會在發送DATA 報文時產生,特別是在參與競爭的節點數目很大的時候。
本文針對基本CSMA/CA協議在多跳Ad Hoc網絡應用中存在的問題,提出了一種報文交換順序為RTS-CTS-DATA-ACK的CSMA/CA/RTS/CTS協議。從初步的理論分析以及仿真結果來看,CSMA/CA/RTS/CTS協議不管是在網絡流量負載較大還是節點報文數較多時,均能在一定程度上提高多跳Ad Hoc網絡的性能。但在多跳Ad Hoc網絡中,即便是使用了CSMA/CA/RTS/CTS協議,當參與信道競爭的節點數達到一定數量時,網絡的性能仍會受到不利影響,這也正是本文下一步工作的研究重點。
[1]IEEE Standard for Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY)Specification,1999,P802.11
[2]虞萬榮.無線自組網MAC協議關鍵技術研究[D].國防科學技術大學工學博士學位論文,2006,9
[3]Yunli Chen.Performance Analysis and Enhancement of M AC Protocol for IEEE 802.11WLANs[D].UNIVERSIT Y OFCINCINNATI:Division ofGraduate Studies and Research,2004,10
[4]P Karn.MACA-a new channel access method for packet radio networks[C]//ARRL/CRRL Amateur Radio 9th Com-puter Networking Conference,1990
[5]V.Bharghavan,A.Demers,S.Shenker,et al.M ACAW:A media access protocol for wireless LANs[C]//ACM SIGCOMM Conference,1994:212~225
[6]L.Ki-Ho,C.Dong-Ho.A multiple access collision avoidance protocol for multicast services in mobile ad hoc networks[J].Communications Letters.IEEE,2003,7:508~510
[7]F.Tobagi,L.Kleinrock.Packet Switching in Radio Channels:Part IV-Stability Considerations and Dynamic Control in Carrier Sense Multiple Access[J].IEEE Transactions on Communications,1977,COM-25:1103~1120
[8]李鎣.無線自組織網MAC層協議關鍵技術的研究[D].上海:上海交通大學博士學位論文,2007,5
[9]Scalable Network Technologies,Inc.QualNet 4.5 User's Guide[M/DK].2008