rfc-6597

RTP Payload Format for Society of Motion Picture and Television Engineers (SMPTE) ST 336 Encoded Data

J. Downs (Editor), J. Arbeiter (Editor)
date2012-04 streamIETF areaart wgpayload statusPROPOSED STANDARD pages13 canonicalhttps://www.rfc-editor.org/rfc/rfc6597 doi10.17487/RFC6597
This document specifies the payload format for packetization of KLV (Key-Length-Value) Encoded Data, as defined by the Society of Motion Picture and Television Engineers (SMPTE) in SMPTE ST 336, into the Real-time Transport Protocol (RTP). [STANDARDS-TRACK]

Extracted elements (24)

design-rationale §4.2.2

KLVunits can span multiple RTP packets to accommodate data that exceeds MTU limits. Packet size is left to the implementation to consider transport/network factors such as MTU limitations.

rtp, realtime, congestion

design-rationale §4.3.1.1

The damaged-KLVunit rules are defined to apply regardless of the M-bit value of the lost packet itself, enabling very basic receivers to look solely at the M-bit to determine the outer boundaries of damaged KLVunits without needing to track lost-packet M-bit state.

rtp, realtime

design-rationale §4.1

The marker bit is used to demarcate KLVunit boundaries so that receivers can pass a KLVunit for parsing/decoding immediately upon receipt of the last RTP packet, rather than waiting for the next packet with a different timestamp to signal the end of a KLVunit.

rtp, realtime

design-rationale §4

The payload format uses only standard RTP headers and defines no payload headers, maintaining simplicity while still providing robust carriage. All forms of SMPTE ST 336 data can be carried without restriction on which KLV data keys are used.

rtp, realtime

interoperability-note §6.1

Data items in application/smpte336m can be very diverse; receivers might only be capable of interpreting a subset of possible data items, and unrecognized items are skipped. Agreement on data items to be used is typically done out of band via an application profile.

rtp, realtime

interoperability-note §6.1

The application/smpte336m media type is only defined for transfer via RTP (RFC 3550). Transport within other framing protocols is not defined.

rtp, realtime

interoperability-note §6.2.1

This payload format has no configuration or optional format parameters, so there are no specific Offer/Answer or declarative SDP considerations when offering SMPTE ST 336 data over RTP.

rtp, realtime

normative-requirement §4.2.2 REQUIRED

An RTP packet payload SHALL contain one, and only one, KLVunit or a fragment thereof.

rtp, realtime

normative-requirement §4.3.1.2 MAY

Receivers MAY drop damaged KLVunits entirely, since some implementations may be particularly limited in their capacity to handle them.

rtp, realtime

normative-requirement §8 SHOULD

Receivers SHOULD place limits on resource allocation within the bounds set forth by any application profile in use, to prevent denial-of-service attacks via pathological data with large encoded data items.

rtp, realtime, security

normative-requirement §4.1 MUST

Senders MUST set the RTP header marker bit (M) to '1' for any RTP packet that contains the final byte of a KLVunit. For all other packets, senders MUST set the marker bit to '0'.

rtp, realtime

normative-requirement §4.2.1 MUST NOT

The contents of a compound KLV item (sets, packs) MUST NOT be split across two KLVunits.

rtp, realtime

normative-requirement §6.2 REQUIRED

The mapping of the application/smpte336m media type and its parameters to SDP SHALL be done according to Section 3 of RFC 4855.

rtp, realtime

normative-requirement §4.2.2 MUST

When a KLVunit spans multiple RTP packets, the KLVunit data MUST be sent in sequential byte order such that concatenating payloads in sequence-number order exactly reproduces the original KLVunit.

rtp, realtime

normative-requirement §4.3.1.1 MUST

When a lost RTP packet is detected, the receiver MUST consider the first KLVunit received after the lost packet as damaged, including all packets up to and including the next one with the M-bit set to '1'.

rtp, realtime

normative-requirement §4.1 MUST

When one KLVunit is placed in multiple RTP packets, the RTP timestamp of all packets comprising that KLVunit MUST be the same.

rtp, realtime

protocol-element §3

A KLV item consists of a Universal Label Key (fixed-length 16-byte SMPTE-administered Universal Label), a Length field, and a Value field, as defined in SMPTE ST 336. The Key identifies the data, the Length specifies the data length, and the Value is the data itself.

rtp, realtime

protocol-element §4.2.1

A KLVunit is a logical collection of all KLV items to be presented at a specific time, comprised of one or more KLV items. Multiple KLV items occur one after another with no padding or stuffing between items. Compound items (sets, packs) are allowed but must not be split across two KLVunits.

rtp, realtime

protocol-element §6.1

The media type application/smpte336m has one required parameter: 'rate', the RTP timestamp clock rate, typically chosen based on the sampling rate of the metadata being transmitted. No optional parameters are defined.

rtp, realtime, registry

registry §7

IANA registered the media type application/smpte336m and added it to the 'RTP Payload Format media types' registry. The type name is 'application', subtype 'smpte336m', with required parameter 'rate' for RTP timestamp clock rate.

rtp, realtime, registry

security-consideration §8

Because SMPTE ST 336 encoded data item lengths are essentially unbounded, receivers must take care when allocating resources during processing. Pathological data can cause naive decoders to allocate large amounts of resources, resulting in denial-of-service threats.

rtp, realtime, security

security-consideration §8

Individual SMPTE ST 336 KLV items could convey active content in a particular application. Accepting active content from streams lacking authenticity or integrity protection risks attacks using spoofed packets; receivers incapable of decoding such items are not at risk since unknown items are skipped per SMPTE ST 336 rules.

rtp, realtime, security

security-consideration §8

SRTP (RFC 3711) is recommended as the security mechanism for this payload format to provide confidentiality, integrity protection, and source authentication. IPsec (RFC 4301) and TLS (RFC 5246, RTP over TCP) are also viable alternatives.

rtp, realtime, security, crypto

wire-format §4.2.2

The first byte of the RTP packet payload is the first byte of a KLVunit, which is the first byte of a KLV Universal Label Key (16 bytes). No payload headers are defined; only standard RTP headers are used.

rtp, realtime