Debugging Modern Web Protocols

Total Page:16

File Type:pdf, Size:1020Kb

Debugging Modern Web Protocols Debugging Modern Web Protocols Doctoral Thesis robin marx Hasselt University, 2016 – 2020 This thesis was made possible due to personal Strategic Basic Research grant #1S02717N from FWO, Research Foundation Flanders. Abstract 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 empiri- cal 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 composi- tion and deployment tweaks that were needed since HTTP/1.1. One example of a key ii 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 fea- tures 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. Acknowledgements During the past five years, much of my time has been dedicated to two similar and parallel efforts. Firstly, during the working hours, I shaped the text that you see before you. Secondly, in my free time, I shaped myself by practicing longsword fencing and Historical European Martial Arts. The latter was done at our club called Invirtus, which has laid claim to the motto “Aut Viam Inveniam, Aut Faciam”. This phrase, freely translated as “I will find a way or I will make one” is attributed to the warlord Hannibal, prior to his traversal of the Alps. Looking back, this sentence seems highly applicable to both activities. In both endeavours, I have made a similar progression, starting as a wide-eyed student and ending as a teacher who knows his journey is only just beginning. Similarly, while the two undertakings encompass an inherently personal process, they cannot be executed without the help and support of like-minded individuals, friends, and family. Smiling while doing push-ups in the mud on a rainy Sunday afternoon would not have been possible without the camaraderie of the many excellent people I have met during my time at Invirtus. Similarly, my academic efforts have been supported by many who have helped me find and make a way through my own Alps. Firstly, my family. My partner Deborah, who was given many a chance to perfect her eye-rolling skills. My parents, Robert and Carinne, who’s eyes continue to glitter with pride even though they probably have no idea what I’m talking about. My sister Jill, who turns a blind eye to me being a terrible brother by being a great sister. Secondly, the Rhinos. Jens, Pallieter, Jimmy, Boutsen, Steven, Nick, Jan, and Wouter who have provided me with much needed entertainment, advice, support, and friend- ship since starting our Computer Science studies together. Thirdly, my colleagues. Maarten, who has guided me since I annoyed him as an intern all those years ago. Wouter, who always had an interesting out-of-the-box perspective. Joris, who is both a great student and collaborator. Jori, Mariano, Pieter, Hendrik, and others at the EDM who kindly didn’t tell me to bugger off. Fourthly, my bachelor and masterthesis students. Daan, Jonas, Kevin, Tom, Sven, Sander, and Axel all contributed directly and significantly to this work, some even multiple times. It has been my privilege to teach them and learn from them in turn. iv Fifthly, my fellow protocol researchers and my Jury. Törsten and Felix who were excellent company. Oliver and Bala who made me feel knowledgeable. Olivier and Lars who showed that kindness can be found behind a stern appearance. Sixthly, the large group of people in the Web performance and IETF QUIC communi- ties. Lucas, Matt, Marten, Jeremy, Dmitri, Nick, Mirja, Christian, Maxime, Quentin, Ian, Eric, Kazuho, David, Alessandro, Junho, Subodh, Peter, other Peter, Alexis, Tatsuhiro, Kazu, Daniel, James, Rui, Will, Andy, Alex, Brian, Craig, Victor, Jana, Martin, Martin again, Patrick, Andy, Barry, Yoav, and the many others who I did not list. Without you all, this result would not have been possible. Seventhly, my promoters. Peter and Wim, who have given me an enormous amount of opportunities. Thank you for taking me aboard and seeing my potential. Finally, the FWO, Research Foundation Flanders, and all Belgian tax payers. For assigning me project nr. #1S02717N and making sure I didn’t go hungry. It has been a privilege and an honor to go on this journey with you all. To both find and make my way towards this end result. To earn the right to be a Doctor. Aut Viam Inveniam, Aut Faciam Contents Abstract i Acknowledgments iii Contents v I Introduction 1 1 Web Performance 9 1.1 What Is the Importance of Web Performance? ............... 9 1.2 The Web Page Load Process ......................... 13 1.2.1 Resource Semantics .......................... 13 1.2.2 Resource Scheduling ......................... 15 1.2.3 Related Work .............................. 16 1.3 Web Performance Evaluation ......................... 18 1.3.1 Objective Metrics ........................... 18 1.3.2 Correlation of Subjective and Objective Metrics .......... 20 2 About HTTP/2, HTTP/3 and QUIC 23 2.1 The Need for New Protocols ......................... 24 2.1.1 Head-of-Line Blocking ........................ 25 2.1.2 Ossification and Security ....................... 29 2.1.3 Conclusion ............................... 31 2.2 Stream Multiplexing and Prioritization ................... 32 2.2.1 HTTP/2’s Dependency Tree ..................... 33 2.2.2 HTTP/2 Prioritization Challenges .................. 35 2.3 Other Performance Related Features ..................... 37 2.3.1 Binary Framing ............................ 38 2.3.2 QUIC Connection Establishment and 0-RTT ............ 39 2.3.3 QUIC Congestion Control ...................... 41 2.3.4 Flow Control .............................. 42 vi CONTENTS 2.3.5 QUIC Connection Migration and Multipath ............ 43 2.3.6 HTTP Server Push ........................... 44 2.3.7 HTTP Header Compression ..................... 46 3 Focus of this Thesis 49 3.1 Contributions ................................. 49 3.2 Structure of the Text .............................. 51 II HTTP/2 Tools 53 4 Speeder and Oracle 57 4.1 Speeder: Backend and Testrunner ...................... 57 4.1.1 Speeder Details ............................ 58 4.1.2 Limitations and Related Work ...................
Recommended publications
  • Transport Area Working Group M. Amend Internet-Draft Deutsche Telekom Intended Status: Experimental A
    Transport Area Working Group M. Amend Internet-Draft Deutsche Telekom Intended status: Experimental A. Brunstrom Expires: January 9, 2020 A. Kassler Karlstad University V. Rakocevic City University of London July 08, 2019 Lossless and overhead free DCCP - UDP header conversion (U-DCCP) draft-amend-tsvwg-dccp-udp-header-conversion-01 Abstract The Datagram Congestion Control Protocol (DCCP) is a transport-layer protocol that provides upper layers with the ability to use non- reliable congestion-controlled flows. DCCP is not widely deployed in the Internet, and the reason for that can be defined as a typical example of a chicken-egg problem. Even if an application developer decided to use DCCP, the middle-boxes like firewalls and NATs would prevent DCCP end-to-end since they lack support for DCCP. Moreover, as long as the protocol penetration of DCCP does not increase, the middle-boxes will not handle DCCP properly. To overcome this challenge, NAT/NATP traversal and UDP encapsulation for DCCP is already defined. However, the former requires special middle-box support and the latter introduces overhead. The recent proposal of a multipath extension for DCCP further underlines the challenge of efficient middle-box passing as its main goal is to be applied over the Internet, traversing numerous uncontrolled middle-boxes. This document introduces a new solution which disguises DCCP during transmission as UDP without requiring middle-box modification or introducing any overhead. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF).
    [Show full text]
  • TSVWG G. Fairhurst Internet-Draft University of Aberdeen Intended Status: Informational C
    TSVWG G. Fairhurst Internet-Draft University of Aberdeen Intended status: Informational C. Perkins Expires: August 3, 2020 University of Glasgow January 31, 2020 Considerations around Transport Header Confidentiality, Network Operations, and the Evolution of Internet Transport Protocols draft-ietf-tsvwg-transport-encrypt-11 Abstract To protect user data and privacy, Internet transport protocols have supported payload encryption and authentication for some time. Such encryption and authentication is now also starting to be applied to the transport protocol headers. This helps avoid transport protocol ossification by middleboxes, while also protecting metadata about the communication. Current operational practice in some networks inspect transport header information within the network, but this is no longer possible when those transport headers are encrypted. This document discusses the possible impact when network traffic uses a protocol with an encrypted transport header. It suggests issues to consider when designing new transport protocols, to account for network operations, prevent network ossification, enable transport evolution, and respect user privacy. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on August 3, 2020.
    [Show full text]
  • Improving Secure Connection Establishment
    Improving Secure Connection Establishment Networked Systems (H) – Lecture 4 2019-2020 Colin Perkins | https://csperkins.org/ | Copyright © 2020 University of Glasgow | This work is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. Lecture Outline • Limitations of TLS v1.3 • Slow Connection Establishment • Metadata Leakage • Protocol Ossification • QUIC Transport Protocol • Performance, security, and avoiding ossification • Unified protocol handshake • Reliable multi-streaming transport Colin Perkins | https://csperkins.org/ | Copyright © 2020 University of Glasgow 2 • Slow Connection Establishment Limitations of TLS v1.3 • Metadata Leakage • Protocol Ossification Colin Perkins | https://csperkins.org/ | Copyright © 2020 University of Glasgow 3 Limitations of TLS v1.3 • TLS v1.3 is a tremendous success • Some significant security improvements when compared to TLS v1.2 • Removed support for older and less secure encryption and key exchange algorithms • Removed support for secure algorithms that have proven difficult to implement correctly • Some performance improvements to the initial handshake and with 0-RTT mode • Despite this, TLS v1.3 has some limitations that are hard to fix • Connection establishment is still relatively slow • Connection establishment leaks potentially sensitive metadata • The protocol is ossified due to middlebox
    [Show full text]
  • TSVWG A. Ferrieux, Ed. Internet-Draft I. Hamchaoui, Ed. Intended Status: Informational Orange Labs Expires: January 29, 2021 I
    TSVWG A. Ferrieux, Ed. Internet-Draft I. Hamchaoui, Ed. Intended status: Informational Orange Labs Expires: January 29, 2021 I. Lubashev, Ed. Akamai Technologies D. Tikhonov, Ed. LiteSpeed Technologies July 28, 2020 Packet Loss Signaling for Encrypted Protocols draft-ferrieuxhamchaoui-tsvwg-lossbits-03 Abstract This document describes a protocol-independent method that employs two bits to allow endpoints to signal packet loss in a way that can be used by network devices to measure and locate the source of the loss. The signaling method applies to all protocols with a protocol- specific way to identify packet loss. The method is especially valuable when applied to protocols that encrypt transport header and do not allow an alternative method for loss detection. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on January 29, 2021. Copyright Notice Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust’s Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of Ferrieux, et al.
    [Show full text]
  • Transport Area Working Group M. Amend Internet-Draft Deutsche Telekom Intended Status: Experimental A
    Transport Area Working Group M. Amend Internet-Draft Deutsche Telekom Intended status: Experimental A. Brunstrom Expires: January 9, 2020 A. Kassler Karlstad University V. Rakocevic City University of London July 08, 2019 Lossless and overhead free DCCP - UDP header conversion (U-DCCP) draft-amend-tsvwg-dccp-udp-header-conversion-01 Abstract The Datagram Congestion Control Protocol (DCCP) is a transport-layer protocol that provides upper layers with the ability to use non- reliable congestion-controlled flows. DCCP is not widely deployed in the Internet, and the reason for that can be defined as a typical example of a chicken-egg problem. Even if an application developer decided to use DCCP, the middle-boxes like firewalls and NATs would prevent DCCP end-to-end since they lack support for DCCP. Moreover, as long as the protocol penetration of DCCP does not increase, the middle-boxes will not handle DCCP properly. To overcome this challenge, NAT/NATP traversal and UDP encapsulation for DCCP is already defined. However, the former requires special middle-box support and the latter introduces overhead. The recent proposal of a multipath extension for DCCP further underlines the challenge of efficient middle-box passing as its main goal is to be applied over the Internet, traversing numerous uncontrolled middle-boxes. This document introduces a new solution which disguises DCCP during transmission as UDP without requiring middle-box modification or introducing any overhead. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF).
    [Show full text]
  • Mobile Video Optimization and Impact of Encryption
    TABLE OF CONTENTS Executive Summary ...................................................................................................................................... 4 Introduction ................................................................................................................................................... 4 Mobile Video Optimization Techniques ......................................................................................................... 6 Source Optimization ...................................................................................................................................... 7 Adaptive Bit Rate Techniques and Challenges............................................................................................. 7 Video Compression Techniques ................................................................................................................... 8 Network Optimization .................................................................................................................................... 9 TCP Optimization .......................................................................................................................................... 9 Mobile Network-Aware Congestion Control Algorithms .............................................................................. 10 Data Caching .............................................................................................................................................. 10 Radio-Friendly Video Pacing......................................................................................................................
    [Show full text]
  • Even Lower Latency in Iiot: Evaluation of QUIC in Industrial Iot Scenarios †
    sensors Article Even Lower Latency in IIoT: Evaluation of QUIC in Industrial IoT Scenarios † Fátima Fernández 1,*, Mihail Zverev 1, Pablo Garrido 1, José R. Juárez 1, Josu Bilbao 1 and Ramón Agüero 2 1 Ikerlan Technology Research Centre, Basque Research Technology Alliance (BRTA), 20500 Arrasate/Mondragón, Spain; [email protected] (M.Z.); [email protected] (P.G.); [email protected] (J.R.J.); [email protected] (J.B.) 2 Department of Communication Engineering, University of Cantabria, 39005 Santander, Spain; [email protected] * Correspondence: [email protected] † This paper is an extended version of our paper published in the 16th International Conference on Wireless and Mobile Computing, Networking and Communications, WiMob 2020, Thessaloniki, Greece, 16 November 2020. Abstract: In this paper we analyze the performance of QUIC as a transport alternative for Internet of Things (IoT) services based on the Message Queuing Telemetry Protocol (MQTT). QUIC is a novel protocol promoted by Google, and was originally conceived to tackle the limitations of the traditional Transmission Control Protocol (TCP), specifically aiming at the reduction of the latency caused by connection establishment. QUIC use in IoT environments is not widespread, and it is therefore interesting to characterize its performance when in over such scenarios. We used an emulation- based platform, where we integrated QUIC and MQTT (using GO-based implementations) and compared their combined performance with the that exhibited by the traditional TCP/TLS approach. We used Linux containers as end devices, and the ns-3 simulator to emulate different network Citation: Fernández, F.; Zverev, M.; technologies, such as WiFi, cellular, and satellite, and varying conditions.
    [Show full text]
  • The Changing Internet
    The Changing Internet Networked Systems (H) – Lecture 1 2019-2020 Colin Perkins | https://csperkins.org/ | Copyright © 2020 University of Glasgow | This work is licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. Lecture Outline • Administrivia • Review of the traditional Internet architecture • The changing Internet Colin Perkins | https://csperkins.org/ | Copyright © 2020 University of Glasgow 2 Administrivia Colin Perkins | https://csperkins.org/ | Copyright © 2020 University of Glasgow 3 Course Coordinator • Lecturer and course coordinator • Dr Colin Perkins • [email protected] • https://csperkins.org/ • Office hours: • Thursday 13:00-14:00 – S101b Lilybank Gardens Colin Perkins | https://csperkins.org/ | Copyright © 2020 University of Glasgow 4 Course Materials • Lecture notes and other material on online: • https://csperkins.org/teaching/2019-2020/networked-systems/ (or on the School’s Moodle site) • Paper handouts and lecture recordings will not be provided • The act of taking notes helps learning • The act of revising by reviewing your notes and other textbooks gives a useful additional perspective on the material, helps you understand the topic in depth • Lecture recordings discourage questions – it’s already hard enough to ask a question in a large lecture theatre, but still harder when you know it’s being recorded
    [Show full text]
  • An Exhaustive Survey on P4 Programmable Data Plane Switches: Taxonomy, Applications, Challenges, and Future Trends
    Date of publication xxxx 00, 0000, date of current version xxxx 00, 0000. Digital Object Identifier 10.1109/ACCESS.2017.DOI An Exhaustive Survey on P4 Programmable Data Plane Switches: Taxonomy, Applications, Challenges, and Future Trends ELIE F. KFOURY1, (Student Member, IEEE), JORGE CRICHIGNO1, (Member, IEEE) AND ELIAS BOU-HARB2, (Member, IEEE) 1College of Engineering and Computing, University of South Carolina, Columbia, SC 29201 USA (e-mail: [email protected], [email protected]) 2The Cyber Center For Security and Analytics, University of Texas at San Antonio, TX 78249 USA, CO 80523 USA (e-mail: [email protected]) Corresponding author: Elie F. Kfoury (e-mail: [email protected]). This material is based upon work supported by the National Science Foundation under grant numbers 1925484 and 1829698, funded by the Office of Advanced Cyberinfrastructure (OAC). ABSTRACT Traditionally, the data plane has been designed with fixed functions to forward packets using a small set of protocols. This closed-design paradigm has limited the capability of the switches to proprietary implementations which are hard-coded by vendors, inducing a lengthy, costly, and inflexible process. Recently, data plane programmability has attracted significant attention from both the research community and the industry, permitting operators and programmers in general to run customized packet processing functions. This open-design paradigm is paving the way for an unprecedented wave of innovation and experimentation by reducing the time of designing, testing, and adopting new protocols; enabling a customized, top-down approach to develop network applications; providing granular visibility of packet events defined by the programmer; reducing complexity and enhancing resource utilization of the programmable switches; and drastically improving the performance of applications that are offloaded to the data plane.
    [Show full text]