What is the Real-time Transport Protocol (RTP)?
What is the Real-time Transport Protocol (RTP)?
Real-time Transport Protocol (RTP) is a network standard designed for transmitting audio or video data that is optimized for consistent delivery of live data. It is used in internet telephony, Voice over IP and video telecommunication. It can be used for one-on-one calls (unicast) or in one-to-many conferences (multicast).
RTP was standardized by the Internet Engineering Task Force (IETF) in 1996 with Request for Comments (RFC) 1889. It was updated in 2003 by RFC 3550.
IETF designed RTP for sending live or real-time video over the internet. All network data is sent in discrete bunches, called packets. Because of the distributed nature of the internet, it is expected for some packets to arrive with different time spacings (called jitter), in the wrong order (called out-of-order delivery), or to not be delivered at all (called packet loss).
RTP can compensate for these issues without severely impacting the call quality. It favors the quick delivery of packets over ensuring all data is received. This helps the video stream to be consistent and always playing, instead of buffering or stopping playback.
To illustrate this difference, imagine a user wanted to watch a video on the internet. The video streaming service would use RTP to send the video data to their computer. If some of the data packets were lost, RTP would correct for this error and the video may lose a few frames or a fraction of a second of audio. This could be so brief as to be unnoticeable to the viewer.
If instead they wanted to save an exact copy of a video, using another protocol — such as HTTP — would download the video exactly. If any packets were lost, it would request the packet be re-sent, causing the download to go slower but be fully accurate.
RTP Control Protocol (RTCP) is used in conjunction with RTP to send information back to the sender about the media stream. RTCP is primarily used for the client to send quality of service (QoS) data, such as jitter, packet loss and round-trip time (RTT). The server may use this information to switch to a different codec or stream quality. This data can also be used for control signaling or to collect information about the participants when many are connected to the stream.
RTP does not define specific codecs or signaling and uses other standards for data types. It can use several signaling protocols such as session initiation protocol (SIP), H.323 or XMPP. The multimedia can be of almost any codec, including G.711, MP3, H.264 or MPEG-2.
Secure real-time transport protocol (SRTP) adds encryption to RTP. It can be used to secure the media stream so that it cannot be deciphered by others.
SIP enables proxy servers to communicate so users can communicate using the Real-time Transport Protocol.