voipstudios

You are here: VOIP Information Protocol Real-time Transport Protocol

Real-time Transport Protocol

Introduction

Real-time Transport Protocol is an Internet Protocol that specifies a format for transmitting audio and video data over the internet. It was developed by the IETF’s, Audio Video Transport Working Group and was first published as RFC 1889 in the year 1996. Real-time Transport Protocol (RTP) provides uninterrupted data delivery services with real-time characteristics over an Internal Protocol Network.

It is used widely in communication systems, which involve streaming media like Push to talk, video conference and IP telephony features. RTP carries media streams which are controlled by MGCP (Media Gateway Control Protocol), SIP (Session Initiation Protocol) signaling protocols or H.323 protocol.

RTP is also used in conjunction with RTCP (Real Time Control Protocol). It supports data transfer to a group of destinations through multicast (also referred as IP multicast, which delivers information to multiple destinations). RTP provides monitoring service to detect if there is any packet loss and facility for jitter (time variation of a periodic signal in telecommunications) compensation.

Sub-Protocol or Components

Majority of the RTP implementations are built on the UDP (User Datagram Protocol). RTP describes two protocols –

1. Real Time Control Protocol (RTCP) – It is used to specify synchronization with media streams and to monitor QoS (Quality of Service) information. The bandwidth used by RTCP is around 5% compared to RTP.
2. Data Transfer Protocol – It is used to monitor data transmission in large multicast networks. Information provided by Data Transfer Protocol includes payload identification (to describe media encoding), sequence numbers (to detect packet loss) and timestamps (for synchronization).

Architecture

The architectural design of RTP is based on the principle known as Application Level Framing (ALF). One of the design considerations of the Real Time Protocol is to support various multimedia formats (like MPEG, MPEG-4, MJPEG, H.264, etc.) and allow new formats to be added without altering the RTP standard. Information required by a specific application is specified by RTP Profiles and Payload formats. An RTP profile defines the codecs which are required to encode a payload data (video or audio). Some of the video payload formats include MPEG, MPEG-4, H.261, H.263, etc. and audio payload formats include DTMF, MP3, GSM, G.723, G.726, G.729, etc.

Session

For transmission of each multimedia stream, an RTP session is established. This session consists of an IP address and a port number for RTCP and RTP. These port numbers are negotiated with other protocols such as SIP (Session Initiation Protocol) or RTSP (Real Time Streaming Protocol), RTCP and RTP use UDP port number from 1024 to 65535. According to specifications, the Real Time protocol port should be even and the RTCP port should be the next higher odd port number.

Packet header or Protocol Structure

RTP header or packet header has a minimum size of 12 bytes. The fields in the header are –

• V (Version) – The size of this RTP header field is 2 bits. It is used to indicate the version of the protocol.
• P (Padding) – The size of this packet header field is 1 bit. It is used to indicate that the packet contains one or more additional padding octets at the end.
• X (Extension) – The size of this header field is 1 bit. It indicates the presence of an Extension header between payload data and standard header.
• CS (CSRC count) – It occupies 4 bits in the RTP header field. It includes the number of CSRC identifiers, which follow the fixed header.
• M (Marker) – It occupies 1 bit in the packet header field. It is intended to allow events to be marked in the packet stream.
• PT (Payload Type) – Payload occupies 7 bits in the RTP header field. It indicates the format of payload data.
• Sequence Number – The size of this RTP header field is 16 bits. Whenever the RTP packet data is sent, it is incremented by one and is used by the receiver to detect packet loss.
• Timestamp – It occupies 32 bits in the RTP header field. It is used by the receiver to play back the received samples at proper intervals.
• SSRC (Synchronization source) – The size of this header field is 32 bits. It is used to identify the source of the stream.
• CSRC (Contributing source identifier) – It is used to identify the contributing sources for the payload in the packet.

RFCs

RFCs (Request for Comments) related to Real-time Transport Protocol is –

• RFC 4103 – It contains the information on RTP Payload Format for Text Conversion.
• RFC 3984 – It contains the information on RTP Payload Format for H.264 Video.
• RFC 3640 – It contains the information on RTP Payload Format for Transport of MPEG-4 Elementary Streams.
• RFC 3016 – It contains the information on RTP Payload Format for MPEG-4 Audio/Visual Streams.
• RFC 3551 – Standard 65, It contains the information on RTP Profile for Audio and Video Conferences with Minimal Control.
• RFC 3550 – Standard 64, It contains the information on RTP for Real-Time Applications.
• RFC 2250 – Proposed Standard, It contains the information on RTP Payload Format for MPEG1/MPEG2 Video.