Stellen Sie sich ein unsichtbares Netz vor, das die Grundlage unserer modernen Kommunikation bildet: das Internet. Aber wie finden Datenpakete ihren Weg durch dieses Labyrinth aus Verbindungen? Dieser Frage widmet sich dieses Buch, indem es tief in die Welt der Routing-Algorithmen eintaucht. Es beleuchtet die fundamentalen Unterschiede zwischen Link-State (LS) und Distance-Vector (DV) Verfahren, zwei konkurrierenden Philosophien der Wegfindung in paketvermittelnden Netzen. Entdecken Sie, wie der Dijkstra-Algorithmus, ein Paradebeispiel für LS-Verfahren, und der Bellman-Ford-Algorithmus, ein Klassiker der DV-Verfahren, Router in die Lage versetzen, die effizientesten Routen zu berechnen. Anhand von anschaulichen Beispielen und einer schrittweisen Erklärung in einer PASCAL-ähnlichen Pseudoprogrammiersprache werden diese komplexen Algorithmen entmystifiziert. Verstehen Sie, wie Router Informationen über ihre Nachbarn austauschen, Kosten bewerten und ihre Routing-Tabellen dynamisch an sich ändernde Netzwerkbedingungen anpassen. Dieses Buch ist ein unverzichtbarer Leitfaden für alle, die sich für die Funktionsweise des Internets interessieren, von Studierenden der Informatik bis hin zu Netzwerkadministratoren. Es vermittelt ein tiefes Verständnis für die Prinzipien des Routings, die die Grundlage für eine zuverlässige und effiziente Datenübertragung bilden. Erforschen Sie die Adjazenzmatrix, lernen Sie die Bedeutung von Kostenberechnungen kennen und verfolgen Sie den Ablauf der Algorithmen anhand eines detaillierten Beispielnetzes mit acht Routern. Werden Sie Zeuge, wie die kürzesten Wege zwischen den Routern ermittelt werden, und gewinnen Sie einen Einblick in die faszinierende Welt der Netzwerkoptimierung. Dieses Buch ist Ihr Schlüssel zum Verständnis der Routing-Algorithmen und ihrer entscheidenden Rolle im Herzen des Internets. Es ist ein Muss für jeden, der die komplexen Mechanismen hinter der scheinbar mühelosen Datenübertragung verstehen möchte. Tauchen Sie ein in die Welt der Netzwerke und entdecken Sie die verborgenen Algorithmen, die unsere digitale Welt verbinden.
Routing-Algorithmen
In paketvermittelnden Netzen wie beispielsweise dem Internet werden Routing-Algorithmen zur Bestimmung der Routing-Tab eilen in den Routern verwendet. Dies wird unter dem Begriff Routing zusammengefaßt. Durch Verwendung dieser Routing-Tab eilen können dann die in einem Router ankommenden Pakete weitergeleitet werden. Das wird dann auch Forwarding genannt.
Eine in der Praxis oft anzutreffende Klassifikation für Routing in paketvermittelnden Netzen ist die zwischen Link-State (LS) und Distance-Vector (DV) Verfahren. Unter der Annahme, daßjeder Router in einem Netz die Adresse seiner Nachbarrouter und auch die Kosten der Links, um diese Nachbarrouter zu erreichen, kennt, sind beide Verfahren in der Lage, ausgehend von einem beliebigen Router im Netz die kostengünstigsten Wege zu allen anderen Routern zu bestimmen. Der wesentliche Unterschied zwischen einem LS- und einem DV-Verfahren kann in etwa folgendermaßen charakterisiert werden:
- In einem LS-Verfahren sammelt jeder Router nur die Informationen über die Kosten, um seine Nachbarrouter zu erreichen, und teilt diese Informationen aber allen anderen Routern des Netzes mit. Bei einem LS-Verfahren werden also wenige Informationen über große Entfernungen übertragen.
- In einem DV-Verfahren sammelt jeder Router Informationen über die Kosten, um alle anderen Router des Netzes zu erreichen, und teilt diese Informationen nur seinen Nachbarroutern mit. Bei einem DV-Verfahren werden also viele Informationen über kurze Entfernungen übertragen.
Beide Verfahren sind aber in der Lage, auch in großen Netzen mit vielen Routern die kostengünstigsten Wege zu bestimmen.
Ein Vertreter der LS-Verfahren ist beispielsweise der Dijkstra-Algorithmus, während der Bellman-Ford-Algorithmus zu den klassischen DV-Verfahren gezählt werden kann. Es gilt:
- Nach Beendigung eines der beiden Algorithmen sind für den Router, in dem der Algorithmus abgelaufen ist, die kostengünstigsten Wege zu allen anderen Routern bekannt. Wird nun der Algorithmus simultan in allen Routern des Netzes durchgeführt, dann kennen nach Beendigung des Algorithmus’ alle Router jeweils die kostengünstigsten Wege zu den anderen Routern. Diese so gewonnenen Informationen werden dann in den Routing-Tab eilen der Router vermerkt.
- Bei sich dynamisch ändernden Kosten der Links in einem Netz müssen die RoutingAlgorithmen periodisch durchgeführt werden, um die Routing-Tab eilen der Router an die neuen Gegebenheiten im Netz anzupassen.
Sowohl der Dijkstra- als auch der Bellman-Ford-Algorithmus werden im folgenden als Quelltext einer an PASCAL angelehnten Pseudoprogrammiersprache beschrieben und ihr Ablauf anhand eines kleineren Beispielnetzes illustriert.
Für den Quelltext beider Algorithmen gilt:
- Die einzelnen Router des Netzes sind von 1 bis N durchnumeriert.
- Die Variable start_router bezeichnet den Router, aus dessen Sicht der Algorithmus durchgeführt werden soll. Es werden also für den Router start_router die kürzesten Wege zu allen anderen Routern im Netz bestimmt.
- Die Kosten eines Links zwischen den Routern i und j, mit 1 < i, j < N, sind in den Werten c[iJ] eines zweidimensionalen Arrays, der sogenannten Adjazenzmatrix, gespeichert, wobei c[i,j] gleich unendlich (INFINITE) ist, wenn kein Link zwischen den Routern i und j existiert.
- In den Werten des eindimensionalen Arrays kostenf... ] werden für jeden Router die beim aktuellen Iterationsschritt des Algorithmus’ berechneten Kosten, um den Router vom start_router ausgehend zu erreichen, gespeichert.
- In den Werten des eindimensionalen Arrays vorgaenger_router_auf_dem_pfad[...] wird für jeden Router der beim aktuellen Iterationsschritt des Algorithmus’ bestimmte benachbarte Router, über den der Router vom start_router ausgehend erreicht wird, gespeichert. Nach Beendigung des Algorithmus’ können dann mit den Werten dieses Arrays die Pfade vom start_router zu allen anderen Routern im Netz ganz einfach bestimmt werden.
Dijkstra-Algorithmus
Abbildung in dieser Leseprobe nicht enthalten
Hinweis: Damit wird das Element aus der Liste mit minimalen Kosten der Variablen links vom Zuweisungsoperator := zugewiesen und aus der Liste entfernt. Um die Suche nach dem Element mit minimalen Kosten so schnell wie möglich durchführen zu können, sollte anstelle einer Liste z.B. ein Heap verwendet werden.
Bellman-Ford-Algorithmus
Abbildung in dieser Leseprobe nicht enthalten
Hinweis: Damit wird das Element am Kopf der Liste der Variablen links vom Zuweisungsoperator := zugewiesen und aus der Liste entfernt.
Beispielnetz
In der Abbildung 1 ist ein Beispielnetz mit 8 Routern abgebildet.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1: Beispielnetz mit 8 Routern
Die folgende Tabelle gibt die Adjazenzmatrix des Beispielnetzes an. Dabei bedeuten nicht beschriftete Tabelleneinträge, daßes zwischen den beiden zugeordneten Routern keine Verbindung gibt, die Kosten also unendlich sind.
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 1: Adjazenzmatrix des Beispielnetzes
Ausgehend vom Router D sollen nun mit Hilfe des Dijkstra- bzw. des Bellman-Ford-Algorithmus die kürzesten Wege zu allen anderen Routern des Netzes bestimmt werden. In den beiden folgenden Tabellen bezeichnen die Werte in den mit k(X) beschrifteten Spalten die Kosten, um einen Router X ausgehend vom Startrouter zu erreichen. Die Werte in den mit p(X) beschrifteten Spalten geben dann den Pfad vom Startrouter zum Router X an.
In der folgenden Tabelle 2 ist der Ablauf des Dijkstra-Algorithmus dargestellt.
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 2: Ablauf des Dijkstra-Algorithmus
In der folgenden Tabelle 3 ist der Ablauf des Bellman-Ford-Algorithmus dargestellt.
Abbildung in dieser Leseprobe nicht enthalten
Häufig gestellte Fragen
Was sind Routing-Algorithmen?
Routing-Algorithmen werden in paketvermittelnden Netzen wie dem Internet verwendet, um Routing-Tabellen in Routern zu erstellen. Diese Tabellen bestimmen, wie ankommende Pakete weitergeleitet werden (Forwarding).
Was ist der Unterschied zwischen Link-State (LS) und Distance-Vector (DV) Routing?
Der Hauptunterschied liegt in der Informationsverteilung:
- LS-Verfahren: Jeder Router teilt die Kosten für die Erreichbarkeit seiner Nachbarn mit allen Routern im Netz. Wenige Informationen werden über große Entfernungen übertragen.
- DV-Verfahren: Jeder Router teilt Informationen über die Kosten, um alle anderen Router zu erreichen, nur mit seinen Nachbarn. Viele Informationen werden über kurze Entfernungen übertragen.
Welche Algorithmen sind Vertreter von LS- und DV-Verfahren?
Der Dijkstra-Algorithmus ist ein Vertreter der LS-Verfahren, während der Bellman-Ford-Algorithmus zu den klassischen DV-Verfahren gehört.
Was passiert nach der Ausführung eines Routing-Algorithmus?
Nach Beendigung des Algorithmus kennt der Router, in dem der Algorithmus ausgeführt wurde, die kostengünstigsten Wege zu allen anderen Routern. Wenn der Algorithmus simultan in allen Routern ausgeführt wird, kennen alle Router die kostengünstigsten Wege zu den anderen Routern, welche dann in den Routing-Tabellen vermerkt werden.
Warum müssen Routing-Algorithmen periodisch durchgeführt werden?
Bei sich dynamisch ändernden Kosten der Links in einem Netz müssen die Routing-Algorithmen periodisch durchgeführt werden, um die Routing-Tabellen der Router an die neuen Gegebenheiten im Netz anzupassen.
Was bedeuten die Variablen im Pseudocode des Dijkstra- und Bellman-Ford-Algorithmus?
- start_router: Der Router, aus dessen Sicht der Algorithmus durchgeführt wird.
- c[i,j]: Die Kosten eines Links zwischen den Routern i und j (Adjazenzmatrix). INFINITE, wenn kein Link existiert.
- kosten[...]: Die beim aktuellen Iterationsschritt berechneten Kosten, um den Router vom start_router ausgehend zu erreichen.
- vorgaenger_router_auf_dem_pfad[...]: Der beim aktuellen Iterationsschritt bestimmte benachbarte Router, über den der Router vom start_router ausgehend erreicht wird. Hilft bei der Bestimmung des Pfades.
Was zeigt das Beispielnetz in Abbildung 1?
Das Beispielnetz in Abbildung 1 zeigt eine Topologie mit 8 Routern, die zur Veranschaulichung der Funktionsweise der Routing-Algorithmen verwendet wird.
Was stellt Tabelle 1 dar?
Tabelle 1 zeigt die Adjazenzmatrix des Beispielnetzes, die die Kosten der Verbindungen zwischen den einzelnen Routern angibt.
Was zeigen die Tabellen 2 und 3?
- Tabelle 2: Der Ablauf des Dijkstra-Algorithmus anhand des Beispielnetzes.
- Tabelle 3: Der Ablauf des Bellman-Ford-Algorithmus anhand des Beispielnetzes.
- Quote paper
- Michael Savoric (Author), 2001, Routing-Algorithmen , Munich, GRIN Verlag, https://www.grin.com/document/106900