Übungsgruppe 2, mit Erklärung des Count-to-Infinity

Werbung
Rechnernetze Übung 10
Frank Weinhold∙ Professur VSR ∙ Fakultät für Informatik ∙ TU Chemnitz ∙ Juni 2011


„Das Weiterleiten (Routing) erfüllt die
wichtige Aufgabe, einzelne Teilstrecken des
Kommunikationsnetzes so zu verbinden,
dass eine Ende-zu-Ende-Kommunikation
zwischen den angeschlossenen Teilnehmern
möglich wird.“
Kategorisierung der Verfahren
◦ Wo ist der Routingalgorithmus lokalisiert?
◦ Wie dynamisch ist das Routingverfahren?

Zentral (in einem Netzkontrollzentrum)

Dezentral (verteilt auf die Vermittlungsknoten)
◦ Zentrale hat Wissen über das komplette Netz
◦ auch als globales Routing bezeichnet
◦ Berechnung optimaler Wege möglich
◦ Knoten kennen Initial nur ihre Nachbarn
◦ Distanz-Vektor-Algorithmen
 kein Knoten hat Wissen über das komplette Netz
 Knoten kennt nie die komplette Route von einer Quelle zu einer
Senke
◦ Link-State-Algorithmen
 Knoten hat Wissen über die gesamte Netztopologie
 alle Knoten haben (im stabilen Zustand) die gleiche Sicht auf das
Netz
verteilt
Broadcast
Routing
statisches
Routing
Hot Potato
Distance Vector
Routing / Link
State Routing
Delta Routing
zentralisiertes
Routing
zentral
statisch
dynamisch


vorstellbar als Wegweiser
man kennt nicht den gesamten Weg zum Ziel,
aber immer die nächste Richtung und
Entfernung
Berlin
170km
München
330km





ursprünglicher Routing-Algorithmus, der im
Arpanet (als RIP) eingesetzt wurde
Distanz (Hops) ist Routing-Metrik
jedes System kennt die Distanz zu allen
anderen Systemen im Netz
aktuelle Distanzen werden zwischen
Nachbarn ausgetauscht (Advertisement)
Beispiel: Routing Information Protocol (RIP)
u
A
v
B
Ziel
w
z
C
D
N
u
1
v
2
w
2
x
3
y
3
z
2
Von A zu Subnetzen
y
N
A (N/-/1)
B (N/-/-)
x
Hops
C (N/-/-)
A (N/-/1)
C (N/A/2)
B(N/A/2)
D (N/-/-)
F (N/-/-)
D (N/-/-)
F (N/-/-)
Router (Ziel/nächster Router/ Hops)
N
N
A (N/-/1)
B (N/A/2)
C (N/A/2)
A (N/-/1)
C (N/A/2)
B(N/A/2)
D (N/C/3)
F (N/B/3)
D (N/C/3)
F (N/B/3)
Router (Ziel/nächster Router/ Hops)

berechnet Routing verteilt
periodischer Austausch von Distanz-Vektoren

Bellman Ford Algorithmus

◦ jeder Knoten kennt Initial nur Kosten zu seinen direkten Nachbarn
◦ jeder Knoten pflegt Tabelle mit möglichen Zielen, den Gesamtkosten
zu diesem Ziel und den Namen der ersten Station
◦ jeder Knoten schickt sein Wissen periodisch an alle Nachbarn
 bei IP alle 30 Sekunden
◦ ein Knoten, der Informationen erhält, aktualisiert seine Tabelle
◦ Aktualisieren bedeutet
 ist noch keine Information über Ziel bekannt, dann Information speichern
 ist Information bekannt, dann prüfen, ob neue Information eine günstigere
Strecke ermöglicht

Probleme:
◦ langsame Konvergenz (einheitliche Sicht auf Netz)
◦ bei gewichteten Links können Routing-Schleifen entstehen
◦ sehr langsame Propagierung von Kostensteigerungen oder Ausfällen
 bei einer maximalen Ausdehnung des Netzes von 15 Hops beträgt Dauer
bereits sieben Minuten
 „gute Nachrichten“ verbreiten sich schnell, „schlechte“ nur
langsam
◦ Count-to-Infinity-Problem
 Infinität bezeichnet Unerreichbarkeit eines Ziels (= Hop-Count 16)
 Hop-Count bezeichnet Anzahl Router, die entlang eines Pfades bis
zum Zielnetz durchlaufen werden müssen
RIP spezifiziert, dass alle Knoten zyklisch an ihre Nachbarn
senden, welche Netzwerke sie mit wie viel Hops erreichen
können. In jedem Zyklus aktualisieren die Knoten ihre Tabelle
anhand der Information die sie bekommen.
A
B A-1
C A-2
Stand nach 1. Iteration
1.Iteration
Konten B sendet an C: Ich kann A mit 1 Hop erreichen.
Knoten C empfängt Nachricht von B und aktualisiert seine
Tabelle.
A
B A-3
C A-2
A
B A-3
C A-4
A
B A-5
C A-4
A
B A-5
2.Iteration (Verbindung von B zu A unterbrochen)
Konten B kann A nicht mehr erreichen.
Knoten C sendet an B: Ich kann A mit 2 Hops erreichen.
Knoten B aktualisiert seine Tabelle.
3.Iteration
Konten B sendet: ich kann A mit 3 Hops erreichen.
Knoten C empfängt Nachricht von B und passt seine
Tabelle an.
4.Iteration (Verbindung von B zu A unterbrochen)
Konten B kann A nicht mehr erreichen.
Knoten C sendet an B: Ich kann A mit 4 Hops erreichen.
Knoten B aktualisiert seine Tabelle.
5.Iteration
Konten B sendet: ich kann A mit 5 Hops erreichen.
Knoten C empfängt Nachricht von B und passt seine
Tabelle an.
C A-6
Dies schaukelt sich solange hoch, bis 16Hops erreicht sind. Dann erkennen
beide, dass A nicht mehr erreichbar ist. Da beide Router auf Basis der
empfangen Information ihre Tabelle jedesmal aktualisieren, erhöht sich der
Hop-Count ständig.


