《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 一種基于AODV路由協(xié)議改進(jìn)的無(wú)線Mesh路由協(xié)議
一種基于AODV路由協(xié)議改進(jìn)的無(wú)線Mesh路由協(xié)議
來(lái)源:微型機(jī)與應(yīng)用2013年第4期
劉邵華1,黃廷磊2,夏 鋒1
(1.桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林541004; 2.桂林電子科技大學(xué) 計(jì)算機(jī)
摘要: 在分析經(jīng)典路由協(xié)議AODV的基礎(chǔ)上,結(jié)合Mesh網(wǎng)絡(luò)的特點(diǎn),提出了一種新的路由協(xié)議AODV-LS。新的路由協(xié)議根據(jù)節(jié)點(diǎn)帶寬以及實(shí)時(shí)負(fù)載量這兩個(gè)參數(shù)計(jì)算出節(jié)點(diǎn)權(quán)重值,根據(jù)節(jié)點(diǎn)權(quán)重值評(píng)估鏈路的性能,根據(jù)鏈路性能選擇最優(yōu)路徑。實(shí)驗(yàn)結(jié)果表明,AODV-LS協(xié)議在數(shù)據(jù)分組投遞率、端到端延時(shí)和標(biāo)準(zhǔn)化路由負(fù)載方面都優(yōu)于AODV。
Abstract:
Key words :

摘  要: 在分析經(jīng)典路由協(xié)議AODV的基礎(chǔ)上,結(jié)合Mesh網(wǎng)絡(luò)的特點(diǎn),提出了一種新的路由協(xié)議AODV-LS。新的路由協(xié)議根據(jù)節(jié)點(diǎn)帶寬以及實(shí)時(shí)負(fù)載量這兩個(gè)參數(shù)計(jì)算出節(jié)點(diǎn)權(quán)重值,根據(jù)節(jié)點(diǎn)權(quán)重值評(píng)估鏈路的性能,根據(jù)鏈路性能選擇最優(yōu)路徑。實(shí)驗(yàn)結(jié)果表明,AODV-LS協(xié)議在數(shù)據(jù)分組投遞率端到端延時(shí)和標(biāo)準(zhǔn)化路由負(fù)載方面都優(yōu)于AODV。
關(guān)鍵詞: AODV;節(jié)點(diǎn)權(quán)重值;分組投遞率;端到端延時(shí)

    無(wú)線Mesh網(wǎng)絡(luò)結(jié)合了Ad Hoc網(wǎng)絡(luò)和傳統(tǒng)固定網(wǎng)絡(luò)的特點(diǎn),具有高性能、低功耗、自組織、自配置的特點(diǎn),因此Mesh網(wǎng)絡(luò)成為家庭網(wǎng)絡(luò)、社區(qū)寬帶網(wǎng)絡(luò)、企業(yè)內(nèi)部網(wǎng)絡(luò)的優(yōu)先選擇[1]。對(duì)于Mesh網(wǎng)絡(luò)來(lái)說(shuō),關(guān)鍵問(wèn)題在于如何實(shí)現(xiàn)高品質(zhì)的路由協(xié)議,協(xié)議不但要能夠及時(shí)應(yīng)對(duì)網(wǎng)絡(luò)拓?fù)涞膭?dòng)態(tài)變化,還要實(shí)現(xiàn)多跳傳輸?shù)馁|(zhì)量服務(wù)。
    Mesh網(wǎng)絡(luò)目前使用的路由協(xié)議基本上都是從Ad Hoc移植過(guò)來(lái)的,AODV作為 Ad Hoc網(wǎng)絡(luò)經(jīng)典的路由協(xié)議,適用于動(dòng)態(tài)的、多變的Ad Hoc網(wǎng)絡(luò),它同多數(shù)其他Ad Hoc路由協(xié)議(如DSR、DSDV等)一樣,采用最短路徑路由算法,但是大量的實(shí)驗(yàn)和實(shí)踐證明了該算法并不適用于無(wú)線Mesh環(huán)境,主要是因?yàn)樗栽垂?jié)點(diǎn)到目的節(jié)點(diǎn)的跳數(shù)作為路由評(píng)價(jià)的標(biāo)準(zhǔn),然而跳數(shù)最少的路徑在實(shí)際中未必是最優(yōu)的[2-3]。如當(dāng)跳數(shù)最少路徑上的節(jié)點(diǎn)嚴(yán)重過(guò)載時(shí),就會(huì)引起大量數(shù)據(jù)包丟失,增加延遲和降低網(wǎng)絡(luò)性能。在Mesh中,由于802.11 MAC采用的是分布式協(xié)調(diào)功能, 在同一時(shí)刻的沖突域內(nèi)只允許兩個(gè)節(jié)點(diǎn)進(jìn)行通信, 另外在沖突域內(nèi)存在隱藏節(jié)點(diǎn)和暴露節(jié)點(diǎn),當(dāng)網(wǎng)絡(luò)負(fù)擔(dān)較重時(shí), 無(wú)線網(wǎng)絡(luò)的性能下降尤為突出,網(wǎng)絡(luò)吞吐性能遠(yuǎn)低于理論值[4-5]。
    由于Ad Hoc路由協(xié)議先天不足,以及Mesh網(wǎng)絡(luò)自身的特殊性,現(xiàn)有的Ad Hoc路由協(xié)議不能滿足Mesh網(wǎng)絡(luò)的要求,因此本文提出了新的路由算法AODV-LS。
