§9.

Control Messages

Sections

MOQT uses a pair of unidirectional streams to exchange control messages, as defined in Section 6.3. Every message on a control or request stream is formatted as follows:

MOQT Control Message {
  Message Type (vi64),
  Message Length (16),
  Message Body (..),
}
Figure 4: MOQT Control Message

The following Message Types are defined. The Stream column indicates which stream type each message is sent on: Control indicates the control stream (Section 6.3), and Request indicates a bidirectional request stream. Messages marked "First" MUST be the first message on a new request stream.

Table 5
ID Messages Stream
0x01 RESERVED (SETUP for version 00)  
0x40 RESERVED (CLIENT_SETUP for <= 10)  
0x41 RESERVED (SERVER_SETUP for <= 10)  
0x20 RESERVED (CLIENT_SETUP in <= 16)  
0x21 RESERVED (SERVER_SETUP in <= 16)  
0x2F00 SETUP (Section 9.1) Control
0x10 GOAWAY (Section 9.2) Control, Request
0x3 SUBSCRIBE (Section 9.6) Request, First
0x4 SUBSCRIBE_OK (Section 9.7) Request
0x22 PUBLISH_STATE_NOTIFY (Section 9.10) Request
0x1D PUBLISH (Section 9.8) Request, First
0x1E RESERVED (PUBLISH_OK in <= 17) Request
0xB PUBLISH_DONE (Section 9.9) Request
0x16 FETCH (Section 9.11) Request, First
0x18 FETCH_OK (Section 9.12) Request
0xD TRACK_STATUS (Section 9.13) Request, First
0x6 PUBLISH_NAMESPACE (Section 9.14) Request, First
0x50 SUBSCRIBE_NAMESPACE (Section 9.15) Request, First
0x51 SUBSCRIBE_TRACKS (Section 9.18) Request, First
0x8 NAMESPACE (Section 9.16) Request
0xE NAMESPACE_DONE (Section 9.17) Request
0xF PUBLISH_SKIPPED (Section 9.19) Request
0x2 REQUEST_UPDATE (Section 9.5) Request
0x7 REQUEST_OK (Section 9.3) Request
0x5 REQUEST_ERROR (Section 9.4) Request

An endpoint that receives an unknown message type MUST close the session. Control messages have a length to simplify parsing, but no control messages are intended to be ignored. The length is set to the number of bytes in the Message Body, which is defined by each message type. If the length does not match the length of the Message Body, the receiver MUST close the session with a PROTOCOL_VIOLATION.

This is one section of the MoQT specification, rendered per-section for quick reference and citation. The authoritative text is draft-ietf-moq-transport-21 at the IETF.