TCP Receive Window
Die TCP Receive Window (Size), auch kurz RWin oder Window, englisch für „Empfangsfenster(größe)“, ist neben der Maximum Segment Size (MSS) ein Parameter, der die Funktion des Netzwerkprotokolls Transmission Control Protocol (TCP) steuert. Sie beschreibt die maximale Datenmenge, die ein Computer empfangen kann, ohne Daten bestätigen zu müssen. Im Umkehrschluss ist es also die maximale Datenmenge, die ein Computer senden kann, ohne auf eine Empfangsbestätigung (TCP ACK, von engl. acknowledgment = Bestätigung) des Empfängers warten zu müssen. Damit ist sichergestellt, dass der Empfangsspeicher (Puffer) des Empfängers nicht überläuft, da dieser nie mehr Daten am Stück empfängt, als er dem Sender durch Übermittlung seiner aktuellen Empfangsfenstergröße erlaubt hat. Erst wenn der Empfänger Daten bestätigt (und damit aus dem Puffer entfernt) hat, sendet der Sender die nächsten Daten.
Bei einem zu klein gewählten Empfangsfenster muss der Sender oft auf Bestätigungspakete warten, um wieder senden zu können, während ein größeres Empfangsfenster dem Sender ein kontinuierlicheres Senden erlaubt. Dafür muss im Fehlerfall, also bei nicht übertragenen oder fehlerhaften Paketen, auch eine größere Menge Daten erneut übertragen werden, nämlich alle bereits versandten, aber vom Empfänger noch nicht quittierten Daten, maximal die Empfangsfenstergröße. Bei sehr schlechter Netzwerkqualität kann also eine geringere Größe des Empfangsfensters performanter sein.
Ferner bestimmt die Empfangsfenstergröße zusammen mit der Round Trip Time (RTT) zwischen Sender und Empfänger den theoretisch möglichen Datendurchsatz, der dem Quotienten aus beiden Größen entspricht.
Optimaler Wert
Diverse Zeitschriften und Anleitungen in Internetforen versprechen, durch „Tuning“ von RWin und einiger anderer Werte mehr Geschwindigkeit etwa aus einem DSL-Anschluss herauszuholen. In der Praxis ist die erreichbare Beschleunigung – außer bei älteren Betriebssystemen mit sehr breitbandigen Anbindungen – oft zu vernachlässigen, da der vom Betriebssystem fest vorgegebene oder seit Windows Vista automatisch ermittelte Standardwert für übliche Anwendungsfälle angemessen dimensioniert ist.[1][2]
In Microsoft Windows 9x, Me und NT war das Empfangsfenster standardmäßig 8 Kilobyte groß. Windows 2000 und XP reservieren 16 Kilobyte. Seit Windows Vista und Windows Server 2008 wird die Empfangsfenstergröße auf Basis der Verbindungsart und -qualität automatisch ermittelt und kann dort bis zu 16 Megabyte betragen.[3] Dieses „Auto-Tuning“ genannte Verhalten lässt sich abschalten.
Bis 2006 empfahl die Deutsche Telekom für T-DSL-Anschlüsse einen RWin-Wert von 16 oder 32 Kilobyte Größe. Für Modem- und ISDN-Anschlüsse sollte der Wert maximal 8 Kilobyte betragen.[4]
Obergrenze
Um die Paketlängen voll auszunutzen und IP-Fragmentierung zu vermeiden, wird für das Empfangsfenster allgemein ein ganzzahliges Vielfaches der Maximum Segment Size (MSS) empfohlen und der Wert deshalb häufig nur als Faktor angegeben.[5] Die MSS wiederum entspricht der Maximum Transmission Unit (MTU) abzüglich 40 Byte für die IP- und TCP-Header (bei IPv6 60 Byte), so dass bei einer MTU von beispielsweise 1492 Byte (Standard der meisten Internetdienstanbieter) die MSS 1452 Byte beträgt.
Im TCP-Header sind 16 Bit für den RWin-Wert vorgesehen, was maximal 65.535 Byte entspricht. Als größtes ganzzahliges Vielfaches, das kleiner als diese Obergrenze ist, ergibt sich beispielsweise für Ethernet mit einer MTU von typischerweise 1500 Byte und einer entsprechenden MSS von 1460 Byte ein maximaler RWin-Wert von 44 × 1460 = 64.240 Byte.[6] Für ADSL-Verbindungen, welche die Segmentgröße gemäß PPP over Ethernet um 8 Byte reduzieren, ergibt sich entsprechend ein maximaler RWin-Wert von 45 × 1452 = 65.340 Byte.
TCP Window Scale Option
RFC 1323 beschreibt eine TCP Window Scale Option (kurz Window Scaling, englisch für „Fensterskalierung“) genannte Erweiterung des TCP-Headers, die es erlaubt, den RWin-Wert mit einem Faktor von bis zu 214 zu multiplizieren und damit auf maximal 1 Gigabyte zu erhöhen. In Microsoft Windows ist diese Option seit Windows 2000 optional verfügbar[7] und seit Windows Server 2008 standardmäßig aktiviert, aber auf 16 Megabyte begrenzt.[3] Die Option wird beim Verbindungsaufbau übermittelt und greift nur, wenn sie von beiden Seiten unterstützt wird.
Einzelnachweise
- tecCHANNEL: Mehrwert mit DSL. 9. April 2002
- Script Soft: Internet Tuning unter Windows 7 und Vista. 16. November 2009.
- TechNet Magazine: TCP Receive Window Auto-Tuning. Januar 2007.
- T-Com: Häufig gestellte Fragen zu T-DSL. 5. Juli 2006
- SpeedGuide.net: Why does RWin need to be a multiple of MSS? (englisch)
- SpeedGuide.net: Why 64240 (or 65535) RWin? (englisch)
- Microsoft: Beschreibung von TCP-Eigenschaften in Windows 2000 und Windows Server 2003. April 2007.
Weblinks
- SpeedGuide.net TCP/IP Analyzer (englisch)
- Understanding Throughput & TCP Windows (englisch)