路由基礎


路由是把信息從源穿過網絡傳遞到目的的行爲,在路上,至少遇到一箇中間節點。路由一般與橋接來對比,在粗心的人看來,它們彷佛完成的是一樣的事。它們的主要區別在於橋接發生在OSI參考協議的第二層(連接層),而路由發生在第三層(網絡層)。這一區別使兩者在傳遞信息的過程當中使用不一樣的信息,從而以不一樣的方式來完成其任務。
路由的話題早已在計算機界出現,但直到八十年代中期纔得到商業成功,這一時間延遲的主要緣由是七十年代的網絡很簡單,後來大型的網絡才較爲廣泛。
2、路由的組成
路由包含兩個基本的動做:肯定最佳路徑和經過網絡傳輸信息。在路由的過程當中,後者也稱爲(數據)交換。交換相對來講比較簡單,而選擇路徑很複雜。
一、路徑選擇
metric是路由算法用以肯定到達目的地的最佳路徑的計量標準,如路徑長度。爲了幫助選路,路由算法初始化並維護包含路徑信息的路由表,路徑信息根據使用的路由算法不一樣而不一樣。
路由算法根據許多信息來填充路由表。目的/下一跳地址對告知路由器到達該目的最佳方式是把分組發送給表明「下一跳」的路由器,當路由器收到一個分組,它就檢查其目標地址,嘗試將此地址與其「下一跳」相聯繫。下表爲一個目的/下一跳路由表的例子。
表5-1 目的/下一跳對應表決定數據的最佳路徑
路由表還能夠包括其它信息。路由表比較metric以肯定最佳路徑,這些metric根據所用的路由算法而不一樣,下面將介紹常見的metric。路由器彼此通訊,經過交換路由信息維護其路由表,路由更新信息一般包含所有或部分路由表,經過分析來自其它路由器的路由更新信息,該路由器能夠創建網絡拓撲細圖。路由器間發送的另外一個信息例子是連接狀態廣播信息,它通知其它路由器發送者的連接狀態,連接信息用於創建完整的拓撲圖,使路由器能夠肯定最佳路徑。
二、交換
交換算法相對而言較簡單,對大多數路由協議而言是相同的,多數狀況下,某主機決定向另外一個主機發送數據,經過某些方法得到路由器的地址後,源主機發送指向該路由器的物理(MAC)地址的數據包,其協議地址是指向目的主機的。
路由器查看了數據包的目的協議地址後,肯定是否知道如何轉發該包,若是路由器不知道如何轉發,一般就將之丟棄。若是路由器知道如何轉發,就把目的物理地址變成下一跳的物理地址並向之發送。下一跳可能就是最終的目的主機,若是不是,一般爲另外一個路由器,它將執行一樣的步驟。當分組在網絡中流動時,它的物理地址在改變,但其協議地址始終不變,以下圖所示。
上面描述了源系統與目的系統間的交換,ISO定義了用於描述此過程的分層的術語。在該術語中,沒有轉發分組能力的網絡設備稱爲端系統(ES--end system),有此能力的稱爲中介系統(IS--intermediate system)。IS又進一步分紅可在路由域內通訊的域內IS(intradomain IS)和既可在路由域內有可在域間通訊的域間IS(interdomain IS)。路由域一般被認爲是統一管理下的一部分網絡,遵照特定的一組管理規則,也稱爲自治系統(autonomous system)。在某些協議中,路由域能夠分爲路由區間,可是域內路由協議仍可用於在區間內和區間之間交換數據。
3、路由算法
路由算法能夠根據多個特性來加以區分。首先,算法設計者的特定目標影響了該路由協議的操做;其次,存在着多種路由算法,每種算法對網絡和路由器資源的影響都不一樣;最後,路由算法使用多種metric,影響到最佳路徑的計算。下面的章節分析了這些路由算法的特性。
一、設計目標
路由算法一般具備下列設計目標的一個或多個:
  • 優化
  • 簡單、低耗
  • 健壯、穩定
  • 快速聚合
  • 靈活性
