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

Lucas Pardue <lucaspardue.24.7@gmail.com> Wed, 23 June 2021 10:58 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AEAE03A336F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 23 Jun 2021 03:58:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.75
X-Spam-Level:
X-Spam-Status: No, score=-2.75 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.248, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001] autolearn=unavailable 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 6_56NPcQ4iiY for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 23 Jun 2021 03:58:24 -0700 (PDT)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (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 E6A503A336C for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 23 Jun 2021 03:58:23 -0700 (PDT)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1lw0X7-0002dn-QP for ietf-http-wg-dist@listhub.w3.org; Wed, 23 Jun 2021 10:55:04 +0000
Resent-Date: Wed, 23 Jun 2021 10:55:01 +0000
Resent-Message-Id: <E1lw0X7-0002dn-QP@lyra.w3.org>
Received: from titan.w3.org ([128.30.52.76]) by lyra.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <lucaspardue.24.7@gmail.com>) id 1lw0Wg-0002co-8F for ietf-http-wg@listhub.w3.org; Wed, 23 Jun 2021 10:54:37 +0000
Received: from mail-ej1-f54.google.com ([209.85.218.54]) by titan.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from <lucaspardue.24.7@gmail.com>) id 1lw0WZ-0002wo-Tj for ietf-http-wg@w3.org; Wed, 23 Jun 2021 10:54:31 +0000
Received: by mail-ej1-f54.google.com with SMTP id my49so3318500ejc.7 for <ietf-http-wg@w3.org>; Wed, 23 Jun 2021 03:54:27 -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=rIzKe15X3M+jMiVrB1cDFvjMn9H3UbtRnIF89kKsUm8=; b=fqlvYFGC4zcQEmoAT6B67YER33fT6xrHY7+ij6k3haja4MWzSBqO4uhMXx7MaANtjz ZnvvZ8jsTdCPKaTJmmgQeP85EDEONMJqAJPQwgdWMoHzQHWyAo8KVq0d+0bEoKJToh/e eMOsWAAeC8DchZLOLbf+P2Tc/n6Fgi/puyXETeRbtJVhnvFuaKytEbnMS4LYBdYswcfh 6K3JG4SQCyq/3D9rDJagsvMypYqqYesCvzOLT6j0jxJiqRpltKcsXSEvus/8Q5nSgBGw YiwbadXHgnFsCBW1MN9MP0GOkAAoa5HKBdxdCySNv+opvRLqr64wSlflRCok9lCKF1MF kVhw==
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=rIzKe15X3M+jMiVrB1cDFvjMn9H3UbtRnIF89kKsUm8=; b=XhvK4EBKVGmrWwL4KpUpOK/CfyoEh3G6q9UGK44C+RGKjOC+aKR7SKEMOq90FrQEFI 1RNPmCqy2TFltuvPgHhZP0hEStFBJ5VIeL1F9E5fuDrNJeXKU/by9NUBdjzP0XYA0bw4 OOT6JzN9AM9FKbhPGZ1UdKjsIq8mJZm+9mUxqIPbhJiEIQnTgz3GP+SzOeUIT+wcb6Ya TN+McbV1V/6+MQMR+Eq1HUNCzlbQrO/RG4VgvdHiaHwrd8GrP++MR0yA6DhHopf52Olu 1DOZrGb4HjiiH7SnggpAJNaD0LmTePbVjx4DjqKPt9YnMk2L03U/kHWh6h+hXe2ocuZU 3obg==
X-Gm-Message-State: AOAM530z5iYzQey0y3F2OjCk0fzFuZuArdLEy4lCx2CGXyxolieoz4rk sB3zZ154dnRbUrTgDYqRu6ihYS6jCi6MgMJGCpM=
X-Google-Smtp-Source: ABdhPJz086wQj2GLsBidT7WRsAfXwhR1clQmeM5r5XQpQr4mgtZTNxV02QUu3P6odecrE5xvkYuIrHJVQ8uRxVZpd4c=
X-Received: by 2002:a17:906:b2cb:: with SMTP id cf11mr9407394ejb.448.1624445596460; Wed, 23 Jun 2021 03:53:16 -0700 (PDT)
MIME-Version: 1.0
References: <CALGR9ob=3CywgYvLJpSba6xCGwDEBzdJbuco28BMk9ayMcFe6Q@mail.gmail.com> <CAKKJt-d0srxhm==cxyXuJuDiqUk0sEgOAJRY+6ejq21LQVPsgQ@mail.gmail.com> <CALGR9oZOp5YWMWx61Etq42McOi02LOjxtRLL+xHhDpHKS94ukA@mail.gmail.com> <b9d7e589-df4a-0440-b5d4-847cca5a6908@rd.bbc.co.uk>
In-Reply-To: <b9d7e589-df4a-0440-b5d4-847cca5a6908@rd.bbc.co.uk>
From: Lucas Pardue <lucaspardue.24.7@gmail.com>
Date: Wed, 23 Jun 2021 11:53:06 +0100
Message-ID: <CALGR9oYRE0hBap+=VEr-KPD7Qp6gZZ_gg_0bcaDoquthKikMJg@mail.gmail.com>
To: Samuel Hurst <samuelh@rd.bbc.co.uk>
Cc: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>, QUIC WG <quic@ietf.org>, David Schinazi <dschinazi.ietf@gmail.com>, Kazuho Oku <kazuhooku@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>, MASQUE <masque@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000bbea6d05c56cb6aa"
Received-SPF: pass client-ip=209.85.218.54; envelope-from=lucaspardue.24.7@gmail.com; helo=mail-ej1-f54.google.com
X-W3C-Hub-DKIM-Status: validation passed: (address=lucaspardue.24.7@gmail.com domain=gmail.com), signature is good
X-W3C-Hub-Spam-Status: No, score=-4.8
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1lw0WZ-0002wo-Tj 97811aae30b4f035b44dace24ad9a505
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Prioritizing QUIC DATAGRAMs (was: Re: [Masque] Prioritizing HTTP DATAGRAMs)
Archived-At: <https://www.w3.org/mid/CALGR9oYRE0hBap+=VEr-KPD7Qp6gZZ_gg_0bcaDoquthKikMJg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/38938
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Hey Sam,

