Re: [Webtransport] Choosing the Transport

Victor Vasiliev <vasilvv@google.com> Fri, 24 July 2020 07:00 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 061CD3A003C for <webtransport@ietfa.amsl.com>; Fri, 24 Jul 2020 00:00:52 -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 pxFAyiapNGct for <webtransport@ietfa.amsl.com>; Fri, 24 Jul 2020 00:00:50 -0700 (PDT)
Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) (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 547123A0033 for <webtransport@ietf.org>; Fri, 24 Jul 2020 00:00:50 -0700 (PDT)
Received: by mail-lf1-x12c.google.com with SMTP id v15so99091lfg.6 for <webtransport@ietf.org>; Fri, 24 Jul 2020 00:00:50 -0700 (PDT)
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=sxZBlbgYO58stP5TwGbcdEkvAEsoHqC/ONqiFLxDrDk=; b=V830W8AaSuqxKyyDqtC9vYLEb3HASGDNYe1vxPSrL2a+ZYjJmW2VvkXcnk3qAXl4E+ cNtT6Jz7LV1Pdx2GbFn3j/ElwF17CmDXYY5znHYFgW5LK0qjWbRpa52uD7I3J86vhxU9 BIraDZP8orZW8JewBNbYEIyGFI/hJqMhRuQk2Rq4iNCySIdc2EX8lvc/MQCRLMb2CdKg EjSP11KWatb+mvvo0fukySOqfXw7G/fxkZnZxIrjTqCJN8kkBFN3MuGNnMPk8wvoIa+L dDPy5dpLxi7KlCgcIDrLQWPBDZW/uzqcpWcorJWf8eJH/pWiqGUz/ClCOfzzk5H7jO0i B7dQ==
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=sxZBlbgYO58stP5TwGbcdEkvAEsoHqC/ONqiFLxDrDk=; b=cmPP3EsRNbHgQfAbLpoJwhJkUpPj9NT0RUj/c+n8tSyRiYOvJ2+aoFF5NJYzhHIB7H i1eYRMqgigD3LjAYTByotcAjh7OJzHmGNh1E5oSraYUeX6/O2d5aGx895BkHrpEE/iMQ P0EFTKAgi8MofLhEUmxdfOSgGzJFJS3v7vkIpZAVFZjdjzoPI5n0GXJi0dLjcANusXeH uvp9YgzQAON0S3dsHdMN5dzIzSz4wZPjDdxX9CnFRdO5A3O6W9bdOvIhEmzzI/XNvuuE M5+49h4TuCsHAvzyexdkNWSzA7Tqmdb8uzZVvHttujpMROdbUOLKSTPigqt73ZZlc7r+ MyyQ==
X-Gm-Message-State: AOAM532CbJm0nZJcZd1kA3vBF1KBc2sSZej0+YVSghyQWYBAS46nVPMN 2dppEVHdTKU3mkSm8+TnHmz7Gd6CAm2s7Bqabs7DOg==
X-Google-Smtp-Source: ABdhPJzZD25oRDCNKneQLmO1X0ZOpgQEmRxMWSlxTP295L3emPL1ILBCZP52uBM2w+1KJAr1GBNGJZ2JA2i7qY7xOCc=
X-Received: by 2002:ac2:5338:: with SMTP id f24mr4295959lfh.5.1595574048092; Fri, 24 Jul 2020 00:00:48 -0700 (PDT)
MIME-Version: 1.0
References: <CAAZdMafWeaZhCVbObPgvYm5gxZu6ksV5VkSoF=8Mx9OJBDA5rA@mail.gmail.com> <CAD7QVt=VdLKwTOyknGRFQV+5Yq-b6UxQcsVTvuLi83qFyktgDg@mail.gmail.com> <55d2f1a0-1d88-4aeb-bfbb-e9d7ffc547f6@www.fastmail.com> <CAOW+2dtcJfJuWvW759P8rxRFg5fL3HKKYgEDNtGKTfgi4e27ZQ@mail.gmail.com>
In-Reply-To: <CAOW+2dtcJfJuWvW759P8rxRFg5fL3HKKYgEDNtGKTfgi4e27ZQ@mail.gmail.com>
From: Victor Vasiliev <vasilvv@google.com>
Date: Fri, 24 Jul 2020 03:00:36 -0400
Message-ID: <CAAZdMadK2Cgssreqe5Sf+sqs83trnUBvBtwC8PDjfK_v1fs26A@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="00000000000059f97b05ab2a88b8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/U7j23bSpV8pXlYgrQcDwM5zOJZ4>
Subject: Re: [Webtransport] Choosing the Transport
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: Fri, 24 Jul 2020 07:00:52 -0000

On Thu, Jul 23, 2020 at 9:42 PM Bernard Aboba <bernard.aboba@gmail.com>
wrote:

> Martin said:
>
> "That's a good point.  My understanding of the HTTP mappings is that you
> can make several "instances" of the WebTransport thing in the one
> connection."
>
> [BA] Here is the current Http3Transport constructor:
>
> [Exposed <https://heycam.github.io/webidl/#Exposed>=(Window,Worker)]interface Http3Transport <https://wicg.github.io/web-transport/#http3transport> {
>   constructor(DOMString <https://heycam.github.io/webidl/#idl-DOMString> url <https://wicg.github.io/web-transport/#dom-http3transport-constructor-url-url>);
> };
>
>
> It only takes a url as an argument (like the WebSocket constructor).  So
> the implication is that invoking the constructor creates a distinct QUIC
> connection.  But using that QUIC connection, it is possible to create
> multiple bi-directional or uni-directional streams or send datagrams in
> either direction.  So "pooling" or other sharing of an Http3Transport is
> already supported to a significant extent.
>

Http3Transport supports that form of multiplexing using Session IDs:
https://tools.ietf.org/html/draft-vvv-webtransport-http3-02#section-4.3.
As Virat has pointed out, this helps to cut down on the number of
individual connections to an individual server, which is one of
HttpTransport's more compelling points.


>
> Martin said:
> "Even if you only have one WebTransport thing, you can still use the same
> connection for HTTP and the thing."
>
> [BA]  Note that the Http3Transport  constructor doesn't have an optional
> QuicTransport object as an argument, so that there's no way to "share" a
> QUIC transport between Http3 (as used by say, fetch) and Http3Transport.
>
> There is a reason why this isn't supported, even though it was something
> that seemed quite desirable. HTTP/3 is very specific on how it uses Stream
> IDs, so it would be quite tricky to have both the WebTransport and another
> API like fetch sharing a QUIC connection.
>

Stream IDs are indeed a problem for HTTP-based transports, which is one of
the reasons we got rid of them in the API draft at some point.  Part of
this has to do with behavior across proxies, and part of this has to do
with accidental information disclosure about different-origin traffic on a
shared connection.  I've actually filed an issue about this that I want to
discuss at the upcoming meeting:
https://github.com/ietf-wg-webtrans/draft-ietf-webtrans-overview/issues/1

There are also lots of questions of how multiplexing interacts with
MAX_STREAM_ID and potential DoS concerns, and I am not sure we actually
address those in the draft right now.


> On Thu, Jul 23, 2020 at 4:58 PM Martin Thomson <mt@lowentropy.net> wrote:
>
>> On Fri, Jul 24, 2020, at 04:33, virat tara wrote:
>> > For an app that would use both regular HTTP calls and WebTransport,
>> > from the server's perspective, won't using HttpTransport instead of a
>> > dedicated connection like in QuicTransport help it to reduce the number
>> > of active connections/sockets per client? Thus allowing it to serve
>> > more distinct clients per server. Particularly for apps that make
>> > occasional HTTP calls and heavily rely on a full-duplex protocol for
>> > the rest of their working.
>>
>> That's a good point.  My understanding of the HTTP mappings is that you
>> can make several "instances" of the WebTransport thing in the one
>> connection.  Even if you only have one WebTransport thing, you can still
>> use the same connection for HTTP and the thing.  With a dedicated
>> transport, it seems like you just have one.
>>
>> Of course that one is capable of a lot of concurrency, so you might be
>> comfortable with not having multiple sessions, but I can imagine cases for
>> sharing different logical contexts that can be split at a gateway.
>>
>> --
>> 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
>