帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
路由器(Router)演算法探討
 

【作者: 張士皇】   2000年02月01日 星期二

瀏覽人次:【6316】

前言


上一期的討論中(編按︰68期),筆者介紹了靜態路由與動態路由、距離向量與連結狀態等協定,本篇就讓我們繼續探討RIP(Routing Information Pro-tocol,路由資訊協定),以及實務上會遇到的問題和解決方式。



RIP路由資訊協定


RIP係屬於「內部閘道協定」(Interior Gateway Protocol),定義於RFC 1058。它是由全錄公司(Xerox)所發展,做為「網際網路資料段協定」(Internet Datagram Protocol)的路由演算法,並且在1988年正式被IAB(Internet Architecture Board,公佈各類網際網路標準及監督TCP/IP協定之維護的團體)所採用。它原本沒有打算被做為TCP的路由演算法,但是當RIP被加入Berkeley Software Distribution (BSD) UNIX作業系統內稱做「routed」後,就被廣泛的接受與應用。



使用RIP協定,任一台路由器都可以知道從每一台鄰近路由器到目的地端的最短路徑,然而這路徑不一定是最佳的,因為RIP只知道Hop跨越數目。舉例來說,某台路由器到目的端有兩條路徑,其中一條通過兩段T1,有三個Hop跨越數,但另一條到達目的地的是兩個Hop跨越的128K速率專線;RIP會選擇兩個Hop跨越數的128K專線這條路徑,因為它是Hop跨越數最少也最短的路徑。RIP的封包傳輸是使用UDP(User Datagram Protocol,使用者資料段協定)埠號520上操作,最大長度512Bytes。(圖一)是RIP封包的格式︰




《圖一 RIP封包格式》



各位讀者可以看到,IP address一欄,是4 octets,所以這也就是最大Metric有16的限制。但其值為16,表示該網路是無法到達的。



RIP在實務上有兩種存在模式,即主動與被動。當其為主動(Active)模式時,RIP會傾聽(Listen)來自其他路由器的RIP廣播並建立自己的路由表,而且會送出廣播去回應來自其他路由器與機器的要求。在被動模式(Passive),這時候RIP只傾聽RIP更新資訊;可能建立自己的路由表也可能不會建立。如果有建立自己的路由表,那麼在有需要的時候,就不必向其他的路由器要求資訊。



使用RIP被動模式時,路由器會自己維護一個通往其他網路最短路徑(即最少Hop跨越數)的路由表,並且標示出由哪一路由器作轉送,這時候就會佔用RAM空間來儲存這些資訊;如果沒有Passive被動模式,那路由器就需要一個預設閘道器(Default Gateway)的資料,來指明當有資料封包要傳送到目的地端時,路由器該把資料封包交給預設閘道器(Default Gateway)處理。



在TCP/IP網路上,有一種預設路由(Default Route)的觀念,預設路由會在兩個地方:路由器與使用TCP/IP的電腦中;在路由表中「0.0.0.0」就是表示預設路由,這是為了當路由器接收到資料封包,而該資料封包的目的地不在路由表中,它就根據預設的路由,將資料封包轉往另一台路由器。



RIP的問題


介紹了RIP的運作後,讓我們看看它會產生的問題和缺陷。首先,當路由器在RIP協定運作下,收到來自鄰近路由器更新的路由表資訊,那麼,如果其中一台在更新路由表資訊的時候,發生了一項運算錯誤,則網路上所有的路由器都會收到這項錯誤的結果資訊。其次,路由表可能會相當龐大,RIP協定每隔30秒對網路廣播一次(為255.255.255.255,也就是資料鏈結層的位址欄都為FF)。第三,如前述所提到,RIP是以到達目的地端最少Hop跨越數、最短距離為基礎,並沒有考慮到路徑的傳送效能。第四是RIP限制了傳送到其他網路的Hop跨越數極限是15,一旦該值為16就會被認為無法到達,所以使得RIP在實務上無法適用在大型網路上。



接下來,我們來看看另一範圍的問題,請參閱(圖二):




《圖二 路由器運作架構示意圖》



