周 鑫,張衡陽
(1.重慶電子工程職業(yè)學院,重慶401331;2.空軍工程大學,陜西 西安710038)
責任編輯:許 盈
AdHoc網(wǎng)絡是一種由多個移動節(jié)點形成的無線自組織多跳網(wǎng)絡,通常用在一些無固定設(shè)施的通信環(huán)境中,如戰(zhàn)爭、自然災害、臨時會議等場合[1-2]。帶寬是指單位時間內(nèi)鏈路可傳輸?shù)男畔⑷萘慷嗌伲碚髟谛诺乐袀鬟f數(shù)據(jù)的能力大小,近年來,隨著語音、圖像等多媒體業(yè)務應用的日益增多,如何在AdHoc網(wǎng)絡環(huán)境中有效地分配和利用帶寬,提高網(wǎng)絡效率,成為了研究的熱點課題之一。文獻[3]使用探測包測試鏈路飽和的思想來估算帶寬,用最大帶寬減去已用帶寬則為剩余的可用帶寬,這種方法會增加網(wǎng)絡開銷,且不適合節(jié)點移動較快的網(wǎng)絡。文獻[4]采用馬爾科夫鏈對IEEE802.11 DCF進行了建模,并提出了信道吞吐量公式,但并沒有考慮公式中某些參數(shù)的獲得問題,僅適用于理論分析。
移動自組網(wǎng)中的節(jié)點通常根據(jù)路由表進行數(shù)據(jù)的傳輸與轉(zhuǎn)發(fā),AODV協(xié)議是一種按需路由協(xié)議,由于該協(xié)議本身不提供擁塞控制,當網(wǎng)絡負荷較重時,實時業(yè)務如語音、視頻等會產(chǎn)生較大的延時,甚至大量分組被丟棄,導致網(wǎng)絡性能下降。本文提出一種基于帶寬控制策略的AODV改進路由協(xié)議,利用AODV周期性發(fā)送Hello分組包的機制,加入帶寬估算和業(yè)務進入控制策略,使路徑的帶寬能夠滿足業(yè)務的實時要求,提高網(wǎng)絡吞吐量,降低網(wǎng)絡延時和丟包率。
當源節(jié)點想傳輸數(shù)據(jù)至目的節(jié)點而路由表中又沒有相關(guān)路由記錄時,AODV就會廣播RREQ分組查找路由。RREQ分組包含有目的節(jié)點IP地址、源節(jié)點IP地址和RREQ ID等信息。RREQ ID為一遞增的序號,用來判斷當前路由是否為最新以及防止路由環(huán)路[5]。在路由建立過程中,RREQ沿途所經(jīng)過的中間節(jié)點都要建立到源節(jié)點的反向路由;目的節(jié)點收到RREQ分組后,回傳RREP應答分組沿反向路徑直到源節(jié)點,此過程各節(jié)點會依次建立到目的節(jié)點的正向路由。
當節(jié)點收到重復的RREQ分組時,如果后到達的RREQ分組ID比之前收到的RREQ分組ID大或路由跳數(shù)更少,則更新路由信息并回傳RREP分組,否則丟棄該RREQ分組。
當路由失效時,節(jié)點會啟動路由維護過程,即往源節(jié)點發(fā)送RRER分組,源節(jié)點收到后重新發(fā)起路由建立過程,或由中間節(jié)點直接進行本地修復,直到新的路徑產(chǎn)生。
本節(jié)對AODV進行優(yōu)化改進,形成一種基于帶寬控制的改進協(xié)議BAC_AODV(Bandwidth Reservation Control AODV)。主要包括三方面的內(nèi)容:一是帶寬估算;二是信道競爭節(jié)點數(shù)的確定;三是在路由建立過程中加入QoS控制管理。
帶寬估算包括業(yè)務帶寬需求(BWQ)、本節(jié)點剩余帶寬(RBW)最小剩余帶寬的估算(Min_RBW)三部分。
BWQ表示業(yè)務流在網(wǎng)絡中傳輸時需要的帶寬,當源節(jié)點發(fā)起路由尋找時,會在RREQ分組中攜帶該數(shù)值,即
式中:R表示分組產(chǎn)生率,不同的業(yè)務流類型具有不同的R值(如CBR,VBR);TDATA表示分組傳輸時間;C表示物理層傳輸信息時候的速率。
RBW表示節(jié)點自身剩余的帶寬,可通過載波監(jiān)聽的方式計算得到,即
式中:Ti表示節(jié)點在一段TP的監(jiān)聽時間內(nèi),信道呈現(xiàn)為空閑狀態(tài)的時間;C表示物理層傳輸信息時的速率。
對AODV協(xié)議Hello分組格式進行修改,加入自身的RBW值,Hello分組會周期性地廣播給一跳距離內(nèi)鄰居,每個節(jié)點均可獲得其所有鄰居節(jié)點的剩余帶寬N_RBWi。節(jié)點收到所有一跳內(nèi)鄰居節(jié)點的剩余帶寬后,取最小值記為N_RBW,即
將式(2)和式(3)再取最小值,得
式中:RBW_min為最小剩余帶寬,在路徑尋找過程中使用該值進行建立路由的QoS控制管理。
在IEEE802.11無線載波監(jiān)聽機制下,由于隱藏終端的原因,節(jié)點的通信不僅受到通信范圍內(nèi)節(jié)點的影響,也會受到干擾范圍內(nèi)節(jié)點的影響[6]。設(shè)干擾范圍為通信范圍的2倍,如圖1所示,對B節(jié)點而言,1跳鄰居節(jié)點A,F(xiàn),C和2跳鄰居節(jié)點S,D都會影響自己可以使用的帶寬。
定義一個參數(shù)Ncn(帶寬競爭節(jié)點數(shù)目),表示節(jié)點傳輸RREQ時,可能會影響自己占用帶寬的節(jié)點數(shù)目(包含節(jié)點自身),考慮到RREQ是單向傳輸,本文對Ncn做了一種悲觀的估算方法,即
圖1 節(jié)點的通信范圍和干擾范圍
式中:d根據(jù)下一跳是否為目的端進行取值;m表示從源段開始的跳數(shù)。對于d而言,有
對于m而言,設(shè)中間節(jié)點到源節(jié)點的跳數(shù)為h,有m=min(h,2)。
當節(jié)點的路由表沒有去往目的節(jié)點的路由記錄時,則會廣播發(fā)出RREQ分組進行路由發(fā)現(xiàn),BAC_AODV協(xié)議對RREQ分組進行了修改,如圖2所示。
圖2 BAC_AODV修改后的RREQ格式
修改的RREQ分組利用原有的保留字段來攜帶BWQ值,去掉了節(jié)點序列號欄位,采用Flow_ID進行路由尋找和業(yè)務通信。不同的業(yè)務(如音頻,視頻)即使是同一個節(jié)點發(fā)出,其Flow_ID也會不相同。
中間節(jié)點收到RREQ后,將自己的RBW值與所有1跳鄰居節(jié)點的N_RBW取最小值,得最小剩余帶寬RBW_min(詳見2.1小節(jié)所述),并根據(jù)式(8)進行帶寬判斷。
如果滿足該式,則表明該條路徑上的帶寬滿足于業(yè)務帶寬的需要,將相關(guān)信息寫入路由表,否則不轉(zhuǎn)發(fā)該RREQ,回傳RRER分組,該路徑被刪除。
中間節(jié)點如果收到具有相同F(xiàn)low_ID的RREQ,則比較與先到RREQ分組中的跳數(shù),選擇跳數(shù)少的RREQ分組同樣使用式(8)進行QoS控制判斷后再做轉(zhuǎn)發(fā),否則直接丟棄該RREQ。
目的節(jié)點收到RREQ后,回傳RREP到源節(jié)點,RREP分組含有Flow_ID,中間節(jié)點根據(jù)Flow_ID建立業(yè)務去往目的節(jié)點的正向路徑。
BAC_AODV協(xié)議是以源節(jié)點產(chǎn)生的Flow_ID對業(yè)務進行標識,當中間節(jié)點發(fā)現(xiàn)路由無效時,不再進行本地局部修復,而是直接廣播攜帶Flow_ID的RRER分組給周圍鄰居節(jié)點。收到RRER的鄰居,如果其路由表中有此Flow_ID相關(guān)信息欄,則繼續(xù)轉(zhuǎn)發(fā)RRER分組直到源節(jié)點;反之鄰居節(jié)點則不再轉(zhuǎn)發(fā)RRER。源節(jié)點收到RRER后,會重新發(fā)起路由建立過程。
本文采用NS-2.35軟件,模擬在無線自組網(wǎng)環(huán)境下[7],使用VBR流承載MPEG-4視頻業(yè)務,分析比較了在AODV和BAC_AODV兩種路由協(xié)議下網(wǎng)絡所表現(xiàn)出的性能差異。
仿真參數(shù)如下:網(wǎng)絡范圍1 200 m×1 200 m,50個無線通信節(jié)點隨機分布;通信距離250 m,干擾距離500 m;仿真時間200 s,每隔2 s隨機產(chǎn)生一條VBR業(yè)務流,共20條,根據(jù)文獻[8],VBR業(yè)務流的分組產(chǎn)生率R值取102 packet/s,適宜于MPEG-4視頻格式的傳輸;MAC層采用IEEE802.11DCF模式,發(fā)送緩沖隊列值最大為50 packet/s,最大業(yè)務數(shù)據(jù)單元MSDU為1 500 byte。
選取網(wǎng)絡延時(Delay)、網(wǎng)絡吞吐量(Throughput)、分組丟棄率(Dropping rate)和業(yè)務流阻塞率(Blocking rate)為網(wǎng)絡性能指標。其中延時是指發(fā)送端到目的端的時間間隔;吞吐量表示單位時間內(nèi)目的節(jié)點成功收到的數(shù)據(jù)分組;分組丟棄率表示節(jié)點丟棄分組與總數(shù)據(jù)分組的比值;業(yè)務流阻塞率表示被限制進入網(wǎng)絡的業(yè)務流數(shù)。圖3和圖4是VBR業(yè)務流在兩種協(xié)議下的吞吐量對比和延時對比。
圖3 兩種協(xié)議下的吞吐量對比
圖4 兩種協(xié)議下的延時對比
可以看出,業(yè)務流在10條的時候達到飽和,隨著業(yè)務流的增多,AODV協(xié)議的吞吐量會逐漸下降,平均延時明顯增大;由于BAC_AODV采用QoS允許接入控制策略,當節(jié)點負載過重時,會拒絕其他業(yè)務流的進入,從而得到一個比較穩(wěn)定的吞吐量,而在延時方面,BAC_AODV的性能也優(yōu)于AODV協(xié)議。
圖5是兩種協(xié)議下業(yè)務流的阻塞情況比較。AODV協(xié)議沒有建立業(yè)務QoS機制,不具備帶寬和擁塞控制管理功能,即便是網(wǎng)絡負載非常嚴重時,也不會限制業(yè)務流的接入,因此其阻塞率一直為0;而BAC_AODV協(xié)議在業(yè)務到達飽和后,通過帶寬估計和接入控制,會限制后續(xù)業(yè)務流進入網(wǎng)絡。從圖中可以看到,當網(wǎng)絡負載為15條VBR時,阻塞率為16%左右,為20條時,阻塞率為35%。本次模擬場景中,BAC_AODV協(xié)議始終維持網(wǎng)絡中的VBR業(yè)務流數(shù)量在12~13條,之所以阻塞后續(xù)的業(yè)務流,其目的是為了給正在進行通信的業(yè)務流提供有效的帶寬,保障網(wǎng)絡的QoS。
圖5 兩種協(xié)議下的業(yè)務流流阻塞率對比
當分組重傳次數(shù)大于設(shè)定的最大次數(shù)依然無法成功投遞,或分組數(shù)多于發(fā)送緩沖隊列最大值,都會導致分組被丟棄。圖6顯示為AODV和BAC_AODV的分組丟棄率比較。
圖6 兩種協(xié)議的分組丟失率對比
可以看到,隨著業(yè)務流數(shù)量的增加,兩種協(xié)議下的分組丟失率均有不同程度的上升。當網(wǎng)絡中業(yè)務達到飽和后,BAC_AODV會控制新的業(yè)務流進入網(wǎng)絡,避免出現(xiàn)網(wǎng)絡過度擁塞使分組大量被丟棄的情況,因此分組丟棄率保持較低幅度的增長,總體上沒超過15%;而AODV協(xié)議的分組丟失率隨著網(wǎng)絡負載的加重增加非常明顯,甚至超過50%,總體性能表現(xiàn)不如BAC_AODV優(yōu)越。
本文在AODV的基礎(chǔ)上,提出一種基于帶寬估算的QoS路由策略BAC_AODV,利用hello-message包攜帶帶寬信息廣播給周圍鄰居,并以此作為業(yè)務接入網(wǎng)絡的依據(jù)。節(jié)點在收到RREQ后進行控制判斷,使建立的路徑滿足業(yè)務流的帶寬需求。從仿真結(jié)果可以看出,在網(wǎng)絡負載加重的情形下,BAC_AODV協(xié)議能夠更好地控制網(wǎng)絡流量,降緩解網(wǎng)絡擁塞,且網(wǎng)絡吞吐量和延時性能均比原AODV協(xié)議優(yōu)越,提升了網(wǎng)絡效率。
[1]陳林星,曾曦,曹毅.移動Ad Hoc網(wǎng)絡[M].北京:電子工業(yè)出版社,2006.
[2]李鵬,劉宇,李慶華.一種基于剩余能量考慮的Ad Hoc網(wǎng)路由協(xié)議[J].計算機應用,2008,28(2):399-401.
[3]KAZANTZIDIS M,GERLA M.End-to-end versus explicit feedback measurement in 802.11 networks[C]//Proc.the Seventh IEEE Symposium on Computers and Communications.Taormina,Italy:IEEE Press,2002:216-220.
[4]CHEN L,HEINZELMAN W B.QoS-aware routing based on bandwidth estimation for mobile Ad Hoc networks[J].IEEE Journal of Selected Areas on Communications,2005,23(3):115-120.
[5]周希林.一種改進的AODV路由協(xié)議[D].廣州:中山大學,2010.
[6]高凌飛.基于AODV路由協(xié)議的可用帶寬估計算法的研究[D].哈爾濱:哈爾濱工業(yè)大學,2008.
[7]柯志亨,程榮祥,鄧德雋.NS2仿真實驗—多媒體和無線網(wǎng)絡通信[M].北京:電子工業(yè)出版社,2009.
[8]FITZEK F,REISSLEIN M.MPEG-4 and H.263 video traces for network performance evaluation[J].IEEE Network,2001,15(6):40-54.