Re: Head-of-Line-Blocking of WebTransport Flow Control Messages

Roberto Peon <fenix@meta.com> Wed, 20 March 2024 23:29 UTC

Return-Path: <prvs=880988c3cb=fenix@meta.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 E3859C14F691; Wed, 20 Mar 2024 16:29:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.092
X-Spam-Level:
X-Spam-Status: No, score=-2.092 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, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=meta.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Kivghh3SSChX; Wed, 20 Mar 2024 16:29:05 -0700 (PDT)
Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 7735FC1E7F2B; Wed, 20 Mar 2024 16:28:36 -0700 (PDT)
Received: from pps.filterd (m0109333.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42KMOCBF028477; Wed, 20 Mar 2024 16:28:33 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=s2048-2021-q4; bh=nMuDiHeGgop2fpfejsWVSPFBRC1OcgRofxGFMtNH5EI=; b=hzcLFR5E6hMSwV08ChA2fcaBiFyWSGFn7oTQ0h4QQ0C+QRbCL2Q+HtOQMGphYo5Nkd35 XYd3p9j5tFLu/w6ECK8iKMSolSYcc5+Fct0JhRDOJQaTaM8vIvBNNPcEiRnUT9jgQxZe Pdj3NG+gp936T30KymEhDSBq5VShiB0IDjqgpvtxkZqGRQC7dxvu4vsFBnk3GtpuSa/Z 2z92HRB0oAdrTQttI5h4vRgRfhnJKNVvTyQLYGx6POC+IZefD69cJpZsaqVhGSTQSNp3 49jQBs3JpPu+lNJafXg4M6M+vMcsCADR1NrXJJ1KFTA7imGGVSrRrQMkQAn4+e9ipRRb uQ==
Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 3x08j9g9mv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 20 Mar 2024 16:28:32 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UROT8AuVXZEpDe8ihUE4dEr6xFztBvzCeopX5zdOKuEhn92E7ZHVmn8ShMCXpqom1by1lNxfZQwRBFj45tOWlqsiqyeSm+ZX/ZQbpLl/+j968LndWxupoadkFfGxTDXyF6kOWnMHbhrZgiNOFyNW7yryEes9EBxcWO6brrNfcdT2nb2BUCVcWJSDQ9ojX6lvlzu7LcyopMbmFgcFvVaFhov0Zi97gBG+0iNqcFjQML6S1XMrysuE1LulC3eAChYqsjtIKidXE1JA09akJeeIYhOHn8V3zVpHGfpUivcnY0zecN/f5sC/nIkRLkKkwbF7xj31tm9cC6zDsruv6iHwGg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tjHvlTzvWc7aGO9xBIoCdpbyYfaIubJabqxq3mR3XzM=; b=mbSDgglg+a83aKe9dEcmf9t7PhwdBBf5k7swzZSG9WEBEGKe5Ayeugxg6txEjgl0YBTHDEzsDoGlJcWkChBK0rp1YysAbu+54pYKW2/NVK5O4uwfrofwczLBHfv7bzlf+BebCNh3rcPdaNvh7I+0NNRD1BtdEyrGIh4gBAjxKfrsTlMQlzw29+JtI9GtCDOyCwbnG5h4/xiRoqHd8KYIMNBaivrFWVN6iZdu1PxH+B3nf89e8gjxWHc9IAJqtB6YULzgCa5JiwVp/rAhQEQQzp4QAjx2Cgg7Mjol3w27wueAIPTSk0ix4TLMe2cfiIBMrR5BeXJg0clIycdNNV747w==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=meta.com; dmarc=pass action=none header.from=meta.com; dkim=pass header.d=meta.com; arc=none
Received: from SJ0PR15MB4741.namprd15.prod.outlook.com (2603:10b6:a03:37a::24) by SA1PR15MB4372.namprd15.prod.outlook.com (2603:10b6:806:193::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.30; Wed, 20 Mar 2024 23:28:26 +0000
Received: from SJ0PR15MB4741.namprd15.prod.outlook.com ([fe80::fc5d:8e16:c30d:7cca]) by SJ0PR15MB4741.namprd15.prod.outlook.com ([fe80::fc5d:8e16:c30d:7cca%7]) with mapi id 15.20.7386.025; Wed, 20 Mar 2024 23:28:26 +0000
From: Roberto Peon <fenix@meta.com>
To: Mike Bishop <mbishop@evequefou.be>, Matt Joras <matt.joras@gmail.com>, Marten Seemann <martenseemann@gmail.com>
CC: QUIC WG <quic@ietf.org>, WebTransport <webtransport@ietf.org>
Subject: Re: Head-of-Line-Blocking of WebTransport Flow Control Messages
Thread-Topic: Head-of-Line-Blocking of WebTransport Flow Control Messages
Thread-Index: AQHaeBDChIK4hpFX5EiRkS4JmjMvgbE7Nf0AgAYKMjCAAAucfg==
Date: Wed, 20 Mar 2024 23:28:26 +0000
Message-ID: <SJ0PR15MB47410EF8785BFDC7AB82A952D4332@SJ0PR15MB4741.namprd15.prod.outlook.com>
References: <CAOYVs2rioq=Yt-woRgx_KWeO0rMuaNT-Y4re3G3LAj9K66EPEQ@mail.gmail.com> <CADdTf+hPAPVETc+YsYXQaP2N55RtNU2tqgntxDEMhHDnvJoueA@mail.gmail.com> <PH0PR22MB3102468C04EA4E90B5F39381DA332@PH0PR22MB3102.namprd22.prod.outlook.com>
In-Reply-To: <PH0PR22MB3102468C04EA4E90B5F39381DA332@PH0PR22MB3102.namprd22.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SJ0PR15MB4741:EE_|SA1PR15MB4372:EE_
x-ms-office365-filtering-correlation-id: 594f8995-b958-4e23-55da-08dc49357161
x-fb-source: Internal
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: P7ij8i0q1hF4b8JZ/+nelcBUC+8UosVUrcFMQEcM8W3elxJNg9UVKAQq4bOe8z1h+yROD6LA2J0jlBWL4O4dgFZtFDOj28LoShacJpwSx7ZJxsQ7tDwPdaImQRAVe5zXUFCOMPWkb3muUShfdjto++ysOxSl+C160Z74cx8qxP1lwTGC3QKpb5O+E7YDAtM8CIGmeTJ1WG+hQMuyuH6J8MS41/Gm3qO3lJmZwR2JHzpFChPdTCUxcbzH9cEFH0j2Ye3r5Yy7tZfY5TL28ARZjEERcJ/dp5T6OwpxT6P9md2zyJv5IdLhUp6MKuYxLbSHB9h1xVcA0x9weMadpiTrrqu0EdbHAWATM5ykfxLa7kDyWJuB4sj+IWmrEpp32yqK0PuWeJodQ55gvqnzHHnRhuXH5KoNR3riyjxgGazcjOcji6SNcKPYq6XUWzTiCcBUtlDFmlLiU5TeVrGQuveYvBBsxcltsEnkwfgitbm3G/bxDG2HRlxyAv5dvzHcyKiQZN5fPe1C8iM/SEKahJTh19xeIrSyaCbnkQT8a1pcbgH23bkZxiBlbR47I0yV3cxCdGg5XVAMnFzCV49W7pOPxFBo7kvYFQeC175CgJHAYS3q/5VjHSUM50QcnVU8b1SBKDrqHZ5Rya53gkv7vkbeSaTGnPmEfgUyQec7vyDbSA4qZx01sQeuqUd0sQ7MW1Ll
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR15MB4741.namprd15.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376005)(366007)(1800799015)(38070700009); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 5eWszNFNsx5z0dG7GR48RSWYXMqZ3ggAecINU3B7AMtIrys0kYDdobYAoDESvsyzqL6d0sDYHlRMGmL82K2kEI8wsD8pNHeja735TmcBXVj843w9qGK7OZD9D/0ROOE78jrTxNrDr6Nxpa39v3c12jqrjt68Rb4toF1xXyiWZ8UjpuO7UwQZTZLny0kK64xusWcRc86cM43blcvrNrrNm1IO2M/KJ5c9FRmWEUvIXYgKRaNXK6JseMeZVG9wMTNe3DNHpQVh05vWzKEBhiwCeacw3Jr+geLh9A3UwIAzw8qv/0TosQXYF90Ron5lV+dfajgQoJWoVGUG5/NLnSpaA0BdEbwL1CnKkzNexWlmlOxuL7bd+1Jh7em4QFmWl8PY0DE+ZFmu91W6xCXoy5ZiAoW3VnEbtm0PnTtc6qxjO1CbIbc+Dl9iJ8Xo/DGD1x09T8M0lj24kMs7uHcycEUmBHI9Tq8+OJTZAFI+Ey4NdAnm4YRIuSB0E4XzdjuO0KjE+ZD6vHyQvnISzIiCI6RNn4zRTkcnxJPO/6KPB1THKDU2ACM9gWh783cQkQGzPL3e4QJVKW1rs9ZgQInv3beq1/W+BCt2YSbD7X5+RMn49lW/rBAtY6Nn/G8IT0huEs+ade5O3bzENvpebPlplOeYFX86ToorR1JoVxsZsGfoXzH5DMwd0mI3DsTEGH+2Vbf+8xKkQxE2vm/YWcpBYUki3lWD2wAyUE8X+a/suJIg+VJT5Ss45GTMXxYhrbWNG3jqNawz6j/U7byrVTIgp8kjsW0ku0PvyA4oB2lPJQFhw3MvcSAa2HSLCR+FP5Pcf+1H7UdID6IhSQl1+7feOSQYxpzstHMAODWukdr1uQPhYAD5c/T14rupz9BHhelcRQXiIN9P9jXsdcrRYpGX3zX+FVnMjwvvwUEwsyqnr9fY5Kfrj/oMRdLKw3NVvek3Tlfv3nl7JmGBTKVrjLzsZhkNvGd0ZgMX0n8uItHNVSI8qnSYMbVazx7sX251YcMPA5VjYG84nZCDSo9wkz4pycZrwwf2H5Pf4F23CF/YqR5pUwADOVuLr0UoylCSpaqFe1uP+A1Gyy1yGqjJuqPx4zA8vFL67nZF5Q8m+kGBTPz5NzBNTXZ/nDJib8V8XMZm7OiJh0NHHBVYo0rPpXhbdPR7CH8oVSEBO5ZccarKUAzlav0xFyPkBqayQSNd+1D63f3jYq6iXGCcceuAasT7veJy4HPMHCt8LRICw3FlI4EfKqI9OsBSDN+VLbkBTWEPPS5116d4pPUBZGQRP2PseIEdQ8Z/82/CjbrHF/ZnCwg9Lo17Gggs7azyEAZZh3QGBZUpjovwajn43/b15NaKw3diSrzDzAReMLDetwb2BzeoLHosIiqWmCUpESI4iaGqlmyc4rRCx0Z/OTkLAU468231t/7Ag88CrU9JdTMInk8tMExatZZCbG81t6FsmfYv48S25dQAmpHWk9NEJh1aZBtQUY91ixp8YsSpT4E+nAF+oQAGj/8R+7S6/JbKrGX8uPS73LiS2Pc4Xo7vmGzqpfWENwUcWGJkXtRdnipR/m6J4YKz6FAv5T5FJzAhEGqWtK3v
Content-Type: multipart/alternative; boundary="_000_SJ0PR15MB47410EF8785BFDC7AB82A952D4332SJ0PR15MB4741namp_"
X-OriginatorOrg: meta.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR15MB4741.namprd15.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 594f8995-b958-4e23-55da-08dc49357161
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Mar 2024 23:28:26.3674 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: k1yYvhZ1Fe7mU+pfI2sgl42jyiPDrysPinAI/rV2vejlqoXMB1O2/eQKG+nNbIU6
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR15MB4372
X-Proofpoint-GUID: I4275Rp-6MwLXVkHUp_BzUjwCyY88ugt
X-Proofpoint-ORIG-GUID: I4275Rp-6MwLXVkHUp_BzUjwCyY88ugt
X-Proofpoint-UnRewURL: 6 URL's were un-rewritten
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-20_12,2024-03-18_03,2023-05-22_02
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/D0w-HoovSegR5jPZZE6CnNBydPk>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.39
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, 20 Mar 2024 23:29:10 -0000

Nit: messages almost always have a known length, while streams are a superset which may/may not have a known length, and address spaces are supersets of streams.

Yes, still sad we're not making address spaces work.

Get Outlook for Android<https://aka.ms/AAb9ysg>
________________________________
From: QUIC <quic-bounces@ietf.org> on behalf of Mike Bishop <mbishop@evequefou.be>
Sent: Wednesday, March 20, 2024 3:55:45 PM
To: Matt Joras <matt.joras@gmail.com>; Marten Seemann <martenseemann@gmail.com>
Cc: QUIC WG <quic@ietf.org>; WebTransport <webtransport@ietf.org>
Subject: RE: Head-of-Line-Blocking of WebTransport Flow Control Messages

I agree with Matt. Unidirectional streams are messages, simply without the MTU length restriction. The feature Marten’s draft defines which isn’t present is the application’s ability to cancel/modify the message in case retransmission is needed. 
ZjQcmQRYFpfptBannerStart
This Message Is From an Untrusted Sender
You have not previously corresponded with this sender.

ZjQcmQRYFpfptBannerEnd

I agree with Matt. Unidirectional streams are messages, simply without the MTU length restriction. The feature Marten’s draft defines which isn’t present is the application’s ability to cancel/modify the message in case retransmission is needed. A similar effect can be achieved on unidirectional streams by canceling the old stream and sending a new one when a new instance is ready to be sent.



If WebTrans chooses to register a Single Capsule stream type in HTTP/3, they can do that either now or as an extension. (In either case, they would still need to define an internal framing layer to tie the stream/MESSAGE to the WebTransport session, similar to H3 Datagrams.)



From: QUIC <quic-bounces@ietf.org> On Behalf Of Matt Joras
Sent: Sunday, March 17, 2024 12:30 PM
To: Marten Seemann <martenseemann@gmail.com>
Cc: QUIC WG <quic@ietf.org>; WebTransport <webtransport@ietf.org>
Subject: Re: Head-of-Line-Blocking of WebTransport Flow Control Messages



Speaking personally, I think this would be a confusing semantic to add to QUIC. RFC 9308[1] says of streams:



> Streams can provide message orientation and allow messages to be canceled. If one message is mapped to a single stream, resetting the stream to expire an unacknowledged message can be used to emulate partial reliability for that message.



Indeed when discussing QUIC with application designers I often find myself explaining streams as arbitrarily lengthed messages that can even be made partially reliable. Introducing what is essentially a reliable datagram undermines the value proposition of streams over datagram-like abstractions, which I believe have less utility to applications in general. While this draft seems to be solving a real issue for WebTransport I would hope we could come up with a different solution that doesn't unintentionally reinforce the idea that QUIC streams are as semantically limited as stream sockets of yore.



Best,

Matt Joras



[1] https://www.rfc-editor.org/rfc/rfc9308.html#name-use-of-streams<https://www.rfc-editor.org/rfc/rfc9308.html#name-use-of-streams>



On Sun, Mar 17, 2024, 12:14 PM Marten Seemann <martenseemann@gmail.com<mailto:martenseemann@gmail.com>> wrote:

The current proposal (https://datatracker.ietf.org/doc/draft-thomson-webtrans-session-limit/<https://datatracker.ietf.org/doc/draft-thomson-webtrans-session-limit/>) for transmitting flow control messages serializes the capsules onto the WebTransport control stream. Since the control stream is a QUIC stream, this means that these messages suffer from HoL blocking in the case of packet loss.

Depending on the usage pattern of the WebTransport application, this will matter more or less.



Here's an alternative way to solve this problem: By allowing WebTransport to send the flow control messages / capsules directly on the QUIC connection, these messages can be transmitted independently from each other. This can be achieved by introducing a new QUIC frame: the MESSAGE frame. MESSAGEs are kind of similar to DATAGRAM frames, with the important distinction that MESSAGE frames are 1. delivered reliably to the application, and 2. retransmitted / updated in case of packet loss.



For more details, please refer to my (very early-stage) draft: https://marten-seemann.github.io/draft-seemann-quic-reliable-message/draft-seemann-quic-reliable-message.html<https://marten-seemann.github.io/draft-seemann-quic-reliable-message/draft-seemann-quic-reliable-message.html>