計算機網絡筆記22 網際控制報文ICMP、路由選擇協議RIP

網際控制報文ICMP

• 爲了更有效地轉發 IP 數據報和提高交付成功的機會,在網際層使用了網際控制報文協議 ICMP (Internet Control Message Protocol)。
• ICMP 是互聯網的標準協議。
• ICMP 允許主機或路由器報告差錯情況和提供有關異常情況的報告。
• 但 ICMP 不是高層協議(看起來好像是高層協議,因爲 ICMP 報文是裝在 IP 數據報中,作爲其中的數據部分),而是 IP 層的協議
在這裏插入圖片描述

ICMP報文的格式

在這裏插入圖片描述

ICMP報文的類型

• ICMP 報文的種類有兩種,即 ICMP 差錯報告報文ICMP 詢問報文
• 差錯報告報文共有 4 種:
– 終點不可達
– 時間超過
– 參數問題
– 改變路由(重定向)(Redirect)
• 詢問報文有2種:
– 回送請求和回答報文
– 時間戳請求和回答報文

ICMP差錯報告報文的內容

在這裏插入圖片描述

不再發送差錯報告報文的情況

• 對 ICMP 差錯報告報文不再發送 ICMP 差錯報告報文。
• 對第一個分片的數據報片的所有後續數據報片都不發送 ICMP 差錯報告報文。
• 對具有多播地址的數據報都不發送 ICMP 差錯報告報文。
• 對具有特殊地址(如127.0.0.0 或 0.0.0.0)的數據報不發送 ICMP 差錯報告報文。

ICMP應用舉例

PING (Packet InterNet Groper)
• PING 用來測試兩個主機之間的連通性
• PING 使用了 ICMP 回送請求與回送回答報文。
• PING 是應用層直接使用網絡層 ICMP 的例子,它沒有通過運輸層的 TCP 或UDP。

Traceroute
• 在 Windows 操作系統中這個命令是 tracert。
用來跟蹤一個分組從源點到終點的路徑
• 它利用 IP 數據報中的 TTL 字段和 ICMP 時間超過差錯報告報文實現對從源點到終點的路徑的跟蹤。

路由選擇協議RIP

理想的路由算法:
• 算法必須是正確的和完整的。
• 算法在計算上應簡單。
• 算法應能適應通信量和網絡拓撲的變化,這
就是說,要有自適應性。
• 算法應具有穩定性。
• 算法應是公平的。
• 算法應是最佳的。

代價(度量)

• 在研究路由選擇時,需要給每一條鏈路指明一定的代價,又叫度量
• 這裏“代價”並不是指“錢”,而是由一個或幾個因素綜合決定的一種度量(metric),如鏈路長度、數據率、鏈路容量、是否要保密、傳播時延等,甚至還可以是一天中某一個小時內的通信量、結點的緩存被佔用的程度、鏈路差錯率等。

關於“最佳路由”:
• 不存在一種絕對的最佳路由算法。
• 所謂“最佳”只能是相對於某一種特定要求下得出的較爲合理的選擇而已。
• 實際的路由選擇算法,應儘可能接近於理想的算法。
• 路由選擇是個非常複雜的問題
– 它是網絡中的所有結點共同協調工作的結果。
– 路由選擇的環境往往是不斷變化的,而這種變化有時無法事先知道。

分層次的路由選擇協議

互聯網採用分層次的路由選擇協議。這是因爲:
• (1) 互聯網的規模非常大。如果讓所有的路由器知道所有的網絡應怎樣到達,則這種路由表將非常大,處理起來也太花時間。而所有這些路由器之間交換路由信息所需的帶寬就會使互聯網的通信鏈路飽和。
• (2) 許多單位不願意外界瞭解自己單位網絡的佈局細節和本部門所採用的路由選擇協議(這屬於本部門內部的事情),但同時還希望連接到互聯網上。

自治系統 AS

(Autonomous System)
• 自治系統 AS 的定義:在單一的技術管理下的一組路由器,而這些路由器使用一種 AS 內部的路由選擇協議和共同的度量以確定分組在該 AS 內的路由,同時還使用一種 AS 之間的路由選擇協議用以確定分組在 AS之間的路由。

兩大類路由選擇協議

