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)

Matt Mathis <mattmathis@measurementlab.net> Mon, 19 February 2024 00:45 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=ietf.org@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6DD1AC14F5F7 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 18 Feb 2024 16:45:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.754
X-Spam-Level:
X-Spam-Status: No, score=-2.754 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, 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=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=w3.org header.b="dcJ2CTyZ"; dkim=fail (2048-bit key) reason="fail (body has been altered)" header.d=w3.org header.b="JCbBlSDM"; dkim=fail (2048-bit key) reason="fail (body has been altered)" header.d=measurementlab-net.20230601.gappssmtp.com header.b="BxEzGv3H"
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 5E6SO08iWng4 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 18 Feb 2024 16:44:54 -0800 (PST)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C2A87C14F5EF for <httpbisa-archive-bis2Juki@ietf.org>; Sun, 18 Feb 2024 16:44:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:To:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Cc:Reply-To; bh=3bhHnV9WACpz13cgwt7y0PQ+mcqrvXKx1sws2B5Ycqg=; b= dcJ2CTyZ15RReK/qrZU8KEl0wNZ7DOObsGeudJV8yytmnT1/jE8W9awqc8jD2oCvKThLzivirbgQQ C4Ggewcj6J1edISPaffps18e9NQn+jVawSYgthvZ6LwW01zj+YmyYSrC2xc2jLJNx6bqvPncOBHS5 0LbT4vcON0bgQwEHUwjjnrsvyOY1x2Vu9+Lqv/pVZ5B1LIcwJ0jNnOYtQ3vV1ed0Fk7lhYXGX8y+N rjLTvMGYZFCAex9Ozguf8ZQ713KmhInGb2gSvGn37mxoxi6oaNOn7nG1o519oB3PZthnhvljfC9+F BgNZef6uZtDUobD/r7sbbPCYW0o6ywQifw==;
Received: from lists by lyra.w3.org with local (Exim 4.94.2) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1rbrk0-00FVn1-AD for ietf-http-wg-dist@listhub.w3.org; Mon, 19 Feb 2024 00:42:40 +0000
Resent-Date: Mon, 19 Feb 2024 00:42:40 +0000
Resent-Message-Id: <E1rbrk0-00FVn1-AD@lyra.w3.org>
Received: from www-data by lyra.w3.org with local (Exim 4.94.2) (envelope-from <mattmathis@measurementlab.net>) id 1rbrjy-00FVlt-0k for ietf-http-wg@listhub.w3.org; Mon, 19 Feb 2024 00:42:38 +0000
Received: from puck.w3.org ([34.196.82.207]) by lyra.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from <mattmathis@measurementlab.net>) id 1rbiHd-00Ehnk-Ah for ietf-http-wg@listhub.w3.org; Sun, 18 Feb 2024 14:36:45 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Cc:Reply-To; bh=tyfu05CMXj8cHE45eFwyw+1W6z6kvZ6ShNhR1TVF3+w=; t=1708267005; x=1709131005; b=JCbBlSDMeywpI4rchHwXx7bp4qBMleCSPrS6C3gxwPuZ9MT 04eGw+70tvRqprSO/uRyVLptoZjgMWj2Jsrc1ngMmoyk2z7OeQqPF0mKPtamCAfIdqIiUvcM8GPxg 3AQXFNPq7eDMgTa5e0w1gjYFYrd+oKBl90aVdZBlP8dS5q33vSWB6dRLZTR+AH0sDXUKRQlUwfvGG aQVe8RoUXcrgFS/Ap3s9jCwXv08uoTi8QKlDeUQvMdFbUEO6Ba5I7t+FdvCBqq2raLH+5/2jKnbmn 0w355ah38Dnsz+o6bLTo/Y1gDqhkUr5AjbBYwNpU9RkZLago/Vs3dvxKTOcDNU4Q==;
Received-SPF: pass (puck.w3.org: domain of measurementlab.net designates 2607:f8b0:4864:20::1134 as permitted sender) client-ip=2607:f8b0:4864:20::1134; envelope-from=mattmathis@measurementlab.net; helo=mail-yw1-x1134.google.com;
Received: from mail-yw1-x1134.google.com ([2607:f8b0:4864:20::1134]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <mattmathis@measurementlab.net>) id 1rbiHc-0013kl-1H for ietf-http-wg@w3.org; Sun, 18 Feb 2024 14:36:45 +0000
Received: by mail-yw1-x1134.google.com with SMTP id 00721157ae682-608342633b8so1430047b3.1 for <ietf-http-wg@w3.org>; Sun, 18 Feb 2024 06:36:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=measurementlab-net.20230601.gappssmtp.com; s=20230601; t=1708267001; x=1708871801; darn=w3.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=tyfu05CMXj8cHE45eFwyw+1W6z6kvZ6ShNhR1TVF3+w=; b=BxEzGv3HY+rBxfoSRu0sVLSLype0WzYl4OmuVHnMHyLvwjft+CQT29uDMFOQniQbo/ un8E++yB1b2fCaPRhoahBOdMRPGy+YwF9fbHogToExH6BV6nd6gljmQPW8DnClxTBPcR q+qED0LH4Xnc4y3r6dY0Cf0uKtdNM9a+9DBKlGSunrZtmHbD41CyuLoDYsKxfAwJRkbh M/38xuzCmLXFL0C3bW0rbtPuTIIpb6bTd7NFIngeDfqYbITnCR5YkjfWsvRhgIoJhUYo YpaohmIvIUksJ8xGwY8ZsE8HjOg9tPrArOv8hT4n+ft5v/kLc0cr9kvoJZIivogNQguV 7pDA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708267001; x=1708871801; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tyfu05CMXj8cHE45eFwyw+1W6z6kvZ6ShNhR1TVF3+w=; b=DqfpVXrDxa8s88oMkSU71bvV3imqYjqtImUAnoBuJlI0bG7aR0lIPV5v8vK2Bc15iJ iJZD3j1PU5EJByETdP+qxbD/S+dWiI8tgMWP7IfbM30TmpnXpQu5hEHdEmrLtgNh3jXZ cfg1KE1T/lZHJWxRVswpsryZAQrT3tVy/ATGTno1q4xNo57MDSuVqA0GYFqWPcW1nz0S bfbWrNBRVuus+yrrbKt3vA6FKZp9XWS/tjqC/F7TP9uhvPzqBh2kFBrJL7o6+gKBc1qQ p9CfNrd30YuTkqKOjVibJqzp0iuyyc9Z4wEtuqUb3fgQmDF1kJChYKBFxGcny/0N4cyS 9tyw==
X-Forwarded-Encrypted: i=1; AJvYcCWljSlkSEqReB2xyI+8kMSAIE3cZrE4CzpZNMazD759SVknnn/BQm+MNaGHivuMD6SPiMejm8O9P9fOTbibc6aQcSKP
X-Gm-Message-State: AOJu0Yw1NweIyxI58Yt1wZPpwtkt9tpS+f32erI+lYOBfEKvRuvr2JBL +r871XFQ/ywSaW5N25BMm3hZcPYDHAvMp3qLfZsQq5Pn/O2zbkOoJuoT93XA5kca+nMZiPArtMg YS03cahs2bqiUDSYEWOT89UPANJVYgKbPZcZ5s13Fpm6Qh6xHdUY=
X-Google-Smtp-Source: AGHT+IHLMBfJ4Dop1vd2+G7GD9oJaz4SGqh6u4ZK30B9Ojfe+JrlQmc4GmuQnmOFx9vbno1YYGb0r8Vnxf222/Ceky8=
X-Received: by 2002:a0d:eacb:0:b0:607:838b:a0c0 with SMTP id t194-20020a0deacb000000b00607838ba0c0mr11314121ywe.7.1708267000776; Sun, 18 Feb 2024 06:36:40 -0800 (PST)
MIME-Version: 1.0
References: <170807134367.25372.9131938145722079298@ietfa.amsl.com> <CANatvzyLJnZH9UHaSoMWbv20VhEtAzY7HqRHCSWt-O65f24uwQ@mail.gmail.com> <Zc8kDgXmkEku_61q@camelot.lhh.devever.net> <CANatvzwVpe2k9gjKFfkuudueDndS0Btgmx-_LWSajt=6K2MxMQ@mail.gmail.com> <ZdEfLiGmzKFZTurh@camelot.lhh.devever.net>
In-Reply-To: <ZdEfLiGmzKFZTurh@camelot.lhh.devever.net>
From: Matt Mathis <mattmathis@measurementlab.net>
Date: Sun, 18 Feb 2024 06:36:30 -0800
Message-ID: <CAEsRLK8A4G6A_hpmoTtBzo+7ARAE8k5b-EbgbEFWVgcz0cm5tA@mail.gmail.com>
To: IETF QUIC WG <quic@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="000000000000c369e10611a8e786"
X-W3C-Hub-DKIM-Status: validation passed: (address=mattmathis@measurementlab.net domain=measurementlab-net.20230601.gappssmtp.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-5.9
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DMARC_MISSING=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, W3C_NW=1
X-W3C-Scan-Sig: puck.w3.org 1rbiHc-0013kl-1H 40a64c8d11d6b1c036d9b591c6d9169c
X-caa-id: 371d2f6527
X-Original-To: ietf-http-wg@w3.org
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)
Archived-At: <https://www.w3.org/mid/CAEsRLK8A4G6A_hpmoTtBzo+7ARAE8k5b-EbgbEFWVgcz0cm5tA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/51800
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/email/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