優化指路由算法選擇最佳路徑的能力,根據metric的值和權值來計算。例若有一種路由算法可能使用跳數和延遲,但可能延遲的權值要大些。固然,路由協議必須嚴格定義計算metric的算法。
路由算法也能夠設計得儘可能簡單。換句話說,路由協議必須高效地提供其功能,儘可能減小軟件和應用的開銷。當實現路由算法的軟件必須運行在物理資源有限的計算機上時高效尤爲重要。
路由算法必須健壯,即在出現不正常或不可預見事件的狀況下必須仍能正常處理,例如硬件故障、高負載和不正確的實現。由於路由器位於網絡的鏈接點,當它們失效時會產生重大的問題。最好的路由算法一般是那些通過了時間考驗,證明在各類網絡條件下都很穩定的算法。
此外,路由算法必須能快速聚合,聚合是全部路由器對最佳路徑達成一致的過程。當某網絡事件使路徑斷掉或不可用時,路由器經過網絡分發路由更新信息,促使最佳路徑的從新計算,最終使全部路由器達成一致。聚合很慢的路由算法可能會產生路由環或網路中斷。
在下圖中的路由環中,某分組在時間t1到達路由器1,路由器1已經更新並知道到達目的的最佳路徑是以路由器2爲下一跳,因而就把該分組轉發給路由器2。可是路由器2尚未更新,它認爲最佳的下一跳是路由器1,因而把該分組發回給路由器1,結果分組在兩個路由器間來回傳遞直到路由器2收到路由更新信息或分組超過了生存期。
路由算法還應該是靈活的,即它們應該迅速、準確地適應各類網絡環境。例如,假定某網段斷掉了,當知道問題後,不少路由算法對一般使用該網段的路徑將迅速選擇次佳的路徑。路由算法能夠設計得可適應網絡帶寬、路由器隊列大小和網絡延遲。
二、算法類型
各路由算法的區別點包括:
  • 靜態與動態
  • 單路徑與多路徑
  • 平坦與分層
  • 主機智能與路由器智能
  • 域內與域間
  • 連接狀態與距離向量
(1)靜態與動態
靜態路由算法很難算得上是算法,只不過是開始路由前由網管創建的表映射。這些映射自身並不改變,除非網管去改動。使用靜態路由的算法較容易設計,在網絡通訊可預測及簡單的網絡中工做得很好。
因爲靜態路由系統不能對網絡改變作出反映,一般被認爲不適用於如今的大型、易變的網絡。九十年代主要的路由算法都是動態路由算法,經過分析收到的路由更新信息來適應網絡環境的改變。若是信息表示網絡發生了變化,路由軟件就從新計算路由併發出新的路由更新信息。這些信息滲入網絡,促使路由器從新計算並對路由表作相應的改變。
動態路由算法能夠在適當的地方以靜態路由做爲補充。例如,最後可選路由(router of last resort),做爲全部不可路由分組的去路,保證了全部的數據至少有方法處理。
(2)單路徑與多路徑
一些複雜的路由協議支持到同一目的的多條路徑。與單路徑算法不一樣,這些多路徑算法容許數據在多條線路上覆用。多路徑算法的優勢很明顯:它們能夠提供更好的吞吐量和可靠性。
(3)平坦與分層
一些路由協議在平坦的空間裏運做,其它的則有路由的層次。在平坦的路由系統中,每一個路由器與其它全部路由器是對等的;在分層次的路由系統中,一些路由器構成了路由主幹,數據從非主幹路由器流向主幹路由器,而後在主幹上傳輸直到它們到達目標所在區域,在這裏,它們從最後的主幹路由器經過一個或多個非主幹路由器到達終點。
路由系統一般設計有邏輯節點組,稱爲域、自治系統或區間。在分層的系統中,一些路由器能夠與其它域中的路由器通訊,其它的則只能與域內的路由器通訊。在很大的網絡中,可能還存在其它級別,最高級的路由器構成了路由主幹。
分層路由的主要優勢是它模擬了多數公司的結構,從而能很好地支持其通訊。多數的網絡通訊發生在小組中(域)。由於域內路由器只須要知道本域內的其它路由器,它們的路由算法能夠簡化,根據所使用的路由算法,路由更新的通訊量能夠相應地減小。
(4)主機智能與路由器智能
一些路由算法假定源結點來決定整個路徑,這一般稱爲源路由。在源路由系統中,路由器只做爲存貯轉發設備,無心識地把分組發向下一跳。其它路由算法假定主機對路徑一無所知,在這些算法中,路由器基於本身的計算決定經過網絡的路徑。前一種系統中,主機具備決定路由的智能,後者則爲路由器具備此能力。
主機智能和路由器智能的折衷實際是最佳路由與額外開銷的平衡。主機智能系統一般能選擇更佳的路徑,由於它們在發送數據前探索了全部可能的路徑,而後基於特定系統對「優化」的定義來選擇最佳路徑。然而肯定全部路徑的行爲一般須要不少的探索通訊量和很長的時間。
(5)域內與域間
一些路由算法只在域內工做,其它的則既在域內也在域間工做。這兩種算法的本質是不一樣的。其遵循的理由是優化的域內路由算法沒有必要也成爲優化的域間路由算法。
(6)連接狀態與距離向量
連接狀態算法(也叫作短路徑優先算法)把路由信息散佈到網絡的每一個節點,不過每一個路由器只發送路由表中描述其本身連接狀態的部分。距離向量算法(也叫作Bellman-Ford算法)中每一個路由器發送路由表的所有或部分,但只發給其鄰居。也就是說,連接狀態算法處處發送較少的更新信息,而距離向量算法只向相鄰的路由器發送較多的更新信息。
因爲連接狀態算法聚合得較快,它們相對於距離算法產生路由環的傾向較小。在另外一方面,連接狀態算法須要更多的CPU和內存資源,所以連接狀態算法的實現和支持較昂貴。雖然有差別,這兩種算法類型在多數環境中均可以工做得很好。
三、路由的metric
路由表中含有由交換軟件用以選擇最佳路徑的信息。可是路由表是怎樣創建的呢?它們包含信息的本質是什麼?路由算法怎樣根據這些信息決定哪條路徑更好呢?
路由算法使用了許多不一樣的metric以肯定最佳路徑。複雜的路由算法能夠基於多個metric選擇路由,並把它們結合成一個複合的metric。經常使用的metric以下:
  • 路徑長度
  • 可靠性
  • 延遲
  • 帶寬
  • 負載
  • 通訊代價
