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

Documents pareils