What benefits would there be to http3 over TCP vs just downgrading?   I
would bet that serializing http3 onto TCP forfeits (nearly) all of the
benefits of http3.

Fundamental issue: TCP has a 1 dimensional namespace for data (byte
offset).   QUIC has a 3 dimensional namespace for data (channel, message
sequence and byte offset).   There is no reversible mapping* from QUIC to
TCP that preserves QUIC's native asynchrony.

* Except minion, which uses lots of kernel support to add a framing layer
to break^H^H^H^H amend core TCP semantics.  Minion would be much harder to
deploy than a lot of other options.

On Sat, Feb 17, 2024 at 1:03 PM Hugo Landau <hlandau@openssl.org> wrote:

> On Sat, Feb 17, 2024 at 08:39:18AM +0900, Kazuho Oku wrote:
> > 2024年2月16日(金) 18:00 Hugo Landau <hlandau@openssl.org>:
> > >
> > > > 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
> > > >
> > > > As the co-author of the two drafts, let me explain why we have
> submitted
> > > > these.
> > > >
> > > > The rationale behind our proposal is the complexity of having two
> major
> > > > HTTP versions (HTTP/2 and HTTP/3), both actively used and extended.
> This
> > > > might not be the situation that we want to be in.
> > > >
> > > > HTTP/2 is showing its age. We discussed its challenges at the IETF
> 118 side
> > > > meeting in Prague.
> > > >
> > > > Despite these challenges, we are still trying to extend HTTP/2, as
> seen
> > > > with WebTransport. WebTransport extends both HTTP/3 and HTTP/2, but
> it does
> > > > so differently for each, due to the inherent differences between the
> HTTP
> > > > versions.
> > > >
> > > > Why are we doing this?
> > > >
> > > > Because HTTP/3 works only on QUIC. Given that UDP is not as
> universally
> > > > accessible as TCP, we find ourselves in a position where we need to
> > > > maintain and extend not only HTTP/3 but also HTTP/2 as a backstop
> protocol.
> > > >
> > > > This effort comes with its costs, which we have been attempting to
> manage.
> > > >
> > > > However, if we could create a polyfill for QUIC that operates on top
> of
> > > > TCP, and then use it to run HTTP/3 over TCP, do we still need to
> invest in
> > > > HTTP/2?
> > > >
> > > > Of course, HTTP/2 won’t disappear overnight.
> > > >
> > > > Yet, by making HTTP/3 more universally usable, we can at least stop
> > > > extending HTTP/2.
> > > >
> > > > By focusing our new efforts solely on HTTP/3, we can conserve energy.
> > > >
> > > > By making HTTP/3 universally accessible, and by having new extensions
> > > > solely to HTTP/3, we can expect a shift of traffic towards HTTP/3.
> > > >
> > > > This shift would reduce the necessity to modify our HTTP/2 stacks
> (we’d be
> > > > less concerned about performance issues), and provide us with a
> better
> > > > chance to phase out HTTP/2 sooner.
> > > >
> > > > Some might argue that implementing a polyfill of QUIC comes with its
> own
> > > > set of costs. However, it is my understanding that many QUIC stacks
> already
> > > > have the capability to read QUIC frames other than from QUIC packets,
> > > > primarily for testing purposes. This suggests that the effort would
> be more
> > > > about leveraging existing code paths rather than writing new code
> from
> > > > scratch. Furthermore, a QUIC polyfill would extend its benefits
> beyond just
> > > > HTTP, by aiding other application protocols that aim to be built on
> top of
> > > > QUIC, providing them accessibility over TCP.
> > > >
> > > > Please let us know what you think. Best regards,
> > > It's an interesting proposal. Looks fairly sensible.
> > > I could see a lot of other uses also for having a mapping of the QUIC
> > > application-level semantics without QUIC itself, such as for diagnostic
> > > use or intra-DC backhaul of incoming traffic.
> > >
> > > I question the utility of implicit length signalling. Unless there's a
> > > real use for this (maybe there is and I'm just not seeing it) I would
> > > probably just prohibit these encodings. The max_frame_size transport
> > > parameter proposed here cannot be reduced below 16384. So you're saving
> > > at most 3 bytes (to encode 16384) for every 16384 bytes. That would
> seem
> > > to yield an efficiency increase of 0.018%. For larger max_frame_size
> > > values this obviously gets even smaller.
> > >
> > > Is there a rationale to supporting this I'm not seeing?
> >
> > Thank you for your comments!
> >
> > Regarding your question, in the initial draft, we attempted to limit
> > changes to the way frames are communicated, while preserving the frame
> > encoding of QUIC v1 unchanged. The purpose of this approach is to
> > maximize code reuse between QUIC v1 and QUIC over Streams.
> >
> > For STREAM frames that lack length fields, we considered two options:
> > a) defining a method to deduce the length from another source, or
> > b) prohibiting the use of such frames.
> >
> > We opted for option (a) for consistency, under the assumption that it
> > would not be more complex to implementations than (b).
> >
> > However, it was a narrow decision. I acknowledge that opting for (b)
> > would also be straightforward to implement, especially since STREAM
> > frames lacking length fields are identified by specific frame types
> > (namely, 0x08, 0x09, 0x0c, 0x0d), and considering we're already
> > restricting the use of certain QUIC v1 frames.
> Yeah. I would strongly support (b) without a very clear motivating use
> case otherwise.
>
>

-- 
Thanks,
--MM--
Evil is defined by mortals who think they know "The Truth" and use force to
apply it to others.