Game-Lag-Whitepaper › Nach Symptom suchen
Verbindungsabbruch: 51 Ursachen und Zuständigkeiten
Auch genannt: Rausfliegen, Disconnect, „Die Verbindung zum Server wurde getrennt“
Im interaktiven Symptomkatalog mit Grafiken öffnen →
Mitten im Spiel bricht die Verbindung ab, und man landet im Login-Bildschirm oder im Reconnect-Fenster.
Ein Freeze dauert einige Sekunden an, dann erscheint „Die Verbindung wurde getrennt“. Fliegen mehrere Spieler gleichzeitig raus, liegt das Problem auf der Serverseite.
Innerhalb des Timeouts kam kein einziges Paket an. Zu prüfen sind längere Leitungsunterbrechungen, Idle-Timeouts, Serverabstürze und Neustarts sowie ein Server oder eigener PC, der länger als das Timeout hing (langes Laden). Schließt sich das Spiel ohne jede Meldung, ist zuerst ein erzwungenes Beenden des Clients (Absturz, Speichermangel) zu prüfen und erst danach die Verbindung.
Ursachen dieses Symptoms
L1 Spielprozess auf dem Client
- Speicherleck im Client: Je länger das Spiel läuft, desto mehr Speicher belegt es. Es wird zunehmend langsamer und am Ende zwangsweise beendet. (Client-Entwicklung (Entwicklungsteam))
- Client-Absturz: Ein nicht abgefangener Fehler beendet das Spiel. Für den Spieler sieht das wie ein Verbindungsabbruch aus, der Server läuft aber normal. (Client-Entwicklung (Entwicklungsteam))
- Prüfungen des Sicherheitsmoduls (Anti-Cheat): Ein Sicherheitsmodul, das zum Schutz vor Cheats mit dem Spiel läuft, prüft in regelmäßigen Abständen. Ist die Prüfung aufwendig oder kommt der Heartbeat (regelmäßiges Lebenszeichen) zum Sicherheitsserver zu spät, ruckelt das Spiel, oder es kommt zum Verbindungsabbruch. (Client-Entwicklung (Entwicklungsteam))
L2 Client-OS und Gerät
- Wechsel der mobilen App in den Hintergrund: Wird die App kurz minimiert, um eine Benachrichtigung zu lesen, pausiert das OS sie nach einigen Sekunden (Suspend). In dieser Zeit trennt der Server die Verbindung des Spielers. (Client-Entwicklung (Entwicklungsteam))
- Wechsel WLAN ↔ LTE/5G: Verlässt man das Haus, bricht das WLAN ab, und das Gerät wechselt zu LTE oder 5G. Dabei ändert sich die eigene IP-Adresse, und die bestehende Verbindung wird ungültig. (Server-Entwicklung (Entwicklungsteam))
- Drosselung bei minimiertem oder inaktivem Fenster: Wechselt man in ein anderes Fenster oder minimiert das Spiel, lassen Spiel und Windows es zum Stromsparen langsamer laufen. Bei der Rückkehr kommen die aufgestauten Pakete auf einmal, oder die Verbindung ist schon abgebrochen. (Client-Entwicklung (Entwicklungsteam))
- Störung durch Overlay-Programme: Messenger, Launcher, Aufnahmeprogramme und FPS-Anzeigen klinken sich in das Rendering des Spiels ein (Hooking), um ihre eigene UI über das Spielbild zu zeichnen. Das kostet in jedem Frame zusätzliche Arbeit und kollidiert gelegentlich mit dem Spiel, sodass es stockt oder zwangsweise beendet wird. (Extern (Extern))
L3 Heimnetz
- Ablauf des NAT-Mappings: Router löschen Idle-Verbindungen, über die eine Weile keine Pakete gelaufen sind, aus der NAT-Tabelle. Das ist eine häufige Ursache dafür, dass die Verbindung genau dann abbricht, wenn man sich nach einer Pause wieder bewegt. (Client-Entwicklung (Entwicklungsteam))
- Leistungsschwacher oder überhitzter Router: Hängen an einem billigen Router Dutzende Geräte mit Tausenden Verbindungen, kommt der Router selbst nicht mehr mit. (Extern (Extern))
- Handover zwischen Funkzellen (unterwegs): Unterwegs in Bus oder U-Bahn setzt die Verbindung aus, während die Funkzelle wechselt. (Extern (Extern))
- Schwaches Mobilfunksignal und Funklöcher: In Aufzügen, im Untergeschoss oder tief im Gebäudeinneren nehmen Retransmissions zu, die Geschwindigkeit sinkt, und schließlich bricht die Verbindung ab. (Extern (Extern))
L4 Internetleitung
- UDP-Beschränkung und Paketinspektion auf Landes- oder Providerebene: Manche Netze sperren bestimmte UDP-Adressen oder -Ports oder drosseln UDP, und Geräte zur Paketinspektion filtern Protokolle heraus, die sie nicht erkennen. Spiele, die über UDP kommunizieren, kommen in solchen Netzen nicht durch oder verlieren oft die Verbindung. (Extern (Extern))
- Schlechte Leitungsqualität: Wackelkontakte an Anschlüssen, alte Leitungen oder ein defektes Modem verursachen dauerhaften Paketverlust und wiederkehrende Leitungsabbrüche. (Extern (Extern))
- Vollauslastung gemeinsamer Leitungen durch DDoS: Ein massiver Angriff auf den Spielebetreiber oder auf ein anderes Ziel im selben Netz lastet gemeinsam genutzte Leitungen voll aus. (Netzwerk-Infrastruktur (Infrastrukturteam))
- Geteilte Provider-IP (CGNAT): In Mobilfunknetzen und bei manchen Providern teilen sich viele Kunden eine IP-Adresse, und die Mappings von Idle-Verbindungen werden schon nach kurzer Zeit gelöscht. (Client-Entwicklung (Entwicklungsteam))
L5 Netzwerkgeräte im Rechenzentrum
- Volle Session-Tabelle der Firewall: Die Firewall verfolgt jede durchgelassene Verbindung in ihrer Session-Tabelle. Ist die Tabelle voll, kann sie keine neuen Verbindungen mehr annehmen. (Netzwerk-Infrastruktur (Infrastrukturteam))
- Idle-Timeout des Load-Balancers: Load-Balancer löschen Idle-Verbindungen nach einer bestimmten Zeit. Das Spiel hält die Verbindung weiter für bestehend, bis es zum Verbindungsabbruch kommt. (Netzwerk-Infrastruktur (Infrastrukturteam))
- Ablauf des Connection Trackings in Cloud-Security-Groups: Auch die Firewall einer Cloud-Instanz (Security Group) verfolgt Verbindungen, und Tracking-Einträge von Idle-Verbindungen laufen nach einer festen Zeit ab. Deshalb können auch Spieler, die ohne Load-Balancer direkt mit dem Server verbunden sind, nach einer Ruhephase die Verbindung verlieren. (Server-Infrastruktur (Infrastrukturteam))
- Failover von Netzwerkgeräten: Fällt ein Router oder eine Firewall aus und wird auf das Ersatzgerät umgeschaltet (Failover), haben alle Spieler einige Sekunden lang einen Freeze. (Netzwerk-Infrastruktur (Infrastrukturteam))
- MTU-Mismatch (nur große Pakete verschwinden): Ist die MTU (maximale Paketgröße pro Sendung) auf einem Abschnitt unterwegs kleiner und wird die Meldung „Paket zu groß“ blockiert, verschwinden ständig nur die großen Pakete. (Netzwerk-Infrastruktur (Infrastrukturteam))
L6 Netzwerkkarte des Servers
- Wartung des Cloud-Hosts und Live-Migration: Wartet der Cloud-Anbieter einen physischen Server (Host), verschiebt er die VMs auf einen anderen Host (Live-Migration) oder hält sie kurz an. Währenddessen steht der ganze Server still, und dauert der Stillstand lange, brechen Verbindungen ab. (Server-Infrastruktur (Infrastrukturteam))
- Probleme mit NIC-Treiber oder -Firmware: Hängt sich die Karte durch einen Treiberfehler oder eine fehlerhafte Funktion auf und startet neu, ist währenddessen jedes Senden und Empfangen unterbrochen. (Server-Infrastruktur (Infrastrukturteam))
L7 Server-OS (Kernel)
- OOM-Killer: Geht der Arbeitsspeicher aus, wählt Linux den Prozess mit dem größten Speicherverbrauch und beendet ihn zwangsweise. Meist trifft es den Spielserver. (Server-Entwicklung (Entwicklungsteam))
- Sprung der Systemuhr (NTP-Step): Wird die Serveruhr auf einen Schlag um einige Sekunden vor- oder zurückgestellt, lösen Timer, die von der Systemuhr abhängen, gesammelt aus oder bleiben stehen. (Server-Entwicklung (Entwicklungsteam))
L8 Sockets und Protokolle
- TCP-RTO und exponentielles Backoff: Mit jeder weiteren gescheiterten Retransmission verdoppelt sich die Wartezeit, und aus einer kurzen Leitungsunterbrechung wird ein langer Stillstand. (Server-Entwicklung (Entwicklungsteam))
- Strategie für langsame Clients (Slow Consumer): Bei einem Client, für den sich immer mehr zu sendende Daten anstauen, verwirft der Server veraltete Updates oder trennt die Verbindung. (Server-Entwicklung (Entwicklungsteam))
- Verlust der letzten Daten durch harten Abbruch per RST: Trennt der Server eine Verbindung überstürzt, gehen der zuletzt gesendete Hinweis oder die Bestätigung des Speicherns verloren. (Server-Entwicklung (Entwicklungsteam))
- Schieflast bei der SO_REUSEPORT-Verteilung: Teilen sich mehrere Prozesse denselben Port, legt der Kernel für jede Verbindung per Adress-Hash fest, welcher Prozess zuständig ist, und ändert das danach nicht mehr. Steht dieser Prozess still, warten nur die ihm zugeordneten Spieler. (Server-Entwicklung (Entwicklungsteam))
- WSAECONNRESET-Fehler bei UDP-Sockets unter Windows: Sendet ein Windows-Server UDP an einen Client, der schon weg ist, kommt eine ICMP-Meldung „Port nicht erreichbar“ zurück. Durch diese Meldung endet der nächste Empfangsaufruf mit einem Fehler. Behandelt der Servercode diesen Fehler als Defekt des Sockets selbst, sind alle betroffen, die diesen Socket nutzen. (Server-Entwicklung (Entwicklungsteam))
L9 Spielprozess auf dem Server
- Deadlock: Wartet jeder von zwei Threads auf den Lock, den der andere hält, stehen beide für immer still. (Server-Entwicklung (Entwicklungsteam))
- Serverabsturz: Stürzt der Serverprozess durch einen unbehandelten Fehler ab, bricht für alle auf diesem Server gleichzeitig die Verbindung ab. (Server-Entwicklung (Entwicklungsteam))
- Endlosschleife und außer Kontrolle geratene Logik: Endet ein Tick wegen eines Bugs nicht, bleibt der Server stehen, und der Watchdog startet ihn zwangsweise neu. (Server-Entwicklung (Entwicklungsteam))
L10 Arbeitsspeicher
- Speicherleck: Nicht freigegebener Speicher sammelt sich nach und nach an und führt Tage später zu GC-Stürmen, Swapping oder zum erzwungenen Beenden des Prozesses. (Server-Entwicklung (Entwicklungsteam))
- GC-Thrashing (zu wenig Heap-Reserve): Nähern sich die lebenden Daten der Heap-Grenze, findet jede GC kaum noch etwas zum Freigeben, und die GC läuft ununterbrochen immer wieder. (Server-Entwicklung (Entwicklungsteam))
- Speicherfragmentierung: Zerfällt freier Speicher durch ständiges Allozieren und Freigeben in kleine Stücke, belegt der Prozess viel mehr Speicher, als er tatsächlich nutzt. (Server-Entwicklung (Entwicklungsteam))
L11 Datenträger
- Datenträger voll: Füllen angesammelte Logs und Dumps den Datenträger, schlagen Schreibvorgänge fehl. Ohne Vorkehrungen stürzt der Server ab. (Server-Infrastruktur (Infrastrukturteam))
L12 Datenbank
- DB-Failover: Fällt die Primär-DB aus und wird auf die Reserve-DB umgeschaltet, sind währenddessen keine Schreibvorgänge möglich, und die letzten noch nicht replizierten Daten können verloren gehen. (DB-Infrastruktur (Infrastrukturteam))
L13 Serverarchitektur und Betrieb
- Gateway oder Proxy als Zwischenstation: Steht zwischen Client und Spielserver ein Zwischenserver, kommt bei jeder Station Verarbeitungszeit hinzu, und dieser Server wird zum Single Point of Failure. (Server-Entwicklung (Entwicklungsteam))
- Zonenwechsel (Übergabe zwischen Servern): Beim Betreten eines anderen Gebiets oder Dungeons werden die Charakterdaten an einen anderen Server übergeben. Dabei kommt es zu Verzögerungen und Fehlschlägen. (Server-Entwicklung (Entwicklungsteam))
- Deployment und Neustart: Werden Server für ein Update neu gestartet, ohne die Verbindungen umzuziehen, verlieren alle Spieler auf diesem Server die Verbindung. Speichervorgänge kurz vor dem Herunterfahren und anschließende Reconnects ballen sich. (Server-Entwicklung (Entwicklungsteam))
- Obergrenze der Login-Warteschlange und zu kurze Reconnect-Karenzzeit: Strömen nach Release oder Wartung viele Spieler herein, erreicht die Login-Warteschlange ihre Obergrenze und weist neue Wartende ab. Wer schon wartet, verliert bei einem kurzen Verbindungsabbruch seinen Platz und muss sich wieder hinten anstellen. (Server-Entwicklung (Entwicklungsteam))
Synchronisationsdesign
- Host-Architektur (Spieler-PC als Server): Übernimmt der PC eines Spielers die Rolle des Servers, bestimmen dessen Leitung und PC-Leistung das Spielgefühl aller. (Server-Entwicklung (Entwicklungsteam))
Probleme, die nur einige betreffen
- Gehäufte False Positives der Validierung bei bestimmten Providern: Bei Spielern, deren Leitung hohen Jitter hat, kommen Eingaben gebündelt an und bleiben deshalb oft in den Geschwindigkeits- und Cooldown-Prüfungen des Servers hängen. (Server-Entwicklung (Entwicklungsteam))
- Kollision fester UDP-Ports: Ist der Client so gebaut, dass er einen festen lokalen Port verwendet, kann ein zweiter Client auf demselben PC den Port nicht nutzen oder teilt sich die Pakete mit dem ersten. (Client-Entwicklung (Entwicklungsteam))
- Fehlerhafte Session-Zuordnung nach IP oder Gerät: Unterscheiden der Server oder ein Zwischenserver Verbindungen anhand von IP oder Geräte-ID, werden zwei Clients auf demselben PC (gleiche öffentliche IP) als ein Spieler erkannt. (Server-Entwicklung (Entwicklungsteam))
- Multi-Client-Beschränkung: Beschränken ein Sicherheitsmodul oder eine Serverrichtlinie mehrere Clients auf einem PC, wird der Start oder Login des zweiten Clients blockiert, oder der zuerst gestartete verliert die Verbindung. Manche Spiele sperren nur Funktionen des zusätzlichen Clients. (Client-Entwicklung (Entwicklungsteam))
- Drosselung von Hintergrundfenstern: Bei einem Client im Hintergrundfenster reduzieren Spiel, Engine und OS Frames und Verarbeitung. Empfangene Pakete werden nicht rechtzeitig verarbeitet, stauen sich oder laufen über. (Client-Entwicklung (Entwicklungsteam))
Grundursachen von TCP-Retransmissions
- Verworfene Pakete in Firewall und Connection Tracking: Firewalls und das Linux-Connection-Tracking (conntrack, eine Funktion, die durchlaufende Verbindungen in einer Tabelle vermerkt) verwerfen Pakete, wenn die Tabelle voll ist oder der Verbindungszustand nicht zu passen scheint. (Netzwerk-Infrastruktur (Infrastrukturteam))
- Überschrittenes Verarbeitungslimit von Zwischengeräten (Firewall, IPS, DDoS-Schutz): Firewalls, Intrusion-Prevention-Systeme (IPS) und DDoS-Schutzgeräte prüfen jedes durchlaufende Paket einzeln. Sobald ihre Prüfkapazität überschritten ist, verwerfen sie die Pakete, die sie nicht mehr verarbeiten können. (Netzwerk-Infrastruktur (Infrastrukturteam))
- MTU-Blackhole (nur große Pakete gehen wiederholt verloren): Ist die zulässige Paketgröße auf einem Abschnitt der Strecke kleiner geworden und wird die Meldung „Paket zu groß“ (ICMP) blockiert, verschwinden große Pakete immer wieder, egal wie oft sie erneut gesendet werden. (Netzwerk-Infrastruktur (Infrastrukturteam))
- Ablauf des NAT- oder Load-Balancer-Mappings während der Verbindung: Löscht ein Zwischengerät das Mapping einer Idle-Verbindung (den Eintrag, wohin diese Verbindung weitergeleitet wird), kommt das nächste gesendete Paket nicht mehr an. Entweder folgen Retransmissions, bis die Verbindung abbricht, oder das Gerät schickt eine Verbindungsablehnung (RST) zurück, und die Verbindung bricht sofort ab. (Client-Entwicklung (Entwicklungsteam))
Interaktiven Symptomkatalog mit Grafiken ansehen