RFC 3550 RTP July 2003
If the X bit in the RTP header is one, a variable-length header extension must be appended to
the RTP header, following the CSRC list if present. The header extension contains a 16-bit length
field that counts the number of 32-bit words in the extension, excluding the four-octet extension
header (therefore zero is a valid length). Only a single extension can be appended to the RTP data
header. To allow multiple interoperating implementations to each experiment independently with
different header extensions, or to allow a particular implementation to experiment with more than
one type of header extension, the first 16 bits of the header extension are left open for distinguishing
identifiers or parameters. The format of these 16 bits is to be defined by the profile specification
under which the implementations are operating. This RTP specification does not define any header
extensions itself.
6. RTP Control Protocol — RTCP
The RTP control protocol (RTCP) is based on the periodic transmission of control packets to
all participants in the session, using the same distribution mechanism as the data packets. The
underlying protocol must provide multiplexing of the data and control packets, for example using
separate port numbers with UDP. RTCP performs four functions:
1. The primary function is to provide feedback on the quality of the data distribution. This
is an integral part of the RTP’s role as a transport protocol and is related to the flow and
congestion control functions of other transport protocols (see Section 10 on the requirement
for congestion control). The feedback may be directly useful for control of adaptive encodings
[18, 19], but experiments with IP multicasting have shown that it is also critical to get feedback
from the receivers to diagnose faults in the distribution. Sending reception feedback reports
to all participants allows one who is observing problems to evaluate whether those problems
are local or global. With a distribution mechanism like IP multicast, it is also possible for
an entity such as a network service provider who is not otherwise involved in the session
to receive the feedback information and act as a third-party monitor to diagnose network
problems. This feedback function is performed by the RTCP sender and receiver reports,
described below in Section 6.4.
2. RTCP carries a persistent transport-level identifier for an RTP source called the canoni-
cal name or CNAME, Section 6.5.1. Since the SSRC identifier may change if a conflict is
discovered or a program is restarted, receivers require the CNAME to keep track of each
participant. Receivers may also require the CNAME to associate multiple data streams from
a given participant in a set of related RTP sessions, for example to synchronize audio and
video. Inter-media synchronization also requires the NTP and RTP timestamps included in
RTCP packets by data senders.
3. The first two functions require that all participants send RTCP packets, therefore the rate
must be controlled in order for RTP to scale up to a large number of participants. By having
each participant send its control packets to all the others, each can independently observe the
Schulzrinne, et al. Standards Track [Page 17]