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: