Connected: An Internet Encyclopedia
6.1 RTCP Packet Format
Up:
Connected: An Internet Encyclopedia
Up:
Requests For Comments
Up:
RFC 1889
Up:
6. RTP Control Protocol -- RTCP
Prev: 6. RTP Control Protocol -- RTCP
Next: 6.2 RTCP Transmission Interval
6.1 RTCP Packet Format
6.1 RTCP Packet Format
This specification defines several RTCP packet types to carry a
variety of control information:
- SR
- Sender report, for transmission and reception statistics from
participants that are active senders
- RR
- Receiver report, for reception statistics from participants that
are not active senders
- SDES
- Source description items, including CNAME
- BYE
- Indicates end of participation
- APP
- Application specific functions
Each RTCP packet begins with a fixed part similar to that of RTP data
packets, followed by structured elements that may be of variable
length according to the packet type but always end on a 32-bit
boundary. The alignment requirement and a length field in the fixed
part are included to make RTCP packets "stackable". Multiple RTCP
packets may be concatenated without any intervening separators to
form a compound RTCP packet that is sent in a single packet of the
lower layer protocol, for example UDP. There is no explicit count of
individual RTCP packets in the compound packet since the lower layer
protocols are expected to provide an overall length to determine the
end of the compound packet.
Each individual RTCP packet in the compound packet may be processed
independently with no requirements upon the order or combination of
packets. However, in order to perform the functions of the protocol,
the following constraints are imposed:
- Reception statistics (in SR or RR) should be sent as often as
bandwidth constraints will allow to maximize the resolution of
the statistics, therefore each periodically transmitted
compound RTCP packet should include a report packet.
- New receivers need to receive the CNAME for a source as soon
as possible to identify the source and to begin associating
media for purposes such as lip-sync, so each compound RTCP
packet should also include the SDES CNAME.
- The number of packet types that may appear first in the
compound packet should be limited to increase the number of
constant bits in the first word and the probability of
successfully validating RTCP packets against misaddressed RTP
data packets or other unrelated packets.
Thus, all RTCP packets must be sent in a compound packet of at least
two individual packets, with the following format recommended:
- Encryption prefix
- If and only if the compound packet is to be
encrypted, it is prefixed by a random 32-bit quantity redrawn
for every compound packet transmitted.
- SR or RR
- The first RTCP packet in the compound packet must always
be a report packet to facilitate header validation as described
in Appendix A.2. This is true even if no data has been sent nor
received, in which case an empty RR is sent, and even if the
only other RTCP packet in the compound packet is a BYE.
- Additional RRs
- If the number of sources for which reception
statistics are being reported exceeds 31, the number that will
fit into one SR or RR packet, then additional RR packets should
follow the initial report packet.
- SDES
- An SDES packet containing a CNAME item must be included in
each compound RTCP packet. Other source description items may
optionally be included if required by a particular application,
subject to bandwidth constraints (see Section 6.2.2).
- BYE or APP
- Other RTCP packet types, including those yet to be
defined, may follow in any order, except that BYE should be the
last packet sent with a given SSRC/CSRC. Packet types may appear
more than once.
It is advisable for translators and mixers to combine individual RTCP
packets from the multiple sources they are forwarding into one
compound packet whenever feasible in order to amortize the packet
overhead (see Section 7). An example RTCP compound packet as might be
produced by a mixer is shown in Fig. 1. If the overall length of a
compound packet would exceed the maximum transmission unit (MTU) of
the network path, it may be segmented into multiple shorter compound
packets to be transmitted in separate packets of the underlying
protocol. Note that each of the compound packets must begin with an
SR or RR packet.
An implementation may ignore incoming RTCP packets with types unknown
to it. Additional RTCP packet types may be registered with the
Internet Assigned Numbers Authority (IANA).
Next: 6.2 RTCP Transmission Interval
Connected: An Internet Encyclopedia
6.1 RTCP Packet Format