Skip to content

Split View: Media over QUIC의 현주소 — 스펙은 draft-19, 최대 배포는 draft-07, 최초 제안자는 moq-lite로

|

Media over QUIC의 현주소 — 스펙은 draft-19, 최대 배포는 draft-07, 최초 제안자는 moq-lite로

들어가며 — 내일 비엔나에서 IETF 126이 시작된다

내일(2026년 7월 18일)부터 오스트리아 비엔나에서 IETF 126이 열립니다. 아젠다를 보면 Media over QUIC(MoQ) 워킹그룹은 7월 20일(월), 23일(목), 24일(금) — 한 주에 세 번이나 세션을 잡았습니다. 그리고 열하루 전인 7월 6일, 핵심 문서인 draft-ietf-moq-transport가 열아홉 번째 리비전(-19)으로 갱신됐습니다. 149쪽짜리 문서입니다.

한쪽에서 표준화가 이렇게 달리고 있는데, 배포된 현실은 묘한 곳에 있습니다. 지금 인터넷에서 누구나 붙어 볼 수 있는 가장 큰 MoQ 릴레이 — Cloudflare가 2025년 8월에 켠 것 — 는 여전히 draft-07 부분집합에 고정돼 있습니다. 그리고 이 프로토콜 -00 리비전의 제1저자였던 Luke Curley는 지금 moq-lite라는 포크를 따로 만들고 있습니다.

스펙이 어디까지 왔는지, 배포가 어디에 있는지, 그 간극이 무엇을 말하는지 — 세 가지를 전부 1차 소스(datatracker 메타데이터, 드래프트 원문, 벤더 문서)로 확인해 정리했습니다.

MOQT는 무엇인가 — pub/sub를 전송 계층으로 내린 설계

MOQT(Media over QUIC Transport)는 QUIC과 WebTransport 위에서 도는 publish/subscribe 프로토콜입니다. -19 초록의 문장을 그대로 옮기면, QUIC의 스트림·데이터그램·우선순위·부분 신뢰성(partial reliability)을 활용해 point-to-point로도, 중간 릴레이를 거쳐서도 동작하며, 이를 통해 확장 가능한 저지연 전달을 노립니다. 흥미로운 문장이 하나 더 있습니다 — "이름과 달리 MOQT는 미디어에 무관(media agnostic)하며 광범위한 사용 사례에 쓸 수 있다." 정작 워킹그룹 헌장(2025년 4월 개정)은 라이브 스트리밍·게임·미디어 컨퍼런싱을 위한 미디어 전달 솔루션으로 범위를 잡고 있으니, 문서 스스로가 헌장보다 야심이 커진 셈입니다.

데이터 모델은 계층형입니다. 트랙(Track) 안에 그룹(Group)이 있고, 그룹 안에 객체(Object)가 있으며, 그룹 안에서 객체를 서브그룹(Subgroup)으로 묶을 수 있습니다. 스펙이 드는 예가 설계 의도를 잘 보여 줍니다 — 시간적 확장성(temporal scalability)이 있는 코덱으로 고/저해상도 영상을 보낼 때, 해상도별로 트랙을 나누고(수신자가 대역폭에 맞게 선택), 독립 복호 가능한 픽처 시퀀스를 그룹으로(랜덤 액세스 포인트 = 조인 지점), 시간 계층을 서브그룹으로(대역폭이 모자라면 우선순위 기제가 하위 계층을 우선), 프레임 하나를 객체 하나로 보냅니다.

동작은 세 갈래입니다. SUBSCRIBE는 지금부터 도착하는 객체를 받는 것(라이브 시청), FETCH는 과거 구간을 요청하는 것(되감기·VOD성 접근), PUBLISH는 구독 요청을 기다리지 않고 퍼블리셔가 밀어 넣는 푸시 모델입니다. 릴레이는 이 구조 덕에 미디어 내용을 이해하지 않고도 — 코덱도, 컨테이너도, (설계상으로는) 종단 간 암호화 키도 몰라도 — 팬아웃과 캐싱을 할 수 있습니다. 종단 간 키 수립 메커니즘 자체는 헌장이 명시적으로 범위 밖으로 뒀습니다.

