Re: Proposal Towards Universal HTTP/3, with a polyfill of QUIC for TCP (Fwd: New Version Notification for draft-kazuho-httpbis-http3-on-streams-00.txt)
Willy Tarreau <w@1wt.eu> Fri, 16 February 2024 10:50 UTC
Return-Path: <w@1wt.eu>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B9422C15155E for <quic@ietfa.amsl.com>; Fri, 16 Feb 2024 02:50:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.907
X-Spam-Level:
X-Spam-Status: No, score=-1.907 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W_wnP21bQrQL for <quic@ietfa.amsl.com>; Fri, 16 Feb 2024 02:50:14 -0800 (PST)
Received: from 1wt.eu (ded1.1wt.eu [163.172.96.212]) by ietfa.amsl.com (Postfix) with ESMTP id 9253CC14CE25 for <quic@ietf.org>; Fri, 16 Feb 2024 02:50:13 -0800 (PST)
Received: (from willy@localhost) by pcw.home.local (8.15.2/8.15.2/Submit) id 41GAo8kR026962; Fri, 16 Feb 2024 11:50:08 +0100
Date: Fri, 16 Feb 2024 11:50:08 +0100
From: Willy Tarreau <w@1wt.eu>
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>, Lucas Pardue <lucas@lucaspardue.com>
Subject: Re: Proposal Towards Universal HTTP/3, with a polyfill of QUIC for TCP (Fwd: New Version Notification for draft-kazuho-httpbis-http3-on-streams-00.txt)
Message-ID: <20240216105008.GA25077@1wt.eu>
References: <170807134367.25372.9131938145722079298@ietfa.amsl.com> <CANatvzyLJnZH9UHaSoMWbv20VhEtAzY7HqRHCSWt-O65f24uwQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CANatvzyLJnZH9UHaSoMWbv20VhEtAzY7HqRHCSWt-O65f24uwQ@mail.gmail.com>
User-Agent: Mutt/1.10.1 (2018-07-13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/9frzBuIbVdmF8V23IAqmH6lylvE>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Feb 2024 10:50:18 -0000
Hi Kazuho, Lucas, On Fri, Feb 16, 2024 at 05:24:59PM +0900, Kazuho Oku wrote: > Hello QUIC and HTTP enthusiasts, > > We, Lucas and I, have submitted two drafts aimed at broadening the reach of > HTTP/3 - yes, making it available over TCP as well. We are eager to hear > your thoughts on these: > > QUIC on Streams: A polyfill for operating QUIC on top of TCP. > https://datatracker.ietf.org/doc/html/draft-kazuho-quic-quic-on-streams > > HTTP/3 on Streams: How to run HTTP/3 unmodified over TCP, utilizing QUIC on > Streams. > https://datatracker.ietf.org/doc/html/draft-kazuho-httpbis-http3-on-streams These are super interesting! I've expressed interest in the past in trying to port H3 to TCP though I didn't have all the gory details of the protocol by then. More recently I discussed this possibility a few times with my coworkers who implemented and maintain QUIC in haproxy, as a cleaner "backend" protocol. What I'm seeing with haproxy is that we generally have H1/H2/H3 for the front connection, and H1 most often for the connection going to the server. The reason is that H2 is not very interesting there because: - it doesn't support multiple client multiplexing well over the same connection due to head of line blocking, unless you use a super small window ; - the max streams supported by the server isn't known upfront and can sometimes require to retry failed requests, or to be very conservative on the number of parallel requests until you get the server's SETTINGS. Of course you can put that in a config, but with some automated deployments you just don't know. - the default max frame size is not efficient enough to perform zero-copy transfers, and increasing it is just going to make HoL worse. H1 on the other hand has the problem of not being able to abort a retrieval without breaking the connection. One option could consist in dealing with single-stream H2 with large frames but that's not necessarily what servers will do. I've been thinking that using single-stream H3 connections would be a better option for this. It would keep the efficiency of HPACK and QPACK header compression (even if for reused connections it's less efficient), and some lightweight framing that could possibly improve transfer efficiency and aborts (this is still to be verified). And of course, dealing with a better offset-based in instead of credit-based flow-control is appealing. So for me, H3 over TCP could be a nice upgrade to H1 on the backend with less hassles than H2, and QUIC over TCP could probably just replace H2 on the backend. Also some of the TTFB benefits of QUIC over UDP (0-RTT etc) are irrelevant on the backend because there you mostly keep many connections open for a long time. I'm very interested in seeing what it could become! Cheers, Willy
- Proposal Towards Universal HTTP/3, with a polyfil… Kazuho Oku
- Re: Proposal Towards Universal HTTP/3, with a pol… Hugo Landau
- Re: Proposal Towards Universal HTTP/3, with a pol… Willy Tarreau
- Re: Proposal Towards Universal HTTP/3, with a pol… Poul-Henning Kamp
- Re: Proposal Towards Universal HTTP/3, with a pol… Lucas Pardue
- Re: Proposal Towards Universal HTTP/3, with a pol… Behcet Sarikaya
- Re: Proposal Towards Universal HTTP/3, with a pol… Kazuho Oku
- Re: Proposal Towards Universal HTTP/3, with a pol… Stefan Eissing
- Re: Proposal Towards Universal HTTP/3, with a pol… Victor Vasiliev
- Re: Proposal Towards Universal HTTP/3, with a pol… Watson Ladd
- Re: Proposal Towards Universal HTTP/3, with a pol… Christian Huitema
- Re: Proposal Towards Universal HTTP/3, with a pol… Willy Tarreau
- Re: Proposal Towards Universal HTTP/3, with a pol… Paul Vixie
- Re: Proposal Towards Universal HTTP/3, with a pol… Kazuho Oku
- Re: Proposal Towards Universal HTTP/3, with a pol… Michael Welzl
- Re: Proposal Towards Universal HTTP/3, with a pol… Hugo Landau
- Re: QUIC on streams compared to Minion (was Re: P… Lucas Pardue
- Re: Proposal Towards Universal HTTP/3, with a pol… Matt Mathis
- QUIC on streams compared to Minion (was Re: Propo… Lucas Pardue
- Re: QUIC on streams compared to Minion (was Re: P… Michael Welzl
- Re: QUIC on streams compared to Minion (was Re: P… Michael Tuexen
- Re: Proposal Towards Universal HTTP/3, with a pol… Lucas Pardue
- Re: Proposal Towards Universal HTTP/3, with a pol… Florentin Rochet
- Re: Proposal Towards Universal HTTP/3, with a pol… Dmitry Adamushka
- Re: Proposal Towards Universal HTTP/3, with a pol… Roberto Peon
- Re: Proposal Towards Universal HTTP/3, with a pol… Lucas Pardue
- Re: Proposal Towards Universal HTTP/3, with a pol… Kazuho Oku
- Re: Proposal Towards Universal HTTP/3, with a pol… Kazuho Oku
- Re: Proposal Towards Universal HTTP/3, with a pol… Roberto Peon
- Re: Proposal Towards Universal HTTP/3, with a pol… Lucas Pardue
- Re: Proposal Towards Universal HTTP/3, with a pol… Kazuho Oku
- Re: Proposal Towards Universal HTTP/3, with a pol… Lucas Pardue
- Re: Proposal Towards Universal HTTP/3, with a pol… Lucas Pardue