Re: [Moq] Exploring HTTP/3
Luke Curley <kixelated@gmail.com> Thu, 09 February 2023 17:56 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 B5550C15EB2E for <moq@ietfa.amsl.com>; Thu, 9 Feb 2023 09:56:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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] 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 CV94VtapZERr for <moq@ietfa.amsl.com>; Thu, 9 Feb 2023 09:56:02 -0800 (PST)
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) (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 C4330C16950A for <moq@ietf.org>; Thu, 9 Feb 2023 09:56:02 -0800 (PST)
Received: by mail-ej1-x62c.google.com with SMTP id qb15so6716602ejc.1 for <moq@ietf.org>; Thu, 09 Feb 2023 09:56:02 -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=c0o0FUxendsHP6z86hP145vmww/sp/1wkEPvmkEo2Jo=; b=Kw8z8Q3ZCQeHNbm/ztitUZZ+e8vSO8OFryZsijR2tVQyXRvWlxn97xZoZ24pvhqFRe 8sJ51u98mM84WP83F3l6uXa3Q4a0a+yO/tK+cgo5w/zKVs5WF+mRJCafqq7MlRJcTPFn vwO5vuwiIORMbq8YFzfW6o0VESC3fM+M4HvR1mGfDBePV00vUOL3X8JOFfheIhH7B7EY FwEC8LkAwQN265m5ZrxeY6+Wm9aqkxJ3C15z2n87Ub3VCuA9IgCoJ9nwTF93zKdUHzJQ i27HX+W8ySk3wwbabqFAcbCELnYSbbG+XQUjJIMmcBYVBOU+c7BcQgs0sY4sP+0r0Cgi B+jw==
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=c0o0FUxendsHP6z86hP145vmww/sp/1wkEPvmkEo2Jo=; b=ILAXb31SBCTIyasWXdPFutIrBIpPdqo8F7olRQdl4l/aLetWiladiraIPl4of7fqke VQmNdn8GrttUn/s1htEH1Se90g0B3zeYvlb02FhuQBWqjIwHA3zxu3WUOox5MF7HEZsl IwfiPsP1zLJXfFe/3ZSc95+YfnQRGFfR0hI3w9o5F28ByQdpdV1047j3KlP8ON9SXm6h fEn8X3bpJ+mWaZQnM49z01mofQQC7B67SPm2jw/LjtC3CEeRMlWl3YdfcsWa4GsxWJaz IehadiC/mWzc3pfQnMTtu0Mj23bScta7FlSXfCCBQNZpBJKBLe28lnm0pAKLye4k9cMJ 0H7w==
X-Gm-Message-State: AO0yUKXArh6xaN35/vxoXdpgKRyu4lPpKGaRQUldAodXUkRUc9906q7X pF2FlRKiMcHufgGvMPdQSNJMCHstnSH3naFQTUsZ7rNZONA=
X-Google-Smtp-Source: AK7set+NFv+J1+gz3N4LBBYITBU6fxEYdcpRjXUwofHOQxWxmeYDe2NJbHGCqcJZdJS76iVl6QrFnwlm7fjM1IERhM4=
X-Received: by 2002:a17:906:4d58:b0:87b:d491:4311 with SMTP id b24-20020a1709064d5800b0087bd4914311mr2508373ejv.275.1675965360278; Thu, 09 Feb 2023 09:56:00 -0800 (PST)
MIME-Version: 1.0
References: <CAHVo=ZmD7KvKxh2tTeaM2B+0q9=qZPgBydmfaHor5MaPODZf6w@mail.gmail.com> <CALGR9oas8cMBrX1WVf64fH13jr1r-S0KQB5spNzFj41k9Lgk+A@mail.gmail.com> <CAHVo=Z=Nov7B24A=M2pxPnUgyBg3n-AjF8AD2mKwgbTQ81F+mA@mail.gmail.com> <CALGR9ob4i7Z8zuqFVHtzOGV3QMTFjvOK4uZW3Xfvb5ZsoULvMg@mail.gmail.com> <CAKKJt-eC=h20Va4+64r=zkhYXK_ypC+txLqzgpr+YL=HW-DD+g@mail.gmail.com> <CALGR9oYr2OZZcfmFdqLgQ0Uqu7pAwQTnbuf-Fm64m58Spe6xYw@mail.gmail.com>
In-Reply-To: <CALGR9oYr2OZZcfmFdqLgQ0Uqu7pAwQTnbuf-Fm64m58Spe6xYw@mail.gmail.com>
From: Luke Curley <kixelated@gmail.com>
Date: Thu, 09 Feb 2023 09:55:50 -0800
Message-ID: <CAHVo=ZmeJfdoLc9NatDDEeAQG0X9_aygQm0ZSdtzeKEu=bO2pw@mail.gmail.com>
To: Lucas Pardue <lucaspardue.24.7@gmail.com>
Cc: Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>, MOQ Mailing List <moq@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000f490be05f44817d2"
Archived-At: <https://mailarchive.ietf.org/arch/msg/moq/YenUYG5_cuLWpBBmkTuO8ohyMyU>
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 17:56:04 -0000
Yeah, I do think HTTP semantics mostly get in the way here. One of the problems with Warp over HTTP/3 is that prioritization is best scoped to a connection. Meanwhile HTTP semantics are agnostic to the underlying transport and we can't enforce connection sharing.q For example, suppose a client issues a request for segment 5 and segment 6, asking that the newer segment is delivered first during congestion. If the two requests share a HTTP/3 or HTTP/2 connection, then the HTTP server can prioritize. Any available bandwidth under the congestion window is spent on STREAM frames for segment 6 first. If the two requests are over separate QUIC/TCP connections, then IP/flow priorities could work, but not really. Support is limited and it gets messy since QUIC packets are sequenced. We would need something like multi-path to individually prioritize QUIC packets within a connection (ex. there's a 3rd request with a different priority). If the two requests hit a server that doesn't support prioritization, then that hop will round-robin. Head-of-line blocking may even be preferable, but there's no way of knowing that a HTTP relay doesn't support prioritization. That was my biggest concern with the HTTP Priority header: it's a hop-to-hop property expressed in an end-to-end header. One of the reasons for using WebTransport instead of HTTP/3 is that it gives us a firm guarantee that streams share an underlying connection. Additionally, QuicTransport used to guarantee that it was a dedicated connection, although that went out the window when pooling "support" was added. We still run the risk of a generic WebTransport relay using round-robin, but without adding priorities explicitly to WebTransport, I don't think there's any way to avoid that. On Thu, Feb 9, 2023, 8:36 AM Lucas Pardue <lucaspardue.24.7@gmail.com> wrote: > Hey Spencer, > > On Thu, 9 Feb 2023, 16:00 Spencer Dawkins at IETF, < > spencerdawkins.ietf@gmail.com> wrote: > >> Lucas, >> >> On Wed, Feb 8, 2023 at 4:55 PM Lucas Pardue <lucaspardue.24.7@gmail.com> >> wrote: >> >>> >>>> 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. >>>> >>> >>> The W3C WebTransport WG has been considering the questions of >>> prioritization and congestion control feedback for a relatively long time. >>> And we have been making progress. It has the right people and the right >>> charter to work on it. I'm a little pessimistic about trying to get >>> momentum for HTTP upload changes MoQ could require, in the sorts of >>> timeframes that MoQ would find useful. For context, fetch *does *even >>> support preference of HTTP version, nor exposese connection pooling. But >>> maybe I'm too conservative in this regard. Asking ourselves the questions >>> is definitely worthwhile. >>> >> >> Could this have been "fetch *does NOT* even support preference of HTTP >> version"? >> >> I was guessing so, but didn't want to guess when I could ask. >> > > Yes you're right. Thanks for spotting that! I always appreciate a careful > eye. > > At the HTTP semantic layer, the version doesn't really matter, your > request or response objects get transferred around. The same scheme value > "https" works for all versions. Under the hood there's lots of differences > and complexity of course. The Fetch API feels about the right layer of > abstraction for most purposes. > > My sense so far has been that QUIC is providing unique qualities that the > MoQ protocol (whatever it is) wants to harness. If that's true, HTTP/3 is a > hard requirement of an HTTP-based MoQ protocol, then we'd have work to do > in the web platform to ensure its abstractions don't get in the way. > Likewise, implementation details like internal stacks, layering, security > model etc would need to be considered. This isn't an impossible task but > nor will it just happen without investment and engagement. > > Cheers > Lucas >
- 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