1 AODV算法
    AODV是基于DSDV和DSR提出的一種按需路由。AODV協(xié)議當(dāng)中一個(gè)重要的特點(diǎn)就是添加了序列號(hào),可以有效地阻止計(jì)數(shù)無(wú)窮大和路由環(huán)路問(wèn)題。在AODV中每個(gè)節(jié)點(diǎn)維護(hù)一個(gè)路由表來(lái)記錄從路由包中獲得的路由信息。當(dāng)源節(jié)點(diǎn)需要發(fā)數(shù)據(jù)時(shí),會(huì)查看自己的路由表里有沒(méi)有該條路徑,如果有,則按照路由表項(xiàng)中的信息直接轉(zhuǎn)發(fā)數(shù)據(jù);否則發(fā)起一個(gè)路由發(fā)現(xiàn)過(guò)程。首先,源節(jié)點(diǎn)創(chuàng)建一個(gè)RREQ包并廣播,當(dāng)鄰居節(jié)點(diǎn)接收到RREQ包時(shí),該節(jié)點(diǎn)將RREQ包中的跳數(shù)值加1并在自己的路由表中創(chuàng)建一個(gè)反向路由,如果該節(jié)點(diǎn)就是目的節(jié)點(diǎn)或者該節(jié)點(diǎn)存在到達(dá)目的節(jié)點(diǎn)的路由表項(xiàng),則該節(jié)點(diǎn)就向源節(jié)點(diǎn)發(fā)送RREP,否則它只廣播RREQ。
    RREP的傳播是由目的節(jié)點(diǎn)向源節(jié)點(diǎn)單播完成的。當(dāng)一個(gè)節(jié)點(diǎn)收到RREP之后,創(chuàng)建正向路由表項(xiàng),其中包含目的節(jié)點(diǎn)和下一跳節(jié)點(diǎn)。根據(jù)反向路由表繼續(xù)傳播RREP,直到RREP被源節(jié)點(diǎn)接收到。節(jié)點(diǎn)移動(dòng)可以破壞之前的路由,為了增加成功的數(shù)據(jù)傳輸率,本地節(jié)點(diǎn)能夠修復(fù)損壞的鏈路。發(fā)生斷路時(shí),網(wǎng)絡(luò)的上游節(jié)點(diǎn)向目的地發(fā)送RREQ,為了避免環(huán)路,應(yīng)該將RREQ中目的節(jié)點(diǎn)的序列號(hào)加1。若本地修復(fù)成功,目的節(jié)點(diǎn)或者包含目的節(jié)點(diǎn)路由信息的中間節(jié)點(diǎn)創(chuàng)建RREP;如果節(jié)點(diǎn)修復(fù)失敗,則向源節(jié)點(diǎn)發(fā)送一個(gè)RERR包,源節(jié)點(diǎn)則重新創(chuàng)建新的RREQ,重新開(kāi)始路由發(fā)現(xiàn)過(guò)程[6]。
