Größe des verfügbaren Eingangs-Puffers des Empfängers /"receive buffer size"/.
Der Empfänger von Daten sichert die Abnahme aller Daten bis zur dergestalt angezeigten Menge zu.
Der Sender von Daten schickt niemals mehr je Datenstoß, als dieser Menge entspricht.
Ist die Gesamt-Datenmenge des Senders größer, als die TCP Window Size des Empfängers anzeigt, muss die Übertragung mittels TCP PSH unterbrochen und der Empfänger zur Abgabe einer Quittung aufgefordert werden. Kommt diese auf TCP PSH folgende Quittung, enthält sie eine neuerliche Angabe zur TCP Window Size.
Dieser Mechanismus der Datenfluss-Steuerung ist elementar für TCP.
Die fortgeschrittene Datenfluss-Steuerung von TCP soll - so weit es geht - wie folgt ablaufen: Teilnehmer A gibt an, wie groß sein Empfangs-Puffer ist; hierzu wird der Parameter der sog. TCP Window Size verwendet. Bis zum Erreichen dieser Größe sendet B ohne Unterbrechung (und ohne Empfangs-Quittungen von A abzuwarten) TCP-Pakete an A. Sobald die TCP Window Size erreicht ist, muss B die Daten aus dem Empfangs-Puffer an die höheren Schichten weiter reichen ("push") und eine Empfangs-Quittung an B senden -> TCP ACK. Falls die durch B zu versendende Daten-Menge kleiner ist als die von A bekannt gegebene TCP Window Size , wird B im letzten TCP-Paket des Daten-Stoßes das PUSH-Flag setzen -> TCP PSH; hierdurch wird A angewiesen, nicht auf das Erreichen der TCP Window Size zu warten, sondern sofort die empfangenen Daten an die höhere Schicht weiter zu geben und das TCP ACK zu senden.
Ein Stop-And-Go-Verkehr innerhalb der TCP-Dialoge kommt insbesondere bei folgenden Anwendungen vor: Netzwerk-Drucken und Datenbank-Zugriffe.
Beispiel der Datenbank-Transaktionen:
Nachdem der Client seinen Request an den Server gesendet hat, quittiert dieser den Empfang mit einem leeren Acknowledge-Paket (TCP-ACK), das zugleich den Client in einen Warte-Zustand versetzt, indem der Server die Größe seine Empfangs-Puffers mit "0" angibt: TCP Window Size = 0 (Zero).
Erst, wenn der Server die Antwort zurück gibt, wird auch wieder eine TCP Window Size größer Null angegeben und somit dem Client das Senden wieder erlaubt.
Dieses Transaktions-Verhalten verhindert die Überlastung des Servers bzw. die logisch gefährliche Überschneidung mehrerer Client-Requests, deren serielle Abarbeitung zwingend erforderlich ist (statt deren parallele Bearbeitung).
Mail
an die Online-Redaktion zum aktuellen Thema ("TCP Window Size").