Abstract
Modern versions of the HTTP protocol, such as HTTP/2 over TCP and the upcoming HTTP/3 over QUIC, use just a single underlying connection to transfer multiple resources during a web page load. The resources are divided into chunks, optionally multiplexed on the connection, and reassembled at the receiver’s side. This poses challenges, as there are many different ways simultaneously requested resources can share the available bandwidth, and not all approaches perform equally well with regards to achieving low loading times. Making matters worse, HTTP/2’s prioritization system for directing this multiplexing behaviour is difficult to use and does not easily transfer to the new HTTP/3.
In this work, we discuss these challenges in detail and empirically evaluate the multiplexing behaviours of 10 different QUIC implementations, as well as 11 different prioritization schemes for HTTP/3. We find that there are large differences between strategies that can have a heavy impact on page load performance, of up to 5x load time speedup in specific conditions. However, these improvements are highly context-sensitive, depending on web page composition and network conditions, turning the best performers for one setup into the worst for others. As such, we also critically evaluate the ability of the newly proposed HTTP/3 prioritization mechanism to flexibly deal with changing conditions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
References
Bocchi, E., De Cicco, L., Rossi, D.: Measuring the quality of experience of web users. In: Proceedings of the 2016 Workshop on QoE-based Analysis of Data Communication Networks, Internet-QoE 2016, pp. 37–42. ACM (2016)
Davies, A., Meenan, P.: HTTP/2 priorities test page. https://github.com/andydavies/http2-prioritization-issues. Accessed Dec 2018
De Coninck, Q., et al.: Pluginizing QUIC. In: Proceedings of the ACM Special Interest Group on Data Communication, pp. 59–74. ACM (2019)
Iyengar, J., Thomson, M.: QUIC: A UDP-based multiplexed and secure transport. Internet-Draft 24, IETF Secretariat, November 2019. http://www.ietf.org/internet-drafts/draft-ietf-quic-transport-24
Oku, K., Pardue, L.: Extensible Prioritization Scheme for HTTP. https://github.com/httpwg/http-extensions/blob/master/draft-ietf-httpbis-priority.md. Accessed Dec 2019
Marx, R., De Decker, T., Quax, P., Lamotte, W.: Of the utmost importance: resource prioritization in HTTP/3 over QUIC. In: Proceedings of the 15th International Conference on Web Information Systems and Technologies: WEBIST, pp. 130–143. INSTICC, SciTePress (2019)
Netravali, R., Goyal, A., Mickens, J., Balakrishnan, H.: Polaris: faster page loads using fine-grained dependency tracking. In: Proceedings of the 13th USENIX Conference on Networked Systems Design and Implementation, NSDI 2016, pp. 123–136, March 2016
Meenan, P.: Optimizing HTTP/2 prioritization with BBR and tcp\_notsent\_lowat. https://blog.cloudflare.com/http-2-prioritization-with-nginx. Accessed Oct 2018
Meenan, P.: HTTP/2 priorities test page. https://blog.cloudflare.com/better-http-2-prioritization-for-a-faster-web. Accessed Mar 2019
Meenan, P.: HTTP/3 prioritization proposal. https://github.com/pmeenan/http3-prioritization-proposal. Accessed Feb 2019
RFC7540: HTTP/2. https://tools.ietf.org/html/rfc7540. Accessed May 2015
Marx, R.: qlog logging format. https://github.com/quiclog/internet-drafts. Accessed Oct 2019
Marx, R., De Decker, T.: Quicker: TypeScript QUIC and HTTP/3 implementation. https://github.com/rmarx/quicker. Accessed June 2019
Ruamviboonsuk, V., Netravali, R., Uluyol, M., Madhyastha, H.V.: Vroom: accelerating the mobile web with server-aided dependency resolution. In: Proceedings of the ACM SIG on Data Communication, pp. 390–403. ACM (2017)
SPDY: SPDY Protocol (2014). https://www.chromium.org/spdy/spdy-protocol
Swett, I., Marx, R.: IETF QUIC interim: HTTP/3 priorities status update. https://github.com/quicwg/wg-materials/blob/master/interim-19-05/priorities.pdf. Accessed May 2019
Wang, X.S., Balasubramanian, A., Krishnamurthy, A., Wetherall, D.: Demystifying page load performance with WProf. In: Proceedings of the USENIX Conference on Networked Systems Design and Implementation, NSDI 2013, pp. 473–486, April 2013
Wang, X.S., Krishnamurthy, A., Wetherall, D.: Speeding up web page loads with Shandian. In: Proceedings of the 13th USENIX Conference on Networked Systems Design and Implementation, NSDI 2016, pp. 109–122, March 2016
Wijnants, M., Marx, R., Quax, P., Lamotte, W.: HTTP/2 prioritization and its impact on web performance. In: Proceedings of the 2018 World Wide Web Conference, WWW 2018, pp. 1755–1764. ACM (2018). https://doi.org/10.1145/3178876.3186181
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Marx, R., De Decker, T., Quax, P., Lamotte, W. (2020). Resource Multiplexing and Prioritization in HTTP/2 over TCP Versus HTTP/3 over QUIC. In: Bozzon, A., Domínguez Mayo, F.J., Filipe, J. (eds) Web Information Systems and Technologies. WEBIST 2019. Lecture Notes in Business Information Processing, vol 399. Springer, Cham. https://doi.org/10.1007/978-3-030-61750-9_5
Download citation
DOI: https://doi.org/10.1007/978-3-030-61750-9_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-61749-3
Online ISBN: 978-3-030-61750-9
eBook Packages: Computer ScienceComputer Science (R0)