QUIC is not quick enough over fast internet

Scope of the performance problem

  • Paper shows QUIC underperforms TCP/HTTP/2 at high bandwidth and very low RTT, mainly ≥500–600 Mbps and sub‑millisecond latency.
  • Several commenters note this regime isn’t typical 4G/5G, but is increasingly common for home gigabit fiber and in data centers.
  • On “normal” or slow links (mobile, high latency, lossy), many report QUIC/HTTP/3 performs as well or better.

Root causes identified

  • Consensus in the thread: the gap is largely due to TCP hardware offload and mature kernel TCP optimizations that UDP/QUIC does not yet enjoy.
  • QUIC’s ACK and state handling in userspace add scheduler and syscall overhead; UDP receive buffers are small by default and accounting is expensive.
  • Lack of QUIC‑specific NIC offload (vs widespread TCP/TLS offload) is a central bottleneck.

Userspace vs kernel networking

  • One camp argues putting QUIC in userspace was a mistake; ACKs and congestion control belong in the kernel for latency and efficiency.
  • Others argue userspace is essential: kernels evolve slowly, and QUIC’s design goal was rapid iteration and avoiding kernel crypto stacks.
  • There is work on kernel QUIC and kTLS‑style offload, but encryption‑in‑NIC raises key‑exposure and IOMMU/I/O‑isolation concerns.

When QUIC helps vs when it hurts

  • QUIC/HTTP/3 seen as clear wins on:
    • High‑latency, lossy, or mobile connections (subways, roaming, bad rural links).
    • Multipath / interface switching without breaking connections.
  • On fast, stable networks:
    • Several operators report HTTP/1.1 or HTTP/2 giving lower CPU, memory, and latency; some have disabled HTTP/2/3 entirely.
    • Others see HTTP/2 clearly beating HTTP/1.1 in such conditions; results appear implementation‑dependent.

Alternatives and design philosophy

  • Some argue SCTP already solved QUIC’s problems, but is unusable on today’s Internet due to middleboxes and lack of Windows support.
  • QUIC over UDP is seen as a pragmatic response to “only TCP/UDP pass everywhere” and to keep transport headers encrypted from meddling middleboxes.
  • There is discomfort with rising protocol complexity (HTTP/2, HTTP/3/QUIC) and calls to keep HTTP/1.1 available and favor offline‑first, simpler app designs.

System and API issues

  • Discussion of Linux networking limits: slow syscalls, small UDP buffers, imperfect UDP offload, and need for better APIs (sendmmsg/recvmmsg, io_uring) or new interfaces beyond BSD sockets.
  • Some expect this kind of research to drive UDP/QUIC stack and NIC improvements over time, narrowing the gap with TCP.