《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 支持QoS保障的Ad hoc網(wǎng)絡(luò)多信道MAC協(xié)議
支持QoS保障的Ad hoc網(wǎng)絡(luò)多信道MAC協(xié)議
來源:微型機(jī)與應(yīng)用2010年第15期
張香芝,沈明玉
(合肥工業(yè)大學(xué) 計算機(jī)與信息學(xué)院,,安徽 合肥 230009)
摘要: 提出了一種提供QoS保障的多信道MAC協(xié)議,,該協(xié)議把不同種類業(yè)務(wù)劃分優(yōu)先級和幀間隔時間,,以保障優(yōu)先級高的數(shù)據(jù)較早接入信道,,同時把高層數(shù)據(jù)按目的地址的不同建立發(fā)送鏈表,,采用自動重傳技術(shù),,實現(xiàn)數(shù)據(jù)信道上連續(xù)的幀交換過程,。仿真結(jié)果表明,該方法大大提高了數(shù)據(jù)信道利用率,,改善了系統(tǒng)性能,。
Abstract:
Key words :

摘  要: 提出了一種提供QoS保障的多信道MAC協(xié)議,該協(xié)議把不同種類業(yè)務(wù)劃分優(yōu)先級和幀間隔時間,,以保障優(yōu)先級高的數(shù)據(jù)較早接入信道,,同時把高層數(shù)據(jù)按目的地址的不同建立發(fā)送鏈表,,采用自動重傳技術(shù),實現(xiàn)數(shù)據(jù)信道上連續(xù)的幀交換過程,。仿真結(jié)果表明,,該方法大大提高了數(shù)據(jù)信道利用率,改善了系統(tǒng)性能,。
關(guān)鍵詞: 無線自組織網(wǎng)絡(luò);服務(wù)質(zhì)量,;介質(zhì)接入控制協(xié)議,;多信道

    無線自組織網(wǎng)絡(luò)(Ad hoc)是一種具有無中心、自組織,、快速展開和移動等特點的對等式網(wǎng)絡(luò),,又被稱作多跳網(wǎng)絡(luò)(Multi-hop Network)或自組織網(wǎng)絡(luò)(Self-organized Network)[1]。隨著自組網(wǎng)業(yè)務(wù)的多樣化以及逐漸向公用網(wǎng)絡(luò)領(lǐng)域滲透,,服務(wù)質(zhì)量QoS(Quality of Service)保障問題越來越重要,,介質(zhì)接入控制(MAC)協(xié)議是自組網(wǎng)QoS體系中最基本的部分,主要用來管理和協(xié)調(diào)多個用戶共享可用的頻譜資源,,QoS路由和信令都要依賴它,。MAC需要解決兩個問題[2]:如何將頻譜劃分為不同的信道,如何將信道資源分配給不同的用戶,。在Ad hoc網(wǎng)絡(luò)MAC協(xié)議領(lǐng)域,,多信道技術(shù)成為研究熱點,很多的多信道MAC協(xié)議能較好地解決信道爭用,、隱藏終端,、暴露終端[3-4],與單信道技術(shù)相比,,其具有提高系統(tǒng)吞吐量,、降低時延等優(yōu)點[3-5],但是大部分不能為實時業(yè)務(wù)提供QoS保障,。本文結(jié)合多信道DCA[5]協(xié)議信道預(yù)約的思想,,給不同種類的業(yè)務(wù)劃分優(yōu)先級和幀間隔,保證優(yōu)先級高的業(yè)務(wù)較早地預(yù)約數(shù)據(jù)信道,,同時把高層數(shù)據(jù)按目的地址的不同建立發(fā)送鏈表,,實現(xiàn)數(shù)據(jù)信道上連續(xù)的幀交換,改善了系統(tǒng)吞吐量和時延特性,。
