TCP-Grundlagen

4 min 2 Abschnitte
Was du nach diesem Konzept kannst 3
  1. Du bist in der Lage, die Funktionsweise von TCP als verbindungsorientiertes und zuverlässiges Protokoll zu erklären ,

    indem der Verbindungsaufbau mittels Drei-Wege-Handshake sowie die Sicherstellung der vollständigen Datenübertragung durch Sequenznummern und Bestätigungen (ACKs) beschrieben werden.

  2. Du bist in der Lage, die Mechanismen zur Fluss- und Überlastkontrolle zusammenzufassen ,

    indem beschrieben wird, wie TCP die Senderate dynamisch anpasst, um eine Überlastung des empfangenden Systems oder des Netzwerks zu verhindern.

  3. Du bist in der Lage, die Adressierung von Anwendungen durch TCP zu erklären ,

    indem das Konzept von Ports und deren Rolle bei der Zuordnung von Datenströmen zu den spezifischen Anwendungen (Multiplexing/Demultiplexing) auf dem Zielsystem beschrieben wird.

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:

  1. SYN (Synchronize): Der Client schickt ein Paket, um die Verbindung anzufragen und seine initiale Startnummer mitzuteilen.
  2. SYN-ACK (Synchronize-Acknowledge): Der Server bestätigt die Anfrage und sendet seinerseits eine eigene Startnummer zurück.
  3. 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.

TCP-Grundlagen — dec-it-networking-protocols-tcp-basics_page1.svg

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.

TCP-Grundlagen — dec-it-networking-protocols-tcp-basics_page2.svg

Teste dein Wissen

Du erklärst der Kundschaft, warum ihr Dateitransfer über TCP abgewickelt wird. Welcher Vergleich beschreibt die Arbeitsweise von TCP am treffendsten?

Bereit für mehr?

Thema verstanden?

Teste dein Wissen interaktiv in unserer App. 7 Tage kostenlos, dann nur 5 € im Monat.