Re: [Webtransport] Choosing the Transport, pt. 2

Bernard Aboba <bernard.aboba@gmail.com> Tue, 10 November 2020 16:38 UTC

Return-Path: <bernard.aboba@gmail.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 21CD13A0A34 for <webtransport@ietfa.amsl.com>; Tue, 10 Nov 2020 08:38:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.597
X-Spam-Level:
X-Spam-Status: No, score=-1.597 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, FREEMAIL_FROM=0.001, GB_ABOUTYOU=0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 qSWvanMCa2dy for <webtransport@ietfa.amsl.com>; Tue, 10 Nov 2020 08:38:06 -0800 (PST)
Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) (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 E731D3A0C8E for <webtransport@ietf.org>; Tue, 10 Nov 2020 08:37:25 -0800 (PST)
Received: by mail-lj1-x22c.google.com with SMTP id 11so15446394ljf.2 for <webtransport@ietf.org>; Tue, 10 Nov 2020 08:37:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WMRkrX8Wkftl6FKqm/bBYQyC4BBm/Y1K3HSxcHM/XWE=; b=bQcac/z4zUlXD5vw/wbMQz+793SbQICT6T1WFtdCbMP0bWfmldShCeP12n2rz7McuW Xfm53zD6LsqzCSO0tFdXsyvzltN2M7p6CyZfWGlAQX0jsBJQDvGxfBXeLQeKtQ1FVPis QSpAoAhT8gBrkucmbCbJQYOsZVU/DHDl58Vs9301COIbeifJH2v5SbT2dBRPkzUSdkob jL+MdLWr8oCJqrvdG9GIv8i6LgYOIZyq77UYqv5rf4YaizSApUM8zBa95NUDyCDsLCbq Cu0vLfcQZIS0dXhrAnGuwGgPSdsEGjDqB09eAB7yF3bkSoXeT8/ODPzgwW7g4rBIoM1Z gqsA==
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=WMRkrX8Wkftl6FKqm/bBYQyC4BBm/Y1K3HSxcHM/XWE=; b=ARMNAulWoWgEO4JoiehYgDCaMmx80Yuyj+nqZkTguAm2ft6EvLEu+EXwQLeFcSZRyI UecHXeauBhBlSx2xua5IW7iK3zeVipiQcfTqGlNVRCUCg9UMczKNBTWds0skowLsIJED gdA+FwNBRlSwF4zGSMUSf8eCMZBsgXGhJfOPtRZ3GN0k/SnCstq6o3KuNN4EeCsm0I3E 6AFik+qzROq8/W70FbWjrYzGRiS4Tb3/aj9g3tyMWZnHIP9g/8CUOTViXMuMugqs95cs KQl1DU2vGB/dwbBQ8MF0HBrkXAdTO4jjDMoO7cjHeblIDTlZ9drpecwXZkop8sMn/bbG i2CA==
X-Gm-Message-State: AOAM533cYQJeyTfwy4m/8oZv3mO3qU5gJWUtrqu1cxbriBxDXIePyGH9 igLcCrorIu7axemKMW2EEoNKzqojF8AWQjP9mdy0E6dbGVDcVg==
X-Google-Smtp-Source: ABdhPJxAyt3qPEbn9lIUkPFdElTQtEQA5sMAjnZenyXa2h2An6y0z3BGUtpCXr2SgrvZSGyE54C4ZFBam5q5Nw5i/u4=
X-Received: by 2002:a2e:7216:: with SMTP id n22mr9147804ljc.187.1605026243642; Tue, 10 Nov 2020 08:37:23 -0800 (PST)
MIME-Version: 1.0
References: <CAAZdMafdbwusA3Ks_k=RW9FXCh+OMj90Y_7A7Pj5cBHTXgyQPA@mail.gmail.com> <98dfa9e0-6a37-4b79-9eb5-b4bbf8b6850d@www.fastmail.com>
In-Reply-To: <98dfa9e0-6a37-4b79-9eb5-b4bbf8b6850d@www.fastmail.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Tue, 10 Nov 2020 08:37:13 -0800
Message-ID: <CAOW+2duCDcnzuc4YHdWZafo+cv4-RBnJ1t3OMniTCbdVpEmLxg@mail.gmail.com>
To: Martin Thomson <mt@lowentropy.net>
Cc: WebTransport <webtransport@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000001b8a3a05b3c34b06"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/N4i0K8VoLczsqNMdOk5yC4i6Xng>
Subject: Re: [Webtransport] Choosing the Transport, pt. 2
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: Tue, 10 Nov 2020 16:38:08 -0000

Martin said:

"It seems your arguments are based on it being possible to hide a bunch of
this complexity under a unified API.  That's great, but it doesn't mean
that the abstraction won't leak.  I'm sure that running over h2 will look
very different to running on bare QUIC."

[BA] There is a question whether h2 is supported within the WebTransport
API:
https://github.com/w3c/webtransport/issues/164

Part of the concern is the complexity that would be added by supporting
failover within the API, rather than outside of it.

Currently, if QUIC and associated functionality (such as datagram support)
cannot be negotiated, the WebTransport constructor will fail.  Among other
things this implies that if the WebTransport constructor succeeds and the
ready promise is resolved, that the datagramWritable and datagramReadable
attributes are always defined.

It does not make sense to me to pretend that datagram functionality is
available when running over a transport that does not support datagrams.

On Mon, Nov 9, 2020 at 9:05 PM Martin Thomson <mt@lowentropy.net> wrote:

> Hey Victor,
>
> I have a hard time understanding this.
>
> If I recall correctly, your original proposal involved multiple
> protocols.  So this sounds like you have discovered something that supports
> that view, or at least has consolidated your own opinion.  But I don't see
> any actual evidence here to support building multiple protocols.
>
> Building one protocol is hard enough.  It seems like we signed on to do
> two here, on the basis that we need a fallback.  But I don't see how that
> naturally extends to three.  On the contrary, just one protocol is pretty
> tempting at this point.  TCP fallback could be handled by a websockets
> polyfill outside of the browser (or a WebRTC polyfill for those who are
> less complexity-averse).
>
> It seems your arguments are based on it being possible to hide a bunch of
> this complexity under a unified API.  That's great, but it doesn't mean
> that the abstraction won't leak.  I'm sure that running over h2 will look
> very different to running on bare QUIC.
>
> That doesn't meant that I'm not curious about your semantic unification
> idea.  I don't understand that either, but it's an abstract notion with
> some appeal to me.
>
> Cheers,
> Martin
>
> On Wed, Oct 28, 2020, at 03:22, Victor Vasiliev wrote:
> > (previous iteration of this thread here
> > <
> https://mailarchive.ietf.org/arch/msg/webtransport/CEGNLkMqrvug3uPyPmQIXnWVIAY/
> >)
> >
> > Hello everyone,
> >
> > As you might remember, we've still not decided which of QuicTransport,
> > Http2Transport and Http3Transport we should adapt:
> >  1. There has been a strong interest in running WebTransport over HTTP.
> > HTTP allows us to do connection pooling, a well-understood mechanism of
> > falling back to TCP and better integration with existing load balancers.
> >  2. There has also been interest in running WebTransport over QUIC
> > itself, due to the complexity of WebTransport over HTTP, both in terms
> > of design and in terms of writing servers for it (nice discussion here
> > <
> https://mailarchive.ietf.org/arch/msg/webtransport/O8P5nmmw0ywra1VWtJmS4lBglhI/
> >).
> >  3. There has been a desire to pick only one of those.
> > I've been reworking <https://github.com/vasilvv/webtransport/pull/18>
> > the QuicTransport draft based on what we've found while implementing it
> > in Chrome.  Doing that, and observing how it becomes more and more like
> > HTTP with every revision, has convinced me more than ever that all of
> > the transports above should be the same thing conceptually, differing
> > only in wire protocol.  That observation was very helpful, since it
> > allowed us to replace <https://github.com/w3c/webtransport/issues/129>
> > all of the different API entry points with just one, already
> > dramatically simplifying the situation.  Same observation also can
> > potentially help us make some progress here.  We can unify all of the
> > proposals semantically (make them share a URL scheme and the headers
> > format), and then the variants just become different encodings.
> >
> > If we compare the WebTransport proposals to the HTTP ecosystem, besides
> > the obvious equivalences (webtransport-http2 ≅ HTTP/2,
> > webtransport-http3 ≅ HTTP/3), it becomes apparent that
> > webtransport-quic ≅ HTTP/1.1.  This gives us a hint of why we might
> > want all three of those.  This is also really nice, since we know how
> > to switch between all of those protocols, and we have a lot of
> > experience with an ecosystem shaped like that: webtransport-quic and
> > webtransport-http3 can be switched via ALPN, webtransport-http2 can be
> > raced in parallel with the former.
> >
> > So I propose that we adapt all of them.  As it stands,
> > webtransport-quic is a simple-to-implement and proven-to-work solution
> > that should not require much of working group's time.  There are
> > questions regarding whether webtransport-http is too complex; I believe
> > that we won't know unless we try, and since there's clearly interest in
> > trying, I believe we should adopt that draft and actually start working
> > out those complex details.
> >
> > What does everyone think?
> >
> > Cheers,
> >   Victor.
> > --
> > 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
>