{"id":10204,"date":"2018-11-12T14:49:58","date_gmt":"2018-11-12T19:49:58","guid":{"rendered":"https:\/\/blog.litespeedtech.com\/?p=10204"},"modified":"2018-11-12T14:49:58","modified_gmt":"2018-11-12T19:49:58","slug":"ietf-103-http-over-quic-is-now-http-3","status":"publish","type":"post","link":"https:\/\/lswp.store\/index.php\/2018\/11\/12\/ietf-103-http-over-quic-is-now-http-3\/","title":{"rendered":"Notes From the Road: IETF 103 Short Takes"},"content":{"rendered":"<p><a href=\"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09.png\"><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter wp-image-10214 size-large\" title=\"Notes from the Road: IETF 103\" src=\"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09-1024x512.png\" alt=\"Notes from the Road: IETF 103 Litespeed and Facebook Complete First HTTP\/3 Inter-Operability Test\" width=\"1024\" height=\"512\" srcset=\"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09-1024x512.png 1024w, https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09-300x150.png 300w, https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09-768x384.png 768w, https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09-1536x768.png 1536w, https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09-1320x660.png 1320w, https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09-600x300.png 600w, https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09.png 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Last week, <a href=\"https:\/\/www.ietf.org\/how\/meetings\/103\/\">IETF 103<\/a> was held in Bangkok. Those lucky enough to attend in person had fun eating <a href=\"https:\/\/en.wikipedia.org\/wiki\/Durian\">durians<\/a>, attending the Diwali celebration at a <a href=\"https:\/\/en.wikipedia.org\/wiki\/Mariamman_Temple,_Bangkok\">famous local temple<\/a>, or <a href=\"https:\/\/www.ietf.org\/mail-archive\/web\/103attendees\/current\/msg00287.html\">getting patted down<\/a> by a few sullen Thai law enforcement officers. Since I was attending remotely, I had to content myself with eating tomato soup with sardines at 3 o\u2019clock in the morning\u2026 and not getting harassed by the Thai police.<\/p>\n<figure id=\"attachment_10210\" aria-describedby=\"caption-attachment-10210\" style=\"width: 151px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/null-2.png\"><img decoding=\"async\" class=\"wp-image-10210 size-medium\" src=\"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/null-2-227x300.png\" alt=\"IETF 103: The Number Three\" width=\"151\" height=\"200\" srcset=\"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/null-2-227x300.png 227w, https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/null-2.png 404w\" sizes=\"(max-width: 151px) 100vw, 151px\" \/><\/a><figcaption id=\"caption-attachment-10210\" class=\"wp-caption-text\">The new HTTP\/3 logo from Mike Bishop\u2019s <a href=\"https:\/\/github.com\/quicwg\/wg-materials\/blob\/master\/ietf103\/http.pdf\">HTTP\/QUIC<\/a> presentation. Just kidding, this won\u2019t be the logo! &#8230;I think.<\/figcaption><\/figure>\n<h2>HTTP\/3<\/h2>\n<p>The unwieldy \u201cHTTP over QUIC\u201d (or HQ for short) is now known as <a href=\"https:\/\/github.com\/quicwg\/wg-materials\/blob\/master\/ietf103\/http.pdf\">HTTP\/3<\/a> (or H3). This big change was sudden to many and <a href=\"https:\/\/twitter.com\/search?q=h3\">set the Internet abuzz<\/a>. Undoubtedly, this step will be considered controversial. And yet, the name change was approved by both QUIC and HTTPbis Working Groups. (See relevant minutes: <a href=\"https:\/\/github.com\/quicwg\/wg-materials\/blob\/master\/ietf103\/minutes.md#naming-httpquic\">1<\/a>, <a href=\"https:\/\/github.com\/httpwg\/wg-materials\/blob\/gh-pages\/ietf103\/minutes.md#quic-and-http\">2<\/a>.) Concurrently, it was decided that the HTTPbis WG will take on maintenance of HTTP\/3 and QPACK documents after they are published as RFCs.<\/p>\n<h2>LiteSpeed first with functional HTTP\/3 server<\/h2>\n<p>During the QUIC Interop Hackathon that accompanied IETF 103, <a href=\"https:\/\/www.ietf.org\/mail-archive\/web\/quic\/current\/msg04974.html\"><b>LiteSpeed Technologies became the first entity to operate a functional HTTP\/3 server<\/b><\/a>. On the night of November 6th, a Facebook HTTP\/3 client made several successful GET and POST requests to the LiteSpeed HTTP\/3 server. After some fixes to the Facebook server, we were able to return the favor on the afternoon of November 8th when the LiteSpeed client fetched resources from the Facebook server.<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p dir=\"ltr\" lang=\"en\"><a href=\"https:\/\/twitter.com\/litespeedtech?ref_src=twsrc%5Etfw\">@litespeedtech<\/a> and <a href=\"https:\/\/twitter.com\/facebook?ref_src=twsrc%5Etfw\">@facebook<\/a> achieve <a href=\"https:\/\/twitter.com\/hashtag\/QUIC?src=hash&amp;ref_src=twsrc%5Etfw\">#QUIC<\/a> <a href=\"https:\/\/twitter.com\/hashtag\/HQ?src=hash&amp;ref_src=twsrc%5Etfw\">#HQ<\/a> (or should I say <a href=\"https:\/\/twitter.com\/hashtag\/H3?src=hash&amp;ref_src=twsrc%5Etfw\">#H3<\/a>?) interop! Kudos to <a href=\"https:\/\/twitter.com\/__subodh?ref_src=twsrc%5Etfw\">@__subodh<\/a> &amp; co!<\/p>\n<p>I think we are here first! &#x1f642;<a href=\"https:\/\/twitter.com\/hashtag\/IETF103?src=hash&amp;ref_src=twsrc%5Etfw\">#IETF103<\/a><\/p>\n<p>\u2014 Dmitri Tikhonov (@dmitri_tikhonov) <a href=\"https:\/\/twitter.com\/dmitri_tikhonov\/status\/1059998989557395457?ref_src=twsrc%5Etfw\">November 7, 2018<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<h2>Draft 17 is the last major change<\/h2>\n<p>Or so we\u2019ve been told by Martin Thomson and other QUIC luminaries. Here is a (likely incomplete) list of changes which will make the new version incompatible with the previous version:<\/p>\n<ul>\n<li><a href=\"https:\/\/tools.ietf.org\/html\/draft-ietf-quic-transport-16#section-7.3\">Transport parameter<\/a> values will be encoded using the QUIC <a href=\"https:\/\/tools.ietf.org\/html\/draft-ietf-quic-transport-16#section-16\">variable-length integer format<\/a>.<\/li>\n<li>Transport parameters will be renumbered.<\/li>\n<li>QUIC frames will be renumbered &#8212; apparently, for <a href=\"https:\/\/www.ietf.org\/mail-archive\/web\/quic\/current\/msg04911.html\">purely aesthetic reasons<\/a>.<\/li>\n<li>First byte (a.k.a. octet zero) of both long and short headers <a href=\"https:\/\/github.com\/quicwg\/wg-materials\/blob\/master\/ietf103\/octet0.pdf\">will change<\/a>.<\/li>\n<\/ul>\n<figure style=\"width: 624px\" class=\"wp-caption alignnone\"><img decoding=\"async\" src=\"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/null.png\" alt=\"IETF 103 Handshake Retry\" width=\"624\" height=\"294\" \/><figcaption class=\"wp-caption-text\">A slide from Martin Thomson\u2019s <a href=\"https:\/\/github.com\/quicwg\/wg-materials\/blob\/master\/ietf103\/octet0.pdf\">First Octet<\/a> presentation.<\/figcaption><\/figure>\n<h2>Farewell to Q043 and earlier<\/h2>\n<p>The octet zero change means that servers will not be able to support older versions of Google QUIC &#8212; Q043 and earlier &#8212; and IETF QUIC at the same time. Ian Swett informed us that Google plans to deploy IETF QUIC Draft-17 at scale at which point they, too, will have to drop support for pre-Q044 QUIC.<\/p>\n<h2>The spin bit is in<\/h2>\n<figure style=\"width: 624px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/null-1.png\" alt=\"IETF 103: Spin Bit\" width=\"624\" height=\"182\" \/><figcaption class=\"wp-caption-text\">A diagram from Marcus Ihlar\u2019s <a href=\"https:\/\/github.com\/quicwg\/wg-materials\/blob\/master\/ietf103\/spin_summary.pdf\">Spin Bit<\/a> presentation<\/figcaption><\/figure>\n<p>The QUIC Working Group voted to include <a href=\"https:\/\/github.com\/quicwg\/wg-materials\/blob\/master\/ietf103\/spin_summary.pdf\">the spin bit<\/a> into the specification. Having been the subject of a rather <a href=\"https:\/\/lswp.store\/2018\/04\/10\/ietf-101-conference-part-2\/\">contentious debate at IETF 101<\/a> in London, the spin bit is an optional protocol feature.<\/p>\n<p>Chrome\u2019s and Firefox\u2019s stated intent of not implementing the spin bit makes its value questionable. On the other hand, Microsoft, LiteSpeed Technologies, and F5 pledged to support it in both their server and client products and Apple plans to implement it on the client.<\/p>\n<h2>Is there life after QUIC?<\/h2>\n<p>At the end of the second (and last) QUIC session, we discussed the road ahead. The plan it to freeze the 17th version of the draft family and get many implementations going. The finish line has been moved again, this time to July 2019.<\/p>\n<p>Shall we disband after QUIC is released? There has been talk of rechartering the Working Group to take on new challenges, such as multipath and partial reliability.<\/p>\n<p>Given the rate of protocol changes that are still being worked on, that point still seems pretty far off to me. Now, it\u2019s time to roll up the sleeves and finish our server implementation. Until next time!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;HTTP over QUIC&#8221; is now &#8220;HTTP\/3&#8221; and LiteSpeed Technologies has become the first to operate a functional HTTP\/3 server! This news and more from IETF 103.<\/p>\n","protected":false},"author":1,"featured_media":10214,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[18,27],"tags":[139,201,238,240],"class_list":["post-10204","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-conferences","category-web-server","tag-http-3","tag-notes-from-the-road","tag-quic","tag-quic-working-group"],"jetpack_featured_media_url":"https:\/\/lswp.store\/wp-content\/uploads\/2018\/11\/nftr09.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/posts\/10204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/comments?post=10204"}],"version-history":[{"count":0,"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/posts\/10204\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/media\/10214"}],"wp:attachment":[{"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/media?parent=10204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/categories?post=10204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lswp.store\/index.php\/wp-json\/wp\/v2\/tags?post=10204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}