RTCP

Real-time Transport Control Protocol

Protocol
Introduced in Rel-5
RTCP is the control protocol companion to RTP, providing out-of-band statistics and control information for real-time media sessions. It is essential for monitoring QoS, synchronizing media streams, and providing minimal session control, enabling adaptive streaming and participant awareness.

Description

The Real-time Transport Control Protocol (RTCP) operates in conjunction with the Real-time Transport Protocol (RTP) to manage the delivery of real-time data like audio and video over IP networks. While RTP handles the actual media payload transmission, RTCP uses separate, periodic control packets sent to all participants in a session. These packets carry sender and receiver reports that contain vital statistics such as packet count, octet count, jitter, round-trip time, and packet loss fraction. This feedback allows applications to monitor the quality of service (QoS) and network congestion, enabling adaptive mechanisms like codec switching or bitrate adjustment. RTCP also carries source description items (SDES), including the canonical name (CNAME) for participant identification, which is crucial for synchronizing multiple media streams (e.g., audio and video from the same source) across different RTP sessions. Furthermore, RTCP can convey bye packets for session termination and application-defined packets for extended control. The protocol is designed to scale by dynamically adjusting the reporting interval based on the number of session participants to prevent control traffic from overwhelming the network; typically, RTCP traffic is limited to 5% of the total session bandwidth. In 3GPP architectures, especially for IMS-based services like VoLTE, RTCP reports are used by the UE and network elements to assess bearer quality and may trigger radio layer adjustments or codec mode requests. The protocol is defined by the IETF in RFC 3550, and 3GPP profiles its use, specifying mandatory support for certain report types and the Secure RTCP (SRTCP) extension for confidentiality and message authentication in media planes.

Purpose & Motivation

RTCP was created to address the lack of feedback and control mechanisms in real-time data delivery using RTP. Pure RTP provides no inherent way for senders to know if receivers are getting the stream, or for receivers to report on network conditions like loss and delay. This made it difficult to implement adaptive streaming, diagnose problems, or manage multi-party sessions. RTCP solves these problems by providing a standardized, low-overhead control channel. Its primary purposes are QoS monitoring, allowing endpoints to adapt to network conditions; media synchronization, using the CNAME identifier; and minimal session management. In the context of 3GPP, the adoption of RTCP was motivated by the need for carrier-grade telephony over IP (VoIP), where monitoring call quality is essential for service assurance and user experience. It provides the technical means for the network and devices to implement quality reporting features mandated by regulatory or service-level requirements.

Key Features

  • Transports sender (SR) and receiver reports (RR) for QoS metrics like packet loss and jitter
  • Carries the canonical identifier (CNAME) for cross-media stream synchronization
  • Uses a scalable algorithm to control reporting traffic (typically capped at 5% of session bandwidth)
  • Supports extended reports (RTCP XR) for detailed VoIP metrics like burst loss
  • Defines BYE packets for graceful participant departure
  • Can be secured using SRTCP for authentication and encryption as per 3GPP security profiles

Evolution Across Releases

Rel-5 Initial

Initially adopted RTCP as defined in IETF RFC 3550 for use in the IMS-based Packet-switched Streaming Service (PSS) and conversational services. The architecture mandated its use for reporting RTP stream statistics and participant identification within early multimedia sessions.

Defining Specifications

SpecificationTitle
TS 23.333 3GPP TS 23.333
TS 23.334 3GPP TS 23.334
TS 24.229 3GPP TS 24.229
TS 24.380 3GPP TS 24.380
TS 24.581 3GPP TS 24.581
TS 25.410 3GPP TS 25.410
TS 25.414 3GPP TS 25.414
TS 25.993 3GPP TS 25.993
TS 26.114 3GPP TS 26.114
TS 26.234 3GPP TS 26.234
TS 26.235 3GPP TS 26.235
TS 26.281 3GPP TS 26.281
TS 26.348 3GPP TS 26.348
TS 26.522 3GPP TS 26.522
TS 26.804 3GPP TS 26.804
TS 26.822 3GPP TS 26.822
TS 26.880 3GPP TS 26.880
TS 26.902 3GPP TS 26.902
TS 26.910 3GPP TS 26.910
TS 26.923 3GPP TS 26.923
TS 26.924 3GPP TS 26.924
TS 26.926 3GPP TS 26.926
TS 26.935 3GPP TS 26.935
TS 26.937 3GPP TS 26.937
TS 26.962 3GPP TS 26.962
TS 29.162 3GPP TS 29.162
TS 29.163 3GPP TS 29.163
TS 29.238 3GPP TS 29.238
TS 29.292 3GPP TS 29.292
TS 29.332 3GPP TS 29.332
TS 29.334 3GPP TS 29.334
TS 29.380 3GPP TS 29.380
TS 29.414 3GPP TS 29.414
TS 29.424 3GPP TS 29.424
TS 29.514 3GPP TS 29.514
TS 29.582 3GPP TS 29.582
TS 29.866 3GPP TS 29.866
TS 33.303 3GPP TR 33.303
TS 33.879 3GPP TR 33.879
TS 34.229 3GPP TR 34.229
TS 36.750 3GPP TR 36.750
TS 37.579 3GPP TR 37.579
TS 43.318 3GPP TR 43.318
TS 43.901 3GPP TR 43.901
TS 43.902 3GPP TR 43.902
TS 44.318 3GPP TR 44.318
TS 48.103 3GPP TR 48.103