Online / 6 & 7 February 2021

schedule

Analysing QUIC and HTTP/3 traffic with qlog and qvis


The new QUIC and HTTP/3 protocols are finally here! With their standardization at the IETF almost complete and several mature implementations being deployed, we can start looking into which performance improvements they bring in practice. There's just one problem though: they're quite complex and difficult to test. Using high level tooling like lighthouse might show that they're faster or slower, but rarely why.

But problems are there to be solved, and that's what I've been doing for the past 2 years with the qlog and qvis projects. The qlog structured endpoint logging format (https://github.com/quiclog/internet-drafts) is supported by over 70% of all QUIC implementations and allows you to extract low-level protocol information in JSON directly from the client and server. These traces can then be loaded for analysis in different interactive visualizations in our open-source qvis toolsuite (https://qvis.edm.uhasselt.be). This brings an unparalleled opportunity to analyze performance problems and opportunities to the new protocols, as these tools start where the browser devtools end.

In this talk, we will explore QUIC and HTTP/3's main performance oriented features, such as 0-RTT connection establishment, advanced congestion and flow control, stream multiplexing and prioritization, and Head-of-Line blocking removal in-depth. We discuss how they are supposed to work, why it's not always that easy in practice, and of course: how to diagnose issues with these features using qlog and qvis. We will use concrete examples of bugs found in major implementations to teach how to interpret the behavior of these new protocols, based on some of our research (https://qlog.edm.uhasselt.be/epiq).

We explain how to properly approach testing the new protocols in the future, as great care should be taken in interpreting any results and their root causes. Along the way we debunk some common misconceptions on the protocols and their potential improvements (no, the fact that QUIC runs on top of UDP does not mean it no longer needs congestion control or magically becomes faster, no matter what that Hackernews commenter claims).

Speakers

Photo of Robin Marx Robin Marx

Links