여기까지가 설계의 약속입니다. WebRTC의 저지연 상호작용과 HLS/DASH의 CDN 확장성을 한 아키텍처로 — 이 문구는 Cloudflare 발표문의 표현이기도 합니다. 문제는 지금부터입니다.

스펙의 현재 — 두 달마다 와이어가 바뀐다

datatracker 제출 기록으로 최근 리비전 케이던스를 보면 이렇습니다.

리비전제출일
draft-162026-01-13
draft-172026-03-02
draft-182026-05-12
draft-192026-07-06

대략 두 달에 한 번, IETF 회기에 맞춰 돌고 있습니다. 중요한 건 빈도가 아니라 내용입니다. 문서에 포함된 변경 이력(Appendix A)을 읽어 보면, 이 단계에서도 와이어 포맷과 메시지 집합이 계속 움직이고 있음을 알 수 있습니다.

-18에서 -19로 오면서(2026년 5월 → 7월) 구독에 Range Filter가 추가됐고, 트랙 하나에 동시 구독 여러 개가 허용됐고, PUBLISH_BLOCKED 메시지가 PUBLISH_SKIPPED로 개명됐고, 릴레이가 객체를 재정렬·드롭할 수 있던 예외 조항이 삭제됐습니다. 한 단계 전인 -17에서 -18은 더 컸습니다 — moqt:// URI 스킴 통합, SUBSCRIBE_NAMESPACE를 SUBSCRIBE_NAMESPACE와 SUBSCRIBE_TRACKS로 분리, PUBLISH_OK 메시지 타입 삭제(REQUEST_OK의 별칭으로 흡수), FETCH 응답의 델타 인코딩 도입, 7바이트 varint 허용까지. 이름이 바뀌고, 메시지가 사라지고, 인코딩이 바뀝니다. 컨트롤 메시지는 -19 기준 SETUP부터 PUBLISH_SKIPPED까지 18종입니다.

버전 협상 정책도 알아 둘 필요가 있습니다. 최종 RFC의 ALPN은 moqt가 되지만, 드래프트 구현은 moqt-19처럼 드래프트 번호를 붙인 ALPN을 씁니다. 그리고 -15 이전 드래프트는 전부 moq-00이라는 ALPN 하나를 쓰고 SETUP 메시지에서 버전을 협상했습니다. 요컨대 드래프트 세대가 다르면 ALPN 문자열부터 갈라지므로, 서버가 일부러 여러 세대를 동시 구현하지 않는 한 드래프트 간 상호운용은 구조적으로 없습니다.

일정 목표는 명시돼 있습니다. WG 마일스톤은 전송 프로토콜(MOQT)과 Common Access Token 기반 인증의 IESG 제출을 2026년 12월 31일로, 그 위에 얹히는 WARP 스트리밍 포맷·LOC 컨테이너 포맷·Privacy Pass 인증은 2027년 3월 31일로 잡고 있습니다. 목표일은 목표일일 뿐이지만, 적어도 워킹그룹 스스로는 올해 안에 기저 프로토콜을 잠그겠다는 계획입니다.

현실 체크 1 — 가장 큰 릴레이는 draft-07에 멈춰 있다

Cloudflare는 2025년 8월 22일 MoQ 릴레이 네트워크 출시를 발표했습니다. 자체 발표에 따르면 330개 이상 도시의 모든 Cloudflare 서버가 릴레이로 동작하는 최초의 MoQ 릴레이 네트워크이고, relay.cloudflare.mediaoverquic.com 엔드포인트에 누구나 붙을 수 있는 기술 프리뷰(현재 무료)입니다. 지연에 대한 "1초 미만" 같은 수치도 발표문에 있지만 이는 벤더 자체 서술이고, 측정 조건이 명시된 벤치마크는 공개되지 않았습니다.

발표문에서 정말 중요한 문장은 따로 있습니다. Cloudflare의 릴레이 구현은 draft-ietf-moq-transport-07의 부분집합이며, 그들의 표현으로 이 버전이 "여러 오픈소스 프로젝트 사이의 사실상(de facto) 상호운용 타깃"이 됐다는 것입니다. 발표 시점의 최신 드래프트가 이미 한참 앞이었는데도 -07에 멈춘 이유를 Cloudflare는 솔직하게 적었습니다 — 움직이는 표적을 계속 쫓는 대신, 거기서 멈추고 릴레이 네트워크 배포 자체에 힘을 쓰기로 했다고.

