一種能量均衡的AODV路由協(xié)議研究
1.引言
無線自組網(Ad Hoc)是由一組帶有無線通信收發(fā)裝置的移動終端節(jié)點組成的一個多跳、臨時和無中心的網絡,具有不依賴于固定基礎設施、抗毀性強、可快速展開等優(yōu)點,適用于軍用和搶險救災的應急通信。
武警部隊是國家保障公民生命財產安全、反對恐怖主義和處置突發(fā)事件的重要力量,要求在事發(fā)地域能夠快速、有效地建立起應急通信保障平臺。本文在AODV路由協(xié)議的基礎上,提出了一種改進的AODV路由協(xié)議,目的在于均衡網絡中每個節(jié)點的負載,提高網路的生存時間。
2.Ad hoc路由協(xié)議
目前針對Ad Hoc網絡提出的路由協(xié)議可以分為表驅動(table driven)路由和按需路由(demand based)兩大類。
表驅動路由協(xié)議又稱為先應式(proactive)路由協(xié)議,它的目的是為網絡中的每一個節(jié)點維護到所有其它節(jié)點的一致和最新的路由信息,因而要求每個節(jié)點維護一個或多個路由表來保存這些信息。當網絡拓撲發(fā)生變化(事件驅動)時,相關的節(jié)點在整個網絡中發(fā)布更新信息,來確保路由信息的一致性。此外,即使網絡拓撲沒有發(fā)生變化,每個節(jié)點也需要周期性地(時間驅動)廣播它的路由表。表驅動路由協(xié)議的優(yōu)點是它減少了節(jié)點獲得路由的延遲,使源節(jié)點能夠立即判斷目的節(jié)點的可達性,缺點是消耗了較多的網絡資源,并且耗費了一些資源來建立和重建那些根本沒有被使用的路由。主要的表驅動協(xié)議有:DSDV、WRP、CGSR、OLSR、FSR.
按需路由協(xié)議又稱為需求驅動(demanddriven)或反應式(reactive)路由協(xié)議。
當采用這種路由協(xié)議時,源節(jié)點只有在需要建立一條到達目的節(jié)點的路由時,才產生一個路由發(fā)現過程來建立相應的路由。建立了路由后,源節(jié)點產生一個路由維護過程來維護該路由,直到到目的端的每一條路由都不可達或者不再需要該路由時。按需路由的優(yōu)點是不需要花費資源來維護無用的路由,但路由發(fā)現過程的費用比較昂貴,而且源節(jié)點事先無法預測能否發(fā)現到目的節(jié)點的路由,此外發(fā)現路由的延遲與表驅動路由協(xié)議中確定的查表時間相比,也是不可預測的。
3.改進的AODV路由協(xié)議
3.1 AODV路由協(xié)議
AODV是一種按需的距離向量路由協(xié)議,它不僅具有按需路由協(xié)議的特點,即網絡中的每個節(jié)點只在需要進行通信時才建立路由,而不用周期性的交換路由信息來獲得到網絡其它節(jié)點的路由信息;還具有距離向量路由協(xié)議的特性,即各個節(jié)點的路由表只維護本節(jié)點到其它節(jié)點的路由,而無需掌握全網拓撲結構。
AODV協(xié)議中有五類控制消息:路由查詢消息(RREQ)、路由回復消息(RREP)、路由錯誤消息(RERR)、RREP應答消息(RREPACK)、HELLO消息。RREO消息主要用于節(jié)點在進行路由查詢時向鄰居節(jié)點發(fā)送的消息,該消息的發(fā)送以廣播的方式實現;RREP消息由目的節(jié)點或具有最新有效路由的中間節(jié)點發(fā)出,用于告知源節(jié)點通往目的節(jié)點的路由;RERR消息由檢測到路由失效的節(jié)點發(fā)出,用于通知所有使用失效路由的節(jié)點,使這些節(jié)點能夠及時的尋找新的路由;RREPACK由源節(jié)點應目的節(jié)點的要求發(fā)出,主要用于應答目的節(jié)點的RREP消息;HELLO消息是一類特殊的RREP消息,該消息用于節(jié)點保持和鄰居節(jié)點之間的有效鏈路。
AODV協(xié)議中規(guī)定節(jié)點保存的數據結構主要有:路由表、先驅表、單向鏈路黑名單(black list)。路由表中保存節(jié)點到每一個目的節(jié)點的路由。先驅表用來保存使用相對應的路由的所有鄰居節(jié)點,使得一旦出現鏈路失效,本節(jié)點能夠快速的通知到相關的鄰居節(jié)點。單向鏈路黑名單主要用于記錄于本節(jié)點間存在單向鏈路的上游節(jié)點。
3.2 改進的AODV路由協(xié)議
在P改進AODV協(xié)議中,只更改了RREQ和RREP消息的數據結構,在RREQ和RREP消息中新增了metric(M)項,修改后AODV的RREQ報文格式如表1、表2所示。
當源節(jié)點發(fā)起路由請求時,由于源節(jié)點與目的節(jié)點肯定會存在于鏈路中,故它們的metric值不作為路徑選擇因子,將RREQ中metric值置0,然后進行廣播。中間節(jié)點收到RREQ后,根據節(jié)點的m值以及是否有目的節(jié)點的路由信息,決定該節(jié)點是否可以作為中間節(jié)點。節(jié)點有三種狀態(tài):癱瘓、擁塞、正常。網絡中每個節(jié)點可根據其負載狀況和可用能量決定轉發(fā)或丟棄收到的RREQ分組。
當一個中間節(jié)點處于“癱瘓”狀態(tài)時,除非它是該鏈路的目的節(jié)點,否則將不處理任何路由請求,丟棄所有收到的RREQ,使其不能再成為中間節(jié)點。當節(jié)點處于“擁塞”狀態(tài)時,只有當它是該鏈路的目的節(jié)點或者其路由表中已經存在了目的節(jié)點的路由信息,才會回復其路由請求,否則將丟棄該路由請求,以此來減少由于RREQ廣播造成的網絡負載和降低路由發(fā)現的端到端時延。當節(jié)點處于“正?!睜顟B(tài)時,首先判斷它是否該路由的目的節(jié)點或路由表中存在目的節(jié)點的路由信息。若是則回復RREP,若否,則比較節(jié)點md值與RREQ中的metric值,若md值大,則更新metric值,轉發(fā)該RREQ包,若metric值大,則直接轉發(fā)RREQ.如果是重復收到RREQ,則按前段所述處理。處理流程如圖1所示。
評論