1 協(xié)議基本思想
    把整個信道分為1個控制信道和n個數(shù)據(jù)信道,,這些子信道互不重疊且?guī)捪嗟龋總€節(jié)點配置兩部半雙工收發(fā)機(jī),,1個用于控制信道,,1個可在n個數(shù)據(jù)信道間切換使用,。通信雙方通過在控制信道上交換RTS/CTS/RES幀來預(yù)約數(shù)據(jù)信道,然后在數(shù)據(jù)信道上交換DATA/ACK幀進(jìn)行通信,。每個節(jié)點(如A)保存信道使用列表CUL[]和空閑信道列表FCL,。CUL[]表項有3個元素:CUL[i].host是A的一個鄰居地址,CUL[i].ch是被鄰居CUL[i].host占用的數(shù)據(jù)信道,,CUL[i].rel_time指CUL[i].ch信道的釋放時間,。FCL表可由CUL[]計算得出。
    建立發(fā)送鏈表,,采用自動重傳技術(shù),,雙方可實現(xiàn)數(shù)據(jù)信道上連續(xù)的DATA/ACK幀交換過程,直到通信完成或者達(dá)到預(yù)定通信時間,。下面說明協(xié)議中的幾個重要規(guī)則,。協(xié)議中用到的標(biāo)識符含義如表1所示。

1.1 發(fā)送鏈表
    按目的地址的不同把高層數(shù)據(jù)加入到相應(yīng)鏈表中,,發(fā)送數(shù)據(jù)鏈表的結(jié)構(gòu)形式如圖1所示,。

    Hld_Data_Elem是高層數(shù)據(jù)的表示結(jié)構(gòu),pkptr指向高層數(shù)據(jù),,qos是描述分組優(yōu)先級的整數(shù)值,,實時(語音、視頻等)分組比數(shù)據(jù)分組優(yōu)先級高,,ar_time是高層數(shù)據(jù)的到達(dá)時間,。NL[]是鏈表頭結(jié)構(gòu),具有同一目的地址的分組均放在此鏈表中,,Hld_List是鏈表頭指針,,dest是目的地址,T_qos是表示此鏈表中所有分組的平均優(yōu)先級權(quán)值,,由鏈表中所有分組的qos和ar_time值決定:

1.2 控制信道規(guī)程
    在控制信道上交換RTS/CTS/RES幀預(yù)約數(shù)據(jù)信道,,RTS/CTS/RES幀格式如圖2所示。

    RTS幀中的N域表示發(fā)送鏈表中的高層數(shù)據(jù)個數(shù),;Tdl(Total data length)域是N個高層數(shù)據(jù)的總長度,,目的節(jié)點可以結(jié)合N、Tdl域計算數(shù)據(jù)信道上的總通信時間,。Ndl(next data length)域是節(jié)點A當(dāng)前發(fā)送鏈表中下一個要發(fā)送的數(shù)據(jù)長度,,用于節(jié)點B設(shè)置超時定時器。
    要在數(shù)據(jù)信道上實現(xiàn)連續(xù)的幀交換功能,,則在控制幀交換過程中,,網(wǎng)絡(luò)分配矢量NAVcts必須有效地預(yù)測數(shù)據(jù)信道Dj上的通信時間,NAVcts值被設(shè)為發(fā)送鏈表中的數(shù)據(jù)正常交換完成所需要的時間,,NAVcts的計算過程如下:
    源節(jié)點的當(dāng)前發(fā)送鏈表中有4條數(shù)據(jù),,在數(shù)據(jù)信道上正常交換時的傳輸序列如圖3所示,,由此可以推出:
    NAVcts=TdlA+NA×T_ack+2NA×T_prop

