[Moq] Exploring HTTP/3
Luke Curley <kixelated@gmail.com> Wed, 08 February 2023 18:33 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 4B8A2C1524DE for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 10:33:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.094
X-Spam-Level:
X-Spam-Status: No, score=-2.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_NONE=-0.0001, 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 gM1OJmAI5V-n for <moq@ietfa.amsl.com>; Wed, 8 Feb 2023 10:33:28 -0800 (PST)
Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) (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 9987AC14F74B for <moq@ietf.org>; Wed, 8 Feb 2023 10:33:28 -0800 (PST)
Received: by mail-ej1-x631.google.com with SMTP id lu11so53403176ejb.3 for <moq@ietf.org>; Wed, 08 Feb 2023 10:33:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=m45q5ePJouZYyBd7Jnx37uD67DHByShSjok6z6tH1lw=; b=JK87LvU9Ur93TmxyKHvzbVyj+FUvzxp2qeut0x0Cxf2fKdE5IaCnk3HgdGRMkyiyZy 6bcPJJo+vyLYoPmyCFZQuM7l8UskSJFwKN3M1yn5LLL0i7PROlOrzFbMeUy4savckP5V etjHIgWKbTcBYEyIpNZeaLhfq6sJ/zqegt2oYBFuEAb3ZlJJioaUqu3GVni6mn7/Fazq p+kMU7KtqE9bzyMhRpV5gNFLV+c7COB87hjd2MwNyScEq4KCubwjc+g+ue0kHKA7hYad CsVVyqqVzWqxQse1YDv0/fyMjU5DQVnFnGd8EDMLXYidV3yGHV7tqZ/cw0K7zYaLX5Uu wXsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=m45q5ePJouZYyBd7Jnx37uD67DHByShSjok6z6tH1lw=; b=iMif5CoZclC4oMSool59rOmCVfKvvo6cKmMFSpszrhi4XgE5EG3xlrk+DHhHCPRyD9 Bs4cFAB3sk9NMdLFbidLVX6g0sFICrOXulNM6cncnSACELzc4Kh0AkxFNi0ZmADzMli8 WmgrO6Hb2SsktUfz8uQ6Akb3+mKL7pP4XrjtK+HCLETslsRmRcWfo0T/i9P1j2o00OZN hEWJIZzMtZ5wz2rtZSsXm/WGOWOWsdhR3UNHuPN5/4f25Cg/lkZGlLoIpPAeDfc0wDtl CERhyD28WSAAcTEIVdXYh4ILB8/7QE2jE9O5HWaRNaMSgG3JXLnrfr3xRVu+yM+YjUAz 3Fpw==
X-Gm-Message-State: AO0yUKXdIBz1GnHmm7CLPiN391yMGGgtVTmlkejWIaUHcvmGDKXvCbXw 3LWgYZsbLDXO736mQMd5mxbRx8DfN0DrTAgqNksmbse6xI156w==
X-Google-Smtp-Source: AK7set+ptmFnuOstuw9FIUfa5F8/V6mxS3Dzhyf5Cdwe0+518nnbzbotJT2dQfeRxqd6m0GOvnDiMqDhP+oDcxEHq0o=
X-Received: by 2002:a17:906:4d58:b0:87b:d491:4311 with SMTP id b24-20020a1709064d5800b0087bd4914311mr1838300ejv.275.1675881206532; Wed, 08 Feb 2023 10:33:26 -0800 (PST)
MIME-Version: 1.0
From: Luke Curley <kixelated@gmail.com>
Date: Wed, 08 Feb 2023 10:33:15 -0800
Message-ID: <CAHVo=ZmD7KvKxh2tTeaM2B+0q9=qZPgBydmfaHor5MaPODZf6w@mail.gmail.com>
To: MOQ Mailing List <moq@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000004f7405f43480a9"
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/S3eOPU5XnvQ4kn1zJyDThG5U4sA>
Subject: [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 18:33:29 -0000
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).
- 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