Was ist TCP (Transmission Control Protocol)?

Verbindungsorientiertes Protokoll der Transportschicht. Es baut eine Verbindung mit einem Drei-Wege-Handschlag auf und liefert Daten mithilfe von Sequenznummern, Bestätigungen (ACKs) und Sendewiederholung lückenlos, ohne Duplikate und in der gesendeten Reihenfolge aus. Flusskontrolle und Überlastkontrolle passen die Sendemenge an. Es trägt Webzugriffe über HTTP/1.1 und HTTP/2, E-Mail, SSH und vieles mehr.

Japanische Bezeichnung: TCP

„TCP (Transmission Control Protocol)“ kommt in 21 Übungsfragen aus 3 Themen vor, z. B. Grundlagen der Computernetzwerke, Netzwerkdesign und Netzwerkbetrieb, Grundlagen der Webtechnologien.

Fachgebiet: Grundlagen der Computernetzwerke

Wie TCP die Zustellung sicherstellt

TCP versieht jedes gesendete Byte mit einer fortlaufenden Nummer, der Sequenznummer. Der Empfänger sendet eine Bestätigung (ACK) zurück, die sinngemäß besagt: Schicke als Nächstes die Daten ab dieser Nummer. Kommt innerhalb einer festgelegten Zeit kein ACK an, sendet der Sender die Daten erneut (Retransmission Timeout). Erhält er drei ACKs mit derselben Nummer (doppelte ACKs), wiederholt er die Daten, ohne auf den Timeout zu warten (Fast Retransmit). Der Empfänger bringt ungeordnet eingetroffene Daten wieder in die richtige Reihenfolge, verwirft Duplikate und erkennt beschädigte Daten mit einer Prüfsumme. Für die Anwendung sehen die Daten wie ein durchgehender Bytestrom ohne Nachrichtengrenzen aus.

Fenster bestimmen die Sendemenge

Der Sender darf bis zu einem Fenster an Daten senden, bevor er auf ACKs warten muss. Die Anpassung an den freien Pufferplatz, den der Empfänger meldet (das Empfangsfenster), ist die Flusskontrolle; das Vergrößern und Verkleinern des Überlastfensters (Congestion Window) des Senders entsprechend der Auslastung des Netzwerks ist die Überlastkontrolle. Tatsächlich gesendet wird bis zum kleineren der beiden Werte. Da pro Umlaufzeit (RTT) nur ein Fenster an Daten gesendet werden kann, beträgt der Durchsatz etwa Fenster ÷ RTT. Bei einem Fenster von 64 KB und einer RTT von 100 ms liegt die Obergrenze zum Beispiel bei etwa 5 Mbit/s; schnelle Fernverbindungen sind daher auf die Option Window Scaling angewiesen, die größere Fenster erlaubt.

Header und Verbindungsverwaltung

Ein TCP-Header ist ohne Optionen 20 Byte lang. Er enthält die Portnummer von Quelle und Ziel, die Sequenznummer, die Bestätigungsnummer, Flags wie SYN, ACK, FIN und RST, die Fenstergröße und eine Prüfsumme. Eine Verbindung wird durch vier Werte identifiziert: Quell- und Ziel-IP-Adresse sowie Quell- und Zielport. Sie beginnt mit einem Drei-Wege-Handschlag und wird geschlossen, indem jede Richtung ein FIN sendet. Geht ein Segment verloren, können spätere Daten nicht an die Anwendung übergeben werden, auch wenn sie bereits angekommen sind (Head-of-Line-Blocking); das ist ein Grund, weshalb HTTP/3 stattdessen QUIC über UDP verwendet.

Jetzt üben: Fragen zu TCP (Transmission Control Protocol)

Zu welcher Schicht des vierschichtigen TCP/IP-Modells gehören TCP und UDP?

  1. AAnwendungsschicht
  2. BInternetschicht
  3. CTransportschicht
Antwort und Erläuterung anzeigen

Antwort: C. Transportschicht

Das TCP/IP-Modell wird von unten nach oben mit vier Schichten beschrieben: Netzzugangsschicht (Link Layer), Internetschicht, Transportschicht und Anwendungsschicht. TCP und UDP sind Protokolle der Transportschicht; mit Portnummern unterscheiden sie, für welche Anwendung auf einem Endgerät die Daten bestimmt sind. IP in der Internetschicht ist dafür zuständig, Pakete von Endgerät zu Endgerät zu befördern. HTTP und DNS sind Protokolle der Anwendungsschicht. Im OSI-Referenzmodell entspricht die Transportschicht der Schicht 4 und die Internetschicht der Schicht 3.

