Was ist das Transmission Control Protocol (TCP)? 

08.09.2023
guide-image

Zusammengefasst: Das Transmission Control Protocol (TCP, auf Deutsch auch bekannt als Übertragungssteuerungsprotokoll) ist ein Kommunikationsstandard, den Softwareanwendungen für den Datenaustausch verwenden. Es legt die Parameter für den Austausch fest, bestätigt, was gesendet wird, woher es kommt, wohin es geht und ob es korrekt angekommen ist, oder nicht.

Im Gegensatz zum User Datagram Protocol (UDP) – einem anderen Standard, den Anwendungen für den Datenaustausch verwenden – ist TCP auf Genauigkeit und nicht auf Geschwindigkeit ausgelegt. Beim Datentransport kann es vorkommen, dass Datenpakete in der falschen Reihenfolge ankommen oder verloren gehen. TCP nummeriert jedes Paket, um sicherzustellen, dass jedes Teil sein Ziel erreicht und bei Bedarf neu angeordnet werden kann. Wenn Pakete nicht innerhalb eines bestimmten Zeitrahmens ankommen, fordert das Transmission Control Protocol eine erneute Übertragung der verlorenen Daten an.

Während des gesamten Austauschs hält TCP die Verbindung zwischen den beiden Anwendungen aufrecht und stellt sicher, dass beide Parteien alles senden und empfangen, was übertragen werden muss, und bestätigt anschließend die Richtigkeit. 

Das Transmission Control Protocol ist der gängigste Standard für den Datenaustausch über das Internet-Protokoll (IP) und wird oft als TCP/IP bezeichnet. Da TCP den Datenaustausch über das Internet erleichtert, ist es Teil der so genannten "Transportschicht" eines Netzwerks.

Hier erfahren Sie, wie es funktioniert und wozu es dient. 

Wie das Transmission Control Protocol funktioniert

TCP dient als Vermittler zwischen zwei Anwendungen, die Daten austauschen müssen. Wenn eine Anwendung Daten übertragen will, sorgt TCP dafür, dass:

  • die Daten in der richtigen Reihenfolge ankommen 
  • die Daten nur minimale Fehler aufweisen 
  • doppelte Daten verworfen werden 

 

Es ist so etwas wie ein Kurier für das Internet. Sobald TCP die Verbindung hergestellt und die Interaktion definiert hat, verpackt es die Daten, lädt sie auf separate Lastwagen und schickt sie über die IP-Autobahn an ihr Ziel.

Unterwegs können Staus (Netzüberlastung), Umleitungen (Lastausgleich) und Autounfälle (Netzfehler) dazu führen, dass Daten nicht in der richtigen Reihenfolge ankommen oder nicht rechtzeitig ankommen.

Wenn die Datenpakete ankommen, quittiert der Empfänger sie im Wesentlichen mit einer Bestätigung: "Ich habe Paket 4 erhalten." Wenn der Absender diese Bestätigung nicht innerhalb einer bestimmten Zeit erhält, sendet er die Übertragung erneut. Wenn alles angekommen ist, beendet TCP die Verbindung.

Der gesamte Vorgang läuft in drei verschiedenen Phasen ab.  

Die drei Phasen des TCP-Vorgangs

TCP-Vorgänge umfassen zahlreiche Schritte, bei denen die beiden Endpunkte Anfragen stellen, sich gegenseitig identifizieren und bestätigen, dass der Austausch wie vorgesehen erfolgt. Diese Schritte lassen sich in drei Hauptphasen einteilen: 

  1. Verbindungsaufbau
  2. Datenübertragung 
  3. Beendigung der Verbindung 

Die Namen der Phasen sind selbsterklärend, aber in jeder Phase des Prozesses passiert noch viel mehr.

Während der Verbindungsaufbauphase ermöglicht TCP ein "Drei-Wege-Handshake", bei dem die Anwendungen die Synchronisierung und gegenseitige Identifizierung anfordern. In dieser Phase legt TCP die Parameter für den Austausch fest und bestätigt, dass beide Einheiten (z. B. ein Server und ein Client) an dem Austausch teilnehmen können.  

In der Datenübertragungsphase nimmt TCP die zu übertragenden Daten an, teilt sie in geordnete Pakete auf, fügt einen TCP-Header hinzu, um den Kontext zu verdeutlichen, und leitet sie über das Internet-Protokoll an den Empfänger weiter.

In der Phase des Verbindungsabbaus müssen beide Anwendungen bestätigen, dass die Übertragung vollendet und fehlerfrei ist, erst dann beendet TCP die Verbindung zwischen ihnen.

TCP-Segmente

Wenn das Transmission Control Protocol einen Datenstrom empfängt, ihn aufteilt und der Übertragung einen TCP-Header hinzufügt, wird der Datenstrom zu einem "TCP-Segment". Der TCP-Header sorgt dafür, dass die einzelnen Datenpakete, wenn sie am Zielort ankommen, leicht in die richtige Reihenfolge gebracht werden können und der Empfänger eindeutig erkennen kann, ob etwas fehlt.

In der Phase des Verbindungsaufbaus können Anwendungen ihre maximale Segmentgröße (Maximum Segment Size, MSS) bekannt geben, die das größte TCP-Segment definiert, das sie austauschen werden. Dies stellt die größte Datenmenge dar, die in einem einzigen Segment übertragen wird. Ist die MSS zu groß, werden die einzelnen Pakete durch die IP-Fragmentierung in kleinere Teile zerlegt, wodurch das Risiko steigt, dass einige Pakete verloren gehen und die Anwendungen die Daten mehrfach erneut übertragen müssen (was die Latenzzeit erhöht).

Überlastungskontrolle

