Re: [Moq] Exploring HTTP/3
Victor Vasiliev <vasilvv@google.com> Wed, 08 February 2023 23:23 UTC
Return-Path: <vasilvv@google.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 4CF4AC15152F for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 15:23:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.596
X-Spam-Level:
X-Spam-Status: No, score=-17.596 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, 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, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 pIxBSS_KbjAz for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 15:23:20 -0800 (PST)
Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) (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 7F080C14CE4B for <moq@ietf.org>; Wed, 8 Feb 2023 15:23:20 -0800 (PST)
Received: by mail-ej1-x632.google.com with SMTP id p9so1570476ejj.1 for <moq@ietf.org>; Wed, 08 Feb 2023 15:23:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.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=ykxkMvSzDAr28CmPGU3anTkxNzfwEA7/gWYyt309V9Y=; b=nsnCOBLb2LEMpIISMTlp8nwhDNDGYACmP0wAqkdi8gEuJ6ntXtchxmkM8jNccatrmw OihGnlY73fPpoAnFMnkFkbPbtAC0BSfG8yRCNC182DsVxEPGF4MQF9KZXOnHVEDAi8tJ alrZZ95LOUF2vnIB2ueihd3nTh7RVJxNeHxka2JNeTA3bKcksL5LLnskPGUC606fWTgZ o2L49VYtjRygsCjIxV8Lhh1pMt+hvRcWPqJKQ+tEWdwmlcEb9SSjgNyrL9dvXXK13krw IIU5OsvjIQ9k/t4qV9o6tfFg6KDzqJZzfqafZNp3bY8Q7WzhSDxFls+x7KoZZ2P3nhwj BWog==
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=ykxkMvSzDAr28CmPGU3anTkxNzfwEA7/gWYyt309V9Y=; b=zODagEdyL33ylOj3JHnpQQyLxUv1Bf1yOr2kNngeE9NbwfrG3+huqPryuj4k1OYOWG nxsubNSbI/LBU2GtdyVsKywW5PXVyfo2uWLQXXiQD3iGjWctlcUuFTp2//7iomSc123B feIeVa1zV//hHYagB5HShXT1glQAsuGYt814uUlITsR1DaypRey2R41yeHMSJts2b/Q/ sYDnO4jbjmsbIU+ZVTg6td7MfiLLGkr5+TRGurD0n4zgtpzFeDcUIvmeJhzof+rH9dL6 5/ng012LL50TPLpAoV8fHjHZIQNFJcceciLeGXIAGE9AxtAnwJpchVBVOzVv/nNGLfe7 h+Dg==
X-Gm-Message-State: AO0yUKWPW/G/0JfU02dS8TTt3HXKPZSvzhl7hsSo+3GOmCo31fpqM5Bw W2qbwv6YAUsNI7r/7QD6aFT++Tz6oYvL0BhyJyy+xkNgkNPYXBGB
X-Google-Smtp-Source: AK7set+Vy4ldKmrAQbNSerMpafv+y7pq3J53LCbMiyXHTxU9zBypymeCd4EYECGo0TG8N8H+mNeI5jk9TVgoFf2Tjhw=
X-Received: by 2002:a17:907:2c48:b0:877:747d:1112 with SMTP id hf8-20020a1709072c4800b00877747d1112mr84621ejc.15.1675898598513; Wed, 08 Feb 2023 15:23:18 -0800 (PST)
MIME-Version: 1.0
References: <CAHVo=ZmD7KvKxh2tTeaM2B+0q9=qZPgBydmfaHor5MaPODZf6w@mail.gmail.com>
In-Reply-To: <CAHVo=ZmD7KvKxh2tTeaM2B+0q9=qZPgBydmfaHor5MaPODZf6w@mail.gmail.com>
From: Victor Vasiliev <vasilvv@google.com>
Date: Wed, 08 Feb 2023 18:23:03 -0500
Message-ID: <CAAZdMae+WVxYZbKPdWHqApPVX3F5wQ2KHUS03VdFekaCvQiyiA@mail.gmail.com>
To: Luke Curley <kixelated@gmail.com>
Cc: MOQ Mailing List <moq@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000a5b6b705f4388ca1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/3BYEkyDs9yd1_UUdcUCgEcmSCJ4>
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 23:23:24 -0000
Hi Luke, As you mention, most of the transport-level techniques that WARP uses (priorities, etc) are doable with HLS or DASH over HTTP/3 (in fact, I am aware of some of those being actually implemented in practice). That said, I believe that HTTP is fundamentally not the right solution here. HTTP is really good when you have a resource with an address that's known in advance and you are trying to fetch that resource (directly or indirectly) from an entity that is an authoritative source for it. This works well for the regular web pages, and this works well for VoD, but as soon as you stray away from the well-lit path, you suddenly find yourself doing an increasingly convoluted series of awkward things just to make it work. For instance, you mention long-polling, but long-polling is not necessarily consistently supported by the ecosystem, and you have no guarantee that an intermediary won't wait until fetching the entire resource, or deliver chunks unevenly over time. Similarly, HTTP server push has been largely unsuccessful. Same thing with trying to make Priority header work with the WARP priority scheme. I think MoQ provides us with an opportunity to build a protocol that actually makes sense for transporting live media, as opposed to trying to fit HTTP into the model it's not good at. Especially when with every "gotcha" you encounter with HTTP, you lose some of the advantage that made HTTP seem like an appealing proposition in the first place. -- Victor. On Wed, Feb 8, 2023 at 1: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