RIP路由協議的起源和發展
在路由方面,我們知道,它的基本功能就是進行IP的選擇和分配。那么在這之中,我們最為基礎的就是RIP路由協議了。那么這個協議的一些規范以及功能,我們來詳細講解一下。使用最廣泛的一種IGP是選路信息協議RIP(Routing Information Protocol),RIP的另一個名字是routed(路由守護神),來自一個實現它的程序.這個程序最初由加利福尼亞大學伯克利分校設計,用于給他們在局域網上的機器提供一致的選路和可達信息.它依靠物理網絡的廣播功能來迅速交換選路信息.它并不是被設計來用于大型廣域網的(盡管現在的確這么用).
在旋樂(Xerox)公司的Palo Alto研究中心PARC早期所作的關于網絡互連的研究的基礎上,routed實現了起源于Xerox NS RIP的一個新協議,它更為通用化,能夠適應多種網絡.
盡管在其前輩上做了一些小改動,RIP作為IGP流行起來并非技術上有過人之處,而是由于伯克利分校把路由守護神軟件附加在流行的4BSD UNIX系統上一起分發,從而使得許多TCP/IP網點根本沒考慮其技術上的優劣就采用routed并開始使用RIP.一旦安裝并使用了這個軟件,它就成為本地選路的基礎,研究人員也開始在大型網絡上使用它.
關于RIP的最令人吃驚的事可能就是它在還沒有正式標準之前就已經廣泛流行了.大多數的實現都脫胎于伯克利分校的程序,但是由于編程人員對未形成文檔的微妙細節理解不同而造成了它們之間互操作性限制.協議出現新版本后,出現了更多的問題.在1988年6月形成了一個RFC標準,這才使軟件商解決了互操作性問題.
RIP協議的基礎就是基于本地網的矢量距離選路算法的直接而簡單的實現.它把參加通信的機器分為主機的(active)和被動的(passive或silent).主動路由器向其他路由器通告其路由,而被動路由器接收通告并在此基礎上更新其路由,它們自己并不通告路由.只有路由器能以主動方式使用RIP路由協議,而主機只能使用被動方式.
以主動方式運行RIP的路由器每隔30秒廣播一次報文,該報文包含了路由器當前的選路數據庫中的信息.每個報文由序偶構成,每個序偶由一個IP網絡地址和一個代表到達該網絡的距離的整數構成.RIP使用跳數度量(hop count metric)來衡量到達目的站的距離.在RIP度量標準中,路由器到它直接相連的網絡的跳數被定義為1,到通過另一個路由器可達的網絡的距離為2跳,其余依此類推.因此從給定源站到目的站的一條路徑的跳數(number of hops或hop count)對應于數據報沿該路傳輸時所經過的路由器數.顯然,使用跳數作為衡量最短路徑并不一定會得到最佳結果.例如,一條經過三個以太網的跳數為3的路徑,可能比經過兩條低速串行線的跳數為2的路徑要快得多.為了補償傳輸技術上的差距,許多RIP軟件在通告低速網絡路由時人為地增加了跳數.
運行RIP的主動機器和被動機器都要監聽所有的廣播報文,并根據前面所說的矢量距離算法來更新其選路表.例如圖1.2中的互連網絡中,路由器R1在網絡2上廣播的選路信息報文中包含了序偶(1,1),即它能夠以費用值1到達網絡1.路由器R2和R5收到這個廣播報文之后,建立一個通過R1到達網絡1的路由(費用為2).然后,路由器R2和R5在網絡3上廣播它們的RIP報文時就會包含序偶(1,2).最終,所有的路由器和主機都會建立到網絡1的路由.
RIP路由協議規定了少量的規則來改進其性能和可靠性.例如,當路由器收到另一個路由器傳來的路由時,它將保留該路由直到收到更好的路由.在我們所舉的例子中,如果路由器R2和R5都以費用2來廣播到網絡1的路由,那么R3的R4就會將路由設置為經過先廣播的那個路由器到達網絡1.即:為了防止路由在兩個或多個費用相等的路徑之間振蕩不定,RIP規定在得到費用更小的路由之前保留原有路由不變.
如果第一個廣播路由的路由器出故障(如崩潰)會有什么后果?RIP規定所有收聽者必須對通過RIP獲得的路由設置定時器.當路由器在選路表中安置新路由時,它也為之設定了定時器.當該路由器又收到關于該路由的另一個廣播報文后,定時器也要重新設置.如果經過180秒后還沒有下一次通告該路由,它就變為無效路由.
RIP必須處理下層算法的三類錯誤.第一,由于算法不能明確地檢測出選路的回路,RIP要么假定參與者是可信賴的,要么采取一定的預防措施.第二,RIP必須對可能的距離使用一個較小的最大值來防止出現不穩定的現象(RIP使用的值是16).因而對于那些實際跳數值在16左右的互連網絡,管理者要么把它劃分為若干部分,要么采用其他的協議.第三,選路更新報文在網絡之間的傳輸速度很慢,RIP路由協議所使用的矢量距離算法會產生慢收斂(slow convergence)或無限計數(count to infinity)問題從而引發不一致性.選擇一個小的無限大值(16),可以限制慢收斂問題,但不能徹底解決客觀存在.
選路表的不一致問題并非僅在RIP中出現.它是出現在任何矢量距離協議中的一個根本性的問題,在此協議中,更新報文僅僅包含由目的網絡及到達該網絡的距離構成的序偶.