RIP詳解(一)

轉載  https://blog.csdn.net/jxch____/article/details/78877184


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

“距離”的定義 :

  • 從一路由器到直接連接的網絡的距離定義爲 1。
  • 從一個路由器到非直接連接的網絡的距離定義爲所經過的路由器數加 1。

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


RIP 協議的三個要點

  1. 僅和相鄰路由器交換信息。
  2. 交換的信息是當前本路由器所知道的全部信息,即自己的路由表
  3. 按固定的時間間隔交換路由信息,例如,每隔 30 秒。

路由表的建立

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

距離向量算法

收到相鄰路由器(其地址爲 X)的一個 RIP 報文:

  1. 先修改此RIP報文中的所有項目: 
    1. 把“下一跳”字段中的地址都改爲X,並把所有的“距離”字段的值加1
    2. 每個項目中的三個關鍵數據:到目的網絡N,距離爲d,下一跳路由器是X
  2. 對修改後的RIP 報文中的每一個項目,進行以下步驟: 
    1. 若原來的路由表中沒有目的網絡N,則把該項目加到路由表中。
    2. 否則若下一跳路由器地址是X,則用收到的項目替換原路由表中的項目。
    3. 否則若收到項目中的距離小於路由表中的距離,則進行更新,
    4. 否則,什麼也不做。
  3. 若3分鐘還沒有收到相鄰路由器的更新路由表,則把此相鄰路由器記爲不可達路由器,即將距離置爲16
  4. 返回。

這裏寫圖片描述 
這裏寫圖片描述 
這裏寫圖片描述

RIP協議讓互聯網中的所有路由器都和自己的相鄰路由器不斷交換路由信息,並不斷更新其路由表,使得從每一個路由器到每一個目的網絡的路由都是最短的(即跳數最少)。雖然所有的路由器最終都擁有了整個自治系統的全局路由信息,但由於每一個路由器的位置不同,它們的路由表當然也應當是不同的。


RIP2 協議的報文格式 :

這裏寫圖片描述

RIP2 報文中的路由部分由若干個路由信息組成。每個路由信息需要用 20 個字節。

  • 命令域:指出RIP報文是一個請求報文還是對請求的應答報文 
    • 請求報文:請求路由器發送路由表
    • 應答報文:可以是對請求的應答,也可以是主動的更新。
  • 版本域:一般爲1,新版本爲2。
  • 地址族標識符(又稱爲地址類別)字段用來標誌所使用的地址協議。
  • 路由標記填入自治系統的號碼,這是考慮使RIP有可能收到本自治系統以外的路由選擇信息。
  • 再後面指出某個網絡地址、該網絡的子網掩碼、下一跳路由器地址以及到此網絡的距離。

RIP2的其他功能

  • 支持變長子網掩碼VLSM和CIDR
  • 具有簡單的鑑別功能
  • 支持多播

RIP2的鑑別功能 
鑑別:確認合法的信息包,目前支持純文本的口令形式。

RIP2的鑑別報文格式 
這裏寫圖片描述


RIP 協議的優缺點

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

這裏寫圖片描述

壞消息傳播得慢 :

  1. R2 在收到 R1 的更新報文之前,還發送原來的報文,因爲這時 R2 並不知道 R1 出了故障。
  2. R1 收到 R2 的更新報文後,誤認爲可經過 R2 到達網1,於是更新自己的路由表,說:“我到網 1 的距離是3,下一跳經過R2”。然後將此更新信息發送給R2。
  3. R2 以後又更新自己的路由表爲“1, 4, R1”,表明“我到網 1 距離是 4,下一跳經過 R1”。
  4. 這樣不斷更新下去,直到 R 1 和 R2 到網 1 的距離都增大到 16 時,R1 和 R2 才知道網 1 是不可達的。

這就是好消息傳播得快,而壞消息傳播得慢。網絡出故障的傳播時間往往需要較長的時間(例如數分鐘)。這是 RIP 的一個主要缺點。


例 : 
假定網絡中的路由器B的路由表有如下的項目(這三列分別表示“目的網絡”、“距離”和“下一跳路由器”)

              N1        7        A
              N2        2        C
              N6        8        F
              N8        4        E
              N9        4        F
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

現在B收到從C發來的路由信息(這兩列分別表示“目的網絡”“距離”):

              N2        4
              N3        8
              N6        4
              N8        3
              N9        5
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

試求出路由器B更新後的路由表(詳細說明每一個步驟)。 
路由器B更新後的路由表如下:

      N1   7  A    無新信息,不改變
      N2   5  C    相同的下一跳,更新
      N3   9  C    新的項目,添加進來
      N6   5  C    不同的下一跳,距離更短,更新
      N8   4  E    不同的下一跳,距離一樣,不改變
      N9   4  F    不同的下一跳,距離更大,不改變
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

例 2: 
假定網絡中的路由器A的路由表有如下的項目(格式同上題):

        N1          4          B
        N2          2          C
        N3          1          F
        N4          5          G
  • 1
  • 2
  • 3
  • 4
  • 5

現將A收到從C發來的路由信息(格式同上題):

        N1          2
        N2          1
        N3          3
        N4          7
  • 1
  • 2
  • 3
  • 4
  • 5

試求出路由器A更新後的路由表(詳細說明每一個步驟)。 
路由器A更新後的路由表如下:

N1   3  C    不同的下一跳,距離更短,改變
N2   2  C    相同的下一跳,距離一樣,更新
N3   1  F    不同的下一跳,距離更大,不改變
N4   5  G    無新信息,不改變

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