On Wed, 23 Jun 2021, 09:36 Samuel Hurst, <samuelh@rd.bbc.co.uk> wrote:

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

Right. But having an identifier in the transport doesn't help much here.
Streams have such an identifier (split into 4 types) and don't solve the
problem you describe IIUC.

To give an example, an application mapping like HTTP/3 makes use of 3
types, using the up to the entirety of the values permitted. There isn't
currently a way for multiple completely independent HTTP/3 connections to
share a QUIC connection. HTTP/3 connection coalescing achieves sharing to
some degree, it relies on the demultiplexing occurring in the HTTP
messages. Similarly, CONNECT and CONNECT-UDP methods use HTTP to signal the
intent of streams or HTTP/3 datagrams, and applications can build context
state around this to decide how to dispatch received data.


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

The challenge is that if you want to mix usage intents for a shared
transport resource, you probably need some way to signal that. Since QUIC
delegates using streams and DATAGRAMs to upper layers applications, it's
very tricky to design anything at the lower layer to accommodate this.

One approach to allow general purpose indiscriminate resource sharing would
be to design a virtualization layer that sits just below actual mappings.
Such a thing would fool upper layers into thinking they had access to
native QUIC. The layer of indirection would probably require a "hypervisor"
to manage things properly. MASQUE is vaguely an instantion of this design
that relies on HTTP. WebTransport is vaguely another example, we used to
have a QuicTransport protocol but pivoted away from it back to HTTP.

The potential solution space is large. However, I'm not sure the problem
space you describe is broad enough to activate building something else. It
would be interesting to hear otherwise. At the end of the day, there needs
to be strong motivation for building complexity and/or runtime overhead in
order to share QUIC connection resources. Otherwise, isn't it just easier
to use multiple separate connections?


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

Makes sense. Would you design that into your RTP tunneling mapping?

Cheers
Lucas

>
>