[Webtransport] Choosing the Transport, pt. 2

Victor Vasiliev <vasilvv@google.com> Tue, 27 October 2020 16:22 UTC

Return-Path: <vasilvv@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 D96963A10C0 for <webtransport@ietfa.amsl.com>; Tue, 27 Oct 2020 09:22:28 -0700 (PDT)
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 lbsIfBdxKHHE for <webtransport@ietfa.amsl.com>; Tue, 27 Oct 2020 09:22:25 -0700 (PDT)
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) (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 7C9BB3A10C1 for <webtransport@ietf.org>; Tue, 27 Oct 2020 09:22:20 -0700 (PDT)
Received: by mail-lj1-x22a.google.com with SMTP id 2so2386744ljj.13 for <webtransport@ietf.org>; Tue, 27 Oct 2020 09:22:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=dz2X6DLMuTu2L7wdq7JRVL139O15T4v+SW0kdtMXyUQ=; b=OHkoM5eP1CJ5kDzbITXAzAkqMVKDZjcD5Hxpm9vxz1b+hU8XoluWXeTliwda8iFzPf Mao2gF/CvmpKdSHOCYOG4h8SFIfLYNTwAtCYePd52VBz0+BijqAPxnckEYIHanrXYynM Hf4awtJahdPLGGlW6M9BxOt7CpcGYdO2P2SrF7OU12ySBFSO9nUw3ggHQebR32lrI0oP oobeoMZXdHGFA1cnz6kESImbAOOTjyFUAfb0b7iagnoOn52uHtGO+RHF0ht1MOlTatlu Oq48+ZJC98sBVrXoujmSitvNce0xB4bU7+9FGJZ9+nKRF0Awu3HGL5/TlJ5IqIEYBck3 /yMQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=dz2X6DLMuTu2L7wdq7JRVL139O15T4v+SW0kdtMXyUQ=; b=BO8dfyWuWtbSEeE/htWcM+sk7YtX2wetX4742ydnxRvLYKoxvAOVwlrxi5JY0qSYS0 CsiA4Upg6+hrjr+pcVeY1UbogVVShoXBmIhqGSEu5jyzXmcpC4kSUkHVPK59xinuNXp9 6N0ULR6YWWdEJQ1IuIoiwueAxpHTUM7DcHUpLqBT1y4WOYwMI8Bty51eLeV5h7rzQ8aM jzMnc8ZQ9aED23gbOsaqpXEaaeinT8wL8xk/r8q7/yrmDVJX9cAKuLG2a6VwFnZqNcCM UhXRnF2L14ehehG/YcGPsCWofLnNBWg3LXKVtTlm5oRpHV1p83DX1d4IdqGNLEo3DrBa n+Xg==
X-Gm-Message-State: AOAM533wB5OSeq1AkkYwK3mI48FkT+4yWx1aOU1pBnxLc79xaA/Q6Of2 XSXqA/cD2csSG9IT1prlGXMVAFlm7MC/dQUH+zW9xRiucuV2MQ==
X-Google-Smtp-Source: ABdhPJwsFYGMI8wT1BlVxduL02YcYwjcRpeIAHHZkVZYxj+F/lJxJWatDAMngpJWUpQsj5GuSo9l4/zKWCMJMhjFEeY=
X-Received: by 2002:a2e:8ed1:: with SMTP id e17mr1187783ljl.114.1603815737740; Tue, 27 Oct 2020 09:22:17 -0700 (PDT)
MIME-Version: 1.0
From: Victor Vasiliev <vasilvv@google.com>
Date: Tue, 27 Oct 2020 12:22:06 -0400
Message-ID: <CAAZdMafdbwusA3Ks_k=RW9FXCh+OMj90Y_7A7Pj5cBHTXgyQPA@mail.gmail.com>
To: WebTransport <webtransport@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000055af5505b2a97327"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/MaPYfF36Maew5vgmJKivXOkyEVw>
Subject: [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, 27 Oct 2020 16:22:29 -0000

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