Der 3-Wege-TCP-Handshake: Detaillierte Darstellung und Erklärung
Übersicht
Der 3-Wege-TCP-Handshake ist ein fundamentaler Mechanismus des Transmission Control Protocol (TCP), der zur Etablierung einer zuverlässigen Verbindung zwischen zwei Endpunkten in einem Netzwerk dient. Er gewährleistet die Synchronisation von Sequenznummern und die Aushandlung von Verbindungsparametern zwischen Client und Server.
Ablauf des 3-Wege-Handshakes
Der Handshake besteht aus drei Schritten zwischen dem Client und dem Server:
- SYN (Synchronize Sequence Numbers)
- SYN-ACK (Synchronize Sequence Numbers and Acknowledge)
- ACK (Acknowledge)
Schritt 1: SYN (Client → Server)
Der Client initiiert die Verbindung, indem er ein TCP-Paket mit gesetztem SYN-Flag an den Server sendet. Dieses Paket enthält:
- Sequenznummer (SEQ): Eine zufällig generierte Initialisierungssequenznummer (ISN), zum Beispiel
x. - SYN-Flag: Auf
1gesetzt, um eine Verbindungsanfrage zu signalisieren.
Darstellung:
Client → Server: SEQ = x, SYN = 1
Schritt 2: SYN-ACK (Server → Client)
Der Server empfängt das SYN-Paket und antwortet mit einem SYN-ACK-Paket. Dieses Paket enthält:
- Sequenznummer (SEQ): Eine eigene ISN, zum Beispiel
y. - Bestätigungsnummer (ACK): Die ISN des Clients plus eins (
x + 1), um das SYN des Clients zu bestätigen. - SYN-Flag: Auf
1gesetzt, um seine eigene Verbindungsanfrage zu signalisieren. - ACK-Flag: Auf
1gesetzt, um die Bestätigung anzuzeigen.
Darstellung:
Server → Client: SEQ = y, ACK = x + 1, SYN = 1, ACK = 1
Schritt 3: ACK (Client → Server)
Der Client bestätigt den Empfang des SYN-ACK-Pakets mit einem ACK-Paket. Dieses Paket enthält:
- Sequenznummer (SEQ): Die ursprüngliche ISN des Clients plus eins (
x + 1). - Bestätigungsnummer (ACK): Die ISN des Servers plus eins (
y + 1), um das SYN des Servers zu bestätigen. - ACK-Flag: Auf
1gesetzt.
Darstellung:
Client → Server: SEQ = x + 1, ACK = y + 1, ACK = 1
Nach diesem Austausch ist die TCP-Verbindung etabliert, und der bidirektionale Datentransfer kann beginnen.
Technische Details
Sequenz- und Bestätigungsnummern
Die Synchronisation der Sequenznummern ermöglicht es beiden Endpunkten, die Reihenfolge der gesendeten Pakete zu verfolgen und verloren gegangene Pakete zu erkennen. Die Verwendung von zufällig generierten ISNs erhöht die Sicherheit gegen bestimmte Arten von Angriffen.
Flags im TCP-Header
Die Flags SYN und ACK im TCP-Header steuern den Verbindungsaufbau:
- SYN (Synchronize): Wird verwendet, um die Synchronisation der Sequenznummern zu initiieren.
- ACK (Acknowledgment): Signalisiert die Bestätigung des Empfangs von Paketen.
Sicherheitsaspekte
Der 3-Wege-Handshake ist anfällig für Angriffe wie SYN-Flooding, bei dem ein Angreifer eine große Anzahl von SYN-Paketen sendet, ohne die Verbindung abzuschließen. Dies kann die Ressourcen des Servers erschöpfen. Gegenmaßnahmen umfassen:
- SYN-Cookies: Eine Technik, bei der der Server keine Ressourcen reserviert, bis die Verbindung bestätigt wird.
- Firewall-Regeln: Begrenzung der Anzahl gleichzeitig offener Verbindungsanfragen von einer Quelle.
Tags:
TCP3WegeHandshakeNetzwerkprotokolleVerbindungsetablierungSYNACKSequenznummernSicherheitSYNFlooding