rfc-5760

RTP Control Protocol (RTCP) Extensions for Single-Source Multicast Sessions with Unicast Feedback

J. Ott, J. Chesterfield, E. Schooler
date2010-02 streamIETF arearai wgavt statusPROPOSED STANDARD pages66 canonicalhttps://www.rfc-editor.org/rfc/rfc5760 doi10.17487/RFC5760 errataview
This document specifies an extension to the Real-time Transport Control Protocol (RTCP) to use unicast feedback to a multicast sender. The proposed extension is useful for single-source multicast sessions such as Source-Specific Multicast (SSM) communication where the traditional model of many-to-many group communication is either not available or not desired. In addition, it can be applied to any group that might benefit from a sender-controlled summarized reporting mechanism. [STANDARDS-TRACK]

updated by

Extracted elements (29)

design-rationale §7.1.3

The data-bucket distribution format for Loss, Jitter, RTT, and Cumulative Loss sub-reports uses a variable-size bucket scheme with a multiplicative factor (MF) to allow compact representation of diverse distributions without fixed resolution, trading granularity against packet size.

rtp, realtime

design-rationale §7.1.12

The RTCP Bandwidth sub-report block (SRBT=11) was designed to allow the Distribution Source to mask the actual receiver group size from receivers while still preventing feedback implosion. This enables the Distribution Source to independently control feedback rates without revealing potentially sensitive membership information.

rtp, realtime, privacy

design-rationale §4

The Simple Feedback Model was designed for backwards compatibility: an existing RTP receiver requires minimal modification, simply targeting a unicast address for its RTCP reports rather than a multicast address, while still receiving all forwarded RTCP traffic on the multicast control channel. This allows incremental deployment.

rtp, multicast, realtime

interoperability-note §3

Heterogeneous networks of ASM multiple-sender groups, unicast-only clients, and SSM single-sender groups MAY be connected via translators or mixers to create a single-source group compatible with this specification, as described in Section 8.

rtp, multicast, realtime

interoperability-note §7.5

In the Distribution Source Feedback Summary Model, Media Senders MUST be able to process RSI packets to determine group size and their RTCP bandwidth share, unlike the Simple Feedback Model where standard RFC 3550 RTCP processing suffices. The configuration of the RTCP SSM session in SDP MUST specify which processing the Distribution Source will apply to each RTCP packet type.

rtp, realtime

normative-requirement §7.1.5 MUST NOT

A Distribution Source MUST NOT report jitter distribution values for at least 2 reporting intervals after a payload type change occurs, because timestamp units are payload-type specific and jitter comparisons across payload types are not meaningful.

rtp, realtime

normative-requirement §7 MUST

A Distribution Source MUST use its own SSRC for summarization, MUST perform SSRC collision detection and resolution, and MUST send at least one RSI packet per reporting interval. It MUST forward all RTCP SR packets from Media Senders to receivers without alteration.

rtp, realtime

normative-requirement §7.1 MUST

All numeric values comprising multiple octets in RSI sub-report blocks MUST be encoded in network byte order.

rtp, realtime

normative-requirement §7.4 MUST

An RTP receiver in the Feedback Summary Model MUST process RSI packets and adapt RTCP bandwidth accordingly. If no RSI packets have been received from the Distribution Source for five times the sender reporting interval, the receiver MUST cease transmitting RTCP Receiver Reports until the next RSI packet is received.

rtp, realtime

normative-requirement §7 MUST

Every RSI packet MUST contain either a Group and Average Packet Size sub-report or an RTCP Bandwidth sub-report. In the Feedback Summary Model, the Distribution Source MUST append an RSI header and sub-reports to all RRs it generates, and compound packets MUST begin with an RR and contain at least an SDES/CNAME.

rtp, realtime

normative-requirement §7.1.8 MUST

If a Feedback Target Address sub-report block is used, it MUST be included in every RTCP packet originated by the Distribution Source to ensure consistent receiver behavior in the face of packet loss or late arrivals. When received, receivers MUST override static SDP Feedback Target address information with the dynamic address in the block.

rtp, realtime

normative-requirement §6.4 MUST

In the Simple Feedback Model, each receiver MUST calculate its RTCP bandwidth share R/n and, when eligible to transmit, MUST send a unicast Receiver Report to the Feedback Target. Reflected RTCP traffic SHOULD NOT be counted as the Distribution Source's own traffic in the transmission interval calculation.

rtp, realtime

normative-requirement §6.2 MUST NOT

In the Simple Feedback Model, the Distribution Source MUST forward all valid unicast RTCP packets received on the RTCP port to the multicast RTCP channel individually, and MUST NOT stack report blocks from different receivers into one packet for retransmission to the group.

rtp, multicast, realtime

normative-requirement §7.4 MUST

Receivers MUST detect SSRC collisions by checking incoming RTP packets from Media Senders and the Collision SSRC sub-report list. Upon detecting a collision with its own SSRC, a receiver MUST change its SSRC immediately per RFC 3550 before sending further RTCP feedback, and MUST NOT use an SSRC known out-of-band to belong to a Media Sender.

