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. |
|