logo

Distanzvektor-Routing-Algorithmus

    Der Distanzvektoralgorithmus ist iterativ, asynchron und verteilt.
      Verteilt:Die Verteilung erfolgt dadurch, dass jeder Knoten Informationen von einem oder mehreren seiner direkt angeschlossenen Nachbarn empfängt, eine Berechnung durchführt und das Ergebnis dann an seine Nachbarn zurückverteilt.Iterativ:Es ist insofern iterativ, als sein Prozess so lange fortgesetzt wird, bis keine Informationen mehr für den Austausch zwischen Nachbarn verfügbar sind.Asynchron:Es ist nicht erforderlich, dass alle Knoten miteinander im Lock-Schritt arbeiten.
  • Der Distanzvektoralgorithmus ist ein dynamischer Algorithmus.
  • Es wird hauptsächlich in ARPANET und RIP verwendet.
  • Jeder Router verwaltet eine Abstandstabelle, die als bekannt ist Vektor .

Drei Schlüssel zum Verständnis der Funktionsweise des Distanzvektor-Routing-Algorithmus:

    Wissen über das gesamte Netzwerk:Jeder Router teilt sein Wissen im gesamten Netzwerk. Der Router sendet sein gesammeltes Wissen über das Netzwerk an seine Nachbarn.Weiterleitung nur an Nachbarn:Der Router sendet sein Wissen über das Netzwerk nur an die Router, die über direkte Verbindungen verfügen. Der Router sendet alles, was er über das Netzwerk hat, über die Ports. Die Informationen werden vom Router empfangen und verwenden die Informationen, um seine eigene Routing-Tabelle zu aktualisieren.Informationsaustausch in regelmäßigen Abständen:Innerhalb von 30 Sekunden sendet der Router die Informationen an die benachbarten Router.

Distanzvektor-Routing-Algorithmus

Lass dX(y) seien die Kosten des kostengünstigsten Pfades vom Knoten x zum Knoten y. Die geringsten Kosten werden durch die Bellman-Ford-Gleichung in Beziehung gesetzt.

 d<sub>x</sub>(y) = min<sub>v</sub>{c(x,v) + d<sub>v</sub>(y)} 

Wo Die Minv ist die Gleichung, die für alle x Nachbarn verwendet wird. Wenn wir nach der Reise von x nach v den kostengünstigsten Weg von v nach y betrachten, betragen die Wegkosten c(x,v)+dIn(y). Die geringsten Kosten von x nach y sind das Minimum von c(x,v)+dIn(y) alle Nachbarn übernommen.

Beim Distance Vector Routing-Algorithmus enthält der Knoten x die folgenden Routing-Informationen:

  • Für jeden Nachbarn v sind die Kosten c(x,v) die Pfadkosten von x zum direkt angeschlossenen Nachbarn v.
  • Der Distanzvektor x, also DX= [ DX(y): y in N ], enthält die Kosten für alle Ziele, y, in N.
  • Der Distanzvektor jedes seiner Nachbarn, d. h. DIn= [ DIn(y): y in N ] für jeden Nachbarn v von x.

Distanzvektor-Routing ist ein asynchroner Algorithmus, bei dem Knoten x die Kopie seines Distanzvektors an alle seine Nachbarn sendet. Wenn Knoten x den neuen Distanzvektor von einem seiner Nachbarvektoren v empfängt, speichert er den Distanzvektor von v und verwendet die Bellman-Ford-Gleichung, um seinen eigenen Distanzvektor zu aktualisieren. Die Gleichung ist unten angegeben:

Linux-Betriebssystem
 d<sub>x</sub>(y) = min<sub>v</sub>{ c(x,v) + d<sub>v</sub>(y)} for each node y in N 

Der Knoten x hat seine eigene Distanzvektortabelle mithilfe der obigen Gleichung aktualisiert und sendet seine aktualisierte Tabelle an alle seine Nachbarn, damit diese ihre eigenen Distanzvektoren aktualisieren können.

Algorithmus

 At each node x, <p> <strong>Initialization</strong> </p> for all destinations y in N: D<sub>x</sub>(y) = c(x,y) // If y is not a neighbor then c(x,y) = &#x221E; for each neighbor w D<sub>w</sub>(y) = ? for all destination y in N. for each neighbor w send distance vector D<sub>x</sub> = [ D<sub>x</sub>(y) : y in N ] to w <strong>loop</strong> <strong>wait</strong> (until I receive any distance vector from some neighbor w) for each y in N: D<sub>x</sub>(y) = minv{c(x,v)+D<sub>v</sub>(y)} If D<sub>x</sub>(y) is changed for any destination y Send distance vector D<sub>x</sub> = [ D<sub>x</sub>(y) : y in N ] to all neighbors <strong>forever</strong> 

