Return-Path: <kixelated@gmail.com>
X-Original-To: moq@mail2.ietf.org
Delivered-To: moq@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1])
	by mail2.ietf.org (Postfix) with ESMTP id BD4FA1083EF11
	for <moq@mail2.ietf.org>; Fri, 26 Jun 2026 11:47:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1;
	t=1782499662; bh=V5xCyhZ7EcZRUjaGXUC+yZz+5KLpPeM3ixJZY/Oht+w=;
	h=References:In-Reply-To:From:Date:Subject:To:Cc;
	b=oH9CD9oi+q6wr4NTINwXHg++KZ6R6oNhpTc3OcCY0VBkMP2QkdcYTj8AHrfXDmseY
	 3Vy+K+a2gwvfeW+G8PVowxZCFRtL/D2KMhUN5KJdYxygCVmYHte2g6Wh13EgAmTNFk
	 z0OCJxAId4lnCM30Mve0FMAAqcogBBZZGtX8tv3A=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.088
X-Spam-Level: 
X-Spam-Status: No, score=-2.088 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, SPF_HELO_NONE=0.001,
	SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01]
	autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key)
	header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31])
	by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id v6avRRG78Bfp for <moq@mail2.ietf.org>;
	Fri, 26 Jun 2026 11:47:42 -0700 (PDT)
Received: from mail-ed1-x533.google.com (mail-ed1-x533.google.com
 [IPv6:2a00:1450:4864:20::533])
	(using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256)
	(No client certificate requested)
	by mail2.ietf.org (Postfix) with ESMTPS id AE8161083ED7E
	for <moq@ietf.org>; Fri, 26 Jun 2026 11:45:22 -0700 (PDT)
Received: by mail-ed1-x533.google.com with SMTP id
 4fb4d7f45d1cf-691c5776f35so2116960a12.3
        for <moq@ietf.org>; Fri, 26 Jun 2026 11:45:22 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1782499522; cv=none;
        d=google.com; s=arc-20260327;
        b=kypeunokvW6kBd2yTf5KxzVk2itUnQiN0P5zDGD7mWpcVaCgFuKggtXSMqFo6o1ru9
         axj6TAf+03mPSXKZyKsCMuz++IASSufyfmfkXHEe3yW+lyeF12c938gH1/4GrNCimxch
         vE4VviKYJEbDIEUVm9B8eXmWsxdaJJefQ2IS/mVgOt5hCw2Z3wTqCBEZLXlgXsthug77
         X8tbEc/cJD0wsPNHP5tDlvhVFvDdsNLWJwiDASZpZM+fadJ/b2PAc5N0hOt3/mL4lITx
         m0vl11TNeKXgckix6olRYXY7BKU4f680C+thz8sFnLCJzUE/prGZAmiBr24hPl8Z1rDi
         yQ0g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
 s=arc-20260327;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:dkim-signature;
        bh=yF/yh4S1ti9AhG4kRWjK4Z4uO9nlhAejGCJsw82/J4Y=;
        fh=XLO/+K3KI5Trbh4Md9a3IyYaFQvU0AuKH1qqoVlVssw=;
        b=bmKh8Z3goBWsXefM7z93p8PWovVgx2P4NRVNQ9bebFuBbTFHGWtBX25iV9iJApfuFg
         WwHMmPSsuDc235FtXpE2AmZp/vgn4i7CDfnPHyp4EypAkRwXarvzCccyToQl6uNOK/BQ
         2pVosSfg43IzaBOjiw0Ml5Ipw17tnwlLlPQr360Qk13K8cIMysgG6psbJH6HYEP7ZcfD
         jSerqnfwEknPkkoYL7YtFQAzUMxmEbDUO8Y/+JIrb+iDZDE3UyBaBmP2KgIVyfvzr8Id
         GCU8sbRTjk8wp2FgLxjf50kCG3bwKlUTaXzaMf8jCBU2mFTbt2PYLBDqZwtYhOMXTy8a
         Id1w==;
        darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20251104; t=1782499522; x=1783104322; darn=ietf.org;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:from:to:cc:subject:date:message-id:reply-to;
        bh=yF/yh4S1ti9AhG4kRWjK4Z4uO9nlhAejGCJsw82/J4Y=;
        b=VizON6O9E1KyK4dLD1lAOuQsdPfkLp8uVy0Fq5sUIF/2vYPCeEQr1v+JcF032wN0vX
         /6/crTaWO5Eb9yjQ/w0o+u9Yw7L3ZfUzsoe9cHCVuQr6AQ1fJGhWO/KMQXlGtEBTRjnv
         yidv7PJmuvnJrSY388sv+7lY0r+Ea/mu0rG0+8C8LnitLXWOboNffKxqBBqbCgYJc7JG
         1PLK9Aac5F6zIaRb1oc+8XHLnB4/W16fk9mlpIgWsuKsZU2YOY/dDhBJc/WtWUZMjivK
         BUUD3cU121eITQX+9nLjd7qR648DI1Ob2STQ6zY2al8EW0teRcxV6aUyTtWOpewY48e3
         fBvA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20251104; t=1782499522; x=1783104322;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
         :message-id:reply-to;
        bh=yF/yh4S1ti9AhG4kRWjK4Z4uO9nlhAejGCJsw82/J4Y=;
        b=fOliZu9krAt4oXdc51i/6HYvEcb+GTID8xZqQJWB6OqpB1sQo0d36TILGpTBDuWEtN
         QbmrfNzxF7OtWdbRiIJYOdW3HQ8SigGFtG6ZYmmIAgC969582t+RNrV7e3huPM8n500f
         iTlUAvxX8oXdLIQ3TOX2EeCpBoKrvlxlUsrs3rXe/o3DhRhODKQDN2JAOd0Ga4R/51yo
         nJO29zRWnSUfVGurkU7/MCml7W9PgSNlqORQ2xSWgsF3FVYQbExbE/InC2Pno2AOuWIP
         eAuQNKdJOrrxo2aqVEHXJ1xrPjYzPqfV30zlQvZadMERG47Bsgl4xcibizdbKWQ5MMnd
         x5eA==
