Duplication Grouping Semantics in the Session Description Protocol
Extracted elements (14)
Packet duplication across separate redundant streams is chosen as a loss recovery technique because it avoids unbounded delay for all receivers — an inherent problem with retransmission-based approaches — making it particularly suitable for large-scale IP multicast deployments.
The 'ssrc-group' attribute (RFC 5576) is used instead of 'group' for SSRC-multiplexed streams because SSRC-multiplexed streams are defined within the same 'm' line, and the session-level 'group' attribute cannot reference streams within a single media description.
When a node receiving a DUP grouping offer does not support line grouping or DUP semantics, it responds either by omitting the grouping attribute in the answer or by refusing the request (e.g., '488 Not Acceptable Here' or '606 Not Acceptable' in SIP). The original sender must then send a new offer without duplication grouping.
If a node receiving a DUP grouping offer does not support the semantics and refuses the request, the sender should retry with an offer without duplication grouping if it still wishes to establish the session.
It is RECOMMENDED that the stream listed first in an 'a=group:DUP' or 'a=ssrc-group:DUP' line be sent first, with the other stream(s) being the (time-delayed) duplicate(s), though ordering does not strictly indicate transmission order.
The 'a=group:DUP' semantics MUST be used to group redundant streams when the streams are specified in different media descriptions (different 'm' lines).
For SSRC-multiplexed RTP streams defined in the same 'm' line, the 'a=ssrc-group:DUP' attribute (from RFC 5576) is used instead of 'a=group:DUP', with SSRC identifiers designating the duplication grouping associations.
Separate destination address duplication: redundant streams have different IP destination addresses and are grouped at the session level using 'a=group:DUP S1a S1b' with separate 'm' lines for each stream.
Separate source address duplication: redundant streams share the same IP destination address but originate from different source addresses, requiring the receiver to join both SSM sessions separately. Demonstrated with 'a=ssrc-group:DUP 1000 1010'.
Temporal redundancy: redundant streams share the same IP source and destination addresses (same SSM session), with the duplicate transmitted after a delay (e.g., 50 ms) indicated by the 'duplication-delay' attribute. Both streams are SSRC-multiplexed and grouped with 'a=ssrc-group:DUP'.
The 'DUP' grouping semantics are defined for use with the SDP Grouping Framework (RFC 5888) to associate redundant streams into a 'Duplication Group' via 'a=group:DUP' lines. Each 'a=group' line indicates an association relationship between the redundant streams.
This document registers 'DUP' (Duplication) in the 'Semantics for the "ssrc-group" SDP Attribute' subregistry under the 'Session Description Protocol (SDP) Parameters' registry.
If confidentiality of the SDP description is desired, a secure encrypted transport method should be used to carry the SDP. End-to-end protection using S/MIME (RFC 5652, RFC 5751) is one recommended approach.
There is a weak threat that duplication grouping information in the SDP description can be modified to indicate relationships that do not exist, potentially causing failure of duplication mechanisms or mishandling of media streams. SDP integrity protection and source authentication (e.g., S/MIME, HTTPS, or SAP authentication) are required to mitigate this.