HTTP/3

 HTTP/3

The announcement of HTTP/3 at the start of November 2018 may have come as a surprise for a lot of us.

Indeed, compared to the 18 years that separated HTTP/1.1 et HTTP/2, this announcement comes only 4 years after the release of HTTP/2.

But the biggest surprise is under the hood, with a replacement of the transport layer.

In this talk, we will explain why this version 3 of the HTTP protocol has been designed, especially around the latency topic.

We will cover as well how technically this version works, and what it will bring to our applications, and what are the challenges, that us, DevOps, we will need to address, in order to fully benefit from this version.

6648bd4390fba79c9baa6045e58fa337?s=128

Benoit Jacquemont

June 07, 2019
Tweet

Transcript

  1. HTTP/3 HTTP/3 It's All About The Transport! It's All About

    The Transport! Benoit Jacquemont Benoit Jacquemont @bjacquemont @bjacquemont
  2. But HTTP/2 Just Came Out!? HTTP/1.1: 1997 - HTTP/2: 2015

    - HTTP/3: 2018 (announcement)
  3. HTTP/3 = HTTP/2 Over QUIC Kwiiiick!

  4. HTTP/2 = TCP Application Transport HTTP/3 = QUIC

  5. What's The Problem With TCP?

  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. Hey, but latency sums up!

  18. Network Performance Latency & Bandwidth

  19. None
  20. Chappe Telegraph A B C D E F Volume of

    data: 7 bit (92 symbols) Transport: light Speed: 3 symbols per minute
  21. None
  22. None
  23. Chappe Telegraph Performances Latency: 0.003 ms (light delay over 10km)

    Bandwidth: 0.4 bit/s
  24. Truck Full Of SSD Transport: 15 TB SSD in a

    container Volume of data: 3 exabyte, aka 3 millions of TB (200k disks)
  25. None
  26. None
  27. SSD Truck Performances Latency: 40 minutes (30 km at 50

    km/h average) Bandwidth: 10 Petabit/s (or 10.000 Tb/s)
  28. Bandwidth Latency Chappe Telegraph 0.4 bit/s 0.003 ms SSD Truck

    10 Pbit/s 40 minutes
  29. Bandwidth And Latency Evolution Medium Bandwidth Latency 56k modem 40

    Kbit/s 150ms ADSL 18 Mbit/s 50ms Optical Fiber 200 Mbit/s 10ms Bandwidth: 5000x Better Latency: 15x Better
  30. None
  31. Should I Care About Latency? The 3 Important Time Limits

    In UX Source: Jakob Nielsen, "Usability Engineering" 1993; Miller 1968 0.1s: instantaneous feeling limit 1s: ow of thought limit 10s: user attention limit Latency Is The #1 Enemy Of Web UX!
  32. HTTP: A History Of Battle Against Latency

  33. None
  34. None
  35. None
  36. None
  37. None
  38. None
  39. None
  40. None
  41. None
  42. None
  43. None
  44. None
  45. None
  46. Hey, It Gets Worse!

  47. The TLS Handshake

  48. Initiator Receiver SYN ACK SYN-ACK Client Hello Server Hello Client

    Key Exchange Server Finished Client Finished HTTP Request HTTP Response TCP TLS HTTP Time
  49. Introducing QUIC Previously Known As Quick UDP Internet Connections

  50. QUIC Handshake Initiator Receiver QUIC HELLO QUIC TOKEN QUIC HELLO

    + TOKEN
  51. QUIC = Transport And Encryption

  52. TCP/TLS Vs QUIC

  53. But Isn't UDP Unreliable? What Was The Point Of TCP,

    Again?
  54. None
  55. None
  56. None
  57. None
  58. None
  59. None
  60. None
  61. None
  62. None
  63. None
  64. None
  65. None
  66. None
  67. None
  68. None
  69. None
  70. But With UDP...

  71. my important message 1 2 3 4 2 1 4

    But With UDP...
  72. QUIC Takes Care Of The Packets... ...At The Browser/Server Level

  73. None
  74. None
  75. None
  76. None
  77. None
  78. None
  79. None
  80. None
  81. None
  82. None
  83. None
  84. None
  85. TCP Is Strongly Coupled To The Network Connection

  86. None
  87. None
  88. None
  89. None
  90. None
  91. None
  92. None
  93. None
  94. None
  95. QUIC Is Loosely Coupled To The Network Connection

  96. TCP And Head Of Line Blocking

  97. None
  98. None
  99. None
  100. None
  101. None
  102. None
  103. None
  104. None
  105. None
  106. None
  107. None
  108. None
  109. None
  110. None
  111. None
  112. None
  113. None
  114. None
  115. With Bad Connectivity, HTTP/2 Streams Can Be Worse Than HTTP/1.1

    Parallel Connections!
  116. None
  117. None
  118. None
  119. None
  120. None
  121. None
  122. None
  123. None
  124. None
  125. None
  126. None
  127. None
  128. None
  129. None
  130. None
  131. None
  132. None
  133. None
  134. None
  135. None
  136. QUIC Streams Are Independent From Each Other. No HOL Blocking

  137. HTTP/3: What's In It For Me? HTTP/3 = QUIC HTTP/3

    doesn't change HTTP/2 semantics HTTP/3 is mostly a drop-in replacement for HTTP/2 Main (only?) change for web dev: streams priority Code for HTTP/2 and bene t from HTTP/3 when it's out!
  138. QUIC Challenges

  139. None
  140. None
  141. None
  142. None
  143. None
  144. None
  145. None
  146. None
  147. None
  148. None
  149. None
  150. None
  151. None
  152. None
  153. None
  154. None
  155. None
  156. None
  157. None
  158. None
  159. None
  160. None
  161. None
  162. None
  163. None
  164. None
  165. QUIC Maturity Enabled by default in Chromium since 2013 Enabled

    on Chrome for Google web servers Ongoing standardisation by IETF 7 November 2018: rst interop connection between LiteSpeed and Facebook tools.ietf.org/html/draft-ietf-quic-http-24
  166. HTTP/3 Key Takeaways QUIC latency is far better than TCP+TLS

    HTTP/3 allows HTTP/2 to meet its full potential Final HTTP/3 release date not yet de ned... ... but already battle tested Still a lot of work to make it happen
  167. Thank You! Questions? For more information: @bjacquemont daniel.haxx.se/http3-explained/ www.chromium.org/quic/