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:

  1. SYN (Synchronize Sequence Numbers)
  2. SYN-ACK (Synchronize Sequence Numbers and Acknowledge)
  3. 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 1 gesetzt, 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 1 gesetzt, um seine eigene Verbindungsanfrage zu signalisieren.
  • ACK-Flag: Auf 1 gesetzt, 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 1 gesetzt.

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

Networking-Overview Tcp-Syn-Flood