이 상태는 지금도 그대로입니다. Cloudflare MoQ 문서(2026년 4월 21일 갱신)는 여전히 draft-07 부분집합 지원을 명시합니다. 더 흥미로운 건 같은 문서의 Known Issues 항목입니다. Cloudflare 구현의 서브그룹 헤더에는 draft-07에는 없는 Subscribe ID 필드가 하나 더 들어 있습니다.

draft-ietf-moq-transport-07의 정의:        Cloudflare 구현이 실제로 주고받는 것:

STREAM_HEADER_SUBGROUP Message {           STREAM_HEADER_SUBGROUP Message {
  Track Alias (i),                           Subscribe ID (i),      <- 여분 필드
  Group ID (i),                              Track Alias (i),
  Subgroup ID (i),                           Group ID (i),
  Publisher Priority (8),                    Subgroup ID (i),
}                                            Publisher Priority (8),
                                           }

이전 드래프트에서 잘못 남은 잔재이며 추후 릴리스에서 고치겠다고 문서에 적혀 있습니다. 즉 현재의 "사실상 표준"은 draft-07도 아니고, draft-07에 특정 구현의 편차가 얹힌 무엇입니다. 이것이 2026년 7월, 표준화 4년 차 프로토콜의 상호운용 현실입니다 — 발표문에 나열된 상호운용 테스트 상대(Luke Curley의 moq.dev, Lorenzo Miniero의 imquic, Meta의 Moxygen, moq-rs, moq-js, Norsk, Vindral)도 이 draft-07 언저리를 타깃으로 맞춘 결과입니다.

스펙 절에서 본 ALPN 정책과 붙여 보면 결론이 명확해집니다. 오늘 최신 스펙(-19)대로 클라이언트를 구현하면, 유일하게 규모 있는 퍼블릭 릴레이와는 연결 협상조차 되지 않습니다.

현실 체크 2 — 최초 제안자의 포크, moq-lite

datatracker에서 draft-ietf-moq-transport-00(2023년 7월)을 열어 보면 제1저자가 L. Curley(당시 Twitch)입니다. -19의 저자 명단은 Cisco의 Nandakumar, Google의 Vasiliev와 Swett, Meta의 Frindell — Curley의 이름은 없습니다. 그는 지금 draft-lcurley-moq-lite라는 개인 드래프트를 유지하고 있고, 가장 최근 리비전(-05)은 2026년 6월 30일 자, 40쪽짜리입니다. MOQT의 149쪽과 나란히 놓으면 그 자체가 메시지입니다.

포크의 논거는 moq-lite 드래프트의 Rationale 절에 이례적으로 직설적으로 적혀 있습니다. 요지를 옮기면 — MoQ의 동기와 잠재력은 전적으로 믿지만, 이런 실험적 프로토콜을 위원회로 설계하기는 어려웠고, MoqTransport는 너무 복잡해졌다. 메시지가 너무 많고, 선택적 모드가 너무 많고, 덜 익은(half-baked) 기능이 너무 많다. 표준화 과정이 실전 실험을 오히려 가로막고 있으며, 가설상의 애플리케이션을 두고 논쟁하는 대신 실제 애플리케이션을 만들어야 한다. 그래서 moq-lite는 "WebRTC를 대체하려는 실시간 애플리케이션에 필요한 최소한"만 남기고 전부 걷어냈다는 것입니다. 그룹 순서(group order)처럼 그가 좋은 아이디어라고 인정하는 것도 "필요해지면 그때" 추가하겠다며 뺐고, 드래프트 스스로 "이 문서는 현재 상태이지 최종 상태가 아니다"라고 못 박습니다.

