Definition

TCP (Transmission Control Protocol)

Das Transmission Control Protocol (TCP) ist ein Standard, der definiert, wie eine Netzwerkkonversation aufgebaut und aufrechterhalten wird, über die Anwendungen Daten austauschen können.

TCP arbeitet mit dem Internet-Protokoll (IP) zusammen, das festlegt, wie Computer Datenpakete aneinander senden. Zusammen bilden TCP und IP die Grundregeln, die das Internet definieren. Die Internet Engineering Task Force (IETF) definiert TCP in dem Standarddokument Request for Comment (RFC) mit der Nummer 793.

Wie das Transmission Control Protocol funktioniert

TCP ist ein verbindungsorientiertes Protokoll, das heißt, eine Verbindung wird aufgebaut und aufrechterhalten, bis die Anwendungen auf beiden Seiten den Nachrichtenaustausch beendet haben.

TCP führt die folgenden Aktionen durch:

  • Es legt fest, wie die Anwendungsdaten in Pakete zerlegt werden, die das Netzwerk übertragen kann.
  • TCP sendet Pakete an die Netzwerkschicht und nimmt Pakete von ihr entgegen.
  • TCP verwaltet die Flusskontrolle.
  • Es behandelt die erneute Übertragung von verworfenen oder verstümmelten Paketen, da es eine fehlerfreie Datenübertragung gewährleisten soll.
  • TCP quittiert alle ankommenden Pakete.

Im OSI-Kommunikationsmodell (Open Systems Interconnection) deckt TCP Teile von Layer 4 (Transportschicht) und Teile von Layer 5 (Sitzungsschicht) ab.

Wenn ein Webserver eine HTML-Datei an einen Client sendet, verwendet er dazu das Hypertext Transfer Protocol (HTTP). Die HTTP-Programmschicht fordert die TCP-Schicht auf, die Verbindung aufzubauen und die Datei zu senden. Der TCP-Stack teilt die Datei in Datenpakete auf, nummeriert sie und leitet sie dann einzeln an die IP-Schicht zur Zustellung weiter.

Gegenüberstellung von OSI-Model und TCP/IP-Stack.
Abbildung 1: Gegenüberstellung von OSI-Model und TCP/IP-Stack.

Obwohl jedes Paket in der Übertragung die gleiche Quell- und Ziel-IP-Adresse hat, können die Pakete über mehrere Routen gesendet werden. Die TCP-Programmschicht auf dem Client-Computer wartet, bis alle Pakete eingetroffen sind. Dann bestätigt sie die empfangenen Pakete und bittet um die erneute Übertragung der Pakete, die sie nicht erhalten hat, da die Paketnummern fehlen. Die TCP-Schicht setzt dann die Pakete zu einer Datei zusammen und übergibt die Datei an die empfangende Anwendung.

TCP vs. UDP

Dieser Prozess der Fehlererkennung, bei dem TCP Pakete nach ihrem Eintreffen erneut überträgt und neu anordnet, kann zu Latenzen in einem TCP-Stream führen. Zeitkritische Anwendungen wie Voice over IP (VoIP), Videostreaming und Spiele sind in der Regel auf ein Transportverfahren wie das User Datagram Protocol (UDP) angewiesen, da es Latenz und Jitter reduziert, indem es Pakete nicht neu anordnet oder fehlende Daten erneut überträgt.

UDP wird als Datagramm-Protokoll oder verbindungsloses Protokoll eingestuft, da es keine Möglichkeit hat, zu erkennen, ob beide Anwendungen ihre Hin- und Her-Kommunikation beendet haben. Anstatt ungültige Datenpakete zu korrigieren, wie dies bei TCP der Fall ist, verwirft UDP diese Pakete und überlässt der Anwendungsschicht eine genauere Fehlererkennung.

Der Header eines UDP-Datagramms enthält weit weniger Informationen als ein TCP-Segmentheader. Der UDP-Header wird auch auf der Transportschicht viel weniger verarbeitet, um die Latenzzeit zu verringern.

Wofür wird TCP verwendet?

