[Webtransport] Re: WebTransport over WebSocket
Marten Richter <marten.richter@tu-berlin.de> Sat, 06 September 2025 04:59 UTC
Return-Path: <marten.richter@tu-berlin.de>
X-Original-To: webtransport@mail2.ietf.org
Delivered-To: webtransport@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 2658D5E637EF for <webtransport@mail2.ietf.org>; Fri, 5 Sep 2025 21:59:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 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, FONT_INVIS_MSGID=2.499, HTML_FONT_LOW_CONTRAST=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (1024-bit key) header.d=tu-berlin.de
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 9v_S8Z9D07Zm for <webtransport@mail2.ietf.org>; Fri, 5 Sep 2025 21:59:23 -0700 (PDT)
Received: from mailrelay.tu-berlin.de (mailrelay.tu-berlin.de [130.149.7.70]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id C032C5E637DF for <webtransport@ietf.org>; Fri, 5 Sep 2025 21:59:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tu-berlin.de; l=12269; s=dkim-tub; t=1757134762; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to; bh=midLOXxvA7kJE+hHYAp6A7on6gBq/qp9h2c2QsU0EPA=; b=UPd+tIQGJSF6ORPc2wOe6NpnEbJge45//CG74EBsusrOuoB0NnjPPa8l sApoXsJcSfU4OV9TujzxLapuv1mVKn5J0B65TipVA7pUkDB5l4lbV/iV2 i03SNzkyXZHTgiFETQBJBNEbenNJnMwUBEjieSb9qgi7tc0ohRpmLgBh8 4=;
X-CSE-ConnectionGUID: DH1FIl2uRp24+ijO88+o+g==
X-CSE-MsgGUID: 4YJAaFeiRB2kiR5YB2IepA==
X-IronPort-AV: E=Sophos;i="6.18,243,1751234400"; d="scan'208,217";a="34090323"
Received: from bulkmail.tu-berlin.de (HELO mail.tu-berlin.de) ([141.23.12.143]) by mailrelay.tu-berlin.de with ESMTP; 06 Sep 2025 06:59:15 +0200
Content-Type: multipart/alternative; boundary="------------dEvgwqOEiDh2WH8Tjr00Quk9"
Message-ID: <f72e0f53-bdf9-4fcd-b146-9af327d9d4d8@tu-berlin.de>
Date: Sat, 06 Sep 2025 06:58:58 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Alan Frindell <afrind=40meta.com@dmarc.ietf.org>, Luke Curley <kixelated@gmail.com>, WebTransport <webtransport@ietf.org>
References: <CAHVo=ZkmNFer69h3yTcuzQOncsGtSYA3zwoaeZKR-WLbCMXa_Q@mail.gmail.com> <BBD06114-72E3-4680-AFF8-E8EB315B4FDE@fb.com>
Content-Language: en-US
From: Marten Richter <marten.richter@tu-berlin.de>
Organization: Technische Universität Berlin
In-Reply-To: <BBD06114-72E3-4680-AFF8-E8EB315B4FDE@fb.com>
Message-ID-Hash: QIZA5FANN3KDVXTQ5QJR3WJVN2WDUCJG
X-Message-ID-Hash: QIZA5FANN3KDVXTQ5QJR3WJVN2WDUCJG
X-MailFrom: marten.richter@tu-berlin.de
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: "kazuhooku@gmail.com" <kazuhooku@gmail.com>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Webtransport] Re: WebTransport over WebSocket
List-Id: WebTransport WG <webtransport.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/Zl4jfB3NRjQccFo1_GSCVS4yKLo>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webtransport>
List-Help: <mailto:webtransport-request@ietf.org?subject=help>
List-Owner: <mailto:webtransport-owner@ietf.org>
List-Post: <mailto:webtransport@ietf.org>
List-Subscribe: <mailto:webtransport-join@ietf.org>
List-Unsubscribe: <mailto:webtransport-leave@ietf.org>
Hi, I have written a WebTransport over WebSocket draft some time ago: draft-richter-webtransport-websocket-03 - WebTransport over WebSocket <https://datatracker.ietf.org/doc/draft-richter-webtransport-websocket/>but so far no response. including a polyfill: fails-components/webtransport: Http/3 webtransport support for node <https://github.com/fails-components/webtransport> It is basically http/2 capsule translated to a Websocket frame, including support for backpressure and most capsules. (And also partially sending of websocket frames). (Only problem is that my current implementation has swapped ids, which I intend to fix: The logic in stream ID direction detection seems wrong · Issue #381 · fails-components/webtransport <https://github.com/fails-components/webtransport/issues/381> if the Mozilla devs have finished finding other bugs in my http/2 implementation). Code of the parser is here. webtransport/main/lib/http2/node/websocketparser.js at master · fails-components/webtransport <https://github.com/fails-components/webtransport/blob/master/main/lib/http2/node/websocketparser.js> Marten Am 06.09.2025 um 01:48 schrieb Alan Frindell: > > CC: QMux enthusiast Kazuho > > Hi Luke, thanks for sharing this work. On the one hand, I want to > help the world move from on from WebSockets to WebTransport. On the > other hand, I see your practical problem, and I want to help the world > access MoQ too. > > I think QMux, whenever it comes to fruition, should be directly > runnable on top of WebSockets, so I don’t think a separate draft is > needed. There’s ongoing discussion of what the shape of QMux will be, > but “Just send WebTransport capsules” is one possibility. > > -Alan > > *From: *Luke Curley <kixelated@gmail.com> > *Date: *Friday, September 5, 2025 at 3:02 PM > *To: *WebTransport <webtransport@ietf.org> > *Subject: *[Webtransport] WebTransport over WebSocket > > Hey WebTransport, As some of you might know, I've been working > full-time on a MoQ startup/app (hang. live). I finally got around to > the elephant in the room: Safari support. And not just Safari, but a > TCP fallback in general. Some networks > > Hey WebTransport, > > As some of you might know, I've been working full-time on a MoQ > startup/app (hang.live). I finally got around to the elephant in the > room: Safari support. > > And not just Safari, but a TCP fallback in general. Some networks > block QUIC/UDP and there are many platforms that don't support > WebTransport yet (ex. Cloudflare Workers). > > My solution is more-or-less QMux over WebSocket. It works today and > supports any existing WebSocket service/library. It's also open source > <https://github.com/kixelated/web-transport/tree/main/web-transport-ws> > and available in both Rust and Typescript. I've also got a Typescript > client that performs Happy Eyeballs > <https://github.com/kixelated/moq/blob/f10f854e5c9cedf889c434e3e898eff0d10f10ca/js/moq/src/connection.ts#L51>. > > I know this is the intended purpose of WebTransport over HTTP/2. > However, adoption feels like an uphill battle as every client/server > needs to explicitly support it at the HTTP layer. I think a TCP > fallback needs to have widespread adoption, and layering on top of > WebSockets accomplishes that. > > I was wondering if anybody would be interested in writing a draft, > especially anybody involved in QMux. Or just send WebTransport > capsules over WebSocket; that would work too. > > -- ------------------------------------------------------------ Dr. Marten Richter Institut für Theoretische Physik Technische Universität Berlin Hardenbergstr. 36 Sekr. EW 7-1 D-10623 Berlin Germany ------------------------------------------------------------ email:marten.richter@tu-berlin.de Tel: +49-30-314-24858 (office) Fax: +49-30-314-21130 http://www.tu.berlin/agknorr/ ------------------------------------------------------------
- [Webtransport] WebTransport over WebSocket Luke Curley
- [Webtransport] Re: WebTransport over WebSocket Alan Frindell
- [Webtransport] Re: WebTransport over WebSocket Marten Richter