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)

Michael Welzl <michawe@ifi.uio.no> Sat, 17 February 2024 11:30 UTC

Return-Path: <michawe@ifi.uio.no>
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 73E5AC151091 for <quic@ietfa.amsl.com>; Sat, 17 Feb 2024 03:30:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.005
X-Spam-Level:
X-Spam-Status: No, score=-2.005 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=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=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ifi.uio.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 kMgpUeNes4vU for <quic@ietfa.amsl.com>; Sat, 17 Feb 2024 03:30:14 -0800 (PST)
Received: from mail-out02.uio.no (mail-out02.uio.no [IPv6:2001:700:100:8210::71]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 40FD9C14F690 for <quic@ietf.org>; Sat, 17 Feb 2024 03:30:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ifi.uio.no; s=key2309; h=References:To:Cc:In-Reply-To:Date:Subject:Mime-Version: Content-Type:Message-Id:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=xsNK28mkNUAGMLCvatHTKgorw0Yaqbm45QkMdCVdjs4=; b=VqAKyVh0mJ7oaqN9mkvCa9X5nb rmkcfXL/CGGw5r1wr+tL8srKaPU7Z6G3297noY2cL1DsCZ+1Hhyie6Gm6MzJcms7WbKslLNBeR4fK c2GfvLKB0MupaYLPqAVOeeT4QnOk5k7O//Leg3O/dQkhl6/fdn8PvV0Yc4mWl90KxG2HHd1oCHQ1o tExVP+TDwU1WDpN4VxeKEPJp526Fadr7gJxzkFpv3hr8lAHrLhhl/uodF73EpQiqV7Oo29i9lLpam 3XNEixFE/chwMi9s69YHODt00tw0k3aun7Lkcb6QnZUqEt1yhoip7rgpfrjk3/SXe3K8BI1Slu2aV cziL43/A==;
Received: from mail-mx01.uio.no ([129.240.10.26]) by mail-out02.uio.no with esmtps (TLS1.2) tls TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (Exim 4.96.2) (envelope-from <michawe@ifi.uio.no>) id 1rbItV-00A74n-35; Sat, 17 Feb 2024 12:30:09 +0100
Received: from [185.176.244.74] (helo=smtpclient.apple) by mail-mx01.uio.no with esmtpsa (TLS1.2:ECDHE-ECDSA-AES256-GCM-SHA384:256) user michawe (Exim 4.96.2) (envelope-from <michawe@ifi.uio.no>) id 1rbItU-0004Lk-1t; Sat, 17 Feb 2024 12:30:09 +0100
From: Michael Welzl <michawe@ifi.uio.no>
Message-Id: <078A16AD-9824-41B8-935D-0E4760FF1E22@ifi.uio.no>
Content-Type: multipart/alternative; boundary="Apple-Mail=_36F7FE01-8502-472D-99FD-E86C6B58F4E4"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.1\))
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)
Date: Sat, 17 Feb 2024 12:30:07 +0100
In-Reply-To: <CANatvzyLJnZH9UHaSoMWbv20VhEtAzY7HqRHCSWt-O65f24uwQ@mail.gmail.com>
Cc: IETF QUIC WG <quic@ietf.org>, HTTP Working Group <ietf-http-wg@w3.org>, Lucas Pardue <lucas@lucaspardue.com>
To: Kazuho Oku <kazuhooku@gmail.com>
References: <170807134367.25372.9131938145722079298@ietfa.amsl.com> <CANatvzyLJnZH9UHaSoMWbv20VhEtAzY7HqRHCSWt-O65f24uwQ@mail.gmail.com>
X-Mailer: Apple Mail (2.3696.120.41.1.1)
X-UiO-SPF-Received: Received-SPF: neutral (mail-mx01.uio.no: 185.176.244.74 is neither permitted nor denied by domain of ifi.uio.no) client-ip=185.176.244.74; envelope-from=michawe@ifi.uio.no; helo=smtpclient.apple;
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, HTML_MESSAGE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, UIO_MAIL_IS_INTERNAL=-5)
X-UiO-Scanned: A965E80D0B69CFFC4896357D776442E0D95FFCE4
X-UiOonly: FA141BDDC2DE0648DF76DA388ECE87C9BC3E5FC1
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Lv5XQx4-Pyh7v45cBAfTnjJfHHw>
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: Sat, 17 Feb 2024 11:30:19 -0000

