Was ist TCP? Funktion und Grenzen erklärt

Autor: Veröffentlicht

Kurz erklärt: TCP ist ein Transportprotokoll, also ein Regelwerk für die Datenübertragung zwischen Anwendungen in einem Netzwerk. Es sorgt dafür, dass Daten in der richtigen Reihenfolge ankommen, erkennt fehlende Daten und überträgt verlorene Teile erneut. Es garantiert jedoch nicht, dass jede Verbindung erfolgreich abgeschlossen wird, und verschlüsselt die übertragenen Informationen nicht selbst.

Welche Rolle spielt TCP im Internet?

TCP steht für Transmission Control Protocol und arbeitet zwischen den Anwendungen und der Schicht, die Pakete durch das Netzwerk überträgt. Es wird unter anderem für E-Mail, die Fernanmeldung über SSH und viele Verbindungen zu Websites verwendet. Dank TCP muss eine Anwendung die Reihenfolge der Datenfragmente nicht selbst überwachen oder verlorene Daten erneut senden.

TCP wird häufig zusammen mit IP genannt, doch die beiden Protokolle haben unterschiedliche Aufgaben. IP übernimmt die Adressierung und Übertragung von Paketen zwischen Geräten; es gewährleistet weder deren Zustellung noch die richtige Reihenfolge. TCP ergänzt die Mechanismen, die für die zuverlässige Übertragung eines geordneten Bytestroms erforderlich sind – einer Datenfolge, die von der Anwendung gelesen wird.

Das lässt sich mit dem Versand nummerierter Teile eines Dokuments vergleichen. IP hilft dabei, die Sendungen zum Empfänger zu leiten. TCP kümmert sich dagegen um die Nummerierung, Empfangsbestätigungen und den erneuten Versand fehlender Teile. Das ist eine Vereinfachung: Tatsächlich nummeriert TCP Bytes, nicht Dokumentseiten.

Wie baut TCP eine Verbindung auf und überträgt Daten?

Bevor der reguläre Datenaustausch beginnt, baut TCP eine Verbindung auf. Das grundlegende Verfahren besteht aus drei Schritten und wird als Three-Way-Handshake bezeichnet:

  1. Der Client sendet eine SYN-Nachricht und schlägt damit den Aufbau einer Verbindung vor.
  2. Der Server antwortet mit SYN-ACK, bestätigt den Vorschlag und übermittelt seine eigenen Ausgangsparameter.
  3. Der Client sendet ACK und bestätigt damit die Antwort des Servers.

Bei diesem Abgleich legen beide Seiten unter anderem die anfänglichen Sequenznummern fest. Damit lässt sich die Position der Daten im Bytestrom verfolgen. Der Verbindungsaufbau allein bedeutet noch nicht, dass ein Benutzer angemeldet oder die Identität des Servers überprüft wurde.

Anschließend werden die Daten in Segmenten übertragen. Das sind Einheiten, die jeweils einen Teil der Daten und TCP-Steuerinformationen enthalten. Der Empfänger bestätigt die empfangenen Daten. Anhand dieser Bestätigungen oder nach Ablauf einer Wartezeit erkennt der Sender wahrscheinliche Datenverluste. Fehlende Daten sendet er erneut – das nennt man Retransmission.

Treffen Segmente in einer anderen Reihenfolge ein, ordnet TCP sie, bevor es die Daten an die Anwendung weitergibt. Es verhindert außerdem, dass doppelt eingetroffene Daten dazu führen, dass die Anwendung dieselben Bytes zweimal liest. Dauert eine Störung zu lange, kann die Verbindung abbrechen, statt alle Daten erfolgreich zu übertragen.

Was leistet TCP – und was nicht?

TCP überwacht nicht nur die Reihenfolge, sondern regelt auch das Übertragungstempo. Die Flusskontrolle schützt den Empfänger davor, mehr Daten zu erhalten, als er gerade aufnehmen kann. Die Überlastkontrolle passt das Senden an die Netzwerkbedingungen an und verringert so die Belastung überlasteter Verbindungen.

