本文為大家講解解析RIP路由協議,希望能幫到大家。
RIP路由協議(Routing Information Protocols,路由信息協議)是使用最廣泛的距離向量協議,它是由施樂(Xerox)在70年代開發的。當時,RIP是XNS(Xerox Network Service,施樂網絡服務)協議簇的一部分。TCP/IP版本的RIP是施樂協議的改進版。RIP最大的特點是,無論實現原理還是配置方法,都非常簡單。
度量方法RIP的度量是基於跳數(hops count)的,每經過一台路由器,路徑的跳數加一。如此一來,跳數越多,路徑就越長,RIP算法會優先選擇跳數少的路徑。RIP支持的最大跳數是15,跳數為16的網絡被認為不可達。
路由更新RIP路由協議中路由的更新是通過定時廣播實現的。缺省情況下,路由器每隔30秒向與它相連的網絡廣播自己的路由表,接到廣播的路由器將收到的信息添加至自身的路由表中。每個路由器都如此廣播,最終網絡上所有的路由器都會得知全部的路由信息。正常情況下,每30秒路由器就可以收到一次路由信息確認,如果經過180秒,即6個更新周期,一個路由項都沒有得到確認,路由器就認為它已失效了。如果經過240秒,即8個更新周期,路由項仍沒有得到確認,它就被從路由表中刪除。上面的30秒,180秒和240秒的延時都是由計時器控制的,它們分別是更新計時器(_updateTimer)、無效計時器(Invalid Timer)和刷新計時器(Flush Timer)。
路由循環距離向量類的算法容易產生路由循環,RIP路由協議是距離向量算法的一種,所以它也不例外。如果網絡上有路由循環,信息就會循環傳遞,永遠不能到達目的地。為了避免這個問題,RIP等距離向量算法實現了下面4個機制。
水平分割(split horizon)。水平分割保證路由器記住每一條路由信息的來源,並且不在收到這條信息的端口上再次發送它。這是保證不產生路由循環的最基本措施。
毒性逆轉(poison reverse)。當一條路徑信息變為無效之後,路由器並不立即將它從路由表中刪除,而是用16,即不可達的度量值將它廣播出去。這樣雖然增加了路由表的大小,但對消除路由循環很有幫助,它可以立即清除相鄰路由器之間的任何環路。
觸發更新(trigger update)。當路由表發生變化時,更新報文立即廣播給相鄰的所有路由器,而不是等待30秒的更新周期。同樣,當一個路由器剛啟動RIP路由協議時,它廣播請求報文。收到此廣播的相鄰路由器立即應答一個更新報文,而不必等到下一個更新周期。這樣,網絡拓撲的變化會最快地在網絡上傳播開,減少了路由循環產生的可能性。
抑制計時(holddown timer)。一條路由信息無效之後,一段時間內這條路由都處於抑制狀態,即在一定時間內不再接收關於同一目的地址的路由更新。如果,路由器從一個網段上得知一條路徑失效,然後,立即在另一個網段上得知這個路由有效。這個有效的信息往往是不正確的,抑制計時避免了這個問題,而且,當一條鏈路頻繁起停時,抑制計時減少了路由的浮動,增加了網絡的穩定性。
即便采用了上面的4種方法,路由循環的問題也不能完全解決,只是得到了最大程度的減少。一旦路由循環真的出現,路由項的度量值就會出現計數到無窮大(_countto Infinity)的情況。這是因為路由信息被循環傳遞,每傳過一個路由器,度量值就加1,一直加到16,路徑就成為不可達的了。RIP路由協議選擇16作為不可達的度量值是很巧妙的,它既足夠的大,保證了多數網絡能夠正常運行,又足夠小,使得計數到無窮大所花費的時間最短。
鄰居有些網絡是NBMA(Non-Broad_cast MultiAccess,非廣播多路訪問)的,即網絡上不允許廣播傳送數據。對於這種網絡,RIP就不能依賴廣播傳遞路由表了。解決方法有很多,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一台特定的路由器。
RIP路由協議的缺陷RIP雖然簡單易行,並且久經考驗,但是也存在著一些很重要的缺陷,主要有以下幾點:
過於簡單,以跳數為依據計算度量值,經常得出非最優路由;度量值以16為限,不適合大的網絡;安全性差,接受來自任何設備的路由更新;不支持無類IP地址和VLSM(Variable Length Subnet Mask,變長子網掩碼);收斂緩慢,時間經常大於5分鐘;消耗帶寬很大。
RIP路由協議是一個經典的網絡協議,在應用中也是比較廣泛的,所以對於網絡工程師來說,應該是最熟悉不過的了。上面的內容就是對已RIP的有一次總結和陳述,希望對於讀者有幫助。