天天看點

路由選擇協定—RIP協定

作者:運維法拉令

路由算法分類

從路由算法能否随網絡的通信量或拓撲自适應地進行調整變化來劃分,可以分為:靜态路由選擇政策和動态路由選擇政策。

(1) 靜态路由選擇政策:即手工配每一條置路由。

優點:簡單,開銷小。

缺點:隻适用小網絡,難以适應網絡狀态的變化。

(2) 動态路由選擇政策:又叫自适應路由選擇。

優點:能較好适應網絡狀态的變化,适用于大網絡。

缺點:實作複雜,開銷大。

分層次的路由協定

由于網際網路規模非常大,可以把網際網路劃分為許多較小的自治系統(autonomous system),記為AS。每個自治系統通常在相同管理控制下的路由器組成,在一個AS中的路由器都全部運作在同樣的路由算法。各個AS之間彼此是互聯的,是以一個AS中有一個或多個路由器用于不同AS之間的通信,即負責将本AS之外的目的位址轉發分組,這些路由器稱為網關路由器。

根據上面描述,可以将路由選擇協定劃分為兩個大類:内部網關協定和外部網關協定。

(1) 内部網關協定IGP(Interior Gateway Protocol):即在一個自治系統内不使用的路由選擇協定,常見的協定有RIP、OSPF協定。

(2) 外部網關協定EGP(External Gateway Protocol):用于實作不同自治系統之間通信的傳遞,這樣的協定就是EGP協定,目前使用最多的就是BGP的版本4(BGP-4)。

路由選擇協定—RIP協定

自治系統之間的路由選擇也叫域間路由選擇,在自治系統之内的路由選擇也叫域内路由選擇。

内部網關協定RIP

RIP(Routing Information Protocol)協定——路由資訊協定,是一種分布式的基于距離向量的路由選擇協定,最大的優點是簡單。

RIP協定要求網絡中的每一個路由器都要維護從它自己到其他每一個目的網絡的距離記錄(距離向量)。RIP協定對距離的定義如下:

(1) 從一路由器到直接連接配接的網絡的距離定義為1。

(2) 從一路由器到非直接連接配接的網絡的距離定義為所經過的路由器數加1。

RIP協定的距離也稱為跳數,RIP協定允許一條路徑最多隻能包含15個路由器。是以,距離等于16時即相當于不可達。

路由選擇協定—RIP協定

上圖表示路由器R2的轉發表,R2與網絡Net2和Net3直接相連,是以距離為1,下一跳不需要經過任何路由器,是以是直接傳遞。R2到達網絡Net1需要經過一個路由器即R1,是以距離為經過的路由器個數加1,即2。是以R2路由器維護的到各個網絡的距離向量為(2,1,1,2)。

RIP協定特點

RIP協定是通過每個路由器要不斷的和其他路由器交換路由資訊,進而達到自治系統中所有節點都得到正确的路由資訊。

RIP協定考慮了和哪些路由器交換資訊、交換什麼資訊以及什麼時候交換資訊這三個問題,RIP協定特點:

(1) 僅和相鄰路由器交換資訊。

(2) 交換的資訊是目前本路由器所知道的全部資訊,即自己現在路由表。

(3) 按固定的時間間隔交換資訊,如每隔30s或網絡拓撲發生變化時。

路由器在剛開始工作時,它的路由表是空的,然後路由器就得出到直接相連的幾個網絡的距離(這些距離為1),接着每個絡器也隻是和自己相鄰的路由器交換并更新資訊。經過若幹次交換後,所有路由器都會知道到達本自治系統彙總任何一個網絡的最短距離和下一跳位址。

路由選擇協定—RIP協定

在上圖的自治系統中,假設三個路由器都是剛開始工作,剛開始R1隻有到網絡1和2的距離資訊,R2有網絡2和3的距離資訊,R3有網絡3和4的距離資訊。

第一輪交換:R1和R2交換,R2和R3交換,交換後R2從R1得到了到網絡1的距離資訊,從R3得到了到網絡4的距離資訊,即第一輪交換後R2得到了到本自治系統所有網絡的距離資訊。

第二輪交換:同樣R1和R2交換,R2和R3交換,由于R2已經包含了所有的資訊,是以經過此次交換後,R1和R3也就得到了到本自治系統所有網絡的到達資訊。

