rip的工作原理

                                                  RIP工作原理


RIP協議的全稱是路由信息協議(Routing Information Protocol),它是一種內部網關協議(IGP),用於一個自治系統(AS)內的路由信息的傳遞。RIP協議是基於距離矢量算法(Distance Vector Algorithms)的,它使用“跳數”,即metric來衡量到達目標地址的路由距離。
 
二、該協議的侷限性
1、協議中規定,一條有效的路由信息的度量(metric)不能超過15,這就使得該協議不能應用於很大型的網絡,應該說正是由於設計者考慮到該協議只適合於小型網絡所以才進行了這一限制。對於metric爲16的目標網絡來說,即認爲其不可到達。
2、該路由協議應用到實際中時,很容易出現“計數到無窮大”的現象,這使得路由收斂很慢,在網絡拓撲結構變化以後需要很長時間路由信息才能穩定下來。
3、該協議以跳數,即報文經過的路由器個數爲衡量標準,並以此來選擇路由,這一措施欠合理性,因爲沒有考慮網絡延時、可靠性、線路負荷等因素對傳輸質量和速度的影響。
 
三、RIP(版本1)報文的格式和特性
3.1、RIP(版本1)報文的格式
0 7 15 31
命令字(1字節) 版本(1字節) 必須爲0(2字節)
地址類型標識符(2字節) 必須爲0(2字節)
IP地址
必須爲0
必須爲0
Metric值(1—16)
(最多可以有24個另外的路由,與前20字節具有相同的格式)
 
“命令字”字段爲1時表示RIP請求,爲2時表示RIP應答。地址類型標誌符在實際應用中總是爲2,即地址類型爲IP地址。“IP地址”字段表明目的網絡地址,“Metric”字段表明了到達目的網絡所需要的“跳數”。
 
3.2. RIP的特性
(1)路由信息更新特性:
路由器最初啓動時只包含了其直連網絡的路由信息,並且其直連網絡的metric值爲1,然後它向周圍的其他路由器發出完整路由表的RIP請求(該請求報文的“IP地址”字段爲0.0.0.0)。路由器根據接收到的RIP應答來更新其路由表,具體方法是添加新的路由表項,並將其metric值加1。如果接收到與已有表項的目的地址相同的路由信息,則分下面三種情況分別對待:第一種情況,已有表項的來源端口與新表項的來源端口相同,那麼無條件根據最新的路由信息更新其路由表;第二種情況,已有表項與新表項來源於不同的端口,那麼比較它們的metric值,將metric值較小的一個最爲自己的路由表項;第三種情況,新舊錶項的metric值相等,普遍的處理方法是保留舊的表項。
路由器每30秒發送一次自己的路由表(以RIP應答的方式廣播出去)。針對某一條路由信息,如果180秒以後都沒有接收到新的關於它的路由信息,那麼將其標記爲失效,即metric值標記爲16。在另外的120秒以後,如果仍然沒有更新信息,該條失效信息被刪除。
2)RIP版本1對RIP報文中“版本”字段的處理:
0:忽略該報文。
1:版本1報文,檢查報文中“必須爲0”的字段,若不符合規定,忽略該報文。
>1:不檢查報文中“必須爲0”的字段,僅處理RFC 1058中規定的有意義的字段。因此,運行RIP版本1的機器能夠接收處理RIP版本2的報文,但會丟失其中的RIP版本2新規定的那些信息。
 
(3)RIP版本1對地址的處理
RIP版本1不能識別子網網絡地址,因爲在其傳送的路由更新報文中不包含子網掩碼,因此RIP路由信息要麼是主機地址,用於點對點鏈路的路由;要麼是A、B、C類網絡地址,用於以太網等的路由;另外,還可以是0.0.0.0,即缺省路由信息。
 
(4)計數到無窮大(Counting to Infinity)
前面在RIP的侷限性一部分提到了可能出現的計數到無窮大的現象,下面就來分析一下該現象的產生原因與過程。考察下面的簡單網絡:
c(目的網絡)----router A------router B
在正常情況下,對於目標網絡,A路由器的metric值爲1,B路由器的metric值爲2。當目標網絡與A路由器之間的鏈路發生故障而斷掉以後:
c(目的網絡)--||--router A------router B
A路由器會將針對目標網絡C的路由表項的metric值置爲16,即標記爲目標網絡不可達,並準備在每30秒進行一次的路由表更新中發送出去,如果在這條信息還未發出的時候,A路由器收到了來自B的路由更新報文,而B中包含着關於C的metric爲2的路由信息,根據前面提到的路由更新方法,路由器A會錯誤的認爲有一條通過B路由器的路徑可以到達目標網絡C,從而更新其路由表,將對於目標網絡C的路由表項的metric值由16改爲3,而對於的端口變爲與B路由器相連接的端口。很明顯,A會將該條信息發給B,B將無條件更新其路由表,將metric改爲4;該條信息又從B發向A,A將metric改爲5……最後雙發的路由表關於目標網絡C的metric值都變爲16,此時,才真正得到了正確的路由信息。這種現象稱爲“計數到無窮大”現象,雖然最終完成了收斂,但是收斂速度很慢,而且浪費了網絡資源來發送這些循環的分組。
另外,從這裏我們也可以看出,metric值的最大值的選擇實際上存在着矛盾,如果選得太小,那麼適用的網絡規模太小;如果選得過大,那麼在出現計數到無窮大現象的時候收斂時間會變得很長。
3.3. 爲了提高RIP性能的兩項措施
3.3.1. 水平分割
在上面的“計數到無窮大”現象中,產生的原因是A、B之間互相傳送了“欺騙信息”,那麼針對這種情況,我們自然會想到如果能將這些“欺騙信息”去掉,那麼不就可以在一定程度上避免“計數到無窮大”了嗎。水平分割正是這樣一種解決手段。
“普通的水平分割”是:如果一條路由信息是從X端口學習到的,那麼從該端口發出的路由更新報文中將不再包含該條路由信息。
“帶毒化逆轉的水平分割”是:如果一條路由信息是從X端口學習到的,那麼從該端口發出的路由更新報文中將繼續包含該條路由信息,而且將這條信息的metric置爲16。
“普通的水平分割”能避免欺騙信息的發送,而且減小了路由更新報文的大小,節約了網絡帶寬;“帶毒化逆轉的水平分割”能夠更快的消除路由信息的環路,但是增加了路由更新的負擔。這兩種措施的選擇可根據實際情況進行選擇。
 
3.3.2. 觸發更新
上面的“水平分割”能夠消除兩臺路由器間的欺騙信息的相互循環,但是當牽涉到三臺或者以上的路由器時,效果就有限了。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章