摘 要: 提出了一種提供QoS保障的多信道MAC協議,該協議把不同種類業務劃分優先級和幀間隔時間,以保障優先級高的數據較早接入信道,同時把高層數據按目的地址的不同建立發送鏈表,采用自動重傳技術,實現數據信道上連續的幀交換過程。仿真結果表明,該方法大大提高了數據信道利用率,改善了系統性能。
關鍵詞: 無線自組織網絡;服務質量;介質接入控制協議;多信道
無線自組織網絡(Ad hoc)是一種具有無中心、自組織、快速展開和移動等特點的對等式網絡,又被稱作多跳網絡(Multi-hop Network)或自組織網絡(Self-organized Network)[1]。隨著自組網業務的多樣化以及逐漸向公用網絡領域滲透,服務質量QoS(Quality of Service)保障問題越來越重要,介質接入控制(MAC)協議是自組網QoS體系中最基本的部分,主要用來管理和協調多個用戶共享可用的頻譜資源,QoS路由和信令都要依賴它。MAC需要解決兩個問題[2]:如何將頻譜劃分為不同的信道,如何將信道資源分配給不同的用戶。在Ad hoc網絡MAC協議領域,多信道技術成為研究熱點,很多的多信道MAC協議能較好地解決信道爭用、隱藏終端、暴露終端[3-4],與單信道技術相比,其具有提高系統吞吐量、降低時延等優點[3-5],但是大部分不能為實時業務提供QoS保障。本文結合多信道DCA[5]協議信道預約的思想,給不同種類的業務劃分優先級和幀間隔,保證優先級高的業務較早地預約數據信道,同時把高層數據按目的地址的不同建立發送鏈表,實現數據信道上連續的幀交換,改善了系統吞吐量和時延特性。
1 協議基本思想
把整個信道分為1個控制信道和n個數據信道,這些子信道互不重疊且帶寬相等,每個節點配置兩部半雙工收發機,1個用于控制信道,1個可在n個數據信道間切換使用。通信雙方通過在控制信道上交換RTS/CTS/RES幀來預約數據信道,然后在數據信道上交換DATA/ACK幀進行通信。每個節點(如A)保存信道使用列表CUL[]和空閑信道列表FCL。CUL[]表項有3個元素:CUL[i].host是A的一個鄰居地址,CUL[i].ch是被鄰居CUL[i].host占用的數據信道,CUL[i].rel_time指CUL[i].ch信道的釋放時間。FCL表可由CUL[]計算得出。
建立發送鏈表,采用自動重傳技術,雙方可實現數據信道上連續的DATA/ACK幀交換過程,直到通信完成或者達到預定通信時間。下面說明協議中的幾個重要規則。協議中用到的標識符含義如表1所示。
1.1 發送鏈表
按目的地址的不同把高層數據加入到相應鏈表中,發送數據鏈表的結構形式如圖1所示。
Hld_Data_Elem是高層數據的表示結構,pkptr指向高層數據,qos是描述分組優先級的整數值,實時(語音、視頻等)分組比數據分組優先級高,ar_time是高層數據的到達時間。NL[]是鏈表頭結構,具有同一目的地址的分組均放在此鏈表中,Hld_List是鏈表頭指針,dest是目的地址,T_qos是表示此鏈表中所有分組的平均優先級權值,由鏈表中所有分組的qos和ar_time值決定:
1.2 控制信道規程
在控制信道上交換RTS/CTS/RES幀預約數據信道,RTS/CTS/RES幀格式如圖2所示。
RTS幀中的N域表示發送鏈表中的高層數據個數;Tdl(Total data length)域是N個高層數據的總長度,目的節點可以結合N、Tdl域計算數據信道上的總通信時間。Ndl(next data length)域是節點A當前發送鏈表中下一個要發送的數據長度,用于節點B設置超時定時器。
要在數據信道上實現連續的幀交換功能,則在控制幀交換過程中,網絡分配矢量NAVcts必須有效地預測數據信道Dj上的通信時間,NAVcts值被設為發送鏈表中的數據正常交換完成所需要的時間,NAVcts的計算過程如下:
源節點的當前發送鏈表中有4條數據,在數據信道上正常交換時的傳輸序列如圖3所示,由此可以推出:
NAVcts=TdlA+NA×T_ack+2NA×T_prop
其中,若幀交換過程中出現異常需要重傳,則數據信道上的通信時間將會大于NAVcts值,這種異常情況的處理見下文。
1.3 數據信道規程
數據信道上交換DATA/ACK幀,DATA/ACK幀格式如圖4所示。
DATA幀中的Seq域用于對方節點辨別到來是否是重復幀,正常情況下此位按0、1交替變化,在重傳時不發生變化,此位是必要的,因為節點超時定時器發生超時,可能是正確的應答幀在鏈路上丟失造成的,這樣重傳時設置Seq位不變,對方節點便知道是重復幀而丟棄它;Itrp域是強制中斷位,正常情況下此位為1,當為0時,表示要求立即停止通信,之后雙方交換ACK幀結束本次通信。
系統記錄數據信道上的通信時間,當發生重傳時,源節點在發送本條數據時,計算發送鏈表中下一條數據正常傳輸結束的時刻會不會超過NAVcts值表示的時刻,如果超過,則把Itrp位置0,強制結束通信,如圖5中所示,目的節點收到DATA(Itrp(0))時,返回ACK幀,之后結束通信。A中未傳完的數據依然留在發送鏈表中。因此,Itrp位保證了發生錯誤重傳時,數據信道上總的通信時間不大于NAVcts表示的時間,既充分利用了信道資源,又及時釋放信道不至于造成沖突。
2 本文協議的描述過程
本文協議的描述過程如下,其分組交換時序圖如圖6所示。
(1)節點(如A)發送鏈表不全為空時,選擇T_qos權值最大的鏈表作為當前發送鏈表,其目的地址為節點B,在RTS幀前,節點A做三項檢查:
(a)保證目的節點B的數據信道收發機空閑。在CUL表中不能有:
CUL[i].host=B且CUL[i].rel_time>T_curr+(T_rts+T_sifs+T_cts)
(b)保證本節點的數據信道收發機空閑。在CUL表中不能有:
CUL[i].host=A且CUL[i].rel_time>T_curr+(T_rts+T_sifs+T_cts)
(c)保證本節點A有空閑的數據信道。至少一數據信道Dj滿足:
CUL[i].ch=Dj且CUL[i].rel_time<=T_curr+(T_rts+T_sifs+T_cts)
再把滿足條件的信道記入FCL表,設置好NAVrts、Fcl、N、Tdl、Ndl等域,向B發送RTS幀。
(2)收到RTS幀后,B檢查是否有匹配的空閑數據信道,能否滿足FCLA與FCLB有匹配項或者對DjEFCLA有:CUL[i].ch=Dj且CUL[i].rel_time<=T_curr+T_cts存在。
(a)若滿足,選擇一個空閑數據信道(如Dj),設置NAVcts等域,向A返回NAVcts(Dj,NAVcts)幀。然后把數據信道收發機切換到Dj,準備接收DATA幀。
(b)若不滿足,返回CTS(0,T_est)幀,其中T_est是B節點有空閑信道的最小估計時間。
(3)當非目的節點收到RTS幀時,控制信道上執行退避,以避免控制信道上發生沖突,退避時間為:
NAVrts=T_cts+T_res+2×T_sifs+2×T_prop
(4)收到B的CTS(Dj,NAVcts)后,節點A執行:
(a)向CUL表中增加一表項:
CUL[i].host=B;
CUL[i].ch=Dj;
CUL[i].rel_time=T_curr+NAVcts;
(b)把數據信道收發機切換到Dj上發送DATA幀,發送完設置超時定時器。
(c)發送廣播幀RES(Dj,NAVres),其中:
NAVres=NAVcts-T_sifs-T_res-T_prop。
若收到的是CTS(T_est)幀,則A退避T_est時間重新發送RTS幀。
(5)非源節點C收到B返回的CTS(Dj,NAVcts)幀時:
(a)向CUL表中增加一表項:
CUL[i].host=B;
CUL[i].ch=Dj;
CUL[i].rel_time=T_curr+NAVcts
若收到的是CTS(T_est),不做任何處理。
(6)非目的節點收到來自A的廣播幀RES(Dj,NAVres)時,向CUL表中增加一項:
CUL[i].host=B;
CUL[i].ch=Dj;
CUL[i].rel_time=T_curr+NAVres
(7)當收到A的DATA幀時,B返回ACK幀:
(a)檢查DATA幀的Itrp位是否為0,若是,則回復ACK幀后終止通信。
(b)檢查DATA幀的Seq位,確認是否為重發幀,再根據情況決定是否丟棄DATA幀。
(c)根據DATA幀的Ndl域值,在回復ACK幀后設置超時定時器,若Ndl值為0,表示源節點數據發送完畢,回復ACK后結束通信。若DATA幀錯誤或定時器超時回復ACK(Ack(0))以示重傳。
(8)當收到節點B的ACK幀時,A回DATA幀:
(a)若ACK幀中Ack位為0,則重傳上一條DATA幀,其中Seq位保持不變。
(b)計算下一條數據傳輸完成后立即結束本次通信時刻會不會超過NAVcts值表示的時刻,若超過,回復DATA幀中Itrp位置1,就此終止通信。
若ACK幀錯誤或者定時器超時,則重傳上一條DATA幀。
本協議最大的優點在于建立發送鏈表,結合自動重傳請求技術,實現連續的幀交換過程,減少了控制幀交換次數,既增加數據信道上的通信時間,又減少了控制信道上的沖突。
4 仿真結果分析
在相同的場景中,從吞吐量、分組平均時延兩方面比較本文協議和DCA協議的性能。仿真條件:在3 km×3 km的范圍內放置50個節點,最大通信距離為300 m,仿真時間為400 s,分組長度1 024 B,發包率服從Poisson分布,其中實時業務分組隨機產生,數據分組幀間隔50 ?滋s,實時分組幀間隔20 ?滋s。仿真結果對比如圖7、圖8所示。
DCA協議中,每條數據發送前需要進行一次信道預約,而本文協議實現了數據信道上的連續幀交換過程,一次信道預約可以完成多個分組交換,既大大避免了控制信道上的沖突,又提高了數據信道上的平均通信時間,系統的吞吐量和平均時延特性得到明顯改善。同時,本文協議給實時業務規定較高的優先級和較小的幀間隔時間,可以保證先于普通數據分組接入信道,平均時延顯著低于數據分組,因此可以從一定程度上為實時業務提供QoS保障。
本文提供了一種支持QoS保障的Ad hoc網絡多信道MAC協議,給不同種類的業務劃分不同的優先級和幀間隔,以保證高優先級業務較早地接入信道。同時把高層數據按其目的地址的不同建立發送鏈表。采用自動重傳技術,實現了數據信道上連續的幀交換過程,大大減少了控制信道上的沖突,提高了數據信道上的平均通信時間,系統吞吐量和時延特性得到明顯改善。
參考文獻
[1] 鄭少仁,王海濤,趙志峰,等.Ad hoc網絡技術[M].北京:人民郵電出版社,2005.
[2] RAMANATHAN R, REDI J. A brief overvirew of Ad hoc network: challenges and directions[J]. IEEE Communication Magazine, 2002,40(5):20-22.
[3] SO J, VAIDYA N. A multi-channel MAC for Ad hoc wireless networks[J]. Dept. of Electrical and Computer Engineering, 2003(1):254-257.
[4] JIN K T, CHO D H. Multi-code MAC for multi-hop wireless ad hoc network[C]. Vehicular Technology Conference 2002 Proceedings, USA. 2002,2:1100-1104.
[5] WU Shih-Lin, TSENG Yu-Chee, LIN Chih-Yu, et al. A new multi-channel MAC protocol with on-demand channel assignment for mobile Ad hoc networks[C]. Dallas: in Proc. of the International Symposium on Parallel Architectures, Algorithms and Networks(I-SPAN), 2000: 232-237.