Warum ist TCP das Fundament für zuverlässige Netzwerke?
Verbindungsorientierte Übertragung: Sicherheit vor Schnelligkeit
Du weißt bereits, dass Daten in paketvermittelten Netzwerken über IP-Adressen ihr Ziel finden. Das Transmission Control Protocol (TCP) setzt auf der Transportschicht an und garantiert eine verbindungsorientierte und zuverlässige Datenübertragung. Es stellt sicher, dass jedes einzelne Paket fehlerfrei und in der exakt richtigen Reihenfolge ankommt.
Im Gegensatz zu verbindungslosen Protokollen (wie UDP), die Datenpakete ohne Empfangsgarantie einfach "abschicken", arbeitet TCP wie ein Kurierdienst mit Einschreiben und Rückschein. Typische Anwendungsfälle für TCP sind Dienste, bei denen kein einziges Bit verloren gehen darf, wie der Aufruf von Webseiten (HTTPS), Dateiübertragungen (FTP) oder der E-Mail-Versand (SMTP).
Der Verbindungsaufbau: Der Three-Way-Handshake
Bevor TCP Nutzdaten überträgt, etabliert es eine feste, logische Verbindung zwischen dem sendenden und dem empfangenden System. Dieser Three-Way-Handshake (Drei-Wege-Handschlag) besteht aus drei Schritten, die auch in der beiliegenden Grafik visualisiert sind:
- SYN (Synchronize): Der Client schickt ein Paket, um die Verbindung anzufragen und seine initiale Startnummer mitzuteilen.
- SYN-ACK (Synchronize-Acknowledge): Der Server bestätigt die Anfrage und sendet seinerseits eine eigene Startnummer zurück.
- ACK (Acknowledge): Der Client bestätigt den Erhalt der Antwort.
Erst nach diesem erfolgreichen "Handschlag" steht die Verbindung und die eigentliche Datenübertragung beginnt.
Der Verbindungsabbau: Das geordnete Ende
Genauso geordnet, wie die Verbindung aufgebaut wird, wird sie auch wieder beendet. Sobald alle Daten übertragen sind, leitet ein System den Abbau mit einem FIN-Paket (Finish) ein. Beide Seiten teilen sich gegenseitig mit, dass sie keine weiteren Daten mehr senden werden, und bestätigen dies. So werden die reservierten Netzwerkressourcen auf beiden Seiten sauber wieder freigegeben.
Wie steuert TCP den Datenfluss und adressiert Anwendungen?
Anwendungen adressieren: Ports und Multiplexing
Durch dein Vorwissen zur Kapselung weißt du, dass TCP-Daten in Segmente unterteilt und mit einem TCP-Header versehen werden. Während die IP-Adresse das Datenpaket zum richtigen Ziel-Computer navigiert, stellen Ports im TCP-Header sicher, dass die Daten auf diesem Computer der exakt richtigen Anwendung zugeordnet werden.
Das Zusammenführen von Datenströmen verschiedener Anwendungen (z. B. Browser, E-Mail-Programm) in einen einzigen Netzwerkstrom auf der Senderseite nennt man Multiplexing. Auf der Empfängerseite werden diese Daten anhand der Portnummern wieder auf die jeweiligen Anwendungen aufgeteilt – das ist das Demultiplexing. Ein Webserver lauscht beispielsweise standardmäßig auf Port 443, um eingehende HTTPS-Verbindungen korrekt an die Webserver-Software weiterzuleiten.
Fehlerkorrektur: Sequenznummern und Bestätigungen
Da Datenpakete im Netzwerk unterschiedliche Wege nehmen oder verloren gehen können, nutzt TCP zwei wichtige Felder im Header zur Fehlerkorrektur:
- Sequence Number (Sequenznummer): Jedes Segment erhält eine fortlaufende Nummer. So kann das empfangende System die Segmente wieder in die exakt richtige Reihenfolge bringen, selbst wenn sie durcheinander ankommen.
- Acknowledgment Number (Bestätigungsnummer): Das empfangende System nutzt diese Nummer, um den Erhalt von Segmenten zu bestätigen (Acknowledgments oder ACKs). Es teilt dem sendenden System damit mit, welche Sequenznummer als Nächstes erwartet wird.
Bleibt ein Acknowledgment für ein Segment innerhalb einer bestimmten Zeit aus, geht das sendende System von einem Verlust aus und sendet das Segment automatisch erneut (Retransmission).
Fluss- und Überlastkontrolle: Die Window Size
Um zu verhindern, dass ein schnelles sendendes System ein langsames empfangendes System mit Daten überlastet, nutzt TCP Mechanismen zur Fluss- und Überlastkontrolle. Ein zentrales Element ist die Window Size (Fenstergröße) im TCP-Header.
Dieses Feld teilt dem sendenden System dynamisch mit, wie viel freier Pufferplatz (Speicher) beim Empfänger aktuell noch verfügbar ist. Ist der Puffer voll, reduziert sich die Window Size auf null. Das sendende System pausiert dann die Übertragung und passt seine Senderate dynamisch an, bis das empfangende System die bisherigen Daten verarbeitet hat. Dies schützt nicht nur das Endgerät, sondern verhindert auch eine Überlastung des gesamten Netzwerks.
Teste dein Wissen
Du erklärst der Kundschaft, warum ihr Dateitransfer über TCP abgewickelt wird. Welcher Vergleich beschreibt die Arbeitsweise von TCP am treffendsten?