Routing im Internet Das Internet setzt sich aus einer großen Zahl autonomer Systeme zusammen. Jedes autonome System wird von einem eigenen Unternehmen betrieben und kann eigene Routing-Protokolle verwenden. Durch Standardisierung der verwendbaren Protokolle lassen sich an den Grenzen der autonomen Systeme Gateways zur Weiterleitung der Pakete einsetzen. Internes Protokoll Externes Protokoll Internes Protokoll Internes Protokoll Seite 8 Routing im Teilnetz F G D H B E I J C Teilnetz enthält viele Router Zwischen den Routern existieren Verbindungen Verbindungen sind z.t. redundant Verbindungen weisen unterschiedliche Charakteristika auf K L M O N Es existieren möglicherweise überflüssige Verbindungen Daher "Optimierung" der Routen durch Elimination langer Pfade Seite 50 Routing-Protokolle Interior Gateway-Protokolle (Routing in autonomen Systemen, zur effizienten Übertragung) Routing Information Protocol (RIP) Internet Gateway Routing Protocol (IGRP) Enhanced IGRP Open Shortest Path First (OSPF) Intermediate System - to - Intermediate System (IS-IS) Exterior Gateway-Protokolle (Routing zwischen Domänen, Beachtung von Policies der Domänen) Border Gateway Protocol (BGP) Exterior Gateway Protocol (EGP) Router Discovery-Protokolle ICMP Router Discovery Protocol (IRDP) Hot Standby Router Protocol (HSRP) Seite 9 Senke oder Sink-Tree F G L D H B E I N J C ls Folge des Optimierungsprinzips entsteht eine Senke (hier für Router B) Senke enthält keine Schleifen Guter Indikator für die Güte eines Routing- lgorithmus K M O Zustand einer Senke kann sich augenblicklich ändern (z.b. durch usfall eines Routers oder einer Leitung) Seite 5
Routing-lgorithmen Routing deterministisch stochastisch zentralisiert isoliert verteilt determ. stochast. determ. stochast.. lokal global determ. stochast. determ. stochastisch Seite 5 Festes Routing Source-Routing: Route wird vom Sender vorgegeben Header,5,,8 Daten Internes Routing: - Routingentscheidung durch Zwischenknoten - starre Tabellen in den Routern, keine Reaktion auf Änderungen im Netz - stabil - einfach - keine Reaktion auf sich ändernden Netzzustand - katastrophal bei usfall von Links oder Knoten 5 L L nach Knoten 5 via Leitung L L L L L Seite 5 daptive Verfahren NCC Network Control Center (NCC) gibt Routingstrategien und Netzinformationen in regelmäßigen Zeitabständen an alle Knoten Routingentscheidung lokal durch Knoten verteiltes Routing lokal aufgestellte Routingtabellen werden durch regelmäßigen Informationsaustausch mit Nachbarknoten aktualisiert LS: Link State dvertisement / nnouncement Seite 5 Flooding Überflutung des Netzwerkes mit Kopien des Datenpakets Knoten gibt Paket über alle Links aus, außer über den ankommenden Link Eingang Hohe Zuverlässigkeit (bei usfall einzelner Knoten) Sinnvoll für militärische nwendungen (Robustheit) ber: große nzahl von kopierten Datenpaketen Mögliche Schleifen sind problematisch Teilstreckenzähler (TTL), Liste aller schon gesendeten Pakete Verwendbar als Referenz für die Güte von Routing-lgorithmen (Verzögerung) Seite 55 i
Lokale Schätzverfahren nach Knoten via L L L 8 min Knoten via L 5 L L in L L L Routing erfolgt anhand von Laufzeitschätzungen Jeder Router schätzt selbst Problem: Router überblicken nicht das ganze Netz Probabilistisches Routing Router entscheidet nach Laufzeitverhalten (z.b. Delay, Jitter) von versendeten Paketen über die beste Route Routing kann prozentual vorgenommen werden L P(L) 5% 5% 0% 0% B L P(L) 5% 5% - - isoliert Seite 5 p p pn /isoliert Seite 58 Hot Potato Die usgangsleitung ist die aktuell am wenigsten belastete 50 % 0 % 90 % L L L B L Problem: "Kreisen von Nachrichten bhilfe: Liste der zuletzt besuchten Knoten mitführen Varianten: "Hot Potato" Shortest Queue ohne Bias Berücksichtigung der Shortest Queue mit Bias Handovernummer isoliert Seite 5 Routing: Shortest Path Statische Variante Router verwaltet Tabelle mit Entfernungen zu jedem Ziel und zu nutzenden Leitungen Grundlage ist eine konstante Metrik (z.b. Entfernung, Leitungskosten, Übertragungskapazität etc.) Berechnung des kürzesten Pfades nach Dijkstra daptive Variante dynamische Routing-lgorithmen Dynamische Metriken (z.b. augenblicklicher Delay, aktuelle Übertragungskapazität) (regelmäßiges) Update der Routingtabellen Seite 59
Shortest Path: Dijkstra () lgorithmus von Dijkstra (959) für es Routing. Quellknoten permanent (d.h Entfernung und Leitung ändern sich nicht mehr) markieren. Nachbarknoten des aktuell als permanent markierten Knotens (d.h. des rbeitsknotens ) betrachten und Weglänge berechnen. Wähle unter den noch nicht markierten Knoten denjenigen mit kleinster Entfernung zu und markiere ihn als permanent, er wird zum neuen rbeitsknoten ; goto Seite 0 Shortest Path: Dijkstra () B(,) G(,) E(,-) C(,-) F(,-) H(,-) D(,-) Um den Pfad später wieder zurückverfolgen zu können, wird der Vorgängerknoten gespeichert. Schritt: B wird Weglänge < ist.. Schritt: Vorläufige Beschriftung der Nachbarknoten von B Seite Shortest Path: Dijkstra () : B G E F H C D ls Metrik ist hier z.b. die Entfernung in Kilometern angenommen. Gesucht ist der kürzeste Pfad von nach D. Schritt: Markierung des Knotens als permanent. Schritt: Markierung der Nachbarknoten von Seite Shortest Path: Dijkstra () B(,) 5. Schritt: E wird Weglänge von gleich < < 9 ist. G(,) E(,B) F(,-) H(,-) D(,-). Schritt: Vorläufige Beschriftung der Nachbarknoten von E E(,B): Entfernung von nach E beträgt, und zwar über die Leitung BE Seite
Shortest Path: Dijkstra (5) B(,) E(,B) F(,E) D(,-) G(5,E) H(,-) Shortest Path: Dijkstra () () B(,) E(,B) G(5,E) F(,E) D(0,H) H(8,F) 5. Schritt: Vorläufige Beschriftung von G wird überschrieben. Schritt: G wird Weglänge von gleich 5 < < 9 ist.. Schritt: Vorläufige Beschriftung der Nachbarknoten von G Seite. Schritt: H wird Weglänge von gleich 8 < 9 ist.. Schritt: Vorläufige Beschriftung der Nachbarknoten von H. Schritt: C wird Weglänge von gleich 9 < 0 ist. Seite Shortest Path: Dijkstra () B(,) E(,B) G(5,E) F(,E) D(,-) H(9,G) Shortest Path: Dijkstra (8) B(,) E(,B) F(,E) D(0,H) G(5,E) H(8,F) 8. Schritt: Vorläufige Beschriftung von G wird überschrieben 9. Schritt: F wird Weglänge von gleich < 9 ist. 0. Schritt: Vorläufige Beschriftung der Nachbarknoten von F Seite 5 Es passiert nichts, da Entfernung von C zu D größer ist, als die vorläufige Markierung von D. Seite
Shortest Path: Dijkstra (9) B(,) E(,B) F(,E) D(0,H) G(5,E) H(8,F) Implementierung von Dijkstra (). Schritt: D ist auf kürzestem Pfad erreicht und wird abschließend permanent. Seite 8 Seite 0 Implementierung von Dijkstra () Distance Vector Routing Problem: Statische Verfahren sind unflexibel, reagieren nicht auf usfälle, müssen nach jeder Änderung der Topologie neu berechnet werden etc. Lösung: Router informieren sich (regelmäßig) gegenseitig über den Zustand der jeweils abgehenden Leitungen daptive Variante des Shortest Path -Routing: Distance Vector Routing (Bellman et al. 95) auch: verteiltes Bellmann-Ford-Routing, Ford-Fulkerson-Routing, RIP (RPNET, Internet); verbessert in Cisco-Routern Seite 9 Seite
daption: Lernfähigkeit beim Routing Vorgehen: verwende Feedback von anderen Knoten i = Zielknoten L r = ausgehende Leitungen Ziel: minimiere eine Kostenfunktion f: min r f (i, r), z.b. die Übertragungsdauer Hot Potato: f (i, r) = Restabarbeitungszeit an Leitung L r Backwards Learning: f stellt die Übertragungsdauer zum Zielknoten dar f (i, r) = k f (i, r) + (-k) T in (i, r) mit 0 k < Zielknoten i Rückmeldung T in Seite Distance Vector Routing Jeder Router führt eine Tabelle mit den (bekannten/geschätzten) Entfernungen zu jedem Ziel und den dafür zu nutzenden Leitungen zu Nachbarknoten. Von jedem Router wird angenommen, dass er die Entfernungen zu seinen Nachbarn kennt. Regelmäßig werden die Entfernungsinformationen der Routingtabelle den Nachbarn mitgeteilt; aufgrund der Informationen von den Nachbarn und den bekannten Entfernungen zu den Nachbarn berechnet jeder Router seine Routingtabelle (ohne Verwendung der eigenen alten Routingtabelle) neu. für einen Distance Vector: V j = ((=),(B=),(C=),...) ( ist über Leitung erreichbar, B über Ltg. und C über Ltg. ) Seite Kooperierende Routingverfahren eigene (lokale) Delay-Schätzungen [hier: TD = Time Delay] regelmäßiger Informationsaustausch zwischen Knoten Tabelle TD j mit Einträgen TD j (i, L) wird geschätzt R j (i) = min L {TD j (i, L)} i j 0 i = j j = Knoten i = Ziel L = Leitung R = Restlaufzeit Tabelle der erwarteten Restlaufzeiten Tabellen R j werden regelmäßig zwischen Nachbarn ausgetauscht ktualisierung der Tabelle TD j anhand der Informationen der Nachbarknoten: TDj(i, Ljk) = TD(i, Ljk) + Rk(i) i j 0 i = j R k (i) j K i Informationsaustausch Wesentlich hierbei: Globale Informationen werden zwischen Nachbarn ausgetauscht! Seite Seite 5
() (B) (C) ls Übertragungskosten wird für jede Leitung angenommen. Tabelle von Router nach einem Kaltstart Von nach Verbindung Kosten lokal 0 Tabelle von Router B nach einem Kaltstart Von B nach Verbindung Kosten B lokal 0 Seite B überträgt nun seinerseits über Leitung, und seinen Vektor B=0, = an seine Nachbarn, E und C () (B) (C) empfängt diesen Vektor über Leitung und aktualisiert seine Tabelle wie folgt: = ist größer als =0 verwerfen B= ist auf Leitung nalog dazu erfolgt die Verarbeitung des Vektors von D Von nach Verbindung Kosten Routingtabelle von nach der ktualisierung von D und von B lokal 0 B D Seite 8 überträgt =0 an seine Nachbarn B und D () (B) (C) B und D wissen, woher der Vektor kommt und können so die Leitung und Kosten zu bestimmen Von B nach Verbindung Kosten B lokal 0 Routingtabellen von Routern B und D, nachdem Router seinen Vektor übertragen hat Von D nach Verbindung Kosten D lokal 0 Seite Knoten C empfängt B=0, = Von C nach Verbindung Kosten C lokal 0 B Knoten E empfängt B=0, = Von E nach Verbindung Kosten () (B) (C) E lokal 0 B Seite 9
Knoten E erhält über Leitung den Vektor D=0, =, den er auf D= und = aktualisiert () (B) (C) Eintrag für über Leitung bereits mit Kosten eingetragen, daher erfolgt kein neuer Eintrag für Routingtabelle von E nach der ktualisierung, C und E haben nun neue Routingtabellen Distanzvektoren erzeugen Von E nach Verbindung Kosten E lokal 0 B D Seite 80 Von : =0, B=, D= über Verbindung und Von C: C=0, B=, = über Verbindung und 5 Von E: E=0, B=, =, D= über Verbindung, 5 und Von D nach Verbindung Kosten D lokal 0 B E Von E nach Verbindung Kosten () (B) (C) E lokal 0 B D C 5 Seite 8 Von : =0, B=, D= über Verbindung und Von C: C=0, B=, = über Verbindung und 5 Von E: E=0, B=, =, D= über Verbindung, 5 und () (B) (C) Von B nach Verbindung Kosten Routingtabelle von B: B lokal 0 D C E Seite 8 Von B: B=0, =, D=, C=, E= über Verbindung, und Von D: D=0, =, B=, E= über Verbindung und Von E: E=0, B=, =, D=, C= über Verbindung, 5 und () (B) (C) Von nach Verbindung Kosten lokal 0 B D C E Von C nach Verbindung Kosten C lokal 0 B E 5 D 5 Seite 8
Von B: B=0, =, D=, C=, E= über Verbindung, und Von D: D=0, =, B=, E= über Verbindung und Von E: E=0, B=, =, D=, C= über Verbindung, 5 und Von D nach Verbindung Kosten D lokal 0 B E C () (B) (C) lgorithmus terminiert, da, C und D zwar neue Vektoren erstellen und aussenden, aber B, D und E nicht mehr aktualisieren müssen. Seite 8