概述
RIP(Routing information Protocol,路由信息協定)是套用較早、使用較普遍的內部網關協定(Interior Gateway Protocol,IGP),適用於小型同類網路的一個自治系統(AS)內的路由信息的傳遞。RIP協定是基於距離矢量算法(Distance Vector Algorithms,DVA)的。它使用“跳數”,即metric來衡量到達目標地址的路由距離。文檔見RFC1058、RFC1723。它是一個用於路由器和主機間交換路由信息的距離向量協定,目前最新的版本為v4,也就是RIPv4。
RIP工作原理
RIP協定是基於Bellham-Ford(距離向量)算法,此算法1969年被用於計算機路由選擇,正式協定首先是由Xerox於1970年開發的,當時是作為Xerox的“Networking Services(NXS)”協定族的一部分。由於RIP實現簡單,迅速成為使用範圍最廣泛的路由協定。
路由器的關鍵作用是用於網路的互連,每個路由器與兩個以上的實際網路相連,負責在這些網路之間轉發數據報。在討論 IP 進行選路和對報文進行轉發時,我們總是假設路由器包含了正確的路由,而且路由器可以利用 ICMP 重定向機制來要求與之相連的主機更改路由。但在實際情況下,IP 進行選路之前必須先通過某種方法獲取正確的路由表。在小型的、變化緩慢的互連網路中,管理者可以用手工方式來建立和更改路由表。而在大型的、迅速變化的環境下,人工更新的辦法慢得不能接受。這就需要自動更新路由表的方法,即所謂的動態路由協定,RIP協定是其中最簡單的一種。
在路由實現時,RIP作為一個系統長駐進程(daemon)而存在於路由器中,負責從網路系統的其它路由器接收路由信息,從而對本地IP層路由表作動態的維護,保證IP層傳送報文時選擇正確的路由。同時負責廣播本路由器的路由信息,通知相鄰路由器作相應的修改。RIP協定處於UDP協定的上層,RIP所接收的路由信息都封裝在UDP協定的數據報中,RIP在520號UDP連線埠上接收來自遠程路由器的路由修改信息,並對本地的路由表做相應的修改,同時通知其它路由器。通過這種方式,達到全局路由的有效。
RIP路由協定用“更新(UNPDATES)”和“請求(REQUESTS)”這兩種分組來傳輸信息的。每個具有RIP協定功能的路由器每隔30秒用UDP520連線埠給與之直接相連的機器廣播更新信息。更新信息反映了該路由器所有的路由選擇信息資料庫。路由選擇信息資料庫的每個條目由“區域網路上能達到的IP位址”和“與該網路的距離”兩部分組成。請求信息用於尋找網路上能發出RIP報文的其他設備。
RIP用“路程段數”(即“跳數”)作為網路距離的尺度。每個路由器在給相鄰路由器發出路由信息時,都會給每個路徑加上內部距離。在如下圖中,路由器3直接和網路C相連。當它向路由器2通告網路142.10.0.0的路徑時,它把跳數增加1。與之相似,路由器2把跳數增加到“2”,且通告路徑給路由器1,則路由器2和路由器1與路由器3所在網路142.10.0.0的距離分別是1跳、2跳。
然而在實際的網路路由選擇上並不總是由跳數決定的,還要結合實際的路徑連線性能綜合考慮。在如下圖所示網路中,從路由器1到網路3,RIP協定將更傾向於跳數為2的路由器1->路由器2->路由器3的1.5Mbps鏈路,而不是選擇跳數為1的56Kbps,直接的路由器1->路由器3路徑,因為跳數為1的56Kbps串列鏈路比跳數為2的1.5Mbps串列鏈路慢得多。