路徑長度是最經常使用的路由metric。一些路由協議容許網管給每一個網絡連接人工賦以代價值,這種狀況下,路由長度是所通過各個連接的代價總和。其它路由協議定義了跳數,即分組在從源到目的的路途中必須通過的網絡產品,如路由器的個數。
可靠性,在路由算法中指網絡連接的可依賴性(一般以位誤率描述),有些網絡連接可能比其它的失效更多,網路失效後,一些網絡連接可能比其它的更易或更快修復。任何可靠性因素均可以在給可靠率賦值時計算在內,一般是由網管給網絡連接賦以metric值。
路由延遲指分組從源經過網絡到達目的所花時間。不少因素影響到延遲,包括中間的網絡連接的帶寬、通過的每一個路由器的端口隊列、全部中間網絡連接的擁塞程度以及物理距離。由於延遲是多個重要變量的混合體,它是個比較經常使用且有效的metric。
帶寬指連接可用的流通容量。在其它全部條件都相等時,10Mbps的以太網連接比64kbps的專線更可取。雖然帶寬是連接可得到的最大吞吐量,可是經過具備較大帶寬的連接作路由不必定比通過較慢連接路由更好。例如,若是一條快速鏈路很忙,分組到達目的所花時間可能要更長。
負載指網絡資源,如路由器的繁忙程度。負載能夠用不少方面計算,包括CPU使用狀況和每秒處理分組數。持續地監視這些參數自己也是很耗費資源的。
通訊代價是另外一種重要的metric,尤爲是有一些公司可能關係運做費用甚於性能。即便線路延遲可能較長,他們也寧願經過本身的線路發送數據而不採用昂貴的公用線路。
可被路由的協議(Routed Protocol)由路由協議(Routing Protocol)傳輸,前者亦稱爲網絡協議。這些網絡協議執行在源與目的設備的用戶應用間通訊所需的各類功能,不一樣的協議中這些功能可能差別很大。網絡協議發生在OSI參考模型的上四層:傳輸層、會話層、表示層和應用層。
術語routed protocol(可被路由的協議)和routing protocol(路由協議)常常被混淆。routed protocol在網絡中被路由,例如IP、DECnet、AppleTalk、Novell NetWare、OSI、Banyan VINES和Xerox Network System(XNS)。而路由協議是實現路由算法的協議,簡單地說,它給網絡協議作導向。路由協議如:IGRP、EIGRP、OSPF、EGP、BGP、IS-IS及RIP等。咱們將陸續介紹上述的各類協議。
相關文章
相關標籤/搜索