Leitwegbestimmung (Routing) Aufgabe: Leitwegbestimmung für Pakete durch das Netzwerk vom Quell- zum Zielsystem Routingkriterien Wünschenswerte Eigenschaften widersprechen oft einander, z.b. Fairneß und Optimalität Routingalgorithmus eines IS entscheidet, auf welcher Ausgangsleitung ein eingegangenes Paket weitergeleitet wird Beispiel : A B C Datagramm Virtuelle Verbindung individuelle Entscheidung für jedes Paket Leitwegbestimmung nur bei Verbindungsaufbau D E Wünschenswerte Eigenschaften eines Algorithmus Stabil (gleichmäßige Ergebnisse, keine sprunghafte Änderungen durch neue Gegebenheiten) Robust (Kompensation von Knoten- (=IS) und Leitungsausfällen) Korrekt (Pakete sollen immer beim richtigen Empfänger ankommen) Einfach (kleine/übersichtliche/verifizierbare Tabellen niedrige Kosten für Erstellung und Aktualisierung) Fair (gleiche Behandlung aller Quellen) Optimal (bestmögliche Dienstqualität je nach Kriterium, z.b. Kosten, Verzögerung, Durchsatz) F G H Kommunikation zwischen A und F, B und G sowie C und H lastet Bus unter der Optimalitätsbedingung maximaler Durchsatz am besten aus, aber individuelle Kommunikation D zu E wird bei einem solchermaßen global optimierten Routingalgorithmus unfair behandelt Kompromiß nötig, häufig realisiert wird deshalb eine Minimierung der Teilstrecken (hops) pro Paket reduziert die Verzögerung guter Durchsatz für alle Teilnehmer vermindert benötigte Bandbreite
Klassifikation der Routingverfahren Nicht - adaptive (statische) Verfahren Leitweg zwischen i und j wird für alle i, j offline vor der Inbetriebnahme des Netzwerks bestimmt gehen von Mittelwerten aus keine Berücksichtigung des aktuellen Netzzustands keine Änderung während des Betriebs Optimaler Pfad zwischen zwei Netzknoten Frage: welches ist der optimale Pfad zwischen zwei Netzknoten? z.b. zwischen Knoten B und allen anderen Knoten Antwort: Erstellung eines Baums für Ziel B mit den minimalen Pfadlängen Beispiel mit IS-Entfernung als Metrik für Optimalität: Adaptive Verfahren Gegebenes Netz Optimale Pfade für Ziel B Entscheidungen basieren online auf aktuellem Netzzustand Messungen / Schätzungen der Topologie und des Verkehrsaufkommens Weitere Unterteilung in - zentralisierte Verfahren - isolierte Verfahren - verteilte Verfahren Mögliche Metriken für "optimalen" Weg, d.h. "kurzen" Pfad geographischer Abstand Anzahl der Knoten (IS) Bandbreite durchschnittliche Datenmenge Kommunikationskosten Verzögerung bei Warteschlangen, usw. Anmerkungen es kann mehrere Bäume geben, die optimal sind Kenntnisse über das gesamte Netz müssen verfügbar sein daher hauptsächlich für statisches Routing interessant Der optimale Weg ist gegeben durch das Minimum einer nach den Optimalitätskriterien aufgestellten Zielfunktion
Die Bestimmung des kürzesten Pfades zwischen zwei Netzknoten Beispiel (Entfernung ist durch Zahl an Graphenkante angegeben): Mehrfach-Leitwegbestimmung die Information über den zu wählenden Pfad wird in die Routingtabelle jedes IS eingetragen, sie enthält für jeden Zielknoten den nach einmal bestimmten Kriterien optimalen Nachbarknoten, z.b. Ziel A B C Knoten D K E bisher wurde nach einem optimalen Pfad gesucht Shortest path algorithm, z.b. nach Dijkstra (1959): Gesucht ist kürzester Pfad A nach D: 1. A als fest markiert (ausgefüllter Kreis ) 2. alle direkten Nachbarknoten mit Distanz zu A markieren (Pfadlänge, Knoten der Herkunft): z.b. B(2,A) und G(6,A) Vergleich aller nicht fest markierten Knoten und den mit geringster Zahl als fest markieren z.b. B(2,A) 3. dieser Knoten wird Ausgangspunkt für iteratives Verfahren (d.h., weiter mit 2., bis alle Knoten als fest markiert wurden) Startwert= Nur die ersten 5 Iterationen gezeigt häufig fast gleich gute Pfade vorhanden Vorteile: Verteilung des Kommunikationsaufkommens auf mehrere Pfade durch Mehrfach-Leitwegbestimmung Lastverteilung Ausfallsicherheit Auswahl des Pfades entweder zufällig (zur reinen Lastverteilung) oder nach verschiedenen Optimalitätskriterien (Sprache auf Leitungen mit niedriger Laufzeit, Daten auf preiswerte Kanäle etc.) Realisierung durch zusätzliche Spalten in Routingtabelle, häufig wird noch eine Wahrscheinlichkeit G i je Spalte/Pfad hinzugefügt, mit der dieser gewählt werden soll im Ergebnis ist für einen Knoten (hier A) der optimale Weg zu jedem anderen Knoten bestimmt (erkennbar mittels Zurückverfolgen durch alle Vorgängerknoten)
Beispiel zur Mehrfach-Leitwegbestimmung hier mit drei (durch G i gewichteten) zufällig ausgewählten Alternativpfaden Routingtabelle im Knoten J Fluten als nicht - adaptives Routing Prinzip empfangenes Paket wird vom IS an alle Nachbar-IS übertragen (nur nicht über den Ankunftspfad) Nachteil: erzeugt unendlich viele Pakete Auswahl der Alternativen Generieren einer Zufallszahl z (0 z < 1) A 1 : 0 z < G 1 A 2 : G 1 z < G 1 + G 2... A n : G 1 + G 2 +... + G n-1 z < 1 Techniken zur Begrenzung der Paketanzahl Hopzähler im Header des Pakets - jeder IS dekrementiert diesen bei jedem Versenden - bei Hopzähler = 0 wird Paket verworfen - Initialisierung auf maximale Pfadlänge (falls bekannt) Jede Station merkt sich schon übertragene Pakete und löscht diese bei erneutem Auftreten Selektives Fluten - empfangenes Paket wird vom IS an Nachbarstationen übertragen, die in Richtung des Zieles liegen - bei sinnvollen Topologien ist des eine Optimierung Bewertung extrem robust: militärische Anwendung keine Kenntnis der Topologie erforderlich keine Initialisierung, Topologieänderungen online möglich trotzdem wird die schnellste Übertragung von A nach B erreicht (ohne Überlastberücksichtigung) Beispiel für Ziel = B:
Bewertung der statischen Routingverfahren Tabellen werden von Netzwerkadministrator erstellt Tabellen werden bei Inbetriebnahme der IS geladen und dann nicht mehr verändert Eigenschaften + einfach + gute Ergebnisse bei recht konstanter Topologie und Verkehr - schlecht bei stark variierendem Verkehrsaufkommen und bei Topologieänderungen Trotzdem sehr häufig benutzt! Zentralisierte adaptive Leitwegbestimmung Prinzip : Im Netz: RCC (Routing Control Center, Leitwegsteuerzentrum) Jedes IS sendet periodisch Statusinformation an RCC, z.b. - Liste der verfügbaren Nachbarn - aktuelle Warteschlangenlängen - Auslastung der Leitungen RCC berechnet daraus optimalen Pfad für jedes IS-Paar bildet Leitwegtabellen und verteilt sie an IS Eigenschaften : + optimale Entscheidungen im RCC durch globale Information möglich + keine Leitwertberechnung in IS nötig - Berechnung muß oft durchgeführt werden (z.b. jede Minute oder noch öfter) - geringe Robustheit, da Zentralsteuerung - IS erhalten Tabellen nicht gleichzeitig - Verkehrskonzentration in der Nähe des RCC:
Merkmal: Isolierte adaptive Leitwegbestimmung hier zwei Verfahren skizziert: es werden nur lokale Informationen fürs Routing benutzt Hot Potato (heiße Kartoffel) Algorithmus einkommendes Paket an die Ausgabeleitung mit der kürzesten Warteschlange weitergeben + sehr einfaches Verfahren - keine Ankunftssicherheit daher i.a. Kombination mit statischer Leitwegbestimmung Backward learning (Rückwärtslernen) Pakete enthalten Info über Quellknoten und Hopzähler IS speichert für jede Eingangsleitung die Entfernung (= Stand des Hopzählers) zum Quell-IS kommt ein Paket an dieser Eingangsleitung mit niedrigerem Entfernungswert für den gleichen Quell-IS an, wird der alte Wert verworfen P 1 (..., A, 4,... ) Add ( A, I 1, 4 ) P 2 (..., A, 3,... ) Update ( A, I 2, 3 ) in einer Einschwingphase lernen die IS die minimalen Entfernungen im Netz Leitwegbestimmung möglich + einfaches Verfahren - nimmt gleiche Verzögerung für beide Leitungsrichtungen an, durch verschiedene Last aber nicht immer gegeben - nur Verbesserungen werden gelernt, aber keine Verschlechterungen durch Ausfälle, etc. Verbesserung durch periodisches Löschen der Tabellen, aber: zu häufig: Netz überwiegend in der Lernphase zu selten: langsame Reaktion auf Verschlechterungen Verteilte adaptive Leitwegbestimmung Prinzip IS tauschen mit Nachbarn Leitweginformation aus Verfahren Jedes IS kennt/schätzt/mißt "Entfernung" zu jedem Nachbarn Anzahl der Teilstrecken ( = 1 ), oder Verzögerungszeit (Echo - Pakete), oder Warteschlangenlänge,... IS sendet periodisch seinen Nachbarn Liste mit geschätzten Entfernungen zu jedem Ziel IS berechnet aus empfangenen Listen eine neue Routing-Tabelle für alle Knoten mit (Ziel-IS, bevorzugter Ausgangspfad, "Entfernung") nach folgendem Muster gegeben sei ein einfaches Netz X-Y-Z: a) X schätzt/mißt Entfernung zu Y, z.b. i b) X empfängt Liste E von Nachbarn Y c) X generiert neue Leitwegtabelle wie folgt: Entfernung Y Z: E(Z) Entfernung X Z über Y: E(Z) + i Anwendung bis 1979 im ARPANET, dann im Internet unter Namen RIP (routing information protocol) bekannt und verwendet
Beispiel zur verteilten Leitwegbestimmung Hierarchische Leitwegbestimmung Motivation große Anzahl von IS bedeutet - aufwendige dynamische Leitwegberechnung - sehr große Routingtabellen mit entsprechender Suchzeit und Verteilzeit durch ohnehin übliche Zusammenfassung in hierarchisch strukturierte Einheiten (Regionen) kommunizieren nur wenige ausgewiesene Rechner zwischen den Regionen + nach außen wirkt eine Region wie ein Knoten + stark verkleinerte Routingtabellen Vergleich Beispiel für 2 Tabellen = zweistufige Hierarchie gemessene oder geschätzte Verzögerung: JA=8 JI = 10 JH = 12 JK = 6 es wird nicht immer der optimale Pfad berechnet z.b. 1A 5C flache Tabelle: 5 Hops hierarch. Tabelle: 6 Hops alte Leitwerttabelle wird nicht berücksichtigt, sondern nur die aktuelle Schätzung/Messung gute Adaption Entwurf nach Erfahrungswerten optimal sind ln(n) Ebenen die Pfadverlängerung ist i.a. zu vernachlässigen
Überlastkontrolle Rückblick auf besprochene Elemente der Vermittlungsschicht Verbindungskonzepte Dienst: verbindungsorientiert, verbindungslos Realisierung: virtuelle Verbindung, Datagramm Leitwegbestimmung (Routing) statisch dynamisch Gründe für Überlastung (congestion) Ankommender Verkehr überfordert Ausgangsleitungen IS zu langsam für Routing - Algorithmen,... Überlastung tendiert dazu, sich selbst zu verstärken Beispiel: IS wirft wegen Überlastung Paket weg Generell Kapazität erhöhen Verkehr erniedrigen Möglichkeiten Ansätze zur Überlastkontrolle Vermeiden, bevor Überlast auftritt, beim Sender und/oder Empfänger, z.b. durch Flußkontrolle Pufferanzahl je Ausgangswarteschlange auf einen bestimmten Anteil an den freien Puffern begrenzen Traffic Shaping Glätten der Überlastspitzen durch ggf. verzögertes Senden auf Kosten der Durchlaufverzögerung Beheben, nachdem Überlast auftritt, z.b. durch Verwerfen von Paketen ankommendes Paket wird weggeworfen, wenn es nicht gepuffert werden kann 1. kein Problem bei Datagramm-Verbindungen 2. bei verbindungsorientiertem Dienst Paket puffern, bis Empfang quittiert wurde Paket muß erneut gesendet werden (zusätzlicher Verbrauch an Bandbreite) Sender kann Puffer nicht freigeben ( zusätzliches Binden von Ressourcen ) Vergleich Überlastkontrolle Flußkontrolle regelt Subnetz (Schicht 3) betrifft Pkt-zu-Pkt (Schicht 2) möglichst vorab vermeiden Effekt reduzieren verwendet ggf. Flußkontrolle
Verklemmungen (Deadlocks, Lockups) "Store - and - forward" - Verklemmungen der IS bei begrenzter Puffermenge (hier im Beispiel jeweils 4) A will 4 gepufferte Pakete zu B senden und umgekehrt keine freien Puffer zum Empfang Verklemmung A Lösungsmöglichkeiten verschiedene Algorithmen bekannt, hier nicht diskutiert B