何綿祿,褚 偉,劉輝舟
(合肥工業(yè)大學(xué)管理學(xué)院,合肥230009)
AODV路由協(xié)議的研究和改進(jìn)
何綿祿,褚 偉,劉輝舟
(合肥工業(yè)大學(xué)管理學(xué)院,合肥230009)
針對移動Ad-hoc網(wǎng)絡(luò)中存在路由不穩(wěn)定、數(shù)據(jù)丟包率高的問題,提出一種基于節(jié)點(diǎn)信號強(qiáng)度的AODV路由協(xié)議AODV-SS,該協(xié)議在原路由協(xié)議的基礎(chǔ)上增加了節(jié)點(diǎn)的信號強(qiáng)度和路由警告消息機(jī)制,將節(jié)點(diǎn)的信號強(qiáng)度作為建立路由的一個參照指標(biāo),當(dāng)節(jié)點(diǎn)的信號強(qiáng)度較低時將不考慮該節(jié)點(diǎn),尋找信號強(qiáng)度好的節(jié)點(diǎn)作為中間節(jié)點(diǎn)。在已建立好的路由中,若某個節(jié)點(diǎn)的信號強(qiáng)度低于一定的值時,將發(fā)出一個路由警告通知上游節(jié)點(diǎn)和源節(jié)點(diǎn)重新尋找新的路徑。NS2仿真實驗結(jié)果表明,當(dāng)節(jié)點(diǎn)信號強(qiáng)度低于臨界點(diǎn)時,改進(jìn)路由協(xié)議的丟包率比AODV路由協(xié)議低,路由更加穩(wěn)定。
移動自組織網(wǎng)絡(luò);AODV協(xié)議;路由請求;路由維護(hù);信號強(qiáng)度
Ad-hoc在拉丁語里面是“特別的”的意思,所以移動Ad-hoc網(wǎng)絡(luò)[1]是一種特殊的網(wǎng)絡(luò)結(jié)構(gòu),它是一種自組織網(wǎng)絡(luò),具有多跳、沒有中心等特點(diǎn)。網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都能夠?qū)⑾⑥D(zhuǎn)發(fā),因此Ad-hoc網(wǎng)絡(luò)中的每個節(jié)點(diǎn)具有路由器的功能,可以負(fù)責(zé)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和路由信息的更新維護(hù),以及對數(shù)據(jù)報進(jìn)行轉(zhuǎn)發(fā)的功能,也可以作為主機(jī)維護(hù)網(wǎng)絡(luò)中的節(jié)點(diǎn)連接,完成對移動終端的基本功能。
由于Ad-hoc網(wǎng)絡(luò)結(jié)構(gòu)的特殊性,其與普通的網(wǎng)絡(luò)結(jié)構(gòu)相比具有如下的特點(diǎn)[2]:
(1)無中心:Ad-hoc網(wǎng)絡(luò)中的每個節(jié)點(diǎn)都具有路由器的功能,并沒有一個嚴(yán)格意義上的控制中心。所有的節(jié)點(diǎn)都是平等的,網(wǎng)絡(luò)的路由協(xié)議采用的是分布式的控制方式,使得整個網(wǎng)絡(luò)具有很強(qiáng)的穩(wěn)定性,任何節(jié)點(diǎn)的加入、離開或者發(fā)生故障,都不會影響整個網(wǎng)絡(luò)的運(yùn)行[3]。
(2)自組織:相對于傳統(tǒng)的網(wǎng)絡(luò),Ad-hoc網(wǎng)絡(luò)的顯著特點(diǎn)就是組網(wǎng)時不需要依賴于任何預(yù)設(shè)的網(wǎng)絡(luò)設(shè)施,每個節(jié)點(diǎn)可以通過分層協(xié)議和分布式算法協(xié)調(diào)的自己行為,自動進(jìn)行網(wǎng)絡(luò)的組建,節(jié)點(diǎn)運(yùn)行時,自動形成一個獨(dú)立的網(wǎng)絡(luò)。
(3)多跳路由。Ad-hoc網(wǎng)絡(luò)中的每個節(jié)點(diǎn)都可以轉(zhuǎn)發(fā)數(shù)據(jù)包,所以當(dāng)一個節(jié)點(diǎn)需要和它的信號覆蓋范圍外的節(jié)點(diǎn)通信時,就可以通過中間節(jié)點(diǎn)的數(shù)據(jù)報轉(zhuǎn)發(fā)功能建立路由。
(4)動態(tài)拓?fù)?。Ad-hoc網(wǎng)絡(luò)中的每個節(jié)點(diǎn)都可以隨時的添加和刪除,會使網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)隨時發(fā)生變化。
目前移動Ad-hoc網(wǎng)絡(luò)中的路由協(xié)議比較多,在眾多的路由協(xié)議中AODV更能適應(yīng)Ad-hoc網(wǎng)絡(luò)的特點(diǎn)。但是由于移動Ad-hoc網(wǎng)絡(luò)中的節(jié)點(diǎn)移動性比較強(qiáng)等特點(diǎn),造成了網(wǎng)絡(luò)中的路由不穩(wěn)定,數(shù)據(jù)丟包率高,傳統(tǒng)的AODV路由協(xié)議已經(jīng)不能解決在尋找新的路徑過程中造成的數(shù)據(jù)丟包嚴(yán)重的問題。
本文對原AODV路由協(xié)議進(jìn)行了研究和改進(jìn),提出了一種新的路由協(xié)議AODV-SS(Ad hoc Ondemand Distance Vector Routing-Signal Strength),其中引入了路由警告消息機(jī)制,當(dāng)路由中的某一個或幾個節(jié)點(diǎn)的信號強(qiáng)度低于某個值時,就會發(fā)出路由警告,尋找新的路徑,在新的路徑建立起來之前,這條路徑將繼續(xù)維持?jǐn)?shù)據(jù)的傳輸。當(dāng)節(jié)點(diǎn)的信號強(qiáng)度高于一定值時,就會沿長發(fā)送hello包的間隔時間。
AODV[4]路由協(xié)議是一種按需路由協(xié)議,是DSDV[5]和DSR[6]兩者綜合的產(chǎn)物,借鑒了DSR的路由發(fā)現(xiàn)機(jī)制和路由維護(hù)機(jī)制,以及DSDV中的跳數(shù)和路由維護(hù)過程中的周期更新機(jī)制,結(jié)合了兩者的優(yōu)點(diǎn),形成了一種優(yōu)秀的按需路由協(xié)議。在一個特定網(wǎng)絡(luò)的可移動節(jié)點(diǎn)中使用本協(xié)議,它能在動態(tài)變化的點(diǎn)對點(diǎn)網(wǎng)絡(luò)中確定一條道目的地的路由,并且具有接入速度快、計算量小、內(nèi)存占用低、網(wǎng)絡(luò)負(fù)荷輕等特點(diǎn)[7]。它在路由表中采用了目的序列號字段,確保了路由在任何時候都不會出現(xiàn)回環(huán),即使路由控制星系出現(xiàn)異常的時候也不活產(chǎn)生回環(huán),有效地避免了傳統(tǒng)網(wǎng)絡(luò)中出現(xiàn)的網(wǎng)絡(luò)回環(huán)和無窮計數(shù)問題。
AODV路由協(xié)議使用了3種消息機(jī)制[7],即路由請求(RREQ)、路由回復(fù)(RREP)和路由錯誤(RERR)。
2.1 AODV路由發(fā)現(xiàn)
AODV是一種按需路由協(xié)議,當(dāng)源節(jié)點(diǎn)需要向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)包時,首先會在路由表中查找是否存在到目的節(jié)點(diǎn)的路由,若已存在該路由,則AODV路由協(xié)議會直接發(fā)送數(shù)據(jù)包到目的節(jié)點(diǎn);反之,AODV路由協(xié)議就會通過廣播RREQ[7]包啟動路由發(fā)現(xiàn)過程,查找并建立相應(yīng)的路由。
在AODV的路由發(fā)現(xiàn)過程中,中間節(jié)點(diǎn)和目的節(jié)點(diǎn)就會通過路由發(fā)現(xiàn)過程中建立的反向路由把RREP[8]包回發(fā)給源節(jié)點(diǎn),其中RREQ分組中的源節(jié)點(diǎn)序列號就是用于維持到源節(jié)點(diǎn)的反向路由。當(dāng)源節(jié)點(diǎn)把一個RREQ分組轉(zhuǎn)發(fā)到不同的目的節(jié)點(diǎn)的過程中所有節(jié)點(diǎn)都要自動創(chuàng)建到源節(jié)點(diǎn)的反向路由,節(jié)點(diǎn)通過收到的第一個RREQ分組的鄰居節(jié)點(diǎn)的地址來建立用于維護(hù)到源節(jié)點(diǎn)的反向路由,這些反向路由會維持一段時間,當(dāng)RREQ分組到達(dá)目的節(jié)點(diǎn)時,目的節(jié)點(diǎn)就會產(chǎn)生RREP分組,RREP分組就會沿著剛剛建立起來的反向路由轉(zhuǎn)發(fā)RREP分組,在RREP分組轉(zhuǎn)發(fā)回源節(jié)點(diǎn)的過程中,沿著這條路徑上的每個節(jié)點(diǎn)都將建立到目的節(jié)點(diǎn)的同向路由。當(dāng)源節(jié)點(diǎn)收到第一個RREP分組后,正向路由建立完成,此時就可以向目的節(jié)點(diǎn)發(fā)送數(shù)據(jù)包。
2.2 AODV路由維護(hù)
2.2.1 HELLO消息
在AODV路由協(xié)議中,當(dāng)路徑建立起來以后,因為Ad-hoc網(wǎng)絡(luò)具有網(wǎng)絡(luò)拓?fù)鋭討B(tài)變化的特點(diǎn),路由中的每個節(jié)點(diǎn)可以隨時的加入或者離開,所以AODV路由協(xié)議中的節(jié)點(diǎn)需要不斷地監(jiān)聽鄰居節(jié)點(diǎn)的控制消息,同時也需要維護(hù)本地鄰居節(jié)點(diǎn)的連接情況,為了實現(xiàn)這個目的,所以AODV路由協(xié)議引入了HELLO消息機(jī)制。
在HELLO消息機(jī)制中,一個節(jié)點(diǎn)通過定期廣播HELLO消息提供連接信息,可以確保鏈路的對稱,同樣也可以用于檢測鏈路是否失效。每當(dāng)一個節(jié)點(diǎn)從鄰居節(jié)點(diǎn)收到一個hello消息,則確保了與鄰節(jié)點(diǎn)有一條有效路由。若不存在的路由,則需要新建。如果一條路由已經(jīng)存在,那么這條路由的生命期應(yīng)該增加。如果存在這條通向鄰居節(jié)點(diǎn)的路由,后來的hello消息包中必須包含節(jié)點(diǎn)最新的目的序列號。當(dāng)前的節(jié)點(diǎn)可以使用這條路由轉(zhuǎn)發(fā)數(shù)據(jù)包。如果通過hello消息創(chuàng)建的路由沒有被其他活動的路由使用,它將擁有一個空的先驅(qū)表,如果鄰居節(jié)點(diǎn)移走或者超時不會觸發(fā)RRER消息。
2.2.2 本地連接維護(hù)
無論什么時候,每一個轉(zhuǎn)發(fā)消息的節(jié)點(diǎn)都應(yīng)該對其與活動下一跳節(jié)點(diǎn)的連接性保持持續(xù)的跟蹤,也應(yīng)該對在最近的ALLOWED_HELLO_LOSS?HELLO_INTERVAL時間內(nèi)曾經(jīng)發(fā)送過Hello消息的鄰居節(jié)點(diǎn)進(jìn)行跟蹤。通過使用一個或多個可用連接或者網(wǎng)絡(luò)層的機(jī)制,節(jié)點(diǎn)可以維護(hù)關(guān)于其與這些活動下一跳節(jié)點(diǎn)之間連接的準(zhǔn)確信息。
2.2.3 路由錯誤,路由超時和路由刪除
由于Ad-hoc的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是動態(tài)的,網(wǎng)絡(luò)中的節(jié)點(diǎn)不可預(yù)測性,導(dǎo)致Ad-hoc網(wǎng)絡(luò)易發(fā)生路由錯誤和連接中斷的情況,因此AODV路由協(xié)議會在以下3種情況下發(fā)出路由錯誤消息,通知前驅(qū)節(jié)點(diǎn)。
(1)當(dāng)傳送數(shù)據(jù)或嘗試路由回復(fù)未果時,如果節(jié)點(diǎn)在路由表中,節(jié)點(diǎn)檢測到某個活動的路由上的下一跳發(fā)生了連接中斷,則發(fā)出RERR消息。
(2)如果節(jié)點(diǎn)接收到了一個數(shù)據(jù)包,本節(jié)點(diǎn)沒有活動路由而且也沒有修復(fù)時,則發(fā)出RERR消息。
(3)如果節(jié)點(diǎn)從鄰節(jié)點(diǎn)接收到了一個或者多個活動路由的RERR消息時,則發(fā)出RERR消息。
2.3 AODV路由表管理
AODV路由表[9]的數(shù)據(jù)結(jié)構(gòu)中包含了源節(jié)點(diǎn)和目的節(jié)點(diǎn)的序列號,還包含了目的IP地址、網(wǎng)絡(luò)接口索引等其他的有用的信息,這些信息組成了路由項的軟狀態(tài)。例如,路由請求定時器,定時器的目的就是消除一段時間沒有使用的方向路由項。設(shè)置定時器取決于網(wǎng)絡(luò)規(guī)模的大小,另一個重要的參數(shù)與路由表的路由緩存相關(guān)的時間,超過這個時間后,相應(yīng)的路由表變得無效。
AODV路由協(xié)議在執(zhí)行過程中,在用戶層的路由表中,程序定義了各種操作函數(shù),可以輕易地對路由表項進(jìn)行刪除和添加等操作。
改進(jìn)路由協(xié)議的過程如下:
(1)在原AODV路由協(xié)議消息機(jī)制的基礎(chǔ)上添加了路由警告(RWARN)消息機(jī)制,用于通知上游節(jié)點(diǎn)和源節(jié)點(diǎn),這個節(jié)點(diǎn)已經(jīng)不足以維持整條路徑的穩(wěn)定性,需要尋找新的節(jié)點(diǎn)建立新的路由。
(2)在改進(jìn)的AODV路由協(xié)議中添加2個信號強(qiáng)度的臨界點(diǎn),HIGH表示信號強(qiáng)度高于80%的狀態(tài),信號非常好;LOW表示信號強(qiáng)度低于30%的狀態(tài),這時信號就比較不穩(wěn)定。需要重新建立路徑。
(3)鄰節(jié)點(diǎn)收到RREQ分組的處理方法
1)首先檢查該分組是否是由本節(jié)點(diǎn)產(chǎn)生的,如果是,則丟棄。如果這個節(jié)點(diǎn)以前接收過相同的RREQ消息,則比較本節(jié)點(diǎn)的信號強(qiáng)度與路由表項中的信號強(qiáng)度關(guān)系,如果比路由表項中的信號強(qiáng)度強(qiáng),說明2個節(jié)點(diǎn)的相對位置變化了,則更新路由信息,否則,這個節(jié)點(diǎn)就會丟棄這個RREQ分組,不作任何操作。
2)若這個節(jié)點(diǎn)就是目的節(jié)點(diǎn),分析這個節(jié)點(diǎn)的信號強(qiáng)度,若信號強(qiáng)度低于LOW,則發(fā)送RREP回應(yīng)同時發(fā)出來一條路由警告,建立路由,將節(jié)點(diǎn)的相關(guān)信息保存到路由表中,并告訴源節(jié)點(diǎn)這條路徑不穩(wěn)定,在進(jìn)行通信的同時需要重新發(fā)出RREQ消息搜索路徑。
3)如果該節(jié)點(diǎn)不是目的地,而是知道到目的節(jié)點(diǎn)的新路徑,檢查該節(jié)點(diǎn)的信號強(qiáng)度,若當(dāng)前節(jié)點(diǎn)的信號強(qiáng)度低于LOW時,作出響應(yīng)并沿反向路由發(fā)出警告消息,需要重新發(fā)出RREQ路由請求;若信號強(qiáng)度高于LOW,則直接進(jìn)行響應(yīng)。并在源節(jié)點(diǎn)和目的節(jié)點(diǎn)的前驅(qū)列表中分別插入到源節(jié)點(diǎn)和目的節(jié)點(diǎn)的下一跳節(jié)點(diǎn)。
4)如果節(jié)點(diǎn)不是目標(biāo)節(jié)點(diǎn),也不知道到目的節(jié)點(diǎn)的路由,則檢查信號強(qiáng)度,若低于臨界點(diǎn),則繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)包,并沿反向路由發(fā)出路由警告,跳數(shù)加1;否則直接將跳數(shù)加1,繼續(xù)轉(zhuǎn)發(fā)。
(4)AODV-SS路由選擇
當(dāng)中間節(jié)點(diǎn)或者目的節(jié)點(diǎn)把RREP分組回發(fā)到源節(jié)點(diǎn)時,這時所需要的反向路由和同向路由建立起來。然后查看路由表,若路由表中沒有到目的節(jié)點(diǎn)的路由,則把該路由加入到路由表中,若路由表中已經(jīng)存在一條到目的節(jié)點(diǎn)的路由,先根據(jù)式(1)計算出2條路由信號強(qiáng)度的平均數(shù),去掉較大的路由,若平均信號強(qiáng)度相同則,計算根據(jù)式(2)方差,取方差較小的路徑,則將另一條路由標(biāo)記為無效,并刪除。
其中,Si表示的路由中每個節(jié)點(diǎn)的信號強(qiáng)度;n表示目的節(jié)點(diǎn)中跳數(shù);表示路由中的平均信號強(qiáng)度。
(5)AODV-SS路由維護(hù)
與AODV路由協(xié)議相同,AODV-SS也使用hello消息機(jī)制定期廣播HELLO包,在廣播HELO包的同時,檢查節(jié)點(diǎn)的信號強(qiáng)度,如果信號強(qiáng)度高于HIGH時,則沿長HELLO包廣播的間隔時間,這樣可以減少信道的浪費(fèi)。當(dāng)信號強(qiáng)度低于LOW的時候,發(fā)出路由警告,通知鄰節(jié)點(diǎn)重新發(fā)出RREQ消息,尋找信號強(qiáng)度更好的路徑,當(dāng)新的路徑建立起來以后,則刪除原有路徑。
若某個活動節(jié)點(diǎn)突然發(fā)生中斷時,即該節(jié)點(diǎn)的信號強(qiáng)度突然消失,則發(fā)出RERR消息通知前驅(qū)節(jié)點(diǎn)。前驅(qū)節(jié)點(diǎn)或源節(jié)點(diǎn)收到RERR消息,將從路由表中刪除不可達(dá)節(jié)點(diǎn),重新發(fā)送RREQ分組,建立新的路由。
移動Ad-hoc網(wǎng)絡(luò)中的每個節(jié)點(diǎn)相當(dāng)于無線路由器,可以完成數(shù)據(jù)轉(zhuǎn)發(fā)功能,無線網(wǎng)絡(luò)的傳輸速率和數(shù)據(jù)的傳輸?shù)某晒β识寂c無線路由的信號強(qiáng)度有很大的關(guān)系,信號強(qiáng)度越強(qiáng),傳輸成功率就越高,在移動的環(huán)境中,信號強(qiáng)度變化大,存在由強(qiáng)變?nèi)?節(jié)點(diǎn)直接的相互距離增大,所以為了提高數(shù)據(jù)的傳輸成功率,提出了一種基于信號強(qiáng)度的AODV路由協(xié)議AODV-SS。AODV-SS在源協(xié)議基礎(chǔ)上增加了獲取節(jié)點(diǎn)的信號強(qiáng)度函數(shù),在建立鏈路和維護(hù)鏈路的過程中,把相互間的信號強(qiáng)度作為參數(shù),并且添加了RouteWarn(RWARN)作為控制消息。
4.1 節(jié)點(diǎn)信號強(qiáng)度的獲取
改進(jìn)后的AODV路由協(xié)議,其中的關(guān)鍵點(diǎn)就是要獲取每個節(jié)點(diǎn)的信號強(qiáng)度。在Linux環(huán)境下,可以通過對設(shè)備輸入輸出通道進(jìn)行管理的函數(shù)iotcl()來獲取節(jié)點(diǎn)的信號強(qiáng)度。ioctl函數(shù)原型為ioctl(int fd,int command,(char?)argstruct),其中,fd是由socket()系統(tǒng)調(diào)用返回的文件描述符,command的取值為SIOCGIWSTATUS,argstruct為structiwreq。
在AODV路由協(xié)議中添加如下函數(shù):
4.2 路由警告消息格式
路由警告(RWARN)消息格式如圖1所示。
圖1 路由警告消息格式
當(dāng)某個節(jié)點(diǎn)的信號強(qiáng)度低于LOW時,這時候這個節(jié)點(diǎn)已經(jīng)不能滿足數(shù)據(jù)傳輸?shù)陌踩粤?丟包率已經(jīng)開始增加,則需要發(fā)出警告信息給源節(jié)點(diǎn),通知源節(jié)點(diǎn)重新發(fā)出RREQ分組,尋找新的路徑。
4.3 改進(jìn)后路由表的數(shù)據(jù)結(jié)構(gòu)
在原有路由表的數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,添加了下一跳的信號強(qiáng)度,其路由表的數(shù)據(jù)結(jié)構(gòu)如表 1所示[10]。
表1 AODV路由表的數(shù)據(jù)結(jié)構(gòu)
4.4 改進(jìn)的路由回復(fù)
傳統(tǒng)的AODV路由回復(fù)的消息格式中包含的一些主要的信息為跳數(shù)、目的IP地址、目的序列號、源IP地址、源序列號、生命期等。
通過 AODV路由協(xié)議的研究,在源協(xié)議的RREP基礎(chǔ)上,添加了本節(jié)點(diǎn)的信號強(qiáng)度字段,其數(shù)據(jù)格式如表2所示。
表2 路由回復(fù)數(shù)據(jù)格式
4.5 路由網(wǎng)絡(luò)拓?fù)鋱D
AODV-SS路由協(xié)議中,路由發(fā)現(xiàn)的過程如圖2所示,當(dāng)源節(jié)點(diǎn)S需要向目的節(jié)點(diǎn)D發(fā)送數(shù)據(jù)時,源節(jié)點(diǎn)就會向節(jié)點(diǎn)1和節(jié)點(diǎn)4發(fā)出RREQ消息分組,當(dāng)節(jié)點(diǎn)1和節(jié)點(diǎn)4收到RREQ時,若節(jié)點(diǎn)1知道,通向目的節(jié)點(diǎn)D的最新路由,則節(jié)點(diǎn)1沿反向路由發(fā)出RREP作出響應(yīng),并沿著節(jié)點(diǎn)1所知道的路由經(jīng)過節(jié)點(diǎn)2和節(jié)點(diǎn)3到達(dá)目的節(jié)點(diǎn) D建立路由。節(jié)點(diǎn)4將繼續(xù)轉(zhuǎn)發(fā)RREQ分組到節(jié)點(diǎn)5,由節(jié)點(diǎn)5將繼續(xù)轉(zhuǎn)發(fā),最終到達(dá)目的節(jié)點(diǎn)D,目的節(jié)點(diǎn)D將沿反向路由回發(fā)RREP作出響應(yīng),由于節(jié)點(diǎn)D已經(jīng)接受過相同的RREQ分組,此時路由表中將會分析2條路由信號強(qiáng)度的平均值,選擇最優(yōu)的路由。
圖2 路由發(fā)現(xiàn)
在建立路由的過程中,若節(jié)點(diǎn)3的信號強(qiáng)度低于LOW時,則發(fā)出一跳路由警告消息通知上游節(jié)點(diǎn)該路由不穩(wěn)定,需要繼續(xù)尋找新的路由。
AODV-SS路由維護(hù)如圖3所示。當(dāng)圖中路由S-4-5-D最優(yōu)時,則路由已經(jīng)建立加入路由表中。隨著節(jié)點(diǎn)的移動,若中間節(jié)點(diǎn)5的信號強(qiáng)度越來越弱,則節(jié)點(diǎn)5會沿著反向路由發(fā)出路由警告,通知上游節(jié)點(diǎn)和源節(jié)點(diǎn)重新尋找路由,繼續(xù)發(fā)出RREQ分組。當(dāng)節(jié)點(diǎn)2收到節(jié)點(diǎn)1和節(jié)點(diǎn)4的RREQ分組時,比較2個節(jié)點(diǎn)的信號強(qiáng)度,選擇最優(yōu)的,這里選擇節(jié)點(diǎn)1的,丟棄節(jié)點(diǎn)4的RREQ分組。
圖3 路由維護(hù)
在路由建立過程中,當(dāng)每一個節(jié)點(diǎn)收到RREQ分組時,都會檢查節(jié)點(diǎn)本身的信號強(qiáng)度,當(dāng)信號強(qiáng)度比較弱的時候,在建立路由的同時,還需要沿反向路由發(fā)出RWARN消息,通知上游節(jié)點(diǎn)和源節(jié)點(diǎn)要重新發(fā)送RREQ分組,繼續(xù)尋找新的路徑,當(dāng)更穩(wěn)健的路由建立起來后,從路由表中刪除源路由。
為了對AODV-SS路由協(xié)議的性能進(jìn)行分析,采用當(dāng)前比較流行的仿真軟件 NS2[11-12]對 AODV, AODV-SS路由協(xié)議進(jìn)行性能仿真,主要通過仿真得到改進(jìn)后的AODV路由協(xié)議與原路由協(xié)議的丟包率,通過丟包率來衡量路由協(xié)議的性能。
5.1 仿真環(huán)境
實驗采用的仿真環(huán)境為在1 000 m×1 000 m的矩形區(qū)域,隨機(jī)生成50個節(jié)點(diǎn),并針對節(jié)點(diǎn)的信號強(qiáng)度0~100%區(qū)間內(nèi)的節(jié)點(diǎn)的丟包率進(jìn)行仿真實驗,使用Trace文件記錄實驗過程中的數(shù)據(jù)、用gawk程序提取和處理數(shù)據(jù)、用gnuplot工具繪制二維圖對AODV和AODV-SS的丟包率進(jìn)行性能分析。仿真環(huán)境的參數(shù)如表3所示。
表3 仿真參數(shù)及取值
5.2 仿真結(jié)果與分析
本文根據(jù)節(jié)點(diǎn)的不同型號強(qiáng)度對 AODV和AODV-SS路由協(xié)議進(jìn)行的丟包率進(jìn)行仿真測量,測量結(jié)果如圖4所示。
圖4 節(jié)點(diǎn)丟包率
由圖4可知,當(dāng)節(jié)點(diǎn)的信號強(qiáng)度高于30%時,路徑比較穩(wěn)定,AODV和AODV-SS路由協(xié)議的丟包率差別不大,但是當(dāng)信號強(qiáng)度低于30%時,原路由協(xié)議繼續(xù)按照以前的路徑發(fā)包,而改進(jìn)后的路由協(xié)議就開始重新尋找路徑建立新的路由發(fā)包,由圖可見,改進(jìn)后的路由協(xié)議的丟包率明顯低于原路由協(xié)議,性能優(yōu)于AODV路由協(xié)議。
本文對原AODV路由協(xié)議進(jìn)行了研究和改進(jìn),提出了一種新的路由協(xié)議AODV-SS。改進(jìn)的AODV路由協(xié)議加入了信號強(qiáng)度字段和路由警告消息,在建立路徑時,信號強(qiáng)度低于LOW的中間節(jié)點(diǎn)將不作考慮,這樣建立的路徑將更加穩(wěn)定。在路由維護(hù)時,當(dāng)某個節(jié)點(diǎn)的信號強(qiáng)度低于LOW時,將發(fā)出路由警告消息,通知上游節(jié)點(diǎn)和源節(jié)點(diǎn)重新發(fā)送RREQ分組,尋找新的路徑,在新路徑建立起來以前,舊路徑將繼續(xù)用于傳送數(shù)據(jù)。通過改進(jìn)使得建立的路由更加穩(wěn)健,信號傳輸?shù)膩G包率大大減少。
[1] 臧小東.Ad-hoc網(wǎng)絡(luò)路由協(xié)議的改進(jìn)研究[D].南京:南京郵電大學(xué),2013.
[2] Ad-hoc網(wǎng)絡(luò)結(jié)構(gòu)[EB/OL].[2013-10-10].http:// baike.baidu.com/view/28428.htm?fromId=632724.
[3] 陳 玲,王 華.移動 Ad-hoc網(wǎng)絡(luò)路由協(xié)議的研究[J].微計算機(jī)信息,2006,22(3):167-169.
[4] Kumar P,Kumar R.Improved Modified Reverse AODV Protocol[J].International Journal of Computer Applications,2010,12(4):22-26.
[5] 王北光,李立新,謝 濤.移動Ad-Hoc網(wǎng)絡(luò)DSR路由協(xié)議的改進(jìn)[J].計算機(jī)技術(shù)與發(fā)展,2011,21(8): 121-128.
[6] 吳全玉,孫怡寧.井下無線傳感器網(wǎng)絡(luò) AODV和DSDV協(xié)議的仿真對比[J].傳感技術(shù)學(xué)報,2009, 22(10):1515-1518.
[7] Perkins C,Belding E,Royer B,et al.Ad-Hoc on Demand DistanceVector(AODV) Routing[S]. RFC 3561,2003.
[8] 陳曉曙,李 霞.一種高效的Ad-hoc網(wǎng)絡(luò)AODV改進(jìn)路由協(xié)議[J].東南大學(xué)學(xué)報,2003,33(2):127-130.
[9] 張愛民,馬志強(qiáng),易曉蓉.Ad-hoc路由協(xié)議實現(xiàn)技術(shù)[J].計算機(jī)系統(tǒng)應(yīng)用,2011,20(7):165-168.
[10] 徐四委.基于AODV的物聯(lián)網(wǎng)路由協(xié)議的研究[D].沈陽:遼寧大學(xué),2012.
[11] 李 勇,周麗芬.基于NS2平臺的AODV路由協(xié)議仿真研究[J].現(xiàn)代計算機(jī),2013,(3):52-55.
[12] 王 輝.NS2網(wǎng)絡(luò)模擬器的原理和應(yīng)用[M].西安:西北工業(yè)大學(xué)出版社,2008.
編輯 索書志
Research and Improvement of AODV Routing Protocol
HE Mianlu,CHU Wei,LIU Huizhou
(School of Management,Hefei University of Technology,Hefei 230009,China)
This paper improves Ad-hoc On-demand Distance Vector(AODV)routing protocol and proposes AODVSignal Strength(AODV-SS)routing protocol which is based on signal strength of node.The AODV-SS routing protocol increases the warning message of routing and signal strength of node.The signal strength as a reference indicator when it establishes the routing.It does not consider this node if the signal strength of node is lower than critical point when establishing the routing.It finds a node as intermediate node of which the signal strength is better than critical point.In the established route,it sends a warning message of routing to the upstream node and the source node when the signal strength is lower than critical point.Simulation experimental results of NS2 show that the improved routing protocol packet loss rate is lower than AODV routing protocol when the signal is not good,and the route is more stable.
mobile Ad-hoc network;Ad hoc On-demand Distance Vector(AODV)protocol;Route Request(RREQ); route maintaining;signal strength
1000-3428(2015)01-0110-05
A
TP391
10.3969/j.issn.1000-3428.2015.01.020
何綿祿(1988-),男,碩士研究生,主研方向:Ad-hoc網(wǎng)絡(luò),信息化管理;褚 偉,副研究員、博士;劉輝舟,碩士研究生。
2013-11-25
2014-02-21 E-mail:hfuthml@126.com
中文引用格式:何綿祿,褚 偉,劉輝舟.AODV路由協(xié)議的研究和改進(jìn)[J].計算機(jī)工程,2015,41(1):110-114.
英文引用格式:He Mianlu,Chu Wei,Liu Huizhou.Research and Improvement of AODV Routing Protocol[J].Computer Engineering,2015,41(1):110-114.