실제로 구조가 얼마나 다른지 보면:

  • 데이터 모델은 Broadcast → Track → Group → Frame으로, MOQT의 서브그룹 계층이 없고 객체(Object)는 미디어 용어에 맞춰 프레임(Frame)으로 개명됐습니다.
  • 양방향 스트림 타입은 Announce, Subscribe, Fetch, Track, Probe, Goaway 여섯 개가 전부입니다. MOQT의 컨트롤 메시지 18종과 대비됩니다.
  • 대신 MOQT에 없는 게 있습니다 — -05는 QUIC, WebTransport 외에 Qmux over TCP/TLS와 Qmux over WebSocket까지 네 가지 전송 바인딩을 정의합니다. QUIC이 막히는 네트워크와 WebTransport가 없는 브라우저(Safari)를 위한 TCP 폴백이 스펙 안에 있는 겁니다. 데이터그램은 QUIC/WebTransport 바인딩에서만 지원됩니다.

Cloudflare 출시 다음 날 Curley가 쓴 The First MoQ CDN은 이 관점을 더 노골적으로 보여 줍니다. 그의 집계(2025년 8월 기준)로 moq-transport 저장소에는 이슈 650개+, PR 500개+가 쌓였고, 기저 네트워킹 계층이 RFC가 되기까지 "적어도 3년은 더" 걸릴 것이라고 봅니다. 그가 드는 비교가 QUIC입니다 — Google이 2012년에 배포를 시작했고, 2015년에 표준화를 시작했고, RFC는 2021년에 나왔다. 그리고 QUIC에는 스펙을 다듬을 프로덕션 데이터가 산더미였지만 MoQ에는 아직 데모 수준의 사용 경험뿐이라는 겁니다. 참고로 Cloudflare의 릴레이 코드 자체가 Curley의 Rust 구현을 포크한 것이라고 그는 밝히고 있습니다(그의 표현이며, Cloudflare 발표문은 코드 계보를 명시하지 않습니다). 출시 시점 기준으로 인증이 없고, ANNOUNCE 미지원이라 방송 시작/종료 디스커버리가 안 되고, Safari가 안 된다는 한계도 그의 글에 정리돼 있습니다.

정리하면 지금 MoQ 생태계에는 두 갈래가 있습니다. IETF 트랙(MOQT, 2026년 말 IESG 제출 목표)과 moq-lite 트랙(개인 드래프트 + 실동 구현 + 그가 운영하는 데모들). 두 갈래는 개념과 용어를 공유하지만 와이어에서 호환되지 않습니다.

그래서 WebRTC를 지금 버려도 되나 — 아니요

MoQ 진영의 목표 자체가 WebRTC 대체인 건 맞습니다(moq-lite 드래프트가 명시적으로 그렇게 적습니다). 하지만 2026년 7월 기준으로 갈아탈 수 없는 이유가 셋 있습니다.

첫째, 브라우저 커버리지. MOQT는 브라우저에서 WebTransport를 요구하는데, Safari의 WebTransport는 아직 완전하지 않습니다. Cloudflare 문서가 정리한 바로는 Safari 18.4(2025년 3월 31일)부터 개발자 플래그 뒤에 이른(아직 완전히 동작하지 않는) 구현이 들어갔을 뿐입니다. 같은 문서의 결론이 상징적입니다 — Safari가 완전한 WebTransport를 갖추기 전까지 일부 MoQ 사용 사례는 WebRTC나 WebSocket으로 폴백해야 한다. 대체하겠다는 대상에 폴백해야 하는 동안은, 대체가 아니라 병행입니다.

둘째, 운영 성숙도. 퍼블릭 릴레이는 인증 없는 기술 프리뷰이고(추측 불가능한 경로 이름이 곧 접근 제어입니다), 표준은 위에서 본 대로 아직 메시지 이름이 바뀌는 단계입니다. 화상회의·라이브 커머스처럼 SLA가 걸린 트래픽을 올릴 단계가 아닙니다.

셋째, 조용히 따라오는 비용. QUIC으로 미디어를 받는다는 건 수신 경로의 CPU 비용 구조가 TCP+TLS와 달라진다는 뜻이기도 합니다. 이 주제는 어제 쓴 QUIC 수신자 CPU 비용과 커널 QUIC 편에서 측정 데이터와 함께 다뤘으니, MoQ를 서버 쪽에서 검토한다면 같이 읽어 보시길 권합니다.