X-Gm-Message-State: AOJu0YwGqi4PiPfgxTmQfUILGX06LN19pdh6JNmS/dSpF5nM1puTxoCA
	/26CBguX9hzTF0l1Cdr4zGFzfVBn6WSShaVgLYwt6p11Bsi3Quct73VWTI+ujyMNJZyWbw6ffeP
	8gPQD3tzgF4WcQ2gcrKLHcOl20P1thYg=
X-Gm-Gg: AfdE7cn5jKy7JGB9AetbycOfjRb7JtWdPt5LlZ54c8Y3Jy67qQ8VkJkCUGYMxyvCBAZ
	t20rq7hBO+hAYcN+IoCdpsHXp9SMMEV5LK0r/F+CtgnMgaMdqqjmYkWzZGNJf8WojTebIG8enBv
	zVpH6Jq6W22X4pCqeFFbjJv0fekr9vQ0gTMygD73ZDhq0gkk/6nEQVYXolaUjw5LqqNyxQ79qpD
	6OOHrgXykum+VaMmRKmdwC6m0yjZjDev8NWQQqGkWWDdhv1Wre2OAMSoPE7eRWk2N8VxOVfvy/U
	ql8thlrCdtsyvq4yTITGTSVKvnjlPvk1ZLHqo8WV
X-Received: by 2002:a05:6402:2405:b0:698:3b7c:7e2c with SMTP id
 4fb4d7f45d1cf-6983b7c7f4amr556511a12.36.1782499521342; Fri, 26 Jun 2026
 11:45:21 -0700 (PDT)
