RIP协议相关知识总结
以下均為本人查閱各方面的文獻資料結合自身理解所轉述,現以筆記的形式作個總結。
 小生初學計算機網絡,以下表述難免會有錯誤或不足之處,歡迎大家批評指正。
文章目錄
- 問題引入
 - 知識點
 - 自治系統
 - RIP
 - 距離向量路由選擇算法
 - RIP中的信息交換
 - RIP的優缺點
 
- 收斂
 - 問題解答
 
- 參考資料
 
問題引入
我們首先引入一個問題,學習完以下相關知識點后可以試著解答這個問題:
請解釋RIP協議為什么會有“好消息傳得快,壞消息傳得慢。”的現象?并延伸思考,為什么要將最大跳數進行了限制(15)和收斂慢的原因。
知識點
自治系統
自治系統(Autonomous System,AS):可以自我管理(網絡)的一個系統,比如一個學校,一個公司,一個部門等。
 
 在自治系統中,可以自己選擇本系統內部的路由選擇協議。
在本系統內部使用的協議稱為內部網關協議(Interior Gateway Protocol,IGP)。
目前最常用的有兩種內部網關協議為:
- RIP(Routing Information Protocol ,路由信息協議)
 - OSPF(Open Shortest Path First Protocol ,開放式最短路徑優先協議)
 
RIP
RIP: Routing Information Protocol ,路由信息協議
距離向量路由選擇算法
該協議采用的是距離向量路由選擇算法,它是一種異步,迭代的分布式路由選擇算法,常基于最短路徑中的Bellman-Ford算法來實現。
 可見,RIP是采用距離向量(DistanceVector)作為距離的度量。
這里的距離向量你不需要過度糾結,現在只需要知道這是一種帶方向的度量(數值上并不體現方向,只是在我們感知上具有方向),
 采用的單位是跳。它度量的是路由 到 目標網絡的距離。
 首先定義 路由 與 直接相連的網絡 的距離為 1跳,然后與非直接相連的網路的距離 可根據經過的路由數量進一步度量,即在“原來基礎上” 加上經過的路由數量。
 
 舉例說明,如上圖7.48:
 路由R1到網絡N1,N2的距離為1跳,到N3的距離為2跳,到N4為3跳;
 路由R2到網絡N2,N3的距離為1跳,到N1,N4的距離為2跳;
 路由R3到網絡N3,N4的距離為1跳,到N2的距離為2跳,到N1的距離為3跳。
到這里,我們應該比較清晰的領悟到RIP中的距離度量了。
RIP 允許經過的路由器的數目最多為 15,其最長路徑距離為 16(此時是無窮距離,代表不可達)。
RIP中的信息交換
下面我們來看一下RIP中的信息交換。
首先明確RIP是相鄰路由之間的信息交換。
一問: 路由間交換的信息是什么?
交換的信息為它們已知的路由信息。這里的路由信息宏觀意義上就是一張表格,每個路由上都維護著這樣一個表格,表格內容大致如下所示:
| Net | Distance | R | 
 上圖中在路由旁邊的表格(沒有下一跳路由)是每個路由的初始路由表.
 下方(b),( c),(d),(e)為路由經過第一輪信息交換后的路由表,(f)為經過n(n > 1)輪交換后的路由表:因為第一輪交換后R1到Net7的距離還是不確定的(認為是無窮距離),經過n輪交換后R1才獲得到Net7的最短路徑。
二問: 路由之間何時進行信息交換?
路由之間通常是按照 固定的時間間隔 進行信息交換,RIP規定10~30秒交換一次信息。除此之外,當網絡拓撲結構發生變化時,需要向 其他路由 奔走相告。比如某路由器的關閉,增加,減少等都會引起網絡拓撲結構發生變化,即這時也會發生路由信息交換。
三問: 路由之間是如何進行信息交換的呢?
這里明確 需要獲得 每個路由器 到達每個目標網絡的 最短距離,當然可能出現 某個路由 對某些網絡 不可達的情況,這時就會有一個定義好的 無窮距離 來表示網絡不可達。
信息交換過程中在不斷維護著它們的路由表信息。我們知道對于每一個路由只能與它相鄰的路由進行信息交換,所以在某個路由器更新它維護的路由表時,它要先接收到與它相鄰的路由器的路由表。其中數據傳送形式是報文,路由表包含在RIP報文中,通過UDP來傳輸。
RIP的報文格式如下圖所示:
 當路由器接收到相鄰路由器發送過來的報文時,它會一個一個的取出報文中包含的各路由表的信息,然后與自身路由表信息進行對比:
