Handshake
In der realen Welt ist ein Händedruck eine übliche Begrüßung zwischen zwei Menschen. Ebenso dient ein Computer-Handshake als Begrüßung zwischen zwei Computersystemen. Er wird häufig verwendet, um eine Netzwerkverbindung zwischen zwei Hosts zu initialisieren.
Ein Computer-Handshake kann zwischen zwei beliebigen Systemen abgeschlossen werden, die über dasselbe Protokoll miteinander kommunizieren. Bei den beiden Systemen kann es sich um einen Client und einen Server oder einfach um zwei Computer in einem P2P-Netzwerk handeln. Der Handshake bestätigt die Identitäten der verbundenen Systeme und ermöglicht weitere Kommunikation.
Ein Handshake über ein Netzwerk wird häufig als 3-Wege-Handshake oder „SYN-SYN-ACK“ bezeichnet. Ein erfolgreicher Handshake umfasst sieben Schritte:
- Host A sendet ein Synchronisierungs-(SYN-)Paket an Host B.
- Host B empfängt die SYN-Anforderung von Host A.
- Host B sendet eine Synchronisierungsbestätigung (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 wird 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 vom initiierenden System verwendete Protokoll nicht unterstützt, antwortet es möglicherweise nicht auf die Anforderung.
- Verbindung abgelehnt – Das System, das den Handshake empfängt, ist verfügbar und versteht die Anforderung, lehnt die Verbindung jedoch ab.
- Verbindung akzeptiert – Das System, das den Handshake empfängt, ist verfügbar, erhält die Anforderung und akzeptiert die Verbindung.
Das oben aufgeführte dritte Ergebnis ist das einzige, bei dem der Handshake abgeschlossen wird. Wenn ein Handshake erfolgreich ist, können die beiden Systeme über das eingerichtete Protokoll miteinander kommunizieren und Daten übertragen. Beispiele für Protokolle, die Handshakes verwenden, sind TCP, TLS und SSL.
Testen Sie Ihr Wissen