The Real-time Transport Protocol ( RTP ) is a network protocol for delivering audio and video over IP networks . RTP is used in communication and entertainment systems that involve streaming media , such as telephony , video teleconference applications including WebRTC , television services and web-based push-to-talk features.
37-496: RTP typically runs over User Datagram Protocol (UDP). RTP is used in conjunction with the RTP Control Protocol (RTCP). While RTP carries the media streams (e.g., audio and video), RTCP is used to monitor transmission statistics and quality of service (QoS) and aids synchronization of multiple streams. RTP is one of the technical foundations of Voice over IP and in this context is often used in conjunction with
74-667: A data section (the payload data for the application). The UDP datagram header consists of 4 fields, each of which is 2 bytes (16 bits): The use of the Checksum and Source Port fields is optional in IPv4 (light purple background in table). In IPv6 only the Source Port field is optional. If not used, these fields should be set to zero. The method used to compute the checksum is defined in RFC ; 768 , and efficient calculation
111-674: A signaling protocol such as the Session Initiation Protocol (SIP) which establishes connections across the network. RTP was developed by the Audio-Video Transport Working Group of the Internet Engineering Task Force (IETF) and first published in 1996 as RFC 1889 which was then superseded by RFC 3550 in 2003. Research on audio and video over packet-switched networks dates back to
148-500: A carry-out (17th bit) is produced, swing that 17th carry bit around and add it to the least significant bit of the running total. Finally, the sum is then ones' complemented to yield the value of the UDP checksum field. If the checksum calculation results in the value zero (all 16 bits 0) it should be sent as the ones' complement (all 1s) as a zero-value checksum indicates no checksum has been calculated. In this case, any specific processing
185-411: A combination of TCP and TLS to ensure reliability and security respectively. This means that HTTP/3 uses a single handshake to set up a connection, rather than having two separate handshakes for TCP and TLS, meaning the overall time to establish a connection is reduced. Transmission Control Protocol is a connection-oriented protocol and requires handshaking to set up end-to-end communications. Once
222-429: A connection is set up, user data may be sent bi-directionally over the connection. User Datagram Protocol is a simpler message-based connectionless protocol . Connectionless protocols do not set up a dedicated end-to-end connection. Communication is achieved by transmitting information in one direction from source to destination without verifying the readiness or state of the receiver. Jingle (protocol) Jingle
259-480: A different header layout, the method used to compute the checksum is changed accordingly: Any transport or other upper-layer protocol that includes the addresses from the IP header in its checksum computation must be modified for use over IPv6, to include the 128-bit IPv6 addresses instead of 32-bit IPv4 addresses. When computing the checksum, again a pseudo header is used that mimics the real IPv6 header : The checksum
296-540: A high degree of reliability, a protocol such as the Transmission Control Protocol may be used instead. Most often, UDP applications do not employ reliability mechanisms and may even be hindered by them. Streaming media , real-time multiplayer games and voice over IP (VoIP) are examples of applications that often use UDP. In these particular applications, loss of packets is not usually a fatal problem. In VoIP, for example, latency and jitter are
333-713: A packet in an audio application may result in loss of a fraction of a second of audio data, which can be made unnoticeable with suitable error concealment algorithms. The Transmission Control Protocol (TCP), although standardized for RTP use, is not normally used in RTP applications because TCP favors reliability over timeliness. Instead, the majority of the RTP implementations are built on the User Datagram Protocol (UDP). Other transport protocols specifically designed for multimedia sessions are SCTP and DCCP , although, as of 2012, they were not in widespread use. RTP
370-609: A profile and payload format specifications. The profile defines the codecs used to encode the payload data and their mapping to payload format codes in the protocol field Payload Type (PT) of the RTP header. Each profile is accompanied by several payload format specifications, each of which describes the transport of particular encoded data. Examples of audio payload formats are G.711 , G.723 , G.726 , G.729 , GSM , QCELP , MP3 , and DTMF , and examples of video payloads are H.261 , H.263 , H.264 , H.265 and MPEG-1 / MPEG-2 . The mapping of MPEG-4 audio/video streams to RTP packets
407-423: Is a connectionless protocol meaning that messages are sent without negotiating a connection and that UDP doesn't keep track of what it has sent. UDP provides checksums for data integrity , and port numbers for addressing different functions at the source and destination of the datagram. It has no handshaking dialogues and thus exposes the user's program to any unreliability of the underlying network; there
SECTION 10
#1732776489703444-622: Is an extension to XMPP (Extensible Messaging and Presence Protocol) which adds peer-to-peer (P2P) session control (signaling) for multimedia interactions such as in Voice over IP (VoIP) or videoconferencing communications. It was designed by Google and the XMPP Standards Foundation . The multimedia streams are delivered using the Real-time Transport Protocol (RTP). If needed, NAT traversal
481-583: Is assisted using Interactive Connectivity Establishment (ICE). As of December 2009 , the proposed Jingle specification had not yet been approved by the XMPP Standards Foundation, but is now a Draft Standard, meaning: " Implementations are encouraged and the protocol is appropriate for deployment in production systems, but some changes to the protocol are possible before it becomes a Final Standard. " The libjingle library, used by Google Talk to implement Jingle, has been released to
518-431: Is computed over the following fields: Lacking reliability, UDP applications may encounter some packet loss, reordering, errors or duplication. If using UDP, the end-user applications must provide any necessary handshaking such as real-time confirmation that the message has been received. Applications, such as TFTP , may add rudimentary reliability mechanisms into the application layer as needed. If an application requires
555-432: Is designed to carry a multitude of multimedia formats, which permits the development of new formats without revising the RTP standard. To this end, the information required by a specific application of the protocol is not included in the generic RTP header. For each class of application (e.g., audio, video), RTP defines a profile and associated payload formats . Every instantiation of RTP in a particular application requires
592-403: Is discussed in RFC 1071 : Checksum is the 16-bit ones' complement of the ones' complement sum of a pseudo header of information from the IP header, the UDP header, and the data, padded with zero octets at the end (if necessary) to make a multiple of two octets. In other words, all 16-bit words are summed using ones' complement arithmetic. Add the 16-bit values up. On each addition, if
629-414: Is documented in RFC 768 . Although UDP provides integrity verification (via checksum ) of the header and payload, it provides no guarantees to the upper layer protocol for message delivery and the UDP layer retains no state of UDP messages once sent. For this reason, UDP sometimes is referred to as Unreliable Datagram Protocol . If transmission reliability is desired, it must be implemented in
666-440: Is followed by the RTP payload, the format of which is determined by the particular class of application. The fields in the header are as follows: A functional multimedia application requires other protocols and standards used in conjunction with RTP. Protocols such as SIP, Jingle , RTSP, H.225 and H.245 are used for session initiation, control and termination. Other standards, such as H.264, MPEG and H.263, are used for encoding
703-414: Is generally transmitted using UDP. Real-time video and audio streaming protocols are designed to handle occasional lost packets, so only slight degradation in quality occurs, rather than large delays if lost packets were retransmitted. Because both TCP and UDP run over the same network, in the mid-2000s a few businesses found that an increase in UDP traffic from these real-time applications slightly hindered
740-531: Is identified by the port number , a 16-bit integer value, allowing for port numbers between 0 and 65535. Port 0 is reserved but is a permissible source port value if the sending process does not expect messages in response. The Internet Assigned Numbers Authority (IANA) has divided port numbers into three ranges. Port numbers 0 through 1023 are used for common, well-known services. On Unix -like operating systems , using one of these ports requires superuser operating permission. Port numbers 1024 through 49151 are
777-404: Is no guarantee of delivery, ordering, or duplicate protection. If error-correction facilities are needed at the network interface level, an application may instead use Transmission Control Protocol (TCP) or Stream Control Transmission Protocol (SCTP) which are designed for this purpose. UDP is suitable for purposes where error checking and correction are either not necessary or are performed in
SECTION 20
#1732776489703814-463: Is not required at the receiver, because all 0s and all 1s are equal to zero in 1's complement arithmetic. The differences between IPv4 and IPv6 are in the pseudo header used to compute the checksum, and that the checksum is not optional in IPv6. Under specific conditions, a UDP application using IPv6 is allowed to use a zero UDP zero-checksum mode with a tunnel protocol. When UDP runs over IPv4,
851-515: Is regarded as the primary standard for audio/video transport in IP networks and is used with an associated profile and payload format. The design of RTP is based on the architectural principle known as application-layer framing where protocol functions are implemented in the application as opposed to the operating system's protocol stack . Real-time multimedia streaming applications require timely delivery of information and often can tolerate some packet loss to achieve this goal. For example, loss of
888-485: Is specified in RFC 3016 , and H.263 video payloads are described in RFC 2429 . Examples of RTP profiles include: RTP packets are created at the application layer and handed to the transport layer for delivery. Each unit of RTP media data created by an application begins with the RTP packet header. The RTP header has a minimum size of 12 bytes. After the header, optional header extensions may be present. This
925-616: The Datagram Congestion Control Protocol (DCCP) may be used when a reliable transport protocol is desired. The RTP specification recommends even port numbers for RTP and the use of the next odd port number for the associated RTCP session. A single port can be used for RTP and RTCP in applications that multiplex the protocols. RTP is used by real-time multimedia applications such as voice over IP , audio over IP , WebRTC , Internet Protocol television , and SMPTE 2022 & SMPTE 2110 media networks. RTP
962-570: The Session Description Protocol to specify the parameters for the sessions. An RTP session is established for each multimedia stream. Audio and video streams may use separate RTP sessions, enabling a receiver to selectively receive components of a particular stream. The RTP and RTCP design is independent of the transport protocol. Applications most typically use UDP with port numbers in the unprivileged range (1024 to 65535). The Stream Control Transmission Protocol (SCTP) and
999-402: The registered ports used for IANA-registered services. Ports 49152 through 65535 are dynamic ports that are not officially designated for any specific service and may be used for any purpose. These may also be used as ephemeral ports , which software running on the host may use to dynamically create communications endpoints as needed. A UDP datagram consists of a datagram header followed by
1036-441: The application; UDP avoids the overhead of such processing in the protocol stack . Time-sensitive applications often use UDP because dropping packets is preferable to waiting for packets delayed due to retransmission , which may not be an option in a real-time system . The protocol was designed by David P. Reed in 1980 and formally defined in RFC 768 . UDP is a simple message-oriented transport layer protocol that
1073-445: The checksum is computed using a pseudo header that contains some of the same information from the real IPv4 header . The pseudo header is not the real IPv4 header used to send an IP packet, it is used only for the checksum calculation. UDP checksum computation is optional for IPv4. If a checksum is not used it should be set to the value zero. The checksum is calculated over the following fields: As IPv6 has larger addresses and
1110-634: The early 1970s. The Internet Engineering Task Force (IETF) published RFC 741 in 1977 and began developing RTP in 1992, and would go on to develop Session Announcement Protocol (SAP), the Session Description Protocol (SDP), and the Session Initiation Protocol (SIP). RTP is designed for end-to-end , real-time transfer of streaming media . The protocol provides facilities for jitter compensation and detection of packet loss and out-of-order delivery , which are common, especially during UDP transmissions on an IP network. RTP allows data transfer to multiple destinations through IP multicast . RTP
1147-568: The media data in the packets according to the payload type and presents the stream to its user. User Datagram Protocol In computer networking , the User Datagram Protocol ( UDP ) is one of the core communication protocols of the Internet protocol suite used to send messages (transported as datagrams in packets ) to other hosts on an Internet Protocol (IP) network. Within an IP network, UDP does not require prior communication to set up communication channels or data paths. UDP
Real-time Transport Protocol - Misplaced Pages Continue
1184-423: The payload data as specified by the applicable RTP profile. An RTP sender captures the multimedia data, then encodes, frames and transmits it as RTP packets with appropriate timestamps and increasing timestamps and sequence numbers. The sender sets the payload type field in accordance with connection negotiation and the RTP profile in use. The RTP receiver detects missing packets and may reorder packets. It decodes
1221-467: The payload format which indicates the encoded format of the data. The control protocol, RTCP, is used for quality of service (QoS) feedback and synchronization between the media streams. The bandwidth of RTCP traffic compared to RTP is small, typically around 5%. RTP sessions are typically initiated between communicating peers using a signaling protocol, such as H.323, the Session Initiation Protocol (SIP), RTSP, or Jingle ( XMPP ). These protocols may use
1258-496: The performance of applications using TCP such as point of sale , accounting , and database systems (when TCP detects packet loss, it will throttle back its data rate usage). Some VPN systems such as OpenVPN may use UDP and perform error checking at the application level while implementing reliable connections. QUIC is a transport protocol built on top of UDP. QUIC provides a reliable and secure connection. HTTP/3 uses QUIC as opposed to earlier versions of HTTPS which use
1295-785: The primary concerns. The use of TCP would cause jitter if any packets were lost as TCP does not provide subsequent data to the application while it is requesting a re-send of the missing data. Numerous key Internet applications use UDP, including: the Domain Name System (DNS), the Simple Network Management Protocol (SNMP), the Routing Information Protocol (RIP) and the Dynamic Host Configuration Protocol (DHCP). Voice and video traffic
1332-404: The user's application. A number of UDP's attributes make it especially suited for certain applications. Applications can use datagram sockets to establish host-to-host communications. An application binds a socket to its endpoint of data transmission, which is a combination of an IP address and a port . In this way, UDP provides application multiplexing . A port is a software structure that
1369-739: Was developed by the Audio/Video Transport working group of the IETF standards organization. RTP is used in conjunction with other protocols such as H.323 and RTSP . The RTP specification describes two protocols: RTP and RTCP. RTP is used for the transfer of multimedia data, and the RTCP is used to periodically send control information and QoS parameters. The data transfer protocol, RTP, carries real-time data. Information provided by this protocol includes timestamps (for synchronization), sequence numbers (for packet loss and reordering detection) and
#702297