雙漫反射更新算法

Anonim

在開始閱讀本文之前,我們建議您根據Bellman - Ford算法熟悉關於路徑計算的材料。

擴散更新算法(擴散更新算法-dual)是此處討論的兩個算法之一,最初用於在分佈式網絡中實現。它是獨一無二的,它還消除了有關算法最終自動機中所含的可達到性和拓撲的信息。這裡討論的其他算法均由協議實施的判斷酌情刪除信息,並且不考慮算法本身內算法的工作的這一方面。

到1993年,Bellman-Ford和Dijkstra在幾種路由協議中實現為分佈式算法。由於這些早期實現和部署而獲得的經驗導致了“第二波”的研究和對網絡交換網絡路由問題的反思,這導致了路徑向量和雙重的外觀。

由於雙重設計為分佈式算法,最好描述他對網絡的工作。為此目的,使用圖8和9。為了解釋雙重,該示例將在三個目的地的流中進行跟踪,然後在相同目的地項目的可用狀態下處理更改。在第一示例中,當存在替代路徑時,將考慮這種情況,但是沒有下游鄰居,第二個將考慮當存在替代路徑和下游鄰居時的情況。

在圖8中,從觀點來看d:

  1. a學會了兩種方法:
雙漫反射更新算法 21025_1
  1. A不會識別通過B的路徑,因為B使用A作為其後繼:
  2. a比較可用路徑,然後選擇沒有循環的最短路徑:
  3. a檢查剩餘路徑以確定是否存在下游鄰居中的任何一個:

a知道這一點,因為C宣布了與其本地度量等於3的路徑。

A在其拓撲表中維護本地度量C。

因此,A知道C中的局部值和A中的局部值。

  1. 3(C)成本)= 3(a)中的成本),因此該路線可能是循環,因此,C不滿足可行性的條件。 C未標記為下游鄰居。

雙重的下游鄰居被稱為可能的繼任者。假設頻道[a,h]不起作用。雙重不依賴於定期更新,因此a不能只等待具有可靠信息的另一個更新。相反,必須積極遵循替代路徑。因此,這是替代路徑的漫反射檢測過程。如果頻道[a,h]不起作用,僅考慮d:

  1. a檢查您的本地表以獲取可能的繼承人(下游鄰居)。
  2. 沒有可能的繼承者,所以必須找到一個沒有循環的替代路徑(如果存在)。
  3. a向每個鄰居發送請求以確定是否存在任何替代路徑,沒有循環到D.
  4. 在c:
  5. 在B:
  6. 獲得這些答案:

在圖9中,目的地(d)項目用h移動到E.這將在第二個例子中使用。

在該示例中,存在可能的繼承者(下游鄰居)。

從觀點來看d:

  1. a學會了兩種方法:
  2. a不會通過b認識到任何方式:
  3. a比較可用路徑,然後選擇沒有循環的最短路徑:
  4. a檢查剩餘路徑以確定是否存在下游鄰居中的任何一個:

如果頻道[a,c]不起作用,只考慮a:

  1. A檢查其當地拓撲表以獲得可能的繼承者。
  2. 可能的繼任者通過H.
  3. 將其當地表交換為最佳方式。
  4. A向其鄰居發送更新,注意其成就成本D從3到4變為4。

正如您所看到的,處理時處理可能的繼承者,比沒有它更快,更容易。在使用雙重(特別是EIGRP)部署路由協議的網絡中,主要設計目標之一將限制在不存在可能的繼承人時生成的任何請求的捲。請求區域是如何快速完成雙重算法的主要確定因素,因此,網絡收斂的快速速度。

圖10顯示了基本的雙機。

路線中包含的東西變得更糟(路線的退化)可能是:

  • 連接通道或鄰居的失敗
  • 獲取具有更高度量的路由的更新
  • 從當前的後繼者獲取查詢
  • 從鄰居獲得新的路線
  • 找到了一個新的鄰居,以及它可以得到的路線
  • 當路線惡化時,將所有請求發送到鄰居
雙漫反射更新算法 21025_2

閱讀更多