Hi,

QUIC over TCP… I hope that the people doing this are aware of the old work on Minion?   If not, see:
https://datatracker.ietf.org/doc/html/draft-iyengar-minion-protocol-02 <https://datatracker.ietf.org/doc/html/draft-iyengar-minion-protocol-02>
https://datatracker.ietf.org/doc/html/draft-iyengar-minion-concept-02 <https://datatracker.ietf.org/doc/html/draft-iyengar-minion-concept-02>
https://www.usenix.org/conference/nsdi12/technical-sessions/presentation/nowlan <https://www.usenix.org/conference/nsdi12/technical-sessions/presentation/nowlan>

IIRC, the original Minion idea was to introduce a marker in the bytestream, but the later development (perhaps captured in the drafts above?) worked off the principle that protocols above TCP already have these kinds of markers anyway - i.e., it doesn’t even need a change to the wire protocol, it’s just a “vertical” change about how to talk to the TCP buffer below.

Considering this, it seems almost silly to me to ignore this and map QUIC over TCP when streams can so nicely be implemented via TCP too, just by “breaking” the TCP API “contract".

My apologies if this is already a part of the plan - I just wanted to point out this work because at this point, it’s old and might have been forgotten - yet it seems to fit the idea of mapping QUIC over TCP like a glove.

Cheers,
Michael



> On Feb 16, 2024, at 9:24 AM, Kazuho Oku <kazuhooku@gmail.com> 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 <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 <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,
> 
> ---------- Forwarded message ---------
> From: <internet-drafts@ietf.org <mailto:internet-drafts@ietf.org>>
> Date: 2024年2月16日(金) 17:15
> Subject: New Version Notification for draft-kazuho-httpbis-http3-on-streams-00.txt
> To: Kazuho Oku <kazuhooku@gmail.com <mailto:kazuhooku@gmail.com>>, Lucas Pardue <lucas@lucaspardue.com <mailto:lucas@lucaspardue.com>>
> 
> 
> A new version of Internet-Draft draft-kazuho-httpbis-http3-on-streams-00.txt
> has been successfully submitted by Kazuho Oku and posted to the
> IETF repository.
> 
> Name:     draft-kazuho-httpbis-http3-on-streams
> Revision: 00
> Title:    HTTP/3 on Streams
> Date:     2024-02-16
> Group:    Individual Submission
> Pages:    5
> URL:      https://www.ietf.org/archive/id/draft-kazuho-httpbis-http3-on-streams-00.txt <https://www.ietf.org/archive/id/draft-kazuho-httpbis-http3-on-streams-00.txt>
> Status:   https://datatracker.ietf.org/doc/draft-kazuho-httpbis-http3-on-streams/ <https://datatracker.ietf.org/doc/draft-kazuho-httpbis-http3-on-streams/>
> HTML:     https://www.ietf.org/archive/id/draft-kazuho-httpbis-http3-on-streams-00.html <https://www.ietf.org/archive/id/draft-kazuho-httpbis-http3-on-streams-00.html>
> HTMLized: https://datatracker.ietf.org/doc/html/draft-kazuho-httpbis-http3-on-streams <https://datatracker.ietf.org/doc/html/draft-kazuho-httpbis-http3-on-streams>
> 
> 
> Abstract:
> 
>    This document specifies how to use HTTP/3 on top of bi-directional,
>    byte-oriented streams such as TLS over TCP.
> 
> Discussion Venues
> 
>    This note is to be removed before publishing as an RFC.
> 
>    Discussion of this document takes place on the HTTP Working Group
>    mailing list (ietf-http-wg@w3.org <mailto:ietf-http-wg@w3.org>), which is archived at
>    https://lists.w3.org/Archives/Public/ietf-http-wg/ <https://lists.w3.org/Archives/Public/ietf-http-wg/>.
> 
>    Source for this draft and an issue tracker can be found at
>    https://github.com/kazuho/draft-kazuho-httpbis-http3-on-streams <https://github.com/kazuho/draft-kazuho-httpbis-http3-on-streams>.
> 
> 
> 
> The IETF Secretariat
> 
> 
> 
> 
> -- 
> Kazuho Oku