Lektion 3 von 4 · 7 Min.
Der TCP-Handshake und das Leben einer Verbindung
Wie sich zwei Computer darauf einigen, miteinander zu sprechen, bevor einer von ihnen echte Daten sendet, wie sie das Gespräch beenden, und was eine dazwischen beobachtende Firewall tatsächlich sieht.
Bevor dein Mac auch nur ein einziges Byte einer Webseitenanfrage sendet, hat er bereits drei kurze Nachrichten mit dem Server ausgetauscht. Dieser Austausch, der dreiteilige TCP-Handshake, verwandelt die Zuverlässigkeitsversprechen von TCP aus der vorherigen Lektion in eine tatsächliche, nachvollziehbare Verbindung zwischen zwei Maschinen.
Drei Nachrichten vor dem ersten Wort
RFC 9293, die aktuelle TCP-Spezifikation, beschreibt den Vorgang als einen synchronisierten Austausch: „Die Synchronisation erfordert, dass jede Seite ihre eigene anfängliche Sequenznummer sendet und eine Bestätigung dafür in einer Quittung vom entfernten TCP-Partner erhält.“
- SYN. Das Gerät, das die Verbindung öffnet, sendet ein Segment mit gesetztem SYN-Flag, das eine Start-Sequenznummer trägt.
- SYN-ACK. Die Gegenseite antwortet mit ihrem eigenen SYN sowie einer Bestätigung der ersten Nummer.
- ACK. Das erste Gerät bestätigt diese Antwort. RFC 9293 merkt an, dass „weil die Schritte 2 und 3 in einer einzigen Nachricht kombiniert werden können, dies der dreiteilige (oder Drei-Nachrichten-) Handshake genannt wird.“ Sobald er abgeschlossen ist, zählen beide Seiten die Verbindung als ESTABLISHED und beginnen mit dem Austausch echter Daten.
Das Learning Center von Cloudflare gibt eine allgemeinverständliche Version derselben Idee, mit einer E-Mail als Beispiel: „Zunächst sendet die Quelle ein SYN-„Erstanfrage“-Paket an den Zielserver, um den Dialog zu beginnen. Dann sendet der Zielserver ein SYN-ACK-Paket, um dem Vorgang zuzustimmen. Zuletzt sendet die Quelle ein ACK-Paket an das Ziel, um den Vorgang zu bestätigen, wonach der Nachrichteninhalt gesendet werden kann.“
Eine Verbindung sauber beenden
Das Schließen erfolgt bedachter als das Öffnen. RFC 9293 erklärt, dass „die normale TCP-Schließfolge zuverlässig gepufferte Daten in beide Richtungen zustellt“, bevor die Verbindung endet: Jede Seite sendet ein FIN-Segment, sobald sie keine weiteren Daten zu senden hat, die andere Seite bestätigt es, und erst wenn beide Richtungen fertig sind, schließt die Verbindung vollständig. Es folgt eine kurze Wartezeit (TIME-WAIT), damit ein verirrtes, verspätetes Paket der alten Verbindung nicht mit einer neuen verwechselt werden kann.
Was eine Firewall in der Mitte sieht
Eine zustandsbehaftete (stateful) Firewall, wie sie in den meisten Routern und in macOS selbst eingebaut ist, muss nicht jedes Paket prüfen, um eine Entscheidung zu treffen. Cloudflares Erklärung zu Firewalls beschreibt es so: Sie „speichert Informationen über offene Verbindungen und nutzt diese Informationen, um ein- und ausgehenden Datenverkehr zu analysieren, statt jedes Paket einzeln zu prüfen.“ In der Praxis bedeutet das: Sie achtet auf das SYN, das eine Verbindung eröffnet, merkt sich, dass diese App eine Antwort erwartet, und lässt dann das passende SYN-ACK stillschweigend wieder herein; eine Antwort, die zu keinem ausgehenden SYN passt, wird verworfen. So kann eine Firewall auch eine normale Antwort von einem unaufgeforderten Verbindungsversuch aus dem Nichts unterscheiden – die Grundlage dafür, unerwünschten eingehenden Datenverkehr zu blockieren.
Nichts an diesem Austausch wird von TCP selbst verschlüsselt; SYN, SYN-ACK und ACK sind für alles, was den Netzwerkpfad beobachtet, einschließlich deines WLAN-Routers, in Klartext sichtbar. Was verborgen ist oder nicht, hängt von der Schicht über TCP ab, etwa TLS bei einer HTTPS-Seite, was der Kurs „Wie das Internet funktioniert“ separat behandelt.
Das Wichtigste
- TCP-Verbindungen beginnen mit einem dreiteiligen Handshake: SYN, dann SYN-ACK, dann ACK, gemäß RFC 9293.
- Erst nachdem der Handshake abgeschlossen ist, beginnen beide Seiten mit dem Austausch echter Daten.
- Das Schließen einer Verbindung ist ein zweiseitiger Austausch von FIN-Segmenten, damit gepufferte Daten zugestellt werden, bevor die Verbindung endet.
- Eine zustandsbehaftete Firewall verfolgt, welche SYNs ausgegangen sind, um die passenden Antworten zu erkennen und zuzulassen und unaufgeforderte zu verwerfen.
- Der Handshake selbst ist nicht verschlüsselt; er ist für alles auf dem Netzwerkpfad sichtbar.
Testen Sie sich
1. Was ist die richtige Reihenfolge des dreiteiligen TCP-Handshakes?
- ACK, SYN, SYN-ACK
- SYN, SYN-ACK, ACK — Richtig.
- SYN-ACK, SYN, ACK
- FIN, SYN, ACK
RFC 9293 beschreibt, dass die verbindungsöffnende Seite zuerst SYN sendet, die Gegenseite mit SYN-ACK antwortet und die verbindungsöffnende Seite mit ACK bestätigt.
2. Wann beginnen echte Anwendungsdaten über eine TCP-Verbindung zu fließen?
- Bevor das SYN gesendet wird
- Erst nachdem der dreiteilige Handshake abgeschlossen ist — Richtig.
- Während des SYN-ACK-Schritts
- Daten fließen ständig, ohne Handshake
Der Handshake existiert, um Sequenznummern zu synchronisieren, bevor eine der Seiten der Verbindung genug vertraut, um echte Daten zu senden.
3. Wie entscheidet eine zustandsbehaftete Firewall, ein eingehendes Antwortpaket zuzulassen?
- Sie lässt standardmäßig alle eingehenden Pakete zu
- Sie prüft, ob das Paket zu einer Verbindung passt, die dieses Gerät geöffnet hat, gemerkt aus dem früheren ausgehenden SYN — Richtig.
- Sie prüft den Inhalt des Pakets auf Schlüsselwörter
- Sie betrachtet nur den Zielport, nie den Verbindungszustand
Cloudflare beschreibt eine zustandsbehaftete Firewall als eine, die „Informationen über offene Verbindungen speichert“, um legitime Antworten zu erkennen, statt jedes Paket von Grund auf zu prüfen.
4. Ist der TCP-Handshake selbst verschlüsselt?
- Ja, immer
- Nein, er ist klartextlich und für alles auf dem Netzwerkpfad sichtbar — Richtig.
- Nur das SYN ist verschlüsselt
- Nur bei HTTPS-Verbindungen
TCP bietet Reihenfolge und Zuverlässigkeit, keine Vertraulichkeit. Verschlüsselung, wenn vorhanden, kommt aus einer Schicht über TCP wie TLS.
Mit FireAI ausprobieren
Wenden Sie diese Lektion auf Ihrem eigenen Mac an.
- Herausfinden, wohin eine App Daten sendet, auf der Weltkarte — Sehen Sie genau, mit welchem Unternehmen und Land eine App im Stillen spricht.
- Regeln: App, Website, Domain, IP oder ein Bereich, für immer oder bis zum Neustart — Schreiben Sie eine Regel, so präzise wie eine Adresse oder so weit gefasst wie eine ganze Domain.
- Tiefenprüfung, ohne irgendetwas zu entschlüsseln — Erhalten Sie echte Details zu einer sicheren Verbindung, ohne dass FireAI je liest, was darin steht.
Quellen
- RFC 9293: Transmission Control Protocol (TCP)
- Cloudflare Learning: What is TCP/IP?
- Cloudflare Learning: What is a Firewall?
Setzen Sie es auf Ihrem Mac um
Teste alle Funktionen 17 Tage kostenlos, ohne Karte.