RTP Control Protocol (RTCP) Extensions for Single-Source Multicast Sessions with Unicast Feedback
updated by
- rfc-6128 — RTP Control Protocol (RTCP) Port for Source-Specific Multicast (SSM) Sessions
Extracted elements (29)
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.
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.
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.
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.
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.
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.
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.
All numeric values comprising multiple octets in RSI sub-report blocks MUST be encoded in network byte order.
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.
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.
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.
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.
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.
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.
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.
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.
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.
IANA assigned RTCP packet type 209 to the RSI (Receiver Summary Information) packet defined by this document.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.