禁止碼迷,布布扣,豌豆代理,碼農教程,愛碼網等第三方爬蟲網站爬取!
在開始閱讀之前,請先閱讀博客—— 網絡層——路由選擇算法。
RIP 協議
跳數
RIP 協議是分布式的基於 DV 算法的路由選擇協議,下面我們分析一下 RIP 協議在 DV 算法的基礎上提出怎樣的封裝。首先 RIP 協議中的距離得到了定義,從一路由器到直接連接的網絡的距離定義為 1,到非直接連接的網絡距離定義為所經過的路由器數量加 1。由於這個定義,RIP 協議的“距離”也稱之為“跳數”。
最大度量
在前一篇博客我們提到的無窮計數的問題,毒性逆轉能夠完全解決無窮計數的問題嗎?答案是否定的,因為當網絡規模增大,涉及到了 3 個及以上的更多節點的環路,毒性逆轉將不能探測到故障。對於這個問題,RIP 協議提供了解法——定義最大度量。RIP 協議允許一條路徑最多只能包含 15 個服務器,若距離等於或大於 16 時將直接不可達。出現無窮計數時,路由器之間相互傳播錯誤的信息會使最短距離增長到 16,這就到達了最大度量,就可以規避故障鏈路了。
但是這也引發了新的問題,要是 2 個路由器之間的距離本身就超過 16 呢?這沒有辦法,也會被認為是不可達的,因此 RIP 協議無法適用於較大的互聯網。
周期性廣播
路由器之間將按照固定的時間間隔交換路由信息,同時當網絡拓撲發生變化時也會及時通告拓撲變化之后的路由信息。
- RIP 協議的其他內容,和 DV 算法差別不大,這里不再重復描述。
自治系統
對於路由選擇算法來說,我們忽略了很多細節,把復雜的網絡抽象成圖結構來描述雖然形象,但是這是一種理想化的說法。在實踐中往往不會使用圖結構加使用統一的路由選擇算法的同質路由器去進行說明,主要體現在以下 2 個方面:
- 規模:當今因特網由數億台主機組成,這種規模的主機存儲路由信息需要大量內存。對於所有路由器之間的廣播連通性和鏈路開銷的更新,無疑需要占用很多的資源和很大的負擔,對於 LS 算法的計算負擔極其大,DV 算法更是無法收斂。因此就必須采取一些措施,來縮小計算和存儲路由信息的規模。
- 管理自制:因特網是 ISP 網絡,其中每個 ISP 都有自己的路由網絡,因此因特網也可以認為是“網絡之網絡”。一般來說一個 ISP 總是傾向於按照自己的想法去運行路由器,而且對外保留隱私,隱藏內部的網絡結構。因此對於一個組織不僅希望能夠按自己的意願管理網絡,也要滿足和其他網絡進行通信的需求。
針對這 2 個問題,可以使用自治系統(AS)來解決,也就是聚合多個處在相同的管理之下的路由器為一個區域,通常來說一個 ISP 中的路由器及其互聯的鏈路構成一個 AS。對於不同的 AS 內的路由器可以運行不同的 AS 內部路由協議,反之相同 AS 中的路由器運行相同的路由選擇算法並且擁有彼此的信息。
OSPF 協議
開放最短路徑優先
開放最短路徑優先(OSPF) 協議被廣泛用於因特網 AS 內部路由選擇,開放指的是路由選擇協議規范是公眾可用的,而並非屬於某一廠家(例如 Cisco 的 EIGRP 協議到近期才變為開放)。OSPF 協議是一種鏈路狀態協議,它使用洪泛鏈路狀態信息和
Dijkstra 算法實現,下面看一些 OSPF 協議的具體實現方式:
鏈路狀態數據庫
運載 OSPF 協議的所有路由器最終會建立一個鏈路狀態數據庫,這個數據庫包含 3 張表來協同工作:
- 鄰居表:鄰居表之間通過問候報文聯系,確認相鄰拓撲是否正常;
- 鏈路狀態表:通過交換鄰居表,形成完整的網絡拓撲圖,該表在 AS 內的所有路由器是一致的;
- 計算路由表:運載 Dijkstra 算法,獲得最佳路徑。
接下來我們來看一下路由器和鄰居之間,是怎么通過這 3 張表進行工作的。
洪泛法
由於需要讓所有的路由器得到自己的路由信息,因此需要向 AS 內的所有相鄰路由器發送信息。實現這個功能的是洪泛法,路由器通過所有輸出端口向相鄰路由器發送信息,而每一個相鄰路由器再把信息發送給相鄰的路由器,最終 AS 內的所有路由器都會得到這個路由信息。
同時 OSPF 協議的洪泛法是可靠地,因為對於任何路由器,收到其他路由器發來的分組之后需要發送 ACK,這就可以保證路由信息的傳遞正確。
鏈路權重
最佳路徑的計算是按照鏈路權重來計算的,鏈路鑽中可以反映開銷、距離、時延和帶寬。這些信息的配置並非是協議自行生成的,而是通過網絡管理員進行配置的。也就是說 OSPF 並不不強制使用的鏈路權重的設置策略,而是讓網絡管理員自己決定度量的方式,它提供了一種機制來為路由器確定最低開銷路徑的選擇。
觸發式更新
路由表的更新並非是周期性的,而是當鏈路狀態發生變化時,路由器才向所有的路由器使用洪泛法發送信息。由於這種方式,使得鏈路狀態表更新很快,使得最低開銷路徑的收斂速度加快,同時也可以保證 AS 內的所有路由器的鏈路狀態表一致。
OSPF 數據報
字段
分組類型
- Hello:發現、維持鄰居路由器的可達性;
- 數據庫描述:向鄰居給出自己的鏈路狀態數據庫中,所有鏈路狀態項目的摘要信息;
- 鏈路狀態請求:向鄰居請求發送某些鏈路狀態的詳細信息;
- 鏈路狀態更新:使用洪泛法對全網更新鏈路狀態;
- ASK:對更新分組的確認。
報文承載
OSPF 報文由 IP 協議承載,而不是使用 UDP 協議,此時的 IP 數據報的協議字段為 89。OSPF 報文的篇幅很小,這就可以加快數據報的傳輸速度。
協議優勢
安全性
OSPF 協議能夠鑒別 OSPF 路由器之間的交換,僅有收到信任的路由器可以參與 AS 內的 OSPF 協議,因此可以防范入侵者將不正確的信息注入路由表中。可以使用簡單鑒別或 MD5 鑒別實現,可以驗證分組的真實性。
多條相同開銷路徑
當到達某目的地的多條路徑具有相同的開銷時,OSPF 協議允許使用多條路徑,這就使得轉發數據報時無需令單一路徑承載所有流量。
單播、多播路由綜合支持
多播 OSPF(MPSPF)利用現有鏈路數據庫,提供了 OSPF 的簡單拓展,提供了多播路由的選擇。
支持單個 AS 中的層次結構
OSPF 協議支持大規模 AS 分層,一個 OSPF 自治系統能工層次化地配置多個區域。每個區域都運行自己的 OSPF 鏈路狀態路由選擇算法,區域內的每台路由器都向區域內的所有其他路由器廣播鏈路狀態。在層次結構的區域划分中,上層區域為主干區域,可以用來連接其他下層區域。主干區域的路由器叫主干路由器,而與其它區域通信則使用區域邊界路由器。
為划分區域提供支持,可以使得洪泛法交換鏈路狀態信息的范圍縮小的某一個區域中,這樣可以減少 OSPF 協議在整個網絡中的通信量。
參考資料
《計算機網絡(第七版)》 謝希仁 著,電子工業出版社
《計算機網絡 自頂向下方法》 [美] James F.Kurose,Keith W.Ross 著,陳鳴 譯,機械工業出版社