TCP wird verwendet, um Daten so zu organisieren, dass die sichere Übertragung zwischen Server und Client gewährleistet ist. Es garantiert die Integrität der über das Netz gesendeten Daten, unabhängig von ihrer Menge. Deshalb wird es zur Übertragung von Daten aus anderen übergeordneten Protokollen eingesetzt, bei denen alle übermittelten Daten ankommen müssen.

Beispiele für solche Protokolle sind:

  • Secure Shell (SSH), File Transfer Protocol (FTP), Telnet: Für den Peer-to-Peer-Dateiaustausch und, im Falle von Telnet, für das Einloggen in den Computer eines anderen Benutzers, um auf eine Datei zuzugreifen.
  • Simple Mail Transfer Protocol (SMTP), Post Office Protocol (POP), Internet Message Access Protocol (IMAP): Für das Senden und Empfangen von E-Mails.
  • HTTP: Für den Web-Zugang.

Diese Beispiele befinden sich alle auf der Anwendungsschicht des TCP/IP-Stacks und senden Daten an TCP auf der Transportschicht.

Warum TCP wichtig ist

TCP ist wichtig, weil es die Regeln und Standardverfahren für die Art und Weise der Informationsübermittlung im Internet festlegt. Es bildet die Grundlage für das Internet in seiner heutigen Form und sorgt dafür, dass die Datenübertragung einheitlich erfolgt, unabhängig von Standort, Hardware oder Software.

TCP ist flexibel und hochgradig skalierbar, das heißt, es können neue Protokolle eingeführt werden, und es wird sie aufnehmen. Außerdem ist TCP nicht proprietär, es ist also nicht im Besitz einer Person oder eines Unternehmens.

Position im TCP/IP-Stack

Der TCP/IP-Stack ist ein Modell, das darstellt, wie Daten über Netzwerke mit dem TCP/IP-Protokoll organisiert und ausgetauscht werden. Es zeigt eine Reihe von Schichten, die die Art und Weise darstellen, wie Daten auf ihrem Weg vom Client zum Server und umgekehrt von einer Reihe von Protokollen behandelt und verpackt werden.

TCP existiert in der Transportschicht zusammen mit anderen Protokollen wie UDP. Die Protokolle dieser Schicht gewährleisten die fehlerfreie Übertragung der Daten zur Quelle, mit Ausnahme von UDP, da es nur über eine begrenzte Fähigkeit zur Fehlerprüfung verfügt.

Wie das OSI-Modell ist auch der TCP/IP-Stack ein konzeptionelles Modell für Datenaustauschstandards. Die Daten werden auf jeder Schicht auf der Grundlage ihrer Funktionalität und der Transportprotokolle neu verpackt.

Die Anfragen gelangen über den Stack zum Server, wobei sie auf der Anwendungsschicht als Daten beginnen. Von dort aus werden die Informationen auf jeder Schicht in Pakete verschiedener Typen aufgeteilt. Die Daten bewegen sich auf den folgenden Wegen:

  • von der Anwendung zur Transportschicht, wo sie in TCP-Segmente sortiert werden;
  • zur Internet-Schicht, wo sie zu einem Datagramm werden;
  • zur Netzwerkschnittstellenschicht, wo sie wieder in Bits und Frames zerlegt werden; und
  • wenn der Server antwortet, wandern sie durch den Stapel, um als Daten in der Anwendungsschicht anzukommen.

TCP/IP vs. OSI-Modell

Der Hauptunterschied zwischen dem TCP/IP-Modell und dem OSI-Modell ist der Grad der Spezifität.

Das OSI-Modell ist eine abstraktere Darstellung der Art und Weise, wie Daten ausgetauscht werden, und nicht spezifisch für ein bestimmtes Protokoll. Es ist ein Framework für allgemeine Netzwerksysteme. Der TCP/IP-Stack ist spezifischer und umfasst die vorherrschenden Protokolle, die zum Datenaustausch verwendet werden.

Das OSI-Modell ist abstrakt und basiert eher auf Funktionalität, während der TCP/IP-Stack konkret und protokollbasiert ist. Außerdem hat das OSI-Modell sieben Schichten, während das TCP/IP-Modell nur vier hat.

Diese Definition wurde zuletzt im Oktober 2021 aktualisiert

Erfahren Sie mehr über LAN-Design und Netzwerkbetrieb

ComputerWeekly.de
Close