Re: [Webtransport] Choosing the Transport

virat tara <virattara@gmail.com> Mon, 27 July 2020 08:52 UTC

Return-Path: <virattara@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 1B8423A17D1 for <webtransport@ietfa.amsl.com>; Mon, 27 Jul 2020 01:52:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 u7mjUdzxUkuV for <webtransport@ietfa.amsl.com>; Mon, 27 Jul 2020 01:52:16 -0700 (PDT)
Received: from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com [IPv6:2607:f8b0:4864:20::b2b]) (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 F18CC3A17CC for <webtransport@ietf.org>; Mon, 27 Jul 2020 01:52:15 -0700 (PDT)
Received: by mail-yb1-xb2b.google.com with SMTP id q16so6153948ybk.6 for <webtransport@ietf.org>; Mon, 27 Jul 2020 01:52:15 -0700 (PDT)
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=EisO2aBQFbsfxkr/Ji6FTmUBG5xYOaOihgGs42V2EfY=; b=gQCllsz5GgnF2hnCJP+xIJVtupObFfBwZZ2SayWc0wCvvj3DM39e3EzlrvNfwSzYS5 0EqykPPdKazsANTPvOxuFEBtrANQncjwh52hBfPAU+tHbk2ipSyBGK+2PBufdWtZeCqN HHLaK+9C49jzLB2qA2oo7XPIrgwSnW7lIqAwmiIQpnrXNIRaijqoQYZcidKDPE6GdGl8 /RFOgrmYbqBonC1O2KGjkgBRKBQEL3RkL1matkjXaLbtLNAF1vTztdddc8gG+0c9k9BP gQ1yjzRMs0q6m7xLbH37ec9sisBfyUGJGBcblFBA7rsiGDwSo/NRO9eD1b3lkw2vBmWM Ef6Q==
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=EisO2aBQFbsfxkr/Ji6FTmUBG5xYOaOihgGs42V2EfY=; b=Iu6kNN5ekM8NkhIRL3MCtKR4lhAsmXLooZrifWis1zLUKXgNrO5az3nCkocnPHGvZo U4NcEwUTnDXnSzPyLuMQ7tSgOYqUZ8+5FH0AQ+M5V9PWUetQezo+JMSlqvIFoDSzec+X pqaE4/3NQjlnPOZFeJ9dPlqnpPRZnhdT8bLITvnUDzcILQBfaH7R/474d7exIT530YgO ZnKGp0+UjDjORLnpKooJbfMc+oU975FQQJMvo55z2xQZj4n/+S5EArjFRxeUVaKDVZu4 Zu5vinOrdiUxQKdoG67MvnPa4X6F28MbmUWsjUH/dUd4qUWQ3zZThsMVswcBYRpmRlDh sXIg==
X-Gm-Message-State: AOAM533trJZLSNRDOmRTiEJqYuc76HY4eYm1wagYehoR4AGHCnbrcwyH VATgVzpE7howNV0lN8Mbz+nJ01gVDGEOM7PDM6s=
X-Google-Smtp-Source: ABdhPJyO0MMFd5El7mH+cJ5qFnBZh3dNqxWqmpSKRm7/NDZAykFSqGJtN7NF3WisL4k2gL6qx1PTVxjcadA4hOVkcSA=
X-Received: by 2002:a05:6902:50a:: with SMTP id x10mr2373665ybs.181.1595839934780; Mon, 27 Jul 2020 01:52:14 -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> <CAD7QVtkzk40mko0t6-NdesfiNStE0rJzpuzjBM6QjdSbp_p2Rg@mail.gmail.com> <CAOW+2dv793bGZ-rMeGzMUJd7y0ZwkcWyaxBHHazoubT9=pqcUQ@mail.gmail.com>
In-Reply-To: <CAOW+2dv793bGZ-rMeGzMUJd7y0ZwkcWyaxBHHazoubT9=pqcUQ@mail.gmail.com>
From: virat tara <virattara@gmail.com>
Date: Mon, 27 Jul 2020 14:22:03 +0530
Message-ID: <CAD7QVtkmvFXfCdCABeRXZ+=UGk1n3xxnKLDDX6sLBmGQ+tuPDg@mail.gmail.com>
To: Bernard Aboba <bernard.aboba@gmail.com>
Cc: WebTransport <webtransport@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006e5a9105ab6870e7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/E78zEv1b83aadc1iuVbssjQ4UKo>
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: Mon, 27 Jul 2020 08:52:19 -0000

>
> Bernard's question: In this use case, is there an interaction between
> HTTP/3 traffic and WebTransport traffic?  For example, in the RIPT BOF
> there were examples shown where an HTTP/3 Request elicited an HTTP/3
> Response as well as HTTP/3 datagram traffic from server to client.  The
> idea was to enable SIP-like exchanges to occur within HTTP/3 so as to
> enable calling.


No, there is no interaction between HTTP/3 traffic and WebTransport traffic
in my use case.

This would enable the taxi booking or food ordering application to allow
> the user to talk to the taxi driver or submit their food order in a voice
> call, using a single HTTP/3 Connection.
>

Yes, this can be another use case where sharing of connection between
HTTP/3 and Http3Transport (via RIPT) will be helpful.

On Sat, Jul 25, 2020 at 9:40 PM Bernard Aboba <bernard.aboba@gmail.com>
wrote:

> Virat said:
>
> "I got the impression that HTTP/3 calls like fetch and Http3Transport will
> be able to share a connection from
> draft-vvv-webtransport-http3-02#section-1
> <https://tools.ietf.org/html/draft-vvv-webtransport-http3-02#section-1> where
> it says "Using the mechanism described here, multiple Http3Transport
> instances can be multiplexed simultaneously with regular HTTP traffic on
> the same HTTP/3 connection".
>
> [BA] The WebTransport API spec seems to imply some (or maybe all) of this,
> but there isn't any implementation experience AFAIK.
>
> "An example would be an app where full-duplex communication is required
> only at a particular step of the user flow (ex. taxi booking or food
> ordering application), like at the time of live location sharing or chat
> support, but the rest of the functionality requires only client to server
> API calls. Some of these actions can be simultaneously performed by the
> user like live location sharing + browsing through the app and thus making
> some fetch calls."
>
> [BA] Question: In this use case, is there an interaction between HTTP/3
> traffic and WebTransport traffic?  For example, in the RIPT BOF there were
> examples shown where an HTTP/3 Request elicited an HTTP/3 Response as well
> as HTTP/3 datagram traffic from server to client.  The idea was to enable
> SIP-like exchanges to occur within HTTP/3 so as to enable calling.
>
> This would enable the taxi booking or food ordering application to allow
> the user to talk to the taxi driver or submit their food order in a voice
> call, using a single HTTP/3 Connection.
>
>
>
> On Fri, Jul 24, 2020 at 4:30 AM virat tara <virattara@gmail.com> wrote:
>
>> Hi Bernard,
>>
>>
>>> 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.
>>>
>>
>> I got the impression that HTTP/3 calls like fetch and Http3Transport will
>> be able to share a connection from
>> draft-vvv-webtransport-http3-02#section-1
>> <https://tools.ietf.org/html/draft-vvv-webtransport-http3-02#section-1> where
>> it says "Using the mechanism described here, multiple Http3Transport
>> instances can be multiplexed simultaneously with regular HTTP traffic on
>> the same HTTP/3 connection".
>>
>> The ability to share a QUIC connection between HTTP3 (e.g. fetch) and
>>> WebTransport (via WebTransport API) has come up from time to time. Do you
>>> have a use case where this would be valuable?
>>>
>>
>> An example would be an app where full-duplex communication is required
>> only at a particular step of the user flow (ex. taxi booking or food
>> ordering application), like at the time of live location sharing or chat
>> support, but the rest of the functionality requires only client to server
>> API calls. Some of these actions can be simultaneously performed by the
>> user like live location sharing + browsing through the app and thus making
>> some fetch calls.
>>
>> One can argue that the fetch calls being stateless can be converted
>> into events to make them compatible with WebTransport. I think that's not a
>> simple decision to make once you have built up an application and later on
>> decide to incorporate a small feature that requires full duplex
>> communication on the same server. One can always resort to HTTP Long
>> Polling in such cases and I think this is one of the main reasons long
>> polling is still in use and not obsolete. RFC 8441
>> <https://tools.ietf.org/html/rfc8441> would have made it obsolete but it
>> is yet to be rolled out on major browsers.
>>
>> On Fri, Jul 24, 2020 at 7:12 AM 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.
>>>
>>> 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.
>>>
>>>
>>>
>>> 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
>>>
>>