한편 오늘의 실시간 스택이 어디에 있는지는 이미 정리한 글들이 있습니다 — WebRTC 미디어 인프라와 WHIP/WHEP 생태계는 WebRTC 미디어 인프라 2026 편에서, WebTransport를 포함한 실시간 웹 전송 선택지는 실시간 웹 2026 편에서 다뤘습니다. 음성 AI처럼 양방향 대화 지연이 생명인 스택이 오늘 WebRTC 위에 서 있는 이유도 AI 음성 스택 비교 편의 맥락과 이어집니다. MoQ가 이들을 대체하려면 표준 완성, 브라우저 커버리지, 인증·과금 같은 운영 기능이 전부 채워져야 하고, 그 어느 것도 아직 끝나지 않았습니다.

판단 — 언제 들여다보고, 언제 기다릴 것인가

지금 실험할 가치가 있는 경우:

  • 라이브 스트리밍 파이프라인(인제스트 → 팬아웃)을 직접 소유하고 있고, WebRTC SFU의 확장 비용이나 LL-HLS의 지연 바닥에 실제로 부딪히고 있다. 무료 프리뷰 릴레이와 오픈소스 구현으로 개념 검증까지는 오늘 가능합니다.
  • 프로토콜 자체에 이해관계가 있다 — 지금이 피드백이 스펙에 반영될 수 있는 마지막 구간입니다. WG 마일스톤대로면 올해 말 IESG로 넘어갑니다.

기다리는 게 맞는 경우:

  • 프로덕션 SLA가 걸린 미디어 트래픽. 인증 없는 프리뷰 릴레이, 두 달마다 바뀌는 와이어, 드래프트 간 비호환 — 셋 중 하나만으로도 충분한 이유입니다.
  • Safari를 포함한 전체 브라우저 커버리지가 필수인 서비스. WebTransport 폴백 계획 없이는 시작할 수 없습니다.
  • "MoQ가 WebRTC보다 지연이 좋다/나쁘다"를 근거로 의사결정을 해야 하는 경우 — 조건이 명시된 공개 비교 측정은 아직 없습니다. 벤더 발표문의 지연 서술은 마케팅 문장으로 읽어야 합니다.

마치며

정리하면 이렇습니다. MOQT 스펙은 -19까지 왔고 워킹그룹은 올해 안에 IESG 제출을 목표로 하지만, 와이어 포맷은 여전히 리비전마다 움직입니다. 반면 배포의 중력 중심은 draft-07 언저리에 있습니다 — 가장 큰 퍼블릭 릴레이가 거기 멈춰 서서 사실상의 상호운용 타깃이 됐고, 그마저 문서화된 와이어 편차를 갖고 있습니다. 그리고 프로토콜의 첫 제안자는 "실험이 표준보다 먼저여야 한다"며 6분의 1 분량의 포크를 굴리고 있습니다.

이 그림은 실패의 징후라기보다, 프로토콜 표준화의 정상적인 진통에 가깝습니다 — QUIC도 배포와 RFC 사이에 9년이 있었습니다. 다만 엔지니어로서의 실용적 결론은 분명합니다. 지금 MoQ는 관찰하고 실험할 대상이지, 갈아탈 대상이 아닙니다. 다음 확인 시점은 두 개로 잡으면 됩니다 — 다음 주 IETF 126의 MoQ 세션 결과, 그리고 2026년 말 IESG 제출이 실제로 이뤄지는지.

참고 자료

The State of Media over QUIC — Spec at draft-19, Deployment at draft-07, and Its First Author Has Forked to moq-lite

Introduction — IETF 126 Starts in Vienna Tomorrow

Starting tomorrow (July 18, 2026), IETF 126 opens in Vienna, Austria. Looking at the agenda, the Media over QUIC (MoQ) working group has booked sessions on July 20 (Mon), 23 (Thu), and 24 (Fri) — three times in one week. And eleven days earlier, on July 6, the core document, draft-ietf-moq-transport, was updated to its nineteenth revision (-19). It's a 149-page document.

While standardization races ahead on one side, deployment reality sits in an odd place. The largest MoQ relay anyone can connect to on today's internet — the one Cloudflare turned on in August 2025 — is still pinned to a draft-07 subset. And Luke Curley, the first author of this protocol's -00 revision, is now running a separate fork called moq-lite.

