閔琦
摘要:該文主要闡述了RIP協(xié)議的路由選擇機制,RIP協(xié)議的相關內(nèi)容,以及RIP對路由選擇環(huán)問題的解決方法和具體實現(xiàn),最后針對抑制路由環(huán),提高網(wǎng)絡性能提出了幾種解決方法。
關鍵詞:RIP;路由;網(wǎng)絡;鏈路;性能
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2014)23-5435-02
當網(wǎng)絡拓撲結構發(fā)生變化時,路由器就會發(fā)出更新信息,路由更新信息遍及整個網(wǎng)絡,引發(fā)路由器重新計算最佳路徑,最終達到所有路由器一致公認的最佳路徑的狀態(tài)。
由于網(wǎng)絡中存在路由匯聚時間間隔,路由表中新的路由或更改的路由不能夠很快在全網(wǎng)中穩(wěn)定,使得有不一致的路由存在,于是會產(chǎn)生路由環(huán)。路由環(huán)的產(chǎn)生,給網(wǎng)絡增加了不必要的流量,降低網(wǎng)絡性能。為了從根本上提高網(wǎng)絡的性能,需要解決路由環(huán)的問題。
1 RIP協(xié)議路由環(huán)的產(chǎn)生
路由選擇最基本的問題就是找出任意兩個節(jié)點之間最小的開銷,一條路徑的開銷等于組成這條路徑的所有邊上開銷之和。但是靜態(tài)的方法存在以下幾個缺點:
1) 它不處理節(jié)點或者鏈路故障;
2) 它不考慮新的節(jié)點或鏈路的增加;
3) 它意味著邊的開銷不能改變;
由于這些原因,在大多數(shù)實際網(wǎng)絡中,路由選擇由運行在節(jié)點間的路由協(xié)議來實現(xiàn)。這些協(xié)議提供了一種分布式的、動態(tài)的方法來解決在鏈路和節(jié)點出現(xiàn)故障時尋找最小開銷路徑以及改變邊路徑開銷的問題。因此所有被廣泛使用的路由協(xié)議都采用分布式算法。然而分布式算法會產(chǎn)生這樣的問題:在同一時刻,兩個路由器對于某個目的地的最短路徑有不同的判斷。事實上,每個路由器可能會認為另一個路由器到目標更近一些,從而決定將分組發(fā)往另一個路由器。顯然,這樣的分組將會陷入循環(huán),直到這兩個路由器之間的矛盾得以解決。因此這是路由器必須解決的問題。
由于網(wǎng)絡的路由匯聚時間的存在,路由表中新的路由或更改的路由不能夠很快在全網(wǎng)中穩(wěn)定,使得有不一致的路由存在,于是會產(chǎn)生路由環(huán)。
2 RIP解決路由環(huán)的機制和實現(xiàn):
解決路由選擇環(huán)問題的根本方法有以下幾種:
1) 定義最大跳數(shù):指定最大跳數(shù)來防止路由回環(huán)。路由循環(huán)的問題也可用描述為跳數(shù)無限(counting to infinity)。其中的一個解決辦法就是定義最大跳數(shù)(maximum hop count)。 RIP是這樣定義最大跳數(shù)的:最大跳數(shù)為15,第16跳為不可達。但是這樣不能根本性的解決路由循環(huán)的問題。
2) 水平分割:不會接收到由自身傳達出去的路由信息。水平分割是一種避免路由環(huán)出現(xiàn)和加快路由匯聚的技術。由于路由器可能收到它自己發(fā)送的路由信息,而這種信息是無用的,水平分割技術不反向通告任何從終端收到的路由更新信息,而只通告那些不會由于計數(shù)到無窮而清除的路由。
3) 路由抑制:路由器將該路由信息的跳數(shù)標記為無限大。假設有路由器B和C形成的網(wǎng)絡,當路由器C的直連網(wǎng)絡無法到達時,路由器C并不立即刪除對應網(wǎng)絡的路由條目,而是將跳數(shù)字值標識為無限大,即不可到達。在C下次更新信息的時候,將把這個不可到達信息發(fā)送給鄰接路由器。以避免由于C直接刪除路由條目,而導致的路由環(huán)路。
4) 反向抑制:超越了水平分割,可以說是水平分割的一種增強形式,在3的情況下,C發(fā)送某個網(wǎng)路不可到達的信息給鄰接路由器B后,B并不立即更新路由條目為不可到達,而是設置對應路由條目為Possible Down,然后再次將這個Possible Down信息發(fā)送給C(這種情況已經(jīng)打破了水平分割的原則,但是也僅允許這種特例才能打破水平分割原則),其目的在于,要求C確認是否真的不可到達,同時也是防止C收到的是其他路由器的錯誤信息。通常情況下,反向抑制的水平分割比普通的水平分割更安全。兩個相連的網(wǎng)關相互發(fā)送尺度為16的逆向路徑,就可以直接避免回路。
5) 抑制計時Hold-Down 計時:路由器在Hold-Down時間內(nèi)將該條記錄標記為possibly down 以使其他路由器能夠重新計算網(wǎng)絡結構的變化。當一條路由信息無效之后,在一段時間內(nèi),這條路由都會是處于抑制狀態(tài),即在一定時間內(nèi),不會再接收關于同一目的地址的路由更新。如果,路由器從一個網(wǎng)段上得知某條路徑已失效,隨后又馬上在另一個網(wǎng)段上得知這個路徑是有效的,然而針對這個路徑有效的信息往往是不正確的,抑制計時就是避免了這個問題,而且,當一條鏈路頻繁起停的時候,抑制計時也能夠減少路由的浮動,同時提高網(wǎng)絡的穩(wěn)定性。它使用了觸發(fā)更新(trigger update)來重新設定Hold-Down計時器。
6) 觸發(fā)更新:當路由表發(fā)生變化時路由器立即發(fā)送更新消息。觸發(fā)更新和一般的更新是有區(qū)別的,當路由表發(fā)生變化的時候,更新報文會立即對相鄰的所有路由器廣播,而不是像一般的更新那樣等待30秒的更新周期。同樣的,當路由器剛啟動RIP時,它廣播請求報文,收到此廣播的相鄰路由器就不必等到下一個更新周期,就會立即應答一個更新報文。這樣,網(wǎng)絡拓撲的變化會以最快的速度在網(wǎng)絡上傳播開,由此也大大降低了路由循環(huán)的產(chǎn)生。
但是如果出現(xiàn)觸發(fā)更新和周期性更新同時發(fā)送的情況時,沒有收到觸發(fā)更新的網(wǎng)關就還是會發(fā)送不存在的路徑。因為網(wǎng)關有可能會先收到觸發(fā)更新,然后再收到錯誤的周期更新。這樣就會產(chǎn)生局部的錯誤路徑。觸發(fā)更新沒有辦法及時發(fā)送,就會存在記數(shù)到無窮大的情況。
通過以上6種方法,我們能有效地抑制距離向量路由選擇環(huán),當然這些方法不是絕對的,總的可以總結在以下幾點:
1) 定義最大跳數(shù):指定最大跳數(shù)來防止路由回環(huán)。
2) 水平分割:不會接收到由自身傳達出去的路由信息。
3) 路由抑制:路由器將該路由信息的跳數(shù)標記為無限大。
4) 反向抑制:可以說是水平分割的一種增強形式。
5) 抑制計時Hold-Down 計時:路由器在Hold-Down時間內(nèi)將該條記錄標記為possibly down 以使其他路由器能夠重新計算網(wǎng)絡結構的變化。
6) 觸發(fā)更新:當路由表發(fā)生變化時路由器立即發(fā)送更新消息。
綜上所訴,這些方法都有各自的一些缺點和優(yōu)勢,這就要求我們在實際應用中靈活地運用不同的方法,在不同的情況和條件下采用最合適的方法,以達到最好的效果!
參考文獻:
[1] 劉勇編.計算機網(wǎng)絡及互連技術[M].北京:人民郵電出版社,2001.
[2] 燕存正,陳方勇.實用網(wǎng)絡技術教程[M].北京:電子工業(yè)出版社,2001.
[3] [美]Pete Loshin著.劉謙,蘇建平,王軍平譯.TCP/IP透徹理解[M].北京:電子工業(yè)出版社,2003.