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)

Kazuho Oku <kazuhooku@gmail.com> Fri, 16 February 2024 23:40 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 2A11EC14CF18 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 16 Feb 2024 15:40:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.857
X-Spam-Level:
X-Spam-Status: No, score=-2.857 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, MAILING_LIST_MULTI=-1, 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_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="KFbOMbzC"; dkim=pass (2048-bit key) header.d=w3.org header.b="N1wKK5x0"; dkim=pass (2048-bit key) header.d=gmail.com header.b="Tt0JOkI4"
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 nU8aH1Z4pOqt for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 16 Feb 2024 15:40:04 -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 F0BA7C15109C for <httpbisa-archive-bis2Juki@ietf.org>; Fri, 16 Feb 2024 15:39:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Subject:Content-Type:Cc:To:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=sqU9veKpLic+uFae5AiPgq+OEQ0HEzN35iLyYtLuHzY=; b=KFbOMbzC03lKscgjcpwNBfA4rA 1twRjNDeWGnPbliPjjfSk0wxdGk41aeLR/PBryazEjUedbTttYdHFkvAcaIvlURLZnZj+yryJw9BV yVatrjWADq+uknx/dYiUb0P/ErGaqt3cIcgdBvKnpJkimUU3TEieWIAT+zB5t3Nrj0cOodpvPW8II 1D8lGA3GleUurkGHiX4pJF/DJUd/MXSWRp6A5RMHYll1qEGJ/Jl22wwNo6LBQ6LLHukV9n/N5AKev jD9H1czSKwfZH0LvaEXhJjwJJ/g0yFRaRfYHfX0AX3iZPiGZJ2fLqJYICG7tYA328vm7Bd0ATzqBV TsTQkrfA==;
Received: from lists by lyra.w3.org with local (Exim 4.94.2) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1rb7ns-00BQug-Sp for ietf-http-wg-dist@listhub.w3.org; Fri, 16 Feb 2024 23:39:36 +0000
Resent-Date: Fri, 16 Feb 2024 23:39:36 +0000
Resent-Message-Id: <E1rb7ns-00BQug-Sp@lyra.w3.org>
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 <kazuhooku@gmail.com>) id 1rb7nr-00BQta-5P for ietf-http-wg@listhub.w3.org; Fri, 16 Feb 2024 23:39:35 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=w3.org; s=s1; h=Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:Reply-To; bh=sqU9veKpLic+uFae5AiPgq+OEQ0HEzN35iLyYtLuHzY=; t=1708126775; x=1708990775; b=N1wKK5x0+pOHeonWx3PhoZ/3XnEn1qcLCY/8D84IYlrS7lI7KN5aBtzaTVX7Je00mIXqEauKlSq S4g+eXcPbIDOWN9Ho/MD2sHhva/cXLm2KMblwv5WvdRpc6raawex4GNfw2i9tPn38XnAK5PCGSyi6 soO4bzBXPycraCEeDww4xFDPWtmUTb2X9ewrycUGOMLcZnXXHor1ebfAAyoy2W3Uho0myb77X1h4t uo68lTjGo7z6V302JHQp1hqPf8fRNkKQJCDbmHIlvL3uDLPdJemdfgP/UTiiZqA1N9aKOlOdDaos7 wWrKMAMJdvidbuM9PTMPg20HcW2/QDUX8KPQ==;
Received-SPF: pass (puck.w3.org: domain of gmail.com designates 2a00:1450:4864:20::62f as permitted sender) client-ip=2a00:1450:4864:20::62f; envelope-from=kazuhooku@gmail.com; helo=mail-ej1-x62f.google.com;
Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]) by puck.w3.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <kazuhooku@gmail.com>) id 1rb7nq-000aCG-10 for ietf-http-wg@w3.org; Fri, 16 Feb 2024 23:39:34 +0000
Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-a26ed1e05c7so352180766b.2 for <ietf-http-wg@w3.org>; Fri, 16 Feb 2024 15:39:34 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708126770; x=1708731570; darn=w3.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=sqU9veKpLic+uFae5AiPgq+OEQ0HEzN35iLyYtLuHzY=; b=Tt0JOkI4lZlq58Qd8i52SYriRjvCyeg6XxbLsC3+qhP58BqCJS/tFQy76whCCrLtdA ZAsyLimJRAE+Qde+qArapc029Q+1ee869BTecO+znS01IDtLeMqtFRbuit0hDl+P66Rm G5cGR0E6HEmtDHmJwuQ3asDvzHO9snk5/D6SH1wlB9I0R007bJ2FFPGgNOQ+RHzwgjY+ UMGhrh/fbgb0qE88VQHWXOQzwU77ADDGYx9B9nna+0z5vcsH6CAO977jkOHLNloH8BuW yW4X333EFkH0u3cVsAJOh4UAQI+zFPVyun0gb7n/Z3FGn4TE71KHbE0Y6LpDLeaDZS7y A1cA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708126770; x=1708731570; h=content-transfer-encoding:cc: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=sqU9veKpLic+uFae5AiPgq+OEQ0HEzN35iLyYtLuHzY=; b=tDVAuMdd9Fn+ZEUPiieBxoKsVYbOy60uCzvr5GjFOkEtpH3deZFlu2lwPwZkvgYmsL hAOtfoc+vPyw9TTLmFkZvKs8K3ObsQH9z/p3cfuS7lyKikznzPEoRu1GJLwIu1jvGqwq Ti1vvdk/EctbAPsownYyWgM0wfC1EhUDQoz7q0mbahUw2f3sqTOmU231V3hk1FJAPpNf jbFv+z3vPp9Ws+Ipz1yq5KB60Vmh50Q9OJbKSpYaxCCMWZAh0cymPSTppybSRqdGPkwU IwOAoSFKwdnojZV2d0tHSYKrKtdN2b0nEgnoOOUP1oZ/p6nh2h2DaNwf0qUF2Ori2nDO hFqw==
X-Forwarded-Encrypted: i=1; AJvYcCVqYHYP69WrQI0K6VU2Snit6aXk9zjrKz+mEhzxEPEVXCmgPVukScijbVICUMK0OksixvWiyn5zHHtxz4X9NbCTWSdg
X-Gm-Message-State: AOJu0YzcxUzLWX3WTJNoslfY5JxKdS8V7Kt2wlb5ztGQwffpu5feghDM xdxla49pwWbKHMVAXzZ4swDlFOm5vY6EpQ+y8j5qw7TvXnJ1B4qf8oJwo6Iv7YWkbvZIWLWTE68 ti19l6pCblD6Y2N9zKaiPqS+9BaE=
X-Google-Smtp-Source: AGHT+IFuB4eZTkuCdiHN9O2EQvgKWvamGjd/LzsBPoK3pf0c428ECmVgmVGszcONmJoBX/vInVV6k/rup3o2go0MbMY=
X-Received: by 2002:a17:906:b210:b0:a3e:12df:4a59 with SMTP id p16-20020a170906b21000b00a3e12df4a59mr434083ejz.44.1708126770123; Fri, 16 Feb 2024 15:39:30 -0800 (PST)
MIME-Version: 1.0
References: <170807134367.25372.9131938145722079298@ietfa.amsl.com> <CANatvzyLJnZH9UHaSoMWbv20VhEtAzY7HqRHCSWt-O65f24uwQ@mail.gmail.com> <Zc8kDgXmkEku_61q@camelot.lhh.devever.net>
In-Reply-To: <Zc8kDgXmkEku_61q@camelot.lhh.devever.net>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Sat, 17 Feb 2024 08:39:18 +0900
Message-ID: <CANatvzwVpe2k9gjKFfkuudueDndS0Btgmx-_LWSajt=6K2MxMQ@mail.gmail.com>
To: Hugo Landau <hlandau@openssl.org>
Cc: IETF QUIC WG <quic@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>, Lucas Pardue <lucas@lucaspardue.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-W3C-Hub-DKIM-Status: validation passed: (address=kazuhooku@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-9.1
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, DMARC_PASS=-0.001, FREEMAIL_FROM=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_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: puck.w3.org 1rb7nq-000aCG-10 e58a368f0423f49f9da7d2cb2b085dcb
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/CANatvzwVpe2k9gjKFfkuudueDndS0Btgmx-_LWSajt=6K2MxMQ@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/51787
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>

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.

-- 
Kazuho Oku