Was ist Drei-Wege-Handschlag (Three-Way Handshake)?

Ablauf, mit dem eine TCP-Verbindung aufgebaut wird. Drei Nachrichten – SYN des Clients, SYN+ACK des Servers und ACK des Clients – bestätigen die initialen Sequenznummern beider Seiten.

Japanische Bezeichnung: 3ウェイハンドシェイク

„Drei-Wege-Handschlag (Three-Way Handshake)“ kommt in 2 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Computernetzwerke.

Fachgebiet: Grundlagen der Computernetzwerke

Bedeutung der drei Nachrichten

Der Client fordert mit SYN eine Verbindung an und teilt seine initiale Sequenznummer mit. Der Server antwortet mit SYN+ACK, bestätigt damit diese Nummer und teilt zugleich seine eigene initiale Sequenznummer mit. Bestätigt der Client dies mit ACK, ist in beiden Richtungen gesichert, dass „die Gegenseite meine Nummer kennt“, und Daten können fließen. Die Bestätigung der Nummern verhindert Fehlverbindungen durch alte, noch im Netzwerk befindliche Pakete.

Dauer des Verbindungsaufbaus

Bevor Daten gesendet werden können, vergeht mindestens eine Umlaufzeit (RTT). HTTPS benötigt danach zusätzlich einen TLS-Handshake, sodass eine Anfrage erst nach insgesamt zwei Umläufen mit TLS 1.3 bzw. drei mit TLS 1.2 gesendet werden kann. Je weiter entfernt der Server, desto größer die RTT; daher wird die Zahl der Umläufe verringert, indem Verbindungen wiederverwendet werden (persistente Verbindungen) oder Handshakes zusammengefasst werden, wie es QUIC bei HTTP/3 tut.

Verbindungsabbau und SYN-Flood

Der Abbau einer Verbindung braucht in der Regel vier Nachrichten, weil jede Richtung getrennt mit FIN und ACK geschlossen wird. Ein Angriff, der massenhaft SYNs mit gefälschten Quelladressen sendet, sodass der Server halboffene Verbindungen anhäuft, bis seine Ressourcen erschöpft sind, heißt SYN-Flood. Zu den Gegenmaßnahmen gehören SYN-Cookies, mit denen der Server antworten kann, ohne Zustand zu speichern.

Jetzt üben: Fragen zu Drei-Wege-Handschlag (Three-Way Handshake)

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

Warum sind drei Nachrichten nötig und nicht zwei?

Für beide Richtungen muss bestätigt werden, dass die Gegenseite die initiale Sequenznummer erhalten hat. Mit nur zwei Nachrichten könnte der Server nicht bestätigen, dass seine Nummer beim Client angekommen ist.

Hat auch UDP einen Drei-Wege-Handschlag?

Nein. UDP baut keine Verbindungen auf und kann daher sofort Daten senden. QUIC, das auf UDP läuft, führt einen eigenen Handshake durch, der mit dem kryptografischen Schlüsselaustausch kombiniert ist.

„Drei-Wege-Handschlag (Three-Way Handshake)“ in den Erläuterungen

Fragen mit „Drei-Wege-Handschlag (Three-Way Handshake)“ (2)

  1. In welcher Reihenfolge werden beim Drei-Wege-Handschlag, der eine TCP-Verbindung aufbaut, die Pakete ausgetauscht?
  2. 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.

Verwandte Begriffe

TLS (Transport Layer Security) DNS (Domain Name System) HTTP (Hypertext Transfer Protocol) ARP (Address Resolution Protocol) CIDR (Classless Inter-Domain Routing) CSMA/CA DHCP (Dynamic Host Configuration Protocol) MAC-Adresse NAT (Network Address Translation) OSI-Referenzmodell

Zur Glossarübersicht