內部網關協議 IGP (Interior Gateway Protocol)
– 在一個自治系統內部使用的路由選擇協議。
– 目前這類路由選擇協議使用得最多,如 RIP 和OSPF 協議。
外部網關協議 EGP (External Gateway Protocol)
– 若源站和目的站處在不同的自治系統中,當數據報傳到一個自治系統的邊界時,就需要使用一種協議將路由選擇信息傳遞到另一個自治系統中。這樣的協議就是外部網關協議 EGP。
– 在外部網關協議中目前使用最多的是 BGP-4。
在這裏插入圖片描述

內部網關協議RIP

(Routing Information Protocol)
• 路由信息協議 RIP 是內部網關協議 IGP中最先得到廣泛使用的協議。
• RIP 是一種分佈式的基於距離向量的路由選擇協議。
• RIP 協議要求網絡中的每一個路由器都要維護從它自己到其他每一個目的網絡的距離記錄

“距離”的定義:
• 從一路由器到直接連接的網絡的距離定義爲 1。
• 從一個路由器到非直接連接的網絡的距離定義爲所經過的路由器數加 1。
• RIP 協議中的“距離”也稱爲“跳數”(hop count),因爲每經過一個路由器,跳數就加 1。
• RIP 認爲一個好的路由就是它通過的路由器的數目少,即“距離短”
• RIP 允許一條路徑最多隻能包含 15 個路由器。
• “距離”的最大值爲16 時即相當於不可達。可見 RIP 只適用於小型互聯網
• RIP 選擇一個具有最少路由器的路由(即最短路由),哪怕還存在另一條高速(低時延)但路由器較多的路由。

RIP 協議的三個要點

實現RIP實際就是實現路由信息的交換
• 僅和相鄰路由器交換信息。 (向誰發)
• 交換的信息是當前本路由器所知道的全部信息,即自己的路由表。 (發什麼)
– 交換信息的內容(目的網絡,距離,下一跳
• 按固定的時間間隔交換路由信息,例如,每隔 30 秒。 (何時發)

路由表的建立

• 路由器在剛剛開始工作時,只知道到直接連接的網絡的距離(此距離定義爲1)。
• 以後,每一個路由器也只和數目非常有限的相鄰路由器交換並更新路由信息。
• 經過若干次更新後,所有的路由器最終都會知道到達本自治系統中任何一個網絡的最短距離和下一跳路由器的地址。
• RIP 協議的收斂(convergence)過程較快,收斂即在自治系統中所有的結點都得到正確的路由選擇信息的過程。

距離向量算法

收到相鄰路由器(其地址爲 X)的一個 RIP 報文:
(1) 先修改此 RIP 報文中的所有項目:將**“下一跳”字段中的地址都改爲 X,並將所有的“距離”字段的值加 1**。
在這裏插入圖片描述
在這裏插入圖片描述
(2) 對修改後的 RIP 報文中的每一個項目,重複以下步驟:
若項目中的目的網絡不在路由表中,則將該項目加到路由表中。
否則
下一跳字段給出的路由器地址是同樣的,則將收到的項目替換原路由表中的項目。
否則
若收到項目中的距離小於路由表中的距離,則進行更新,
否則,什麼也不做。

在這裏插入圖片描述
在這裏插入圖片描述
(3) 若 3 分鐘還沒有收到相鄰路由器的更新路由表,則將此相鄰路由器記爲不可達的路由器,即將距離置爲16(距離爲16表示不可達)。
(4) 返回。

舉例:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

RIP協議位置

• RIP 協議使用運輸層的用戶數據報 UDP進行傳送(使用 UDP 的端口 520)。
• 因此 RIP 協議的位置應當在應用層。但轉發 IP 數據報的過程是在網絡層完成的。
• 路由器也是一個主機,也是有應用層的,但是在分組轉發過程中只達到網絡層。

RIP協議的優缺點

• RIP 協議最大的優點就是實現簡單,開銷較小。
• RIP 限制了網絡的規模,它能使用的最大距離爲 15(16 表示不可達)。
• RIP 存在的一個問題是當網絡出現故障時,要經過比較長的時間才能將此信息傳送到所有的路由器(壞消息傳播慢)。
• 路由器之間交換的路由信息是路由器中的完整路由表,因而隨着網絡規模的擴大,開銷也就增加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章