Zusammenfassung
- Eine TCP-Verbindung ist halboffen, wenn eine Seite ihren Zustand verloren oder verworfen hat, ohne dass die andere davon weiß.
- Sendet die überlebende Seite Daten, antwortet die zustandslose Seite mit RST und bricht den alten Zustand ab.
- Nach einem Neustart kann ein neues SYN auf den alten Verbindungszustand der Gegenseite treffen; ein unpassendes ACK führt zu RST.
- RST stellt weder Daten noch die alte Verbindung wieder her, sondern löscht veralteten Zustand für einen neuen Handshake.
Eine Verbindung, zwei Erinnerungen
Jeder TCP-Endpunkt bewahrt Sequenznummern, Bestätigungen, Fenster und eine Position in der Zustandsmaschine. Die Verbindung bleibt nur so lange gemeinsam bestehen, wie die Zustände beider Endpunkte zusammenpassen.
RFC 793 und RFC 9293 bezeichnen eine Verbindung als halboffen, wenn eine Seite sie ohne Wissen der anderen geschlossen oder abgebrochen hat oder wenn ein Ausfall beziehungsweise Neustart Speicher verloren und die Endpunkte desynchronisiert hat. Das ist kein normales Halb-Schließen: FIN beendet absichtlich eine Richtung und lässt die andere offen; ein halboffener Zustand ist ein unbeabsichtigter Bruch gemeinsamer Erinnerung.
Wenn die überlebende Seite zuerst sendet
Angenommen, B hält die Verbindung für ESTABLISHED und sendet Daten. A ist neu gestartet, befindet sich in CLOSED und besitzt keinen passenden Verbindungszustand. A behandelt das Segment als zu keiner Verbindung gehörig und sendet RST. B akzeptiert den Reset und verwirft seine veraltete Verbindung.
Der Reset sagt B nicht, welche Daten vor dem Ausfall verarbeitet wurden oder ob ein Anwendungsvorgang abgeschlossen war. Er zeigt nur, dass A an dem von B gehaltenen Verbindungszustand nicht mehr teilnehmen kann.
Wenn die vergessene Seite neu beginnt
A kann nach dem Neustart ein neues SYN senden. B hält noch die alte Verbindung und erkennt das SYN als außerhalb des zugehörigen Empfangsfensters. Es antwortet mit einem ACK für die erwartete Sequenznummer. A ist nicht synchronisiert, erkennt, dass dieses ACK nichts aus seinem neuen Versuch bestätigt, und sendet RST. B löscht den alten Zustand; A kann mit einem gewöhnlichen Drei-Wege-Handshake fortfahren.
TCP vereinigt widersprüchliche Zustände nicht. Es beendet den Zustand, der nicht mehr gemeinsam getragen werden kann.
Die Grenze des Transports
RST macht den Transportkonflikt sichtbar, stellt aber keine verlorenen Bytes, Authentifizierung, Sitzung oder Transaktion wieder her. Dafür sind höhere Protokolle und Anwendungen zuständig. Die Beispiele sind außerdem weder ein FIN-Halbabschluss, noch eine verpflichtende Keepalive-Regel oder die Challenge-ACK-Härtung aus RFC 5961.
Quellen
Mitgliederbriefing
Detaillierter Profilkontext
Melden Sie sich mit der richtigen Mitgliedschaftsstufe an, um das vollständige Briefing und die Quellennotizen freizuschalten.
Nur für Strategic Circle
Strategic Circle
Offen für alle Leser. Schalten Sie Profil-Briefings nach Beitritt und Anmeldung frei.
Strategic Circle beitretenNur für Leadership Alliance
Leadership Alliance
Für qualifizierte Inhaber von IP-Assets und Management; melden Sie sich an, um Leadership-Alliance-Briefings freizuschalten.
Leadership Alliance beitreten