MIME-Version: 1.0
References: 
 <CAHVo=Z=MwNtUtKYie2M62_mvXa26J6KfSG+DzcguDzkdER+Ocg@mail.gmail.com>
 <CANPAELv6CqDXmyR3EEWyX+XNBFVEC1URg7PPdU=1DkAATCpHZQ@mail.gmail.com>
 <CAHVo=Zmara43hi-hqk0-ZEBJ4Rz-qnNwyDfREEihLReko8FRnA@mail.gmail.com>
In-Reply-To: 
 <CAHVo=Zmara43hi-hqk0-ZEBJ4Rz-qnNwyDfREEihLReko8FRnA@mail.gmail.com>
From: Luke Curley <kixelated@gmail.com>
Date: Fri, 26 Jun 2026 11:45:09 -0700
X-Gm-Features: AVVi8CefkhKHRJH-69u4T70-al5GTSPgx0HuE5o5tVkyWPZDc20xBShyQFXR008
Message-ID: 
 <CAHVo=ZkBXBGk6z-9_po8Ocfj6-OrwiB3P+8972v1KLFeMV1aww@mail.gmail.com>
To: Alan Frindell <afrind@meta.com>
Content-Type: multipart/alternative; boundary="000000000000c831b806552c8261"
Message-ID-Hash: ZFBEX2Q6MJDUPKZGPIN4JARP3CULGXZE
X-Message-ID-Hash: ZFBEX2Q6MJDUPKZGPIN4JARP3CULGXZE
X-MailFrom: kixelated@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency;
 loop; banned-address; member-moderation; nonmember-moderation; administrivia;
 implicit-dest; max-recipients; max-size; news-moderation; no-subject;
 digests; suspicious-header
CC: MOQ Mailing List <moq@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: =?utf-8?q?=5BMoq=5D_Re=3A_MoQ_+_Compression?=
List-Id: Media over QUIC <moq.ietf.org>
Archived-At: 
 <https://mailarchive.ietf.org/arch/msg/moq/lZ0ndBk_Fe96_L_sToDcWRbZiOU>
List-Archive: <https://mailarchive.ietf.org/arch/browse/moq>
List-Help: <mailto:moq-request@ietf.org?subject=help>
List-Owner: <mailto:moq-owner@ietf.org>
List-Post: <mailto:moq@ietf.org>
List-Subscribe: <mailto:moq-join@ietf.org>
List-Unsubscribe: <mailto:moq-leave@ietf.org>

--000000000000c831b806552c8261
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Sorry hit the send button to early.

But you can imagine the headache if both of these files were large


I meant tracks.

Some companies use my libraries to publish sensor data or controls over
Starlink. We don't want a scenario where one outdated subscriber that
doesn't support compression causes 9x the data transfer from the publisher
to the relay.

Making DEFLATE mandatory to implement in moq-transport would fix a lot.


On Fri, Jun 26, 2026 at 11:35=E2=80=AFAM Luke Curley <kixelated@gmail.com> =
wrote:

> Yeah Alan, that's the problem with doing it at the application layer. I'm
> currently publishing two tracks:
>
>    - catalog.json
>    - catalog.json.z
>
> But you can imagine the headache if both of these files were large, and
> there was a 50-50 split among subscribers.
>
>
> I mocked up a transport extension that was something like:
>
> 1. SETUP indicates decompression schemes in preferred order (1 =3D deflat=
e,
> 2 =3D zstd, etc).
> 2. SUBGROUP_HEADER (or SUBSCRIBE_OK?) indicates the compression scheme.
>
> Like what Lucas said, the real problem is intermediaries. You ideally wan=
t
> a relay to proxy the data, not waste CPU on (re)compression. A relay can
> always decompress the data for subscribers that don't support a compressi=
on
> scheme, but it probably shouldn't (re)compress it.
>
>
> Suhas you run into rollout issues with that approach because it's not
> backwards compatible. You blindly have to assume that every single
> subscriber supports a compression scheme before you can turn it on.
>
>
> On Fri, Jun 26, 2026 at 11:08=E2=80=AFAM Alan Frindell <afrind@meta.com> =
wrote:
>
>> Cool work Luke.
>>
>> MOQT's model is clearly "the objects can't change for the same track
>> name" - therefore the only way we have to signal compression support now=
 is
