Das TCP (Transmission Control Protocol) ist ein verbindungsorientiertes Transportprotokoll der Internet-Protokollfamilie. Es stellt zwischen zwei Endpunkten einen zuverlässigen, geordneten Datenstrom her: Pakete kommen vollständig, in der ursprünglichen Reihenfolge und ohne Duplikate beim Empfänger an — oder die Übertragung wird wiederholt.
TCP ist die Grundlage vieler Anwendungsprotokolle, darunter HTTP, HTTPS, SSH, SMTP und IMAP. Überall, wo Datenintegrität wichtiger ist als minimale Latenz, kommt TCP zum Einsatz.
Verbindungsaufbau
Eine TCP-Verbindung wird über den Three-Way-Handshake etabliert:
- Der Client sendet ein Paket mit gesetztem
SYN-Flag. - Der Server antwortet mit
SYNundACK. - Der Client bestätigt mit einem
ACK.
Erst nach Abschluss dieses Austauschs werden Nutzdaten übertragen. Der Abbau erfolgt symmetrisch über FIN-Pakete.
Zuverlässigkeit und Flusskontrolle
TCP erreicht seine Zuverlässigkeit durch mehrere Mechanismen:
- Sequenznummern ordnen jedes Byte des Datenstroms eindeutig zu.
- Bestätigungen (ACKs) quittieren empfangene Daten.
- Retransmissions wiederholen verlorene Pakete automatisch.
- Flusskontrolle über das Receive Window verhindert, dass der Sender den Empfänger überlastet.
- Staukontrolle (z. B. Algorithmen wie Reno, Cubic oder BBR) reagiert auf Paketverluste im Netzwerk und drosselt die Senderate.
Abgrenzung zu UDP
Im Gegensatz zu UDP garantiert TCP Zustellung und Reihenfolge — auf Kosten von Latenz und Overhead. Anwendungen, die Echtzeit über Vollständigkeit stellen (Streaming, VoIP, DNS-Anfragen), nutzen häufig UDP statt TCP.