Finally, note that if we indeed want clients to sup-
port a wide array of schemes, this will probably only
be possible using a flexible underlying system, such
as the dependency tree setup. The high flexibility
is probably well worth the added complexity in the
long run. Additionally, as most H2 implementations
already support this more flexible base framework,
our proposed approach of multiple schemes per client
could be recommended and implemented for existing
H2 stacks as well. Note that this proposal does limit
the options for the combination of client and server-
side prioritization. As discussed in Section 3.3, in
such a flexible system it is difficult to infer the client’s
semantics, especially if it is now choosing between
multiple schemes. However, we feel that this is an in-
herent problem of how we communicate priority in-
formation from the client to the server at the moment.
To make proper client and server-side combinations
possible, the client would need to send additional
metadata (e.g., if a resource is critical, render/parser-
blocking, can be processed incrementally, etc. (Sec-
tion 2.1)), rather than/next to building a dependency
tree directly. As this is a heavy departure from H2,
this approach is unlikely to make it into H3, but it
is worth further investigation. For now, we remark
that server-side directives can also be communicated
to the client, allowing it to apply them properly at
client-side while building the tree, as opposed to the
server changing the tree. This is the route taken by
the aforementioned Priority Hints proposal, and fits
nicely with our proposal of having the server send the
client its preferred scheme.
As our general conclusion, we recommend to the
QUIC working group to remain with the existing H2
dependency tree system and to possibly even extend
it with new capabilities. The provided flexibility is,
in our opinion, well worth the additional implementa-
tion complexity. Future work can assess QUIC’s ac-
tual HOL-blocking resilience on lossy networks, look
at the dynamics of cross-connection or multipath pri-
oritization, discuss new forms of PRIORITY meta-
data from client to server and implement a proof-of-
concept of the proposed ‘optimal scheme finder’.
ACKNOWLEDGEMENTS
Robin Marx is a SB PhD fellow at FWO, Research
Foundation Flanders, #1S02717N.
REFERENCES
Bocchi, E., De Cicco, L., and Rossi, D. (2016). Measur-
ing the quality of experience of web users. In Pro-
ceedings of the 2016 Workshop on QoE-based Anal-
ysis of Data Communication Networks, Internet-QoE
’16, pages 37–42. ACM.
Davies, A. and Meenan, P. (2018). HTTP/2 priorities test
page. Online, https://github.com/andydavies/http2-
prioritization-issues.
Goel, U., Steiner, M., Wittie, M. P., Ludin, S., and Flack,
M. (2017). Domain-sharding for faster http/2 in lossy
cellular networks. arXiv preprint arXiv:1707.05836.
Langley, A. e. a. (2017). The quic transport protocol: De-
sign and internet-scale deployment. In Proceedings
of the Conference of the ACM Special Interest Group
on Data Communication, SIGCOMM ’17, pages 183–
196. ACM.
Netravali, R., Goyal, A., Mickens, J., and Balakrishnan,
H. (2016). Polaris: Faster Page Loads Using Fine-
grained Dependency Tracking. In Proceedings of the
13th USENIX Conference on Networked Systems De-
sign and Implementation, NSDI’16, pages 123–136.
Patrick Meenan (2018). Optimizing HTTP/2 prioritiza-
tion with BBR and tcp notsent lowat. Online, https://
blog.cloudflare.com/http-2-prioritization-with-nginx.
Patrick Meenan (2019a). HTTP/2 priorities test
page. Online, https://blog.cloudflare.com/better-http-
2-prioritization-for-a-faster-web.
Patrick Meenan (2019b). HTTP/3 prioritization pro-
posal. Online, https://github.com/pmeenan/http3-
prioritization-proposal.
RFC7540 (2015). HTTP/2. Online, https://tools.ietf.org/
html/rfc7540.
Robin Marx, Tom De Decker (2019). Quicker: TypeScript
QUIC and HTTP/3 implementation. Online, https://
github.com/rmarx/quicker.
Ruamviboonsuk, V., Netravali, R., Uluyol, M., and Mad-
hyastha, H. V. (2017). Vroom: Accelerating the mo-
bile web with server-aided dependency resolution. In
Proc. of the ACM SIG on Data Communication, pages
390–403. ACM.
SPDY (2014). SPDY Protocol. Online, https://
www.chromium.org/spdy/spdy-protocol.
Wang, X. S., Balasubramanian, A., Krishnamurthy, A., and
Wetherall, D. (2013). Demystifying Page Load Per-
formance with WProf. In Proceedings of the USENIX
Conference on Networked Systems Design and Imple-
mentation, NSDI’13, pages 473–486.
Wang, X. S., Krishnamurthy, A., and Wetherall, D. (2016).
Speeding Up Web Page Loads with Shandian. In
Proc. of the 13th USENIX Conference on Networked
Systems Design and Implementation, NSDI’16, pages
109–122.
Wijnants, M., Marx, R., Quax, P., and Lamotte, W. (2018).
Http/2 prioritization and its impact on web perfor-
mance. In Proceedings of the 2018 World Wide Web
Conference, WWW ’18, pages 1755–1764. ACM.
Of the Utmost Importance: Resource Prioritization in HTTP/3 over QUIC
143