Re: [PATCH net-next v3 00/15] net: introduce QUIC infrastructure and core subcomponents
Hannes Reinecke <[email protected]> Fri, 19 Sep 2025 08:43:58 +0200
| Newsgroups | dev.linux.lists.quic,dev.linux.lists.kernel-tls-handshake,org.kernel.vger.linux-cifs,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On 9/19/25 00:34, Xin Long wrote: > Introduction > ============ > > The QUIC protocol, defined in RFC 9000, is a secure, multiplexed transport > built on top of UDP. It enables low-latency connection establishment, > stream-based communication with flow control, and supports connection > migration across network paths, while ensuring confidentiality, integrity, > and availability. > [ .. ]> > - Performance Testing > > Performance was benchmarked using iperf [8] over a 100G NIC with > using various MTUs and packet sizes: > > - QUIC vs. kTLS: > > UNIT size:1024 size:4096 size:16384 size:65536 > Gbits/sec QUIC | kTLS QUIC | kTLS QUIC | kTLS QUIC | kTLS > ──────────────────────────────────────────────────────────────────── > mtu:1500 2.27 | 3.26 3.02 | 6.97 3.36 | 9.74 3.48 | 10.8 > ──────────────────────────────────────────────────────────────────── > mtu:9000 3.66 | 3.72 5.87 | 8.92 7.03 | 11.2 8.04 | 11.4 > > - QUIC(disable_1rtt_encryption) vs. TCP: > > UNIT size:1024 size:4096 size:16384 size:65536 > Gbits/sec QUIC | TCP QUIC | TCP QUIC | TCP QUIC | TCP > ──────────────────────────────────────────────────────────────────── > mtu:1500 3.09 | 4.59 4.46 | 14.2 5.07 | 21.3 5.18 | 23.9 > ──────────────────────────────────────────────────────────────────── > mtu:9000 4.60 | 4.65 8.41 | 14.0 11.3 | 28.9 13.5 | 39.2 > > I have been following the QUIC implementation progress for quite some while, and always found the performance impact rather frustrating. At the onset it looks as if you would suffer heavily from the additional complexity the QUIC protocol imposes up you. But that would make the use of QUIC rather pointless for most use-cases. So one wonders if this is not rather a problem of an unsuitable test case. From my understanding QUIC is geared up for handling a multi-stream connection workload, so one should use an adequate test to simulate a multi-stream connection. Did you use the '-P' option for iperf when running the tests? And it might also be an idea to add QUIC support to iperf itself, especially transforming the '-P' option onto QUIC streams looks promising. Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect [email protected] +49 911 74053 688 SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich