rfc-7197

Duplication Delay Attribute in the Session Description Protocol

A. Begen, Y. Cai, H. Ou
date2014-04 streamIETF areaart wgmmusic statusPROPOSED STANDARD pages11 canonicalhttps://www.rfc-editor.org/rfc/rfc7197 doi10.17487/RFC7197
A straightforward approach to provide protection against packet losses due to network outages with a longest duration of T time units is to duplicate the original packets and send each copy separated in time by at least T time units. This approach is commonly referred to as "time-shifted redundancy", "temporal redundancy", or simply "delayed duplication". This document defines an attribute to indicate the presence of temporally redundant media streams and the duplication delay in the Session Description Protocol.

Extracted elements (15)

design-rationale §1

Delayed duplication is easy to implement compared to FEC or redundant encoding because it requires no special encoding or decoding; the sender simply retransmits original packets after a time delay. The delay is chosen to span the expected network reconvergence time (typically tens to hundreds of milliseconds).

realtime, rtp

design-rationale §3

The attribute is defined generically to support more than two redundant streams (multiple duplications) by specifying multiple delay values, even though in practice more than two redundant streams are unlikely due to added delay and overhead. Multiple period values represent relative delays between successive duplicates.

realtime, rtp

design-rationale §1

The 'duplication-delay' attribute is applicable to both RTP and non-RTP streams, though the primary focus is RTP-based transport. For RTP, duplicate suppression uses the RTP sequence number; non-RTP applications must use their own unique identifiers or comparison approaches.

realtime, rtp

interoperability-note §3

For offer/answer model considerations, implementations must refer to RFC 7104, which defines the 'DUP' grouping semantics that this attribute depends on. This attribute does not define stream merging rules; each application must determine its own stream merging behavior.

realtime, rtp

normative-requirement §3 MUST NOT

If different duplication delay values are needed for different duplication groups, one MUST use different SDP descriptions for each or MUST use the 'duplication-delay' attribute at the media level. In that case, the 'duplication-delay' attribute MUST NOT be used at the session level.

realtime, rtp

normative-requirement §3 SHOULD

When 'duplication-delay' is used as a media-level attribute, the specified relative delay values SHALL apply to every SSRC-based duplication grouping in the same media description; one cannot specify different delay values for different duplication groups in the same media description.

realtime, rtp

normative-requirement §3 MUST

When used as a media-level attribute, 'duplication-delay' MUST be used with the 'ssrc-group' attribute and 'DUP' grouping semantics as defined in RFC 7104.

realtime, rtp

normative-requirement §3 MUST

When used as a session-level attribute, 'duplication-delay' MUST be used with the 'group' attribute and 'DUP' grouping semantics as defined in RFC 7104. The relative delay values SHALL apply to every duplication grouping in the same SDP description.

realtime, rtp

protocol-element §3

The 'duplication-delay' SDP attribute specifies the relative delay in milliseconds for each additional duplication of a media stream, supporting both single and multiple duplications. It is defined as both a media-level and session-level SDP attribute using ABNF syntax: 'a=duplication-delay:' followed by one or more space-separated integer values in milliseconds.

realtime, rtp

registry §6.1

This document registers the 'duplication-delay' SDP attribute (att-field) in the IANA SDP Attribute registry. It is a media- or session-level attribute, not subject to charset, and specifies the relative duplication delay(s) for redundant streams.

registry, realtime

security-consideration §5

A malevolent third party could intercept and rewrite SDP packets to alter the 'duplication-delay' value, causing receivers to wait unnecessarily long (if delay is increased) or to drop packets prematurely (if delay is reduced). Integrity protection and source authentication via S/MIME, HTTPS, or SAP authentication are recommended.

security, realtime

security-consideration §5

An attacker or software misconfiguration could signal a large number of duplicated streams using this attribute, causing a denial-of-service. Applications should impose hard limits on both the number of duplicate streams and the total delay introduced, regardless of what the SDP specifies.

security, realtime

security-consideration §5

Delayed duplication could act as a cryptographic attack accelerator (e.g., Million Message attack, Lucky 13) if the media packets are cryptographically protected with a weak or broken mechanism. Deployments should avoid weak security mechanisms and apply hard limits on duplication counts.

security, crypto, realtime

security-consideration §5

If this mechanism is used with SDES and the media protection key is derived from a dictionary-attackable secret, the duplication allows for a more efficient dictionary attack. The countermeasure is to use proper keying or ensure SDES keys are not dictionary-attackable.

security, crypto

wire-format §3

The 'duplication-delay' attribute is encoded as 'a=duplication-delay:' followed by one or more period values, each being a positive integer in milliseconds, separated by spaces. ABNF: delaying-attribute = "a=duplication-delay:" periods CRLF; periods = period *( SP period); period = 1*DIGIT.

realtime, rtp