TCP 3-Wege-Handshake (SYN, SYN-ACK, ACK)

⚡ Intelligente Zusammenfassung

Der TCP-Dreiwege-Handschlag ist das Verbindungsaufbauritual, mit dem jede TCP-Sitzung beginnt. Client und Server tauschen SYN-, SYN-ACK- und ACK-Pakete aus, um die Sequenznummern zu synchronisieren und sicherzustellen, dass beide Seiten bereit sind, bevor auch nur ein einziges Byte an Anwendungsdaten gesendet wird.

  • 📨 Kennen Sie die vier Nachrichtentypen? SYN initiiert, ACK bestätigt, SYN-ACK kombiniert beides, und FIN beendet eine TCP-Verbindung.
  • 🔁 Befolgen Sie die drei Schritte: Client SYN → Server SYN-ACK → Client ACK; die Sitzung wird erst nach Eintreffen des dritten Pakets hergestellt.
  • 🔢 Sequenznummern sind wichtig: Jede Seite wählt eine anfängliche Sequenznummer; die andere Seite bestätigt dies durch Addition von eins, wodurch der Bytestrom geordnet bleibt.
  • 🚪 Plan für den Abriss: Nach der Datenübertragung schließt TCP die Verbindung mit FIN/ACK-Paaren, um den Socket an beiden Enden freizugeben.
  • 🤖 KI für die Paketanalyse nutzen: KI-Assistenten erklären Wireshark Erfasst, kennzeichnet fehlende ACKs und hebt SYN-Floods oder halbgeöffnete Verbindungen hervor.

TCP 3-Wege-Handshake

Was ist der TCP-Drei-Wege-Handschlag?

Das TCP-Drei-Wege-Handshake ist die Prozedur, die ein Client und ein Server auf einem TCP/IP-Netzwerk Um eine zuverlässige Verbindung herzustellen, bevor Anwendungsdaten ausgetauscht werden, besteht dieser Vorgang, wie der Name schon sagt, aus drei Schritten: Beide Seiten tauschen Synchronisierungs- (SYN) und Bestätigungspakete (ACK) aus und einigen sich auf die anfänglichen Sequenznummern, die sie verwenden werden.

Der Handshake ist so konzipiert, dass beide Endpunkte TCP-Sockets symmetrisch initiieren, aushandeln und abbauen können. Nach Abschluss des Handshakes ist die Verbindung Vollduplex – beide Seiten können parallel senden und empfangen, bis eine der Seiten ein FIN-Paket sendet, um die Sitzung zu beenden.

TCP-Nachrichtentypen

Während des Handshakes und des Teardowns erscheinen wiederholt vier Kontrollflags.

Nachricht Beschreibung
SYN Stellt eine Verbindung her und synchronisiert die Sequenznummern zwischen den Geräten.
ACK Bestätigt der Gegenseite den Empfang des vorherigen Segments.
SYN-ACK Eine kombinierte Nachricht – ein SYN vom lokalen Gerät plus ein ACK des vorherigen SYN des Gegenübers.
FIN Wird verwendet, um eine Verbindung ordnungsgemäß zu beenden.

TCP-Drei-Wege-Handshake-Prozess

Der TCP-Datenverkehr beginnt stets mit einem Drei-Wege-Handschlag. Der Client initiiert die Kommunikation, indem er eine Sitzung mit dem Server anfordert.

TCP-3-Wege-Handshake-Diagramm

Diagramm eines Drei-Wege-Handschlags.

  • Schritt 1 — SYN: Der Client sendet ein Segment mit gesetztem SYN-Flag. Damit signalisiert er dem Server: „Ich möchte die Kommunikation aufnehmen“ und schlägt eine anfängliche Sequenznummer vor.
  • Schritt 2 — SYN-ACK: Der Server antwortet mit einem Segment, in dem sowohl das SYN- als auch das ACK-Flag gesetzt sind. Das ACK-Flag bestätigt das SYN-Signal des Clients, und das SYN-Flag schlägt die eigene initiale Sequenznummer des Servers vor.
  • Schritt 3 — Bestätigung: Der Client bestätigt das SYN-ACK des Servers mit einem abschließenden ACK. Die Verbindung ist nun hergestellt, und beide Seiten können beginnen. transmitAnwendungsdaten.

Beispiel aus der Praxis

TCP-Dreiwege-Handschlag – Beispiel aus der Praxis

Hier ist ein ausgearbeitetes Beispiel mit konkreten Sequenznummern.

  • Host X initiiert die Verbindung, indem er ein TCP-SYN-Paket an den Server sendet. Das Paket enthält eine zufällige Anfangssequenznummer – beispielsweise 1 4321 — das markiert den Beginn des Byte-Streams, den Host X senden wird.
  • Der Server empfängt das SYN-Paket und antwortet mit einem SYN-ACK-Paket. Die ACK-Nummer ist die um 1 erhöhte Sequenznummer von Host X (4322), und der SYN schlägt die eigene initiale Sequenznummer des Servers vor.
  • Host X antwortet mit einer abschließenden ACK, deren Bestätigungsnummer die um 1 erhöhte Sequenznummer des Servers ist.

