Visual RFC.
ALL RFCs / RFC 8285
Read the RFC ↗
RFC 8285 / RTP header extensions

Use the two-byte form for larger values

03

The ID and length each occupy a full octet. Zero-length data is representable, and appbits is a separate outer field.

RFC 8285 · § 4.3EXAMPLE
4 / 4
Use the two-byte form for larger valuesSelected receiver skips three opaque bytes for declared ID200 with no handler, then handles declared ID1 length1 valueDD. Structural lengths never authorize reading media payload.Decode the two-byte formc803aabbcc0101ddConfigured layout; no handler for ID200Skip its three opaque data octetsThen ID1 / length1 / data DDNever read beyond the outer blockRFC8285 · chapter 3 · state 4 · fictional values
04
Skip opaque data within its bound

The selected model skips 200’s three bytes and reaches ID 1; unknown meaning is not guessed, and no bytes beyond the declared block are read.

Source for this drawing: RFC 8285 · Read RFC section 4.3 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

Finding a route and sending media are separate jobs.

Some messages set up a conversation or discover a reachable address. Other packets carry the audio or video. Follow those jobs separately.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Read literal lengths and independent pad bytes; ID 256 is not an eight-bit element ID.

  • The two-byte form uses outer values 0x1000–0x100F: twelve fixed bits 0x100 followed by four application-dependent appbits. An element has an 8-bit ID 1–255 and an 8-bit data length 0–255. The length excludes both header bytes; unlike the one-byte form, do not add one (§4.3).
  • The chosen zero-length element ID 200 is c 8 00, followed here by two block-padding zero bytes. Its length byte 00 is part of the element header; the later zero bytes are independent padding. The two-byte form can use ID 15 as an ordinary ID;15 is reserved only in the one-byte form (§§4.1.2,4.3).
  • Each pad byte is ignored on its own, without supplying an ID or a length. Thus body 00 11 01 ab is one leading pad byte followed by ID 17, literal length 1 and dataab. The 11 is not a length belonging to the pad byte (§4.1.2).
  • Signaling ID 256 refers to the four appbits, not an element serialized as ID 0. If no definition for 256 is specified through setup/configuration, the sender SHOULD set appbits to zero and the receiver MUST ignore them. Appbits 0xA without such a definition does not create a new mapped element or require discarding all other elements (§4.3).
  • A receiver without an application handler for a declared element can use its structural length to skip that opaque data in this teaching model, then read a later handled element. That is a chosen parsing policy, not a new security guarantee. The helper checks the declared block boundary and never borrows media-payload bytes to complete a truncated element. Local-ID meanings still require out-of-band definition; URI/offer exceptions are explained next.
DETAILS

Fictional metadata values, URI names and bounded packet/signaling models. Not an RTP stack, complete SDP negotiation, live loss measurement or cryptographic implementation.

Read the RFC section ↗

All chapters in RFC 8285

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