一、DSDV路由協議
1、概念:一種目的節點序列機理矢量的路由算法。(Destination-Sequenced Distance Vector)
2、組成:該路由爲先應式路由,採用分佈式Bellan-Ford算法。
① 先應式路由也稱表驅動路由,在實際需要前已預先建立好路徑,通過查表找到下一跳鄰居,路徑可以立即使用。但是路由的表規模可能會很大,表中的過時信息也會導致路由錯誤。
② 分佈式Bellman-Ford算法是一種距離矢量算法,每個節點都擁有一張路由表,表中的信息包括目的節點、下一跳節點以及該節點到目的節點的代價距離,並且路由表會在節點間進行交換。
距離矢量算法應用於WSN並不合適,因爲當存在斷鏈時會出現環路問題,導致路由表中的代價距離至無窮大,使得資源被佔用消耗。
3、基本特徵:
① 每個節點都擁有到達所有目的節點的路由信息。
② 路由信息會週期性更新,即使沒有網絡拓撲變化,也存在流量的開銷控制。
③ 會維持一些從來不使用的路由。
4、優點:
① 保持了距離矢量DV算法的簡單性。
② 保證了無環路(引入了序列號機制)。
③ 對拓撲變化反應迅速,通過立即廣播進行更新。
(補充:目的序列號在每次廣播時僅使用偶數進行增加,只有當一個節點不可達時,使用奇數增加,並將路由度量值設置爲無窮大。當更新信息和節點自身信息進行對比確認路由時,將選擇更大序列號的路由,並且把序列號爲奇數的路由視作斷鏈)
二、AODV路由協議
1、概念:一種無線自組網按需距離矢量路由。(Ad hoc On-demand Distant Vector)
2、組成:該路由爲反應式路由,採用按需協議。
① 反應式路由按需進行路由發現和路由維護,源節點發起路由的發現過程,在找到至少一條路由後或已檢驗過所有潛在路由後結束髮現過程。
② 新建立的路由會被維護到發生斷鏈或不再被源節點需要,然後該路由被刪除。
③ 每個路由入口項都有生存時間。
④ 路由的控制消息包括路由請求消息(RREQ)和路由應答消息(RREP)。
3、協議過程 :
① 路由發現:如果源節點無到目的節點的有效路由,它將發生路由發現過程。
-
Step1:源節點創建路由請求消息RREQ,消息包含源節點地址、當前序列號、目的節點地址、目的序列號以及廣播ID。
-
Step2:源節點廣播RREQ,並設置計時器,等待應答消息RREP。
-
Step3:當某個節點收到RREQ時,它會通過廣播ID和源節點IP檢查是否已經接收過(每個節點都會爲收到的RREQ維持記錄:源節點IP地址和廣播ID)。
-
Step4:節點在自身路由表中爲源節點設置反向路由入口項,信息包括源節點IP和序列號、到源節點的跳數和發送RREQ的鄰居IP。(爲了尋找建立路由的路徑)
(注意:如果路由入口項在特定的生存時間內未被使用,該路由信息將被刪除) -
Step5:滿足以下條件,中間節點將響應RREQ,並傳播RREP給源節點。否則該節點將繼續根據路由錶轉發RREQ。
- 節點的路由表中必須擁有到達目的節點的有效入口(未過期)
- 與目的節點關聯的序列號必須大於等於RREQ中攜帶的目的節點序列號
-
Step6:當其它中間節點收到RREP時,將在其路由表中設置一個到達目的節點的轉發路徑入口項,然後轉發RREP,直到源節點。
-
Step7:當源節點第一次收到RREP時,它開始傳輸數據。
(注意:如果RREQ丟失,源節點重新廣播RREQ,重起路由發現過程)
② 路由維護:只要源節點需要,發現的路由將一直被維護。
- 如果源節點發生移動,將重起路由發現過程。
- 如果目的節點或中間節點發送移動,將創建路由差錯消息RERR,它的前驅節點設置其路由標記無效,並重起路由發現過程。
- 鄰居節點週期性交換HEELO消息用來監視鏈路狀態,當路由中有一條鏈路斷開時,靠近源節點的中間節點檢測到並向它發送RERR,然後重起路由發現過程。
- 節點可以重啓,並創建路由環路,在接收到任何節點的RREQ時,該節點更新其序列號。