The Real-Time Transport Protocol (RTP) is an Internet protocol standard that specifies a way for programs to manage the real-time transmission of multimedia data over either unicast or multicast network services. Originally specified in Internet Engineering Task Force (IETF) Request for Comments (RFC) 1889, RTP was designed by the IETF's Audio-Video Transport Working Group to support video conferences with multiple, geographically dispersed participants. RTP is commonly used in Internet telephony applications. RTP does not in itself guarantee real-time delivery of multimedia data (since this is dependent on network characteristics); it does, however, provide the wherewithal to manage the data as it arrives to best effect.
RTP combines its data transport with a control protocol (RTCP), which makes it possible to monitor data delivery for large multicast networks. Monitoring allows the receiver to detect if there is any packet loss and to compensate for any delay jitter. Both protocols work independently of the underlying Transport layer and Network layer protocols. Information in the RTP header tells the receiver how to reconstruct the data and describes how the codec bit streams are packetized. As a rule, RTP runs on top of the User Datagram Protocol (UDP), although it can use other transport protocols. Both the Session Initiation Protocol (SIP) and H.323 use RTP.
RTP components include: a sequence number, which is used to detect lost packets; payload identification, which describes the specific media encoding so that it can be changed if it has to adapt to a variation in bandwidth; frameindication, which marks the beginning and end of each frame; source identification, which identifies the originator of the frame; and intramedia synchronization, which uses timestamps to detect different delay jitter within a single stream and compensate for it.
RTPC components include: quality of service (QoS) feedback, which includes the numbers of lost packets, round-trip time, and jitter, so that the sources can adjust their data rates accordingly; session control, which uses the RTCP BYE packet to allow participants to indicate that they are leaving a session; identification, which includes a participant's name, e-mail address, and telephone number for the information of other participants; and intermedia synchronization, which enables the synchronization of separately transmitted audio and video streams.
Compressed RTP (CRTP), specified in RFC 2509, was developed to decrease the size of the IP, UDP, and RTP headers. However, it was designed to work with reliable and fast point-to-point links. In less than optimal circumstances, where there may be long delays, packet loss, and out-of-sequence packets, CRTP doesn't function well for Voice over IP (VoIP) applications. Another adaptation, Enhanced CRPT (ECRPT), was defined in a subsequent Internet Draft document to overcome that problem.