Congestion Control
Transcription
Congestion Control
Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Congestion Control 1 / 56 Kommunikationsnetze I 20.1.2010 Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Congestion Control Quality of Service Einleitung Wenn zu viele Pakete in einem (Teil-)Netz vorhanden sind, kommt es zur Überlastung (Congestion). Perfect Packets delivered Maximum carrying capacity of subnet Desirable Congested Packets sent (c) Tanenbaum, Computer Networks 2 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Einleitung Wenn deutlich weniger Pakete als die maximale Kapazität vorhanden sind, I erreichen alle Pakete den Empfänger I Paketverluste nur durch Übertragungsfehler I lineare Abhängigkeit zwischen gesendeten und empfangenen Paketen Wenn die maximale Kapazität (fast) erreicht oder überschritten wird, 3 / 56 I werden die Router überlastet und können Pakete nicht mehr weiterleiten I Paketverluste im Router I kann bis zum Kollaps des Netzes führen Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Ursachen I I zu geringe Bandbreite zu geringe Rechenleistung im Router I I I Prozessor im Router kann seine Kontrollaufgaben nicht schnell genug abarbeiten es bildet sich eine Warteschlange trotz ausreichender Bandbreite zu geringer Speicher im Router I I zu viele gleichzeitig am Router ankommende Pakete können nicht gespeichert werden zu viel Speicher kann auch Nachteile haben, da die Warteschlangen zu lang werden können. Dieses kann Time-outs und Duplikate erzeugen Es ist eine gemeinsame Optimierung notwendig. Die Optimierung einer einzelnen Komponente verschiebt in der Regel nur den Flaschenhals. 4 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Unterschied Congestion Control und Flow Control Congestion Control I berücksichtigt das gesamte (Teil-)Netz inklusive der einzelnen Komponenten (Hosts, Router,...) und deren Prozesse I kontrolliert den gesamten Datendurchsatz Flow Control I betrachtet point-to-point Verbindungen I vermeidet Überlastung langsamer Empfänger durch schnelle Sender Beide können einen “slow down” Request für Sender erzeugen. 5 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Open Loop Congestion Control Open Loop Congestion Control 6 / 56 I Vermeidung von Congestion durch richtiges System Design I Auswahl der richtigen Komponenten, Regeln, Prozesse, ... vor der Inbetriebnahme I berücksichtigt nicht den aktuellen Zustand des Netzes, keine Messung oder Steuerung I Unterscheidung zwischen Open Loop Congestion Control am Sender und am Empfänger Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Closed Loop Congestion Control Closed Loop Congestion Control 7 / 56 I reagiert auf den aktuellen Zustand des Netzes mit einem Feedback Kanal I Detektion wann und wo die Congestion auftritt I Verbreiten dieser Information zu den steuernden Komponenten I Anpassung des Systems um das Problem zu beheben I explicit feedback: Dedizierte Pakete mit Warnungen I implicit feedback: Detektion durch lokale Messungen Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Mechanismen Messung und Detektion der Congestion im Router I Paketverluste durch Buffer Overflow oder Time-out, Anzahl Retransmissions, Länge von Warteschlangen, Laufzeit und Varianz der Laufzeit I Wahl eines sinnvollen Schwellwertes Verbreitung der Information vom Router (nur Closed Loop) I Senden dedizierter Pakete, erzeugt zusätzliche Last I Setzen entsprechender Felder in ausgehenden Paketen I Periodische Abfrage des Zustandes Reaktion des Systems I Reduktion der gesendeten Datenmenge eventuell mit Priorisierung unterschiedlicher Inhalte I Erhöhen der Kapazität z.B. durch Backup-Router 8 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Beispiel: Messung der Auslastung Beispiel für Messung der Auslastung im Router I Ein Variable u soll die Auslastung eines Ausgangsports eines Routers beschrieben, 0 ≤ u ≤ 1. I Für kurze Intervalle i wird die Benutzung b(i) binär gemessen, b(i) ∈ {0, 1}. I Gewichtete Mittelung der Auslastung u mit u(i) = a · u(i − 1) + (1 − a) · b(i) I a beschreibt die Gewichtung der Vergangenheit Wenn die Auslastung u einen Schwellwert überschreitet wird eine Warnung erzeugt. Alternative können z.B. die Speicherauslastung oder die Länge der Warteschlange gemessen werden. 9 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Strategien zur Vermeidung von Congestion Sicherungsschicht / Data Link Layer 10 / 56 I Retransmission Policy: Zu viele Retransmissions durch zu kurze Time-out Intervalle oder Go-Back-n ARQ erhöhen Netzlast I Out-Of-Order Caching Policy: Verwerfen von Out-Of-Order Paketen erfordert Retransmissions, besser Selective-Repeat ARQ I Acknowledgement Policy: Extra ACK Pakete erzeugen zusätzliche Last. Verzögerte ACKs (z.B. durch Piggybacking auf Pakete in Rückrichtung) können Retransmissions erzeugen I Flow Control Policy: Genau Kontrolle der Senderate (z.B. durch kleine Windowsize) kann Congestion verhindern Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Strategien zur Vermeidung von Congestion Vermittlungsschicht / Netzwerkschicht 11 / 56 I verbindungsorientierte oder verbindungslose Übertragung: Viele Congestion Control Algorithmen funktionieren nur mit verbindungsorientierter Übertragung. I Packet Queueing and Service Policy: Anzahl an Warteschlangen und Priorisierung I Packet Discard Policy: Auswahl der zu verwerfenden Pakete z.B. nach Priorität I Routing Algorithmus: Routing um überlastet Knoten herum I Packet Lifetime Management: Pakete nicht zu früh (Retransmissions) aber auch nicht zu spät (belegte Resourcen) verwerfen Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Strategien zur Vermeidung von Congestion Transportschicht I Wie bei der Sicherungsschicht I I I I I 12 / 56 Retransmission Policy Out-Of-Order Caching Policy Acknowledgement Policy Flow Control Policy Timeout Policy: Große Laufzeitunterschiede durch das Netz im Vergleich zur einzelnen Verbindung zwischen zwei Routern Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Verbindungsorientierte Übertragung Bei verbindungsorientierter Übertragung ist in der Regel eine dynamische Reaktion auf eine Überlast möglich: 13 / 56 I Admission Control: Bei vorhandener Congestion werden keine neuen Verbindungen mehr zugelassen. Eventuell können dabei Prioritäten berücksichtigt werden. I Resource Reservation: Beim Verbindungsaufbau werden die benötigten bzw. zur Verfügung gestellten Resourcen (Bandbreite, Speicher,...) abgestimmt. Diese Resource werden am Anfang oder nur bei detektierter Congestion reserviert. I Alternative Routing: Beim Routing während des Verbindungsaufbaus werden Knoten mit bekannter Congestion vermieden. Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Verbindungsorientierte Übertragung Alternative Routing: Eine neue Verbindung (Virtual Circuit, VC) vermeidet bekannte Congestions. A Congestion A B B Virtual circuit Congestion (a) 14 / 56 (c) Tanenbaum, Computer Networks (b) Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Verbindungslose Übertragung - Warning Bit Warning Bit I Relative altes Verfahren I Bei Überlast setzt ein Router ein Flag (“Warning Bit”) im Header jedes Paketes. I Wenn ein Paket mit Warning Bit am Empfänger ankommt wird dieses in das nächste Paket zum Sender (z.B. ein ACK) kopiert. I Empfängt der Sender dieses Rückpaket reduziert er seine Senderate Nachteile I I I 15 / 56 Unter Umständen große Verzögerung bei der Reaktion Keine Information über den Ort der Congestion Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Verbindungslose Übertragung - Choke Packets Choke Packets I Bei Überlast sendet ein Router eine Meldung (“Choke Packet”) an den im Paket angegebenen Sender. I Im Originalpaket wird ein Headerbit gesetzt, damit folgende Router keine Choke Packets mehr erzeugen. I Empfängt der Sender das Choke Packet reduziert er seine Senderate I Da bereits weitere Pakete unterwegs seien könnten, ignoriert der Sender weiter Choke Packets für dieses Ziel für ein bestimmtes Zeitintervall. I Danach hört der Sender eine weiteres Intervall nach Choke Packets. I Dann erhöht er ggf. seine Senderate wieder leicht. 16 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Verbindungslose Übertragung - Choke Packets Hop-by-Hop Choke Packets 17 / 56 I Bei hohen Datenraten und langen Laufzeiten kann auch ein Choke Packet zu spät am Sender ankommen. I Beim Hop-by-Hop Verfahren reagiert jeder Router auf Choke Packets und nicht nur der Sender. I Empfängt ein Router ein Choke Packet reduziert auch er umgehende die Senderate. I Erhöht den Speicherbedarf in Routern. I Hop-by-Hop ermöglicht eine schnelle Reduktion der Datenrate am Punkt der Überlast. Kommunikationsnetze I 20.1.2010 B B C Congestion Control Quality of Service A A D C B C Einleitung B C Open Loop und Closed LoopA Congestion Control D D Verbindungsorientierte und -lose Übertragung A D Heavy flow E F F E Heavy flow E F F Ch ok e Ch ok e Ch ok e Verbindungslose Übertragung - Choke Packets Choke Packets ohne und mit Hop-by-Hop: ohne Hop-by-Hop mit Hop-by-Hop Choke Choke Choke C B B D B A Reduced flow C D Heavy flow F D Heavy flow E F Ch ok Ce Ch ho ke F ok e E A Reduced flow e ok Ch E e ok Ch F D e ok Ch e ok Ch A E C ok e A Choke Reduced flow C Ch B Ch ok e E Reduced flow Choke Choke Choke Choke Flow isReduced still flow rate at maximum Reduced flow Flow is still at maximum rate e ok Ch e ok Ch e ok Ch ke o Ch Flow is reduced (a) (b) Flow is reduced (c) Tanenbaum, Computer Networks (a) 18 / 56 Reduced flow Reduced flow Kommunikationsnetze I (b) 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Load Shedding Load Shedding (Lastabschaltung) I Maßnahme bei andauernder Überlast I Router wählen Pakete aus die verworfen werden. Intelligente Verfahren berücksichtigen z.B. I I I I 19 / 56 Prioritäten: Entweder auf den Dienst der gesamte Verbindung bezogen, z.B. E-Mail oder Video-Stream, oder in einem Dienst auf einzelne Pakete, z.B. die verschiedene MPEG-Rahmentypen. Reihenfolge der Pakete: Sind alte Pakete wertvoller (z.B. bei Go-back-n ARQ) oder neue (z.B. bei Multimedia-Streaming) Bei wenige Last dürfen umgekehrt Verbindungen mehr als die reservierte und garantierte Bandbreite benutzen. Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Random Early Detection Random Early Detection (RED) ist ein Versuch eine mögliche Überlast frühzeitig zu erkennen und gegenzusteuern. 20 / 56 I Einige Transportprotokolle (z.B. TCP) reagieren auf Paketverluste mit Reduktion der Senderate. I Bei kabelgebundener Übertragung sind Übertragungsfehler unwahrscheinlich. In der Regel bedeuten Paketverluste Speicherüberlauf oder ähnliche Überlastung. I Router wählen zufällig Pakete aus die verworfen werden. Es wird aber keine explizite Warnung geschickt. I Der Sender detektiert den Paketverlust und seine Transportschicht reduziert die Datenrate Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Jitter Control Minimum delay (due to speed of light) High jitter Fraction of packets Fraction of packets Jitter ist die Abweichung des Empfangszeitpunktes eines Paketes vom mittleren Empfangszeitpunkt aller Pakete. Low jitter Delay Delay (a) (b) (c) Tanenbaum, Computer Networks 21 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Open Loop und Closed Loop Congestion Control Verbindungsorientierte und -lose Übertragung Jitter Control Mögliche Jitter Control im Router I der Router berechnet die erwartete Empfangszeit eines Paketes I verspätete Pakete werden schnellstmöglich verarbeitet I zu frühe Pakete werden verzögert I der Router kann auch Jitter Control Information dem Paket hinzufügen Streaming Applikationen erlauben in der Regel auch einen großen Buffer am Empfänger um Jitter zu kompensieren. Bei real-time Applikationen ist ein Buffer nicht möglich. 22 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Quality of Service (QoS) 23 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Einleitung Quality of Service (QoS) beschreibt die Anforderungen einer Verbindung an die Dienstgüte. Dabei haben verschiedene Anwendungen unterschiedliche Anforderungen. Die Kernparameter sind: I Zuverlässigkeit (Reliability) I Verzögerung/Laufzeit (Delay) I Varianz der Laufzeit (Jitter) I Bandbreite (Bandwidth) Dabei müssen in der Regel auch Unterschiede zwischen verbindungsorientierter und verbindungsloser Übertragung berücksichtigt werden. 24 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Anforderungen von Anwendungen (c) Tanenbaum, Computer Networks 25 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Anforderungen von Anwendungen Zuverlässigkeit (Reliability) I High: Checksum und Acknowledgements benötigt I Low: Paketfehler akzeptabel, d.h. keine Checksum und keine/weniger Acknowledgements Verzögerung/Laufzeit (Delay) 26 / 56 I High: Real-time duplex Kommunikation, < 0.5s I Medium: Interaktive Kommunikation, < 1-5s I Low: Simplex Kommunikation, < 20s Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Anforderungen von Anwendungen Varianz der Laufzeit (Jitter) I High: interaktive und Audio/Video Kommunikation I Low: nicht interaktive Kommunikation Bandbreite (Bandwidth) 27 / 56 I High: Multimedia insbesondere Video Kommunikation I Low: Text basierte Kommunikation Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS QoS Klassen in ATM Netzwerken In ATM (Asynchronous Transfer Mode) Netzen gibt es folgende QoS Klassen I Konstante Bitrate (z.B. Telefonie) I Real-time und variable Bitrate (z.B. Videokonferenz) I Non-real-time und variable Bitrate (z.B. Video-on-Demand) I verfügbare Bitrate (z.B. Dateitransfer) Variable Bitrate entstehen z.B. bei Video Standards mit Kompression. Diese Klassen lassen sich auch auf viele andere Netze übertragen. 28 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Techniken für QoS Keine Technik alleine liefert in der Regel eine akzeptable QoS unter den verschiedensten Szenarien. Es ist Kombination aus verschiedenen Techniken nötig. Overprovisioning: Überdimensionierung des gesamten Systems bezüglich Bandbreite, Zwischenspeicher, Router Kapazität,... sodaß es nie Probleme gibt. Diese Technik ist natürlich sehr teuer und unter Umständen später sehr unflexibel. 29 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Buffering Zum Beispiel in der Anwendungsschicht am Empfänger wird ein Speicher angelegt, der die unterschiedlich verzögerten Pakete zwischenspeichert und so den Jitter ausgleicht. Häufige Anwendung sind Audio-/Video-on-Demand. Packet departs source 1 2 3 4 5 6 7 8 Packet arrives at buffer 1 2 3 4 5 Time in buffer Packet removed from buffer 6 7 8 1 2 3 4 5 6 7 8 Gap in playback 0 5 10 Time (sec) 15 20 (c) Tanenbaum, Computer Networks 30 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Traffic Shaping Selbst bei real-time Anwendungen sendet eine Server seine Daten oft in Bursts. Eine konstante Datenrate ist besser für die QoS. Beim “Traffic Shaping” einigen sich Server/Sender und Netzwerk auf eine konstante mittlere Datenrate, die das Netzwerk garantiert überträgt (“service level agreement”). Der Sender/Server sendet nun mittels einem kleinen Zwischenspeicher die vereinbarten Datenrate. Die Überwachung der Datenrate durch das Netzwerk wird “Traffic Policing” genannt. 31 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Leaky Bucket Algorithmus Faucet Host computer Packet Unregulated flow Leaky bucket Water The bucket holds packets Interface containing a leaky bucket Regulated flow Water drips out of the hole at a constant rate Network (a) 32 / 56 (b)Computer Networks (c) Tanenbaum, Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Leaky Bucket Algorithmus Eine einfache Implementierung von Traffic Shaping ist der Leaky Bucket Algorithmus. I Ein Interface im Sender implementiert eine Warteschlange, die am Ausgang eine konstante Anzahl an Paketen je Zeitintervall sendet. I Bei verschieden großen Paketen kann es sinnvoller sein eine konstante Anzahl an Bytes je Zeitintervall zu senden. I Ist die Warteschlange voll, werden eingehende Pakete verworfen. Beispiel: I Sender: Datenrate 25MB/s, Burstlänge 40ms, Burstintervall 1s, Burstgröße 1MB I Router: kurzzeitig 25MB/s, Dauerbetrieb 2MB/s I Leaky Bucket: Ausgangsrate 2MB/s, Kapazität 1MB 33 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Leaky Bucket Algorithmus - Beispiel Eingang Leaky Bucket: 25 MB/sec for 40 msec (a) 0 25 MB/sec for 40 msec 500 Time (msec) (a) (b) 0 Ausgang Leaky Bucket: 0 500 Time (msec) 2 MB/sec for 500 msec 500 Time (msec) (b) 2 MB/sec for 500 msec 25 MB/sec for 11 msec (c) 0 Time (msec) 500 2 MB/sec for 362 msec (c) Tanenbaum, Computer Networks 0 34 / 56 (c) 25 MB/sec for 11 msec 500 Time (msec) Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Token Bucket Algorithmus Host computer One token is added to the bucket every ∆T The bucket holds tokens Networks (a) 35 / 56 Host computer Networks (b)(c) Tanenbaum, Computer Networks Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Token Bucket Algorithmus Der Leaky Bucket Algorithmus ist sehr unflexibel bei stark schwankenden Datenraten. Eine flexiblere Erweiterung ist der Token Bucket Algorithmus. I Zusätzlich zur Warteschlange werden je Zeitintervall eine konstante Anzahl Tokens generiert. I Jeder Token erlaubt die Übertragung einer bestimmten Anzahl an Paketen oder Bytes. I Beim Senden werden die entsprechende Anzahl Token entfernt. I Läuft die Tokenschlange über, werden neue Token verworfen. Pakete werden zunächst nicht verworfen. Der Token Bucket Algorithmus kann Übertragungskapazität ansammeln um sie für Bursts zu verwenden. 36 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Token Bucket Algorithmus - Beispiel Token Bucket Kapazität: 250KB (initial gefüllt) 25 MB/sec for 40 msec Token-Eingangsrate: 2MB/s (a) Eingang Token Bucket: 0 25 MB/sec for 40 msec Time (msec) 500 Time (msec) 2 MB/sec for 500 msec 500 Time (msec) 500 (a) (b) 0 0 Ausgang Token Bucket: (b) 25 MB/sec for 11 msec 2 MB/sec for 500 msec (c) 0 Time (msec) 0 25 MB/sec for 11 msec (c) 37 / 56 Time (msec) 2 MB/sec for 362 msec 500 500 (c) Tanenbaum, Computer Networks Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS 25 MB/sec for 40 msec (a) Token Bucket Algorithmus - Beispiel 0 Time (msec) Token Bucket Kapazität: 500KB (initial gefüllt) Token-Eingangsrate: 2MB/s 500 (b) Eingang Token Bucket: 0 25 MB/sec for 40 msec 2 MB/sec for 500 msec 500 Time (msec) (a) 25 MB/sec for 11 msec (c) 0 Time (msec) 0 Ausgang Token Bucket: 2 MB/sec for 362 msec 500 500 Time (msec) (b) 25 MB/sec for 22 msec 2 MB/sec for 500 msec (d) 0 0 25 MB/sec for 11 msec (c) 38 / 56 Time (msec) 2 MB/sec for 225 msec 500 Time (msec) 500 (c) Tanenbaum, Computer Networks Kommunikationsnetze I 20.1.2010 0 500 Time (msec) Congestion Control Quality of Service Einleitung Techniken für QoS (b) Token Bucket Algorithmus - Beispiel 2 MB/sec for 500 msec 0 Time (msec) Token Bucket Kapazität: 750KB (initial gefüllt) Token-Eingangsrate: 25 MB/sec for 11 msec 2MB/s 500 (c) Eingang Token Bucket: 0 25 MB/sec for 40 msec 2 MB/sec for 362 msec Time (msec) 500 Time (msec) 2 MB/sec for 225 msec 500 Time (msec) 500 (a) 25 MB/sec for 22 msec (d) 0 0 Ausgang Token Bucket: (b) 25 MB/sec for 33 msec 2 MB/sec for 500 msec (e) 0 0 25 MB/sec for 11 msec (c) 39 / 56 500 Time (msec) 2 MB/sec for 88 msec Time (msec) 500 (c) Tanenbaum, Computer Networks Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Token Bucket Algorithmus - Beispiel Die Berechnung der Länge des Bursts am Ausgang mit maximaler Rate muß die während des Bursts eingehenden Token berücksichtigen. Annahmen: Länge des Bursts am Ausgang S, Token Bucket Kapazität C Bytes, Token-Eingangsrate r in Bytes/s, maximale Ausgangsrate M in Bytes/s. I Maximale Größe eines Burst am Ausgang: C + rS I Datenmenge in einem Burst mit maximaler Rate: MS ⇒ 40 / 56 C + rS = MS ⇒ S = C/(M − r ) Kommunikationsnetze I 20.1.2010 0 CongestionTime Control (msec) Einleitung Quality of Service Techniken für QoS 500 25 MB/sec for 11 msec Token + Leaky Bucket - Beispiel (c) 2 MB/sec for 362 msec Zur 0 Vermeidung großer Bursts kann dem Token Bucket ein 500 Time (msec) Leaky Bucket nachgeschaltet werden. MB/sec forKapazität: 22 msec Token25Bucket 750KB (gefüllt), Eingangsrate: 2MB/s (d) Leaky Bucket Ausgangsrate: 10MB/s 2 MB/sec for 225 msec Eingang Token Bucket: 0 500 Time (msec) 25 MB/sec for 40 msec (a) (e) 25 MB/sec for 33 msec 0 0 2 MB/sec for 88 msec Time (msec) Ausgang Leaky Bucket: (b) 10 MB/sec for 62 msec (f) 2 MB/sec for 500 msec 0 0 41 / 56 500 500 Time (msec) 2 MB/sec for 190 msec Time (msec) Time (msec) Kommunikationsnetze I 500 500 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Resource Reservation Um Resourcen effizient zu reservieren muß der Pfad der Daten bekannt sein. Dies ist einfach bei verbindungsorientierter Übertragung aber schwierig bei verbindungsloser Übertragung. Die wichtigsten Resourcen sind 42 / 56 I Bandbreite I Buffer Speicher I CPU Zyklen Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Beispiel CPU Zyklen CPU Auslastung und Verzögerung wird stark durch die statistische Verteilung der Aufgaben beeinflußt. Beispiel: Zufällige Ankunftszeiten der Pakete, im Mittel λ Pakete/s Zufällige CPU Last je Paket, im Mittel µ Pakete/s prozessierbar Beide Zufallsprozesse seien Poisson verteilt. Mittlere CPU Auslastung ρ = λ/µ Die mittlere Verzögerung T für ein Paket ist dann T = 1 µ · 1 1−λ/µ = 1 µ · 1 1−ρ Der Faktor 1/µ ist die reine Rechenzeit (ρ ≈ 0 ⇒ T ≈ 1/µ). Der zweite Faktor beschreibt die Verzögerung durch die CPU Auslastung. Bei 50% Auslastung ergibt sich ein Faktor 2, bei 95% Auslastung ein Faktor 20. 43 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Admission Control Mit der Admission Control wird entschieden ob eine neue Übertragung/Verbindung zugelassen wird, d.h. ob genug Resourcen vorhanden sind. In der Regel erzeugt der Sender eine “flow specification” mit seinen Wünschen wie z.B. 44 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Admission Control Dieser wird über die vereinbarte Route geschickt und jeder Router kann Werte dekrementieren wenn nötig. Der Empfänger sendet das Endergebnis zurück. Wurde sich auf eine “flow specification” geeinigt, reservieren die Router die entsprechenden Resourcen. Je exakter die Resourcen vorgegeben sind, desto einfacher ist es sie zu reservieren. 45 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Proportional Routing Die meisten Routing Verfahren senden die Daten einer Verbindung über einen einzigen Pfad. Für eine gute QoS kann es sinnvoll sein die Daten auf mehrere Pfade aufzuteilen. I Verteilung der Bandbreite I Erhöhung der Robustheit Da die Router in der Regel nicht das ganze Netz kennen, können sie nur lokale Information verwenden. Beispielsweise können sie die Daten entsprechend der Kapazität der Ausgangsleitungen aufteilen. 46 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Packet Scheduling Wenn ein Router Pakete von mehreren Datenströmen bekommt, muß er diese in einer bestimmten Reihenfolge abarbeiten. 47 / 56 I FIFO: sehr einfach, bevorzugt aber aggressive Sender. Ungeeignet für QoS. I Fair Queueing: Für jede Ausgangsleitung gibt es eine eigene Warteschlange. Diese wird round robin (packet-by-packet oder byte-by-byte) abgearbeitet. I Weighted Fair Queueing: Erweiterung von Fair Queueing um eine Gewichtung der Datenströme entsprechend ihrer Priorität. Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Packet Scheduling Beispiel für Fair Queueing mit byte-by-byte round robin: a) Router mit 5 Eingängen A-E und einem Ausgang O b) Endzeiten für die einzelnen Eingänge Packet Finishing time A 1 6 11 15 19 20 C 8 B 2 7 12 16 B 16 C 3 8 D 17 D 4 9 13 17 E 18 E 5 10 14 18 A 20 O (a) (b) (c) Tanenbaum, Computer Networks 48 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Resource Reservation Protocol (RSVP) RSVP ist das Kernprotokoll der “Integrated Services” Architektur von IETF. Integrated Services sind eine Architektur für Multicast (und Unicast) Multimedia Streaming. RSVP benutzt Multicast Routing, d.h. es werden Empfängergruppen gebildet und für jede Gruppe wird ein Routing Baum erzeugt. Bei RSVP wird noch zusätzlich Information per Multicast an die Router verteilt. Jeder Empfänger kann eine “Reservation Message” an einen Sender schicken. Dieser wird mit Reverse Path Forwarding durch den Routing Baum propagiert. Dabei sieht sie jeder Router und reserviert entsprechende Resourcen. Falls keine Resourcen frei sind wird eine Fehlermeldung erzeugt. Datenströme von einem Sender werden zusammengefaßt. Dabei werden die höchsten QoS Anforderungen berücksichtigt. 49 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS RSVP Beispiel Senders 1 2 1 B A D E H G K J 3 2 1 B 4 5 C A F D I G L J E H K 3 2 B 4 C A F D I G L J 5 C F E H I K 3 4 L 5 Receivers (a) (b) (c)(c) Tanenbaum, Computer Networks a) Netzwerk b) Multicast Routing Baum Sender 1 b) Multicast Routing Baum Sender 2 50 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS RSVP Beispiel 1 2 1 B A D 1 2 B E 2 B C A F D E I G H L J C Bandwidth reserved for source 2 F A C D E F I G H I L J Bandwidth reserved for source 1 H G K J 3 4 (a) 5 K 3 4 5 K 3 (b) 4 L 5 (c) (c) Tanenbaum, Computer Networks a) Empfänger 3 sendet Request für Sender 1 b) Empfänger 3 sendet Request für Sender 2 b) Empfänger 5 sendet Request für Sender 1 51 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Differentiated Services (DiffServ) Protokolle wie RSVP offerieren einen guten QoS da sie die einzelnen Verbindung berücksichtigen. Sie sind aber relativ komplex und erfordern auch einen Vorlauf beim Einrichten der Verbindungen. DiffServ sind eine einfache Alternative von IETF, die nicht konkrete Verbindungen berücksichtigt, sondern sich nur an Serviceklassen orientiert. DiffServ läßt sich lokal auf den Routern integrieren und erfordert keinen komplexen Verbindungsaufbau. Einzelne Serviceklassen können z.B. durch das Type-of-Service Feld unterschieden werden. IETF versucht die Serviceklassen netzwerkunabhängig zu standardisieren. 52 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS DiffServ - Expedited Forwarding Expedited Forwarding ist das einfachste DiffServ Schema. Es existieren zwei Serviceklassen: I regular: Der Großteil der Pakete ohne besondere Anforderungen I expedited: Wichtige Pakete, die ohne Verzögerung verarbeitet werden müssen Für expedited Pakete soll das Netzwerk als leer erscheinen. Eine mögliche Implementierung sind zwei virtuelle Kanäle für jede Verbindung. Entsprechend einer Art von Weighted Fair Queueing erhält der expedited Kanal dabei mehr Bandbreite als nötig zugewiesen. 53 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Expedited Forwarding - Beispiel Expedited packets Regular packets (c) Tanenbaum, Computer Networks oben: Reservierter Kanal für expedited Pakete unten: Kanal für reguläre Pakete 54 / 56 Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS DiffServ - Assured Forwarding Ein weiteres DiffServ Schema ist Assured Forwarding. Pakete werde klassifiziert nach I Priority: 4 Klassen I Discard Probability bei Congestion: 3 Klassen D.h. es gibt insgesamt 12 Klassen. Das Verfahren beinhaltet 3 Stufen: 55 / 56 I Klassifizierung nach Priorität z.B. im Sender oder im ersten Router I Markieren der Pakete z.B. im Type-of-Service Feld I Im Router werden dann in eine Warteschlangen-Filter entsprechend verzögert oder verworfen. Kommunikationsnetze I 20.1.2010 Congestion Control Quality of Service Einleitung Techniken für QoS Assured Forwarding - Beispiel Ingress router Output line 1 Packets Classifier Marker 2 Shaper/ dropper 3 4 Four priority classes Class Queued packet (c) Tanenbaum, Computer Networks 56 / 56 Kommunikationsnetze I 20.1.2010