路由,什么是路由

1,什么是路由路由是指路由器從一個接口上收到數據包,根據數據包的目的地址進行定向并轉發到另一個接口的過程 。路由可以分為兩類:靜態路由和動態路由 。在靜態路由中,所有路由都是在一個路由器中手動設置的 。因此,如果網絡有任何變化,路由也不會有任何變化,除非有人手動更正它 。在動態路由中,路由是由軟件根據網絡的當前狀態來設置的 。網絡變化,如鏈路故障、流量變化等,將在每一個離散時間步更新 。根據這些信息,將在每個時間步長確定新路線 。動態路由優于靜態路由,因為路由器會根據網絡中的變化進行實時更新 。

路由,什么是路由


2,路由是什么意思路由是把信息從源穿過網絡傳遞到目的的行為,在路上,至少遇到一個中間節點 。路由通常與橋接來對比,在粗心的人看來,它們似乎完成的是同樣的事 。它們的主要區別在于橋接發生在OSI參考協議的第二層(鏈接層),而路由發生在第三層(網絡層) 。這一區別使二者在傳遞信息的過程中使用不同的信息,從而以不同的方式來完成其任務 。路由的話題早已在計算機界出現,但直到八十年代中期才獲得商業成功,這一時間延遲的主要原因是七十年代的網絡很簡單,后來大型的網絡才較為普遍 。二、路由的組成 路由包含兩個基本的動作:確定最佳路徑和通過網絡傳輸信息 。在路由的過程中,后者也稱為(數據)交換 。交換相對來說比較簡單,而選擇路徑很復雜 。1、路徑選擇 metric是路由算法用以確定到達目的地的最佳路徑的計量標準,如路徑長度 。為了幫助選路,路由算法初始化并維護包含路徑信息的路由表,路徑信息根據使用的路由算法不同而不同 。路由算法根據許多信息來填充路由表 。目的/下一跳地址對告知路由器到達該目的最佳方式是把分組發送給代表“下一跳”的路由器,當路由器收到一個分組,它就檢查其目標地址,嘗試將此地址與其“下一跳”相聯系 。下表為一個目的/下一跳路由表的例子 。表5-1 目的/下一跳對應表決定數據的最佳路徑 http://www.linkwan.com/gb/routertech/netsys/images/route1.gif 路由表還可以包括其它信息 。路由表比較metric以確定最佳路徑,這些metric根據所用的路由算法而不同,下面將介紹常見的metric 。路由器彼此通信,通過交換路由信息維護其路由表,路由更新信息通常包含全部或部分路由表,通過分析來自其它路由器的路由更新信息,該路由器可以建立網絡拓撲細圖 。路由器間發送的另一個信息例子是鏈接狀態廣播信息,它通知其它路由器發送者的鏈接狀態,鏈接信息用于建立完整的拓撲圖,使路由器可以確定最佳路徑 。2、交換 交換算法相對而言較簡單,對大多數路由協議而言是相同的,多數情況下,某主機決定向另一個主機發送數據,通過某些方法獲得路由器的地址后,源主機發送指向該路由器的物理(MAC)地址的數據包,其協議地址是指向目的主機的 。路由器查看了數據包的目的協議地址后,確定是否知道如何轉發該包,如果路由器不知道如何轉發,通常就將之丟棄 。如果路由器知道如何轉發,就把目的物理地址變成下一跳的物理地址并向之發送 。下一跳可能就是最終的目的主機,如果不是,通常為另一個路由器,它將執行同樣的步驟 。當分組在網絡中流動時,它的物理地址在改變,但其協議地址始終不變,如下圖所示 。http://www.linkwan.com/gb/routertech/netsys/images/route2.gif 上面描述了源系統與目的系統間的交換,ISO定義了用于描述此過程的分層的術語 。在該術語中,沒有轉發分組能力的網絡設備稱為端系統(ES--end system),有此能力的稱為中介系統(IS--intermediate system) 。IS又進一步分成可在路由域內通信的域內IS(intradomain IS)和既可在路由域內有可在域間通信的域間IS(interdomain IS) 。路由域通常被認為是統一管理下的一部分網絡,遵守特定的一組管理規則,也稱為自治系統(autonomous system) 。在某些協議中,路由域可以分為路由區間,但是域內路由協議仍可用于在區間內和區間之間交換數據 。三、路由算法 路由算法可以根據多個特性來加以區分 。首先,算法設計者的特定目標影響了該路由協議的操作;其次,存在著多種路由算法,每種算法對網絡和路由器資源的影響都不同;最后,路由算法使用多種metric,影響到最佳路徑的計算 。下面的章節分析了這些路由算法的特性 。1、設計目標 路由算法通常具有下列設計目標的一個或多個: 優化 簡單、低耗 健壯、穩定 快速聚合 靈活性 優化指路由算法選擇最佳路徑的能力,根據metric的值和權值來計算 。例如有一種路由算法可能使用跳數和延遲,但可能延遲的權值要大些 。當然,路由協議必須嚴格定義計算metric的算法 。路由算法也可以設計得盡量簡單 。換句話說,路由協議必須高效地提供其功能,盡量減少軟件和應用的開銷 。當實現路由算法的軟件必須運行在物理資源有限的計算機上時高效尤其重要 。路由算法必須健壯,即在出現不正?;虿豢深A見事件的情況下必須仍能正常處理,例如硬件故障、高負載和不正確的實現 。因為路由器位于網絡的連接點,當它們失效時會產生重大的問題 。最好的路由算法通常是那些經過了時間考驗,證實在各種網絡條件下都很穩定的算法 。此外,路由算法必須能快速聚合,聚合是所有路由器對最佳路徑達成一致的過程 。當某網絡事件使路徑斷掉或不可用時,路由器通過網絡分發路由更新信息,促使最佳路徑的重新計算,最終使所有路由器達成一致 。聚合很慢的路由算法可能會產生路由環或網路中斷 。在下圖中的路由環中,某分組在時間t1到達路由器1,路由器1已經更新并知道到達目的的最佳路徑是以路由器2為下一跳,于是就把該分組轉發給路由器2 。但是路由器2還沒有更新,它認為最佳的下一跳是路由器1,于是把該分組發回給路由器1,結果分組在兩個路由器間來回傳遞直到路由器2收到路由更新信息或分組超過了生存期 。http://www.linkwan.com/gb/routertech/netsys/images/route3.gif 路由算法還應該是靈活的,即它們應該迅速、準確地適應各種網絡環境 。例如,假定某網段斷掉了,當知道問題后,很多路由算法對通常使用該網段的路徑將迅速選擇次佳的路徑 。路由算法可以設計得可適應網絡帶寬、路由器隊列大小和網絡延遲 。2、算法類型 各路由算法的區別點包括: 靜態與動態 單路徑與多路徑 平坦與分層 主機智能與路由器智能 域內與域間 鏈接狀態與距離向量 (1)靜態與動態 靜態路由算法很難算得上是算法,只不過是開始路由前由網管建立的表映射 。這些映射自身并不改變,除非網管去改動 。使用靜態路由的算法較容易設計,在網絡通信可預測及簡單的網絡中工作得很好 。由于靜態路由系統不能對網絡改變做出反映,通常被認為不適用于現在的大型、易變的網絡 。九十年代主要的路由算法都是動態路由算法,通過分析收到的路由更新信息來適應網絡環境的改變 。如果信息表示網絡發生了變化,路由軟件就重新計算路由并發出新的路由更新信息 。這些信息滲入網絡,促使路由器重新計算并對路由表做相應的改變 。動態路由算法可以在適當的地方以靜態路由作為補充 。例如,最后可選路由(router of last resort),作為所有不可路由分組的去路,保證了所有的數據至少有方法處理 。(2)單路徑與多路徑 一些復雜的路由協議支持到同一目的的多條路徑 。與單路徑算法不同,這些多路徑算法允許數據在多條線路上復用 。多路徑算法的優點很明顯:它們可以提供更好的吞吐量和可靠性 。(3)平坦與分層 一些路由協議在平坦的空間里運作,其它的則有路由的層次 。在平坦的路由系統中,每個路由器與其它所有路由器是對等的;在分層次的路由系統中,一些路由器構成了路由主干,數據從非主干路由器流向主干路由器,然后在主干上傳輸直到它們到達目標所在區域,在這里,它們從最后的主干路由器通過一個或多個非主干路由器到達終點 。路由系統通常設計有邏輯節點組,稱為域、自治系統或區間 。在分層的系統中,一些路由器可以與其它域中的路由器通信,其它的則只能與域內的路由器通信 。在很大的網絡中,可能還存在其它級別,最高級的路由器構成了路由主干 。分層路由的主要優點是它模擬了多數公司的結構,從而能很好地支持其通信 。多數的網絡通信發生在小組中(域) 。因為域內路由器只需要知道本域內的其它路由器,它們的路由算法可以簡化,根據所使用的路由算法,路由更新的通信量可以相應地減少 。(4)主機智能與路由器智能 一些路由算法假定源結點來決定整個路徑,這通常稱為源路由 。在源路由系統中,路由器只作為存貯轉發設備,無意識地把分組發向下一跳 。其它路由算法假定主機對路徑一無所知,在這些算法中,路由器基于自己的計算決定通過網絡的路徑 。前一種系統中,主機具有決定路由的智能,后者則為路由器具有此能力 。主機智能和路由器智能的折衷實際是最佳路由與額外開銷的平衡 。主機智能系統通常能選擇更佳的路徑,因為它們在發送數據前探索了所有可能的路徑,然后基于特定系統對“優化”的定義來選擇最佳路徑 。然而確定所有路徑的行為通常需要很多的探索通信量和很長的時間 。(5)域內與域間 一些路由算法只在域內工作,其它的則既在域內也在域間工作 。這兩種算法的本質是不同的 。其遵循的理由是優化的域內路由算法沒有必要也成為優化的域間路由算法 。(6)鏈接狀態與距離向量 鏈接狀態算法(也叫做短路徑優先算法)把路由信息散布到網絡的每個節點,不過每個路由器只發送路由表中描述其自己鏈接狀態的部分 。距離向量算法(也叫做Bellman-Ford算法)中每個路由器發送路由表的全部或部分,但只發給其鄰居 。也就是說,鏈接狀態算法到處發送較少的更新信息,而距離向量算法只向相鄰的路由器發送較多的更新信息 。由于鏈接狀態算法聚合得較快,它們相對于距離算法產生路由環的傾向較小 。在另一方面,鏈接狀態算法需要更多的CPU和內存資源,因此鏈接狀態算法的實現和支持較昂貴 。雖然有差異,這兩種算法類型在多數環境中都可以工作得很好 。3、路由的metric 路由表中含有由交換軟件用以選擇最佳路徑的信息 。但是路由表是怎樣建立的呢?它們包含信息的本質是什么?路由算法怎樣根據這些信息決定哪條路徑更好呢? 路由算法使用了許多不同的metric以確定最佳路徑 。復雜的路由算法可以基于多個metric選擇路由,并把它們結合成一個復合的metric 。常用的metric如下: 路徑長度 可靠性 延遲 帶寬 負載 通信代價 路徑長度是最常用的路由metric 。一些路由協議允許網管給每個網絡鏈接人工賦以代價值,這種情況下,路由長度是所經過各個鏈接的代價總和 。其它路由協議定義了跳數,即分組在從源到目的的路途中必須經過的網絡產品,如路由器的個數 ??煽啃裕诼酚伤惴ㄖ兄妇W絡鏈接的可依賴性(通常以位誤率描述),有些網絡鏈接可能比其它的失效更多,網路失效后,一些網絡鏈接可能比其它的更易或更快修復 。任何可靠性因素都可以在給可靠率賦值時計算在內,通常是由網管給網絡鏈接賦以metric值 。路由延遲指分組從源通過網絡到達目的所花時間 。很多因素影響到延遲,包括中間的網絡鏈接的帶寬、經過的每個路由器的端口隊列、所有中間網絡鏈接的擁塞程度以及物理距離 。因為延遲是多個重要變量的混合體,它是個比較常用且有效的metric 。帶寬指鏈接可用的流通容量 。在其它所有條件都相等時,10Mbps的以太網鏈接比64kbps的專線更可取 。雖然帶寬是鏈接可獲得的最大吞吐量,但是通過具有較大帶寬的鏈接做路由不一定比經過較慢鏈接路由更好 。例如,如果一條快速鏈路很忙,分組到達目的所花時間可能要更長 。負載指網絡資源,如路由器的繁忙程度 。負載可以用很多方面計算,包括CPU使用情況和每秒處理分組數 。持續地監視這些參數本身也是很耗費資源的 。通信代價是另一種重要的metric,尤其是有一些公司可能關系運作費用甚于性能 。即使線路延遲可能較長,他們也寧愿通過自己的線路發送數據而不采用昂貴的公用線路 。

推薦閱讀