< Back to previous page

Publication

Debugging Modern Web Protocols

Book - Dissertation

Today, the Internet plays a key part in our lives. Billions of people visit even more Web pages on a daily basis to consume information from and contribute it to the ever growing Web. The speed with which these pages load can have a profound impact on their users' experience and subsequent behaviour. Firstly, slow page loads might lead to user frustration, abandoned sessions, less frequent visits and, ultimately, reduced revenue. Secondly, Web performance can be defined as an accessibility and equality issue, as timely access to online educational, medical, navigational, or even legal information can have a large social impact. It is thus no wonder that Web performance is a hot topic, both in industry and academia. The Web page loading process and its efficiency is tightly linked to the network protocols used to transport the page's resources, such as IP, TCP, QUIC, TLS, and HTTP. Consequently, even today a large amount of time and energy continues to be put into improving the performance of key protocols and into the development of new ones. These upgrades have rarely been trivial however, and have come at the cost of a growing complexity, making the advanced protocols, their features and potential alternatives hard to design, implement, analyze, debug, test, compare, teach, deploy, and use correctly in practice. This text tracks our efforts on tackling these challenges as they occurred for the past five years in the rapid evolution from the older HTTP/1.1 via HTTP/2 to the most recent HTTP/3 and QUIC protocols. During this time we have been actively involved with the Internet Engineering Task Force (IETF), in charge of designing and maintaining these protocols, and much of our work has found real-world impact. In this work, we firstly examine the behaviour and impact of the various performance features and problems of the protocols, including Head-of-Line Blocking, prioritization, 0-RTT connection establishment, and congestion and flow control. We validate both their core designs and a variety of concrete implementations using extensive empirical evaluations. We uncover a wide range of issues and detail their root causes, as well as potential solutions. We find that, contrary to popular belief, HTTP/2 and HTTP/3 do not magically obviate the need for developers to apply the same manual page composition and deployment tweaks that were needed since HTTP/1.1. One example of a key feature we explore in depth is that of resource multiplexing and prioritization, which governs in which order page resources are transmitted. We observe that HTTP/2's approach to this feature is difficult to utilize correctly and that its recommended default scheme, as implemented by several browsers, actually exhibits worst-case performance. Our subsequent exploration of better alternatives has directly contributed to the feature being completely redesigned for its HTTP/3 successor. The second major contribution of this work are the tools and methodologies we have developed to aid in analyzing these protocols. Strangely, despite the complexity and importance of their performance features, we found a general dearth of tools and visualizations aimed at measuring, diagnosing, and improving their low-level behaviours. In support of our need to compare various competing schemes and designs, as well as to debug fledgling implementations, we have created a wide array of such tools ourselves. Main among them is the qlog structured endpoint logging format, which allows encrypted protocols such as QUIC to expose deep protocol and implementation state in a privacy-aware fashion. This information can then be analyzed using our qvis toolsuite, a collection of advanced interactive visualizations including sequencing, congestion control, multiplexing, and packetization diagrams. These projects have found a wide adoption within the QUIC and HTTP/3 community, with over 70% of implementations supporting the format, including those of Facebook and Cloudflare who utilize our work to fine-tune their production deployments of the new protocols. In summary, this text discusses an in-depth exploration of the performance features and characteristics of both the HTTP/2+TLS+TCP and HTTP/3+QUIC protocol stacks. It details our process in creating and using custom tools and methodologies to perform these analyses, as well as discusses the obtained insights, both of which have helped steer the design and practical implementations of these new networking protocols.
Number of pages: 334
Publication year:2020
Keywords:Web performance, Network protocols, QUIC, HTTP/3, HTTP/2, qlog, qvis, debugging tools, information visualization, IETF
Accessibility:Embargoed