Re: [Moq] Exploring HTTP/3
Mark Nottingham <mnot@mnot.net> Thu, 09 February 2023 02:38 UTC
Return-Path: <mnot@mnot.net>
X-Original-To: moq@ietfa.amsl.com
Delivered-To: moq@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CD0F0C14CF05 for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 18:38:42 -0800 (PST)
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, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, 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=mnot.net header.b="gfde8sdV"; dkim=pass (2048-bit key) header.d=messagingengine.com header.b="qrsCA6rj"
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 pA3-5UucMcT4 for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 18:38:38 -0800 (PST)
Received: from new3-smtp.messagingengine.com (new3-smtp.messagingengine.com [66.111.4.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 86601C14F749 for <moq@ietf.org>; Wed, 8 Feb 2023 18:38:38 -0800 (PST)
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailnew.nyi.internal (Postfix) with ESMTP id 6B917582683; Wed, 8 Feb 2023 21:38:37 -0500 (EST)
Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 08 Feb 2023 21:38:37 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm2; t=1675910317; x= 1675917517; bh=o0BbFE9Hh+YX/pQtvcgdIFw5KXA8HDhfRia3vSlpSnw=; b=g fde8sdVoOCwVoRbHBMDHjlXMpzECt25govMeysBZR5Opaz1tVeZkyqikizIRTRWO mT61l+Da26qOaR3z2uLY62w9Vjm1MGxJhcTM+tVPsyvI0qQ8xBPkuzZRsRH8+aWh pK3J33BKqcQiJ40zC8pS5o0Sv/FfIlIROPQSuavA6Tka0CAcWSGZp6QkVePKIlaR 5OBxSzILz+HgMUzhM5wa7zmpeaCvm0Z32lMhuUJSXvDinPDxPZ8Fugl22Eyo54mG XR6xAtsNfBO/FOYsvLgSLmGiAtnF8a8HZ7ZCtHMI4hApe9fC6C+StnROwgkFiUtv SnYFFXjv213GJUHa6ShEA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1675910317; x= 1675917517; bh=o0BbFE9Hh+YX/pQtvcgdIFw5KXA8HDhfRia3vSlpSnw=; b=q rsCA6rjWgFQFjzDZzoGHNeXoM0mWz+J58n7emOUY/s9ki40/gViqPHH4sWbuPw/z yKPY6khgx2yAOoydVPw7Op1Hk2n2iT6UqI0okmWWFjXonJeH2NTApzF+7FiFjaw9 WPrWLc9G79MjRHHosuweTDV9dlYHvDAg/mUUWXqNOt4J7DTSQj86thdEGLYjqvV0 3WuxfUm9hyKuWXD20qhzf8Jyvj0pH3u+MpjwvjxqL1G+WcwWqNHuc3HEq96Ro+oW SDGy8zo5TlePVWiYKeLAvaW7NIkuKayTg+Aa73YWj0oieMQelWJfeBRYT2xDp0Ly TB91ar2SnsbxLYU8VtAtA==
X-ME-Sender: <xms:rVzkYwIrakNDBbxQny8vckdJiGoM3XQwJbHbObdAKdxuqpigJBTJ6g> <xme:rVzkYwI4psAr3rNC7kWfaJsKMQ1Ptr_6MmAbKXVUepRsuQodNNUG54Th0gGoR7ARE zOJ7UmD-WOZOPI6DA>
X-ME-Received: <xmr:rVzkYwv9T7KMaPy8MAA_6ZTK-RtEtZA4pmGD_Fg3jpjugdB2ijDh2VIpsmkPmOMhlrgNIoZvAj_9ZehbRfZxSN2tOvOSLB6U5G0cs5bUH4h5Pcn2LjkmxwLD>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrudehuddgudegkecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecuogfvvgigthfqnhhlhidqqdfuphgrmhgsohhtqd gkgedvhedqtdehucdlfedttddmnecujfgurheptggguffhjgffvefgkfhfvffosehtqhhm tdhhtddvnecuhfhrohhmpeforghrkhcupfhothhtihhnghhhrghmuceomhhnohhtsehmnh hothdrnhgvtheqnecuggftrfgrthhtvghrnhepteekgfevfffhieejveetvdevtdeuleev fedvudeitdelfefhffffvdevgfegudfhnecuffhomhgrihhnpehmnhhothdrnhgvthdpfi gvsghtrhgrnhhsphhorhhtphhushhhihhsnhhothhthhgvohhnlhihohhpthhiohhnrdgr thdpihgvthhfrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrg hilhhfrhhomhepmhhnohhtsehmnhhothdrnhgvth
X-ME-Proxy: <xmx:rVzkY9YLbt4eYBE4ieRzkANbcNH4amPXaCmk_LHckSEzBGuYnSJMdw> <xmx:rVzkY3YSCU3G3LHk_7tnXC_TQ-w3zYrHFxO-bhu6Q7IzFo_cZoRV0A> <xmx:rVzkY5B8Ic1YPaSUDohhrMfiTciheU9tH8ET7QWsDUKiP_e2B0zMDg> <xmx:rVzkY4CQXTqaw2OHw0j-1wB1aKleJNVBqqMiwnbfgvGZH-T3rvKb3w>
Feedback-ID: ie6694242:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 8 Feb 2023 21:38:36 -0500 (EST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.400.51.1.1\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <CAHVo=ZmD7KvKxh2tTeaM2B+0q9=qZPgBydmfaHor5MaPODZf6w@mail.gmail.com>
Date: Thu, 09 Feb 2023 13:38:14 +1100
Cc: MOQ Mailing List <moq@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <30392C3A-92CF-452F-B5E5-5F7CA53619FC@mnot.net>
References: <CAHVo=ZmD7KvKxh2tTeaM2B+0q9=qZPgBydmfaHor5MaPODZf6w@mail.gmail.com>
To: Luke Curley <kixelated@gmail.com>
X-Mailer: Apple Mail (2.3731.400.51.1.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/048KpfZwWLwDqxbKOOGlMU7Tj4g>
Subject: Re: [Moq] Exploring HTTP/3
X-BeenThere: moq@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Media over QUIC <moq.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/moq>, <mailto:moq-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/moq/>
List-Post: <mailto:moq@ietf.org>
List-Help: <mailto:moq-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/moq>, <mailto:moq-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Feb 2023 02:38:42 -0000
Hey Luke, Just FWIW, I'm super-interested in adapting HTTP to accommodate pub/sub and similar patterns; there's a lot of value in having an agreed way to do this not only for media, but other use cases. I wrote about this a while back,[1] and I'm still open to a lot of different paths to this goal; most recently, the possibility of selectively breaking assumptions in HTTP's message exchange pattern. Lucas brings up a central point -- without browser support, our design space is very constrained. However, I suspect that a general-purpose design that has significant support would at least get consideration from them; they know that Server Push wasn't up to scratch, and that something needs to fill that hole at least partially (although the use cases they're interested in are very different). Happy to chat with anyone about figuring this out. Cheers, 1. https://www.mnot.net/blog/2022/02/20/websockets > On 9 Feb 2023, at 5:33 am, Luke Curley <kixelated@gmail.com> wrote: > > Hey MoQ, > > As I mentioned in a recent email: > > > The best part about HLS/DASH is the HTTP ecosystem. That includes CDN support, optimized software, and general interoperability. We lose a lot of this by creating a custom pub/sub mechanism. > > > The worst part about HLS/DASH is the latency. This is caused by head-of-line blocking (buffering) and the client being in charge (requesting playlists and segments). The Warp draft tackles these problems with QUIC prioritization (delivery order) and WebTransport push respectively. > > > I think it's possible to address the problems with HLS/DASH without forgoing HTTP.; WebTransport push is not the only option. At one point I drafted Warp over HTTP/3, but abandoned it because it's more complicated and Twitch doesn't need 3rd party CDN support. > > Warp's OBJECT frames are strikingly similar to HTTP/3's HEADER+DATA frames, and unironically we're considering using qpack to compress the OBJECT headers. I propose each Warp object would be a HTTP resource instead. This parallels discussion at the interim suggesting we need a way to GET old media for DVR. > > Head-of-line blocking can be avoided using QUIC (or HTTP/2) prioritization with the Priority header. The client would request each source with a priority based on the contents. For example, request the newest audio segment with urgency=7 while the older video with urgency=4. There's some warts especially involving relays but it's not unsolvable. > > The latency caused by requests can be avoided by long polling. The purpose of WebTransport push is to avoid the round trip between when the client is informed about new media until it requests it. Twitch uses long-polling with HLS today to accomplish the same thing, preflighting the next request based on a deterministic URL. Prioritization lets you preflight multiple concurrent requests without the risk of them fighting for bandwidth. > > Alternatively, some variation of HTTP push could avoid request latency. I've said this before, but QUICR looks a lot like a hypothetical HTTP subscription since it's based soley on the URL. Nobody likes HTTP push, let alone extending it, but technically we're building something similar. I would not recommend this direction. > > I'm mostly worried about how browsers/servers will handle a request per frame. I still strongly recommend breaking media into layers anyway; I'm still not convinced that networks need the ability to drop individual frames. For example, non-reference frames could be bundled together into same HTTP resource, and prioritized lower than reference frames. > > > But in theory that's all we need. I can write up a draft if the WG thinks it would be fruitful to explore this direction. It could be a DASH extension, although it's still important to address the contribution side of the coin (ex. push using HTTP PUT). > -- > Moq mailing list > Moq@ietf.org > https://www.ietf.org/mailman/listinfo/moq -- Mark Nottingham https://www.mnot.net/
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Spencer Dawkins at IETF
- Re: [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Ali C. Begen
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- Re: [Moq] Exploring HTTP/3 Victor Vasiliev
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Ali C. Begen
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Ali C. Begen
- Re: [Moq] Exploring HTTP/3 Mark Nottingham
- Re: [Moq] Exploring HTTP/3 Spencer Dawkins at IETF
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- Re: [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Bernard Aboba
- Re: [Moq] Exploring HTTP/3 Spencer Dawkins at IETF
- Re: [Moq] Exploring HTTP/3 Bernard Aboba
- Re: [Moq] Exploring HTTP/3 Spencer Dawkins at IETF
- Re: [Moq] Exploring HTTP/3 Lucas Pardue
- Re: [Moq] Exploring HTTP/3 Charles 'Buck' Krasic
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Roberto Peon
- Re: [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Luke Curley
- Re: [Moq] Exploring HTTP/3 Christian Huitema
- Re: [Moq] Exploring HTTP/3 Victor Vasiliev
- Re: [Moq] Exploring HTTP/3 Suhas Nandakumar