Sobald der Datenaustausch abgeschlossen ist, beendet TCP die Verbindung mit einer vierfachen FIN/ACK-Sequenz, damit beide Endpunkte den Socket sauber freigeben können.

Warum TCP einen Drei-Wege-Handschlag benötigt

Der Handschlag ist nicht nur eine Formalität – er löst drei konkrete Probleme, die mit zuverlässigem Byte-Stream-Transport einhergehen:

  • Sequenznummernsynchronisation: Beide Kommunikationspartner lernen die anfängliche Sequenznummer der jeweils anderen Seite kennen. TCP verwendet diese, um verlorene oder nicht in der richtigen Reihenfolge befindliche Segmente zu erkennen.
  • Verbindungsstatusvereinbarung: Das dritte ACK bestätigt den Empfang des SYN-ACK vom Server, daher beginnt keine Seite mit dem Senden von Daten, bis beide Seiten im SYN-ACK-Zustand sind. ETABLIERT Zustand.
  • Schutz vor doppelten Paketen: Zufällige Anfangssequenznummern und zeitlich abgestimmte Handshake-Zustände verhindern, dass veraltete Segmente aus einer vorherigen Sitzung versehentlich akzeptiert werden.

Häufige Probleme beim TCP-Handshake

Der Handshake ist zwar robust, kann aber auf erkennbare Weise ausfallen. Netzwerktechniker beobachten üblicherweise eines der folgenden Probleme:

  • SYN-Flood-Angriffe: Ein böswilliger Client sendet Tausende von SYN-Anfragen, ohne auf SYN-ACK-Anfragen zu antworten, und erschöpft so die Verbindungstabelle des Servers. SYN-Cookies sind der Standardschutz.
  • Halboffene Verbindungen: Wenn die dritte ACK-Bestätigung verloren geht, bleibt die Verbindung halb offen und wird schließlich durch einen Timeout beendet.
  • Firewall- oder NAT-Fehler während des Fluges: Zustandsbehaftete Middleboxes, die ihren Zustand verlieren, können SYN-ACK-Pakete verwerfen und den Client zu einem erneuten Versuch zwingen.
  • RST-Resets: Wenn der Server nicht auf dem angeforderten Port lauscht, antwortet er auf eine SYN-Anfrage mit einer RST-Anfrage, wodurch der Verbindungsversuch sofort abgebrochen wird.

Häufig gestellte Fragen

Zwei Nachrichten allein beweisen nicht, dass sich beide Seiten auf die anfänglichen Sequenznummern geeinigt haben und zum Senden bereit sind. Die dritte ACK-Nachricht bestätigt den Empfang der SYN-ACK-Nachricht des Servers und stellt sicher, dass beide Endpunkte den Status „ESTABLISHED“ erreichen, bevor Daten übertragen werden.

SYN ist ein einzelnes Flag, das die Kommunikation eröffnet und eine anfängliche Sequenznummer vorschlägt. SYN-ACK kombiniert ein SYN mit einer Bestätigung des vorherigen SYN des Gegenübers und schließt so die Synchronisierung in einem einzigen Paket ab.

Ein SYN-Flood überlastet einen Server, indem er unzählige SYN-Pakete sendet, ohne den Handshake abzuschließen. Halb geöffnete Verbindungen füllen die Warteschlange und blockieren legitime Benutzer. SYN-Cookies sind die Standardmaßnahme zur Abwehr von SYN-Flood-Anfragen.

TCP schließt eine Verbindung mit einem Vier-Wege-Handschlag aus FIN- und ACK-Nachrichten. Jede Richtung wird unabhängig voneinander geschlossen, sodass eine Seite die Datenübertragung abschließen kann, selbst nachdem die andere Seite ihre Hälfte bereits geschlossen hat.

Die anfängliche Sequenznummer ist ein zufällig gewählter 32-Bit-Wert, den jeder Endpunkt für seinen eigenen Byte-Stream auswählt. Sie dient als Initialisierung des Zählers, der zur Erkennung fehlender oder doppelter Segmente und zum Schutz vor gefälschten Paketen verwendet wird.

Nein. UDP ist verbindungslos und sendet Datagramme ohne Handshake. Dadurch ist es schneller und ressourcenschonender als TCP, aber Anwendungen müssen Zuverlässigkeit, Reihenfolge und Staukontrolle selbst gewährleisten.

KI-Assistenten annotieren Paketmitschnitte, klassifizieren sie und klassifizieren sie.transmits und RSTs und erkennen SYN-Floods. Sie übersetzen Wireshark Filtert die Informationen in verständliches Englisch und empfiehlt den nächsten Diagnoseschritt bei Verbindungsproblemen.

Ja. KI-Programmierassistenten wandeln eine Anfrage in einfacher Sprache in eine Python Scapy oder ein Netcat-Skript, das den Drei-Wege-Handschlag auslöst und überprüft, und anschließend jede Zeile erklärt, damit die Ingenieure sie vor der Ausführung überprüfen können.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: