41
RTP/RTCP/RTSP Real-Time Protocols Amit Hetawal University of Delaware CISC 856 -Fall 2005 Thanks to Professor Amer

RTP/RTCP (ppt)

  • Upload
    ronny72

  • View
    11.492

  • Download
    3

Embed Size (px)

Citation preview

Page 1: RTP/RTCP (ppt)

RTP/RTCP/RTSP

Real-Time Protocols

Amit Hetawal

University of Delaware

CISC 856 -Fall 2005

Thanks to Professor Amer

Page 2: RTP/RTCP (ppt)

Overview

• History of streaming media• Streaming performance requirements• Protocol stack for multimedia services• Real-time transport protocol (RTP)• RTP control protocol (RTCP)• Real-time streaming protocol (RTSP)

Page 3: RTP/RTCP (ppt)

Brief history of streaming media

Page 4: RTP/RTCP (ppt)

Real-time multimedia streaming• Real-time multimedia applications

– Video teleconferencing– Internet Telephony (VoIP)– Internet audio, video streaming

(A-PDUs)

Page 5: RTP/RTCP (ppt)

Streaming performance requirements– Sequencing

– to report PDU loss – to report PDU reordering – to perform out-of-order decoding

– Time stamping and Buffering – for play out– for jitter and delay calculation

– Payload type identification– for media interpretation

– Error concealment –covers up errors from lost PDU by using redundancy in most-adjacent-frame

– Quality of Service (QoS) feedback – from receiver to sender for operation adjustment

– Rate control –sender reduces sending rate adaptively to network congestion

Page 6: RTP/RTCP (ppt)

Ideal Timing – no jitter

00.00.00

00.00.10

00.00.20

00.00.30

00.00.11

00.00.21

00.00.31

Send time

Play time

30 s

eco

nds

First RTP-PDU

Second RTP-PDU

Third RTP-PDU

application

Page 7: RTP/RTCP (ppt)

Reality – jitter

00.00.00

00.00.10

00.00.20

00.00.30

00.00.11

Send time

Play time

00.00.21

00.00.25

00.00.35

00.00.37

00.00.47

delay

First RTP-PDU

Second RTP-PDU

Third RTP-PDU 00.00.40

Fourth RTP-PDU 00.00.41

00.00.51

Page 8: RTP/RTCP (ppt)

Jitter (contd.)

00.00.00

00.00.10

00.00.20

00.00.30

00.00.11

Send time

Play time

00.00.21

00.00.25

00.00.3500.00.37

00.00.47

First RTP-PDU(0)

Second RTP-PDU(10)

Third RTP-PDU(20) 00.00.40

Fourth RTP-PDU (30) 00.00.41

00.00.51

00.00.18

00.00.28

00.00.38

00.00.48

00.00.58

Page 9: RTP/RTCP (ppt)

Jitter (contd.)

Playback bufferAt time 00:00:18

At time 00:00:28

At time 00:00:38

Page 10: RTP/RTCP (ppt)

How does Sequence number and Timestamp help ?

Audio silence example:

Solution:

– After receiving no PDUs for a while, next PDU received at the receiver will reflect a big jump in timestamp, but have the correct next seq. no. Thus, receiver knows what happened.

– Why might this cause problems? sen

der

rece

iver

silence

Seq no.1, Tmpst 100Seq no.2, Tmpst 200Seq no.3, Tmpst 300

Seq no.4, Tmpst 600Seq no.5, Tmpst 700

• Consider audio data– What should the sender do during silence?

• Not send anything

• Receiver cannot distinguish between loss and silence

Page 11: RTP/RTCP (ppt)

Streaming performance requirements– Sequencing

– to report PDU loss – to report PDU reordering – to perform out-of-order decoding

– Time stamping and Buffering – for play out– for jitter and delay calculation

– Payload type identification– for media interpretation

– Error concealment –covers up errors from lost PDU by using redundancy in most-adjacent-frame

– Quality of Service (QoS) feedback – from receiver to sender for operation adjustment

– Rate control –sender reduces sending rate adaptively to network congestion

Page 12: RTP/RTCP (ppt)

TCP is not used because:• TCP does retransmissions unbounded delays• No provision for time stamping• TCP does not support multicast• TCP congestion control (slow-start) unsuitable for real-time transport

RTP + UDP usually used for multimedia services

Support from transport layers

Page 13: RTP/RTCP (ppt)

TCP(till now)

RTSP

Protocol stack for multimedia services

RTP RTCP

Page 14: RTP/RTCP (ppt)

RTP: Introduction• Provides end-to-end transport functions for real-time

applications– Supports different payload types

• All RTP and RTCP PDUs are sent to same multicast group (by all participants)

• All RTP PDUs sent to an even-numbered UDP port, 2p

• All RTCP PDUs sent to UDP port 2p+1

• Does NOT provide timely delivery or other QoS guarantees– Relies on other protocols like RTCP and lower layers

• Does NOT assume the underlying network is reliable and delivers PDUs in sequence– Uses sequence number

RTP RTCP

Application

UDP

IP

Data Link

Physical

Transport

layer

Page 15: RTP/RTCP (ppt)

RTP Session

RTP session is sending and receiving of RTP data by a group of participants

For each participant, a session is a pair of transport addresses used to communicate with the group

If multiple media types are communicated by the group, the transmission of each medium constitutes a session.

Page 16: RTP/RTCP (ppt)

RTP Synchronization Source

synchronization source - each source of RTP PDUs

Identified by a unique,randomly chosen 32-bit ID (the SSRC)

A host generating multiple streams within a single RTP must use a different SSRC per stream

Page 17: RTP/RTCP (ppt)

RTP Basics of Data Transmission

RTP PDUs

Page 18: RTP/RTCP (ppt)

RTP PDU HeaderIncremented by one for each RTP PDU:

• PDU loss detection•Restore PDU sequence

Sampling instant of first data octet• multiple PDUs can have same timestamp• not necessarily monotonic• used to synchronize different

media streams

Payload type

Identifies synchronization source

(used by mixers)Identifies contributing sources

Page 19: RTP/RTCP (ppt)

MixerRTP mixer - an intermediate system that receives & combines RTP PDUs of one or more RTP sessions into a new RTP PDU

• Stream may be transcoded, special effects may be performed.

• A mixer will typically have to define synchronization relationships between streams.Thus…

Sources that are mixed together become contributing sources (CSRC)

Mixer itself appears as a new source having a new SSRC

Page 20: RTP/RTCP (ppt)

Translator

• An intermediate system that…

Connects two or more networks

Multicasting through a firewall

Modifies stream encoding, changing the stream’s timing

Transparent to participants

SSRC’s remain intact

end system 1

end system 2

transl.1from ES1: SSRC=6

from ES2: SSRC=23transl.2

from ES2: SSRC=23from ES1: SSRC=6

authorized tunnel

firewallfrom ES2: SSRC=23from ES1: SSRC=6

Page 21: RTP/RTCP (ppt)

RTP Control Protocol (RTCP) RTCP specifies report PDUs exchanged between sources and destinations of multimedia information

receiver reception report

sender report

source description report

Reports contain statistics such as the number of RTP-PDUs sent, number of RTP-PDUs lost, inter-arrival jitter

Used by application to modify sender transmission rates and for diagnostics purposes

Page 22: RTP/RTCP (ppt)

RTCP message types

Typically, several RTCP PDUs of different types are transmitted in a single UDP PDU

Page 23: RTP/RTCP (ppt)

… …

Last SR (LSR)

Extended Highest sequence Number Received

Interarrival Jitter

Cumulative Number of PDU LostFraction Lost

SSRC_1 (SSRC of the 1st Source)

Profile-Specific Extensions

SSRC_2 (SSRC of the 2nd Source)

Delay Since Last SR (DLSR)

SSRC of Sender

Length (16 bits)PT=200/201 SR/RRRCPV

Sender Info

RTP Timestamp

Sender’s PDU Count