其中,若幀交換過程中出現(xiàn)異常需要重傳,,則數(shù)據(jù)信道上的通信時間將會大于NAVcts值,,這種異常情況的處理見下文。
1.3 數(shù)據(jù)信道規(guī)程
    數(shù)據(jù)信道上交換DATA/ACK幀,,DATA/ACK幀格式如圖4所示,。

    DATA幀中的Seq域用于對方節(jié)點辨別到來是否是重復(fù)幀,正常情況下此位按0,、1交替變化,,在重傳時不發(fā)生變化,此位是必要的,,因為節(jié)點超時定時器發(fā)生超時,可能是正確的應(yīng)答幀在鏈路上丟失造成的,,這樣重傳時設(shè)置Seq位不變,,對方節(jié)點便知道是重復(fù)幀而丟棄它;Itrp域是強(qiáng)制中斷位,,正常情況下此位為1,,當(dāng)為0時,表示要求立即停止通信,,之后雙方交換ACK幀結(jié)束本次通信,。
    系統(tǒng)記錄數(shù)據(jù)信道上的通信時間,當(dāng)發(fā)生重傳時,,源節(jié)點在發(fā)送本條數(shù)據(jù)時,,計算發(fā)送鏈表中下一條數(shù)據(jù)正常傳輸結(jié)束的時刻會不會超過NAVcts值表示的時刻,如果超過,,則把Itrp位置0,,強(qiáng)制結(jié)束通信,如圖5中所示,,目的節(jié)點收到DATA(Itrp(0))時,,返回ACK幀,之后結(jié)束通信,。A中未傳完的數(shù)據(jù)依然留在發(fā)送鏈表中,。因此,Itrp位保證了發(fā)生錯誤重傳時,,數(shù)據(jù)信道上總的通信時間不大于NAVcts表示的時間,,既充分利用了信道資源,又及時釋放信道不至于造成沖突,。

2 本文協(xié)議的描述過程
    本文協(xié)議的描述過程如下,,其分組交換時序圖如圖6所示,。

    (1)節(jié)點(如A)發(fā)送鏈表不全為空時,選擇T_qos權(quán)值最大的鏈表作為當(dāng)前發(fā)送鏈表,,其目的地址為節(jié)點B,,在RTS幀前,節(jié)點A做三項檢查:
    (a)保證目的節(jié)點B的數(shù)據(jù)信道收發(fā)機(jī)空閑,。在CUL表中不能有:
    CUL[i].host=B且CUL[i].rel_time>T_curr+(T_rts+T_sifs+T_cts)
    (b)保證本節(jié)點的數(shù)據(jù)信道收發(fā)機(jī)空閑,。在CUL表中不能有:
    CUL[i].host=A且CUL[i].rel_time>T_curr+(T_rts+T_sifs+T_cts)
    (c)保證本節(jié)點A有空閑的數(shù)據(jù)信道。至少一數(shù)據(jù)信道Dj滿足:
    CUL[i].ch=Dj且CUL[i].rel_time<=T_curr+(T_rts+T_sifs+T_cts)
    再把滿足條件的信道記入FCL表,,設(shè)置好NAVrts,、Fcl、N,、Tdl,、Ndl等域,向B發(fā)送RTS幀,。
    (2)收到RTS幀后,,B檢查是否有匹配的空閑數(shù)據(jù)信道,能否滿足FCLA與FCLB有匹配項或者對DjEFCLA有:CUL[i].ch=Dj且CUL[i].rel_time<=T_curr+T_cts存在,。
    (a)若滿足,,選擇一個空閑數(shù)據(jù)信道(如Dj),設(shè)置NAVcts等域,,向A返回NAVcts(Dj,,NAVcts)幀。然后把數(shù)據(jù)信道收發(fā)機(jī)切換到Dj,,準(zhǔn)備接收DATA幀,。
    (b)若不滿足,返回CTS(0,,T_est)幀,,其中T_est是B節(jié)點有空閑信道的最小估計時間。
    (3)當(dāng)非目的節(jié)點收到RTS幀時,,控制信道上執(zhí)行退避,,以避免控制信道上發(fā)生沖突,退避時間為:
    NAVrts=T_cts+T_res+2×T_sifs+2×T_prop
    (4)收到B的CTS(Dj,,NAVcts)后,,節(jié)點A執(zhí)行:
    (a)向CUL表中增加一表項:
       CUL[i].host=B;
       CUL[i].ch=Dj,;
       CUL[i].rel_time=T_curr+NAVcts,;
    (b)把數(shù)據(jù)信道收發(fā)機(jī)切換到Dj上發(fā)送DATA幀,發(fā)送完設(shè)置超時定時器。
    (c)發(fā)送廣播幀RES(Dj,,NAVres),,其中:
    NAVres=NAVcts-T_sifs-T_res-T_prop。
    若收到的是CTS(T_est)幀,,則A退避T_est時間重新發(fā)送RTS幀,。
    (5)非源節(jié)點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)非目的節(jié)點收到來自A的廣播幀RES(Dj,,NAVres)時,向CUL表中增加一項:
       CUL[i].host=B,;
       CUL[i].ch=Dj,;
       CUL[i].rel_time=T_curr+NAVres
    (7)當(dāng)收到A的DATA幀時,B返回ACK幀:
    (a)檢查DATA幀的Itrp位是否為0,,若是,,則回復(fù)ACK幀后終止通信。
    (b)檢查DATA幀的Seq位,,確認(rèn)是否為重發(fā)幀,再根據(jù)情況決定是否丟棄DATA幀,。
    (c)根據(jù)DATA幀的Ndl域值,,在回復(fù)ACK幀后設(shè)置超時定時器,若Ndl值為0,,表示源節(jié)點數(shù)據(jù)發(fā)送完畢,,回復(fù)ACK后結(jié)束通信。若DATA幀錯誤或定時器超時回復(fù)ACK(Ack(0))以示重傳,。
    (8)當(dāng)收到節(jié)點B的ACK幀時,,A回DATA幀:
    (a)若ACK幀中Ack位為0,則重傳上一條DATA幀,,其中Seq位保持不變,。
    (b)計算下一條數(shù)據(jù)傳輸完成后立即結(jié)束本次通信時刻會不會超過NAVcts值表示的時刻,若超過,,回復(fù)DATA幀中Itrp位置1,,就此終止通信。
    若ACK幀錯誤或者定時器超時,,則重傳上一條DATA幀,。
    本協(xié)議最大的優(yōu)點在于建立發(fā)送鏈表,結(jié)合自動重傳請求技術(shù),實現(xiàn)連續(xù)的幀交換過程,,減少了控制幀交換次數(shù),,既增加數(shù)據(jù)信道上的通信時間,又減少了控制信道上的沖突,。
