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

Martin Duke <martin.h.duke@gmail.com> Wed, 23 June 2021 16:44 UTC

Return-Path: <martin.h.duke@gmail.com>
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 3A89F3A3D72; Wed, 23 Jun 2021 09:44:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, RCVD_IN_DNSWL_BLOCKED=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 F_KAcMgB1cks; Wed, 23 Jun 2021 09:44:09 -0700 (PDT)
Received: from mail-il1-x129.google.com (mail-il1-x129.google.com [IPv6:2607:f8b0:4864:20::129]) (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 9DBB83A3D51; Wed, 23 Jun 2021 09:44:09 -0700 (PDT)
Received: by mail-il1-x129.google.com with SMTP id z1so3294225ils.0; Wed, 23 Jun 2021 09:44:09 -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=Y07t/sXmux8s4N00Z4Z/YHT0MVAKv9XwJdkTcN+2FdQ=; b=QTORqIwRfPVSRGs7JqcFIm80IxQxnBK6cwNun9cn24qDE15+oCOfIjrnUqnw+Uy46M osDHSdLTI1TU08UQXmZwLG9r3ellKM8W5nQJdT1IP1g0/+eYV4TQCHULB9ok5sZJYGuj VE3BA/Ko9duoxFuNLEWGv7ZhSvnwZFXeUD7k6c1rJLlC7YP3EmkC3JSkF+5OW9XvInV1 ZbrujKHxrdx4wqwwK+7Pg/mF0I1ROS5gqkh3DwJYzO1zfCqzhlDA2/WihzhDfL0q2XWJ qbCf88ZDZQJ3s1057YtNw/9irKOGjTJ32zcpCP6kxWhUrshnRvaCU3cuKZ+arezBZ8/w H4dQ==
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=Y07t/sXmux8s4N00Z4Z/YHT0MVAKv9XwJdkTcN+2FdQ=; b=RxOKBM8sshI6x2y4AbdFlUbXydEkhKsIuP2qHe+ixEqVRaNJpam/EhBUpFViJFt+ba nmjvtteKoTVywk4s6qSGinlRRli+nNkKn68Uql30z8vSOPusLZQ1NgHF09x1EZ3TRFoz 9Vq/qHazN5HM8i29pRPDuigK997+M0lcX29N0od6Ksj/dnx3U9yImacd3w0xRcNZowGA 5lJVpN6YWojnT7It2rjB3xQMHm/jzLlgLw7jvGpIZJSkqyLkDhEtBuoy0qbP4je6zPyG EtqY0QE7OxJYlz3RGnAe92KYvXtQwEaIHHvDvxW/BBxYLpjNbz9D54ecCY3VjTxx3Nkv ExyA==
X-Gm-Message-State: AOAM530Pqviu1UMQxDuLdjsSD2suQM/YL2doAEsc7Ssd+EoY3i8u93qN HEuh1210sipM1dD6So9x2rMzqHofX2CAkPaU8NFW2bZ/XN4=
X-Google-Smtp-Source: ABdhPJxmYfBZm77V5buWgCbaXZSdoy2T00uAY1yR5ki4PtOkLAKF3Assck9aojgWF9/EpCP0x5tb8Lf776xXCNN6Sug=
X-Received: by 2002:a92:cdaf:: with SMTP id g15mr244885ild.272.1624466647898; Wed, 23 Jun 2021 09:44:07 -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> <CALGR9oYRE0hBap+=VEr-KPD7Qp6gZZ_gg_0bcaDoquthKikMJg@mail.gmail.com> <CAJV+MGz=sszxnUn-oSrGbd_az7QPATLB_3VeaHmC4R1Gj0ua8g@mail.gmail.com> <53BD22F8-2BAA-4F9A-9673-77AD781C2EDD@gmail.com>
In-Reply-To: <53BD22F8-2BAA-4F9A-9673-77AD781C2EDD@gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Wed, 23 Jun 2021 09:43:56 -0700
Message-ID: <CAM4esxQTkMEi7y_QSVmYvEgN4U98-BHeTYwpFDRmTOdxjPkHqg@mail.gmail.com>
Subject: Re: [Masque] Prioritizing QUIC DATAGRAMs (was: Re: Prioritizing HTTP DATAGRAMs)
To: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
Cc: Patrick Meenan <patmeenan@gmail.com>, MASQUE <masque@ietf.org>, Samuel Hurst <samuelh@rd.bbc.co.uk>, Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>, HTTP Working Group <ietf-http-wg@w3.org>, Lucas Pardue <lucaspardue.24.7@gmail.com>, David Schinazi <dschinazi.ietf@gmail.com>, QUIC WG <quic@ietf.org>, Kazuho Oku <kazuhooku@gmail.com>
Content-Type: multipart/alternative; boundary="0000000000007f615d05c5719dda"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/lr-oGkdlATf1dzKQMRSDMZEMwtE>
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 16:44:22 -0000

Lucas,

15 months ago, I brought up DATAGRAM priorities as a reason to put the
stream ID in QUIC Datagrams:
https://github.com/quicwg/datagram/issues/6. I was happy with where this
ended up: that QUIC should present a stream-based datagram API to
applications for prioritization purposes, but that there was no reason for
the stream ID to go out over the wire.

Alternatively, this could be done on a per-datagram basis.

Granted, this is not currently in the corresponding PR:
https://github.com/quicwg/datagram/pull/20/files
I'll review accordingly.

ISTM that in H3 use cases the datagram is associated with a QUIC stream,
and it would be straightforward to use httpbis-priority to negotiate a
priority that then applies to datagrams associated with that stream.

When using QUIC over CONNECT-UDP you have streams on top of streams, and H3
priorities are negotiated both with the origin server and the proxy at
different levels of hierarchy.

Does this answer your question? Or have I totally missed the point?

Martin


On Wed, Jun 23, 2021 at 7:34 AM Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
wrote:

>
>
> On 23 Jun 2021, at 15.10, Patrick Meenan <patmeenan@gmail.com> wrote:
>
> Using multiple connections should be strictly worse than streams sharing a
> connection, otherwise we probably have a gap that needs to be filled.
> Multiple connections kicks the can down to the congestion control
> algorithms for each of the separate connections to play nicely with each
> other and hopefully result in a decent experience. With a single connection
> we should have better knowledge over the overall transport and make better
> decisions.
>
>
> For what it’s worth I me mentioned this as a potential downside when the
> protocol was drafted but consensus were, as I recall, that the protocol
> shouldn’t be designed around overlapping protocols, but that any specific
> application protocols were free to document how they would interoperate.
>
> Giving up on datagram IDs simplifies a lot and provides application
> protocols with more freedom and less overhead than forcing a specific ID
> system. As Lucas pointed out, even if you have IDs there it is not trivial
> for multiple application protocols to co-exist. For example, an application
> protocol might  use all even ID’s for game audio, and all uneven IDs for
> active game state and controller data. Then someone decides to use that
> protocol to run communication with a remote controlled wheel chair
> protocol. But that protocol assigns even ID’s to left wheel speed, and
> uneven ID’s to right wheel speed. And so on and so forth.
>
> Instead you would design an app interop header for all datagrams. For
> example if the high bit of the first byte in a datagram is set, the first
> byte codes for the sub app protocol, and the following data is then sub app
> specific. If the high bit is not set, the 7 following bits is a sequence
> number modulo 128. Just as an example. Then app protocols can refer to this
> meta protocol as a means to coordinate.
>
> As Lucas also pointed out, stream IDs also do not work with multiple sub
> app protocols, at least not in all cases due to implicit context assigned
> to certain stream IDs. Note that stream IDs are not necessarily handed out
> in arbitrary order by the transport layer. This might be the default, but
> app protocols can require more precise control from the transport layer,
> which of course limits the number of usable stacks for that application.
>
> Mikkel
> --
> Masque mailing list
> Masque@ietf.org
> https://www.ietf.org/mailman/listinfo/masque
>