rfc-8079

Guidelines for End-to-End Support of the RTP Control Protocol (RTCP) in Back-to-Back User Agents (B2BUAs)

L. Miniero, S. Garcia Murillo, V. Pascual
date2017-02 streamIETF areaart wgstraw statusPROPOSED STANDARD pages16 canonicalhttps://www.rfc-editor.org/rfc/rfc8079 doi10.17487/RFC8079
SIP Back-to-Back User Agents (B2BUAs) are often designed to also be on the media path, rather than just to intercept signalling. This means that B2BUAs often implement an RTP or RTP Control Protocol (RTCP) stack as well, thus leading to separate multimedia sessions that the B2BUA correlates and bridges together. If not disciplined, this behaviour can severely impact the communication experience, especially when statistics and feedback information contained in RTCP messages get lost because of mismatches in the reported data. This document defines the proper behaviour B2BUAs should follow when acting on both the signalling plane and media plane in order to preserve the end-to-end functionality of RTCP.

Extracted elements (22)

design-rationale §3.3

Media Terminator B2BUAs require no specific RTCP forwarding guidelines because they terminate RTP/RTCP themselves and handle statistics and feedback directly. End-to-end RTCP interaction between participants does not exist in such topologies; the B2BUA is the RTCP endpoint on each side.

rtp, realtime, sip

design-rationale §1

When a B2BUA rewrites SSRC values in RTP streams, blindly relaying RTCP messages without updating the referenced SSRCs causes recipients to receive feedback referencing unknown SSRCs, which they discard. This breaks congestion control, NACK retransmission, and other feedback mechanisms, potentially degrading or terminating the session.

rtp, realtime, sip

interoperability-note §3.2

RTP/RTCP multiplexing (RFC 5761) and Reduced-Size RTCP (RFC 5506) may be used independently on each side of a Media Relay or Media Terminator B2BUA, allowing the B2BUA to use the feature on the side that supports it. However, increased RTCP Feedback rates from Reduced-Size may be counterproductive when the non-supporting side has limited bandwidth.

rtp, realtime

interoperability-note §3.2

The REMB feedback message (draft-alvestrand-rmcat-remb) had been widely deployed but not standardized at publication time. A media-aware B2BUA that changes the SSRC of the media sender must also update the SSRC values in REMB packets, or the REMB bandwidth estimation mechanism will not function correctly across the B2BUA.

rtp, realtime, congestion

normative-requirement §3.1 MUST

A B2BUA MAY rewrite CNAME items if any potential SSRC collision is detected. If it does rewrite CNAMEs, it MUST generate new CNAMEs following RFC 7022. If RTP extensions involving CNAMEs are used and the B2BUA cannot support them, it MUST reject negotiation of such extensions.

rtp, realtime

normative-requirement §3.2 SHOULD NOT

A B2BUA SHOULD NOT randomly drop or forward RTCP feedback of the same type within the context of the same session, as gaps in feedback can cause confusing or broken behavior for recipients.

rtp, realtime

normative-requirement §3.2 MUST

A media-aware B2BUA MUST update SSRCs in SDES chunks, BYE packets, APP packets, and XR messages if it changed the SSRC of any addressed RTP stream. For XR messages, 'begin_seq' and 'end_seq' fields MUST also be updated if the base RTP sequence number was changed.

rtp, realtime

normative-requirement §3.2 MUST

A media-aware B2BUA MUST update the SSRC in SR/RR packet headers and all Report Blocks if it changed the SSRC of any referenced RTP stream. If it changed the base RTP sequence number, that change MUST be reflected in the 'extended highest sequence number received' field in Report Blocks.

rtp, realtime

normative-requirement §3.1 SHOULD

A Media Relay B2BUA SHOULD forward all SSRC- and RTCP-related SDP attributes (such as 'ssrc', 'rtcp-fb', 'rtcp-xr-attrib') when handling a multimedia session setup, except for attributes that implicitly describe the immediate peer (such as the 'rtcp' port attribute), which MUST be rewritten.

rtp, realtime, sip

normative-requirement §3.1 SHOULD

