Rechnernetze
Home Nach oben

Fenstergrößen in TCP

Die Fenstergröße, welche in jedem Segment übertragen wird, gibt die Menge von Bytes an, die vom Absender dieses Werts noch empfangen werden können, ehe die Puffer überlaufen. Zu große Fenster könnten den Puffer des Empfängers überlaufen lassen und exzessive Wiederholungen veranlassen, zu kleine Fenster können die Übertragungsrate von Datenpaketen bis zur Round Trip Time verringern.

Das TCP-RFC sieht einige Regeln vor, wie sich TCP in Bezug auf seine Fenstergrößen verhalten sollte.

TCP sollte niemals das Fenster verkleinern, wenn es nicht Daten in der Größe des ersten Fenster erhalten hat, da dieses das System instabil machen könnte. Andererseits sollte es damit rechnen, dass sich die Gegenstelle anders verhält.
Selbst wenn das Sendefenster geschlossen ist, sollte TCP damit rechnen, mindestens 1 Byte an Daten zu erhalten und auch bereit sein, diese zu quittieren. Dieses ist notwendig, um die Gegenstelle sicher über das Erweitern eines Fensters zu informieren.
Das sendende TCP sollte Pakete in der Fenstergröße erzeugen und gegebenenfalls in der Warteschlange entsprechend segmentieren.
Werden Daten nur in einer Richtung gesendet, so kann der Empfänger die Reihenfolge der Datenpakete nicht eindeutig feststellen, so dass Quittungen in falscher Reihenfolge (mit stets der gleichen Sequenznummer) nicht sortiert werden können. Der Standard schlägt vor, in diesem Fall nur Quittungen mit "größeren" Quittungsnummern zu berücksichtigen.

Das TCP-RFC sieht einige Regeln vor, wie die Fenstergröße angepasst werden sollte.

Zu kleine Fenster verringern die Leistung, so dass größere Fenster bevorzugt werden sollten.
Fenster sollten mindestens 20 % bis 40 % der maximal möglichen Fenstergröße betragen.
Der Sender sollte abwarten, bis genug Daten für ein größeres Datenpaket vorhanden sind (außer bei PUSH).
Quittungen sollten nicht verzögert werden, sondern sofort abgeschickt werden. Fenster sollten nur in möglichst großen Schritten vergrößert werden.
Fenster sollten immer möglichst groß gewählt werden.