@@ -5,6 +5,7 @@ It is intentionally limited to the draft variants we support today:
55
66- MoQ Transport draft 14
77- MoQ Transport draft 16
8+ - MoQ Transport draft 18
89- WebTransport over HTTP/3 draft 14
910
1011## Normative Model
@@ -43,19 +44,33 @@ In this codebase, picoquic's `picowt_prepare_client_cnx()` already configures th
4344
4445### 3. WT protocol negotiation
4546
46- MoQ-over-WebTransport draft selection is not QUIC ALPN.
47+ MoQ-over-WebTransport draft selection is not QUIC ALPN. QUIC ALPN is
48+ ` h3 ` ; the MoQ application protocol identifier is advertised on the
49+ WebTransport CONNECT exchange and the MoQ wire version is then confirmed by
50+ the MoQ setup flow.
4751
4852It is carried in:
4953
5054- ` WT-Available-Protocols `
5155- ` WT-Protocol `
5256
53- These are Structured Fields strings on the CONNECT exchange.
57+ These are Structured Fields strings on the CONNECT exchange. The
58+ WebTransport draft allows a server to omit ` WT-Protocol ` , but if it sends one
59+ it must choose a value from the client's offer. MoQ Transport draft-18 still
60+ expects clients to include MOQT protocol identifiers in ` WT-Available-Protocols ` .
5461
5562Current offers in this repo:
5663
57- - draft 14: offer no WebTransport subprotocol
64+ - draft 14: offer no WebTransport subprotocol for legacy compatibility
5865- draft 16: offer ` "moqt-16" ` only
66+ - draft 18: offer ` "moqt-18" ` only
67+
68+ Red5's current picoquic/h3zero server path no longer exposes
69+ ` WT-Available-Protocols ` to the application on CONNECT accept. Red5 therefore
70+ accepts the WebTransport session without returning draft-specific
71+ ` WT-Protocol ` , and draft selection proceeds through MoQ setup. Treat this as
72+ an interop compatibility mode, not proof that CONNECT-level subprotocol
73+ selection works.
5974
6075### 4. MoQ SETUP parameters over WebTransport
6176
@@ -117,19 +132,21 @@ Areas that should be treated as suspect until proven:
117132
118133Before changing wire behavior, verify each of these:
119134
120- 1 . CONNECT succeeded and the WebTransport protocol negotiation matches the intended draft:
121- draft-14 offers no ` WT-Protocol ` , while draft-16 offers ` moqt-16 ` .
135+ 1 . CONNECT succeeded and the WebTransport protocol offer matches the intended draft:
136+ draft-14 offers no WebTransport subprotocol, draft-16 offers ` moqt-16 ` ,
137+ and draft-18 offers ` moqt-18 ` . If the relay omits ` WT-Protocol ` , verify
138+ the negotiated MoQ setup version before treating the session as draft-specific.
1221392 . The first client MoQ bytes are sent only on a WT application stream, not the CONNECT stream.
1231403 . The WT application stream gets exactly one WT preamble.
1241414 . Incoming CONNECT-stream bytes are logged as WT control/capsule traffic, not parsed as MoQ.
1251425 . Incoming application-stream bytes are delivered without the WT preamble before MoQ parsing.
126- 6 . Draft-14 and draft-16 are tested separately.
143+ 6 . Draft-14, draft-16, and draft-18 are tested separately.
127144
128145## Current risk focus
129146
130147The current WebTransport path is interoperating with the tested moqx and Red5
131- draft-16 relays . Remaining risk is now concentrated in broader coverage rather
132- than initial session establishment:
148+ draft-16/draft-18 relay paths . Remaining risk is now concentrated in broader
149+ coverage rather than initial session establishment:
133150
134151- higher object volume and backpressure behavior
135152- live subscriber timing across multiple tracks
@@ -138,7 +155,7 @@ than initial session establishment:
138155
139156## Current interoperability state
140157
141- Observed behavior as of April 26 , 2026:
158+ Observed behavior as of May 16 , 2026:
142159
143160- ` <moqx-la-relay-host>:4433/moq-relay `
144161 - draft-16 CONNECT succeeds with verified TLS
@@ -152,6 +169,8 @@ Observed behavior as of April 26, 2026:
152169 - draft-16 CONNECT succeeds with verified TLS
153170 - ` PUBLISH_NAMESPACE_OK ` arrives on the WT control stream as expected
154171 - a live ` SUBSCRIBE ` for ` catalog ` was observed and served successfully
172+ - draft-14 and draft-18 psychedelic publisher flows have both connected and
173+ published against the Red5 relay during local interop checks
155174- ` moq-relay.red5.net:4433/moq-relay `
156175 - WebTransport CONNECT is rejected with HTTP ` 404 `
157176 - use ` /moq ` for the Red5 relay on port 4433
0 commit comments