In welcher Reihenfolge werden beim Drei-Wege-Handschlag, der eine TCP-Verbindung aufbaut, die Pakete ausgetauscht?

  1. ASYN → ACK → FIN
  2. BACK → SYN → SYN+ACK
  3. CSYN → SYN+ACK → ACK
Antwort und Erläuterung anzeigen

Antwort: C. SYN → SYN+ACK → ACK

Beim Drei-Wege-Handschlag fordert zuerst der Client mit SYN eine Verbindung an und teilt die erste Nummer der Daten mit, die er senden wird (seine initiale Sequenznummer). Der Server antwortet mit SYN+ACK, bestätigt (ACK) damit den Empfang und teilt zugleich seine eigene initiale Sequenznummer mit. Zuletzt sendet der Client ein ACK, und beide Richtungen sind bereit. Indem die Nummern beider Richtungen in drei Schritten bestätigt werden, werden Fehlverbindungen verhindert, etwa durch alte, verspätet eintreffende Pakete. Deshalb braucht TCP mindestens eine Umlaufzeit (RTT), bevor Daten fließen können. FIN dient zum Abbau einer Verbindung.

Häufige Fragen

Was ist der Unterschied zwischen TCP und UDP?

TCP baut eine Verbindung auf und liefert Daten zuverlässig mit Bestätigungen, Sendewiederholung und Reihenfolgesicherung. UDP kennt keinen Verbindungsaufbau und keine Sendewiederholung und verschickt einfach Datagramme, daher ist der Header kleiner und die Verzögerung geringer. TCP wird eingesetzt, wo Vollständigkeit zählt, etwa im Web und bei Dateiübertragungen; UDP dort, wo geringe Verzögerung wichtiger ist als ein gelegentlicher Verlust, etwa bei Sprachanrufen, und für kurze Abfragen wie bei DNS.

Wann wiederholt TCP eine Übertragung?

Es gibt zwei Auslöser: Bis zum Ablauf des aus gemessenen RTTs berechneten Retransmission Timeout kommt kein ACK an, oder es treffen drei doppelte ACKs mit derselben Bestätigungsnummer hintereinander ein, was einen Fast Retransmit auslöst. Scheitern weitere Wiederholungen, wird der Timeout jedes Mal verdoppelt.

Warum ist der TCP-Durchsatz geringer als die Leitungsgeschwindigkeit?

Pro Umlaufzeit kann höchstens ein Fenster an Daten gesendet werden, daher sinkt der Durchsatz, je weiter die Gegenstelle entfernt oder je kleiner das Fenster ist. Er sinkt auch, wenn die Überlastkontrolle nach Paketverlusten das Fenster verkleinert oder die empfangende Anwendung die Daten langsam liest.

„TCP (Transmission Control Protocol)“ in den Erläuterungen

