5. HTTP/2 AdptionRate
Source: HTTP/2 Adoption Dashboard (maintained by Telefónica Research, Case Western Reserve University,
and Carnegie Mellon University
6. HTTP/3 Timeline
• 2014 - Google deploys HTTP/2 over UDP. Calls it “QUIC”.
• November 2016 - Google takes QUIC to IETF. QUIC working group forms. Turned
into a Transport protocol.
• June 2018 - Google implements custom QUIC.
• November 2018
• Litespeed and Facebook test first functional HTTP/3 web server
• IETF changes the name for HTTP-over-QUIC to be HTTP/3
• April 2019 - Cloudflare releases Warp VPN based on QUIC draft
• July 2019 - HTTP/3 Draft expires at IETF
• August 2019 - Chromium fork released. Initial support for end-to-end iQUIC +
HTTP/3
• September 2019 - cURL, NGINX, Google Chrome show early HTTP/3 support
6
9. WAIT....
Wasn't HTTP/2 multiplexing supposed to solve Head of Line Blocking?
HTTP level = YES. TCP level = NO.
Latency and Dropped Packets Expose This Problem.
QUIC is an attempt to fix it all once and for all...
11. QLOG
11
• Log for QUIC and HTTP/3 events
• JSON Format
• Allows for debugging and visualization for QUIC streams
• Still being stanndardized
Image Source: Robin Marx
13. Challenges To Testing
•Lack of Support
•Draft code still has debugging (slower)
•Few Web Server Choices:
•LiteSpeed Enterprise (-not- OpenLiteSpeed)
•Caddy Server (VERY NEW)
•Cloudfare does not support it (yet)
13
14. Challenges forHTTP/3
•+/- 5% QUIC connections fail
•CPU Intensive - Requires 2X or more servers
•UDP on port 443 is blocked
•UDP is not as optimized as TCP
•No standard API for QUIC (yet)
14
20. The Mission
• Using a realistic web site,
compare:
• HTTP 1.1
• HTTP/2
• HTTP/3 (QUIC)
• Cloudflare/No Cloudflare
• Netropy Proxy
Determine:
• Is Head of Line Blocking gone?
20
https://loadtesthttp3.com
21. “I apologizefor the crudityofthis model...”
• Set up and configure cloud server instance (Ubuntu 18.04)
• Seperate Database (MySQL 8 on AWS RDS service)
• Litespeed web server with PHP 7.3
• Wordpress with custom theme
• Setup Domain, Email, and Cloudflare DNS/Caching
• Set up Network Emulation (Netropy Proxy)
• Baseline with GTMetrix, Web Page Test, Chrome DevTools
• Run up to 50 virtual users with NeoLoad
21
33. Test Results - QUIC - WITH Network Emulation- Satellite
33
34. Summary
• It SEEMS to remove HTTP HOL - but...
• Requires more server CPU/Memory
• Low Bandwidth situations benefit the most
• Will need to be tested as the spec evolves
• Test Cases Should include
Network Emulation
• TCP transition to UPD will be slow
• UDP will need to be optimized
• Additional protocols will come (i.e. DNS)
34
35. Who To Follow
• Robin Marx - @programmingart
• Daniel Stenberg (cURL) - @bagder
• Lucas Pardue - @SimmerVigor
• Barry Pollard - @tunetheweb
• Cloudflare
• LiteSpeed
• IETF
• Scott Moore - @loadtester
• Apposite Technologies - @Apposite_Tech
35