Lehrstuhl Netzarchitekturen und Netzdienste Institut für Informatik Technische Universität München Lösungen für Bufferbloat Volker Jacht Betreuer: Lukas Schwaighofer Seminar Future Internet SS2013 Email: jachtv@in.tum.de
Inhalt Motivation Lösungsansätze Pufferdimensionierung RED CoDel Zusammenfassung Lösungen für Bufferbloat 2
Bufferbloat - Beispiel Betrachtung der Übertragungszeit eines Paketes Übertragungszeit = 4,2 Sekunden Sender Router mit Puffer Empfänger Lösungen für Bufferbloat 3
Bufferbloat - Beispiel Betrachtung der Übertragungszeit eines Paketes Übertragungszeit = 4,2 Sekunden Betrachtung der Übertragungsrate Übertragungsrate = 1,4 Pakete / Sekunde Sender Router mit Puffer Empfänger Lösungen für Bufferbloat 4
Bufferbloat - Beispiel Betrachtung der Übertragungszeit eines Paketes Übertragungszeit = 4,2 Sekunden Betrachtung der Übertragungsrate Übertragungsrate = 1,4 Pakete / Sekunde Gleichzeitige Betrachtung der Übertragungsrate und Übertragungszeit Übertragungsrate = 1,4 Pakete / Sekunde Übertragungszeit = 7 Sekunden Sender Router mit Puffer Empfänger Lösungen für Bufferbloat 5
Bufferbloat - Beispiel Betrachtung der Übertragungszeit eines Paketes Übertragungszeit = 4,2 Sekunden Betrachtung der Übertragungsrate Übertragungsrate = 1,4 Pakete / Sekunde Gleichzeitige Betrachtung der Übertragungsrate und Übertragungszeit bei leerem Netzwerkpuffer Übertragungsrate = 1,4 Pakete / Sekunde Übertragungszeit = 4,2 Sekunden Sender Router mit Puffer Empfänger Lösungen für Bufferbloat 6
Bufferbloat Netzwerkpuffer können im schlechten Fall die Latenz erhöhen, ohne die Auslastung zu verbessern => Bufferbloat Bufferbloat kann beim Testen leicht übersehen werden Stark ausgelastete Netzwerke neigen zum Füllen von Netzwerkpuffern Je größer der Puffer, desto größer kann die Latenz werden Wozu Netzwerkpuffer? Lösungen für Bufferbloat 7
Wozu brauchen wir Netzwerkpuffer? Datenübertragung oft stoßweise Problematisch an Engstellen (z.b. Internet-Router) Netzwerkpuffer kompensieren Paketstöße Netzwerkpuffer Sender Empfänger Flaschenhals Pakete Maximiert die Auslastung am Flaschenhals Lösungen für Bufferbloat 8
Auswirkungen schlechter Latenz Finanzmarkt Computerspiele Voice- und Videotelefonie Websurfen SSH => Einschränkung interaktiver Echtzeitanwendungen Lösungen für Bufferbloat 9
Wie kann Bufferbloat vermieden werden? Zwischen Sender und Empfänger dürfen nur so viele Daten vorhanden sein, wie die Leitung ohne Puffer tragen kann Minimale Leitungskapazität = Bandbreite x Latenz = BDP Umso mehr Daten zeitgleich unterwegs sind, desto mehr erhöht sich der Datendurchsatz Danach keine höhere Leistung Sind weniger Daten als das BDP unterwegs, bleibt die Latenz minimal Danach erhöht sich die Latenz Lösungen für Bufferbloat 10
Lösungsansatz: Pufferdimensionierung Das BDP ist ein guter Richtwert für die Sendefenstergröße Netzwerkpuffergröße = BDP Probleme: Viele gleichzeitige Verbindungen Dynamische Übertragungszeiten und Bandbreite machen das BDP variabel: WLAN UMTS Netzwerkpfadänderungen Ideale statische Pufferdimensionierung ist aufgrund dynamischer Umgebung nicht möglich Lösungen für Bufferbloat 11
Netzwerk-Scheduler (Active Queue Management) Analysiert den Netzwerkpuffer Soll beginnenden Bufferbloat erkennen und dem entgegenwirken Aufgaben: Kann Reihenfolge der Abarbeitung der Pakete festlegen Überlastkontrolle (Network Congestion Avoidance) Implizit: Verwerfen von Paketen Explizit: Explicit Congestion Notification Welches Verhalten im Netzwerkpuffer ist gut und welches schlecht? Lösungen für Bufferbloat 12
Gute / schlechte Puffernutzung Füllt sich rapide Hat genug Zeit die angestauten Pakete abzuarbeiten Puffer verhält sich gut Puffer füllt und leert sich zuerst Wird anschließend stationär Puffer verhält sich schlecht (Bufferbloat!) Lösungen für Bufferbloat 13
Lösungsansatz: Random Early Detection Berechnet die durchschnittliche Pufferauslastung Sobald die festgelegte untere Grenze überschritten wird, werden Pakete mit einer geringen Wahrscheinlichkeit verworfen Sobald die festgelegte obere Grenze überschritten wird, werden alle Pakete verworfen Lösungen für Bufferbloat 14
Anzahl der Pakete im Puffer RED - Beispiel 10 9 8 7 6 5 4 3 2 1 0 Zeit Obere Grenze Aktueller Wert Untere Grenze Lösungen für Bufferbloat 15
Anzahl der Pakete im Puffer RED - Beispiel 10 9 8 7 6 5 4 3 2 1 0 Zeit Obere Grenze Aktueller Wert Untere Grenze Lösungen für Bufferbloat 16
Pro: Lösungsansatz: RED - Evaluierung Funktioniert gut, wenn richtig konfiguriert Contra: Schlechte Konfiguration verringert die Leistung => Administrator muss sich mit dem Algorithmus beschäftigen Ursprüngliche RED-Implementierung enthielt Bugs => Verringerte Akzeptanz Fazit: RED wurde nicht breit eingesetzt Lösungen für Bufferbloat 17
Lösungsansatz: Controlled Delay Management Neu entwickelter Netzwerk-Scheduler Benötigt keine Konfiguration Funktioniert angeblich immer gut Passt sich automatisch an die Netzwerkumgebung an Verschlechtert im Worst-Case nicht die Netzwerkleistung Simpler Algorithmus: Gibt eine maximale Verzögerung als Richtwert vor Benutzt das Minimum der Paket-Verweildauer Sobald das Minimum innerhalb eines festgelegten Zeitintervalls größer als der Richtwert ist, werden Pakete verworfen Lösungen für Bufferbloat 18
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 19
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 20
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 21
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 22
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 23
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 24
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 25
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 26
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 27
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 28
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 29
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden Zu lange Überschreitung führt zum Verwerfen von Paketen 10 9 8 7 6 5 4 3 2 1 0 Zeitspanne größer als Intervall Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 30
Verweildauer eines Paketes in ms Lösungsansatz: CoDel - Beispiel Richtwert für Latenz darf kurzzeitig überschritten werden Zu lange Überschreitung führt zum Verwerfen von Paketen, Bis die Latenz wieder unter dem Richtwert ist 10 9 8 7 6 5 4 3 2 1 0 Paket n beim Verlassen des Puffers Zugelassene Verzögerung Lösungen für Bufferbloat 31
Lösungsansatz: CoDel Evaluierung Pro: Verwendung des Minimums als Indikator Robuster als der Durchschnittswert Leicht zu berechnen Simpler Algorithmus Keine Konfiguration notwendig Zugelassene Latenz liegt fest bei 5 ms, das Intervall bei 100 ms Bisherige Test- und Simulations-Ergebnisse sind durchweg gut Contra: Noch nicht in allen Umgebungen getestet Lösungen für Bufferbloat 32
Zusammenfassung Bufferbloat Stets aktuelles, erhebliches Problem Kann einfach zuhause getestet werden CoDel Wichtiger Schritt in die richtige Richtung Verbreitet sich zunehmend Enthalten im Linux-Kernel ab Version 3.5 Integriert in einige Opensource Firewalls wie CeroWrt oder IPFire Ideal zum Ausprobieren Lösungen für Bufferbloat 33
Fragen? Lösungen für Bufferbloat 34
Literatur Jim Gettys and Kathleen Nichols. Bufferbloat: Dark buffers in the internet. Queue, 9(11):40:40 40:54, November 2011. Kathleen Nichols and Van Jacobson. Controlling queue delay. Queue, 10(5):20:20 20:34, May 2012. G. Vu-Brugier, R. S. Stanojevic, D. J. Leith, and R. N. Shorten. A critique of recently proposed buffer-sizing strategies. SIGCOMM Comput. Commun. Rev., 37(1):43 48, January Sally Floyd and Van Jacobson. Random early detection gateways for congestion avoidance. IEEE/ACM Trans. Netw., 1(4):397 413, August 1993. Lösungen für Bufferbloat 35