{"id":7990,"date":"2018-11-13T12:35:26","date_gmt":"2018-11-13T17:35:26","guid":{"rendered":"https:\/\/www.thesslstore.com\/blog\/?p=7990"},"modified":"2023-04-10T17:09:54","modified_gmt":"2023-04-10T21:09:54","slug":"http-over-quic-http-3","status":"publish","type":"post","link":"https:\/\/www.thesslstore.com\/blog\/http-over-quic-http-3\/","title":{"rendered":"HTTP\/3 is here&#8230; sort of"},"content":{"rendered":"<h2>The IETF has renamed HTTP over QUIC, HTTP\/3<\/h2>\n<p>HTTP\/3 is here, kind of. On Monday <a href=\"https:\/\/mailarchive.ietf.org\/arch\/msg\/quic\/RLRs4nB1lwFCZ_7k0iuz0ZBa35s\">the IETF revealed it would be renaming the HTTP-over-QUIC experimental protocol as HTTP\/3<\/a>. HTTP-over-QUIC is an HTTP rewrite that replaces TCP with QUIC. We\u2019ll get into what that means a little more later.<\/p>\n<p>If this seems a bit premature, it\u2019s not entirely out of line with how the IETF historically operates. Just like TLS 1.3 was rolled out before every website had even switched to TLS 1.2 (though by August the vast majority have) and SHA-3 is already established despite the fact SHA-2 came into use just a few years ago. So, <a href=\"https:\/\/w3techs.com\/technologies\/history_overview\/site_element\/all\">despite the fact just 31.2% of the top ten-million websites are even using HTTP\/2<\/a>, HTTP\/3 is already on the horizon.<\/p>\n<p>Already 1.2% of the top 10-million support QUIC. That\u2019s about 120,000 sites.<\/p>\n<p>So, what is HTTP-over-QUIC \u2013 or I guess now it\u2019s HTTP\/3 \u2013 and what does this new protocol mean for the SSL\/TLS industry?<\/p>\n<p>Let\u2019s hash it out\u2026<span id=\"newline\"><\/span><\/p>\n<h2>What Is HTTP\/3 (a.k.a. HTTP-Over-QUIC)<\/h2>\n<p>HTTP-over-QUIC is an experimental Google protocol that is an HTTP rewrite that swaps in QUIC for the standard TCP that has traditionally been at the heart of the internet.<\/p>\n<p>TCP is the Transmission Control Protocol, along with IP (Internet Protocol) it has been one of the basic rules defining the internet for years. It\u2019s old enough that it has a three-digit RFC number. That\u2019s an IETF joke, TCP was defined in 1981. TCP is a connection-oriented protocol, it is meant to provide error-free data transmission and it governs how data is broken down into packets and disseminated to the other end of the connection.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-7993\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/connection-e1542129648541-300x300.jpg\" alt=\"HTTP\/3, HTTP-over-QUIC\" width=\"300\" height=\"300\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/connection-e1542129648541-300x300.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/connection-e1542129648541.jpg 325w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/>Unfortunately, the error-free transmission feature is a double-edged sword because it can add latency to a connection. It has to ensure that it receives every packet and it runs check-sum hashes to verify this. Briefly, <a href=\"https:\/\/www.thesslstore.com\/blog\/difference-encryption-hashing-salting\/\">hashing is a one way function<\/a> that helps to verify authenticity. If the data has all arrived as intended the hash value produced by the check-sum will match the known hash value. If not, TCP will make the party on the other end of the connection send it again.<\/p>\n<p>QUIC is an acronym for Quick UDP Internet Connections. That begets the question, what is UDP? UDP is the User Data Protocol. The best way to explain this is to go back to the error-free transmission we just discussed with TCP. UDP is another connection protocol, but it doesn\u2019t provide for error-free transmission. Instead it facilitates a connection (sort of) that is low latency on account of the fact it tolerates some data loss.<\/p>\n<p>It might be illuminating to apply this to real life. TCP is ubiquitous, the vast majority of traffic across the internet is TCP. And that\u2019s a good fit for situations where data fidelity is important. When you see a video buffering on YouTube or you get the pinwheel on Netflix while a show loads\u2014that\u2019s a TCP connection. Your device is essentially saying, \u201cI need to catch up on this data before continuing.\u201d<\/p>\n<p>Where UDP is preferable is when you need to send a constant stream of real-time data and latency is not going to be acceptable. A few obvious contexts would be Voice over IP (VoIP), video messaging applications like Skype and video-gaming networks. In this case, UDP just throws a constant stream of data at the party on the other end of the connection and if some gets missed the data will eventually catch up. This is called best effort.<\/p>\n<p>QUIC is an experimental protocol designed by Google. That may seem odd, but Google\u2019s SPDY eventually became HTTP\/2, so this is not unprecedented, either. QUIC is essentially Google\u2019s attempt at rewriting TCP, it combines HTTP\/2, TCP, UDP and Transport Layer Security (TLS) amongst others. The goal is for QUIC to replace both TCP and UDP. It\u2019s encrypted by default, which means it\u2019s faster and more secure than its predecessors. This is largely due to the fact that it uses <a href=\"https:\/\/www.thesslstore.com\/blog\/tls-1-3-approved\/\">TLS 1.3 (RFC 8446<\/a>) and leverages its <a href=\"https:\/\/www.thesslstore.com\/blog\/tls-1-3-handshake-tls-1-2\/\">improved single round-trip handshake<\/a> and zero-round-trip resumption feature.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7991 size-full\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/0rtt-graphic.png\" alt=\"RTT Connection\" width=\"997\" height=\"536\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/0rtt-graphic.png 997w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/0rtt-graphic-300x161.png 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/0rtt-graphic-768x413.png 768w\" sizes=\"auto, (max-width: 997px) 100vw, 997px\" \/><\/p>\n<p><a href=\"https:\/\/blog.chromium.org\/2015\/04\/a-quic-update-on-googles-experimental.html\">From Google\u2019s Chromium Blog<\/a>:<\/p>\n<blockquote><p>Another substantial gain for QUIC is improved congestion control and loss recovery. Packet sequence numbers are never reused when retransmitting a packet. This avoids ambiguity about which packets have been received and avoids dreaded retransmission timeouts. As a result, QUIC outshines TCP under poor network conditions, shaving a full second off the Google Search page load time for the slowest 1% of connections. \u00a0\u00a0These benefits are even more apparent for video services like YouTube. Users report 30% fewer rebuffers when watching videos over QUIC. This means less time spent staring at the spinner and more time watching videos.<\/p><\/blockquote>\n<p>While initially only Google\u2019s servers were supporting HTTP-over-QUIC, earlier this year Facebook added support, too.<\/p>\n<h2>What Does This Mean For the SSL\/TLS Industry?<\/h2>\n<p>In terms of how this plays with the current SSL\/TLS ecosystem, it won\u2019t have that much of a direct impact on the use of digital certificates as TLS is baked right into the protocol and authentication will still need to be handled by trusted certificate authorities and PKI.<\/p>\n<p>The biggest positive that may come from HTTP\/3 is that it will pressure websites into supporting TLS 1.3 faster than they may have otherwise.<\/p>\n<p>But, that still may not be for a while given that less than a third of the internet is even using HTTP\/2 and we still have a small segment of stragglers clinging to HTTP (<a href=\"http:\/\/this.how\/googleAndHttp\/\">as well as a few people willing to die on that hill<\/a>).<\/p>\n<p>So HTTP\/3 is here\u2026 sort of.<\/p>\n<span style=\"--tl-form-height-m:150.25px;--tl-form-height-t:121.4583px;--tl-form-height-d:121.4583px;\" class=\"tl-placeholder-f-type-shortcode_12753 tl-preload-form\"><span><\/span><\/span>\n<p>As always, leave any comments or questions below\u2026<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7276\" src=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568.jpg\" alt=\"Hashed Out by The SSL Store is the voice of record in the SSL\/TLS industry.\" width=\"1559\" height=\"407\" srcset=\"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568.jpg 1559w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568-300x78.jpg 300w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568-768x200.jpg 768w, https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/08\/bigstock-222348568-1024x267.jpg 1024w\" sizes=\"auto, (max-width: 1559px) 100vw, 1559px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The IETF has renamed HTTP over QUIC, HTTP\/3 HTTP\/3 is here, kind of. On Monday the IETF revealed it would be renaming the HTTP-over-QUIC experimental protocol as HTTP\/3. HTTP-over-QUIC is&#8230;<\/p>\n","protected":false},"author":6,"featured_media":7992,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":"","tve_updated_post":"","tve_custom_css":"","tve_user_custom_css":"","tve_globals":{},"tcb2_ready":0,"tcb_editor_enabled":0,"tve_landing_page":"","_tve_header":"","_tve_footer":""},"categories":[16],"tags":[],"class_list":["post-7990","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hashing-out-cyber-security","post-without-tags"],"views":14806,"jetpack_featured_media_url":"https:\/\/www.thesslstore.com\/blog\/wp-content\/uploads\/2018\/11\/bigstock-215435557.jpg","_links":{"self":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts\/7990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/comments?post=7990"}],"version-history":[{"count":0,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/posts\/7990\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/media\/7992"}],"wp:attachment":[{"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/media?parent=7990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/categories?post=7990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.thesslstore.com\/blog\/wp-json\/wp\/v2\/tags?post=7990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}