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

Eric Rescorla <ekr@rtfm.com> Thu, 12 November 2020 14:34 UTC

Return-Path: <ekr@rtfm.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 0A0563A112C for <webtransport@ietfa.amsl.com>; Thu, 12 Nov 2020 06:34:55 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.396
X-Spam-Level:
X-Spam-Status: No, score=-1.396 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, GB_ABOUTYOU=0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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=rtfm-com.20150623.gappssmtp.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 4_LlG3PqxX-h for <webtransport@ietfa.amsl.com>; Thu, 12 Nov 2020 06:34:50 -0800 (PST)
Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) (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 5A4863A1121 for <webtransport@ietf.org>; Thu, 12 Nov 2020 06:34:50 -0800 (PST)
Received: by mail-lf1-x12e.google.com with SMTP id f11so8766365lfs.3 for <webtransport@ietf.org>; Thu, 12 Nov 2020 06:34:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=WaJNiZzj0YYDB1nvhpSgZan3rijNt7HOL6gZIb+ip1A=; b=M149UZeBEN2BhVM4J13Ux0Ae/fIzkaLBcHr5ej4p10Eq/cbL3s17Qry4wlIAEMoAdH JT8PBwTKVHIzSUaFPFNE8flCTX8EV0Hiwi1Ed01J4UAT932OHFfaC8ksgALNY3RJHvJN 24oEA28T2UYqNw25gNveu+6SS1V2dXk3CmxRpYudQCXGB4Fz5KPomsSKurEWrOfGdzKj ZVOFnnHNBnbKdVqPAgMgzIuGgY4ZA1iLmFKI+xiGyqVJ6K8al0/oshJCV4ULyP/6ac2z zKebHqY+BU3Onldip31Dj0gwpA3RwHnieCr6W6GwOk2nBhEhUbsKpMxi5NA4caN/QpgZ 60nw==
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=WaJNiZzj0YYDB1nvhpSgZan3rijNt7HOL6gZIb+ip1A=; b=ZS74RUtHegVcEFBqxmiNyJfxH+hFx1aOHJ5nm40ak5rLCwTKhJehPM+4YsvLtU692R Z4Ul26LeCylGM5c1j83wO1DwKwlyxmLMHL/xZm5Wp/O1hdD4xCX1U3GxbMfwAKg5FoBL lczWvfTRrnmMmhj0fhUASrFshHpu32ytMfqyPBOYpbwbAi+kOk+uNh9KJgNq1bmeC7xZ YTwrznj+UL3EWJgUKHSV56vwVNP6MRW0UXIIjx5iaTVj2nX/BYX9ngtd8+JXhAn6v0xt cUgyd4jyWDrChZxZCO6DTzfd4CM4TzwopULgZy3YhwEjQCn5aRz5IawehKhLr7oJVKUM xCKg==
X-Gm-Message-State: AOAM532BtJAyr6wgQrT6ZPUGCrV02l8EeNd2/MBzOfIfAzwxqNa6Bron JPWlM9GM0Rml+I/9Pd98y+rGHN5J4EagNlhS9qwoPw==
X-Google-Smtp-Source: ABdhPJyde+rb4ueMObn/Ag59z4jr1kHq152hmNMynYNR33cwq/w8z9NHBY3UpRgx+mtJOkN/S/4kvYxhJBlYhPtMz7g=
X-Received: by 2002:a05:6512:683:: with SMTP id t3mr1195281lfe.234.1605191688417; Thu, 12 Nov 2020 06:34:48 -0800 (PST)
MIME-Version: 1.0
References: <CAAZdMafdbwusA3Ks_k=RW9FXCh+OMj90Y_7A7Pj5cBHTXgyQPA@mail.gmail.com> <98dfa9e0-6a37-4b79-9eb5-b4bbf8b6850d@www.fastmail.com> <CAOW+2duCDcnzuc4YHdWZafo+cv4-RBnJ1t3OMniTCbdVpEmLxg@mail.gmail.com>
In-Reply-To: <CAOW+2duCDcnzuc4YHdWZafo+cv4-RBnJ1t3OMniTCbdVpEmLxg@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Thu, 12 Nov 2020 06:34:12 -0800
Message-ID: <CABcZeBNfGau0Unyb7A2CnpSpX4rBXC4thjoZmikt7O-QwCJk=w@mail.gmail.com>
To: Bernard Aboba <bernard.aboba@gmail.com>
Cc: Martin Thomson <mt@lowentropy.net>, WebTransport <webtransport@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000062986f05b3e9d0db"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/S_0PsKqmKANX2GNeKW-GrPfoS-Q>
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: Thu, 12 Nov 2020 14:34:55 -0000

On Tue, Nov 10, 2020 at 8:38 AM Bernard Aboba <bernard.aboba@gmail.com>
wrote:

> 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.
>

I don't agree with this. The availability or non-availability of UDP is
unpredictable to users and context-dependent, and the user experience of
having things just not in one network is extremely frustrating. Moreover,
we have extensive experience that it is possible to provide inferior, yet
somewhat acceptable, low-latency applications such as videoconferencing
even over non-datagram transport (hence the support for ICE TCP and TURN
TCP etc in WebRTC), especially in fast networks. I believe the same
reasoning applies here.

-Ekr

>
> 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
>>
> --
> Webtransport mailing list
> Webtransport@ietf.org
> https://www.ietf.org/mailman/listinfo/webtransport
>