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

Game Lag White Paper › Root causes of TCP retransmission

Bottleneck queue overflow (congestion loss) Tail drop at a congested bottleneck

Cause ID rt-queue-drop · Primary owner Infra team (Network infrastructure) · Also External (External), Game team (Client development)

Open the interactive card with figures and simulations →

When the queue at the narrowest point fills up, such as a home router, a link between ISPs, or a data center uplink, newly arriving packets are dropped.

Why Video, downloads, and other users’ traffic fill up the bottleneck → Effect While the queue is full, newly arriving packets are dropped one after another (tail drop). Packets that get in wait at the back of the full queue → On screen Several packets vanish at once, causing a long freeze then fast-forward; common in the evening

Symptoms
Freeze, Fast-forward, Rubber-banding
Factors
Packet loss, Latency
Who’s affected
Same household, Specific region/ISP, Whole server
When
Evening peak hours, When crowds gather
Owner
Primary owner Infra team (Network infrastructure) · Also External (External), Game team (Client development)
Game team action items
Show network status on screen when losses cluster or ping spikes (mention that a large transfer on the same connection may be the cause).
Infra team action items
Keep headroom on data center links, check output drop counters on our links and switch ports, route around a congested ISP segment through another link or peering.
External action items
Tell players to use SQM (fq_codel, CAKE) and ECN on their router (so senders slow down before the queue overflows), ask the ISP to add capacity at the bottleneck.
Ballpark numbers
When a queue overflows, a large share of incoming packets can vanish at once over tens of milliseconds. Losing several packets in a row, and even losing the retransmissions, is common, so recovery often has to wait for an RTO.
On the graph
High at certain hours · Retransmission rate, RTT (ping)
Where to look
Server retransmission rate (TcpRetransSegs ÷ TcpOutSegs deltas from nstat run every minute) and per-connection RTT, split by region, ISP, and time of day, alongside output discards (ifOutDiscards) on our links and switch ports. Compare mtr runs to the affected region at peak and off-peak hours
Confirmed if
Retransmission rate rises only at evening peak, and RTT climbs just before the loss (the queue filling up). mtr shows loss and latency growing together from one hop to the end, only at peak hours
Ruled out if
No RTT rise before the loss points to “Policer drops excess traffic.” Similar loss at every hour points to “Physical errors (bad cable, optics, connectors)” or “Route change / bad ECMP path”
Check with
Infra tools (no game code needed)
Real incidents
Riot Games 2015: League of Legends traffic on roundabout routes, and Riot Direct

Sources

  1. RFC 7567: IETF Recommendations Regarding Active Queue Management IETF
    Tail drop keeps queues full for long periods, adding delay and causing clustered loss; recommends AQM
  2. RFC 8290: The Flow Queue CoDel Packet Scheduler and Active Queue Management Algorithm IETF
    fq_codel: per-flow queues plus AQM keep queues short and reduce bufferbloat
  3. RFC 3168: The Addition of Explicit Congestion Notification (ECN) to IP IETF
    ECN: signals congestion with a mark in the IP header, without dropping packets
  4. Smart Queue Management Bufferbloat.net
    SQM: combines per-flow scheduling, queue length management (AQM), and shaping
  5. Cake Bufferbloat.net
    CAKE: router SQM that combines a shaper with fq_codel-style queue management
  6. net/ipv4/proc.c Linux kernel
    TcpRetransSegs and TcpOutSegs as shown by nstat (RetransSegs and OutSegs under Tcp)
  7. nstat(8) — Linux manual page iproute2
    By default, nstat shows the increase since its previous run
  8. RFC 2863: The Interfaces Group MIB IETF
    ifOutDiscards: outbound packets discarded even though no error was detected, for example to free up buffer space
  9. An Internet-Wide Analysis of Traffic Policing Google
    Queue overflow raises queuing delay and RTT before the loss, while policing drops the excess with no RTT increase (SIGCOMM 2016)

See also

Same layer: Root causes of TCP retransmission

Same symptom (Freeze), other layers

View the interactive card with figures and simulations