Fragen mit „TCP (Transmission Control Protocol)“ (21)

  1. Zu welcher Schicht des vierschichtigen TCP/IP-Modells gehören TCP und UDP?
  2. In welcher Reihenfolge werden beim Drei-Wege-Handschlag, der eine TCP-Verbindung aufbaut, die Pakete ausgetauscht?
  3. Ein Client baut zu einem Webserver mit einer Umlaufzeit (RTT) von 100 ms eine neue HTTPS-Verbindung auf (TLS 1.3 über TCP). Wie lange dauert es ungefähr, bis die Antwort auf die erste Anfrage einzutreffen beginnt? Die DNS-Namensauflösung ist bereits erledigt; Verarbeitungszeit des Servers und Übertragungszeit der Daten werden vernachlässigt.
  4. Welchen Zweck hat es bei der TCP-Flusskontrolle, dass der Empfänger dem Sender seine Fenstergröße (Empfangsfenster) mitteilt?
  5. Eine TCP-Verbindung hat ein festes Empfangsfenster von 65536 Byte und eine RTT von 10 ms. Die Bandbreite der Leitung ist ausreichend groß, und es gibt keine Verluste. Welcher Wert liegt der Obergrenze des Durchsatzes dieser Verbindung am nächsten?
  6. Welche Beschreibung des Grundgedankens der TCP-Überlastkontrolle ist richtig?
  7. Was veranlasst einen TCP-Sender, ein Segment als verloren anzusehen und erneut zu senden?
  8. Über 1-Gbit/s-Ethernet werden fortlaufend TCP-Daten gesendet, wobei die IP-Pakete die MTU von 1500 Byte voll ausschöpfen. Der IPv4-Header hat 20 Byte, der TCP-Header 20 Byte, Ethernet-Header und FCS zusammen 18 Byte, Präambel und Lücke zwischen den Frames (Interframe Gap) zusammen 20 Byte. Welcher Wert liegt der Obergrenze des Durchsatzes an Anwendungsdaten am nächsten?
  9. Vier 1-Gbit/s-Verbindungen zwischen zwei Switches werden per Link Aggregation zu einer logischen Verbindung gebündelt. Die Frames werden nach dem üblichen Verfahren verteilt, das die Verbindung für jede Kombination aus Quell- und Zieladressen und Portnummern (für jeden Flow) festlegt. Welcher Wert liegt dem maximalen Durchsatz einer einzelnen TCP-Verbindung am nächsten?
  10. Auf einem Router mit NAPT (externe Adresse 198.51.100.7) ist eine Portweiterleitung eingerichtet, eine statische Einstellung, die nur das Ziel übersetzt: „Verkehr, der am externen TCP-Port 8080 eintrifft, an Port 80 des internen Webservers 192.168.1.20 weiterleiten.“ Das Endgerät 203.0.113.9 im Internet verbindet sich mit Quellport 51000 zu 198.51.100.7, Port 8080. Welche Kombination aus Ziel und Quelle haben die Pakete, die der Webserver empfängt?
  11. Auf einer Router-Schnittstelle ist eine ACL eingerichtet, die eingehende Pakete von oben nach unten prüft. Regel 1 lautet „Verkehr zu TCP-Port 443 auf 10.0.0.10 erlauben“, Regel 2 „Allen Verkehr mit der Quelle 192.168.1.0/24 verweigern“ und Regel 3 „Verkehr mit der Quelle 192.168.0.0/16 zu TCP-Port 80 erlauben“; weitere Regeln gibt es nicht. Welche Auswahl nennt von den vier Paketen A „von 192.168.1.5 zu TCP-Port 443 auf 10.0.0.10“, B „von 192.168.1.5 zu TCP-Port 80 auf 10.0.0.20“, C „von 192.168.2.5 zu TCP-Port 80 auf 10.0.0.20“ und D „von 192.168.2.5 zu TCP-Port 22 auf 10.0.0.20“ alle, die durchgelassen werden?
  12. Ein Endgerät kommuniziert über einen Site-to-Site-VPN-Tunnel mit einem entfernten Webserver. TCP-Verbindungen lassen sich aufbauen und kleine Seiten werden angezeigt, doch Downloads großer Dateien bleiben mittendrin stehen. Die MTU im Tunnel beträgt 1400 Byte, und der Server sendet 1500-Byte-Pakete mit verbotener Fragmentierung (DF-Bit auf 1). Außerdem ist die Firewall vor dem Server so eingestellt, dass sie jegliches ICMP verwirft. Was ist die wahrscheinlichste Ursache?
  13. Von einem Webserver mit einer Umlaufzeit (RTT) von 40 ms werden eine HTML-Datei und die vier darin referenzierten Bilder nacheinander einzeln abgerufen. Der Aufbau einer TCP-Verbindung dauert einen Umlauf, jede Anfrage mit Antwort ebenfalls einen Umlauf; Übertragungszeit der Daten, Verarbeitungszeit des Servers, TLS und Verbindungsabbau werden nicht berücksichtigt. Wie groß ist der Zeitunterschied zwischen einer neuen TCP-Verbindung für jedes Objekt und der Wiederverwendung einer einzigen TCP-Verbindung (persistente Verbindung)?
  14. 1,5 MB Textdaten werden mit gzip auf ein Drittel der Größe komprimiert und gesendet. Die Bandbreite beträgt 10 Mbit/s und die RTT 100 ms; bevor das Senden der Daten beginnt, brauchen TCP-Verbindungsaufbau, TLS-Handshake und HTTP-Anfrage zusammen drei Umläufe. Es gilt 1 MB = 10^6 Byte; die Zeit für Komprimierung und Dekomprimierung, Header sowie Wartezeiten durch die Überlastkontrolle von TCP werden vernachlässigt. Welcher Wert liegt der Zeit bis zum vollständigen Empfang der Daten am nächsten?
  15. Welche Schicht des OSI-Referenzmodells verwendet logische Adressen wie IP-Adressen, um Pakete zwischen verschiedenen Netzwerken bis zum Ziel weiterzuleiten?

Vergleiche mit diesem Begriff

Verwandte Begriffe

Paket (Datenpaket) HTTP (Hypertext Transfer Protocol) RTT (Round-Trip-Time) Router IP (Internet Protocol) UDP (User Datagram Protocol) DNS (Domain Name System) Portnummer TLS (Transport Layer Security) QUIC

Zur Glossarübersicht