230 likes | 607 Views
Algorithmen des Internets Sommersemester 2005 25.04.2005 3. Vorlesung. Christian Schindelhauer schindel@upb.de. Überblick. Das Internet: Einführung und Überblick Mathematische Grundlagen IP: Routing im Internet
E N D
Algorithmen desInternetsSommersemester 200525.04.20053. Vorlesung Christian Schindelhauer schindel@upb.de
Überblick • Das Internet: Einführung und Überblick • Mathematische Grundlagen • IP: Routing im Internet • Forwarding, Dijkstra, Distance Vector, Link State Intra-AS: RIP, OSPF, Inter-AS: BGP, Min-Cut Max-Flow-Theorem, Nash-Equilibrium, Preis der Anarchie • Alternativen zu IP • Virtual Circuits, Wormhole, Hot-potato • Flussalgorithmen, Ford-Fulkerson • Oblivious Routing • TCP: Das Transport-Protokoll des Internets • Die Struktur des World Wide Web und des Internets • Suche im Web • Web-Caching im Internet • Peer-to-peer-Netzwerke • Angriffe auf das Internet Heute Heute
Circuit Switching oder Packet Switching • Circuit Switching • Etablierung einer Verbindung zwischen lokalen Benutzern durch Schaltstellen • mit expliziter Zuordnung von realen Schaltkreisen • oder expliziter Zuordnung von virtuellen Ressourcen, z.B. Slots • Quality of Service einfach (außer bei) • Leitungsaufbau • Leitungsdauer • Problem • Statische Zuordnung • Ineffiziente Ausnutzung des Kommunikationsmedium bei dynamischer Last • Anwendung • Telefon • Telegraf • Funkverbindung
Circuit Switching oder Packet Switching • Packet Switching • Grundprinzip von IP • Daten werden in Pakete aufgeteilt und mit Absender/Ziel-Information unabhängig versandt • Problem: Quality of Service • Die Qualität der Verbindung hängt von einzelnen Paketen ab • Entweder Zwischenspeichern oder Paketverlust • Vorteil: • Effiziente Ausnutzung des Mediums bei dynamischer Last • Resümee • Packet Switching hat Circuit Switching in praktisch allen Anwendungen abgelöst • Grund: • Effiziente Ausnutzung des Mediums
Hot Potato Routing • Ursprünglich: Folgender Algorithmus • Falls Puffer voll ist und Paket kommt herein • sende Paket zurück • Sonst • Leite ein Paket aus dem Puffer an nächsten Router • Falls Paket zurückkommt • Leite Paket an irgendeinen Nachbarn weiter • Hot Potato Routing im Internet Protokoll • ist eine Intra-AS/Inter-AS-Forwarding-Politik • Ein Paket wird so schnell wie möglich ans fremde AS übergeben • nächster möglicher Gateway • Fremdem Netzwerk wird der Verkehr aufgebürdet • Gegenteil: Cold-Potato-Routing • Das AS hält das Paket so lange wie möglich • kürzester Gesamtweg auch durch weitesten Gateway • Kann auch Advertisement-Strategie bezeichnen • um Verkehr frühestmöglich (Cold Potato) • oder möglichst spät (Hot Potato) über ein Gateway anzuziehen
Wegewahl • Oblivious Routing (Unbeirrtes Routing) • Deterministische Wegewahl • Nachrichten zwischen zwei Knoten benutzen immer den gleichen Weg • z.B. Internet Protokoll (bevorzugt kürzeste Wege) • Randomisierte Wegewahl • Eine feste Wahrscheinlichkeitsverteilung bestimmt den nächsten Knoten • Verkehr kann im Netzwerk verteilt werden (Valiants Trick) • Adaptive Wegewahl • Blockierte oder versperrte Wege können umgangen werden • Möglichkeit der Lastanpassung • Wie passt man die Last an • Welches ist die beste Strategie???
Adaptive Wegewahl durch Modellierung als Flussproblem • Gegeben • ein ungerichteter Graph mit Kapazitäten auf den Kanten • Einfach-Fluss-Modell (Single-Commodity: Ein Gebrauchsgut) • Für Quellen und Senken ist der Fluss gegeben • Mehrfach-Fluss-Modell (Multi-Commodity: Mehrere Artikel) • Verschiedene Ströme mit unterschiedlichen Quellen und Senken • Die Flüsse teilen sich die Kapazität • Minimiere den maximalen Flusslast (Congestion) • Routing im Internet wird durch ein • dynamisches Mehrfach-Fluss-Problem beschrieben • Die Beschreibung durch ein Fluss-Problem optimiert den Durchsatz • und nicht etwa die maximale Sprungweite D (Dilation) • Routing-Zeit ist mindestens D+C: Dilation + Congestion
Congestion-Minimierung im Einfach-Flussproblems • Gegeben: • Gerichteter Graph G mit Kantenkapazitäten w(e)≥0 • Seien s und t verschiedene Knoten • mit gegebenem Fluss • Flüsse • Ein Fluss weist jeder Kante eine Zahl f(e) zu mit f(e) ≥ 0 • Für alle Knoten x gilt • wobei I(x):= eingehenden Kanten und O(x) := ausgehenden Kanten • Der Fluss steht für die erwartete Anzahl von Paketen auf einer Kante • Ziel • Minimiere Congestion:
Das statische Einfach-Fluss-Problem • Fakt • Die Congestion-Minimierung im Einfach-Flussproblem ist äquivalent zum Flussproblem (aus der letzten Vorlesun). • Siehe auch Min-Flow-Max-Cut-Problem • Beides kann gelöst werden durch • lineare Optimierung • Simplex-Algorithmus • Für natürliche Eingaben effizient • Im worst-case exponentielle Laufzeit • Ellipsoid-Methode • Polynomielle Laufzeit aber immer noch ineffizient • Ford-Fulkerson-Algorithmus
Formulierung als Lineares Optimierungsproblem • Betrachte Variablen fe und Hilfsvariable h • mit den Randbedingungen • Minimiere: Variable h Minimiere
Congestion-Minimierung als Lineares Optimierungsproblem? • Problemgröße: • linear in der Anzahl der Kanten • zu aufwändig für globale Netzwerke • Problemstellung ist abhängig von der Eingabe • insbesondere der Anzahl Kanten • Lösungsmethoden • können nicht verteilt berechnet werden • Zentrale Steuerung möglich • Problem: Netzwerkinformation sammeln, verteilen • Empfindlich gegen Angriffe • Lösungsalgorithmen • Nachfolger des Simplex-Algorithmus mittlerweile effizienter • aber immer noch im worst-case nicht polynomiell • Ellipsoid-Methode liefert Ergebnis in Polynomialzeit • jedoch in der Praxis immer noch zu langsam
Ford-Fulkerson-Methode • Löst Maximales (Einfach-) Flussproblem • äquivalent zum Minimum Congestion Problem • Ford-Fulkerson-Methode(G,s,t) • Setze Anfangsflüsse auf f(e) = 0 für alle Kanten e • Solange es noch einen Pfad p mit Restkapazitäten r>0 gibt • Für alle Kanten (u,v) ∈ G des Pfads p: f(e) ← f(e) + r • Für alle Kanten (u,v) mit (v,u) ∈ G des Pfads p: f(e) ← f(e) - r • Resultierender Flus ist optimal • Ein Pfad p mit Restkapazität r für den Fluss f, Start s, Ziel t, Kapazität w(e) ist • ein Pfad p von s nach t, so dass für alle Kanten (u,v) des Pfads p • entweder (u,v) ∈ G und • oder (v,u) ∈ G und • Gibt es keinen Pfad mit positiver Restkapazität, ist der Fluss maximal • folgt aus dem Max-Flow-Min-Cut-Theorem
Mehrfach-Fluss-Probleme • Gegeben: • Gerichteter Graph G mit n Knoten und Kantenkapazitäten w(e)≥0 • Bedarfsmatrix: d: V × V → ℝ+ • Flüsse • Mehrere Flüsse Zahl für u∈V, e∈E: f(u,e) ≥ 0 und • Der Bedarf wird gedeckt: • Jeder Fluss ist für sich konsistent: • wobei I(x):= eingehenden Kanten und O(x) := ausgehenden Kanten • Ziel • Minimiere Congestion:
Beispiel: Mehrfach-Fluss-Problem • Hier: • Kürzeste-Wege-Routing • Beobachtung: • Mehrfach-Fluss-Probleme lassen sich als lineare Optimierungs-probleme beschreiben
Oblivious Routing: Valiants Trick im zwei-dimensionalen Torus • Valiants Trick im zweidimensionalen Torus mit n Knoten • für eine beliebige Permutation π von jedem Knoten u nach π(u) • Für Routing: • Sende Nachricht von A zufälligem Knoten R im Gitter • Sende Nachricht von R nach Ziel B • Erwartete Last • ist im jeden Knoten • Bestes Routing • unter Berücksichtigung der Permutation p • hat für bestimmte Permutationen mindestens die Last • folgt aus Satz von Borodin/Hopcroft • Damit ist das Oblivious Routing nur um einen konstanten Faktor schlechter als ein adaptives Routing • für Permutationen im Torus
Beweis der erwarteten Last • Weg zu zufälligen Knoten: • Gemäß Wahrscheinlichkeitsverteilung, so das die Wahrscheinlichkeit eine Kante im Abstand d für einen gegebenen Knoten zu benutzen ist • Der maximale Abstand im Torus ist • Damit ist die erwartete Anzahl von Nachrichten über eine Kante • Die Analyse für den Rückweg ist analog • Für bestes Routing betrachte Partition V = A ⋃ B durch das • mit Kanten zwischen A und B • Wähle Permutation mit für alle u∈A: π(u)∈B und u∈B: π(u)∈A • Der Fluss über den Schnitt ist dann mindestens n • verteilt auf Kanten ⇒ Auf einer Kante ist mindestens Last:
On-line Algorithmen für Congestion-Minimierung • On-line-Algorithmus: • Ein Algorithmus ist k-kompetitiv, • falls die Congestion höchstens k-mal schlechter ist als die optimale Lösung für jede einzelne Instanz (Graph, Gewichte, Bedarf) • Unterschied zu Valiants Trick: • Worst case war , best case war 1 • Valiants Routing Trick immer erwartungsgemäß • ist daher nicht O(1)-kompetitiv • J. Aspens, Y. Azar, A. Fiat, S. Plotkin, and O. Waarts [1993]: • Zentraler O(log n)-kompetitiver Algorithmus • Algorithmus ist optimal bezüglich kompetitven Faktor • Benötigt Netzwerklast als Zusatzinformation • B. Awerbuch and Y. Azar [1994] • Verteilter O(log n)-kompetitiver Algorithmus • Zustand des Netzwerks muss dem Algorithmus bekannt sein • Kommt man ohne Kenntnis der momentanen Netzwerklast aus?
Der Satz von Harald Räcke • Theorem [Räcke, 2002] • In jedem ungerichteten Netzwerk gibt es ein Oblivious Routing, das höchstens den Faktor O(log3 n) schlechter ist als das beste Routing für beliebigen Bedarf. • Konstruktion: • Zerlege Netzwerkknoten in hierarchisch in Baumstruktur, • so dass der Zusammenhalt der Knoten in Teilbäumen untereinander größer ist als die Verbindung zu Bruderteilbäume • Tiefe des Baumes ist logarithmisch beschränkt • Problem: Diese Baumzerlegung war seiner Zeit nicht effizient berechenbar • Löse ein (statisches) Mehrfach-Flussproblem zwischen den Teilbäume • Optimaler Bedarf belastet hauptsächlich Kanten zwischen Bruderteilbäumen • welcher vom Mehrfach-Flussproblem modelliert wird
Oblivious Routing in polynomieller Zeit • Theorem [Azar, Cohen, Fiat, Kaplan, Räcke, 2003] • In jedem Netzwerk kann ein mit O(log3 n)-kompetitives Oblivious Routing in polynomieller Zeit berechnet werden. • Fortschritt • Jetzt kann man die Baumzerlegung in polynomieller Zeit berechnen • Damit könnte (rein theoretisch) auch im Internet diese Technik verwendet werden • Nachteile • Es ist bis heute kein Netzwerk bekannt, indem dieses Oblivious Routing weniger Last produziert als das kürzeste Wege Routing. • Berechnung zwar polynomiell, aber immer noch aufwändig
Lastoptimierung: IP versus Alternativen • Circuit Switching: • Internet ist zu dynamisch; Resourcen werden vergeudet • Mehrfach-Fluss-Modellierung • Nur für statische Flüsse • Ford-Fulkerson ist zentraler Algorithmus für Einfachfluss • Lineare Optimierung nicht als verteilte Lösung einsetzbar • Oblivious Routing: • bis jetzt nur für statische Netzwerke einsetzbar • Berechnung zu aufwändig und nur zentral möglich • höchstens 1,5-2,4 Faktor schlechter als Internet Routing • Zustand Internet 2005 • Congestion (Netzwerklast) • nicht auf dem Internet-Backbone (hier nur 25% Auslastung) • sondern auf Anbindung der Benutzer (Analog-Modem, ISDN, DSL)
Vielen Dank!Ende der 3. VorlesungNächste Vorlesung: Mo. 02.05.2005Nächste Übung: Mo. 02.05.2005 Heinz Nixdorf Institut & Institut für Informatik Universität Paderborn Fürstenallee 11 33102 Paderborn Tel.: 0 52 51/60 66 92Fax: 0 52 51/62 64 82E-Mail: schindel@upb.dehttp://www.upb.de/cs/schindel.html