TCP enthält außerdem eine Prüfsumme, die dabei hilft, unbeabsichtigte Beschädigungen von Segmenten zu erkennen. Sie bietet jedoch keinen kryptografischen Schutz vor gezielten Veränderungen. Verschlüsselung und Authentifizierung übernehmen andere Mechanismen, beispielsweise TLS, das bei HTTPS verwendet wird.

Zwei weitere Einschränkungen sind wichtig:

Bricht beispielsweise während einer Bestellung die Verbindung ab, lässt sich allein aus dem TCP-Fehler nicht erkennen, ob die Bestellung angelegt wurde. Bevor du den Vorgang wiederholst, solltest du den Bestellstatus im Shop prüfen, statt davon auszugehen, dass die Daten nicht angekommen sind.

Wie unterscheidet sich TCP von UDP?

UDP ist ein anderes Transportprotokoll. Es überträgt unabhängige Nachrichten, sogenannte Datagramme, ohne eingebaute Empfangsbestätigung, erneute Übertragung oder Sortierung. Eine Anwendung kann solche Mechanismen ergänzen, doch UDP selbst stellt sie nicht bereit.

MerkmalTCPUDP
ÜbertragungsweiseGeordneter BytestromEinzelne Datagramme
Erneute Übertragung verlorener DatenEingebautVon der Anwendung abhängig
VerbindungsaufbauErforderlichKein solches Verfahren in UDP
Typischer Schwerpunkt beim EinsatzVollständigkeit und Reihenfolge der DatenKontrolle der Anwendung über Verzögerungen und Verluste

Beim Herunterladen einer Datei müssen fehlende Teile nachgeliefert werden. Hier sind die Mechanismen von TCP hilfreich. Bei einem Sprachgespräch kann es dagegen sinnvoller sein, eine kurze Lücke hinzunehmen, als einen verspäteten Tonabschnitt noch wiederzugeben. Deshalb nutzen Echtzeitanwendungen häufig UDP.

Das bedeutet nicht, dass UDP immer schneller ist oder jede Website TCP verwendet. HTTP/1.1 und HTTP/2 laufen üblicherweise über TCP, während HTTP/3 das auf UDP basierende QUIC nutzt. QUIC gewährleistet selbst unter anderem die zuverlässige Übertragung von Datenströmen und deren Verschlüsselung.

Was bedeutet ein TCP-Port in den Netzwerkeinstellungen?

Ein Port ist eine Nummer, die dem System hilft, den Datenverkehr an den richtigen Dienst weiterzuleiten. Die IP-Adresse bezeichnet einen Punkt im Netzwerk, während der Port die unter dieser Adresse verfügbaren Dienste unterscheidet. Ein typisches Beispiel ist TCP-Port 443, den HTTPS bei der Übertragung über TCP verwendet.

TCP und UDP haben getrennte Portbereiche. Eine Firewall-Regel, die TCP 443 zulässt, gibt nicht automatisch UDP 443 frei, das häufig von HTTP/3 genutzt wird. Ein offener Port allein beweist auch nicht, dass eine Anwendung korrekt oder sicher funktioniert.

Wenn du eine Firewall konfigurierst, prüfe in der Dokumentation des jeweiligen Dienstes, welches Protokoll, welche Portnummer und welche Verkehrsrichtung erforderlich sind. So kannst du eine präzise Regel erstellen, statt unnötig den gesamten TCP- und UDP-Datenverkehr freizugeben.

Lesen Sie auch

Wie PHP-FPM PHP-Anfragen verarbeitet, sich vom Webserver unterscheidet und wie du Prozesse an Last und Hosting-Ressourcen anpasst.
BIND ist offene DNS-Serversoftware. Erfahre, welche Aufgaben sie übernimmt und wann sich der Betrieb eines eigenen Servers lohnt.
Was Polens REGON-Register und seine Kennnummer bedeuten, wie sie sich von NIP und KRS unterscheiden und wie Sie Unternehmensdaten prüfen.