>> it bake it into the Full Track Name (eg: SUBSCRIBE namespace--name.defla=
te
>> or something).  Otherwise, aren't you wandering into HTTP content
>> negotiation, Vary header, etc territory?
>>
>> -Alan
>>
>>

--000000000000c831b806552c8261
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Sorry hit the send button to early.<div><br></div><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px=
 solid rgb(204,204,204);padding-left:1ex"><span style=3D"background-color:t=
ransparent">But you can imagine the headache if both of these files were la=
rge</span></blockquote><div><br>I meant tracks.=C2=A0</div><div><br></div><=
div>Some companies use my libraries to publish sensor data or controls over=
 Starlink.=C2=A0We don&#39;t want a scenario where one outdated subscriber =
that doesn&#39;t support compression causes 9x the data transfer from the p=
ublisher to the relay.=C2=A0<br><br>Making <font face=3D"monospace">DEFLATE=
</font> mandatory to implement in moq-transport would fix a lot.</div><div>=
<br></div></div><br><div class=3D"gmail_quote gmail_quote_container"><div d=
ir=3D"ltr" class=3D"gmail_attr">On Fri, Jun 26, 2026 at 11:35=E2=80=AFAM Lu=
ke Curley &lt;<a href=3D"mailto:kixelated@gmail.com">kixelated@gmail.com</a=
>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px=
 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><di=
v dir=3D"ltr"><div>Yeah Alan, that&#39;s the problem with doing it at the a=
pplication layer. I&#39;m currently publishing two tracks:<br><ul><li>catal=
og.json</li><li>catalog.json.z</li></ul>But you can imagine the headache if=
 both of these files were large, and there was a 50-50 split among subscrib=
ers.<br><br><br>I mocked up a transport extension that was something like:<=
br><span style=3D"background-color:transparent"><br>1. <font face=3D"monosp=
ace">SETUP</font> indicates </span>decompression<span style=3D"background-c=
olor:transparent">=C2=A0schemes in preferred order (1 =3D deflate, 2 =3D zs=
td, etc).</span></div><div>2. <font face=3D"monospace">SUBGROUP_HEADER</fon=
t> (or=C2=A0<font face=3D"monospace">SUBSCRIBE_OK?)</font>=C2=A0indicates t=
he compression scheme.<span style=3D"background-color:transparent"></span><=
/div><div><br>Like what Lucas said, the real problem is intermediaries. You=
 ideally want a relay to proxy the data, not waste CPU on (re)compression. =
A relay can always decompress the data for subscribers that don&#39;t suppo=
rt a compression scheme, but it probably shouldn&#39;t (re)compress it.</di=
v><div><span style=3D"background-color:transparent"><br></span></div><div><=
br></div><div>Suhas you run into rollout issues with that approach because =
it&#39;s not backwards compatible. You blindly have to assume that every si=
ngle subscriber supports a compression scheme before you can turn it on.</d=
iv><div><br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" cla=
ss=3D"gmail_attr">On Fri, Jun 26, 2026 at 11:08=E2=80=AFAM Alan Frindell &l=
t;<a href=3D"mailto:afrind@meta.com" target=3D"_blank">afrind@meta.com</a>&=
gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0=
px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div =
dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-size:large">Cool wor=
k Luke.=C2=A0=C2=A0<br><br>MOQT&#39;s model is clearly &quot;the objects ca=
n&#39;t change for the same track name&quot; - therefore the only way we ha=
ve to signal compression support now is it bake it into the Full Track Name=
 (eg: SUBSCRIBE namespace--name.deflate or something).=C2=A0 Otherwise, are=
n&#39;t you wandering into HTTP content negotiation, Vary header, etc terri=
tory?</div><br><div class=3D"gmail_default" style=3D"font-size:large">-Alan=
</div><br></div>
</blockquote></div>
</blockquote></div>

--000000000000c831b806552c8261--

