TCP – Von Anfang bis Ende
Verbindungsaufbau · Datentransfer · Verbindungsabbau · Hintergrundwissen · Übungen
Netzwerke · Klasse 10 · Gymnasium🎯 Worum geht's? Klasse 8–11 · 2 Unterrichtsstunden
Nach dieser Seite kannst du …
- eine vollständige TCP-Verbindung beschreiben: Aufbau, Datentransfer, Abbau
- Sequenz- und Bestätigungsnummern beim Datentransfer verfolgen
- den Verbindungsabbau mit vier Schritten und TIME_WAIT erklären
Vorwissen: TCP-Handshake
📊 Sequenzdiagramm
📍 Phasen
📋 Protokoll
| Paket | Flags | SEQ / ACK | Daten |
|---|
🎮 Steuerung
🤝 Verbindungsaufbau
Der Three-Way Handshake (SYN → SYN-ACK → ACK) stellt sicher, dass beide Seiten bereit sind und ihre Sequenznummern ausgetauscht haben.
📦 Datentransfer
Jedes Datenpaket wird mit einer Sequenznummer versehen. Der Empfänger bestätigt mit ACK. Fehlen Pakete, werden sie wiederholt.
👋 Verbindungsabbau
Der Four-Way Handshake (FIN → ACK → FIN → ACK) erlaubt beiden Seiten unabhängig voneinander zu signalisieren, dass sie fertig sind.
⏳ TIME_WAIT
Nach dem letzten ACK wartet der Client im Zustand TIME_WAIT, bevor er vollständig schließt – um verspätete Pakete noch verarbeiten zu können.
📝 Aufgaben
🏆 Fortschritt
Wähle links eine Aufgabe aus.
📑 Inhalt
📡 Was ist TCP?
TCP steht für Transmission Control Protocol und ist eines der wichtigsten Protokolle des Internets. Es gehört zur Transportschicht (Schicht 4) des OSI-Modells und stellt sicher, dass Daten zuverlässig, vollständig und in der richtigen Reihenfolge übertragen werden.
TCP ist ein verbindungsorientiertes Protokoll: Bevor Daten übertragen werden, wird eine logische Verbindung zwischen Sender und Empfänger aufgebaut. Diese Verbindung wird nach der Übertragung wieder geordnet abgebaut.
TCP arbeitet über IP (Internet Protocol) und bildet zusammen mit diesem das Fundament des Internets – oft als TCP/IP-Suite bezeichnet.
Zuverlässigkeit
Jedes Paket wird bestätigt. Verlorene Pakete werden wiederholt.
Reihenfolge
Sequenznummern garantieren die richtige Reihenfolge der Daten.
Flusskontrolle
Window-Size verhindert Überlastung des Empfängers.
Staukontrolle
TCP erkennt Netzüberlastung und drosselt die Senderate.
🗂️ Der TCP-Header
Jedes TCP-Paket (Segment) enthält einen Header mit mindestens 20 Bytes. Der Header enthält alle Steuerinformationen, die TCP benötigt, um die Verbindung zuverlässig zu verwalten.
🚩 TCP-Flags erklärt
TCP-Flags sind einzelne Bits im Header, die den Typ und Zweck eines Pakets bestimmen. Sie können kombiniert werden (z. B. SYN+ACK).
| Flag | Name | Bedeutung | Verwendet bei |
|---|---|---|---|
| SYN | Synchronize | Verbindungsaufbau initiieren, ISN austauschen | Handshake (Schritt 1 & 2) |
| ACK | Acknowledge | Empfang bestätigen. ACK-Nr. = SEQ + 1 | Fast alle Pakete nach dem 1. SYN |
| FIN | Finish | Sender hat keine Daten mehr → Verbindung beenden | Verbindungsabbau (4-Way) |
| RST | Reset | Verbindung sofort abbrechen (Fehler oder Ablehnung) | Fehlerbehandlung |
| PSH | Push | Daten sofort an Anwendung weitergeben, nicht puffern | Interaktive Übertragungen |
| URG | Urgent | Daten sind dringend, sollen vorrangig verarbeitet werden | Selten (z. B. Telnet-Unterbrechung) |
| ECE | ECN-Echo | Netzüberlastung rückmelden (Explicit Congestion Notification) | Staukontrolle |
| CWR | Congestion Window Reduced | Bestätigung: Senderate wurde gedrosselt | Staukontrolle |
🔄 TCP-Zustände (State Machine)
Eine TCP-Verbindung durchläuft verschiedene Zustände. Jede Seite (Client und Server) verwaltet ihren eigenen Zustand unabhängig.
🤝 Der Handshake im Detail
Der Three-Way Handshake dient drei Zwecken gleichzeitig: Verbindung ankündigen, Sequenznummern synchronisieren und Empfangsbereitschaft bestätigen.
Zufällige Initial Sequence Numbers verhindern, dass alte Pakete aus früheren Verbindungen fälschlicherweise akzeptiert werden – eine wichtige Sicherheitsmaßnahme.
Der Four-Way Handshake beim Abbau ist nötig, weil TCP halbduplex-fähig ist: Jede Seite muss ihren Sendeschluss unabhängig ankündigen. Nach dem FIN des Clients kann der Server noch Daten senden.
Moderne Variante: TCP Fast Open (TFO) erlaubt das Mitsenden von Daten bereits im SYN-Paket, um die Latenz um eine Round-Trip-Time zu reduzieren.
⚖️ TCP vs. UDP
Neben TCP gibt es UDP (User Datagram Protocol) als zweites wichtiges Transportprotokoll. Beide haben ihre Berechtigung – je nach Anwendungsfall.
| Merkmal | TCP | UDP |
|---|---|---|
| Verbindungstyp | Verbindungsorientiert | Verbindungslos |
| Zuverlässigkeit | ✔ Garantiert | ✗ Keine Garantie |
| Reihenfolge | ✔ Garantiert | ✗ Nicht garantiert |
| Fehlerkorrektur | ✔ Retransmission | ✗ Keine |
| Flusskontrolle | ✔ Ja (Window) | ✗ Nein |
| Overhead | Hoch (≥ 20 Byte Header) | Niedrig (8 Byte Header) |
| Geschwindigkeit | Langsamer | ✔ Schneller |
| Handshake | Ja (3-Way) | Nein |
| Typische Nutzung | HTTP, E-Mail, FTP, SSH | Video-Streaming, DNS, VoIP, Gaming |
📜 Geschichte des TCP
🌍 TCP in der Praxis
TCP ist das Rückgrat des Internets. Fast alle Anwendungen, bei denen Datenverlust inakzeptabel ist, nutzen TCP:
HTTP / HTTPS
Webseiten werden über TCP geladen. Port 80 (HTTP) und 443 (HTTPS).
SMTP (Port 25/587), IMAP (143), POP3 (110) – alle über TCP.
SSH
Sichere Remote-Verbindungen über Port 22. Jedes Byte muss ankommen.
FTP
Dateiübertragung über Port 21 (Steuerung) und 20 (Daten).
Datenbanken
MySQL (3306), PostgreSQL (5432) – Datenintegrität ist kritisch.
Chat / API
REST-APIs, WebSockets – zuverlässige bidirektionale Kommunikation.