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

Game Lag White Paper › L8 Sockets and protocols

Reliable UDP retransmission settings Reliable-UDP tuning (KCP, ENet…)

Cause ID sk-reliable-udp · Primary owner Game team (Server development) · Also Game team (Client development)

Open the interactive card with figures and simulations →

When the retransmission rules you built on top of UDP are too conservative, recovery is slow; when they’re too aggressive, they clog the connection even more.

Why Retransmission interval, retry count, and window size don’t suit the connection → Effect Slow recovery, or duplicate sends that make congestion worse → On screen Skills not going off, fast-forward, worse lag during congestion

Symptoms
Dropped action / rollback, Fast-forward
Factors
Packet loss, Latency
Who’s affected
Just me
When
Randomly
Owner
Primary owner Game team (Server development) · Also Game team (Client development)
Game team action items
Server: base retransmission on measured round-trip time, separate channels by importance. Client: apply the same retransmission and channel settings as the server.
On the graph
Random spikes · Reliable UDP retransmission rate, in-game RTT
Where to look
Per-connection statistics from the library in use (retransmissions, estimated round-trip time, retransmission timeout), logged on server and client and compared with the same player’s actual connection loss rate (measured with mtr)
Confirmed if
Retransmission rate several times the actual loss rate: settings too aggressive. Retransmission timeout several times the measured round-trip time: settings too conservative
Ruled out if
Retransmission rate close to the loss rate and timeout in line with round-trip time: not a settings problem. Look at the connection loss itself
Check with
Game server or client logs and metrics

Sources

  1. RFC 8085: UDP Usage Guidelines IETF
    Retransmissions can add to congestion, so they fall under congestion control; round-trip time is estimated as an average of several measurements (EWMA), initial value 1 s, lower the sending rate when the timer expires

See also

Same layer: L8 Sockets and protocols

Same symptom (Dropped action / rollback), other layers

View the interactive card with figures and simulations