한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Game-Lag-Whitepaper › L8 Sockets und Protokolle

IP-Fragmentierung von UDP-Paketen IP fragmentation of large UDP

Ursachen-ID sk-fragment · Hauptzuständig Server-Entwicklung (Entwicklungsteam)

In der interaktiven Fassung mit Grafiken und Experimenten öffnen →

UDP-Pakete, die größer als die MTU (die maximale Größe, die auf einmal gesendet werden kann) sind, werden auf IP-Ebene fragmentiert. Geht nur ein Fragment verloren, wird das ganze Paket verworfen.

Warum Snapshots aus belebten Gebieten überschreiten 1.500 Byte → Folge In mehrere Fragmente aufgeteilt übertragen, fehlt eines, wird alles verworfen → Auf dem Bildschirm Große Pakete gehen um ein Mehrfaches häufiger verloren. Teleportieren nur in belebten Gebieten

Symptome
Teleportieren
Faktoren
Paketverlust
Wer ist betroffen
Bestimmter Ort oder Kanal, Bestimmte Region oder Provider
Wann
Bei großem Andrang
Zuständigkeit
Hauptzuständig Server-Entwicklung (Entwicklungsteam)
Aufgaben Entwicklungsteam
Pakete selbst auf höchstens 1.200 Byte aufteilen, nur Änderungen senden.
Größenordnungen
Auf einer Leitung mit 2 % Paketverlust gehen von Paketen, die in 4 Fragmente aufgeteilt sind, etwa 8 % verloren. Manche Firewalls und Provider verwerfen fragmentierte Pakete komplett. Betroffene Spieler erhalten dann kein einziges großes Paket.
Im Graphen
Steigt mit Spielerzahl und Last · Erzeugte IP-Fragmente (IpFragCreates), Snapshot-Größe
Wo nachsehen
Auf dem Server den Zuwachs von IpFragCreates (beim Senden erzeugte Fragmente) in nstat -az prüfen, beim Empfänger IpReasmFails (gescheiterte Reassemblierungen). Verteilung der UDP-Paketgrößen per Spielserver-Log oder Paketmitschnitt prüfen
Spricht dafür
In belebten Gebieten steigt IpFragCreates, es gibt UDP-Pakete über 1.500 Byte, und gleichzeitig häufen sich Meldungen über Teleportieren
Spricht dagegen
IpFragCreates steigt nicht: auf der Sendeseite des Servers findet keine Fragmentierung statt
Prüfmittel
Mit Infrastruktur-Tools prüfbar (ohne Spielcode)

Quellen

  1. RFC 8085: UDP Usage Guidelines IETF
    Fehlt ein Fragment, scheitert die Reassemblierung, und das ganze Paket geht verloren, UDP-Anwendungen sollen IP-Fragmentierung vermeiden
  2. RFC 8900: IP Fragmentation Considered Fragile IETF
    Fälle, in denen Firewalls und einzelne Netze IP-Fragmente verwerfen
  3. net/ipv4/proc.c (Linux v6.12) Linux kernel
    Von nstat angezeigte Zählernamen: FragCreates (erzeugte Fragmente) und ReasmFails (gescheiterte Reassemblierungen) der Gruppe Ip

Verwandte Ursachen

Gleiche Schicht: L8 Sockets und Protokolle

Ursachen aus anderen Schichten mit demselben Symptom (Teleportieren)

Karte in der interaktiven Fassung mit Grafiken und Experimenten ansehen