動態選路協議(RIP)
1.引言
對于靜態選路,在配置接口時,以默認方式生成路由表項(對于直接連接的接口),并通過r o u t e命令增加表項(通常從系統自引導程序文件),或是通過I C M P重定向生成表項(通常是在默認方式出錯的情況下)。在網絡很小,且與其他網絡只有單個連接點且沒有多余路由時,采用這種方法是可行的。如果上述三種情況不能全部滿足,通常使用動態選路。
動態選路主要運用R I P,即選路信息協議(Routing Infromation Protocol),大多數T C P / I P實現都提供這個應用廣泛的協議。
2.動態選路
當相鄰路由器之間進行通信,以告知對方每個路由器當前所連接的網絡,這時就出現了動態選路。路由器之間必須采用選路協議進行通信,這樣的選路協議有很多種。路由器上有一個進程稱為路由守護程序(routing daemon),它運行選路協議,并與其相鄰的一些路由器進行通信。
3.RIP:選路信心協議
3.1 RIP報文格式
RIP報文包含中在UDP數據報中。這里只總結版本1,對于版本2參考tcp/ip(v1)。
命令字段為1表示請求,2表示應答。還有兩個舍棄不用的命令( 3和4),兩個非正式的命令:輪詢( 5)和輪詢表項( 6)。請求表示要求其他系統發送其全部或部分路由表。應答則包含發送者全部或部分路由表。版本字段通常為1,而第2版R I P將此字段設置為2。緊跟在后面的2 0字節指定地址系列( address family)(對于I P地址來說,其值是2)、I P地址以及相應的度量。在本節的后面可以看出, R I P的度量是以跳計數的。采用這種2 0字節格式的R I P報文可以通告多達2 5條路由。上限2 5是用來保證R I P報文的總長度為2 0×25 + 4 = 504,小于5 1 2字節。由于每個報文最多攜帶2 5個路由,因此為了發送整個路由表,經常需要多個報文。有一個注意點:跳數的最大值是1 5,這意味著R I P只能用在主機間最大跳數值為1 5的A S(自治系統)內。度量為1 6表示到無路由到達該I P地址。最大跳數為15限制了使用RIP網絡的大小。
3.2 運行步驟
讓我們來看一下采用R I P協議的r o u t e d程序正常運行的結果。R I P常用的U D P端口號是5 2 0。
1)初始化:在啟動一個路由守護程序時,它先判斷啟動了哪些接口,并在每個接口上發送一個請求報文,要求其他路由器發送完整路由表。在點對點鏈路中,該請求是發送給其他終點的。如果網絡支持廣播的話,這種請求是以廣播形式發送的。這種請求報文的命令字段為1,但地址系列字段設置為0,而度量字段設置為1 6。這是一種要求另一端完整路由表的特殊請求報文。
2)接收到請求。如果這個請求是剛才提到的特殊請求,那么路由器就將完整的路由表發送給請求者。否則,就處理請求中的每一個表項:如果有連接到指明地址的路由,則將度量設置成我們的值,否則將度量置為1 6(度量為1 6是一種稱為“無窮大”的特殊值,它意味著沒有到達目的的路由)。然后發回響應。
3)接收到響應。使響應生效,可能會更新路由表??赡軙黾有卤眄?,對已有的表項進行修改,或是將已有表項刪除。
4)定期選路更新。每過3 0秒,所有或部分路由器會將其完整路由表發送給相鄰路由器。發送路由表可以是廣播形式的(如在以太網上),或是發送給點對點鏈路的其他終點的。
5)觸發更新。每當一條路由的度量發生變化時,就對它進行更新。不需要發送完整路由表,而只需要發送那些發生變化的表項。
每條路由都有與之相關的定時器。如果運行R I P的系統發現一條路由在3分鐘內未更新,就將該路由的度量設置成無窮(16),并標注為刪除。這意味著已經在6個3 0秒更新時間里沒收到通告該路由的路由器的更新了。再過6 0秒,將從本地路由表中刪除該路由,以保證該路由的失效已被傳播開。



