4 仿真結(jié)果分析
    在相同的場景中,,從吞吐量、分組平均時延兩方面比較本文協(xié)議和DCA協(xié)議的性能,。仿真條件:在3 km×3 km的范圍內(nèi)放置50個節(jié)點,,最大通信距離為300 m,仿真時間為400 s,,分組長度1 024 B,,發(fā)包率服從Poisson分布,其中實時業(yè)務(wù)分組隨機(jī)產(chǎn)生,,數(shù)據(jù)分組幀間隔50 ?滋s,,實時分組幀間隔20 ?滋s。仿真結(jié)果對比如圖7,、圖8所示,。

    DCA協(xié)議中,每條數(shù)據(jù)發(fā)送前需要進(jìn)行一次信道預(yù)約,,而本文協(xié)議實現(xiàn)了數(shù)據(jù)信道上的連續(xù)幀交換過程,,一次信道預(yù)約可以完成多個分組交換,既大大避免了控制信道上的沖突,,又提高了數(shù)據(jù)信道上的平均通信時間,,系統(tǒng)的吞吐量和平均時延特性得到明顯改善。同時,,本文協(xié)議給實時業(yè)務(wù)規(guī)定較高的優(yōu)先級和較小的幀間隔時間,,可以保證先于普通數(shù)據(jù)分組接入信道,平均時延顯著低于數(shù)據(jù)分組,,因此可以從一定程度上為實時業(yè)務(wù)提供QoS保障,。
    本文提供了一種支持QoS保障的Ad hoc網(wǎng)絡(luò)多信道MAC協(xié)議,給不同種類的業(yè)務(wù)劃分不同的優(yōu)先級和幀間隔,,以保證高優(yōu)先級業(yè)務(wù)較早地接入信道,。同時把高層數(shù)據(jù)按其目的地址的不同建立發(fā)送鏈表。采用自動重傳技術(shù),,實現(xiàn)了數(shù)據(jù)信道上連續(xù)的幀交換過程,,大大減少了控制信道上的沖突,提高了數(shù)據(jù)信道上的平均通信時間,,系統(tǒng)吞吐量和時延特性得到明顯改善,。
參考文獻(xiàn)
[1] 鄭少仁,王海濤,趙志峰,,等.Ad hoc網(wǎng)絡(luò)技術(shù)[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.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。