1. 程式人生 > >【計算機網路】第四章 網路層(5)

【計算機網路】第四章 網路層(5)

八.路由演算法

1. 路由與轉發

1)路由演算法(協議)確定去往目的網路的最佳路徑

2)轉發表確定在本路由器如何轉發分組

2. 網路抽象:圖

 

1)應用:如P2PNpeers集合,ETCP連線集合

2)費用

  ·c(x, x’) = 鏈路(x, x’)的費用

  ·每段鏈路的費用可以總是1,或者是頻寬的倒數、擁塞程度等

  ·路徑費用:(x1, x2,..., xp) = c(x1, x2) + c(x2, x3) +...+c(xp-1, xp)

  ·關鍵問題:求源到目的的最小費用路徑(路由演算法)

3. 路由演算法分類

1)靜態 vs

動態

  ·靜態路由:手工配置、路由更新慢、優先順序高

  ·動態路由:路由更新快、定期更新、及時響應鏈路費用或網路拓撲變化

2)全域性 vs 分散

  ·全域性資訊:所有路由器掌握完整的網路拓撲和鏈路費用資訊(如鏈路狀態路由演算法)

  ·分散資訊:路由器只掌握物理相連的鄰居及鏈路費用,在此基礎上進行鄰居間資訊交換、迭代運算(如距離向量路由演算法)

4. 鏈路狀態路由演算法(LS):Dijkstra演算法

1)所有結點掌握網路拓撲和鏈路費用:通過“鏈路狀態廣播”,所有結點擁有相同資訊

2)計算從一個結點到所有其他結點的最短路徑:獲得該結點的轉發表

3)迭代:

k次迭代後得到到達k個目的結點的最短路徑

4)符號

  ·c(x, y)為結點xy的鏈路費用,如果xy不相連則為正無窮

  ·D(v):從源到目的v的當前路徑費用值

  ·p(v):沿從源到目的v的當前路徑,v的前序結點

  ·N’:已經找到最小費用路徑的結點集合

5)演算法描述:

 

6)舉例:

 

·u的最終最短路徑樹

 

·u的最終轉發表

 

7)討論

  ·演算法複雜性

    - n個結點,每次迭代需要檢測所有不在集合N中的結點w

    - n(n+1)/2次比較,複雜度為O(n²)

    - 更高效的實現為

O(nlogn)

  ·存在震盪的可能性:假設鏈路費用是該鏈路承載的通訊量

 

 

5. 距離向量路由演算法(DV):Bellman-Ford動態規劃方程

(1)dx(y) := xy最短路徑的費用(距離),則:

 

(2)舉例

 

(3)重點:結點獲得最短路徑的下一跳,該資訊用於轉發表中

(4)x維護向量(DV):Dx = [Dx(y): y ϵ N]Dx(y) = 從結點x到結點y的最小費用估計

(5)核心思想

  ·每個結點不定時地將其自身的DV估計傳送給其鄰居

  ·當x接收到鄰居的新DV估計時,即依據B-F更新其自身的距離向量估計:Dx(y) <- minv{c(x, v) + Dv(y)} for each node y ϵ N

  ·Dx(y)將最終收斂於實際的最小費用dx(y)

(6)特點

  ·非同步迭代:區域性鏈路費用改變和來自鄰居的DV更新引發區域性迭代

  ·分散式:每個結點的DV發生變化時才通告給鄰居

(7)演算法描述:每個結點迴圈等待 -> 重新計算 -> 通告

(8)舉例

 

(9)鏈路費用變化

(10)無窮計數問題

 

  ·毒性逆轉:如果一個結點z到達目的x的最小費用路徑通過某個鄰居,則通告給該鄰居結點到達目的的距離為無窮大

 

  ·定義最大度量:若有效費用值為15跳,那麼16跳錶示正無窮

 

6. 層次路由

(1)提出理由

  ·大規模網路抽象成圖,路由器計算的資訊交換量巨大,會淹沒鏈路

  ·每個網路的管理期望自治其網內路由

(2)什麼是層次路由

  ·聚合路由器為一個區域:自治系統AS

  ·同一AS內的路由器執行相同的路由協議(演算法):自治系統內部路由協議

  ·閘道器路由器:位於AS邊緣,通過鏈路連線其他AS閘道器路由器

3)互連的AS:轉發表由AS內部路由演算法與AS間路由演算法共同配置

4)自治系統間路由任務:假設AS1內某路由收到一個目的地址在AS1外的資料報

  ·學習到哪些目的網路可以通過AS2到達,哪些可以通過AS3到達

  ·將這些網路可達性資訊傳播給AS1內部路由器

  ·例:1d的轉發表設定

 

  ·熱土豆路由:將分組傳送給最近的閘道器路由器