How far the spec has come, where deployment actually stands, and what that gap says — I checked all three against primary sources (datatracker metadata, the draft text itself, vendor documentation) and laid it out below.

What Is MOQT — Pushing Pub/Sub Down to the Transport Layer

MOQT (Media over QUIC Transport) is a publish/subscribe protocol running on top of QUIC and WebTransport. To carry over the -19 abstract's own wording, it leverages QUIC's streams, datagrams, prioritization, and partial reliability to work both point-to-point and through intermediate relays, aiming for scalable, low-latency delivery. There's one more interesting sentence — "Despite the name, MOQT is media agnostic and can be used for a wide range of use cases." That's notable because the working group charter (revised April 2025) actually scopes the group as a media-delivery solution for live streaming, gaming, and media conferencing — meaning the document itself has grown more ambitious than its own charter.

The data model is layered. A Track contains Groups, a Group contains Objects, and within a Group, Objects can be bundled into Subgroups. The example the spec gives shows the design intent well — when sending high/low-resolution video with a codec that has temporal scalability, you split tracks by resolution (so receivers can pick based on bandwidth), map independently decodable picture sequences to Groups (random-access points = join points), map temporal layers to Subgroups (so when bandwidth runs short, the priority mechanism favors lower layers), and send one frame as one Object.

There are three modes of operation. SUBSCRIBE receives objects arriving from now on (live viewing), FETCH requests a past range (rewind, VOD-style access), and PUBLISH is a push model where the publisher pushes without waiting for a subscription request. This structure lets relays do fan-out and caching without understanding the media content — without knowing the codec, the container, or (by design) even end-to-end encryption keys. The end-to-end key establishment mechanism itself is something the charter explicitly puts out of scope.

This is where the design's promise ends. One architecture combining WebRTC's low-latency interactivity with HLS/DASH's CDN scalability — this is even the phrasing Cloudflare's own announcement uses. The problem starts from here.

The Spec Today — the Wire Changes Every Two Months

Looking at the recent revision cadence from datatracker submission records:

RevisionSubmission date
draft-162026-01-13
draft-172026-03-02
draft-182026-05-12
draft-192026-07-06

Roughly once every two months, timed to IETF meetings. What matters isn't the frequency but the content. Reading the change log in the document (Appendix A) shows that the wire format and message set are still moving at this stage.

Going from -18 to -19 (May → July 2026), a Range Filter was added to subscriptions, multiple concurrent subscriptions on a single track became allowed, the PUBLISH_BLOCKED message was renamed to PUBLISH_SKIPPED, and the exception clause that let relays reorder or drop objects was removed. The step before that, -17 to -18, was bigger — unifying the moqt:// URI scheme, splitting SUBSCRIBE_NAMESPACE into SUBSCRIBE_NAMESPACE and SUBSCRIBE_TRACKS, removing the PUBLISH_OK message type (absorbed as an alias of REQUEST_OK), introducing delta encoding for FETCH responses, and allowing 7-byte varints. Names change, messages disappear, encodings change. As of -19, control messages number 18 types, from SETUP to PUBLISH_SKIPPED.

Version-negotiation policy is also worth knowing. The final RFC's ALPN will be moqt, but draft implementations use draft-numbered ALPNs like moqt-19. And every draft before -15 used a single ALPN, moq-00, negotiating the version inside the SETUP message. In short, different draft generations diverge starting at the ALPN string itself, so there is structurally no interoperability across drafts unless a server deliberately implements multiple generations at once.

Timeline targets are stated explicitly. The WG milestones put IESG submission of the transport protocol (MOQT) and Common Access Token-based authentication at December 31, 2026, and the WARP streaming format, LOC container format, and Privacy Pass authentication that sit on top of it at March 31, 2027. Target dates are just target dates, but at minimum the working group's own plan is to lock the underlying protocol by the end of this year.

Reality Check 1 — the Largest Relay Is Stuck at draft-07

Cloudflare announced the launch of its MoQ relay network on August 22, 2025. According to their own announcement, it's the first MoQ relay network where every Cloudflare server across more than 330 cities acts as a relay, and it's a technology preview (currently free) anyone can connect to at the relay.cloudflare.mediaoverquic.com endpoint. Figures like "sub-second" latency are also in the announcement, but that's a vendor's own description, and no benchmark with stated measurement conditions has been published.

There's a more important sentence in the announcement. Cloudflare's relay implementation is a subset of draft-ietf-moq-transport-07, which, in their words, has become the "de facto interoperability target among several open source projects." Cloudflare is candid about why they stopped at -07 even though the latest draft at launch time was already well ahead — instead of chasing a moving target, they decided to stop there and put their effort into deploying the relay network itself.

That state holds today. The Cloudflare MoQ documentation (updated April 21, 2026) still states support for the draft-07 subset. What's more interesting is the Known Issues item in that same document. Cloudflare's implementation includes one extra field, a Subscribe ID, in the subgroup header that draft-07 doesn't have.

What draft-ietf-moq-transport-07 defines:  What the Cloudflare implementation actually sends:

STREAM_HEADER_SUBGROUP Message {           STREAM_HEADER_SUBGROUP Message {
  Track Alias (i),                           Subscribe ID (i),      <- extra field
  Group ID (i),                              Track Alias (i),
  Subgroup ID (i),                           Group ID (i),
  Publisher Priority (8),                    Subgroup ID (i),
}                                            Publisher Priority (8),
                                           }

The document states this is a leftover artifact from an earlier draft and will be fixed in a future release. In other words, today's "de facto standard" is not draft-07 alone — it's draft-07 with one specific implementation's deviation layered on top. This is the interoperability reality of a protocol four years into standardization, as of July 2026 — and the interop test partners listed in the announcement (Luke Curley's moq.dev, Lorenzo Miniero's imquic, Meta's Moxygen, moq-rs, moq-js, Norsk, Vindral) all targeted this same draft-07 neighborhood as a result.

Put this together with the ALPN policy from the spec section above and the conclusion is clear. If you implement a client to today's latest spec (-19), you can't even negotiate a connection with the only publicly reachable relay at scale.

Reality Check 2 — the First Proposer's Fork, moq-lite

Opening draft-ietf-moq-transport-00 (July 2023) on datatracker shows the first author is L. Curley (then at Twitch). The author list for -19 is Cisco's Nandakumar, Google's Vasiliev and Swett, and Meta's Frindell — Curley's name is not there. He now maintains a personal draft called draft-lcurley-moq-lite, whose most recent revision (-05) is dated June 30, 2026, and runs 40 pages. Set next to MOQT's 149 pages, that alone is a message.

The fork's rationale is spelled out unusually bluntly in the moq-lite draft's Rationale section. To paraphrase — he fully believes in MoQ's motivation and potential, but designing this kind of experimental protocol by committee has been hard, and MoqTransport has become too complex. Too many messages, too many optional modes, too many half-baked features. The standardization process is actually getting in the way of real-world experimentation, and instead of arguing over hypothetical applications, real applications need to get built. So moq-lite strips everything down to "the bare minimum needed for real-time applications that want to replace WebRTC." Even things he agrees are good ideas, like group order, he left out, saying he'd add them "when actually needed," and the draft itself states outright that "this document represents the current state, not the final state."

Looking at how structurally different it actually is:

  • The data model is Broadcast → Track → Group → Frame — there's no subgroup layer like MOQT's, and Object has been renamed to Frame to match media terminology.
  • There are exactly six bidirectional stream types: Announce, Subscribe, Fetch, Track, Probe, and Goaway. Compare that to MOQT's 18 control message types.
  • On the other hand, there's something MOQT doesn't have — -05 defines four transport bindings: QUIC, WebTransport, plus Qmux over TCP/TLS and Qmux over WebSocket. There's a TCP fallback baked into the spec for networks where QUIC is blocked and browsers without WebTransport (Safari). Datagrams are only supported over the QUIC/WebTransport bindings.

