<story><title>Comparing TCP and QUIC</title><url>https://www.potaroo.net/ispcol/2022-11/quicvtcp.html</url></story><parent_chain></parent_chain><comment><author>drewg123</author><text>What nobody talks about is the lack of server-side offloads for QUIC.  Things like TSO, LRO, and even hardware offloaded kTLS. Without those offloads, I estimate I&amp;#x27;d be lucky to get 200Gb&amp;#x2F;s out of the same Netflix CDN server hardware that can serve TLS-encrypted TCP at over 700Gb&amp;#x2F;s.&lt;p&gt;Do the benefits of QUIC really justify the economic and environmental impacts of that kind of loss of inefficiency on the server side?&lt;p&gt;And yes, I know that some of these offloads are being worked on, but they are not here today.</text></comment>
<story><title>Comparing TCP and QUIC</title><url>https://www.potaroo.net/ispcol/2022-11/quicvtcp.html</url></story><parent_chain></parent_chain><comment><author>iamcalledrob</author><text>I often see QUIC described as &amp;quot;faster than TCP&amp;quot;, but in my experience this has only been the case when it comes to handshake latency.&lt;p&gt;Throughput-wise, I&amp;#x27;ve found in real-world testing that QUIC is often slower than TCP:
(1) QUIC uses more CPU, due to the processing in user-space. 1Gbps required 3 CPU cores. On my 1x-CPU VPS, QUIC maxed out at 400Mbps due to the CPU. With TCP+TLS, I could comfortably achieve 5Gbps.
(2) QUIC was less resilient to packet loss (surprisingly). This was particularly noticeable on mobile devices.&lt;p&gt;If your use-case is to move bytes between powerful servers over a reliable, wired connection, QUIC may beat TCP in most ways that matter. But for use in real-world mobile apps, TCP may still offer better throughput.&lt;p&gt;Caveat: This is all data from using the quic-go package. The C libraries may well be more efficient :)</text></comment>