RTP: A Transport Protocol for Real-Time Applications John Paul Kalapurakal Ronak Kamdar RFC 3550
Background and Motivation Want to listen to a song? Download Listen online Technical foundation for VoIP
Background and Motivation Quality of Service End to end delivery service Application Specific
Introduction Transmitting real time data RTP & RTCP Protocol What it is? Application level framing Integrated layer processing Deliberately incomplete
The Problem Statement Combination of transport layer and application layer protocols to better applications involving real time data
Key Concepts Independent of underlying layer Supports multicast & unicast Does NOT Resource reservation Guarantee QoS Ensure timely delivery Prevent out of order packets
Example : Simple Multicast Audio Conference
Example : Audio & Video
Mixers Application: Scale images of different people on different streams and compose it into one single stream to simulate a group scene
Translator Application: Connection of a group of hosts speaking only IP/UDP to a group of hosts speaking only ST-II
Mixer vs. Translator The advantage of mixer over translator Better for low-link bandwidth The advantage of translator over mixer For mixer, no control over sources
Layered Encoding with layer transmission Rate Adaptability leads to smallest pipe in the network mesh (Bottleneck)
Definitions Port: Different destinations within one host Transport Address: Network + Port RTP Session: Different pairs of destination transport addresses
More definitions Synchronization Source: Source of a stream of RTP packets Contributing Source: Source of packets that contribute to combined stream.
RTP Data Transfer Protocol Header
Multiplexing RTP sessions Efficient protocol processing requires no. of multiplexing points be minimized Multiplexing is provided by destination transport addresses
Multiplexing RTP sessions Example Audio + Video Should not be carried in a single stream Why? Audio + Audio Multiplexing multiple related sources of the same medium in one RTP session is the norm for multicast How?
RTP Header Extension Profile specific modifications Two options Can define additional fixed fields Additional payload information can be carried in the payload section
RTCP – RTP control protocol Feedback on quality of data distribution Persistent transport level identifier called the canonical name or CNAME Scalability Convey minimal session control information
RTCP Packet Format SR: Sender report RR: Receiver report BYE: Indicated end of participation SDES: Source description with CNAME
RTCP Packet Format Compound RTCP packet Multiple RTCP packets concatenated into one Order not important for processing Must contain RR, SR and CNAME Individual RTP participant must send only one compound RTCP packet per report interval If it exceeds the MTU then use fragmentation
RTCP Transmission Interval Rate at which RTCP packets are sent out RTP is scalable in terms of users It scales linearly with no. of participants Adaptively changes with network traffic
Security Secure Real-Time Transport Protocol Encryption RTCP – random number RTP – sequence number and time stamp Weak DES (Data Encryption Protocol) Stronger encryption needed Additional Payloads
Congestion Control RTP must provide congestion control Different from commonly used transport protocols Defined based on RTP profile
RTP over Network and Transport Protocols RTP relies on the underlying protocols Ports must be: Even for – RTP Odd for – RTCP Suffers from securities liabilities of underlying protocols.
Results
VoIP and Skype Protocols to transport voice signals over IP network Uses secure RTP and RTCP Challenge: Firewalls, Latency and jitter Skype uses a proprietary protocol to route calls through other Skype peers on the network, allowing it to traverse symmetric NATs and firewalls
Critique Does not guarantee QoS Increased security Too detailed Strange location in the protocol stack
Summary and Conclusions Incomplete is good! Achieves the goal of better facilitating real time data transfer Questions?