The First MoQ CDN, which Curley wrote the day after Cloudflare's launch, shows this view even more bluntly. By his count (as of August 2025), the moq-transport repository had accumulated 650+ issues and 500+ PRs, and he estimates the underlying networking layer is "at least 3 more years" from becoming an RFC. His comparison point is QUIC — Google started deploying it in 2012, started standardizing it in 2015, and the RFC came out in 2021. And QUIC had a mountain of production data to refine the spec against, while MoQ so far only has demo-level usage experience. For what it's worth, he states that Cloudflare's own relay code is a fork of his Rust implementation (his claim — Cloudflare's announcement does not state a code lineage). His post also lays out the limitations at launch time: no authentication, no ANNOUNCE support (so no broadcast start/end discovery), and no Safari support.

To sum up, the MoQ ecosystem today has two branches. The IETF track (MOQT, targeting IESG submission by end of 2026) and the moq-lite track (a personal draft + working implementation + demos he runs himself). The two branches share concepts and terminology but are not wire-compatible.

So, Is It Time to Drop WebRTC Yet — No

It's true that MoQ's own goal is to replace WebRTC (the moq-lite draft states this explicitly). But as of July 2026, there are three reasons you can't switch over yet.

First, browser coverage. MOQT requires WebTransport in the browser, and Safari's WebTransport still isn't complete. Per Cloudflare's own documentation, Safari only got an early (not yet fully functional) implementation behind a developer flag starting with 18.4 (March 31, 2025). The same document's conclusion is telling — until Safari has full WebTransport, some MoQ use cases have to fall back to WebRTC or WebSocket. As long as you have to fall back to the thing you're supposedly replacing, that's not replacement — it's running in parallel.

Second, operational maturity. The public relay is an unauthenticated tech preview (an unguessable path name is currently the access control), and the standard, as shown above, is still at a stage where message names are changing. This isn't the stage to put SLA-bound traffic like video conferencing or live commerce on top of it.

Third, a cost that arrives quietly. Receiving media over QUIC also means the CPU cost structure on the receive path differs from TCP+TLS. I covered this with measurement data yesterday in QUIC Receiver CPU Cost and Kernel QUIC — worth reading alongside this one if you're evaluating MoQ on the server side.

Meanwhile, where today's real-time stack stands has already been covered elsewhere — WebRTC media infrastructure and the WHIP/WHEP ecosystem in WebRTC Media Infrastructure 2026, and real-time web transport options including WebTransport in Realtime Web in 2026. Why a stack like voice AI, where bidirectional conversational latency is everything, still runs on WebRTC today connects to the context in AI Voice 2026 as well. For MoQ to replace these, the standard has to be finished, browser coverage has to be there, and operational features like authentication and billing all have to be filled in — none of that is done yet.

Verdict — When to Look, When to Wait

Cases where it's worth experimenting now:

  • You own a live-streaming pipeline (ingest → fan-out) directly and are actually hitting the scaling cost of a WebRTC SFU or the latency floor of LL-HLS. A proof of concept is achievable today with the free preview relay and open-source implementations.
  • You have a stake in the protocol itself — this is the last window where feedback can still shape the spec. Per the WG milestones, it moves to IESG by the end of this year.

Cases where waiting is the right call:

  • Media traffic with a production SLA attached. An unauthenticated preview relay, a wire format that changes every two months, incompatibility across drafts — any one of these three is reason enough on its own.
  • A service where full browser coverage, including Safari, is required. You can't start without a WebTransport fallback plan.
  • Any decision that has to rest on "MoQ has better/worse latency than WebRTC" — there's no public comparison measurement yet with stated conditions. Read a vendor announcement's latency claims as marketing copy.

Closing

To sum up: the MOQT spec has reached -19 and the working group is targeting IESG submission within the year, but the wire format still moves with every revision. Deployment's center of gravity, meanwhile, sits around draft-07 — the largest public relay stopped there and became the de facto interoperability target, and even that has a documented wire deviation. And the protocol's original proposer is running a fork one-sixth the length, arguing that "experimentation has to come before the standard."

This picture looks less like a sign of failure than the normal pain of protocol standardization — QUIC, too, had nine years between deployment and RFC. Still, the practical engineering conclusion is clear. MoQ today is something to watch and experiment with, not something to migrate to. Two checkpoints are worth marking — the outcome of next week's MoQ sessions at IETF 126, and whether the IESG submission actually happens at the end of 2026.

References