AODV協議的運行方式
在使用AODV協議的基礎上,我們需要對它的原理和運行方式有所了解。這也是一個網管必須具備的知識。那么在前面的文章中,我們已經對AODV協議的基礎內容作了介紹,在這里我們主要講解一下它的運行方式。
(a)AODV路由發現
AODV路由協議是一種典型的按需驅動路由協議,該算法可被稱為純粹的需求路由獲取系統,那些不在活躍路徑上的節點不會維持任何相關路由信息,也不會參與任何周期路由表的交換。此外,節點沒有必要去發現和維持到另一節點的路由,除非這兩個節點需要進行通信。移動節點間的局部連接性可以通過幾種方法得到,其中包括使用局部廣播Hello消息。這種算法的主要目的是:在需要時廣播路由發現分組一般的拓撲維護;區別局部連接管理(鄰居檢測)和一般的拓撲維護;向需要連接信息的鄰居移動節點散播拓撲變化信息。
AODV使用廣播路由發現機制,它依賴中間節點動態建立路由表來進行分組的傳送。為了維持節點間的***路由信息,AODV協議借鑒了DSDV中的序列號的思想,利用這種機制就能有效地防止路由環的形成。當源節點想與另外一個節點通信,而它的路由表中又沒有相應的路由信息時,它就會發起路由發現過程。每一個節點維持兩個獨立的計數器:節點序列號計數器和廣播標識。源節點通過向自己的鄰居廣播 RREQ(Route Requests)分組來發起一次路由發現過程。
(b)AODV協議反向路由的建立
在RREQ分組中包含了兩個序列號:源節點序列號和源節點所知道的***的目的序列號。源節點序列號用于維持到源的反向路由的特性,目的序列號表明了到目的地的***路由。當RREQ分組從一個源節點轉發到不同的目的地時,沿途所經過的節點都要自動建立到源節點的反向路由。
節點通過記錄收到的***個RREQ分組的鄰居地址來建立反向路由,這些反向路由將會維持一定時間,一該段時間足夠RREQ分組在網內轉發以及產生的RREP分組返回源節點。當RREQ分組到達了目的節點,目的節點就會產生RREP分組,并利用建立的反向路由來轉發RREP。
(c)AODV協議正向路由的建立
RREQ分組最終將到達一個節點,該節點可能就是目的節點,或者這個節點有到達目的節點的路由。如果這個中間節點有到達目的的路由項,它就會比較路由項里的目的序列號和RREQ分組里的目的序列號的大小來判斷自己已有的路由是否是比較新的。
如果RREQ分組里的目的序列號比路由項中的序列號大,則這個中間節點不能使用己有的路由來響應這個RREQ分組,只能是繼續廣播這個RREQ分組。中間節點只有在路由項中的目的序列號不小于RREQ中的目的序列號時,才能直接對收到的RREQ分組做出響應。如果節點有到目的地的***路由,而且這個RREQ還沒有被處理過,這個節點將會沿著建立的反向路由返回RREP分組。
在RREP轉發回源節點的過程中,沿著這條路徑上的每一個.節點都將建立到目的節點的同向路由,也就是記錄下RREP是從哪一個鄰居節點來的地址,然后更新有關源和目的路由的定時器信息以及記錄下RREP中目的節點的***序列號。對于那些建立了反向路由,但RREP分組并沒有經過的節點,它們中建立的反向路由將會在一定時間(Active-Route-Timeout)后自動變為無效。收到RREP分組的節點將會對到某一個源節點的***個RREP分組進行轉發,對于其后收到的到同一個源的RREP分組,只有當后到的RREP分組中包含了更高的目的序列號或雖然有相同的目的序列號但所經過的跳數較少時,節點才一會重新更新路由信息,以及把這個RREP分組轉發出去。
這種方法有效地抑制了向源節點轉發的RREP分組數,而且確保了***及最快的路由信息。AODV協議中規定,源節點將在收到***個RREP分組后,就開始向目的節點發送數據分組。如果以后源節點了解到的更新的路由,它就會更新自己的路由信息。


















