Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Motivation
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 32
Bisher haben wir die Flusskontrolle besprochen:Regulieren der Senderate, um eine Überlastung des Empfängers zu vermeiden.
Wir interessieren uns nun für die Überlastkontrolle:Regulieren der Senderate, um eine Überlastung des ganzen Netzes zu vermeiden.
Die TCP‐Flusskontrolle verwendet (wie schon gezeigt) das EffectiveWindow: es dürfen nur EffectiveWindow viele weitere Bytes versendet werden.• Versenden von weiteren Bytes verkleinert das EffectiveWindow• Empfang von Acknowledgements vergrößert das Window
wieder
Das EffectiveWindow kann auch für die Überlastkontrolleverwendet werden: ...
EffectiveWindow für Fluss‐ und Überlastkontrolle
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 33
Annahme in der Variable CongestionWindow steht, wie viel Bytes das Netz im Transit erlaubt.
Setze das EffectiveWindow wie folgt:
Aber woher lernt TCP das CongestionWindow?
Additive Increase / Multiplicative Decrease (AIMD):• Sender halbiert das Fenster, wenn er Überlast vermutet• Sonst vergrößere das Fenster um eine MSS pro RTT
Das Fenster darf aber nie kleiner als eine MSS werden
Wie kann man Überlast vermuten? Wann immer ein Timeout für ein ausstehendes ACK stattfindet.
Additive‐Increase‐Beispiel
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 34
Source Destination
RTT
RTT
RTT
Erhöhe um eine MSS
Erhöhe um eine MSS
Erhöhe um eine MSS
...... ...
Inkrement pro RTT:
Inkrement pro ACK?
Sei c die alte Länge des CongestionWindow. Nach einem RTT‐Durchlauf ist:
Ein typisches AIMD‐Muster
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 35
Congestio
nWindo
w‐Größe
Zeit
Slow‐Start
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 36
RTT
RTT
RTT
... ...
Source DestinationStarte mit einem CongestionWindow der Länge MSS.
Erhöhe CongestionWindow um eine MSS pro ACK.
Somit wird das CongestionWindow pro RTT wie weit erhöht?
Warum heißt das eigentlich Slow‐Start? Historischer Grund: In TCP‐Anfängen wurde zum Starten direkt mit einem großen CongestionWindow gestartet.
Wann beginnt und endet der Slow‐Start?
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 37
Wenn eine Verbindung neu hergestellt wurde.• Setze CongestionWindow auf eine MSS• Beginne Slow‐Start• Wechsele in AdditiveIncrease sobald ein bestimmter
Schwellwert (CongestionThreshold) überschritten wurde
Wenn ein Timeout stattgefunden hat• CongestionThreshold = CongestionWindow/2 (man merkt sich
also den CongestionWindow nach dem durch den Timeout ausgelösten MultiplicativeDecrease)
• Setze CongestionWindow auf eine MSS• Beginne Slow‐Start• Wechsele in AdditiveIncrease sobald der Schwellwert
CongestionThreshold überschritten wurde
Ein Beispiel
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 38Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003
Fast‐Retransmit
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 39
Sender EmpfängerPaket 1Paket 2
* ACK 1ACK 2
ACK 2
ACK 2ACK 2
ACK 6
Paket 4
Paket 5Paket 6
Paket 3(retransmit)
Paket 3
Erinnerung: ACKS sind kummulativ(d.h. bestätigen die bisher voll‐ständig zusammenhängende Se‐quenz von Segmenten)
Verlorene Sequenz führt zu „duplicate ACKs“.
Fast‐Retransmit: Warte nicht auf Timeout, sondern reübertrage ein Segment, nach drei aufeinander folgenden Duplicate‐ACKs.
Die TCP‐Variante mit Fast‐Recovery
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 40
• Slow‐Start, wenn die TCP‐Verbindung neu aufgebaut wurde.• Die Reübertragung wegen duplicate ACK lediglich CongestionWindow wie
üblich halbieren.• Aber keinen Slow‐Start, sondern gewöhnlichen AdditiveIncrease.
Motivation
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 42
TCP implementiert Überlastkontrolle, d.h. erst wenn Segmente auf den Routern verworfen werden, wird an den Quellen die in das Netz gesendete Last reduziert.
Die Idee von Überlastvermeidung: reduziere die an den Quellen erzeugte Last schon bevor die ersten Segmente (Pakete) an den Routern wegen voll gelaufener Queues verworfen werden.
TCP hat an den Quellknoten keine Mechanismen eingebaut, die eine solche Strategie unmittelbar ermöglicht. Man müsste hierzu TCP durch ein neues Protokoll ersetzen.
Idee: Router „gaukeln“ vorzeitig übergelaufene Queues vor, sodass die TCP‐Quellknoten auch vorzeitig die Last reduzieren und somit keine Überlast an den Routern auftreten kann.
Random‐Early‐Detection (RED)
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 43
Router berechnet regelmäßig die mittlere Queuelänge AvgLenanhand von gemessenen Queuelängensamples SampleLen:
Jeder Router hat ein MinThreshold und ein MaxThreshold. Bei Ankunft eines Paketes wird folgender Algorithmus ausgeführt:
if AvgLen <= MinThresholdspeichere Paket in der Queue
else if AvgLen < MaxThresholdberechne Wahrscheinlichkeit pverwerfe das Paket mit der Wahrscheinlichkeit p
elseverwerfe das Paket immer
Berechnung der Drop‐Wahrscheinlichkeit
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 44
Bestimme die Wahrscheinlichkeit TempP zunächst in Abhängigkeit von AvgLenwie folgt:
D.h. zwischen MinThresh und MaxThresh als Formel:
Zähle die Anzahl count der nicht verworfenen Pakete während AvgLen zwischen MinThresh und MaxThresh war und berechne:
TempP
1.0
MaxP
MinThresh MaxThresh
AvgLen
TCP erlaubt Implementationsvarianten• Send‐Policy
– Keine Festlegung wie lange und wieviel gepuffert wird, bevor ein Segment gesendet wird
– Abzuwägen ist: Response‐Zeit versus Overhead wegen Nachrichten‐Header
• Deliver‐Policy– Keine Festlegung wie lange Segmente auf der Empfängerseite gepuffert
werden, bevor diese an die Anwendung weiter gegeben werden– Abzuwägen ist: Response‐Zeit versus Overhead wegen Processing in TCP‐
und User‐Software, sowie unnötige OS‐Interrupts
• Accept‐Policy– Keine Festlegung, wie mit Out‐of‐Order Segmenten umzugehen ist– Zwei Optionen
• Verwerfe Out‐of‐Order‐Segmente• Behalte alle Segmente, die in das Receive‐Fenster passen
– Abzuwägen ist: Aufwand für Puffer‐Verwaltung versus Netzlast
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 46
TCP erlaubt Implementationsvarianten• Retransmit‐Policy
– Keine Festlegung, wann ein gepuffertes und noch nicht bestätigtes Segment nochmals übertragen wird
– Mögliche Strategien:• First‐only: Ein Retransmit‐Timeout für das Segment am Anfang der Sende‐Queue (wenn Timeout
stattfindet sende das erste Segment und setze den Timer erneut)• Batch: Sende alle Segmente erneut sobald der Retransmit‐Timeout stattfindet• Individuell: Ein Timer für jedes Segment in der Queue
– Abzuwägen ist:• First‐only: geringe Netzlast aber größere Verzögerung• Batch und Individuell: geringere Verzögerung bei höherer Netzlast
• Acknowledge‐Policy– Keine Festlegung, wann genau ein einkommendes Segment bestätigt werden muss– Mögliche Strategien:
• Immediate: sende leeres Segment (d.h. ohne Daten) mit Acknowledgement• Cummulative: Sammele Daten auf der Empfangsseite und sende Acknowledgement erst dann
(allerdings: Persit‐Timer, um Acknowledgement nicht zu lange zu verzögern)– Abzuwägen ist: Netzlast versus Verzögerung
• Zusammengefasst: im Rahmen der genannten Policies können TCP‐Varianten realisiert werden, die untereinander interoperabel sind.
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 47
Beispiele von TCP‐Varianten
SS 2014 Grundlagen der Rechnernetze ‐ Transportschicht 48
TCP existiert/existierte in verschiedenen Varianten
TCP TahoeUrsprüngliche TCP‐Implementierung des beschriebenen Congestion‐Control‐Mechanismus; mit Ausnahme des diskutierten Fast‐Recovery
TCP RenoUnter anderem wurde Fast‐Recovery hinzugefügt
TCP VegasBeobachtung der RTT auf den sendenden Knoten und proaktive Anpassung des CongestionWindows, um Congestion vorab zu vermeiden
Zusammenfassung• Die wichtigsten Internet‐Transportprotokolle
– UDP (keine Aufwertung des IP Best‐Effort‐Dienstes)– TCP (zuverlässiger Byte‐Strom über IP)
• Flusskontrolle und Überlastkontrolle – Flusskontrolle findet Ende‐zu‐Ende statt– Überlastkontrolle betrifft das ganze Netz
• Design‐Merkmale– Ende‐zu‐Ende‐Argument: realisiere Funktion auf der Schicht, in der
diese komplett implementierbar ist– TCP funktioniert nach dem Smart‐Sender/Dumb‐Receiver‐Prinzip
• Eine weitere TCP‐Stärke: TCP erlaubt Erweiterungen; Hosts müssen sich einigen welche Erweiterungen genutzt werden sollen; Neue TCP‐Erweiterung erfordert damit nicht im ganzen Internet TCP komplett neu zu installieren
• Die Unterscheidung zwischen Überlastkontrolle und Überlastvermeidung
Grundlagen der Rechnernetze ‐ Transportschicht 50SS 2014
Literatur[PetersonDavie2007] Larry L. Peterson and Bruce S. Davie, „Computer
Networks: A Systems Approach“, Edition 4, 2007.5.1 Simple Demultiplexer (UDP)5.2.2 Segment Format5.2.3 Connection Establishement and Termination5.2.4 Sliding Window Revisited5.2.5 Triggering Transmission5.2.6 Adaptive Retransmission5.2.7 Record Boundaries5.2.8 TCP Extensions6.3.1 Additive Increase/Multiplicative Decrease6.3.2 Slow Start6.3.3 Fast Retransmit and Fast Recovery6.4.2 Random Early Detection (RED)
Grundlagen der Rechnernetze ‐ Transportschicht 51SS 2014