Re: Prioritizing QUIC DATAGRAMs (was: Re: [Masque] Prioritizing HTTP DATAGRAMs)

Samuel Hurst <samuelh@rd.bbc.co.uk> Wed, 23 June 2021 08:37 UTC

Return-Path: <samuelh@rd.bbc.co.uk>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1EFF93A2F96; Wed, 23 Jun 2021 01:37:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.238
X-Spam-Level:
X-Spam-Status: No, score=-2.238 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.338, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 ARm58wCn6-ME; Wed, 23 Jun 2021 01:37:00 -0700 (PDT)
Received: from tlsmtp.bbc.co.uk (tlsmtp1.telhc.bbc.co.uk [132.185.161.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 725763A2F94; Wed, 23 Jun 2021 01:37:00 -0700 (PDT)
Received: from gateh.lh.bbc.co.uk ([10.118.193.77]) by tlsmtp.bbc.co.uk (8.15.2/8.15.2) with ESMTPS id 15N8auU0017155 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 23 Jun 2021 09:36:57 +0100 (BST)
Received: from mailhub0.rd.bbc.co.uk ([172.29.120.128]) by gateh.lh.bbc.co.uk (8.14.5+Sun/8.13.6) with ESMTP id 15N8auN4019522; Wed, 23 Jun 2021 09:36:56 +0100 (BST)
Received: from [172.29.197.176] (port=33298) by mailhub0.rd.bbc.co.uk with esmtp (Exim 4.92) (envelope-from <samuelh@rd.bbc.co.uk>) id 1lvyNT-0004uX-TE; Wed, 23 Jun 2021 09:36:56 +0100
To: Lucas Pardue <lucaspardue.24.7@gmail.com>, Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>, QUIC WG <quic@ietf.org>
Cc: David Schinazi <dschinazi.ietf@gmail.com>, Kazuho Oku <kazuhooku@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>, MASQUE <masque@ietf.org>
References: <CALGR9ob=3CywgYvLJpSba6xCGwDEBzdJbuco28BMk9ayMcFe6Q@mail.gmail.com> <CAKKJt-d0srxhm==cxyXuJuDiqUk0sEgOAJRY+6ejq21LQVPsgQ@mail.gmail.com> <CALGR9oZOp5YWMWx61Etq42McOi02LOjxtRLL+xHhDpHKS94ukA@mail.gmail.com>
From: Samuel Hurst <samuelh@rd.bbc.co.uk>
Subject: Re: Prioritizing QUIC DATAGRAMs (was: Re: [Masque] Prioritizing HTTP DATAGRAMs)
Message-ID: <b9d7e589-df4a-0440-b5d4-847cca5a6908@rd.bbc.co.uk>
Date: Wed, 23 Jun 2021 09:36:55 +0100
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1
MIME-Version: 1.0
In-Reply-To: <CALGR9oZOp5YWMWx61Etq42McOi02LOjxtRLL+xHhDpHKS94ukA@mail.gmail.com>
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="wjzvmepAJGmFXS1jLbIwbFxdqeXQO5kta"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/JptbVsQGh_pH3h-FI3QNBN6-ICY>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 23 Jun 2021 08:37:05 -0000

On 22/06/2021 15:58, Lucas Pardue wrote:
> On Tue, Jun 22, 2021 at 2:57 PM Spencer Dawkins at IETF
> <spencerdawkins.ietf@gmail.com <mailto:spencerdawkins.ietf@gmail.com>>
> wrote:
>     I believe
>     that https://datatracker.ietf.org/doc/draft-hurst-quic-rtp-tunnelling/
>     was bumping up against the desire to use QUIC datagrams for
>     tunneling and the recognition that we don't have an agreed-upon way
>     to multiplex (and demultiplex) datagrams that are carried in the
>     same QUIC connection. 
> 
>     Do you see any connection between prioritizing datagrams and
>     multiplexing/demultiplexing datagrams?
> 
> Speaking personally. Yes there is a connection. But it only really
> matters where there is competition for resources, which typically
> manifests when things occur concurrently.
> 
> draft-ietf-quic-datagram calls these entities and says [1]
> 
> If the application protocol supports the coexistence of multiple
> entities using datagrams inside a single QUIC connection, it may need
> a mechanism to allow demultiplexing between them.
> 
> This really means the problem of defining the demultiplexing is left as
> a job to the application,
> if it needs it. And I think that is the correct choice because, as we're
> finding out in
> HTTP/3 DATAGRAM, we're evolving our understanding of demultiplexing
> requirements
> within the context and constraints of HTTP.

The primary issue that I can see with this is that it potentially leads
to the inability to use DATAGRAMs for multiple application protocols in
an interoperable way. While it's fully possible for one application to
de/multiplex it's own traffic on the DATAGRAM channel, multiple
applications sharing the same tunnel might have different (and
incompatible) ideas on how to use an identifier that multiplexes
traffic, or may use different mechanisms entirely.

It's this danger of lack of interoperability that I don't like. I don't
like the idea of having to write lots of application notes saying "you
can do A but not with B, but B and C can coexist", which leads to
applications exploding when someone does something unexpected with
option D down the line, that I didn't foresee.

Of course, I don't know exactly how much call there is for doing this.
For example, with regards to my RTP Tunnelling draft [1] that Spencer
linked to above I haven't encountered a need to run something alongside
RTP/RTCP in DATAGRAMs yet, but that's not to say that it isn't a
possibility.

> I don't know if draft-ietf-quic-datagram needs to say anything specific
> about prioritization.
> Maybe it could crib some test from RFC 9000 Section 2.3 [2], so that
> people builiding
> DATAGRAM-based applications are aware of the considerations.

I'm certainly interested in some form of prioritisation for my RTP
Tunnelling draft [1], as protocols like RTP run in real-time and other
things getting in the way can easily cause poor quality of service. This
could be by making the application use longer receive buffers than
necessarily to ensure smooth audio and video playback at the receiver,
or random pauses and glitches in the stream.

Best regards,
-Sam


[1]: https://datatracker.ietf.org/doc/draft-hurst-quic-rtp-tunnelling/