Drei-Wege-Handschlag

Definition - Was bedeutet Drei-Wege-Handschlag?

Ein Drei-Wege-Handshake ist eine Methode, die in einem TCP / IP-Netzwerk verwendet wird, um eine Verbindung zwischen einem lokalen Host / Client und einem Server herzustellen.

Es handelt sich um eine dreistufige Methode, mit der beide Kommunikationsenden gleichzeitig die Parameter der TCP-Socket-Netzwerkverbindung initiieren und aushandeln können, bevor Daten wie HTTP und SSH übertragen werden.

Es können mehrere TCP-Socket-Verbindungen gleichzeitig in beide Richtungen übertragen werden. Ein Drei-Wege-Handshake wird auch als TCP-Handshake oder SYN-SYN-ACK bezeichnet und erfordert, dass sowohl der Client als auch der Server SYN- (Synchronisation) und ACK- (Bestätigung) Pakete austauschen, bevor die eigentliche Datenkommunikation beginnt.

Tatsächlich stammt sein Name aus den drei von TCP übertragenen Nachrichten, bevor eine Sitzung zwischen den beiden Enden eingeleitet wird.

Technische.me erklärt den Drei-Wege-Handschlag

Ein Drei-Wege-Handshake wird hauptsächlich zum Erstellen einer TCP-Socket-Verbindung verwendet, um Daten zuverlässig zwischen Geräten zu übertragen. Beispielsweise unterstützt es die Kommunikation zwischen einem Webbrowser auf der Clientseite und einem Server jedes Mal, wenn ein Benutzer im Internet navigiert.

Sobald ein Client eine Kommunikationssitzung mit dem Server anfordert, initiiert ein Drei-Wege-Handshake-Prozess den TCP-Verkehr in drei Schritten.

Die drei Schritte eines Drei-Wege-Händedrucks

Schritt 1: Eine Verbindung zwischen Server und Client wird hergestellt

Zunächst wird eine Verbindung zwischen Server und Client hergestellt, sodass der Zielserver über offene Ports verfügen muss, die neue Verbindungen akzeptieren und initiieren können. Der Clientknoten sendet ein SYN-Datenpaket (Synchronize Sequence Number) über ein IP-Netzwerk an einen Server im selben oder in einem externen Netzwerk.

Dieses SYN-Paket ist eine zufällige Sequenznummer, die der Client für die Kommunikation verwenden möchte (z. B. X). Das Ziel dieses Pakets ist es zu fragen / zu schließen, ob der Server für neue Verbindungen geöffnet ist.

Schritt 2: Der Server empfängt das SYN-Paket vom Clientknoten

Wenn der Server das SYN-Paket vom Clientknoten empfängt, antwortet er und gibt eine Bestätigungsquittung zurück - das ACK-Paket (Acknowledgement Sequence Number) oder das SYN / ACK-Paket. Dieses Paket enthält zwei Folgenummern.

Die erste ist ACK one, die vom Server auf eins mehr als die vom Client empfangene Sequenznummer (z. B. X + 1) gesetzt wird.

Die zweite ist die vom Server gesendete SYN, bei der es sich um eine andere zufällige Sequenznummer handelt (z. B. Y).

Diese Sequenz zeigt an, dass der Server das Paket des Clients korrekt bestätigt hat und dass er sein eigenes Paket sendet, um ebenfalls bestätigt zu werden.

Schritt 3: Der Clientknoten empfängt die SYN / ACK vom Server und antwortet mit einem ACK-Paket

Der Clientknoten empfängt die SYN / ACK vom Server und antwortet mit einem ACK-Paket. Erneut muss jede Seite die empfangene Sequenznummer bestätigen, indem sie sie um eins erhöht.

Nun ist es an dem Client, das Paket des Servers zu bestätigen, indem er eins zur Sequenznummer (in diesem Fall Y + 1) hinzufügt und es erneut an den Server sendet.

Nach Abschluss dieses Vorgangs wird die Verbindung hergestellt und der Host und der Server können kommunizieren.

Alle diese Schritte sind erforderlich, um die von beiden Seiten stammenden Seriennummern zu überprüfen und die Stabilität der Verbindung zu gewährleisten.

Da beide Hosts die Verbindungsparameter der anderen Seite bestätigen müssen, kann ein fehlendes oder nicht ordnungsgemäßes Segment schnell erkannt werden, bevor der eigentliche Datenübertragungsprozess eingeleitet wird.