A UDP packet larger than the MTU (the largest size that can be sent in one piece) is fragmented at the IP layer, and losing just one fragment throws away the whole packet.
Why Snapshots in crowded areas exceed 1,500 bytes → Effect They go out split into several fragments, and losing any one of them discards the whole packet → On screen Large packets are lost several times as often. Teleporting only in crowded areas
Split packets yourself to 1,200 bytes or less, send only what changed.
Ballpark numbers
On a connection with 2% loss, about 8% of packets split into 4 fragments are lost. Some firewalls and ISPs drop fragmented packets outright, so those players never receive a single large packet.
On the graph
Rises with load · IP fragments created (IpFragCreates), snapshot size
Where to look
On the server, the increase in IpFragCreates (fragments created while sending) from nstat -az; on the receiving side, IpReasmFails (reassembly failures). UDP packet size distribution from game server logs or a packet capture
Confirmed if
IpFragCreates rises where crowds gather, UDP packets larger than 1,500 bytes show up, and teleporting reports go up at the same time
Ruled out if
IpFragCreates not rising: no fragmentation on the server’s sending side
Check with
Infra tools (no game code needed)
Sources
RFC 8085: UDP Usage GuidelinesIETF Losing one fragment means the packet can’t be reassembled and is lost entirely; UDP apps should avoid IP fragmentation
net/ipv4/proc.c (Linux v6.12)Linux kernel Counter names shown by nstat: FragCreates (fragments created) and ReasmFails (reassembly failures) in the Ip group