2 改進(jìn)的AODV-LS路由協(xié)議
2.1 AODV-LS路由選擇量度

    AODV-LS中組合量度使用帶寬、緩存飽和度兩個(gè)參數(shù)。本文采用了基于 NAV[5]的統(tǒng)計(jì)來(lái)估算可用帶寬,節(jié)點(diǎn)所在信道的空閑時(shí)間是一個(gè)很重要的參數(shù),由節(jié)點(diǎn)以及鄰居節(jié)點(diǎn)的業(yè)務(wù)量綜合決定,在這段時(shí)間內(nèi)節(jié)點(diǎn)可以成功地傳輸數(shù)據(jù)。Bi=B×Ti/Tc,其中Bi為節(jié)點(diǎn)的實(shí)時(shí)可用帶寬,B為信道帶寬,Tc為觀察時(shí)間,Ti為在觀察時(shí)間內(nèi)的信道空閑時(shí)間。這里還考慮了節(jié)點(diǎn)緩存隊(duì)列飽和度的影響,如果節(jié)點(diǎn)緩沖隊(duì)列已滿,網(wǎng)絡(luò)發(fā)生擁塞會(huì)引起網(wǎng)路性能的急劇下降,例如時(shí)延增大、丟包率增加等。如果在路由發(fā)現(xiàn)時(shí)考慮節(jié)點(diǎn)負(fù)載狀態(tài),將會(huì)降低擁塞,提高網(wǎng)絡(luò)性能。本文定義緩存飽和度為緩存節(jié)點(diǎn)的包的數(shù)量與允許緩存的額定包數(shù)之比,定義為ri=Ci/Cm,其中,Cm為緩沖隊(duì)列最大值,Ci是緩沖隊(duì)列中包數(shù)值。
    節(jié)點(diǎn)負(fù)載越大,緩沖越接近飽和, 其同鄰居節(jié)點(diǎn)間的鏈路則越繁忙, 可用帶寬越少, 因而通信傳輸代價(jià)同時(shí)也就越高。節(jié)點(diǎn)i的鏈路權(quán)重Xi計(jì)算如下:
    Xi=[Bi/B+(1-Rti)+(1-Rgi)]×10
其中,Rti表示發(fā)送緩沖飽和度,Rgi代表接收緩沖隊(duì)列飽和度。并且一條鏈路的關(guān)鍵因素是所有中間節(jié)點(diǎn)權(quán)重的最小值:Xmi=min(X1,X2,X3,X4,…,Xh-1),h為該條路徑的跳數(shù)。若Xmi越大,說(shuō)明該條鏈路負(fù)載越少;Xmi越小,說(shuō)明該條路徑上負(fù)載越大。為了綜合考慮鏈路狀況,還要考慮路由節(jié)點(diǎn)的鏈路權(quán)重之和,即:
    Wj=sum(X1+X2+X3,…,Xh-1)
最后給出路由判定量度組合:
    Pj=?琢×Xmi+(?茁×Wj)/(h-1)
式中?琢、?茁值的選取通過(guò)試驗(yàn)獲得,且?琢+?茁=1。為了盡量避開(kāi)負(fù)載較重的節(jié)點(diǎn),在源節(jié)點(diǎn)到目的節(jié)點(diǎn)之間找到一條負(fù)載較輕的路徑,賦予?琢較大的權(quán)重。
2.2 路由發(fā)現(xiàn)與建立
2.2.1 請(qǐng)求報(bào)文與數(shù)據(jù)報(bào)文

    (1)路由請(qǐng)求報(bào)文RREQ,包括Type,Hops,RequestNo,DestinationIP,OriginatorIP,PreNode,Xmi,Wj。
    (2)路由響應(yīng)報(bào)文RREP,包括Type,Hops,RequestNo,DestinationIP,OriginatorIP,PreNode,RREQSrc,Xmi,Wj。
