Re: [Webtransport] Demultiplexing in case of unreliable datagrams

Bernard Aboba <bernard.aboba@gmail.com> Tue, 16 June 2020 21:04 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 5CDB63A060D for <webtransport@ietfa.amsl.com>; Tue, 16 Jun 2020 14:04:00 -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 d1LQ7jYFtjNz for <webtransport@ietfa.amsl.com>; Tue, 16 Jun 2020 14:03:58 -0700 (PDT)
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) (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 2B27D3A0602 for <webtransport@ietf.org>; Tue, 16 Jun 2020 14:03:58 -0700 (PDT)
Received: by mail-lf1-x130.google.com with SMTP id z206so12640722lfc.6 for <webtransport@ietf.org>; Tue, 16 Jun 2020 14:03:58 -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=/ewBJc5JMvH5AA/Dr/g9STLI5/xh2IpZ+88T9ksfElw=; b=OXa9BARQ88cxc7pKPcJeBfOjUAKcb28+wBXj0j1UFuqxXozUOL8KHwG3FBAdWUJdMA 7gcfEyNmD2BaAVPNnlelGLL2ZMl7WQ9cMlOt/iXadwedTgdy/d+Rcb8UHeEDoelTx7tA iUQcnYZeufYhboP5R57ddSsrMr7cySqQ64ofwh+vhJYn0g5Hep9tgkZBMx4S6LwXevIA kT5QihO21yAHFYU3p5HkjSstjeU5CfqNyJ5bh4LQglp9Rd3Kf8ooNdgdHlR4HGhUlBYZ LtkyiBeXuYRCZ+i1eK4glQYLL5k6prxLucGU5WtmYLwx8pFGEP9bYPD02ogSHVXU+7Gz 8qmQ==
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=/ewBJc5JMvH5AA/Dr/g9STLI5/xh2IpZ+88T9ksfElw=; b=lWbb0I/VBP1a+IAkdsU/6pwz+fFnHvjSvBSr4qlOmrURtqU+2HkLXdSDf2DOojZke9 MDOpbm5BK3k6fPvz9CGNusQFLPaiR5c/Xm3LBitEJ3PpgZ9PE6/m92Bl3oIscn2FILsp 4t/mbdesZTEv5IUq+FA9hUJI5YWysrluLW/nQn8vmDPLhoHQYQ2hRu2M+gojkGWHaRTY lYCDd3CxqvEdbrVbrutIals5kDbKvu58FR51VJOUzUBMeH86XvjUSpjpd40EChkcEWvV 2SE3PeZW6wIgyangiJCTznNzY3p9OTBsVZZKMIOXK3xben4B097kxY8cipug4pkmsq7e 2qng==
X-Gm-Message-State: AOAM530I/Jf96DWd72KTvUzeUtZUW6Px6ZdUYfnOS4Fli7THuwMroqOn 60ZIw9A5j55cf1VMiJrKmDXUCQwtab0ogVjizLs=
X-Google-Smtp-Source: ABdhPJxlQ+pCNwnZ88jqbKQ+jwfNfzM6KpjwOvZcHda+mzFx+ONT6NDiDrB1BZ24Zmm4Pra5mmHrzF9j5Af60drLx+M=
X-Received: by 2002:a19:5212:: with SMTP id m18mr2659953lfb.127.1592341436067; Tue, 16 Jun 2020 14:03:56 -0700 (PDT)
MIME-Version: 1.0
References: <CAD7QVt=WM_Hajp_UxM1=c=bEMncNfXABqDGkTsiMbfez35-FfA@mail.gmail.com> <CAPDSy+4V-dXbFxYkadyguwmKX7bmt5iH1S0Sf2ESosY_ENHQCg@mail.gmail.com> <CAD7QVtnL8DMVHAk+-JSSYGaQXuQ12uXHWv_a0Eb5bVuuzEG2QA@mail.gmail.com>
In-Reply-To: <CAD7QVtnL8DMVHAk+-JSSYGaQXuQ12uXHWv_a0Eb5bVuuzEG2QA@mail.gmail.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Tue, 16 Jun 2020 14:03:45 -0700
Message-ID: <CAOW+2dsQGFOAV0LE0DUS_k1nY0EtGMMNrcFu4sq25PrsTJa8zQ@mail.gmail.com>
To: virat tara <virattara@gmail.com>
Cc: David Schinazi <dschinazi.ietf@gmail.com>, WebTransport <webtransport@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000a8743e05a839e1f7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/cZrDlUBTHPZvgOBzj0xX_LCbEOo>
Subject: Re: [Webtransport] Demultiplexing in case of unreliable datagrams
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, 16 Jun 2020 21:04:00 -0000

Virat --

The Http3Transport would be used along with HTTP/3 datagrams, as described
in https://tools.ietf.org/html/draft-schinazi-quic-h3-datagram

In Section 2 of that document, you will notice the addition of a flow
identifier:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Flow Identifier (i)                     ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 HTTP/3 Datagram Payload (*)                 ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


Section 3 describes how the flow identifier is to be allocated:


   Implementations of HTTP/3 that support the DATAGRAM extension MUST
   provide a flow identifier allocation service.  That service will
   allow applications co-located with HTTP/3 to request a unique flow
   identifier that they can subsequently use for their own purposes.
   The HTTP/3 implementation will then parse the flow identifier of
   incoming DATAGRAM frames and use it to deliver the frame to the
   appropriate application.


So in the case of a pooled Http3Transport, the flow identifier would
allow the datagrams to be de-multiplexed to the correct application.


In the event that an individual application utilizes multiple
datagrams flows, that application would need to include an additional
identifier within the "Datagram Payload".


Make sense?


On Tue, Jun 16, 2020 at 11:48 AM virat tara <virattara@gmail.com> wrote:

> Hi David,
>
> Thanks for the reply, I was talking in the context of this draft
> draft-ietf-webtrans-overview-00
> <https://tools.ietf.org/html/draft-ietf-webtrans-overview-00> (sorry for
> not mentioning it earlier) which mentions pooling as a property of the
> WebTransport. Actually, I was studying the ongoing work in WebTransport but
> didn't go through draft-vvv-webtransport-quic since it was expired. But
> yeah I got it now.
>
> I found 4 drafts related to this work.
> 1. draft-ietf-webtrans-overview-00
> 2. draft-vvv-webtransport-quic-01 / draft-vvv-webtransport-http3-01
> 3. draft-kinnear-webtransport-http2-00
>
> Where drafts under 2nd point are up for discussion as to which one to keep.
>
> Thanks,
> Virat
>
> On Tue, Jun 16, 2020 at 10:13 PM David Schinazi <dschinazi.ietf@gmail.com>
> wrote:
>
>> Hi Virat,
>>
>> What are you trying to demultiplex? draft-vvv-webtransport-quic  (as
>> currently specified) will create a new QUIC connection per
>> QuicTransport object, so there is no need to demultiplex between them. If
>> you would like to demultiplex different flows of datagrams in your own
>> application, then you can add a demultiplexing identifier of some kind at
>> the start of your application payload.
>>
>> Hope this helps,
>> David
>>
>> On Mon, Jun 15, 2020 at 10:52 AM virat tara <virattara@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> In *Section 6* "Transport Properties" there is a point mentioning
>>> Pooling Support. In case of unreliable datagrams, how will demultiplexing
>>> be done on the receiver end? Streams, on the other hand, have a unique
>>> stream ID. I found a draft (draft-schinazi-quic-h3-datagram-03
>>> <https://tools.ietf.org/html/draft-schinazi-quic-h3-datagram-03>) that
>>> accomplishes this on HTTP/3 but since WebTransport will have its own
>>> dedicated connection as mentioned in *Section 1.1 *"Background" how
>>> will this be taken forward?
>>>
>>> Thanks,
>>> Virat
>>> --
>>> 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
>