RST
Kurz: Ein TCP-Flag, das eine Verbindung sofort und unwiderruflich abbricht — im Gegensatz zum geordneten Abbau per FIN ohne Rücksicht auf noch offene Daten.
Genauer: Ein RST wird typischerweise gesendet, wenn ein Paket bei einer Verbindung ankommt, die auf Empfängerseite gar nicht (mehr) existiert — z. B. weil auf dem angesprochenen Port kein Dienst lauscht, oder weil die Verbindung durch eine Firewall oder einen Absturz bereits weggefallen ist. Anders als bei einem geordneten FIN-Abbau werden dabei noch ungesendete oder unbestätigte Daten stillschweigend verworfen.
Im Detail
Typische Situationen, in denen ein RST auftritt:
- Geschlossener Port: Ein Client versucht, eine TCP-Verbindung zu einem Port aufzubauen, auf dem kein Dienst lauscht — der Zielrechner antwortet sofort mit RST statt mit
SYN-ACK. Genau dieses Verhalten nutzen Portscanner wie Nmap, um geschlossene von gefilterten Ports zu unterscheiden: ein RST bedeutet “Port geschlossen, aber erreichbar”, während ein ausbleibendes Paket eher auf eine Firewall hindeutet, die den Verkehr komplett verwirft. - Verbindungsabbruch nach Fehler: Ein Server-Prozess stürzt ab oder wird beendet, während noch aktive Verbindungen bestehen — das Betriebssystem sendet dann RST an alle betroffenen Clients, statt die Verbindungen “hängen” zu lassen.
- Firewalls/Reset-Injection: Manche Firewalls oder Netzwerk-Filter beenden unerwünschten Datenverkehr aktiv per gefälschtem RST, statt Pakete nur stillschweigend zu verwerfen — das signalisiert dem Client sofort “Verbindung beendet” statt eines unklaren Timeouts.
Aus Anwendungssicht äußert sich ein empfangenes RST meist als Fehler wie ECONNRESET (“Connection reset by peer”) — ein häufiges, oft schwer zu debuggendes Problem bei Netzwerkanwendungen, besonders wenn eine Gegenstelle Verbindungen nach einer gewissen Leerlaufzeit einseitig per RST kappt, ohne dass die andere Seite das erwartet.
$ curl https://beispiel.local
curl: (56) Recv failure: Connection reset by peer