NTP Timestamp, most significant word

NTP Timestamp, least significant word

Sender’s Octet Count

Header

Report Block 1

Report Block 2

Sender/Receiver report PDUs

Page 24: RTP/RTCP (ppt)

Ethereal capture for RTP-PDU

Basic header

Page 25: RTP/RTCP (ppt)

Ethereal capture for RTCP-PDU

header of SR report

sender info

receiver report block

SDES items

Page 26: RTP/RTCP (ppt)

• Timestamps in RTP PDUs are tied to the individual video and audio sampling clocks timestamps are not tied to the wall-clock time, or each other!

Synchronization of streams using RTCP

• Each RTCP sender-report PDU contains (for most recently generated PDU in associated RTP stream):

The timestamp of RTP PDU The wall-clock time for when PDU was created

• Receivers can use this association to synchronize the playout of audio and video

Internetwork

RTP audio

RTCP audio

RTP video

RTP video

Page 27: RTP/RTCP (ppt)

RTCP bandwidth scaling

Solution• RTCP attempts to limit its

traffic to 5% of the session bandwidth to ensure it can scale!

• RTCP gives 75% of this rate to the receivers; and the remaining 25% to the sender.

Example • Suppose one sender, sending

video at a rate of 2 Mbps. Then RTCP attempts to limit its traffic to 100 Kbps.

• The 75 kbps is equally shared among receivers: – With R receivers, each

receiver gets to send RTCP traffic at 75/R kbps.

• Sender gets to send RTCP traffic at 25 kbps.

Problem• What happens when there is one sender and many receivers? RTCP reports scale linearly with the number of participants and would match or exceed the amount of RTP data! More overhead than useful data!

Page 28: RTP/RTCP (ppt)

Real-Time Streaming Protocol (RTSP)

• Application layer protocol (default port 554)• Usually runs on RTP for stream & TCP for control• Provides the control channel• Uses out-of-band signaling• Usable for Live broadcasts / multicast

Also known as “Network remote control” for multi-media servers.

Page 29: RTP/RTCP (ppt)

web browser

media player

Web Server

Web Server/Media server

RTSP Overview

RTSPpres. desc,streaming commands

RTP/RTCPaudio/video content

Presentation

descriptor

HTTPpresentation descriptor

Page 30: RTP/RTCP (ppt)

RTSP Methods

OPTIONSC S

determine capabilities of server/clientC S

DESCRIBE C S get description of media stream

ANNOUNCE C S announce new session description

SETUP C S create media session

RECORD C S start media recording

PLAY C S start media delivery

PAUSE C S pause media delivery

REDIRECT C S redirection to another server

TEARDOWN C S immediate teardown

SET_PARAMETER C S change server/client parameter

GET_PARAMETER C S read server/client parameter

Page 31: RTP/RTCP (ppt)

RTSP Session

media server

RTSPserver

datasource

media player

AVsubsyste

m

RTSPclient

RTSP OK

RTSP PLAY

RTSP OK

RTP AUDIO

RTP VIDEO

RTSP TEARDOWNRTSP OK

get UDP portchooseUDP port

RTSP SETUP

Default port 554

RTCP

TCP

UDP

Page 32: RTP/RTCP (ppt)

Example:Media on demand (Unicast)

Media server A

audio.example.com

Media server V

video.example.com

Web server W

-holds the media descriptors

Client C

Page 33: RTP/RTCP (ppt)

RTSP Message sequence

C

W

V

A

C->V : SETUP rtsp://video.example.com/twister/video.en RTSP/1.0

Cseq:1

Transport : RTP/AVP/UDP;unicast;client_port=3058-3059

A-> C : RTSP/1.0 200 OK

Cseq:1

Session: 23456789

Transport : RTP/AVP/UDP;unicast;client_port=3058-3059

server_port=5002-5003

C -> W : GET/Twister.sdp HTTP/1.1

Host: www.example.com

Accept: application/sdp

W-> C : HTTP/1.0 200 OK

Content-Type: application/sdp

