1. 程式人生 > >對RIP協議慢收斂的理解

對RIP協議慢收斂的理解

可以從兩個角度去看待這一個問題

(1)是其所造成的迴圈問題

(2)會造成故障資訊比正確資訊傳送的慢

書上說RIP協議好訊息傳的快,慢訊息傳的慢,這句話應該如何理解?

首先明白一個基本概念:收斂(convergence)

收斂所需要的時間就稱為收斂時間,是指從網路拓撲發生變化到網路中所有路由器都知道這個變化的時間。慢收斂是指路由資訊不一致的一種現象。

1.路由環路

產生環路的一種情況是:路由器A將從路由器B學到的路由資訊又告訴了路由器B,最終路由器B認為路由器A能夠到達目標網路,路由器A認為路由器B可以到達目標網路。路由資料包的時候,資料將在兩個路由器之間不停的迴圈,直到TTL的值為0,將此資料包丟棄。

2.壞訊息傳的慢

RIP協議將距離定義為跳數,跳數指從源埠到目的埠所經過的路由個數,經過一個路由器跳數加1.

直連跳數是1.

以下圖為例分析慢收斂的過程。

分析:在正常情況下,

R1到網路1的距離為1,R2到網路1的距離為2。

此時假設網1出故障,於是R1將自己到網路1的距離改為了16,由於RIP協議採用的是定時更新並不是觸發更新,R1打算在下一個30s告訴R2這個訊息,但是R2先把自己的訊息告訴了R1(此處觀點錯誤),R2說,我到R1的距離是2誒,於是R1就想,原來R2可以到網路1,於是將自己到網路1的距離改為3.

R1又把這個資訊告訴R2,R2知道自己是經過R1才到達的網路1,於是R2就把自己的距離改為4,下一次又把資訊告訴了R1,R1心裡在想,這R2怎麼回事啊?但是沒辦法,自己是從R2才到的網路1,距離接著增大吧,就這樣最終直到兩者的距離都達到了16才明白,原來網路1是不可到達的。

此處的關鍵就是:

(1)RIP協議定時更新並不是觸發更新,正確的訊息在R1的壞訊息到達R2之前已經進行了傳播(此處觀點錯誤!!!

這是為什麼呢?為什麼正確的資訊就先到達了R1?我覺得這是理解本問題的核心!!

(2)所謂慢收斂是指全域性的意思,是整個系統知道網路1不可達的時間比較慢,上述的過程的確體現了這種情況

(3)距離可以互相增加的關鍵就在於R2是通過R1到達的網路1,而R1是通過R2到達的網路1,只有這樣才能實現你增加我也增加的局面。

解決此現象的手段:水平分割:禁止路由選擇協議回傳路由選擇資訊,也就是路由器從某個介面接收到的更新資訊不允許再從這個介面發回去!

在我尋尋覓覓看了幾十篇文章以後,終於找到了我要的問題的答案。

核心:資訊傳過去了,但是被路由器推遲(CPU忙,鏈路擁塞)注意對路由器2,3的處理手法!和真題一個思路!

分析一道真題:

例1:source:2016年

分析:現在均已收斂,所以R3到網路的距離為1,R1,R2到該網路的距離為2.(採用RIP要路由器數少),此時R3不可到達網路,並向R2通報R1不可達,就是上述核心說的內容,此時R1並不知道網路不可達的訊息,於是R2在將自己設定為不可達以後,發現R3可達,於是修改自己的跳數為3.

總結:這篇文章寫得真不容易,充滿了肯定-否定-肯定-否定!