在談路由協議以前,咱們先來看一下路由器的結構:算法
路由器是一種具備多個輸入端口和多個輸出端口的專用計算機,其任務是轉發分組。數據庫
路由選擇部分的核心是路由處理機,路由處理機能夠根據選定的路由協議構造出路由表,同時常常或按期和相鄰路由器交換路由信息來更新和維護自身的路由表。緩存
分組轉發部分包括一組輸入端口、交換結構和一組輸出端口。交換結構又稱交換組織,它的做用就是根據轉發表把收到的IP數據報從路由器合適的端口轉發出去。交換結構可當作一個在路由器中的網絡。網絡
由於筆者主要研究WMN,因此首先從WMN的路由協議提及,可是WMN路由協議不少都是借鑑有線網絡的路由協議,因此目的在於讓讀者對於網絡層的路由協議有個全局的認識。本篇雖然有一些專業術語,但基本都在上下文能夠找到解釋。若是有些內容遺漏或解釋不到位,請讀者本身搜尋資料,請見諒。分佈式
WMN的動態性,多跳性使得傳統的路由協議不可以很好的處理無線網狀網中拓撲結構和鏈路狀態的快速變化。spa
WMN由Ad hoc網絡發展而來,Ad hoc網絡重點在移動,而WMN重點在無線。目前主流的WMN路由協議也是從Ad hoc網絡路由協議發展而來。主要包括三種類型的路由協議:先驗式路由協議、反應式路由協議、混合式路由協議。計算機網絡
在先驗式路由協議中,不管是否有通訊需求,每一個節點採用週期性的路由分組廣播維護一張包含到達其餘節點的路由信息的路由表,當檢測到網絡拓撲結構變化的時候,節點在網絡中交換並更新路由表。源節點一旦要送分組,能夠當即得到指向目的節點的路由。設計
這類的路由協議一般是經過修改現有的有線路由協議來適應 Ad Hoc無線網絡要求,如經過修改路由信息協議(RIP)獲得的目的節點序列距離矢量協議(DSDV)。 所以這種路由協議的時延較小,可是協議須要大量的路由控制報文路由,協議的開銷較大。 經常使用的先驗式路由協議有 DSDV,HSR,GSR,WRP等。orm
DSDV協議htm
DSDV協議的基本原理是:每個節點維持一個到其它節點的路由表,表的內容爲路由的「下一跳」節點。DSDV創新之處是爲每一條路由設置一個序列號,序列號大的路由爲優選路由,序列號相同時,跳數少的路由爲優選路由。正常狀況下,節點廣播的序列號是單調遞增的偶數,當節點B發現到節點D的路由(路由序列號爲s)中斷後,節點B就廣播一個路由信息,告知該路由的序列號變爲s+l,並把跳數設置爲無窮大,這樣,任何一個經過B發送信息的節點A的路由表中就包括一個無窮大的距離,這一過程直到A收到一個到達D的有效路由(路由序列號爲s+1-1)爲止。
使用分層次的路由選擇方法,可將因特網的路由協議劃分爲:
內部網關協議IGPI(nterior Gateway Protocol):具體的協議有多種,如:RIP和OSPF等。
外部網關協議EGP(External Gateway Protocol):目前使用的協議就是BGP
下面咱們分別介紹:
路由信息協議RIP(RoutingInformation Protocol)
RIP採用距離向量算法,最大優勢是簡單。在實際使用中已經較少適用。RIP協議容許一條路徑最多隻能包含15個路由器。所以,「距離」等於16時即至關於不可達。可見RIP只適用於小型互聯網。對於規模較大的網絡應當使用OSPF協議。RIP不能在兩個網絡之間同時使用多條路由。RIP選擇一條具備最少路由器的路由(即最短路由),哪怕還存在另外一條高速(低時延)但路由器較多的路由。RIP進程使用UDP的520端口來發送和接收RIP分組。RIP分組每隔30s以廣播的形式發送一次,爲了防止出現「廣播風暴」,其後續的的分組將作隨機延時後發送。在RIP中,若是一個路由在180s內未被刷,則相應的距離就被設定成無窮大,並從路由表中刪除該表項。RIP分組分爲兩種:請求分組和響應分組。
RIP協議的特色是:
僅和相鄰路由器交換信息
路由器交換的信息是當前本路由器所知道的所有信息,即本身的路由表
按照固定的時間間隔交換路由信息
RIP協議存在的一個問題是:當網絡出現故障時,要通過比較長的時間才能將此信息傳送到全部的路由器。
開放最短路徑優先OSPF(OpenShortest Path First)
OSPF原理簡單,實現複雜,使用了Dijkstra提出的最短路徑算法SPF。
OSPF最主要特徵是使用分佈式鏈路狀態協議,而不是像RIP那樣的距離向量協議。和RIP協議相比,OSPF的三個要點和RIP都不同。
一、 向本自治系統中全部路由器發送信息。這裏使用的方法是洪泛法(Flooding)
洪泛法(Flooding)
在OSPF協議中,當鏈路狀態發生變化時要用Flooding向全部路由器發送信息。
例如,源節點但願發送一段數據給目標節點。源節點首先經過網絡將數據副本傳送給它的每一個鄰居節點,每一個鄰居節點再將數據傳送給各自的除發送數據來的節點以外的其餘。如此繼續下去,直到數據傳送目標節點或者數據設定的生存期限爲0爲止。
二、 發送的信息就是與本路由器相鄰的全部路由器的鏈路狀態,但這只是路由器所知道的部分信息,「鏈路狀態」包括本路由器和哪些路由器相鄰,以及鏈路的一些度量信息。而RIP協議發送的是到全部路由器的距離和下一跳路由器。
三、 只有當鏈路狀態發生變化時,路由器才向全部路由器用洪泛法發送此信息。
因爲各路由器之間頻繁的交換路由信息,所以全部路由器最終都能創建一個鏈路狀態數據庫,這個數據庫實際上就是全網的拓撲結構圖。RIP協議中的每個路由器雖然知道全部網絡的距離以及下一跳路由器,但殊不知道全網的拓撲結構(只有到了下一跳路由器,才能知道再下一跳應當怎樣走)。
OSPF的更新過程收斂的快是其重要優勢。(「收斂」就是在自治系統中全部的節點都獲得正確的路由選擇信息的過程)
OSPF不用UDP而是直接用IP數據報傳送(其IP數據報首部的協議字段值爲89)
OSPF共有如下5種分組類型:
一、問候(Hello)分組,用來發現和維持鄰站的可達性。
二、數據庫描述(Database Description)分組,向鄰站發出本身鏈路狀態數據庫中全部鏈路狀態項目的摘要信息。
三、鏈路狀態請求(Link State Request)分組,像對方請求發送某些鏈路狀態項目的詳細信息。
四、鏈路狀態更新(Link State Update)分組,用洪泛法對全網更新鏈路狀態。
五、鏈路狀態確認(Link State Acknowledgment)分組,對鏈路更新分組的確認。
爲了使OSPF可以用於規模很大的網絡,OSPF將一個自治系統再劃分爲若干個更小的範圍,叫作區域。下圖表示一個自治系統劃分爲4個區域。每一個區域都有一個32位的區域標誌符(用點分十進制表示)
固然,一個區域也不能太大,一個區域內的路由器最好不超過200個。
劃分區域的好處就是把利用洪泛法交換鏈路狀態信息的範圍侷限於每個區域而不是整個自治系統,這就減小了整個網絡上的通訊量。
外部網關協議BGP
BGP是不一樣AS(Area System)的路由器之間交換路由信息的協議。
邊界網關協議BGP只能是力求尋找一條可以到達目的網絡且比較好的路由(不能兜圈子),而並不是要尋找一條最佳路由。BGP採用了路徑向量路由選擇協議。
通常說來,兩個BGP發言人都是經過一個共享網絡鏈接起來的。一個BGP發言人要與其餘自治系統的BGP發言人交換路由信息,就要先創建TCP鏈接(端口號爲179),而後在此鏈接上交換BGP報文以創建BGP會話,利用BGP會話交換路由信息。
在RFC4271中規定了BGP-4的4種報文:
一、OPEN(打開)報文,用來與相鄰的另外一個BGP發言人創建關係,使通訊初始化。
二、UPDATE(更新)報文,用來通告某一路由的信息,以及列出要撤銷的多條路由。
三、KEEPALIVE(保活報文),用來週期性的證明鄰站的連通性。
四、NOTIFICATION(通知)報文,用來發送檢測到的差錯。
在RFC2918中增長了ROUTER—REQUEST報文,用來請求對等端從新通告。
反應式路由協議
反應式路由協議又稱爲隨選型路由協議或者按需路由協議。是專門針對移動自組織網絡工做組MANET(Mobile Ad-hoc NETworks)環境提出來的。與表驅動路由協議相反,該類協議並不事先生成路由,而是僅在源節點須要時才這樣作。所以,路由表信息是按需創建的,它可能僅僅是整個拓撲結構信息的一部分。
節點並不保存整個網絡的及時準確的路由信息。當源節點要向目的節點發送報文時,源節點在網絡中發起路由查找過程,找到相應的路由後,纔開始發送報文。爲了提升效率,節點能夠將找到的路由保存在緩存中供後續發送使用。反應式路由協議按需路由的特色能夠較好地適應節點移動較爲頻繁的無線網絡環境,節點發生移動後,只須要更新須要發送數據的相關路徑的路由信息便可。
混合式路由協議
混合式路由是將先驗式路由協議和反應式路由協議兩種路由方式的組合,在局部範圍內使用先驗式路由協議,維護準確的路由信息,並能夠縮小路由控制消息傳播的範圍。當目標節點較遠時,則使用反應式路由協議查找發現路由。ZRP協議就是混合式路由協議的表明。
ZRP協議是一種專爲多變的通訊環境(如可重構無線網絡,RwN)設計的平鋪式路由協議。在每一個節點定義一個區域,此區域包含一些節點,這些節點的距離(也就是跳數)在一個限定的範圍以內。這個距離被成爲區域半徑rzone。每個節點只須要知道它的路由區域內的拓撲結構,並且其路由信息隨着區域內的拓撲更新而更新。這樣,儘管網絡很大,但更新僅僅在局部區域進行。因爲距離大於1,這樣區域就有大量重疊。
參考資料:
一、無線網狀網絡的路由協議分析 .TechTarget[引用日期2016-6-27]
二、謝希仁. 計算機網絡(第5版)[M]. 北京:電子工業出版社, 2012.