-  
當與原始記錄相同時,此時相鄰路由器的目標網絡相同,距離都是1,此時沒有下一跳,該條記錄保持不變,如下圖中的路由器R1和R2,對于目標網絡Net1,此時Net1這條記錄保持不變。
 -  
對于其他RIP的記錄,因為要以相鄰路由器為下一跳來到達目標網絡,此時需要將取出的目標網絡信息 中的距離+1,然后進行比較,看一下這個相鄰路由能否縮短到達目標網絡的距離。
路由器和網絡如下圖所示,假設此時路由器R1的報文記錄中的有這么一條目標網絡信息:Net6 ,4,R4。收到R3發來的報文,其中的一條目標網絡記錄為Net6,1,–。這時就要生成一個Net6,2,R3來和Net6,4,R4比較。比較結果很明顯,R1路由表中的Net6會更新成:Net6,2,R3。 -  
如果是一個新的目標網絡則直接加入本路由器的路由表中。
 
總之,對比時,如果記錄中沒有目標網絡,則插入。有目標網絡,就看能不能減小與目標網絡的距離,能縮小與目標網絡的距離即更新。
RIP的優缺點
優點:
 格式簡單,額外開銷小,比較容易實現。
缺點:
 (1) RIP限定的距離最大為16,對很大的自治系統就難以適應;
(2)RIP 傳輸的是整個路由表,隨著全球因特網的爆炸式增長,路由表的記錄項也隨之
 大大增加,則開銷也急劇地增長;
(3)RIP 好消息傳得快,壞消息傳得慢:
- 好消息傳的快:如果某個新網絡加入,鄰居路由獲知后很快就可以廣播出去。
 - 壞消息傳的慢:如果某個時刻某個路由器與某個目標網絡鏈路出現了故障,當前路由就會將與出現鏈路故障的目標網絡中的距離置為16(無窮距離)。本來應該立即更新其他所有的路由器獲知這個情況,但是在距離向量選擇過程中需要花費一定的時間。以至于某些路由沒來得及更新,當未及時更新的信息通過報文發送出去,別的路由接收后,就以為可以通過這個未及時更新信息的路由來到達那個出了故障的目標網絡。以此循環反復下去,經過很多次更新,直到發現即將更新的向量距離達到了定義的無窮距離(16)才獲知那個目標網絡不可達。這就使得壞消息傳得慢。這種情況如下圖所示:
B和C一直問下去,直到它們當中其中一個距離達到15跳時,另一個人再問一下(15+1 = 16)才發現那個目標網絡是不可達的。 
這里無窮距離定義的是16,如果是定義的更大呢?可想而知壞消息會傳遞的更慢。
如果定義的更小呢?那么RIP只能適用于更小型的網絡了。
收斂
全部路由 獲取到 正確消息 的過程。其中花費的時間為收斂時間。
收斂了不代表不再進行信息交換,交換還是隨著網絡的變化而不斷進行變化。
問題解答
(1) 解釋RIP協議為什么會有“好消息傳得快,壞消息傳得慢。”的現象:
 因為好消息被某個路由獲知后,通過鄰居之間的信息交換可以快速廣播出去。
 而對于壞消息,部分路由信息沒有及時被更新,把它們稱為無效路由,無效路由仍被錯誤地作為有效路由進行廣播,使得無效路由之間進行循環的信息交換,直到距離達到設定的無窮距離(16)才得知正確的信息。
 (2)對最大跳數進行限制的原因:是為了讓壞消息不會因無效路由的信息交換而陷入死循環,利于壞消息更快的被收斂。收斂慢的原因:路由信息交換是周期性的廣播,這影響了收斂效率;一個路由既可從另一個路由接收信息也可以發送自身信息給剛才那個給它發送信息的路由,這使得無效路由當作有效路由來使用,容易出現不正確信息的循環交換,使得收斂變得更緩慢。
ps:感覺答的很迷糊,自己理解的還不夠深刻。歡迎大佬批評指正以及補充!
參考資料
總結
以上是生活随笔為你收集整理的RIP协议相关知识总结的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 矩形法求定积分的原理和实现
 - 下一篇: PAT:1034 Head of a G