Hinweis: Im Distanzvektoralgorithmus aktualisiert Knoten x seine Tabelle, wenn er entweder eine Kostenänderung in einem direkt verbundenen Knoten feststellt oder eine Vektoraktualisierung von einem Nachbarn erhält.

Lassen Sie uns anhand eines Beispiels verstehen:

Informationen teilen

Distanzvektor-Routing-Algorithmus
  • In der obigen Abbildung stellt jede Wolke das Netzwerk dar und die Zahl innerhalb der Wolke stellt die Netzwerk-ID dar.
  • Alle LANs sind durch Router verbunden und werden in Kästchen mit der Bezeichnung A, B, C, D, E, F dargestellt.
  • Der Distanzvektor-Routing-Algorithmus vereinfacht den Routing-Prozess, indem er davon ausgeht, dass die Kosten für jede Verbindung eine Einheit betragen. Daher kann die Effizienz der Übertragung anhand der Anzahl der Verbindungen zum Ziel gemessen werden.
  • Beim Distanzvektor-Routing basieren die Kosten auf der Hop-Anzahl.
Distanzvektor-Routing-Algorithmus

In der obigen Abbildung sehen wir, dass der Router das Wissen an die unmittelbaren Nachbarn sendet. Die Nachbarn ergänzen dieses Wissen zu ihrem eigenen Wissen und senden die aktualisierte Tabelle an ihre eigenen Nachbarn. Auf diese Weise erhalten Router ihre eigenen Informationen sowie die neuen Informationen über die Nachbarn.

Routing-Tabelle

Es finden zwei Prozesse statt:

  • Erstellen der Tabelle
  • Aktualisieren der Tabelle

Erstellen der Tabelle

Zunächst wird für jeden Router eine Routing-Tabelle erstellt, die mindestens drei Arten von Informationen enthält, z. B. die Netzwerk-ID, die Kosten und den nächsten Hop.

Distanzvektor-Routing-Algorithmus
    NET-ID:Die Netzwerk-ID definiert das endgültige Ziel des Pakets.Kosten:Die Kosten sind die Anzahl der Hops, die das Paket zurücklegen muss, um dorthin zu gelangen.Nächster Hop:Es ist der Router, an den das Paket zugestellt werden muss.
Distanzvektor-Routing-Algorithmus
  • In der obigen Abbildung sind die Original-Routing-Tabellen aller Router dargestellt. In einer Routing-Tabelle stellt die erste Spalte die Netzwerk-ID dar, die zweite Spalte stellt die Kosten der Verbindung dar und die dritte Spalte ist leer.
  • Diese Routing-Tabellen werden an alle Nachbarn gesendet.

Zum Beispiel:

 A sends its routing table to B, F &amp; E. B sends its routing table to A &amp; C. C sends its routing table to B &amp; D. D sends its routing table to E &amp; C. E sends its routing table to A &amp; D. F sends its routing table to A. 

Aktualisieren der Tabelle

  • Wenn A eine Routing-Tabelle von B erhält, verwendet er deren Informationen, um die Tabelle zu aktualisieren.
  • Die Routing-Tabelle von B zeigt, wie sich die Pakete zu den Netzwerken 1 und 4 bewegen können.
  • Der B ist ein Nachbar des A-Routers, die Pakete von A nach B können in einem Hop erreicht werden. Also wird 1 zu allen in der B-Tabelle angegebenen Kosten addiert und die Summe ergibt die Kosten für die Erreichung eines bestimmten Netzwerks.
Distanzvektor-Routing-Algorithmus
  • Nach der Anpassung kombiniert A diese Tabelle dann mit seiner eigenen Tabelle, um eine kombinierte Tabelle zu erstellen.
Distanzvektor-Routing-Algorithmus
  • Die kombinierte Tabelle kann einige doppelte Daten enthalten. In der obigen Abbildung enthält die kombinierte Tabelle von Router A die doppelten Daten, sodass nur die Daten gespeichert werden, die die niedrigsten Kosten verursachen. Beispielsweise kann A die Daten auf zwei Arten an Netzwerk 1 senden. Der erste, der keinen Next-Router verwendet, kostet also einen Hop. Der zweite erfordert zwei Hops (A nach B, dann B nach Netzwerk 1). Die erste Option hat die geringsten Kosten, daher wird sie beibehalten und die zweite Option verworfen.
Distanzvektor-Routing-Algorithmus
  • Der Prozess der Erstellung der Routing-Tabelle wird für alle Router fortgesetzt. Jeder Router erhält die Informationen von den Nachbarn und aktualisiert die Routing-Tabelle.

Die endgültigen Routing-Tabellen aller Router sind unten aufgeführt:

Distanzvektor-Routing-Algorithmus