Real-Time Transport Protocol (RTP)

Home     more VoIP Resources     SIP Resources
RTP                                     Tutorials | RFCs | Internet Drafts | FAQs | Implementations | Links
RTSP                                  Tutorials | RFCs | Internet Drafts | FAQs | Implementations | Tools | Links 
Header Compression      RFCs | Internet Drafts | PapersCisco | Links 
Books

RTP

RTP provides end-to-end delivery services for data with real-time characteristics, such as interactive audio and video. Those services include payload type identification, sequence numbering, timestamping and delivery monitoring. Applications typically run RTP on top of UDP. RTP supports data transfer to multiple destinations using multicast distribution if provided by the underlying network. RTP itself does not provide any mechanism to ensure timely delivery or provide other quality-of-service guarantees, but relies on lower-layer services to do so.

RFC 3550 defines RTP, consisting of two closely-linked parts: the real-time transport protocol (RTP), to carry data that has real-time properties; the RTP control protocol (RTCP), to monitor the quality of service and to convey information about the participants in an on-going session. RFC 3550 specifies those functions expected to be common across all the applications for which RTP would be appropriate. A complete specification of RTP for a particular application will require one or more companion documents : profile specification document - which defines a set of payload type codes and their mapping to payload formats (e.g., media encodings). payload format specification documents - which define how a particular payload, such as an audio or video encoding, is to be carried in RTP. A profile for audio and video data is specified in RFC 3551.

RTP     A Transport Protocol for Real-Time Applications (RFC 3550)
RTCP  RTP Control Protocol (RFC 3550)

Tutorials        RTP Packet Format  - Network Sorcery

RTP: Multimedia Streaming over IP - RTP Tutorial by Colin Perkins
RTP decoding in Wireshark

RFCs            IANA RTP Parameters        AVT IETF Charter

RFC 3550 A Transport Protocol for Real-Time Applications, RTP
RFC 3551 RTP Profile for Audio and Video Conferences with Minimal Control
RFC 2959 Real-Time Transport Protocol MIB
RFC 3711 The Secure Real Time Transport Protocol, SRTP
RFC 3611 RTP Control Protocol Extended Reports, RTCP XR
RFC 4855 Media Type Registration of RTP Payload Formats

RFC 5577 RTP Payload Format for G.722.1
RFC 5404 RTP Payload Format for G.719
RFC 5391 RTP Payload Format for G.711.1
RFC 4749 RTP Payload Format for the G.729.1
RFC 3389 RTP Payload Format for Comfort Noise, CN
RFC 5109 RTP Payload Format for Generic Forward Error Correction, FEC
RFC 4734 Events for Modem, Fax, and Text Telephony Signals (Obsoletes RFC 2833)
RFC 5244 Events for Channel-Oriented Telephony Signalling

Internet Drafts

Search for the keyword "rtp" in IETF Drafts

FAQs

Dr. Henning Schulzrinne

Implementations

GNU ccRTP C++ library
JRTPLIB C++ Library
ortp RTP C library
SRTP library
GNU ZRTP C++ library
Aricent RTP/RTCP stack (Commercial)
M5T RTP/RTCP stack (Commercial)
Radvision RTP/RTCP stack (Commercial)

Links

RTP links - columbia.edu
Dr. Henning Schulzrinne
Colin Perkins
Jonathan Rosenberg

RTSP

RTSP  Real Time Streaming Protocol (RFC 2326)

Tutorials

Real-Time Streaming Protocol (RTSP) Tutorial by Juha Huuhtanen
Multimedia Over IP: RSVP, RTP, RTCP, RTSP by Chunlei Liu

RFCs        MMUSIC IETF Charter

RFC 2326 Real Time Streaming Protocol (RTSP)     Current Draft

Internet Drafts

Search for the keyword "rtsp" in IETF Drafts

Related protocols

SDP Session Description Protocol (RFC 4566)
SIP   Session Initiation Protocol (RFC 3261)
SAP Session Announcement Protocol (RFC 2974)
Megaco Gateway Control Protocol Version 1 (RFC 3525)

FAQs

Dr. Henning Schulzrinne
rtsp.org

Implementations

List of  RTSP implementations - rtsp.org
Comparison of RTSP implementations - Dr. Henning
vovida.org

Tools

Robust Audio Tool (RAT)
Darwin Streaming Server  
IceCast  
liveCaster  
Sun JMF 2.1.1

Links

Dr.Henning Schulzrinne
rtsp.org

Header Compression

RFCs        IANA ROHC Ids

RFC 1144 Compressing TCP/IP Headers for Low-Speed Serial Links
RFC 2507 IP Header Compression
RFC 2508 Compressing IP/UDP/RTP Headers for Low-Speed Serial Links
RFC 3545 Enhanced Compressed RTP (CRTP) for Links with High Delay, Packet Loss and Reordering
RFC 2509 IP Header Compression over PPP
RFC 3095 RObust Header Compression (ROHC)
RFC 3096 Requirements for robust IP/UDP/RTP header compression
 
FRF .20 Frame Relay IP Header Compression

Internet Drafts

Search for the keyword "crtp" in IETF
Search for the keyword "rohc" in IETF

Papers

Performance of RTP/UDP/IP compression in cellular networks
A Unified Header Compression Framework for Low-Bandwidth Links

Links

Robust Header Compression (rohc) Charter

Cisco

Configuring RTP Header Compression - Cisco
Configuring Link Efficiency Mechanisms (LFI/CRTP) - Cisco


Books

1. RTP: Audio and Video for the Internet by Colin Perkins

2. Internet Communications Using SIP by Henry Sinnreich, Alan B. Johnston

3. SIP Demystified by Gonzalo Camarillo

Maintained by Anil Edathara

Last Modified: December 26, 2009

RTP: Audio and Video for the Internet by Colin Perkins         SIP Demystified by Gonzalo Camarillo

RTP - Commonly used terms

RTP payload The data transported by RTP in a packet, for example audio samples or compressed video data.

RTP packet A data packet consisting of the fixed RTP header, a possibly empty list of contributing sources and the payload data.

RTCP packet A control packet consisting of a fixed header part similar to that of RTP data packets, followed by structured elements that vary depending upon the RTCP packet type.

RTP media type An RTP media type is the collection of payload types which can be carried within a single RTP session. The RTP Profile assigns RTP media types to RTP payload types.

Multimedia session A set of concurrent RTP sessions among a common group of participants. For example, a videoconference may contain an audio RTP session and a video RTP session.

RTP session An association among a set of participants communicating with RTP. A participant may be involved in multiple RTP sessions at the same time. The distinguishing feature of an RTP session is that each maintains a full, separate space of SSRC identifiers.

Synchronization source (SSRC) The source of a stream of RTP packets, identified by a 32-bit numeric SSRC identifier carried in the RTP header so as not to be dependent upon the network address. All packets from a synchronization source form part of the same timing and sequence number space, so a receiver groups packets by synchronization source for playback.

Contributing source (CSRC) A source of a stream of RTP packets that has contributed to the combined stream produced by an RTP mixer.

End system An application that generates the content to be sent in RTP packets and/or consumes the content of received RTP packets.

Mixer An intermediate system that receives RTP packets from one or more sources, possibly changes the data format, combines the packets in some manner and then forwards a new RTP packet.

Translator An intermediate system that forwards RTP packets with their synchronization source identifier intact.

Monitor An application that receives RTCP packets sent by participants in an RTP session, in particular the reception reports, and estimates the current quality of service for distribution monitoring, fault diagnosis and long-term statistics.