注:RIP協定不能在兩個網絡之間同時使用多條路由,隻能有一條最短距離的路由。

距離向量算法

對每一個相鄰路由器發送過來的RIP封包,會進行一下步驟:

(1) 路由器R1接收到其相鄰路由器R2發送過來的封包,先修改此封包的所有項目:把“下一條”字段中的位址都改為R2,并把所有的“距離”字段的值加1。每個項目都有三個關鍵字段:到目的網絡N,距離是d,下一跳路由器是X。

假設R1接收到R2的封包中某一項是:Net2,2,Y,意思是從R2到Net2的距離是2,并且下一步應該走Y路由器,那麼對于R1來說,到Net2的最短走法是先到R2,在按照R2的走法,即從R1到Net2的距離是2 + 1 = 3,下一步走R2,即将 Net2,2,Y 下一跳字段改為R2,将距離字段加1。

路由選擇協定—RIP協定

(2) 對修改後的RIP封包中的每一項,進行以下步驟:

  • 1) 若原來的路由表中沒有網絡N,則把該項目添加到路由表中。
  • 還是上例,如果R1路由表中沒有到Net2的路由,表明這是新的目的網絡,應當加入到自己的路由表中。
  • 2) 如果R1路由表中已經有目的網絡N,這時檢視下一跳的位址,如果下一跳位址是R2,則把收到的項目替換原路由表中的項目。
  • 這裡要替換的原因是:因為網絡拓撲可能發生變化或新的節點加入網絡,現在接收到的是最新的消息,要以最新的消息為準。如果下一跳的位址不是R2,那麼如果收到項目中距離小于路由表中的距離,則進行替換,否則什麼也不做。
  • 如果收到的項目距離小于路由表中的距離,說明有更短的路徑,所有更換為更短的路徑,如果比路由表中的路徑還長,那麼顯然不用更新,如果距離相同,也沒必要更新。

(3) 若3分鐘還沒有收到相鄰路由器的更新路由表,則把此路由器記為不可達的距離,即把距離設定為16。

(4) 傳回。

舉個例子說明,已經路由器R6有以下的路由表,現在收到相鄰的路由器R4發來的更新資訊,試更新R6路由表。

路由選擇協定—RIP協定

第一步:修改R4發來的更新路由表,将所有的下一跳修改為R4,所有的距離加1,得出下表:

路由選擇協定—RIP協定

第二步:将上表的每一項和R6路由器的轉發表進行對比

(1) 第一行,目的網絡為Net1,R6路由器轉發表沒有這個目的網路,是以需要把這一行添加到轉發表。

(2) 第二行,轉發表中有Net2,并且下一跳位址就是R4,是以需要更新。

(3) 第三行,轉發表有Net3,并且下一跳位址不是R4,但是距離2小于轉發表中的距離4,是以也需要更新。

路由選擇協定—RIP協定

RIP缺點

RIP存在一個問題是當網絡出現故障時,要經過比較長的時間才能将磁資訊傳送到所有的路由器。這一特點叫做:好消息傳得快,壞消息傳得慢。

如下圖所示,在正常的情況下,R1和R2交換資訊,其中隻畫出了達到的網絡1的表項。

路由選擇協定—RIP協定

如果路由器R1到網1的鍊路出現了故障,R1無法達到網1,于是路由器R1把到網1的距離改為16(表示網1不可達),因而R1路由表響應的項目變為 “1,16,直接傳遞”。但是,可能需要經過30s後R1,才能把更新資訊發送給R2,,然而R2可能已經先把自己的路由表發送給了R1,其中有到達網1的這一項 “1,2,R1”。

路由選擇協定—RIP協定

R1收到R2的更新封包後,會誤認為自己無法直接到達網1,但是可經過R2到達網1,于是把收到的路由資訊 “1,2,R1” 修改為 “1,3,R2”,表明“我到網1的距離是3,下一跳的R2”。

同理,R2接收到又會更新自己的路由表為 “1,4,R1”,以為“我到網1的距離為4,下一跳為R1”....就這樣一直更新下去,知道R1和R2到網1的距離為16時,R1和R2才知道網1是不可達的。是以,這就是:好消息傳得快,壞消息傳得慢的原因。

小結

路由選擇協定—RIP協定

繼續閱讀