Skip to content

Erklären Sie den TCP-Drei-Wege-Handshake.

Kurzantwort

TCP öffnet eine Verbindung in drei Schritten. Der Client sendet ein SYN mit einer initialen Sequenznummer, der Server antwortet mit SYN-ACK (bestätigt die Nummer des Clients und sendet seine eigene), und der Client gibt ein ACK zurück. Nach diesem Austausch haben sich beide Seiten auf die Start-Sequenznummern geeinigt, und die Verbindung ist für eine zuverlässige, geordnete Byte-Zustellung aufgebaut.

Den Drei-Wege-Handshake gibt es, weil TCP etwas verspricht, was UDP nicht tut: eine zuverlässige, geordnete Zustellung eines Byte-Stroms. Um dieses Versprechen zu halten, müssen sich beide Enden darauf einigen, wo der Strom beginnt, bevor irgendwelche Anwendungsdaten fließen. Diese Einigung ist der Handshake.

Die drei Schritte

  1. SYN. Der Client wählt eine zufällige initiale Sequenznummer (ISN) und sendet ein Segment mit gesetztem SYN-Flag, das diese ISN ankündigt. Das ist der Client, der sagt „ich will reden, und meine Bytes werden ab hier nummeriert".
  2. SYN-ACK. Der Server antwortet mit seinem eigenen SYN (seiner eigenen ISN) und einem ACK, das die ISN des Clients + 1 bestätigt. In einem Segment nimmt der Server die Verbindung an und kündigt seine eigene Nummerierung an.
  3. ACK. Der Client bestätigt die ISN des Servers + 1. Nun kennen beide Seiten die Start-Sequenznummer der jeweils anderen, und die Verbindung geht in den Zustand ESTABLISHED über.

Warum Sequenznummern wichtig sind

Sequenznummern erlauben es TCP, Verluste zu erkennen, vertauschte Segmente neu zu ordnen und Duplikate zu verwerfen. Die ISN zufällig zu wählen, macht es zudem für einen Angreifer außerhalb des Pfads deutlich schwerer, Segmente in den Strom zu fälschen oder einzuschleusen, da er die Nummern erraten müsste.

Der Sicherheitsaspekt

Der Handshake ist auch eine Angriffsfläche. Ein SYN-Flood sendet viele SYNs und vollendet nie den dritten Schritt, wodurch die Tabelle halboffener Verbindungen des Servers erschöpft wird. SYN-Cookies verteidigen dagegen, indem sie den Verbindungszustand in die ISN des Servers kodieren, sodass kein Speicher reserviert wird, bis das finale ACK eintrifft.

Interviewer wollen die Namen der drei Pakete in der richtigen Reihenfolge hören, dass Sequenznummern synchronisiert werden (nicht Daten gesendet) und idealerweise einen Hinweis auf SYN-Floods.

Wahrscheinliche Anschlussfragen

  • Was ist ein SYN-Flood und wie verteidigt ein SYN-Cookie dagegen?
  • Wie baut TCP eine Verbindung ab, und welche Rolle spielt TIME_WAIT?
  • Warum macht TCP die initiale Sequenznummer zufällig?

Quellen

Zertifizierungen

Erhalte 100 Cybersecurity-Interviewfragen + Antworten

Gib deine E-Mail-Adresse ein und wir senden dir das kostenlose PDF-Paket und das Flashcard-Deck.

Kein Spam. Jederzeit abbestellbar.