Same Standards, Different Decisions: A Study of QUIC and HTTP/3 Implementation Diversity - EPIQ2020
Abstract:The QUIC and HTTP/3 protocols are quickly maturing together with their implementations, though many of their low-level behaviours are not yet well-understood. To help alleviate this, we empirically compare 15 IETF QUIC/H3 implementations for advanced features like Flow and Congestion Control, 0-RTT, Multiplexing, and Packetization. We find a large heterogeneity between stacks, discuss uncovered bugs and conclude that most implementations are not fully optimized or validated yet. We argue that future work must prioritize rigorous root-cause analysis of observed behaviours, and show this is possible by employing the qlog and qvis tools.
Content:- Paper
- Presentation: slides, video
- qlog: specifications, original paper @ EPIQ 2018
- qvis: live version, github repository
- Custom aioquic version used to obtain most QUIC results: source code
Results
- Flow control behaviour
- Congestion control behaviour
- Packetization behaviour
- 0RTT behaviour
- Client-side transport parameters, server-side transport parameters, ACK behaviour, packet number spaces, packet coalescing, NEW_TOKEN, PMTUD