ACM SIGCOMM 2020 Tutorial on the QUIC Protocol
Tutorial Program (subject to changes)
Monday, August 10, 2020
1:30 pm - 3:00 pm Session I
- Session I
1:30 pm - 3:00 pm
QUIC's history and overview; Connection IDs, handshake, connection migration.
Hands-on: Using QUIC tooling -- wireshark, quictrace.
3:00 pm - 3:30 pm Coffee/tea Break
- Coffee/tea Break
3:30 pm - 5:00 pm Session II
- Session II
3:30 pm - 5:00 pm
QUIC's loss recovery and congestion control.
Hands-on: Implement a QUIC application using quicly (C) and quiche (C++); Implement a congestion controller.
Call For Participation
QUIC is a new transport protocol that has been under development at the IETF and in various companies, and it is about to see extensive deployment across the Internet. This tutorial will present the protocol, demonstrate how to work with example production implementations, and discuss opportunities for academic groups that might want to work on various aspects of QUIC.
August 10, 2020
Over the past 7 years, QUIC has progressed from an in-house experiment at Google to an almost complete Internet standard at the IETF. It is the basis for HTTP/3, and it is slated to become a significant portion of Internet traffic soon. This tutorial attempts to bring participants up to speed with the history of QUIC, its current state of development and deployment, and an understanding of what's coming.
This will be a half-day tutorial, with presentation and discussion as well as hands-on components. Our goal is twofold: (i) to discuss enough topics so that attendees leave with an understanding of core mechanisms in QUIC that they might continue exploring, using, or analyzing; and (ii) to give enough of a jump-start so that participants leave empowered to build new applications and new congestion controllers for QUIC. A rough outline follows:
Session I In the first session, we will introduce QUIC, its history, discuss its features and an abstract API. We will discuss some aspects of the protocol in some detail, including the handshake, header encryption, and connection migration. The hands-on part of this session will showcase QUIC tooling: Wireshark, quictrace (and if possible, qlog).
Session II In the second session, we will discuss QUIC's loss recovery and congestion control, and a high-level overview of QUIC extensions. In the hands-on part of this session we will walk participants through an example application written for QUIC using the quicly (C) and quiche (C++) libraries. Time permitting, we will go through the congestion control API of these libraries and build an example controller for them. We will leave about 30 minutes for open discussion at the end.
Audience Expectations and Prerequisites
Anyone with basic understanding of transport can participate in this tutorial. In order to benefit from the hands-on, they are asked to bring they own laptop with gcc installed. More specific instructions TBD.
Jana is a Distinguished Engineer at Fastly, working on networking performance, including building, deploying, and measuring QUIC, TCP, and congestion control. He is an editor of the QUIC standards documents at the IETF. He chairs the IRTF's Internet Congestion Control Research Group and engages in IETF standards development. Before Fastly, he was a Software Engineer at Google, working on QUIC, BBR, and other networking projects. In a past life, he was an Associate Professor at Franklin & Marshall College, where he taught computer science and worked on various Internet architecture and transport projects.
Ian Swett is a Staff Engineer at Google, where he leads the QUIC team and works on other networking projects, including BBR. He is an editor of the QUIC standards documents at the IETF.
[Lan+17] A. Langley et al. "The QUIC Transport Protocol: Design and Internet-Scale Deployment". In: Proceedings of the Conference of the ACM Special Interest Group on Data Communication - SIGCOMM ’17. Los Angeles, CA, USA: ACM Press, 2017, pp. 183–196.
[QUIC-ID] J. Iyengar and M. Thomson. QUIC: A UDP-Based Multiplexed and Secure Transport. Internet-Draft draft-ietf-quic-transport-27. IETF Secretariat, Feb. 2020. https://datatracker.ietf.org/doc/draft-ietf-quic-transport/
[QUIC-wg] QUIC. https://datatracker.ietf.org/wg/quic/about/
[QUIC-impl] Implementations. https://github.com/quicwg/base-drafts/wiki/Implementations