Ein Protokoll namens TCP Flow Control wurde erstellt, um den Datenfluss zwischen dem Benutzer und dem Server zu steuern.
Es stellt sicher, dass eine bestimmte Bandbreite zum Senden und Empfangen von Daten zur Verfügung steht, damit die Verarbeitung ohne schwerwiegende Probleme fortgesetzt werden kann.
Das TCP-Protokoll verwendet dazu ein Verfahren, das als Sliding-Window-Protokoll bekannt ist.
In diesem Artikel werfen wir einen tiefen Blick auf die TCP-Flusskontrolle, einschließlich ihrer Funktionsweise und vor allem des Sliding-Window-Protokolls.
Was ist TCP-Flusskontrolle?
Das TCP-Protokoll stellt sicher, dass ein zuverlässiger Kommunikationskanal über ein unvorhersehbares Netzwerk aufgebaut werden kann.
Datenpakete können verloren gehen, außerhalb der Reihenfolge ankommen, im Netzwerk zurückgehalten oder auf dem empfangenden Knoten überlastet werden, wenn sie von einem Knoten zum anderen gesendet werden.
Bei der Entwicklung einer Anwendung müssen wir uns jedoch normalerweise nicht mit dieser Komplexität auseinandersetzen. Stattdessen senden wir einfach einige Daten an einen Socket, und TCP stellt sicher, dass die Pakete erfolgreich an den Empfängerknoten übermittelt werden.
Flow Control ist ein entscheidendes Zusatzfeature, das TCP bietet.
Durch die Verwendung der Flusskontrolle stellt TCP im Wesentlichen sicher, dass ein Sender einem Empfänger nicht zu viele Pakete auf einmal sendet.
Wie funktioniert Transfer Control Protocol – Flow Control?
Dies tritt normalerweise auf, wenn wir Daten über ein Netzwerk übertragen müssen.
Die Senderanwendung sendet Daten an einen Socket, die Transportschicht (in diesem Fall TCP) verpackt diese Daten in einem Segment, und die Vermittlungsschicht (z. B. IP) leitet dieses Paket auf einem bestimmten Weg an den empfangenden Knoten weiter.
Die Vermittlungsschicht überträgt diese Daten an TCP auf der empfangenden Seite der Konversation, und TCP stellt sie der empfangenden Anwendung als identisches Duplikat der angegebenen Daten zur Verfügung.
TCP liefert keine Pakete außerhalb der Reihenfolge und wartet auf die erneute Übertragung, falls es eine Lücke im Bytestrom erkennt.
Das werden wir sehen, wenn wir hineinzoomen.
Sowohl der Sende- als auch der Empfangspuffer auf TCP werden verwendet, um Daten zu speichern, die gesendet bzw. empfangen werden müssen.
Daten aus dem Empfangspuffer werden dann von der Anwendung gelesen, wenn sie vorbereitet sind.
Sicherzustellen, dass wir keine zusätzlichen Pakete senden, während der Empfangspuffer des Empfängers bereits voll ist, ist das Hauptziel der Flusskontrolle, da dies den Empfänger dazu zwingen würde, zusätzliche Pakete zu verwerfen, die er nicht verarbeiten kann.
Der Empfänger gibt sein Empfangsfenster oder den verfügbaren Platz im Empfangspuffer bekannt, um die Datenmenge zu begrenzen, die TCP übertragen kann.
Das Sliding-Window-Protokoll
Das Sliding-Window-Protokoll in TCP ist eine der am weitesten verbreiteten Methoden zur Flusskontrolle. Es ist eine Byte-orientierte Prozedur mit variabler Größe.
Bei diesem Ansatz sendet der Empfänger dem Sender das Empfängerfenster, sobald Sender und Empfänger verbunden sind.
Die Größe des aktuellen Puffers des Empfängers wird als Empfängerfenster bezeichnet.
Die Datenmenge, die ohne Quittung weitergesendet werden kann, wird nun von TCP anhand des verfügbaren Empfängerfensters berechnet.
TCP stoppt jedoch die Datenübertragung, wenn die Empfängerfenstergröße 0 ist, und wartet darauf, dass sie zunimmt.
Die Größe des Empfängerfensters ist Bestandteil des TCP-Frames.
Die maximale Größe des Fensters beträgt 65,535 Byte, da es eine Fenstergröße von 16 Bit hat.
Die Abmessungen des Fensters werden vom Empfänger gewählt. Der Empfänger übermittelt mit jeder Bestätigungsnachricht die Größe des aktuell verfügbaren Empfängerfensters.
Prozess des Sliding-Window-Protokolls
Bei Verwendung der Sliding-Window-Protokolltechnik werden zwei Puffer eingerichtet, wenn Sender und Empfänger eine Verbindung herstellen.
Diese beiden Puffer sind in zwei Gruppen aufgeteilt: das Sendefenster, das dem Sender gehört, und das Empfangsfenster, das dem Empfänger gehört.
Das Empfangsfenster gibt den verbleibenden Empfangspufferraum zurück, wenn der Sender Daten an den Empfänger überträgt.
Dadurch ist der Sender auf die Datenmenge beschränkt, die in den Empfangspuffer passen kann.
Das Sendefenster im obigen Beispiel sendet Daten an das Empfangsfenster.
Nach dem Empfang der Daten sendet das Empfangsfenster eine Bestätigung, und dann überträgt das Sendefenster einen neuen Datenrahmen.
Diesmal sendet das Empfangsfenster jedoch zusätzlich zu der empfangenen Quittung zusätzlich eine Nachricht, dass der verfügbare Speicher gefüllt ist.
Das Sendefenster hält die Datenübertragung an, bis es vom Empfangsfenster die Bestätigung erhält, dass Platz freigegeben wurde, und kann dann die Datenübertragung wieder aufnehmen.
Zusammenfassung
Zusammenfassend sind die Datenverbindungsschicht und die Transportschicht für die Behandlung von Belangen der Flusssteuerung verantwortlich.
Das grundlegende Ziel des Flusssteuerungsmechanismus besteht darin, zu verhindern, dass der Empfänger mit Daten des schneller übertragenden Senders überlastet wird.
Selbst wenn die Daten vom Sender fehlerfrei übertragen werden und dank einer leistungsstarken Maschine schneller gesendet werden, ist es möglich, dass der Empfänger des langsameren Endes die schnellere Datenrate nicht bewältigen kann und daher einige Daten verliert.
Hinterlassen Sie uns einen Kommentar