rtp, realtime

protocol-element §5

A new RTCP packet type RSI (Receiver Summary Information) is defined with payload type 209. It carries a fixed header including the Distribution Source SSRC, the Summarized SSRC (the Media Sender being reported on), and a 64-bit NTP wallclock timestamp, followed by variable-length sub-report blocks.

rtp, realtime

protocol-element §4

The SSM unicast feedback architecture defines a Distribution Source that relays RTP to receivers via source-specific multicast, while receivers send RTCP feedback unicast to a Feedback Target. The Feedback Target forwards original or summarized RTCP to the Distribution Source, which relays reports back to all receivers on the multicast RTCP channel.

rtp, multicast, realtime

protocol-element §4

Two reporting models are defined: the Simple Feedback Model (basic reflection of individual receiver RTCP packets to all receivers) and the Distribution Source Feedback Summary Model (Distribution Source aggregates receiver reports into RSI summary packets). The reporting method MUST be decided prior to session start and MUST NOT change during the session.

rtp, realtime

registry §13

IANA assigned RTCP packet type 209 to the RSI (Receiver Summary Information) packet defined by this document.

registry, rtp, realtime

registry §13

This document establishes a registry for RSI Sub-Report Block Types (SRBT): 0=IPv4 Feedback Target Address, 1=IPv6 Feedback Target Address, 2=DNS Feedback Target Address, 3=Reserved, 4=Loss, 5=Jitter, 6=RTT, 7=Cumulative Loss, 8=Collisions, 9=Reserved, 10=General Statistics, 11=RTCP Bandwidth, 12=Group Info; values 13-255 are unassigned.

registry, rtp, realtime

security-consideration §11

The Distribution Source Feedback Summary Model gives the Distribution Source substantial authority over receiver behavior by controlling reported group size and RTCP bandwidth allocations. A compromised or spoofed Distribution Source can suppress receiver feedback, misreport session quality, or redirect unicast RTCP traffic, making RTCP-level authentication critical for deployments.

security, rtp, realtime

security-consideration §7.1.8

The Feedback Target Address sub-report block presents a significant security risk if accepted from unauthenticated RTCP packets, as an attacker could redirect all receiver unicast feedback to an arbitrary address. RTCP authentication (e.g., via SRTP) SHOULD be used before trusting dynamic Feedback Target address updates.

security, rtp, realtime

wire-format §7.1.3

Distribution sub-report blocks (Loss SRBT=4, Jitter SRBT=5, RTT SRBT=6, Cumulative Loss SRBT=7) share a bucket format with a 12-bit NDB (number of distribution buckets), 4-bit Multiplicative Factor MF (bucket values are scaled by 2^MF), 32-bit minimum value, 32-bit maximum value, and variable-width distribution buckets sized ((length*4)-12)*8/NDB bits each.

rtp, realtime

wire-format §7.1.2

Sub-report blocks follow a generic 32-bit-aligned format: 8-bit SRBT (Sub-Report Block Type), 8-bit Length (count of 32-bit words in the block), and (length*4 - 2) octets of SRBT-specific data.

rtp, realtime

wire-format §7.1.9

The Collision sub-report block (SRBT=8) carries a list of 32-bit SSRCs that the Distribution Source has identified as duplicated within the group. If more SSRCs than fit in an MTU must be reported, they are reported round-robin across successive packets.

rtp, realtime

wire-format §7.1.8

The Feedback Target Address sub-report block (SRBT 0=IPv4, 1=IPv6, 2=DNS) carries a 2-octet Port and variable-length Address (4 octets IPv4, 16 octets IPv6, or UTF-8 DNS name zero-padded to 32-bit boundary). A port value of 0 is invalid and MUST NOT be used.

rtp, realtime

wire-format §7.1.10

The General Statistics sub-report block (SRBT=10) reports three aggregated values: 8-bit median fraction lost (MFL), 24-bit highest cumulative number of packets lost (HCNL), and 32-bit median inter-arrival jitter. A value of all 1s in any field indicates that value is not provided.

rtp, realtime

wire-format §7.1.12

The Group and Average Packet Size sub-report block (SRBT=12) carries a 16-bit Average RTCP Packet Size (unsigned integer in octets) and a 32-bit Receiver Group Size as estimated by the Distribution Source per RFC 3550 rules.

rtp, realtime

wire-format §7.1.1

The RSI packet header is 20 octets: standard RTCP 32-bit header (V=2, P, reserved, PT=RSI=209, 16-bit length), followed by a 32-bit SSRC of the Distribution Source, a 32-bit Summarized SSRC of the Media Sender, and a 64-bit NTP timestamp (most significant word then least significant word).

rtp, realtime

wire-format §7.1.11

The RTCP Bandwidth sub-report block (SRBT=11) carries a 1-bit Sender (S) flag, 1-bit Receiver (R) flag, 14-bit reserved field, and a 32-bit RTCP Bandwidth as a fixed-point value (binary point between bytes 2 and 3) representing kilobits/second per sender or per receiver.

rtp, realtime