2.2.2 路由發(fā)現(xiàn)過(guò)程
    每個(gè)節(jié)點(diǎn)都保留一個(gè)路由表, 用來(lái)存儲(chǔ)節(jié)點(diǎn)所需要的路由信息,其表項(xiàng)是一個(gè)向量(Destination,NextHop,Wj,Hops,Pj,S,X,Xmi,LF),其中Destination表示目的網(wǎng)絡(luò),NextHop為到達(dá)目的網(wǎng)絡(luò)的下一跳, Wj為從該節(jié)點(diǎn)到達(dá)目的網(wǎng)絡(luò)的累計(jì)鏈路權(quán)重,Hops為從該節(jié)點(diǎn)達(dá)到目的網(wǎng)絡(luò)的累計(jì)跳數(shù),S為路由發(fā)現(xiàn)發(fā)起的節(jié)點(diǎn),X為路由請(qǐng)求序號(hào),LF為路由表項(xiàng)的生存時(shí)間。
    (1)當(dāng)源節(jié)點(diǎn)s要向目的地d轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),若存在s到d的路由,則轉(zhuǎn)發(fā)數(shù)據(jù)即可,如果不存在s到d的路由信息,則創(chuàng)建RREQ報(bào)文并廣播,RREQ中Type=1,Hops=0,Xmi=0,Wj=0,DestinationIP=d,OriginatorIP=s,Pre-Node=s,RequestNo=(當(dāng)前節(jié)點(diǎn)最新的路由請(qǐng)求序號(hào)+1)。
    (2)當(dāng)節(jié)點(diǎn)k接收到RREQ包時(shí),首先查看自身的權(quán)重值,如果自身的權(quán)重值超過(guò)了規(guī)定的權(quán)重值范圍,則直接扔掉該RREQ報(bào)文,否則創(chuàng)建反向路由向量,并且用RREQ報(bào)文中的值來(lái)填充該路由向量(s,RREQ.PreNode,RREQ.Wj,RREQ.Hops,α×RREQ.Xmi+β×RREQ.Wj/(RREQ.Hops-1),RREQ.RequestNo,RREQ.Xmi,LF)。如果k≠d,并且k中不含有到達(dá)d的向量,則修改RREQ報(bào)文,若RREQ.Xmi<k.Xmi,則RREQ.Xmi=k.Xmi,否則RREQ.Xmi保持不變,RREQ.Hops=RREQ.Hops+1,RREQ.PreNode=k,RREQ.Wj+k.Xmi,修改后的報(bào)文繼續(xù)廣播。如果k=d或者k的路由表中存在到達(dá)d的路徑,則產(chǎn)生回復(fù)報(bào)文RREP,RREP中Type=2,RREP.RequestNo=RREQ.RequestNo,RREP.OriginatorIP=d,RREP.RREQSrc=RREQ.OriginatorIP,RREP.DestinationIP=RREQ.PreNode,如果k=d,則RREP.Hops=0,RREP.Xmi=0,RREP.Wj=0,若k路由表中存在到達(dá)d的向量,則RREP.Hops=RT.Hops,RREP.Xmi=min(K.Xmi,RT.Xmi),RREP.Wj=RT.Wj+k.Xmi(這里假設(shè)RT是該節(jié)點(diǎn)到目的地的向量),構(gòu)造響應(yīng)報(bào)文之后以單播的方式轉(zhuǎn)發(fā)。
    (3)當(dāng)節(jié)點(diǎn)h收到RREP之后,構(gòu)造h到下跳節(jié)點(diǎn)的正向路由向量(d,RREP.PreNode,RREP.Wj,RREP.Hops,RREP.Pj,RREP.RREQSrc,RREP.RequestNo,RREP.Xmi,LF),如果h不是s,則更新RREP繼續(xù)單播下去,直至源節(jié)點(diǎn)s接收到RREP。
    在尋找路由定時(shí)器超時(shí)前,如果源節(jié)點(diǎn)s收到相對(duì)應(yīng)的RREP報(bào)文,則構(gòu)建從s到d的路由向量。如果在定時(shí)器時(shí)間內(nèi)源節(jié)點(diǎn)s收到多個(gè)RREP回應(yīng),本設(shè)計(jì)選擇前3個(gè)做比較。從中選擇鏈路值最大的一個(gè)回應(yīng)。如果出現(xiàn)鏈路值相等的情況,則選擇鏈路最短的一個(gè)??紤]到鏈路的延時(shí)問(wèn)題,接收到3個(gè)RREP包后多余的就直接放棄。

    如果一個(gè)本地修復(fù)請(qǐng)求到期時(shí),則斷路節(jié)點(diǎn)的上游節(jié)點(diǎn)產(chǎn)生RERR報(bào)文,通知源節(jié)點(diǎn)本條路由已斷路,如果需要,重新發(fā)起路由請(qǐng)求。
    (2)節(jié)點(diǎn)過(guò)載的路由維護(hù)。AODV-LS中節(jié)點(diǎn)a發(fā)送的HELLO報(bào)文,還會(huì)計(jì)算a與鄰居的鏈路權(quán)重。當(dāng)權(quán)重值超出規(guī)定的范圍時(shí), 就廣播節(jié)點(diǎn)過(guò)載LRRERR報(bào)文,鄰居節(jié)點(diǎn)b收到LRRERR報(bào)文后,節(jié)點(diǎn)b則繼續(xù)按照(1)中的方式,按節(jié)點(diǎn)a不可達(dá)時(shí)的情況進(jìn)行路由維護(hù)。