Während der Datenübertragung sorgt TCP dafür, dass die Pakete in einem Tempo gesendet werden, das die Netzwerkressourcen bewältigen können. Anfänglich lässt TCP nur wenige Bytes durch das Netz gehen. Dies wird als "Congestion Window" (CWND) bezeichnet. Wenn der Empfänger den erfolgreichen Empfang der Daten bestätigt, vergrößert TCP das Congestion Window exponentiell und lässt mehr Daten passieren.

Nachdem das CWND einen bestimmten Schwellenwert erreicht hat, wird der Anstieg linear. Wenn ein Paket verloren geht, reduziert TCP das Congestion Window erheblich und überträgt wieder langsam. Im Laufe der Zeit bildet der TCP-Datendurchsatz ein Sägezahnmuster, bei dem die Übertragungsrate ansteigt und wieder abfällt, um die Überlastung des Netzes zu kontrollieren.

Fehlererkennung

Im Gegensatz zu UDP prüft TCP die Übertragungen auf Fehler. Anhand von Sequenznummern und einer Prüfsumme wird ermittelt, ob die Übertragungen korrekt ankommen. Wenn ein Bit ungenau ist, ist auch die Prüfsumme falsch. In diesem Fall verwirft TCP das fehlerhafte Segment.

Wofür wird TCP verwendet?

Das Transmission Control Protocol ist ein grundlegender Bestandteil der täglichen Internetnutzung. Bei der Internetnutzung und dem Besuch einer Webseite verwendet der Webserver das HyperText Transfer Protocol (HTTP), um die Datei für die Webseite an das Endgerät zu senden, und HTTP stützt sich auf TCP, um den Server mit dem Computer des Nutzers zu verbinden und sicherzustellen, dass die Datei korrekt über IP übertragen wird. Auch andere High-Level-Protokolle stützen sich auf TCP, darunter das Simple Mail Transfer Protocol (SMTP) zum Senden und Empfangen von E-Mails, das File Transfer Protocol (FTP) für den Peer-to-Peer-Dateiaustausch und MQTT (eine Schlüsselkomponente des IoT, die geordnete, fehlerfreie Paketströme erfordert).

Wenn die Genauigkeit wichtiger als die Übertragungsgeschwindigkeit ist, verlassen sich Netzwerke normalerweise auf TCP, um Verbindungen aufrechtzuerhalten und zuverlässige Datenübertragungen durchzuführen. Da TCP jedoch Drei-Wege-Handshakes verwendet, um Verbindungen herzustellen, Datenströme in kleine Pakete aufteilt und erneute Übertragungen anfordert, um die Genauigkeit zu gewährleisten, erhöht sich die Zeit, die für die Datenübertragung von einer Anwendung zur anderen benötigt wird.

Diese erhöhte Latenzzeit beeinträchtigt die Internetnutzung wie Voice Over Internet Protocol (VoIP), Videostreaming und Videospiele. In diesen Fällen werden High-Level-Protokolle auf das User Datagram Protocol zurückgreifen, das zwar schneller, aber weniger genau ist.

TCP-Schwachstellen  

Das Transmission Control Protocol verwendet Internetprotokolladressen, um Verbindungen zwischen Clients und Servern herzustellen. Daher weist es einige inhärente Schwachstellen auf, die eine Herausforderung für die Cybersicherheit darstellen.

Denial-of-Service-Angriffe

TCP verbraucht Netzwerkressourcen, um Verbindungen aufrechtzuerhalten. Bösartige Software kann IP-Spoofing und ungültige Datenpakete verwenden, um Anfragen zu spammen, die TCP zu verfolgen versucht. Wenn das Volumen der Anfragen steigt, kann TCP zu viele Ressourcen eines Servers verbrauchen und ihn zum Absturz bringen.

Hacker nutzen oft Botnets (eine massive Armee von IoT-Geräten), um DoS-Angriffe (Denial of Service) zu starten. Deshalb müssen IoT-Hersteller proaktiv gegen IoT-Sicherheitsbedrohungen vorgehen.

Hijacking von Verbindungen

Wenn eine Verbindung zwischen Anwendungen nicht sicher ist, kann ein Hacker die Datenübertragung abhören. Da in den TCP-Headings die Größe der einzelnen Datenpakete und TCP-Segmente angegeben ist, kann ein Hacker gefälschte Segmente und Pakete derselben Größe erstellen und den Empfänger dazu bringen, sie zu akzeptieren. Sie "kapern" die TCP-Verbindung, um ihre eigenen, oft bösartigen Daten zu senden. In Verbindung mit anderen Protokollen und Hacking-Strategien kann TCP-Hijacking sogar dazu führen, dass jemand die vollständige Kontrolle über die Verbindung erhält. 

Sichere IoT-Konnektivität mit emnify

emnify ist eine Kommunikationsplattform speziell für das IoT. Ihre Geräte können sich nicht nur über unser globales Mobilfunknetz verbinden, sondern die Plattform gewährleistet auch die Sicherheit Ihres Geräts. Mit fortschrittlichen IoT-Sicherheitsfunktionen wie privaten Netzwerken, Netzwerk-Firewalls mit IP-Whitelisting und benutzerdefinierten DNS verhindern wir gängige TCP-Angriffe und machen böswillige Kommunikation mit Ihrem Gerät unmöglich.

Wenn Sie mehr über Protokolle und IoT wissen möchten, lesen Sie unseren umfassenden Leitfaden zu IoT-Protokollen oder sprechen Sie mit einem unserer IoT-Experten. 

Lassen Sie uns über Ihre IoT-Lösung sprechen

Erfahren Sie, wie emnify Ihnen helfen kann, Ihr Geschäft auszubauen, indem wir es Ihnen ermöglichen, Ihre IoT Geräte nahtlos zu verbinden und zu verwalten.