各位讀者可以看到,路由器A連接網路1,發佈它自己連往網路1的跨越是1,路由器B收到之後,將跨越值加1,更新它自己到達網路1的跨越數是2,接著路由器B廣播到網路1的跨越是2,路由器C收到之後,將跨越數加1,更新自己的路由表到網路1的跨越是3。



請各位讀者注意,路由器A在網路1,但路由器B為何仍廣播可到達網路1的訊息給路由器A?這不是會困惑路由器A該網路1是不是本地的呢?請讀者要認知的是︰RIP只在當跨越數比路由表裡頭的值更低、傾聽到的是最新的或是當路徑中下一路由器改變了到目的地的跨越數時,才會去更新自己的路由表。



這樣一來,當路由器A與網路1斷線了,這時候的RIP會產生一個很嚴重的問題;這時路由器A會更新自己的路由表,設定通往網路1的跨越值為16(16表示無法到達),但是要等到每隔30秒廣播一次的更新時,將這訊息廣播出去,但是如果路由器B在路由器A之前廣播它的路由表資訊,那麼這時候路由器A會注意到路由器B有一個到達網路1的較短路徑,因為這時候路由器B的路由表資訊到達網路1跨越值為2,而路由器A是16,於是路由器A會更改自己的路由表,把通往網路1的跨越數從路由器B學來加上1,變成跨越數3,這就形成了路由器A和路由器B之間的「迴圈」(loop),而在這個例子中,一個目的地為1的封包會在路由器A與路由器B之間傳送,直到TTL值被減為0為止。而清除掉失效的路徑,讓其他路由器知道路由器A到網路1是無法到達的,這樣一個過程稱為「收斂時間」(Convergence Time)。



RIP問題解決之道


為了解決這樣的問題,RIP中加入有四種解決方法:



範圍分割(Split Horizon):


這個解決方式是路由器不必對收到路由資訊的通訊埠,於網路上再發佈這條路徑。所以,路由器B不會廣播到達網路1的資料給路由器A,防止「迴圈」(loop)的發生。



壓制計時器(Hold-down Timer):


這解決方式是一旦路由器收到有關某網路已經斷線無法到達,它必須忽略路由表更新,實務上通常達60秒之久。但並非所有廠牌路由器都支援該功能,若該路由器沒支援,另一路由器也不支援,則「迴圈」(loop)問題仍然存在。



普以松反轉(Poison Reverse):


它規定一旦路由器偵測到某個網路斷線或連結失效,該路由器會保持現存的路由表,先行廣播該網路的跨越值為16無法到達。



觸發更新(Triggered Update):


與普以松反轉都是幫助縮短「收斂時間」的規則,觸發更新規定路由器在收到某網路斷線不通的資訊後,則立刻廣播它自己的路由表。



結語


限於篇幅關係,筆者將於下次接著介紹IGRP(Interior Gateway Routing Protocol),它是由Cisco於1980年所提出,於1990年發展了Enhanced IGRP,也屬於「距離向量協定」的一種。另外亦將介紹在實務運作上蠻艱深的OSPF(Open Shortest Path First),它屬於「連結狀態協定」的一種,支援IP的TOS(Type of Service),可同時維護八個路由表(Routing Tables),在此謝謝IBM公司提供資訊。



(作者任職於將盟公司衛生醫療資訊事業部)



備註


感謝在世界先進積體電路公司服務的洪婉菁小姐校稿,以及部門內行政助理陳芬卿和廖育茹兩位小姐幫忙整理打字,讓筆者在建置http://www.hicare.net網站百忙中,得以順利完成本篇。



相關文章
軟性顯示器的技術與發展關鍵
簡介新一代網路電話標準SIP
創造「知識經濟」最有效的武器─專利
網路設備趨勢:匯流、安全、服務高品質
探究SVG的發展現況
comments powered by Disqus
相關討論
  相關新聞
» NETGEAR引進Wi-Fi 7無線路由器 發揮AI平台最大效益
» 【COMPUTEX】經濟部攜手明泰、光寶、聯發科 推出「O-RAN基站」三頻全產品線
» 宏正AI創新連結浸體驗 COMPUTEX 2024展示賦能應用方案
» 歐盟6G計畫主席來台 與經濟部簽約合作跨國研發
» 經部領軍台廠重回MWC 秀5G電信與系統商最佳夥伴實力


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.18.224.65.198
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw