aodv即ad-hoc on-demand distance vector routing,ad-hoc就是多跳的、無中心的無線子組網路(節點是移動的),整個意思就是無線子組網按需式距離向量路由協議,比較拗口(這些路由協議自己翻譯起來都特別拗口)。 aodv是基於dsdv,改進點在於,aodv是按需建立路由,不需要儲存和維護到網路中所有目的位址的路徑。
aodv起初的提議可以被稱為純按需路由獲取協議,節點不需要依賴動態路徑或者維持路由資訊,並且,乙個節點不會聯絡和維持到另乙個節點的路徑,直到這兩個節點需要進行聯絡。或者除非這個節點作為中間**站提供服務。整個協議的過程分為以下幾個部分。
當乙個節點需要給網路中的其他節點傳送資訊時,如果沒有到達目標節點的路由,則必須先以多播的形式發出rreq(路由請求)報文。rreq報文中記錄著發起節點和目標節點的網路層位址,鄰近節點收到rreq,首先判斷目標節點是否為自己。如果是,則向發起節點傳送rrep(路由回應);如果不是,則首先在路由表中查詢是否有到達目標節點的路由,如果有,則向源節點單播rrep,否則繼續**rreq進行查詢。
在路由表條目中,還有乙個route request expiration timer,設定這個引數是為了讓不在路徑上的節點,丟棄這個路由資料。此外還有乙個route caching timeout ,用來判斷什麼時候路由已經無效。此外,活躍節點的位址也會被保留,如果某路由斷了,就會找到其他活躍的鄰居節點。
不在活動路徑上的節點的移動不會影響到到該路徑的目的地的路由。如果源節點在活動會話期間移動,它可以重新啟動路由發現過程,以建立到目標的新路由。當目標節點或某些中間節點移動時,將向受影響的源節點傳送乙個特殊的rrep。週期性的hello訊息可用於確保對稱鏈結,以及檢測鏈結失敗。或者,使用鏈路層確認(llacks)可以檢測到此類故障,而且延遲要小得多。如果嘗試將資料報**到下一跳失敗,也會指示鏈結失敗。一旦無法到達下一跳,中斷的上游節點將傳播乙個具有新序列號(即,乙個大於先前已知序列號1的序列號),並對所有活動的上游鄰居跳轉計數為1。這些節點隨後將該訊息**給它們的活動鄰居,以此類推。
節點通過兩種方式之一來了解它們的鄰居。每當節點接收到來自鄰居的廣播時,它都會更新其本地連線資訊,以確保它包含這個鄰居。如果節點在hello時間間隔內沒有向其所有活動下游鄰居傳送任何資料報,則它將向其鄰居廣播一條hello訊息。hello訊息幀就是ttl=1時的reep幀,hello訊息幀用於檢測活躍路徑上相鄰節點的鏈結狀況。只有當某節點位於某活躍路徑之上時,他才能傳送hello訊息幀。活躍路徑節點以hello_interval為週期傳送hello訊息。在delete_period的時間內沒有收到來自鄰居節點的hello訊息,則認為該鏈路失效;發起一次指向該鄰居節點的區域性修復,路由修復超時以後,路有錯誤資訊rerr向源節點和目的節點傳送,rerr在傳播過程中,各中間節點刪除該失效路徑上相應的路由資訊。
aodv路由協議大體就是這樣,在移動自組網中,通過廣播和回應的方式確定路徑,同時能夠確保節點移動或者消失的時候能夠重新選擇路徑,更新路由表。
aodv協議功能
在ns2.27中,aodv路由協議主要包括以下幾個元件 1 協議實體 2 路由表 3 定時器 1 廣播定時器 2 週期hello報文廣播定時器 3 用於鄰居管理的定時器 4 用於路由快取的定時器 5 用於本地修復的定時器 6 快取廣播id的定時器 4 日誌記錄器 5 路由快取佇列 首先來看協議從接收...
AODV協議分析
1 aodv簡介 aodv ad hoc on demand distance vector routing 是由nokia研究中心的charles e.perkins和加利福尼亞大學的elizabeth m.belding roryer等共同開發,已經被 ietf manet工作組於2003年7月...
aodv包頭分析 上
aodv路由協議提供了乙個特定的頭部,在aodv packet.h裡面 general aodv header shared by all formats struct hdr aodv inline static hdr aodv access const packet p 在結構體hdr aod...