C-> A : SETUP rtsp://audio.example.com/twister/audio.en RTSP/1.0

Cseq:1

Transport : RTP/AVP/UDP;unicast;client_port=3056-3057

A-> C : RTSP/1.0 200 OK

Cseq:1

Session: 12345678

Transport : RTP/AVP/UDP;unicast;client_port=3056-3057

server_port=5000-5001

Page 34: RTP/RTCP (ppt)

RTSP Message sequence (contd.)

C

W

V

A

C->V: PLAY rtsp://video.example.com/twister/video RTSP/1.0

Cseq: 2

Session: 23456789

V->C: RTSP/1.0 200 OK

Cseq: 2

Session: 23456789

RTP-Info: url=rtsp://video.example.com/twister/video;

seq=12312232;

C->A: PLAY rtsp://audio.example.com/twister/audio.en RTSP/1.0

Cseq: 2

Session: 12345678

A->C: RTSP/1.0 200 OK

Cseq: 2

Session: 12345678

RTP-Info: url=rtsp://audio.example.com/twister/audio.en;

seq=876655;

Page 35: RTP/RTCP (ppt)

RTSP Message sequence (contd.)

C

W

V

A

C->A: TEARDOWN rtsp://audio.example.com/twister/audio.en RTSP/1.0

Cseq: 3

Session: 12345678

A->C: RTSP/1.0 200 OK

Cseq: 3

C->V: TEARDOWN rtsp://video.example.com/twister/video RTSP/1.0

Cseq: 3

Session: 23456789

V->C: RTSP/1.0 200 OK

Cseq: 3

Page 36: RTP/RTCP (ppt)

References

[1] B. A. Forouzan, “TCP/IP Protocol Suite”, Third edition, [2] H. Schulzrinne, S. Casner, R. Frederick and V. Jacobson, "RTP: a transport protocol for real-time applications", RFC 3550, July 2003.

[3] H. Schulzrinne, A. Rao and R. Lanphier, "Real Time Streaming Protocol (RTSP)", RFC 2326, April 1998.

Page 37: RTP/RTCP (ppt)

RTCP compound PDU

SRsenderreport

receiverreport

receiverreportSS

RC

SS

RC

SS

RC

source 2 source 3

RTCP PDU 1

SDES CNAME PHONE

SS

RC

RTCP PDU 2

compound PDU(single UDP datagram)

Page 38: RTP/RTCP (ppt)

Example

source 1 reports, there are 2 other sources

SRsenderreport

receiverreport

receiverreportS

SR

C

SS

RC

SS

RC

source 2 source 3

RTCP PDU

Page 39: RTP/RTCP (ppt)

RTCP processing in Translators

• SR sender information : Does not generate their own sender information(most of the times), but forwards the SR PDUs received from one side to other

• RR reception report blocks : Does not generate their own RR reports (most of the times), but forwards RR reports received from one side to another. SSRC are left intact

• SDES : Forwards without changing the SDES info. but may filter non CNAME SDES, if bandwidth is limited

• BYE : Forwards BYE PDU unchanged. A translator about to cease forwarding, send a BYE PDU to each connected nodes

Page 40: RTP/RTCP (ppt)

RTCP processing in Mixers• SR sender information : Generates its own SR info. Because the characteristics of source stream is lost in the mix. The SR info is sent in same direction as the mixed stream

• RR reception report blocks : Generates its own reports for sources in each cloud and sends them only to same cloud

• SDES : Forwards without changing the SDES info. but may filter non CNAME SDES, if bandwidth is limited

• BYE : Forwards BYE PDU unchanged. A mixer about to cease forwarding, send a BYE PDU to each connected nodes

Page 41: RTP/RTCP (ppt)

Source description PDUsMay contain:

– a CNAME item (canonical identifier/name) – a NAME item (real user name) – an EMAIL item – a PHONE item – a LOC item (geographic location) – a TOOL item (application name) – a NOTE item (transient msg, e.g. for status) – a PRIV item (private extension)

Value

1

2

3

4

5

6

7

8

CNAME=1 length user and domain name