QUIC Steps: Evaluating Pacing Strategies in QUIC Implementations

📅 2025-05-14
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This paper addresses pacing inaccuracy in QUIC user-space implementations, caused by coarse-grained timers, system call overhead, and scheduling latency. We systematically evaluate pacing performance across three major implementations—quiche, picoquic, and ngtcp2—and quantify the impact of Linux qdiscs (especially FQ), GSO hardware offloading, and the Earliest Transmit First (ETF) scheduler. We present the first empirical comparison of pacing accuracy between pure user-space and kernel-assisted approaches. Furthermore, we propose and validate a kernel patch that leverages per-packet timestamping within the GSO buffer to enable fine-grained scheduling while preserving batch-processing efficiency. Experiments show that picoquic with BBR achieves sub-millisecond pacing accuracy in pure user-space mode; the FQ qdisc provides the most favorable pacing environment for QUIC; and kernel-enhanced GSO pacing reduces timing jitter by 40%, significantly improving real-time audio/video quality.

Technology Category

Application Category

📝 Abstract
Pacing is a key mechanism in modern transport protocols, used to regulate packet transmission timing to minimize traffic burstiness, lower latency, and reduce packet loss. Standardized in 2021, QUIC is a UDP-based protocol designed to improve upon the TCP / TLS stack. While the QUIC protocol recommends pacing, and congestion control algorithms like BBR rely on it, the user-space nature of QUIC introduces unique challenges. These challenges include coarse-grained timers, system call overhead, and OS scheduling delays, all of which complicate precise packet pacing. This paper investigates how pacing is implemented differently across QUIC stacks, including quiche, picoquic, and ngtcp2, and evaluates the impact of system-level features like GSO and Linux qdiscs on pacing. Using a custom measurement framework and a passive optical fiber tap, we establish a baseline with default settings and systematically explore the effects of qdiscs, hardware offloading using the ETF qdisc, and GSO on pacing precision and network performance. We also extend and evaluate a kernel patch to enable pacing of individual packets within GSO buffers, combining batching efficiency with precise pacing. Kernel-assisted and purely user-space pacing approaches are compared. We show that pacing with only user-space timers can work well, as demonstrated by picoquic with BBR. With quiche, we identify FQ as a qdisc well-suited for pacing QUIC traffic, as it is relatively easy to use and offers precise pacing based on packet timestamps. Our findings provide new insights into the trade-offs involved in implementing pacing in QUIC and highlight potential optimizations for real-world applications like video streaming and video calls.
Problem

Research questions and friction points this paper is trying to address.

Evaluates pacing implementation differences across QUIC stacks.
Investigates system-level features' impact on QUIC packet pacing.
Compares kernel-assisted and user-space pacing approaches in QUIC.
Innovation

Methods, ideas, or system contributions that make the work stand out.

Evaluates QUIC pacing across quiche, picoquic, ngtcp2
Uses custom framework with optical tap for measurements
Extends kernel patch for GSO buffer pacing precision
🔎 Similar Papers
No similar papers found.
M
Marcel Kempf
Technical University of Munich, Germany
S
Simon Tietz
Technical University of Munich, Germany
B
Benedikt Jaeger
Technical University of Munich, Germany
J
Johannes Spath
Technical University of Munich, Germany
Georg Carle
Georg Carle
Technische Universität München
NetworkingInternet SecurityInternet ArchitectureInternet MeasurementsNetwork Management
Johannes Zirngibl
Johannes Zirngibl
Max Planck Institute for Informatics