3 仿真與分析
    利用NS2(v2.34)對(duì)AODV-LS進(jìn)行仿真,分別對(duì)數(shù)據(jù)包平均端到端延遲、數(shù)據(jù)包轉(zhuǎn)發(fā)率、標(biāo)準(zhǔn)化路由負(fù)載等性能進(jìn)行分析。MAC層采用IEEE802.11標(biāo)準(zhǔn)規(guī)定的分布式協(xié)調(diào)功能,利用CSMA/CA作為傳輸機(jī)制,網(wǎng)絡(luò)帶寬為2 Mb/s,發(fā)送數(shù)據(jù)包的大小為512 B。在仿真過(guò)程中,50個(gè)無(wú)線路由節(jié)點(diǎn)在一個(gè)800 m×800 m的矩形區(qū)域內(nèi)隨機(jī)移動(dòng),移動(dòng)速度分布在0~4 m/s的范圍內(nèi)。數(shù)據(jù)源節(jié)點(diǎn)的個(gè)數(shù)為20,發(fā)包率為每秒分別發(fā)送 1、2、4、7、10 個(gè)包來(lái)產(chǎn)生不同的負(fù)載。分別對(duì)AODV-LS協(xié)議和AODV協(xié)議進(jìn)行模擬仿真,并對(duì)仿真結(jié)果進(jìn)行分析,得到兩個(gè)協(xié)議在不同停留時(shí)間下的數(shù)據(jù)包轉(zhuǎn)發(fā)率、數(shù)據(jù)包平均端到端延遲和標(biāo)準(zhǔn)化路由負(fù)載。
    圖2顯示了網(wǎng)絡(luò)中節(jié)點(diǎn)發(fā)包率變化時(shí),AODV、AODV-LS數(shù)據(jù)包轉(zhuǎn)發(fā)率的曲線。結(jié)果表明在網(wǎng)絡(luò)負(fù)載很小時(shí),AODV、AODV-LS都有較高的、相近的數(shù)據(jù)轉(zhuǎn)發(fā)率。而當(dāng)網(wǎng)絡(luò)負(fù)載增加時(shí),AODV-LS的性能提高十分明顯。這是因?yàn)锳ODV-LS盡量避開(kāi)負(fù)載較重的節(jié)點(diǎn),選擇負(fù)載較輕的路徑傳輸數(shù)據(jù),間接地提高了整個(gè)網(wǎng)絡(luò)的吞吐量。

 

 

    圖3顯示分組平均端到端時(shí)延的變化曲線,節(jié)點(diǎn)發(fā)包率較小時(shí),AODV-LS與AODV平均端到端延遲相近,但隨著節(jié)點(diǎn)發(fā)包率的增加,AODV-LS延遲明顯小于 AODV。當(dāng)網(wǎng)絡(luò)負(fù)載增大時(shí),AODV-LS試圖找到一條鏈路狀況最好的路徑,繞過(guò)堵塞的節(jié)點(diǎn),減小了擁塞等待時(shí)間。

    本文針對(duì)Mesh網(wǎng)絡(luò)自身的特點(diǎn),對(duì)AODV算法做了改進(jìn),提出了新的AODV-LS路由協(xié)議,該協(xié)議采用節(jié)點(diǎn)權(quán)重值作為路由建立標(biāo)準(zhǔn)。實(shí)驗(yàn)結(jié)果表明,由于采用了權(quán)重值作為路由判據(jù),整個(gè)網(wǎng)絡(luò)的吞吐性能、包轉(zhuǎn)發(fā)率、端到端延時(shí)等方面都要優(yōu)于AODV,體現(xiàn)了良好的性能。
參考文獻(xiàn)
[1] AKYILDIZI F,WANG X D,WANG W L.Wireless Mesh networks:Asurvey[J].Computer Networks,2005,47(4):445-487.
[2] WAHARTE S,BOUTABA R,IRAQI Y,et al.Routing protocols in wireless mesh networks:challenges and design considerations[J].Springer Multimed.Tool Appl.2006,31(3):285-303.
[3] 符云清,王松健,吳中福.基于鏈路狀態(tài)加權(quán)的無(wú)線Mesh網(wǎng)絡(luò)路由協(xié)議[J].計(jì)算機(jī)研究與發(fā)展,2009,46(1):137-143.
[4] JUN J,SICHITIU M L.MRP:wireless mesh networks routing protocol[J].Comput.Commun,2008,31(7):1413-1435.
[5] CHEN L,HEINZELMAN W B.QoS-aware routing based on bandwidth estimation for mobile Ad Hoc networks[J].IEEE Journal on Areas in Communications,2005,23(3):561-572.
[6] PERKINS C E,ROYER E M.Ad-Hoc on-demand distance  vector routing(AODV)[C].RFC 3561,2003.
[7] 柯志亨,程榮祥,鄧德雋.NS2仿真實(shí)驗(yàn)——多媒體和無(wú)線網(wǎng)絡(luò)通信[M].北京:電子工業(yè)出版社,2009.

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