Re: [Moq] Exploring HTTP/3
Luke Curley <kixelated@gmail.com> Wed, 08 February 2023 20:02 UTC
Return-Path: <kixelated@gmail.com>
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 E1929C1575BE for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 12:02:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.094
X-Spam-Level:
X-Spam-Status: No, score=-7.094 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_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=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=gmail.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 eIIvJ1uWhE-q for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 12:02:44 -0800 (PST)
Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 20613C165767 for <moq@ietf.org>; Wed, 8 Feb 2023 12:01:45 -0800 (PST)
Received: by mail-ej1-x630.google.com with SMTP id p26so57383ejx.13 for <moq@ietf.org>; Wed, 08 Feb 2023 12:01:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Gt6gxm2c1w0ldZXdCYi0qtSwBCHeGe/Z4h0YEx+hBTc=; b=BjxntWdXP3OwnFMAOVxiA8WR1ja9BWhyN+fEaz2dzjJxO9NpvqF4ccEOkW2lI/iED8 HnvtEaqb0rwcqF+7wkiJ+ZMPzXNVNiTowRG5y4W+HgzccoDz4WfZY9QX4fGVgVSsgu9G d2qyUcVpJCCaUdpqq2DUIJWA5G3HhgME+jJgqJcxp8nvJaTsUWpoYUWY89JLar6cHS5D n1sceY1Tv4KrP0CVZJQxUzDXkbzsyarAz3XvPJJqGDj/rvlVpSyScxJ/ZtjUN+43Sq3c DaApmX61XHSWZS5x+9/htnjjisJdAGJVaLQst++C9INkB9cK80z2zYElw/UqOz04fmzF 4RkA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Gt6gxm2c1w0ldZXdCYi0qtSwBCHeGe/Z4h0YEx+hBTc=; b=mJ+V1BOsvYaMNjzcp8AirQ13dOG6pcaQMBGnmAXz9y/r4YE/QcRvqQX5m1nA/6TEv/ DEabm6zy0t7Py2qSr6f899BGHCucoNaD6YrKtxmO4D3ZGK8vm2m+j0OxzoxW+pWISUgR CTTaQjLYWgBVugXy6hq8IA6K6s/1FgghtPEvGVXhnmD/QCTrmLJRPNybqhtt1x2OZCuC XaHmbQZsDW9YO5v8oyhCWq5pQofGRRFGypYk+tuXROHW7M0/wPvD4Wb+OC9i1/0/VML4 tEBRF+xOdXyClBv1E5TabhI1w4IQ6gH2PaHB/mCrkkWjkdpko03K4p9MfVlSvgSeK4zl U6jw==
X-Gm-Message-State: AO0yUKUH5qsk93xoaXAO8SmWPVjBHnwEUcBnRNQG5YRvaS2tYjjFUKGB SxMWYt6OaAU3zhG1zFAZB9LOhXT3TYbbjOWhNWo=
X-Google-Smtp-Source: AK7set8+uG9I22iZKRumQgCC6fRUthGyTHjakgiHkb4TlbrS5E2nNDbRExGN48OdvYqCbjqEed9ttFVxUBzr3oTA11k=
X-Received: by 2002:a17:906:4d58:b0:87b:d491:4311 with SMTP id b24-20020a1709064d5800b0087bd4914311mr1893117ejv.275.1675886502634; Wed, 08 Feb 2023 12:01:42 -0800 (PST)
MIME-Version: 1.0
References: <CAHVo=ZmD7KvKxh2tTeaM2B+0q9=qZPgBydmfaHor5MaPODZf6w@mail.gmail.com> <CALGR9oas8cMBrX1WVf64fH13jr1r-S0KQB5spNzFj41k9Lgk+A@mail.gmail.com>
In-Reply-To: <CALGR9oas8cMBrX1WVf64fH13jr1r-S0KQB5spNzFj41k9Lgk+A@mail.gmail.com>
From: Luke Curley <kixelated@gmail.com>
Date: Wed, 08 Feb 2023 12:01:31 -0800
Message-ID: <CAHVo=Z=Nov7B24A=M2pxPnUgyBg3n-AjF8AD2mKwgbTQ81F+mA@mail.gmail.com>
To: Lucas Pardue <lucaspardue.24.7@gmail.com>
Cc: MOQ Mailing List <moq@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000ac67b505f435bbd1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/Ea5j5WizDKwBtLALP2T889JXZcM>
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: Wed, 08 Feb 2023 20:02:48 -0000
I've never used it before, but I know Youtube supports HLS for contribution. Use PUT instead of GET and you have a publisher. I don't think it would be too hairy, although it would require switching from push to pull at an origin. And yeah, I agree that browsers are the main obstacles when pushing media, but that doesn't change too much with WebTransport. We still need a way to set the priority when pushing a WebTransport stream, much like we would need a way to set the priority when issuing a HTTP PUT. I suppose it's easier to modify WebTransport since it's in development. On Wed, Feb 8, 2023 at 11:08 AM Lucas Pardue <lucaspardue.24.7@gmail.com> wrote: > Hi Luke, > > For distribution, I think HTTP can probably be massaged into meeting the > needs of the group. That was a thought I had when reading your early WARP > drafts. I would review something if you put it out. > > However, I think things get trickier when we consider the charter text > "The solution will be implementable in both browser and non-browser > endpoints.". The browser part makes things tricky. It probably rules out > non-kludgy HTTP/[2,3] server push solutions for distribution (because > there's no API for push, and resource transfer optimization via push is > seemingly getting overtaken by 103 early hints now). So I agree avoiding > push is probably a good way to go. > > Browser and HTTP contribution seem more thorny. I don't work for a browser > but I'm not sure a client has sufficient controls over browser behaviours > to send HTTP content in a way that some of the WG goals might need.* > WebTransport provides a lot of toolkit, it might not be perfect, but it > seems closer to hand than the idea that a client might be able to influence > local upload prioritization deep in the browser stack (as just one > example). > > Cheers > Lucas > > * Over in the HTTP WG, we had a short thread on prioritization of > concurrent uploads, see > https://github.com/httpwg/http-extensions/issues/2242. RFC 9218 > priorities always left the door open to allowing clients to use priority > for "local decision making", so its feasible. I just didn't hear much > support for implementing upload prioritization for resumable uploads, but > maybe a media use case might change that. Not sure. > > > > On Wed, Feb 8, 2023 at 6:33 PM 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 >> <https://datatracker.ietf.org/doc/html/rfc9218> 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 >> >
- 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