傳統(tǒng)的AODV(Ad-hoc On-demand Distance Vector)路由協(xié)議只以路由跳數(shù)為度量,沒有考慮到鏈路穩(wěn)定情況,因此,無法更好地適應(yīng)節(jié)點(diǎn)高速移動(dòng)的網(wǎng)絡(luò)環(huán)境。
為此,提出了一種改進(jìn)的AODV路由協(xié)議,即IMAODV(Improved AODV)路由協(xié)議。該協(xié)議主要從路由度量值、HELLO消息的發(fā)送頻率、鄰居節(jié)點(diǎn)的監(jiān)聽方式等幾個(gè)方面對(duì)AODV進(jìn)行改進(jìn),使之在移動(dòng)網(wǎng)絡(luò)中具有較好的擴(kuò)展性和魯棒性。仿真結(jié)果表明,IMAODV協(xié)議能夠較好地適應(yīng)高速移動(dòng)的網(wǎng)絡(luò)環(huán)境,并在一定程度上降低網(wǎng)絡(luò)時(shí)延和增加網(wǎng)絡(luò)吞吐量。
移動(dòng)自組網(wǎng)(MANET)是由一系列移動(dòng)終端組成的無固定基礎(chǔ)設(shè)施的多跳自組織網(wǎng)絡(luò)系統(tǒng)[1],其拓?fù)浣Y(jié)構(gòu)因?yàn)楣?jié)點(diǎn)電量不足或是移動(dòng)而變化,所以MANET的路由協(xié)議與傳統(tǒng)網(wǎng)絡(luò)的路由協(xié)議有著很大的區(qū)別。
目前,移動(dòng)網(wǎng)絡(luò)中較成熟、較典型的路由協(xié)議有DSDV、DSR、AODV、ZRP等[2]。其中,AODV路由協(xié)議[3]是一種經(jīng)典的按需路由協(xié)議,它在一定程度上比其他協(xié)議有較小的路由開銷和更好的擴(kuò)展性能,但是這種路由協(xié)議在網(wǎng)絡(luò)拓?fù)漕l繁變化的情況下,路由斷鏈的幾率很大,其網(wǎng)絡(luò)性能下降很快,無法保證較高要求的服務(wù)質(zhì)量。
針對(duì)高速移動(dòng)自組網(wǎng)的特性,本文提出一種基于AODV的改進(jìn)路由協(xié)議,即IMAODV,它在路由度量值、斷鏈修復(fù)策略以及HELLO消息機(jī)制上做了修改,使之能有效地降低網(wǎng)絡(luò)延遲,提高網(wǎng)絡(luò)的吞吐量。通過NS2仿真可以看到,本文提出的IMAODV路由協(xié)議與傳統(tǒng)的AODV路由協(xié)議相比具有一定的優(yōu)勢:它既能降低中高速移動(dòng)自組網(wǎng)的網(wǎng)絡(luò)延時(shí),又能在一定程度上提高網(wǎng)絡(luò)吞吐量;同時(shí),IMAODV路由協(xié)議能夠較好地適應(yīng)無線網(wǎng)絡(luò)環(huán)境,有效提高網(wǎng)絡(luò)性能。
1 IMAODV路由算法
1.1 AODV
傳統(tǒng)自組網(wǎng)路由協(xié)議可分為主動(dòng)路由協(xié)議和按需路由協(xié)議[4],由于移動(dòng)自組網(wǎng)存在著動(dòng)態(tài)多變特性,主動(dòng)路由協(xié)議應(yīng)用在移動(dòng)網(wǎng)絡(luò)中有著明顯的缺陷,所以實(shí)際中經(jīng)常使用的都是按需路由協(xié)議[5]。
AODV是Ad-hoc網(wǎng)絡(luò)的經(jīng)典路由協(xié)議,它是由路由發(fā)現(xiàn)和路由維護(hù)組成。路由發(fā)現(xiàn)過程如圖1所示。而在路由維護(hù)中,節(jié)點(diǎn)通過周期性地發(fā)送HELLO包維持與鄰居節(jié)點(diǎn)的連接,若一段時(shí)間后還未收到鄰居節(jié)點(diǎn)的HELLO包,則開始鏈路修復(fù)過程。若本節(jié)點(diǎn)離目的節(jié)點(diǎn)較近,則進(jìn)行本地修復(fù),發(fā)送RREQ進(jìn)行路由重建,當(dāng)中間節(jié)點(diǎn)有到不可達(dá)節(jié)點(diǎn)的有效路由或者不可達(dá)節(jié)點(diǎn)收到此RREQ后就發(fā)送一個(gè)路由回復(fù)RREP給源節(jié)點(diǎn),這樣路由就得到了重建。若鏈路修復(fù)失敗,則節(jié)點(diǎn)向所有的鄰居節(jié)點(diǎn)廣播RERR包,RERR包中的不可達(dá)節(jié)點(diǎn)列表不僅包括了鏈路斷開的鄰居節(jié)點(diǎn),還包括了以此鄰居節(jié)點(diǎn)作為下一跳的所有目的節(jié)點(diǎn)。通過RERR的廣播,其他節(jié)點(diǎn)便知道鏈路斷開了,當(dāng)此包傳到源節(jié)點(diǎn)時(shí),將進(jìn)行新一輪的路由發(fā)現(xiàn)。
1.2 IMAODV路由算法
AODV雖然也能適應(yīng)動(dòng)態(tài)變化的網(wǎng)絡(luò),但是它的機(jī)制并不靈活,不能根據(jù)網(wǎng)絡(luò)環(huán)境動(dòng)態(tài)調(diào)節(jié)發(fā)送頻率,再者路由度量值僅僅考慮了跳數(shù)信息,且路由單一,所以不能滿足移動(dòng)環(huán)境較為復(fù)雜或移動(dòng)速度較高的網(wǎng)絡(luò)環(huán)境。為了更好地滿足移動(dòng)自組網(wǎng)的服務(wù)要求,本文將針對(duì)高速移動(dòng)環(huán)境提出的IMAODV,在AODV協(xié)議的基礎(chǔ)上做出以下改進(jìn),以改善網(wǎng)絡(luò)的吞吐量和平均端到端延遲。
1.2.1節(jié)點(diǎn)度量值的選取
以跳數(shù)為度量的AODV,容易造成大量數(shù)據(jù)通過少量節(jié)點(diǎn)傳輸引起網(wǎng)絡(luò)的阻塞,而導(dǎo)致分組延時(shí)過大,吞吐量下降[6]。為了緩解這種情況,本文在路由度量值的選取中將考慮以下因素:
節(jié)點(diǎn)移動(dòng)速度:節(jié)點(diǎn)的移動(dòng)速度越大,鏈路越不穩(wěn)定,所以在選擇路由時(shí)要選移動(dòng)速度較低的中間節(jié)點(diǎn),避免因節(jié)點(diǎn)移動(dòng)造成斷鏈的路由重啟過程,以降低網(wǎng)絡(luò)開銷。
延遲:路由過程中,延遲越小,數(shù)據(jù)傳輸才能顯示其時(shí)效性。
跳數(shù):跳數(shù)越少,在某種程度上,所消耗的網(wǎng)絡(luò)資源越少。
考慮到節(jié)點(diǎn)的計(jì)算復(fù)雜度,路由度量值:
其中hop代表跳數(shù),nodenum表示網(wǎng)絡(luò)總的節(jié)點(diǎn)數(shù),delay代表上一跳節(jié)點(diǎn)到本節(jié)點(diǎn)的延遲,speed代表本節(jié)點(diǎn)的移動(dòng)速度,max speed代表網(wǎng)絡(luò)中節(jié)點(diǎn)的最大移動(dòng)速度,w1、w2和w3分別代表權(quán)值,其中,w1+w2+w3=1,本協(xié)議中w1、w2和w3的值分別取為0.7、0.2和0.1。當(dāng)metric的值越小,路由鏈路的穩(wěn)定度越高,網(wǎng)絡(luò)延遲越小。
1.2.2 節(jié)點(diǎn)功能的改進(jìn)
傳統(tǒng)AODV中源節(jié)點(diǎn)只保留一條到目的節(jié)點(diǎn)的路由,當(dāng)主路由上的鏈路斷開時(shí),源節(jié)點(diǎn)重新開始進(jìn)行路由發(fā)現(xiàn)幾率較大,容易造成過大的路由開銷和較大時(shí)延。為改善這種情況,本文提出的IMAODV,利用無線通信中廣播信道偵聽到的相鄰節(jié)點(diǎn)發(fā)給其他節(jié)點(diǎn)的RREP信息建立備用路由[7-8],通過增加節(jié)點(diǎn)的功能,使之具有監(jiān)聽路由控制信息的能力。