計算機網路 路由演算法

2021-08-02 18:17:58 字數 3614 閱讀 5922

路由演算法,又名選路演算法,可以根據多個特性來加以區分。演算法的目的是找到一條從源路由器到目的路由器的「好」路徑(即具有最低費用的路徑)。演算法設計者的特定目標影響了該路由協議的操作;具體來說存在著多種路由演算法,每種演算法對網路和路由器資源的影響都不同;由於路由演算法使用多種度量標準(metric),從而影響到最佳路徑的計算。
路由演算法通常具有下列設計目標的乙個或多個:優化、簡單、低耗、健壯、穩定、快速聚合、靈活性。

(1)最優化:指路由演算法選擇最佳路徑的能力。根據metric的值和權值來計算。

(2)簡潔性:演算法設計必須簡潔。路由協議在網路中必須高效地提供其功能,儘量減少軟體和應用的開銷。這在當實現路由演算法的軟體必須執行在物理資源有限的計算機上時尤其重要。

(3)堅固性:路由演算法處於非正常或不可預料的環境時,如硬體故障、負載過高或操作失誤時,都能正確執行。由於路由器分布在網路聯接點上,所以在它們出故障時會產生嚴重後果。最好的路由器演算法通常能經受時間的考驗,並在各種網路環境下被證實是可靠的。

(4)快速收斂:收斂是在最佳路徑的判斷上所有路由器達到一致的過程。當某個網路事件引起路由可用或不可用時,路由器就發出更新資訊。路由更新資訊遍及整個網路,引發重新計算最佳路徑,最終達到所有路由器一致公認的最佳路徑。收斂慢的路由演算法會造成路徑迴圈或網路中斷。

(5)靈活性:路由演算法要求可以快速、準確地適應各種網路環境。例如,某個網段發生故障,路由演算法要能很快發現故障,並為使用該網段的所有路由選擇另一條最佳路徑。

路由演算法使用了許多種不同的度量標準去決定最佳路徑。複雜的路由演算法可能採用多種度量來選擇路由,通過一定的加權運算,將它們合併為單個的復合度量、再填入路由表中,作為尋徑的標準。

通常所使用的度量有:路徑長度、可靠性、時延、頻寬、負載、通訊成本等。

路徑長度

路徑長度是最常用的路由metric。一些路由協議允許網管給每個網路鏈結人工賦以代價值,這種情況下,路由長度是所經過各個鏈結的代價總和。其它路由協議定義了跳數,即分組在從源到目的的路途中必須經過的網路產品,如路由器的個數。
可靠性

可靠性,在路由演算法中指網路鏈結的可依賴性(通常以位誤率描述),有些網路鏈結可能比其它的失效更多,網路失效後,一些網路鏈結可能比其它的更易或更快修復。任何可靠性因素都可以在給可靠率賦值時計算在內,通常是由網管給網路鏈結賦以metric值。
路由延遲

路由延遲指分組從源通過網路到達目的所花時間。很多因素影響到延遲,包括中間的網路鏈結的頻寬、經過的每個路由器的埠佇列、所有中間網路鏈結的擁塞程度以及物理距離。因為延遲是多個重要變數的混合體,它是個比較常用且有效的metric。
頻寬

頻寬指鏈結可用的流通容量。在其它所有條件都相等時,10mbps的乙太網鏈結比64kbps的專線更可取。雖然頻寬是鏈結可獲得的最大吞吐量,但是通過具有較大頻寬的鏈結做路由不一定比經過較慢鏈結路由更好。例如,如果一條快速鏈路很忙,分組到達目的所花時間可能要更長。
負載

負載指網路資源,如路由器的繁忙程度。負載可以用很多方面計算,包括cpu使用情況和每秒處理分組數。持續地監視這些引數本身也是很耗費資源的。
通訊代價

通訊代價是另一種重要的metric,尤其是有一些公司可能關心運作費用甚於關心效能。即使線路延遲可能較長,他們也寧願通過自己的線路傳送資料而不採用昂貴的公用線路。
採用ls演算法時,每個路由器必須遵循以下步驟:
ls演算法的步驟流程

