網絡中如何選擇最佳路由路徑
2023-01-29 15:03:53? 來源:?? 閱讀:次
路由算法可以根據多個特性來加以區分。首先,算法規劃者的特定方針影響了該路由協議的操作;其次,存在著多種路由算法,每種算法對網絡和路由器資源的影響都不同;路由算法運用多種metric,影響到路由途徑的計算。下面分析了這些路由算法的特性。
路由算法通常具有下列規劃方針的一個或多個:
◆優化◆簡單、低耗◆健壯、穩定◆快速聚合◆靈活性
優化指路由算法挑選***路由途徑的才能,根據metric的值和權值來計算。例如有一種路由算法或許運用跳數和推遲,但或許推遲的權值要大些。當然,路由協議有必要嚴格界說計算metric的算法。路由算法也可以規劃得盡量簡單。換句話說,路由協議有必要高效地提供其功能,盡量削減軟件和使用的開銷。當實現路由算法的軟件有必要運行在物理資源有限的計算機上時高效尤其重要。路由算法有必要健壯,即在出現不正常或不行預見事件的情況下有必要仍能正常處理,例如硬件故障、高負載和不正確的實現。因為路由器位于網絡的連接點,當它們失效時會產生重大的問題。***的路由算法通常是那些經過了時刻考驗,證實在各種網絡條件下都很穩定的算法。此外,路由算法有必要能快速聚合,聚合是所有路由器對***路由途徑達成一致的進程。當某網絡事件使途徑斷掉或不行用時,路由器經過網絡分發路由更新信息,促進***路由途徑的重新計算,最終使所有路由器達成一致。聚合很慢的路由算法或許會產生路由環或網路中斷。在路由環中,某分組在時刻t1到達路由器1,路由器1已經更新并知道到達意圖的***路由途徑是以路由器2為下一跳,于是就把該分組轉發給路由器2。但是路由器2還沒有更新,它認為***的下一跳是路由器1,于是把該分組發回給路由器1,結果分組在兩個路由器間來回傳遞直到路由器2收到路由更新信息或分組超過了生存期。路由算法還應該是靈活的,即它們應該迅速、準確地習慣各種網絡環境。例如,假定某網段斷掉了,當知道問題后,很多路由算法對通常運用該網段的途徑將迅速挑選次佳的途徑。路由算法可以規劃得可習慣網絡帶寬、路由器隊列大小和網絡推遲。
2、算法類型
各路由算法的區別點包含:
◆靜態與動態◆單途徑與多途徑◆平整與分層◆主機智能與路由器智能◆域內與域間◆鏈接狀況與距離向量
(1)靜態與動態
靜態路由算法很難算得上是算法,只不過是開始路由前由網管建立的表映射。這些映射自身并不改變,除非網管去改動。運用靜態路由的算法較簡單規劃,在網絡通信可預測及簡單的網絡中工作得很好。因為靜態路由體系不能對網絡改變做出反映,通常被認為不適用于現在的大型、易變的網絡。九十年代首要的路由算法都是動態路由算法,經過分析收到的路由更新信息來習慣網絡環境的改變。假如信息表示網絡發生了變化,路由軟件就重新計算路由并發出新的路由更新信息。這些信息滲入網絡,促進路由器重新計算并對路由表做相應的改變。動態路由算法可以在適當的地方以靜態路由作為補充。例如,***可選路由(router of last resort),作為所有不行路由分組的去路,保證了所有的數據至少有方法處理。
(2)單途徑與多途徑
一些雜亂的路由協議支持到同一意圖的多條途徑。與單途徑算法不同,這些多途徑算法允許數據在多條線路上復用。多途徑算法的優點很明顯:它們可以提供更好的吞吐量和可靠性。
(3)平整與分層
一些路由協議在平整的空間里運作,其它的則有路由的層次。在平整的路由體系中,每個路由器與其它所有路由器是對等的;在分層次的路由體系中,一些路由器構成了路由主干,數據從非主干路由器流向主干路由器,然后在主干上傳輸直到它們到達方針所在區域,在這里,它們從的主干路由器經過一個或多個非主干路由器到達終點。路由體系通常規劃有邏輯節點組,稱為域、自治體系或區間。在分層的體系中,一些路由器可以與其它域中的路由器通信,其它的則只能與域內的路由器通信。在很大的網絡中,或許還存在其它等級,骨干級的路由器構成了路由主干。分層路由的首要優點是它模擬了多數公司的結構,從而能很好地支持其通信。多數的網絡通信發生在小組中(域)。因為域內路由器只需求知道本域內的其它路由器,它們的路由算法可以簡化,根據所運用的路由算法,路由更新的通信量可以相應地削減。
(4)主機智能與路由器智能
一些路由算法假定源結點來決議整個途徑,這通常稱為源路由。在源路由體系中,路由器只作為存貯轉發設備,無意識地把分組發向下一跳。其它路由算法假定主機對途徑一無所知,在這些算法中,路由器基于自己的計算決議經過網絡的途徑。前一種體系中,主機具有決議路由的智能,后者則為路由器具有此才能。主機智能和路由器智能的折衷實際是***路由與額外開銷的平衡。主機智能體系通常能挑選更佳的途徑,因為它們在發送數據前探索了所有或許的途徑,然后基于特定體系對“優化”的界說來挑選***路由途徑。然而確認所有途徑的行為通常需求很多的探索通信量和很長的時刻。
(5)域內與域間
一些路由算法只在域內工作,其它的則既在域內也在域間工作。這兩種算法的本質是不同的。其遵從的理由是優化的域內路由算法沒有必要也成為優化的域間路由算法。
(6)鏈接狀況與距離向量
鏈接狀況算法(也叫做短途徑優先算法)把路由信息散布到網絡的每個節點,不過每個路由器只發送路由表中描述其自己鏈接狀況的部分。距離向量算法(也叫做Bellman-Ford算法)中每個路由器發送路由表的全部或部分,但只發給其鄰居。也就是說,鏈接狀況算法到處發送較少的更新信息,而距離向量算法只向相鄰的路由器發送較多的更新信息。因為鏈接狀況算法聚合得較快,它們相對于距離算法產生路由環的傾向較小。在另一方面,鏈接狀況算法需求更多的CPU和內存資源,因而鏈接狀況算法的實現和支持較昂貴。雖然有差異,這兩種算法類型在多數環境中都可以工作得很好。
3、路由的metric
路由表中含有由交換軟件用以挑選***路由途徑的信息。但是路由表是怎樣建立的呢?它們包含信息的本質是什么?路由算法怎樣根據這些信息決議哪條途徑更好呢?路由算法運用了許多不同的metric以確認***路由途徑。雜亂的路由算法可以基于多個metric挑選路由,并把它們結組成一個復合的metric。常用的metric如下:
◆途徑長度◆可靠性◆推遲◆帶寬◆負載◆通信價值
途徑長度是最常用的路由metric。一些路由協議允許網管給每個網絡鏈接人工賦以價值值,這種情況下,路由長度是所經過各個鏈接的價值總和。其它路由協議界說了跳數,即分組在從源到意圖的路途中有必要經過的網絡產品,如路由器的個數。可靠性,在路由算法中指網絡鏈接的可依賴性(通常以位誤率描述),有些網絡鏈接或許比其它的失效更多,網路失效后,一些網絡鏈接或許比其它的更易或更快修復。任何可靠性因素都可以在給可靠率賦值時計算在內,通常是由網管給網絡鏈接賦以metric值。路由推遲指分組從源經過網絡到達意圖所花時刻。很多因素影響到推遲,包含中間的網絡鏈接的帶寬、經過的每個路由器的端口隊列、所有中間網絡鏈接的擁塞程度以及物理距離。因為推遲是多個重要變量的混合體,它是個比較常用且有效的metric。帶寬指鏈接可用的流轉容量。在其它所有條件都相等時,10Mbps的以太網鏈接比64kbps的專線更可取。雖然帶寬是鏈接可獲得的***吞吐量,但是經過具有較大帶寬的鏈接做路由不一定比經過較慢鏈接路由更好。例如,假如一條快速鏈路很忙,分組到達意圖所花時刻或許要更長。
負載指網絡資源,如路由器的繁忙程度。負載可以用很多方面計算,包含CPU運用情況和每秒處理分組數。繼續地監視這些參數自身也是很消耗資源的。通信價值是另一種重要的metric,尤其是有一些公司或許關系運作費用甚于性能。即使線路推遲或許較長,他們也寧愿經過自己的線路發送數據而不采用昂貴的公用線路。