vorstellbar als Landkarte
man hat eine Übersicht der gesamten
Topologie und kann sich den besten Weg
zum Ziel selbst berechnen
Berlin
München



benutzt Dijkstra Algorithmus zur Bestimmung
kürzester Wege
jeder Knoten kennt alle Verbindungen im Netz
Vorteile
◦ konvergiert schneller als RIP (alle Router haben
einheitliche Sicht auf das Netzwerk)
◦ keine Routing Loops
◦ mehrere Metriken parallel
◦ Lastverteilung auf mehrere Pfade

Probleme
◦ hoher Speicherverbrauch

Mehrstufiger Ablauf
◦ Erkennung der Nachbarn (Hello-Pakete)
◦ erzeuge Link-State-Paket
 Absender, Seq.-Nr., Alter, Liste mit allen direkten Nachbarn
+ jeweiligen Kosten
◦ verteile Link-State-Paket an alle anderen Router im Netz
(nicht nur Nachbarn)
 prinzipiell Fluten mit Sequenznummern
 zusätzlich Vernichten von Duplikaten, Zerstören der
Information nach gewissem Alter etc.
 alle Router besitzen identische Kenntnis der gesamten
Netztopologie
◦ jeder Router berechnet den kürzesten Pfad zu jedem
anderen Router (z.B. mit Dijkstra-Algorithmus)
5
2
B
2
A
1
C
3
3
D
5
F
1
E
1
2
[A]
B
C
D
E
F
0
∞
∞
∞
∞
∞
1. Initialer Zustand: Abstand zu allen unendlich
2. Abstand zu direkt erreichbaren Knoten bestimmen, die noch nicht
betrachtet wurden. Kosten berechnen (vorhergehende Kosten +
Kosten zu diesem Knoten)  Kosten, Quellknoten)
Kosten nur in Tabelle eintragen wenn günstiger
3. Günstigsten Knoten auswählen (alle schon besuchten ignorieren)
und 2.
5
2
B
2
A
1
C
3
3
D
5
F
1
E
1
2
[A]
B
C
D
E
F
0
∞
∞
∞
∞
∞
2,A
5,A
1,A
Welcher Knoten hat kleinstes Gewicht und wurde noch
nicht betrachtet?  D
5
2
1
verwerfen
C
3
2
A
3>2

B
3
D
5
F
1
E
1
2
[A]
B
C
[D]
E
F
0
∞
∞
∞
∞
∞
2,A
5,A
3,D
4,D
1,A
2,D
Welcher Knoten hat kleinstes Gewicht und wurde noch
nicht betrachtet?  E oder B
5
2
B
2
A
1
C
3
3
D
5
F
1
E
1
2
[A]
B
C
[D]
[E]
F
0
∞
∞
∞
∞
∞
2,D
4,E
2,A
5,A
1,A
4,D
3,E
Welcher Knoten hat kleinstes Gewicht und wurde noch
nicht betrachtet?  B
5
2
1
verwerfen
C
3
2
A
5>3

B
3
D
5
F
1
E
1
2
[A]
[B]
C
[D]
[E]
F
0
∞
∞
∞
∞
∞
2,D
4,E
2,A
5,A
1,A
4,D
3,E
5,B
Welcher Knoten hat kleinstes Gewicht und wurde noch
nicht betrachtet?  C
5
2
B
2
A
1
C
3
3
D
5
F
1
E
1
2
[A]
[B]
[C]
[D]
[E]
F
0
∞
∞
∞
∞
∞
2,D
4,E
2,A
5,A
4,D
1,A
8,C
3,E
Welcher Knoten hat kleinstes Gewicht und wurde noch
nicht betrachtet? F
5
2
B
2
A
1
C
3
3
D
F
1
E
1
Alle Nachbarn
von F wurden
schon besucht
5
2
[A]
[B]
[C]
[D]
[E]
[F]
0
∞
∞
∞
∞
∞
2,D
4,E
2,A
5,A
1,A
4,D
3,E
5
2
B
2
A
1
C
3
3
F
1
1
D
5
E
2
[A]
[B]
[C]
[D]
[E]
[F]
0
∞
∞
∞
∞
∞
2,A
5,A
1,A
2,D
4,E
4,D
3,E
Bestimmung des kürzestes Pfades: Vom Ziel rückwärts zur Quelle
F(4)E(2)D(1)A(0)


Was ist die kürzeste Route von A nach G?
Was ist die kürzeste Route von B nach D?
2
B
A
8
2
F
C
3
E
1
4
3
G
1
3
D
Herunterladen