Beim Distanzvektoralgorithmus handelt es sich um einen dynamischen Routing-Algorithmus der nach dem Prinzip "Teile deinen Nachbarn mit, wie du die Welt siehst" funktioniert und intern auf dem Bellman-Ford-Algorithmus basiert. Er wird von Routern in paketvermittelten Netzwerken eingesetzt und ist im Internet z. B. als RIP und IGRP implementiert. Distance-Vector Protokolle sind selbstorganisierend, vergleichsweise einfach zu implementieren und funktionieren nahezu ohne jede Wartung. Zu den Nachteilen gegenüber Link-State Protokollen zählen die schlechten Konvergenzeigenschaften und die mangelhafte Skalierbarkeit.
Das prinzipielle Vorgehen eines Distance-Vector-Protokolls ist Folgendes:
Es existieren vier Router A-D und zwischen ihnen folgende Links:
(A)....3....(B) : . : . 23 2 : . : . (C)....5....(D)
Im folgenden sind die Kostenmatrizen der Router zu Beginn und nach jedem vollständigen Austausch von Datenpaketen dargestellt. Dabei ist der beste Pfad zu einem anderen Router jeweils grün, ein neuer bester Pfad - der im nächsten Schritt an die Nachbarn gesendet wird - gelb hinterlegt.
| T=0 |
| von A | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | ||||
| zu B | 3 | |||
| zu C | 23 | |||
| zu D |
| von B | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 3 | |||
| zu B | ||||
| zu C | 2 | |||
| zu D |
| von C | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 23 | |||
| zu B | 2 | |||
| zu C | ||||
| zu D | 5 |
| von D | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | ||||
| zu B | ||||
| zu C | 5 | |||
| zu D |
| von A | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | ||||
| zu B | 3 | 25 | ||
| zu C | 5 | 23 | ||
| zu D | 28 |
| von B | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 3 | 25 | ||
| zu B | ||||
| zu C | 26 | 2 | ||
| zu D | 7 |
| von C | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 23 | 5 | ||
| zu B | 26 | 2 | ||
| zu C | ||||
| zu D | 5 |
| von D | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 28 | |||
| zu B | 7 | |||
| zu C | 5 | |||
| zu D |
| von A | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | ||||
| zu B | 3 | 25 | ||
| zu C | 5 | 23 | ||
| zu D | 10 | 28 |
| von B | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 3 | 7 | ||
| zu B | ||||
| zu C | 8 | 2 | ||
| zu D | 31 | 7 |
| von C | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 23 | 5 | 33 | |
| zu B | 26 | 2 | 12 | |
| zu C | ||||
| zu D | 51 | 9 | 5 |
| von D | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 10 | |||
| zu B | 7 | |||
| zu C | 5 | |||
| zu D |
| von A | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | ||||
| zu B | 3 | 25 | ||
| zu C | 5 | 23 | ||
| zu D | 10 | 28 |
| von B | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 3 | 7 | ||
| zu B | ||||
| zu C | 8 | 2 | ||
| zu D | 13 | 7 |
| von C | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 23 | 5 | 15 | |
| zu B | 26 | 2 | 12 | |
| zu C | ||||
| zu D | 33 | 9 | 5 |
| von D | via A | via B | via C | via D |
|---|---|---|---|---|
| zu A | 10 | |||
| zu B | 7 | |||
| zu C | 5 | |||
| zu D |
Erläuterung der Vorgänge im Router A:
Der Count-to-Infinity-Effekt lässt sich durch Einsatz des Split-Horizon-Verfahrens relativ leicht vermeiden: Eine Pfadinformation darf nicht über das selbe Inferface veröffentlicht werden, worüber sie empfangen wurde.
Im Fall von längeren Schleifen ist eine Lösung des Problems nicht mehr trivial. In Distance-Vector-Protokollen gilt allgemein bad news travel slowly. Um auch diesem Problem Herr zu werden, werden das Poisoned-Reverse-Verfahren und so genannte Triggered Updates verwendet: Findet ein Router heraus, dass ein Nachbar nur noch schwer oder gar nicht mehr erreichbar ist, veröffentlicht er diese Tatsache sofort aktiv im Netz.
In einer Abwandlung des Distance-Vector-Algorithmus, dem sogenannten Distance-Path-Algorithmus den z. B. BGP implementiert, ließe sich das Problem von Schleifen leichter lösen. Dieser Algorithmus speichert neben dem nächsten Hop auch noch den gesamten restlichen Pfad zum Zielrouter. So lassen sich neben dem Kriterium "günstigste Route" auch leicht andere Kriterien, z. B. firmenpolitische Maßgaben, umsetzen.
Für IPv4 liegen zwei Versionen von RIP vor: RIPv1 und RIPv2. In RIPv1 sind keine Subnetzmasken implementiert.
Für IPv6 wurde RIP angepasst und unter der Bezeichnung RIPng veröffentlicht.
RIPv1: RFC1058
RIPv2: RFC2453
RIPng: RFC2080
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Distanzvektoralgorithmus".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world