What is Real-Time Transport Control Protocol (RTCP)?
Real-Time Transport Control Protocol (RTCP) is a network communication protocol that works alongside Real-Time Protocol (RTP) to monitor and track data delivery on large multicast networks via RTP's associated transmission metrics.
The purpose of monitoring data delivery with RTCP is to determine whether RTP is providing the necessary quality of service (QoS) during communications and to compensate for delays, if needed. RTCP is most commonly used in voice over IP (VoIP) and Internet Protocol Television (IPTV), streaming media and video conferencing.
RTCP and RTP
As the name suggests, the Real-time Transport Control Protocol is meant to control the transmission of data over a network. It is designed to work with RTP to monitor and control data transmission and to enable communications recipients to send feedback about transmission quality to the communications source (or sources). Both RTCP and RTP are independent of the underlying transport and network layers.
RTCP carries statistical and control data, while RTP delivers the actual data, such as the multimedia content. RTCP statistics typically include the number of bytes sent, packets sent, lost packets and round-trip delay between endpoints. RTCP also carries the canonical name (CNAME), which is a unique identifier for a participant during one RTP session.
CNAME is important because RTCP packets and their identifiers are kept separate from RTP values, because RTP synchronization source IDs often vary. The CNAME identifier is sent in the Security Descriptions for Media Streams (SDES) packet by the source to provide some information about itself during the communication session. If a user participates in both video and audio RTP sessions, they must connect these sessions by using the same CNAME identifier in the RTCP packets.
RTCP packet types
RTCP can use five different packet types to carry statistical and control data to track data delivery and provide feedback on data stream quality.
These packets are as follows:
- RR (receiver report). Packets sent by passive or non-RTP packet-sending receivers to provide receipt statistics that inform senders about the communication QoS.
- SR (sender report). It includes packets sent by active senders after fixed intervals in a session to submit transmission and reception information for RTP packets.
- SDES (source description items). A message sent by the source within a fixed interval containing details about the source name, CNAMEs, source control, and other sender descriptor data (metadata).
- BYE (indicates end of participation). A message sent by the source to announce that it is leaving the conference and thus shutting down the data stream.
- APP (application-specific functions). Control RTCP packets specific to certain applications aimed at extending the application.
RTCP vs. UDP
User Datagram Protocol (UDP) is a low-level protocol commonly used for voice and video communications across the internet. As a simple, connectionless transport layer protocol, UDP speeds up communications. However, it can also cause packet loss in transit, so it usually is only used to send time-sensitive information where some dropped packets are acceptable but waiting to send the packets is unacceptable.
RTCP packets are usually sent via UDP instead of the Transmission Control Protocol (TCP) because UDP helps to transport data faster. Every packet is sent over two distinct UDP port pairings. RTCP uses an odd-numbered, temporary UDP port with the next higher number as the port number. That said, RTCP can be configured to use TCP instead of UDP in environments where UDP cannot be used due to its unsuitability or to certain restrictions.
History of RTCP
In January 1996, the Internet Engineering Task Force (IETF) defined both RTP and RTCP in RFC 1889. RFC 1889 was superseded by RFC 3550 in July 2003. RFC 3550 modified the rules and algorithms that governed how RTP would be used and enhanced the scalable timer algorithm and rules for calculating when RTCP packets should be sent (packet interval) to minimize transmission in excess of the intended rate.
Where RTP, which is the foundation of VoIP technology, allows for real-time data transfer, RTCP does not carry media files. Instead, its main job is to provide out-of-band control information and aid in quality assurance when multimedia content is delivered over IP networks.
Prior to the development of RTP and RTCP, there was no standardized protocol to monitor and control real-time multimedia data transmission over IP networks. Instead, many different protocols were used, resulting in interoperability and compatibility issues. These included the simple UDP and TCP protocols, which lacked features required to handle real-time media streaming.
Non-standard protocols also lacked QoS feedback. This made it impossible to adjust in evolving networking conditions. The protocols also did not include time-related features like order preservation or timestamps. These issues often led to communication degradation, particularly when multimedia was involved.
The development of RTP and later RTCP in RFC 3550 helped to standardize multimedia streaming over IP, eliminating interoperability and synchronization issues, thus helping to improve users' multimedia experiences. These protocols enabled a refresh of existing network protocols by modifying or adding headers. This allowed for the protocols to be adapted as needed by a specific application without having to expand them or add alternative systems. RTP and RTCP also enabled the development of VoIP apps that broadcast real-time multimedia content over the internet, thanks to services like sequence numbers and timestamps.
SIP trunking and VoIP share similarities but have key differences. Learn how together they form the cornerstone of IP telephony. Explore how generative AI has the potential to drastically improve VoIP communications.