A Media Relay B2BUA that is unable to parse RTP/RTCP SHOULD reject RTP/RTCP multiplexing by removing the 'rtcp-mux' SDP attribute. If it can parse RTP/RTCP and verify no Payload Type overlap with RTCP space exists, it SHOULD negotiate RTP/RTCP multiplexing if advertised.

rtp, realtime, sip

normative-requirement §3.3 SHOULD

For a Media Terminator B2BUA, it SHOULD advertise and negotiate Reduced-Size RTCP support on each side independently if available, and MUST NOT otherwise, since the B2BUA terminates RTCP and the two sides are decoupled.

rtp, realtime

normative-requirement §3.2 MUST

For Feedback messages, a media-aware B2BUA MUST update the Packet Sender SSRC and media source SSRC if changed, but MUST NOT change a media source SSRC that was originally set to zero (unless zero is actually an endpoint's chosen SSRC). For NACK, it MUST rewrite Packet IDs if sequence numbers were changed.

rtp, realtime, congestion

normative-requirement §3.2 MUST

For RSI (RFC 5760) and TOKEN/Port Mapping (RFC 6284) packets, a media-aware B2BUA MUST update all SSRC identifiers in the message, including the distribution source SSRC and Packet Sender SSRC, rewriting them with the SSRC the B2BUA uses when sending RTP to each participant.

rtp, realtime, multicast

normative-requirement §3.2 MUST

For TMMBR/TMMBN/FIR/TSTR/TSTN/VBCM feedback messages (RFC 5104), a media-aware B2BUA MUST rewrite the additional SSRC identifier in the specific FCI if it changed the related RTP SSRC of the media sender.

rtp, realtime

normative-requirement §3.2 SHOULD NOT

If a compound RTCP packet is received and any individual RTCP message within it needs to be dropped, the B2BUA SHOULD NOT drop the whole compound RTCP packet but only the selected messages.

rtp, realtime

normative-requirement §3.2 MUST

If a media-aware B2BUA changes any SSRC, it MUST update the related 'ssrc' SDP attributes before sending to the recipient, and MUST rewrite the 'rtcp' SDP attribute if provided. It MUST advertise its RTCP support level coherently in SDP to prevent sending unsupported feedback types.

rtp, realtime, sip

normative-requirement §3.2 MUST NOT

If a media-aware B2BUA decides to disable Reduced-Size RTCP on all sides (suggested when not all parties support it), it MUST NOT advertise support for Reduced-Size RTCP on either side, removing the 'rtcp-rsize' SDP attribute.

rtp, realtime

normative-requirement §3.2 MUST

When a media-aware B2BUA involves RTP/RTCP multiplexing, it MUST ensure there are no conflicting RTP Payload Type numbers. When conflicts exist, it MUST rewrite RTP Payload Type numbers, and the related SDP information MUST be updated accordingly.

rtp, realtime

protocol-element §3

B2BUAs on the media path are classified into three categories: (1) Media Relay, which forwards RTP/RTCP without inspection or modification; (2) Media-aware Relay, which inspects and/or modifies RTP/RTCP headers; and (3) Media Terminator, which fully terminates and regenerates RTP/RTCP.

rtp, realtime, sip

security-consideration §3.1

A Media Relay passing RTCP messages untouched may leak internal topology information such as domain names or IP addresses embedded in CNAME items. If a NAT is involved, unmodified CNAME values containing internal IP addresses may cause CNAME collisions that break end-to-end RTCP behavior.

rtp, realtime, security, nat, privacy

security-consideration §5

Improper management of RTCP Feedback messages (e.g., REMB) can produce attack-like effects: a B2BUA that drops or corrupts bandwidth availability feedback may cause the sender to flood a bandwidth-constrained receiver with data it cannot process, resulting in a de facto Denial-of-Service condition.

rtp, realtime, security, congestion

security-consideration §5

When SRTP/SRTCP is in use and the B2BUA lacks access to the session keys, it cannot modify packet headers without violating the SRTP authentication tag. Only the Media Relay scenario can be properly addressed with SRTP; Media-aware Relay and Media Terminator scenarios require the B2BUA to act as a man-in-the-middle, which is unspecified and discouraged.

rtp, realtime, security, crypto