Changing MTU?

Hello!

TLDR; Is it possible to change the Maximum Transmissible Unit from 1500 bytes? On connections with some latency, the packets are arriving close together and terminating the connection for players.

Full context:

I’m the developer of Doomsday Paradise which uses Nakama as its backend for online multiplayer. Post launch a lot of bug reports from players arrived complaining about disconnects during matchmaking I did not catch during the game’s QA period. Some players had no problems at all, and others could barely play. Online issues are the majority of negative reviews on the game’s Steam page.

After several months of poking around I discovered that the issue is the 1500 byte MTU. Depending on latency, packets would arrive more or less closely together- and lots of small packets or a single large buffer packet would cause the connection to completely drop.

I couldn’t find a configuration parameter for this anywhere. Right now I’m going through a ton of hoops to slow down packet transmission based on latency, and it’s effective, but I’d prefer to simply bump up the MTU by a bit to ensure that there isn’t an edge case that is terminating games somewhere.

At the very least, having Nakama slow down the packets rather than disconnect the receiving player would be preferable.

You cannot increase MTU; This is not a Nakama limitation rather that protocol limitation at every network hop (player router/switch, ISPs, network).

I’d suggest first looking at what kind of fast-paced messages you are sending that exceeds the MTU limit - this will likely point you to redesigning your netcode architecture. Further after this, if you have an unstable network connectivity, I’d suggest adjusting ping/pong heartbeat timers (configurations in Nakama) but only after making sure your messages fit within the MTU limit.

1 Like

Thank you. I did some message consolidation and size reduction, and that’s mostly helped.

However some players are still reporting some problems. Is it possible to enable packet fragmentation or something instead of just terminating the connection? I’m at my wit’s end.

The game is disconnecting on perfectly good internet connections and it’s hard to even send a big “catch up” packet because it’ll be over the MTU and disconnect everyone. :confused: