Trennt der Server eine Verbindung überstürzt, gehen der zuletzt gesendete Hinweis oder die Bestätigung des Speicherns verloren.
Warum Server schließt die Verbindung per hartem Abbruch (RST). Passiert, wenn SO_LINGER auf 0 s steht oder geschlossen wird, bevor alle empfangenen Daten gelesen sind → Folge Noch in Übertragung befindlicher Kick-Grund und letzte Daten werden verworfen → Auf dem Bildschirm Grundlos „Verbindung wegen eines unbekannten Fehlers getrennt“
Nach dem Senden des Grundes zuerst nur die Senderichtung schließen (shutdown), empfangene Daten bis zum Schließen der Gegenseite vollständig lesen und erst dann schließen, SO_LINGER mit 0 s vermeiden.
Im Graphen
Vereinzelte Spitzen ohne Muster · Per RST beendete Verbindungen
Wo nachsehen
Zuwachs von TcpExtTCPAbortOnData (per RST geschlossen, obwohl noch Daten zu senden waren, SO_LINGER 0 s) und TcpExtTCPAbortOnClose (mit ungelesenen Daten geschlossen) in nstat -az prüfen, im Moment der Trennung im Paketmitschnitt auf dem Server prüfen, ob ein RST hinausgeht und kein FIN
Spricht dafür
Zum Zeitpunkt der Meldungen „Verbindung wegen eines unbekannten Fehlers getrennt“ sendet der Server RST, und AbortOnData oder AbortOnClose steigen
Spricht dagegen
Server beendet die Verbindung normal per FIN, Grund wird trotzdem nicht angezeigt: Verbindungsabbau im Client
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)
Quellen
closesocket function (winsock.h)Microsoft Ist SO_LINGER aktiv und die Zeit auf 0 gesetzt, wird die Verbindung hart abgebrochen und sofort zurückgesetzt, nicht gesendete Daten gehen verloren
SNMP counterLinux kernel TcpExtTCPAbortOnData: per RST geschlossen, obwohl noch Daten zu senden waren (etwa durch SO_LINGER 0 s), TcpExtTCPAbortOnClose: mit ungelesenen Daten geschlossen und RST gesendet