AODV協(xié)議的路由管理和點(diǎn)評(píng)
在AODV協(xié)議的一些文章中,我們已經(jīng)掌握了它的基本概念和原理以及相應(yīng)的運(yùn)行過程。現(xiàn)在我們來對(duì)它的其他方面進(jìn)行一下探討。首先我們來了解一下有關(guān)于AODV協(xié)議的路由表管理的一些內(nèi)容。希望大家能從中找到參考的資料。
AODV路由表管理
節(jié)點(diǎn)的路由中除了存儲(chǔ)源和目的節(jié)點(diǎn)的序列號(hào)外,還存儲(chǔ)了其他有用的信息,這些信息成為有關(guān)路由項(xiàng)的軟狀態(tài)。與反向路由相關(guān)的是路由請(qǐng)求定時(shí)器,這些定時(shí)器的目的是清除一定時(shí)間內(nèi)沒有使用的反向路由項(xiàng)。定時(shí)器的設(shè)置依賴于自組網(wǎng)的規(guī)模大小,與路由表相聯(lián)系的另外一個(gè)重要的參數(shù)是路由緩存時(shí)間,即在超過這個(gè)時(shí)間之后,對(duì)應(yīng)的路由表就變?yōu)闊o效。
此外,在每一個(gè)路由表中,還要記錄本節(jié)點(diǎn)用于轉(zhuǎn)發(fā)分組的活躍鄰居。如果節(jié)點(diǎn)在最近一次活躍期間(Active-Timeout)發(fā)起或轉(zhuǎn)發(fā)了到某個(gè)目的節(jié)點(diǎn)的分組,那么就可以稱這個(gè)節(jié)點(diǎn)為活躍節(jié)點(diǎn)。這樣,當(dāng)?shù)竭_(dá)某一個(gè)目的節(jié)點(diǎn)的鏈路有問題時(shí),所有與這條鏈路有關(guān)的活躍節(jié)點(diǎn)都可以被通知到。一個(gè)路由表還有活躍鄰居在使用,就可以認(rèn)為是有效的。通過各個(gè)活躍路由項(xiàng)所建立的源節(jié)點(diǎn)到目的節(jié)點(diǎn)的路徑,也就是一條活躍路徑。路由表中的目的節(jié)點(diǎn)序列號(hào),正如在DSDV路由協(xié)議中所使用的那樣,可以在無序分組的傳送和節(jié)點(diǎn)高度移動(dòng)的極端條件下避免路由環(huán)路的產(chǎn)生。
移動(dòng)節(jié)點(diǎn)為每一個(gè)相關(guān)的目的節(jié)點(diǎn)維護(hù)了一個(gè)路由表。每一個(gè)路由表包含以下一些信息:目的地址、下一跳地址、跳數(shù)、目的序列號(hào)及路由項(xiàng)的生存時(shí)間。路由表在每一次被用來傳送一個(gè)分組時(shí),它的生存時(shí)間都要重新開始計(jì)算,也就是用當(dāng)前時(shí)間加上Aetive-Route-Timeout。如果一個(gè)移動(dòng)節(jié)點(diǎn)被提供了到達(dá)某一個(gè)目的節(jié)點(diǎn)的新路由,那么它就會(huì)把這個(gè)新路由的目的序列號(hào)與自己路由表中己有的目的序列號(hào)做比較,并將目的序列號(hào)大的作為到達(dá)目的節(jié)點(diǎn)的路由表。如果目的序列號(hào)相同,則采用到目的節(jié)點(diǎn)所經(jīng)過的節(jié)點(diǎn)數(shù)(跳數(shù))最少的那個(gè)路由。
AODV協(xié)議路由維護(hù)
如果節(jié)點(diǎn)的移動(dòng)不是沿著活躍路徑進(jìn)行的,那么就不會(huì)影響己經(jīng)建立的路由。如果一個(gè)源節(jié)點(diǎn)在活躍路徑上移動(dòng),它就要向目的節(jié)點(diǎn)重新發(fā)起一次路由發(fā)現(xiàn)過程。如果移動(dòng)的節(jié)點(diǎn)是中間節(jié)點(diǎn)或目的節(jié)點(diǎn),那么一個(gè)特殊的RREP分組將轉(zhuǎn)發(fā)到那些受移動(dòng)影響的源節(jié)點(diǎn)。周期性發(fā)送的Hello分組可以用來確保鏈路的對(duì)稱性,并檢測不能用的鏈路。如果不用Hello分組,也可以采用鏈路層通告機(jī)制來報(bào)告鏈路的無效性,這樣可以減少延遲。此外,節(jié)點(diǎn)在嘗試向下一跳節(jié)點(diǎn)轉(zhuǎn)發(fā)分組失敗后,也能檢測出鏈路的不可用性。
一旦一個(gè)節(jié)點(diǎn)的下一跳節(jié)點(diǎn)變得不可達(dá),這時(shí)它就要向利用該損壞鏈路的活躍上游節(jié)點(diǎn)發(fā)送未被請(qǐng)求的RREP(RERR)分組,這個(gè)RREP(RERR)分組帶有一個(gè)新的序列號(hào)(即在目的序列號(hào)上加1),并將跳數(shù)值設(shè)置為二。收到這個(gè)RREP(RERR)分組的節(jié)點(diǎn)再依次將RREP(RERR)分組轉(zhuǎn)發(fā)到它們各自的活躍鄰居,這個(gè)過程持續(xù)到所有的與損壞鏈路有關(guān)的活躍節(jié)點(diǎn)都被通知到為止。源節(jié)點(diǎn)在收到斷鏈的通知后,如果它還要與目的節(jié)點(diǎn)聯(lián)系,它就需要再次發(fā)起新的路由發(fā)現(xiàn)過程。這時(shí),它將會(huì)廣播一個(gè)RREQ分組,這個(gè)RREQ分組中的目的序列號(hào)要在源節(jié)點(diǎn)已知的***目的序列號(hào)之上加1,以確保那些還不知道目的節(jié)點(diǎn)***位置的中間節(jié)點(diǎn)對(duì)這個(gè)RREQ分組做出響應(yīng),從而能保證建立一條新的、有效的路由。#p#
AODV協(xié)議評(píng)價(jià)
總之,AODV是一種距離矢量路由協(xié)議,采用的算法克服了以前提出的一些算法(如DSDV)的缺點(diǎn),具有如下優(yōu)點(diǎn):
(a)基于傳統(tǒng)的距離向量路由機(jī)制,思路簡單、易懂。
(b)支持中間節(jié)點(diǎn)應(yīng)答,能使源節(jié)點(diǎn)快速獲得路由,有效減少了廣播數(shù),但存在過時(shí)路由問題。
(c)節(jié)點(diǎn)只存儲(chǔ)需要的路由,減少了內(nèi)存的需求和不必要的復(fù)制。
(d)快速響應(yīng)活躍路徑上斷鏈。
(e)通過使用目的序列號(hào)來避免路由環(huán)路,解決了傳統(tǒng)的基于距離向量路由協(xié)議存在的無限計(jì)數(shù)問題。
(f)具有網(wǎng)絡(luò)的可擴(kuò)充性。
(g)需要周期性地廣播分組,需要消耗一定的電池能源和網(wǎng)絡(luò)帶寬。與DSDV以及其他持續(xù)存儲(chǔ)更新路由信息的算法相比,AODV需要相對(duì)較長的路由建立時(shí)延,不過AODV協(xié)議采取了以下的一些措施來加以改善。
(a)到某個(gè)目的節(jié)點(diǎn)的路由可以由知道路由的中間節(jié)點(diǎn)進(jìn)行響應(yīng)。
(b)鏈路失效能夠被立即報(bào)告,這樣路由可重新建立。
(c)不活躍的路由在一定時(shí)間后會(huì)被刪除。