Handshake

Handshake

In der realen Welt ist ein Händedruck eine übliche Begrüßung zwischen zwei Menschen. In ähnlicher Weise dient ein Computer-Handshake als Begrüßung zwischen zwei Computersystemen. Er wird üblicherweise verwendet, um eine Netzwerkverbindung zwischen zwei Hosts zu initialisieren.

Ein Computer-Handshake kann zwischen zwei beliebigen Systemen durchgeführt werden, die über das gleiche Protokoll miteinander kommunizieren. Die beiden Systeme können ein Client und ein Server oder einfach zwei Computer in einem P2P-Netzwerk sein. Der Handshake bestätigt die Identitäten der verbindenden Systeme und ermöglicht die weitere Kommunikation.

Der Handshake über ein Netzwerk wird üblicherweise als "3-Way Handshake" oder "SYN-SYN-ACK" bezeichnet. Ein erfolgreicher Handshake umfasst sieben Schritte:

  • Host A sendet ein Synchronisierungspaket (SYN) an Host B.
  • Host B empfängt die SYN-Anforderung von Host A.
  • Host B sendet eine Synchronisierungsbestätigungsnachricht (SYN-ACK) an Host A.
  • Host A empfängt die SYN-ACK-Nachricht von Host B.
  • Host A sendet eine Bestätigungsnachricht (ACK) an Host B.
  • Host B empfängt die ACK-Nachricht von Host A.
  • Die Verbindung zwischen den beiden Systemen ist hergestellt.

Wenn ein System einen Handshake initiiert, gibt es drei mögliche Ergebnisse:

  • Keine Antwort - Wenn das System, das den Handshake empfängt, nicht verfügbar ist oder das Protokoll, das das initiierende System verwendet, nicht unterstützt, antwortet es möglicherweise nicht auf die Anfrage.
  • Verbindung verweigert - Das System, das den Handshake empfängt, ist verfügbar und versteht die Anforderung, verweigert aber die Verbindung.
  • Verbindung angenommen - Das System, das den Handshake empfängt, ist verfügbar, empfängt die Anforderung und nimmt die Verbindung an.

Der dritte oben aufgeführte Ausgang ist der einzige, bei dem der Handshake abgeschlossen wird. Wenn ein Handshake erfolgreich ist, können die beiden Systeme mit der Kommunikation und der Übertragung (Daten) über das etablierte Protokoll beginnen. Beispiele für Protokolle, die Handshake verwenden, sind TCP, TLS und SSL.

Stand: 16.06.2021