<story><title>QUIC is now RFC 9000</title><url>https://www.fastly.com/blog/quic-is-now-rfc-9000</url></story><parent_chain><item><author>throwawaaarrgh</author><text>&amp;gt; The internet transport ecosystem has been ossified for decades now, and QUIC breaks out of this ossification&lt;p&gt;But it&amp;#x27;s still just a layer on top of UDP, and still implemented at the application, like in the past. So how is the ossification broken?&lt;p&gt;Every app has to implement it itself rather than calling a syscall and letting the OS deal with its complexities (same as for TLS, making fewer apps implement it without a lot of extra work). Which also increases context switching. In the future more protocols will be built on top of QUIC, expanding the user-space stack, increasing fragmentation of application-space IP stacks. And are network cards now going to start implementing it?&lt;p&gt;It&amp;#x27;s painful to watch us stride headlong into the future depending on band-aids because surgery is too complicated.</text></item></parent_chain><comment><author>cormacrelf</author><text>The “ossification” that QUIC deals with is primarily about internet routers who decide to dig into their IP packets. &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;http3-explained.haxx.se&amp;#x2F;en&amp;#x2F;why-quic&amp;#x2F;why-ossification&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;http3-explained.haxx.se&amp;#x2F;en&amp;#x2F;why-quic&amp;#x2F;why-ossification&lt;/a&gt; Many have optimisations around TCP and long-standing TCP characteristics, which they are able to do because the TCP headers are unencrypted. This led to TCP being difficult to improve, because of all the implementations out there making assumptions and doing these optimisations that weren’t compatible with new developments, or worse, dropping traffic with new, unrecognised TCP options.&lt;p&gt;In comparison QUIC is almost 100% encrypted, and exposes comparatively little data for routers to ossify on. So even if network cards start optimising, they can only do so much damage because they are given very little information. For example, there is no way for them to do their own special per-stream flow control, because the stream identifier is encrypted. The only things visible are the UDP src&amp;#x2F;dest port, the QUIC connection ID, and a minimal set of flags. Most important is that the flow control information is encrypted, which is one of the main things TCP couldn’t improve on due to ossification.&lt;p&gt;That’s not to say the number of implementations stops being a problem — just means that you can actually use QUIC version numbers and negotiate features at the endpoints and ignore anybody along the routes. So you can get adoption of new ideas much more quickly.&lt;p&gt;Quick illustration of the things no longer visible to network operators: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;blog.apnic.net&amp;#x2F;wp-content&amp;#x2F;uploads&amp;#x2F;2019&amp;#x2F;03&amp;#x2F;quic-fig2.png&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;blog.apnic.net&amp;#x2F;wp-content&amp;#x2F;uploads&amp;#x2F;2019&amp;#x2F;03&amp;#x2F;quic-fig2....&lt;/a&gt;, from &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;blog.apnic.net&amp;#x2F;2019&amp;#x2F;03&amp;#x2F;04&amp;#x2F;a-quick-look-at-quic&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;blog.apnic.net&amp;#x2F;2019&amp;#x2F;03&amp;#x2F;04&amp;#x2F;a-quick-look-at-quic&amp;#x2F;&lt;/a&gt;</text></comment>
<story><title>QUIC is now RFC 9000</title><url>https://www.fastly.com/blog/quic-is-now-rfc-9000</url></story><parent_chain><item><author>throwawaaarrgh</author><text>&amp;gt; The internet transport ecosystem has been ossified for decades now, and QUIC breaks out of this ossification&lt;p&gt;But it&amp;#x27;s still just a layer on top of UDP, and still implemented at the application, like in the past. So how is the ossification broken?&lt;p&gt;Every app has to implement it itself rather than calling a syscall and letting the OS deal with its complexities (same as for TLS, making fewer apps implement it without a lot of extra work). Which also increases context switching. In the future more protocols will be built on top of QUIC, expanding the user-space stack, increasing fragmentation of application-space IP stacks. And are network cards now going to start implementing it?&lt;p&gt;It&amp;#x27;s painful to watch us stride headlong into the future depending on band-aids because surgery is too complicated.</text></item></parent_chain><comment><author>skissane</author><text>&amp;gt; Every app has to implement it itself rather than calling a syscall and letting the OS deal with its complexities (same as for TLS, making fewer apps implement it without a lot of extra work). Which also increases context switching&lt;p&gt;Nowhere does RFC9000 say that it &lt;i&gt;has&lt;/i&gt; to be implemented in user-space. A kernel-space implementation of QUIC would be conforming. Any OS kernel project (whether open source or proprietary) which would like to develop one is free to do so.</text></comment>