1、確認在物理上與之相連的路由器並獲得它們的ip位址。當乙個路由器開始工作後,它首先向整個網路傳送乙個「hello」分組資料報。每個接收到資料報的路由器都將返回一條訊息,其中包含它自身的ip位址。

2、測量相鄰路由器的延時(或者其他重要的網路引數,比如平均流量)。為做到這一點,路由器向整個網路傳送響應分組資料報。每個接收到資料報的路由器返回乙個應答分組資料報。將路程往返時間除以2,路由器便可以計算出延時。(路程往返時間是網路當前延遲的量度,通過乙個分組資料報從遠端主機返回的時間來測量。)該時間包括了傳輸和處理兩部分的時間——也就是將分組資料報傳送到目的地的時間以及接收方處理分組資料報和應答的時間。

3、向網路中的其他路由器廣播自己的資訊,同時也接收其他路由器的資訊。在這一步中,所有的路由器共享它們的知識並且將自身的資訊廣播給其他每乙個路由器。這樣,每乙個路由器都能夠知道網路的結構以及狀態。

4、使用乙個合適的演算法,確定網路中兩個節點之間的最佳路由。在這一步中,路由器選擇通往每乙個節點的最佳路由。它們使用乙個演算法來實現這一點,如dijkstra最短路徑演算法。在這個演算法中,乙個路由器通過收集到的其他路由器的資訊,建立乙個網路圖。這個圖描述網路中的路由器的位置以及它們之間的鏈結關係。每個鏈結都有乙個數字標註,稱為權值或成本。這個數字是延時和平均流量的函式,有時它僅僅表示節點間的躍點數。例如,如果乙個節點與目的地之間有兩條鏈路,路由器將選擇權值最低的鏈路。

dijkstra演算法執行下列步驟

1、路由器建立一張網路圖,並且確定源節點和目的節點,在這個例子裡我們設為v1和v2。然後路由器建立乙個矩陣,稱為「鄰接矩陣」。在這個矩陣中,各矩陣元素表示權值。例如,[i, j]是節點vi與vj之間的鏈路權值。如果節點vi與vj之間沒有鏈路直接相連,它們的權值設為「無窮大」。

2、路由器為網路中的每乙個節點建立一組狀態記錄。此記錄包括三個字段:

a、前序字段——表示當前節點之前的節點。

b、長度字段——表示從源節點到當前節點的權值之和。

c、標號字段——表示節點的狀態。每個節點都處於乙個狀態模式:「永久」或「暫時」。

3、路由器初始化(所有節點的)狀態記錄集引數,將它們的長度設為「無窮大」,標號設為「暫時」。

4、路由器設定乙個t節點。例如,如果設v1是源t節點,路由器將v1的標號更改為「永久」。當乙個標號更改為「永久」後,它將不再改變。乙個t節點僅僅是乙個**而已。

5、路由器更新與源t節點直接相連的所有暫時性節點的狀態記錄集。

6、路由器在所有的暫時性節點中選擇距離v1的權值最低的節點。這個節點將是新的t節點。

7、如果這個節點不是v2(目的節點),路由器則返回到步驟5。

8、如果節點是v2,路由器則向前回溯,將它的前序節點從狀態記錄集中提取出來,如此迴圈,直到提取到v1為止。這個節點列表便是從v1到v2的最佳路由。

鏈路狀態演算法(也稱最短路徑演算法)傳送路由資訊到網際網路上所有的結點,然而對於每個路由器,僅傳送它的路由表中描述了其自身鏈路狀態的那一部分。
距離向量演算法(也稱為bellman-ford演算法)則要求每個路由器傳送其路由表全部或部分資訊,但僅傳送到鄰近結點上。從本質上來說,鏈路狀態演算法將少量更新資訊傳送至網路各處,而距離向量演算法傳送大量更新資訊至鄰接路由器。 ——由於鏈路狀態演算法收斂更快,因此它在一定程度上比距離向量演算法更不易產生路由迴圈。但另一方面,鏈路狀態演算法要求比距離向量演算法有更強的cpu能力和更多的記憶體空間,因此鏈路狀態演算法將會在實現時顯得更昂貴一些。

計算機網路9 計算機網路效能

1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位時間 ...

計算機網路 計算機網路的效能

目錄 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...

計算機網路學習 計算機網路效能

出自 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...