Timeliness without datagrams using QUIC
UDP vs QUIC vs TCP
- Many comments argue the real choice is not “UDP vs TCP” but “raw datagrams vs something built on them,” with QUIC as a prominent option.
- QUIC is praised for providing congestion control, reliability, multiplexed streams, and optional unreliability, avoiding the need to reinvent these over UDP.
- Skeptics say QUIC can add unnecessary complexity for simple, latency-critical workloads where retransmission and congestion control don’t help.
Video games and real-time interactive apps
- Fast-paced multiplayer games are a major counterexample to “never use UDP.”
- For games that resend full world state every tick, simple UDP is considered ideal: no retransmission, tiny bandwidth, and ignoring old packets is correct behavior.
- More complex games that send diffs or inputs need some reliability; people often build custom reliable/unreliable layers on top of UDP, which end up “QUIC-like.”
- Some point out QUIC can do “cancel on loss” or per-stream priorities, but others argue this still doesn’t match game-specific timing and recovery logic.
Other UDP-friendly use cases
- Listed UDP uses: local discovery, broadcast/multicast, VPNs/tunnels, high-frequency sensors, HFT/market data, media art protocols (OSC, ArtNet), real-time voice/video.
- Rationale: timeliness, multicast, simple fire‑and‑forget semantics, and avoiding TCP-over-TCP pathologies.
Reliability, ‘best-effort’, and semantics
- Debate over calling UDP “unreliable” vs “best-effort.”
- Consensus: the key distinction is who handles loss/reordering—transport layer (TCP/QUIC) vs application/protocol above UDP.
- Several note that many UDP systems are effectively reliable because higher layers add acks, sequence numbers, FEC, or retransmission.
Streams vs messages
- Frustration that TCP is stream-based when most apps think in messages; many reimplement framing on top.
- Some wish IP had standardized “reliable, message-based” transport; SCTP and QUIC are mentioned as partial answers, but middleboxes and deployment issues limited SCTP.
Congestion and network behavior
- Concerns: bufferbloat, OS and router buffering, and aggressive TCP congestion backoff on lossy links.
- Some argue games and certain IoT/LPWAN scenarios assume congestion is unacceptable and design around transient loss instead, making TCP/QUIC behavior a poor fit.