TCP im TCP/IP-Protokollstapel
Anwendung FTP SMTP HTTP ...
Transport TCP
Netzwerk IP
Netzzugang Ethernet Token
Ring
FDDI ...
Das Transmission Control Protocol (TCP) ist ein zuverlässiges, verbindungsorientiertes Transportprotokoll in Computernetzwerken. Es ist Teil der TCP/IP-Protokollfamilie.

TCP stellt einen virtuellen Kanal zwischen zwei Rechnern (genauer: Endpunkten zwischen 2 Anwendungen auf diesen Rechnern) her. Auf diesem Kanal können in beide Richtungen Daten übertragen werden. TCP setzt in den meisten Fällen auf das IP-Protokoll auf. Es ist in Schicht 4 des OSI-Netzwerkschichtenmodells angesiedelt.

Verbindungsauf- und abbau

Ein Endpunkt stellt ein Tupel bestehend aus IP-Adresse und Port dar. Ports sind 16-bit Zahlen und reichen von 1 bis 65535. Ports unterhalb von 1024 sind reserviert (englisch: well known ports) und werden von der IANA vergeben, z. B. ist Port 25 für das SMTP Protokoll für elektronische Post reserviert.

Jede TCP-Verbindung wird eindeutig durch zwei Endpunkte definiert. So ist es möglich, dass ein Webserver auf Port 80 mehr als eine Verbindung zu einem anderen Rechner geöffnet haben kann.

Ein Server-Rechner, der einen Dienst wie beispielsweise elektronische Post anbietet, generiert einen Endpunkt mit dem Port und seiner Adresse (er kann auch beliebige Adressen zulassen). Dies wird als passive open bezeichnet.

Will ein Client eine Verbindung aufbauen, generiert er einen eigenen Endpunkt aus seiner Rechneradresse und einer noch freien Portnummer. Mit Hilfe eines ihm bekannten Ports und der Adresse des Servers kann dann eine Verbindung aufgebaut werden. Für den Aufbau der Verbindung sind drei Pakete erforderlich (3-Wege-Handshake).

Während der Datenübertragungsphase (active open) sind die Rollen von Client und Server (aus TCP-Sicht) vollkommen symmetrisch. Insbesondere kann jeder der beiden beteiligten Rechner einen Verbindungsabbau einleiten. Während des Abbaus kann die Gegenseite noch Daten übertragen, die Verbindung kann also halb-offen sein. Ein 4-Wege-Handshake wird benutzt, um die Verbindung abzubauen.