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.
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.
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.