Datenkommunikation - FET
Datenkommunikation - FET
Datenkommunikation - FET
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2<br />
3<br />
Sender Empfänger<br />
1<br />
4<br />
5<br />
6<br />
7<br />
Segment<br />
Quittung<br />
Bild: TCP Slow Start<br />
- Es muss immer gelten<br />
LastByteSent – LastByteAcked ≤ min {rwnd, cwnd}<br />
- Schwellenwert ssthresh bestimmt wie Staukontrollfenster vergrößert wird<br />
Ablauf<br />
- Start: cwnd = 1 MSS<br />
- Solange cwnd ≤ ssthresh und Quittungen vor Timeout empfangen<br />
- Exponentielles Erhöhen des Staukontrollfensters<br />
Slow-Start: - Verdopplung des Staukontrollfensters je Umlaufzeit<br />
- Empfangene Quittung: cwnd + = 1<br />
cwnd > ssthresh und Quittungen vor Timeout empfangen<br />
Congestion<br />
Avoidance:<br />
Timeout:<br />
- Lineares Erhöhen des Staukontrollfensters<br />
- Erhöhen des Staukontrollfensters um 1 je Umlaufzeit<br />
- Empfangene Quittung: cwnd + = 1 / cwnd<br />
- ssthresh := cwnd / 2<br />
-cwnd= 1 MSS<br />
Bild: TCP Staukontrolle: Slow-Start und Congestion Avoidance<br />
Congestion Avoidance<br />
- Additive increase, multiplicative decrease<br />
- Erhöhen des Fensters um 1 je Umlaufzeit<br />
- Erniedrigen des Fensters um Faktor 2 bei vermutetem Datenverlust<br />
( Quittung nicht rechtzeitig empfangen)<br />
- Algorithmus zur Staukontrolle geht auf Van Jacobson zurück<br />
- Modifikationen des ursprünglichen Algorithmus<br />
- RFC 2581<br />
- Staukontrollfenster wird initial auf 2 MSS gesetzt<br />
Bild: Congestion Avoidance<br />
t<br />
Slow Start und Congestion Avoidance<br />
Diese Funktionen dienen der Steuerung und Kontrolle der<br />
in ein Netz injizierten Daten. Dazu werden keine weiteren<br />
Protokoll-Elemente im TCP-Overhead, sondern die Betriebszustände,<br />
in denen sich Sender und Empfänger befinden<br />
können, werden erweitert. Die notwendigen Informationen<br />
sind:<br />
Maximale Größe des Sendepuffers, diese kennt der Sender<br />
selbst (congestion window - cwnd).<br />
Aktuelle Größe des Empfangspuffers, diesen<br />
Wert teilt der Empfänger im TCP-Protokoll-<br />
Element Window Size dem Sender mit (receiver's<br />
advertised window - rwnd).<br />
Schwellwert, an dem die Betriebsart von Slow<br />
Start auf Congestion Avoidance umgeschaltet<br />
wird. Diesen Schwellwert kennt der Sender<br />
selbst; er wird üblicherweise auf die Hälfte des<br />
Wertes für congestion window gesetzt (slow<br />
start threshold - ssthresh).<br />
Wenn ein Sender anfängt, Daten ins Netz zu schicken<br />
(also nach dem TCP-Verbindungsaufbau), dann<br />
kennt er die Fähigkeiten des Netzes noch nicht. Deshalb<br />
fängt er mit wenig Daten an um das Netz zu<br />
testen. Allgemein gilt, dass nicht mehr als zwei Segmente<br />
gesendet werden. Wurden diese bestätigt,<br />
schickt der Sender eine größere Datenmenge. Damit<br />
tastet er sich an den Schwellwert (slow start threshold),<br />
der willkürlich festgelegt ist. Danach wird in<br />
den congestion avoidance Modus umgeschaltet.<br />
Dabei wird jetzt die gesendete Datenmenge linear<br />
immer um ein Segment erhöht.<br />
Die absolute Obergrenze, ab der nicht mehr erhöht wird, ist entweder durch den Sender (congestion window) oder durch den<br />
Empfänger (receiver's advertised window) vorgegeben.<br />
Es wird immer geprüft, ob die Bestätigung eines Segmentes vor Ablauf des Timers ankommt. Tritt ein Timeout ein, dann<br />
wird mit dem Vorgang neu begonnen, wobei jetzt der Schwellwert halbiert wird. Durch geeignete Wahl der Parameter können<br />
unterschiedliche Verhaltensmuster erzielt werden. Es ist Aufgabe der Implementierung, hier das Bestmögliche aus dem<br />
Netz herauszuholen.<br />
Institut für Kommunikationsnetze - TU Wien o. Univ. Prof. Dr. Harmen R. van As Vorlesung <strong>Datenkommunikation</strong> Teil 3.3 21