Peer-to-Peer-Netzwerke: Algorithmen und Methoden
(Anfangs-) FenstergroBe unterscheidet.
Wie in Abbildung 2.13 zu sehen, bezeichnen wir die Menge der nicht bestatigten Daten in einer Flussrichtung nun als „Fenster". Die FenstergroBe wird vorn Empfanger gesteuert and kann folgendermaBen verrndert werden:
• Das Fenster schlief3t sich, wenn das linke Ende nach rechts wandert. Dies passiert, wenn Daten bestatigt werden.
• Das Fenster offnet sich, wenn das rechte Ende nach rechts weiterlauft. Damit konnen mehr Daten gesendet werden. Dies geschieht insbesondere, wenn der Empfanger TCP-Pakete aus dem Puffer ausgelesen and damit Platz fur neue Pakete geschaffen hat.
• Folgender Fall ist auch erlaubt, sollte aber nur in Ausnahmesituationen auftreten [29]: Das Fenster schrumpft, wenn sich das rechte Ende nach links bewegt. Der Empfanger verringert mit einer Bestatigung die FenstergroBe um mehr als die damit bestatigte Datenmenge. Eben hat der Empfanger noch signalisiert, dass er these Pakete erhalten kann, and dann signalisiert er das Gegenteil.
Von dieser Art der Fensterveranderung wird abgeraten. Dennoch mussen TCP- Protokolle sie unterstutzen.
Slow-Start
Tatsachlich darf der Sender die angebotene FenstergroBe einer TCP-Verbindung nicht von Anfang an voll nutzen. In lokalen Netzwerken ware dies in der Regel kein Problem, in groBeren Netzwerken kann das jedoch auf den Routern zu Netzwerk- stauungen and damit Datenverlust kommen.
Damit kommt ein weiterer Fenstermechanismus ins Spiel, namlich das Congestion-Fenster (CWND: Congestion Window), das in Vielfachen der SegmentgroBe verwaltet wird. Im Gegensatz zum Fenster wird das Congestion-Fenster vom Sender verwaltet. Auch das Congestion-Fenster beschrankt die Anzahl der gesendeten unbestatigten Daten. Damit kann der Sender maximal min{cwnd, wnd} an unbestatigten Daten versenden oder schon versandt haben.
Der Slow-Start-Mechanismus arbeitet wie folgt:
• Beim Verbindungsaufbau wird das Congestion-Fenster auf die PaketgroBe (gegeben durch die maximale SegmentgroBe MSS) gesetzt.
cwnd - MSS
Damit kann anfangs nur ein (volles) TCP-Paket verschickt werden.
• Bei Bestatigung eines Pakets (nach Erhalt eines ACK-Segments), wird das Congestion-Fenster um die maximale SegmentgroBe vergroBert:
Die maximal mogliche FenstergroBe ergibt sich aus der Kapazitat, dem Produkt aus Bandbreite (Bytes/Sek.) and der Umlaufzeit (Sek.) (RTT):
Maximale FenstergroBe (Bytes) = Bandbreite (Bytes/Sek.) x Umlaufzeit (Sek.) .
Zur Veranschaulichung dieses Algorithmus bezeichnen wir mit x die Anzahl der Pakete, die unter Berucksichtigung von cwnd innerhalb einer Umlaufzeit versendet werden durfen, d.h.
Demnach gliedert sich Slow-Start in zwei Teile.
1. Zu Beginn setzen wir
2. Mit jedem Paket setzen wir x 4- x + 1. Da dies bis zu x-mal geschehen kann, setzen wir im besten Fall:
Damit realisiert Slow-Start im optimalen Fall (d.h. alle Pakete werden bestatigt and wnd ist ausreichend groB) exponentielles Wachstum der Datenrate.
Stauvermeidung
Es genugt aber nicht nur, die Datenrate am Anfang langsam zu steigern. Wenn groBe Datenmengen ubertragen werden mUssen and damit die maximale SegmentgroBe immer voll ausgeschopft wird, passt TCP die Datenrate kontinuierlich an, damit in den Routern keine Staus entstehen. Wir stellen diesen Mechanismus zunachst vor and beschreiben dann, warum er gerade so gewahlt worden ist.
Die entscheidenden Parameter sind die Congestion-FenstergroBe cwnd and ein Slow-Start-Schwellwert ssthresh (Slow Start Threshold Size). Wir bezeichnen mit x wieder die Anzahl der vollen Pakete pro Umlaufzeit and mit y den Slow-StartSchwellwert in Vielfachen der maximalen SegmentgroBe, d.h. y = ssthresh/Mss.
1. Beim Verbindungsaufbau wird das Congestion-Fenster auf die maximale SegmentgroBe (Mss) gesetzt
and der Slow-Start-Schwellwert auf die maximale FenstergroBe:
In der Notation mit x and y bedeutet dies:
x4-1, y -max
2. Kommt es zu einem Paketverlust, d.h., eine Bestatigung eines Pakets erreicht den Sender nicht innerhalb des aktuell berechneten Zeitraums RTO oder eine Reihe von Acknowledgements desselben Pakets trifft ein, dann wird ein Datenstau (Congestion) angenommen.
Nun werden folgende Aktualisierungen durchgefuhrt:
Wenn wir wieder annehmen, dass wnd ausreichend grog ist and dass cwnd mindestens 4Mss ist, bedeutet das:
3. Werden Daten bestatigt and ist cwnd < ssthresh, wird Slow Start durchgefiihrt. Wird also ein Paket bestatigt, erhalten wir
Werden alle Pakete innerhalb der Zeit RTO bestatigt,
Weitere Kostenlose Bücher