Re: [Webtransport] Http3Transport: Connection-basd Functionality
Ian Swett <ianswett@google.com> Sun, 21 February 2021 17:57 UTC
Return-Path: <ianswett@google.com>
X-Original-To: webtransport@ietfa.amsl.com
Delivered-To: webtransport@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id 16DE93A0DD3
for <webtransport@ietfa.amsl.com>; Sun, 21 Feb 2021 09:57:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Level:
X-Spam-Status: No, score=-17.599 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1,
DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5,
USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
header.d=google.com
Received: from mail.ietf.org ([4.31.198.44])
by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id PUn8uTXfB_a3 for <webtransport@ietfa.amsl.com>;
Sun, 21 Feb 2021 09:57:25 -0800 (PST)
Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com
[IPv6:2a00:1450:4864:20::42a])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 1B6033A0DD4
for <webtransport@ietf.org>; Sun, 21 Feb 2021 09:57:25 -0800 (PST)
Received: by mail-wr1-x42a.google.com with SMTP id v15so16721941wrx.4
for <webtransport@ietf.org>; Sun, 21 Feb 2021 09:57:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025;
h=mime-version:references:in-reply-to:from:date:message-id:subject:to
:cc; bh=/b/86pxYVFhRy0xDtLFjm0KfePGNZL0LLL3mP08O8pY=;
b=fNngrQKS+XgVHMG70UBhPS+R2wRoC0O1yLiiHUq9KEKaWhxcfW5fPpXLdVcUIdD9L0
NmiRahc+DJl/Oa8RNQjCdNLim/QA78DG4sWm1bs7whg5nw/J99/2THkT7i/wJT55xLi5
zsTK8zU0sNiDcRvwGqZRLeC33XF6jGhIspse3V1dTVzAauvG1dFfLWscdiYlU3XywgYa
0YIJvkHXGoo04HUuxKCdgL1GHq9U9TIksWgpai6gmWQUKlawVWLQj8CpsW7cTd62DhTs
7wN1es1nudRgminoKNBTaSkh/0sfWeMmlQmZEiiRlp/XznJXNij/hoPcc57cw5eawFC4
o6gg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20161025;
h=x-gm-message-state:mime-version:references:in-reply-to:from:date
:message-id:subject:to:cc;
bh=/b/86pxYVFhRy0xDtLFjm0KfePGNZL0LLL3mP08O8pY=;
b=ZCRN695/+iSucffpv2ae/fa2Mc4PB/iU6N6YRQ5FnVIt7ZHu1x4u2FsbjWmuKrQNMT
eboozrKN3JCACaoc3Zgj4E3Q7ZzAG61BolAKQY3DTmcEEKaOhvgptgDu7GTFCKUiIS+m
vC9DVXFd3/GHHxbYuwPYiRQzoN+k9+5cVGNlxbdgp4euKHrZUFFB8qTL77ycHQjrppJz
1m8O6O6W9dR4aytHKMgmm1VJDiDVD0G0m0ppazvnG1ChI4DIK1qPwlQSItyE91JBFoOJ
sePwZ+UuwDdhuXtYrOHjsc4l+2labuXxyjqo1NrslQGCbYe8OkBJleCcaUpMoRIXevVx
hiPQ==
X-Gm-Message-State: AOAM530K6ql7hHY2jv3pn4x7Aazu05gX/jfsBxXLV90qXesjIUxolGNu
UpLz8FERNFcn0m2+/Tcxx5S0Ot/1qsTBdt3NcceLTg==
X-Google-Smtp-Source: ABdhPJzbP68hoYob7UVTmcNWo/CIeeSSzKCv0cQKK6rns3BpSFSemsTwZoQyGcytewjqB4ZeZh2HEbRxXW9fSGUdE2U=
X-Received: by 2002:adf:f484:: with SMTP id l4mr7019646wro.409.1613930243264;
Sun, 21 Feb 2021 09:57:23 -0800 (PST)
MIME-Version: 1.0
References: <CAHVo=ZmRketpx02KeYPSHSB2gQNvYi6RSs3HrXA1isYTgYorLg@mail.gmail.com>
<CAOW+2duU6Xg98Tpec6NbEL5pyxAShp76rPMyZV07Wpmx3pJX2Q@mail.gmail.com>
<CAHVo=Z=o-oMfWaOUMxjtgaTNVvo28ot5EhinE+uio19-c2S0Gg@mail.gmail.com>
<CAPDSy+6tWTWyL6KHZTGJ3z3L6ZGJmTrVyiPiq0zRo-SGUb39tg@mail.gmail.com>
<CAHVo=Z=gsLRuFFuYiXo73HwPiThgGH5n_scw7Bn8aNrAjQ2Dig@mail.gmail.com>
<CAPDSy+6LT9dMS6RofRzdqL6R5VFDRfv21qV+Xd9jx22w2yyuZA@mail.gmail.com>
In-Reply-To: <CAPDSy+6LT9dMS6RofRzdqL6R5VFDRfv21qV+Xd9jx22w2yyuZA@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Sun, 21 Feb 2021 12:57:11 -0500
Message-ID: <CAKcm_gO4GQ9uSOFQjw6W-CXkOexcKiuswUZyaTfc5KykAH2Lyg@mail.gmail.com>
To: David Schinazi <dschinazi.ietf@gmail.com>
Cc: Luke Curley <kixelated@gmail.com>, WebTransport <webtransport@ietf.org>,
Bernard Aboba <bernard.aboba@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000d7e2eb05bbdc6ad3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/ql6aD3gv-XTeuQVuy8g_7nkPbWs>
Subject: Re: [Webtransport] Http3Transport: Connection-basd Functionality
X-BeenThere: webtransport@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <webtransport.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webtransport>,
<mailto:webtransport-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webtransport/>
List-Post: <mailto:webtransport@ietf.org>
List-Help: <mailto:webtransport-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webtransport>,
<mailto:webtransport-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 21 Feb 2021 17:57:28 -0000
The MAX_STREAMS/MAX_DATA example does seem like a tricky point I hadn't fully appreciated earlier. In H3, we took the attitude that using those transport connection level features was the right thing to do, which I think makes sense because HTTP/2 had too much transport(non-HTTP) functionality in it. But if we allow pooling of H3 with WebTransport or other applications which need to use MAX_STREAMS/MAX_DATA, then each other application needs to add transport-style mechanisms and the H3 implementation probably needs to be aware that MAX_STREAMS needs to be adjusted by the other applications MAX_STREAMS in order to have the intended effect. I think I'm leaning towards one of two options: We don't care about isolating the pooled H3 session from the WebTransport session when pooling occurs, or we need to spend more time thinking about this 'session-layer'(to use Roberto's phrasing) problem in general now or we're going to create some problems down the road. Ian On Fri, Feb 19, 2021 at 7:12 PM David Schinazi <dschinazi.ietf@gmail.com> wrote: > Thanks! > > WebTransport is intentionally designed to be limited because we don't want > to expose too much to JavaScript. > Similarly, when JavaScript is using WebSocket, we don't let it access TLS > extensions or TCP flow control information, as doing that could cause > security issues. > > To your MAX_STREAMS/MAX_DATA example, I think there's value in having > WebTransport-specific flow control, but I don't think that should rely on > the underlying transport and connection, we can easily build that inside > WebTransport itself. > In other words, if there are QUIC-connection-level features that we think > might benefit WebTransport applications, we should analyze their security > implications and add those specifically to WebTransport instead of giving > JavaScript blanket control over connection properties. > > David > > On Fri, Feb 19, 2021 at 2:59 PM Luke Curley <kixelated@gmail.com> wrote: > >> Good examples, because HTTP/3 is currently the only QUIC application and >> it doesn't utilize both of those. But QUIC doesn't prohibit an >> application/protocol from utilizing the connection ID or TLS extensions. It >> could be useful for some future purpose, like the client using a >> pre-arranged connection ID (encoded with routing info?) or new TLS >> extensions/parameters (remove a round trip for a handshake?). >> >> WebTransport does prohibit using these connection-level functionalities >> for the sake of pooling. None of this is critical functionality, but it >> might hamper future efforts which is why I wanted to bring up the one-way >> door. >> >> It's on my mind because I'm designing a video protocol over QUIC. It >> would be nice if I could use MAX_STREAMS, MAX_DATA, etc, but as it stands >> now, I'll need to implement my own flow control mechanisms for WebTransport >> (browser) support. >> >> On Fri, Feb 19, 2021 at 2:27 PM David Schinazi <dschinazi.ietf@gmail.com> >> wrote: >> >>> Hi Luke, >>> >>> Can you elaborate on what benefits you see in exposing >>> QUIC-connection-level information to a WebTransport application? >>> In particular, which information would benefit WebTransport >>> applications? Because for example I don't see how knowing the connection ID >>> or transport parameters would be useful, but I could just be missing >>> something. >>> >>> David >>> >>> On Fri, Feb 19, 2021 at 1:56 PM Luke Curley <kixelated@gmail.com> wrote: >>> >>>> Oh man I just noticed the typo in the email subject... that's >>>> embarrassing. >>>> >>>> I mentioned this earlier, but I think pooling is a potential future >>>> optimization. The benefit is that pooling can avoid additional TLS >>>> handshakes iff a client has multiple WebTransport or HTTP/3 connections to >>>> the same host (rare?). The cost of pooling is that connection-level QUIC >>>> functionality is no longer available, and must be avoided or worked around. >>>> >>>> I liked how QuicTransport was connection oriented and I think something >>>> similar could be done for Http3Transport without precluding pooling support >>>> in the future. >>>> >>>> On Fri, Feb 19, 2021 at 1:32 PM Bernard Aboba <bernard.aboba@gmail.com> >>>> wrote: >>>> >>>>> Luke -- >>>>> >>>>> Thanks for bringing this up! >>>>> >>>>> At the Interim meeting, we talked about having the API provide some >>>>> control over pooling (e.g. allowing an appiication to specify that a >>>>> WebTransport connection not be pooled), as well as allowing a server to >>>>> specify that it doesn't support pooling. >>>>> >>>>> In W3C WebTransport WG we are now in the process of developing PRs to >>>>> deal with pooling, and are running into some of the same questions, such >>>>> as: >>>>> >>>>> 1. Under what circumstances can WebTransport connections be pooled, >>>>> and what kinds of pooling are allowed? >>>>> PR: https://github.com/whatwg/fetch/pull/1171 >>>>> >>>>> 2. What are the differences in API behavior between Http3Transport >>>>> and quic-transport? >>>>> PR: https://github.com/w3c/webtransport/pull/205 >>>>> >>>>> 3. For Http3Transport, are there differences in API behavior between >>>>> non-sharable connections and sharable ones (e.g. behavior of >>>>> webtransport.close())? >>>>> Also coming up in PR: https://github.com/w3c/webtransport/pull/205 >>>>> >>>>> 4. For a non-sharable WebTransport connection, is it possible to >>>>> obtain some of the stats that were supported for quic-transport, but would >>>>> not be appropriate for a sharable transport? >>>>> Issue: https://github.com/w3c/webtransport/issues/206 >>>>> >>>>> >>>>> >>>>> On Fri, Feb 19, 2021 at 12:49 PM Luke Curley <kixelated@gmail.com> >>>>> wrote: >>>>> >>>>>> Hey everybody, I wanted to start the discussion now that Victor's >>>>>> document has been adopted! >>>>>> >>>>>> I filed some issues >>>>>> <https://github.com/ietf-wg-webtrans/draft-ietf-webtrans-http3> earlier >>>>>> on Github over a few small things. Overall, the draft is clean and it's >>>>>> nice that we've converged on a single WebTransport protocol. One bigger >>>>>> topic I wanted to discuss is the ramifications of connection pooling. >>>>>> >>>>>> Broadly speaking, any QUIC parameters or frames that operate on the >>>>>> connection as a whole can no longer be exposed to the application. >>>>>> Specifically: MAX_DATA, MAX_STREAMS, CONNECTION_CLOSE*, connection ID, and >>>>>> any transport parameters. >>>>>> >>>>>> The WebTransport specification specifically mentions MAX_STREAMS, as >>>>>> HTTP/3 servers can no longer use this to limit the number of simultaneous >>>>>> requests. Returning an error code instead of utilizing the built-in flow >>>>>> control is not a problem, but it's not ideal either. >>>>>> >>>>>> I believe this is a one-way door in general. Any protocols or >>>>>> applications built on top of QUIC will no longer be able to use >>>>>> connection-based QUIC features without breaking WebTransport compatibility. >>>>>> This primarily means HTTP/3, but it also includes any new protocols that >>>>>> utilize QUIC and desire browser support. >>>>>> >>>>>> What does the group think? Is this something worth caring about? >>>>>> -- >>>>>> Webtransport mailing list >>>>>> Webtransport@ietf.org >>>>>> https://www.ietf.org/mailman/listinfo/webtransport >>>>>> >>>>> -- >>>> Webtransport mailing list >>>> Webtransport@ietf.org >>>> https://www.ietf.org/mailman/listinfo/webtransport >>>> >>> -- > Webtransport mailing list > Webtransport@ietf.org > https://www.ietf.org/mailman/listinfo/webtransport >
- [Webtransport] Http3Transport: Connection-basd Fu… Luke Curley
- Re: [Webtransport] Http3Transport: Connection-bas… Bernard Aboba
- Re: [Webtransport] Http3Transport: Connection-bas… Luke Curley
- Re: [Webtransport] Http3Transport: Connection-bas… David Schinazi
- Re: [Webtransport] Http3Transport: Connection-bas… Luke Curley
- Re: [Webtransport] Http3Transport: Connection-bas… David Schinazi
- Re: [Webtransport] Http3Transport: Connection-bas… Ian Swett