real-time transport protocol kun-ta lee 2004.5.21 national taipei university of technology
Post on 21-Dec-2015
212 views
TRANSCRIPT
Real-time Real-time Transport Transport ProtocolProtocol
Kun-Ta LeeKun-Ta Lee2004.5.21 2004.5.21
National Taipei University of TechnoloNational Taipei University of Technologygy
OutlineOutline IntroductionIntroduction DefinitionsDefinitions RTP RTP RTCP RTCP Translators and MixersTranslators and Mixers SSRC Identifier Allocation and UseSSRC Identifier Allocation and Use SecuritySecurity Summary of Protocol ConstantsSummary of Protocol Constants ReferenceReference
Introduction (1)Introduction (1) provides one-to-one or one-to-may delivery seprovides one-to-one or one-to-may delivery se
rvices for data whit real-time characteristicsrvices for data whit real-time characteristics does not guarantee delivery or prevent out-of-does not guarantee delivery or prevent out-of-
order deliveryorder delivery receiver allow to reconstruct the sender’s pareceiver allow to reconstruct the sender’s pa
cket sequencecket sequence RTPRTP is primarily designed to satisfy the needs is primarily designed to satisfy the needs
of multi-participant applicationof multi-participant application RTP RTP control protocol control protocol (RTCP)(RTCP), to monitor the , to monitor the
quality of service and to convey information aquality of service and to convey information about the participants in an on-going sessionbout the participants in an on-going session
Introduction (2)Introduction (2) RTP Use ScenariosRTP Use Scenarios
Simple Multicast Audio ConferenceSimple Multicast Audio Conference can change the encoding during a conferencecan change the encoding during a conference allow the receivers to reconstruct the timing produced by allow the receivers to reconstruct the timing produced by
the sourcethe source to know who is participating and how well they are to know who is participating and how well they are
receiving the audio datareceiving the audio data sends the RTCP packet when it leaves the conferencesends the RTCP packet when it leaves the conference
Audio and Video ConferenceAudio and Video Conference no direct coupling at the RTP level between audio and videono direct coupling at the RTP level between audio and video participant can choose only one medium in the conferenceparticipant can choose only one medium in the conference using timing information carried in the RTCP packets can using timing information carried in the RTCP packets can
be achieved synchronization for audio and video sessionbe achieved synchronization for audio and video session
Introduction (3)Introduction (3)
Mixers and TranslatorsMixers and Translators Mixer (RTP-level relay): mixes reconstructed aMixer (RTP-level relay): mixes reconstructed a
udio streams into a single stream and translateudio streams into a single stream and translates the audio encoding to a lower-bandwidth ons the audio encoding to a lower-bandwidth one and forwards he lower-bandwidth packet stre and forwards he lower-bandwidth packet stream across the low-speed link.eam across the low-speed link.
Translator (RTP-level realy): translates differeTranslator (RTP-level realy): translates different formatnt format
Translator out-sideTranslator in-side Firewall
Definitions (1)Definitions (1)
RTP payload: the data transported by RTP payload: the data transported by RTP in a packetRTP in a packet
RTP packet: a data packet consisting of RTP packet: a data packet consisting of the fixed RTP headerthe fixed RTP header
RTCP packet: a control packet RTCP packet: a control packet consisting of a fixed header part similar consisting of a fixed header part similar to that o RTP data packet, followed by to that o RTP data packet, followed by structured elements that vary structured elements that vary depending upon the RTCP packet typedepending upon the RTCP packet type
Definitions (2)Definitions (2)application
mediaencapsulation
RTP RTCP
Source port + Dstination port + Message length + Checksum + UDP DataUDP
IPv4/IPv6
EthernetAAL5
ATM
Definitions (3)Definitions (3) Port: transport layer UDP portPort: transport layer UDP port Transport address: an IP address and a UDP port, packets are Transport address: an IP address and a UDP port, packets are
transmitted from a source transport address to a destination transmitted from a source transport address to a destination transport addresstransport address
RTP SessionRTP Session the session is defined by a particular pair of destination transport the session is defined by a particular pair of destination transport
addresses (one network address plus a port pair for RTP and RTCP)addresses (one network address plus a port pair for RTP and RTCP) in a multimedia session, each medium is carried in a separate RTP in a multimedia session, each medium is carried in a separate RTP
session with its own RTCP packets.session with its own RTCP packets. Synchronization source (SSRC)Synchronization source (SSRC)
the source of s stream of RTP packetsthe source of s stream of RTP packets 32-bit numeric 32-bit numeric randomly chosen, uniquerandomly chosen, unique not use the same SSRC identifier for all the RTP sessions in a not use the same SSRC identifier for all the RTP sessions in a
multimedia sessionmultimedia session binding of the SSRC identifiers is provided through RTCPbinding of the SSRC identifiers is provided through RTCP
Contributing source (CSRC): the source of a stream of RTP Contributing source (CSRC): the source of a stream of RTP packets that has contributed to the combined stream produced by packets that has contributed to the combined stream produced by an RTP mixeran RTP mixer
Definitions (4)Definitions (4) End system: generates the content to be sent in RTP packEnd system: generates the content to be sent in RTP pack
ets and/or consumes the content of received RTP packetsets and/or consumes the content of received RTP packets MixerMixer
receives RTP packet from one or more sourcereceives RTP packet from one or more source possibly changes the data formatpossibly changes the data format combines the packets in some manner and forwards a new RTP pcombines the packets in some manner and forwards a new RTP p
acketacket generate its own timing for the combined streamgenerate its own timing for the combined stream new packets that from a mixer will be identified as having the minew packets that from a mixer will be identified as having the mi
xer as their synchronization source xer as their synchronization source TranslatorTranslator
forwards RTP packets with their synchronization source identifieforwards RTP packets with their synchronization source identifier intactr intact
convert encodings without mixingconvert encodings without mixing replicate from multicast to unicastreplicate from multicast to unicast
Definitions (5)Definitions (5)
end systemSSRC=17
end systemSSRC=39
192.35.149.52
128.119.40.186
DVI4
L16
translator192.26.8.84
GSM
GSM (Group Speciale Mobile)Mixer
SSRC=5
192.20.225.101
SSRC=5
CSRC=17 39
Definitions (6)Definitions (6) MonitorMonitor
An application, that receives RTCP packets An application, that receives RTCP packets (reception report) sent by participants in an RTP (reception report) sent by participants in an RTP sessionsession
estimates the current quality of service, fault estimates the current quality of service, fault diagnosis and long-term statisticsdiagnosis and long-term statistics
Non-RTP meansNon-RTP means in addition to RTP to provide a usable servicein addition to RTP to provide a usable service example: negotiate the encryption algorithm, example: negotiate the encryption algorithm,
define dynamic mappings between RTP payload define dynamic mappings between RTP payload type values and payload formats they represent for type values and payload formats they represent for formats that do not have a predefined payload type formats that do not have a predefined payload type valuevalue
Simple applications, electronic mail or a Simple applications, electronic mail or a conference database may also be usedconference database may also be used
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
RTP Packet (1)RTP Packet (1)
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
first twelve octets are present in every RTP hacketfirst twelve octets are present in every RTP hacket the list of CSRC identifiers is present only when inserted by a the list of CSRC identifiers is present only when inserted by a
mixmix
version (V): 2 bitsversion (V): 2 bits V=0 → “avt” audio tool. ; V=1 → first draft version of RTPV=0 → “avt” audio tool. ; V=1 → first draft version of RTP
padding (P): 1 bitpadding (P): 1 bit the last octet of the padding contains a count of how many padding octets should be ignoredthe last octet of the padding contains a count of how many padding octets should be ignored
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
RTP Packet (2)RTP Packet (2)
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
extension (X): 1 bitextension (X): 1 bit if the extension bit is set, the fixed header is followed if the extension bit is set, the fixed header is followed
by exactly one header extensionby exactly one header extension
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
RTP Packet (3)RTP Packet (3)
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
CSRC count (CC): 4 bitsCSRC count (CC): 4 bits the CSRC count contains the number of CSRC identifiers that follow the fix headerthe CSRC count contains the number of CSRC identifiers that follow the fix header
Maker (M): 1 bitMaker (M): 1 bit intended to allow significant events such as frame boundaries to be marked in the packet intended to allow significant events such as frame boundaries to be marked in the packet
streamstream
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
RTP Packet (4)RTP Packet (4)
payload type (PT): 7 bitspayload type (PT): 7 bits identifies the format of the RTP payload and determines its interpretation by the applicatidentifies the format of the RTP payload and determines its interpretation by the applicat
ionion Default mappings for audio and video is specified in the companion profile Internet-DrafDefault mappings for audio and video is specified in the companion profile Internet-Draf
t draft-ietf-avt-profilet draft-ietf-avt-profile
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
RTP Packet (5)RTP Packet (5)
sequence number : 16 bitssequence number : 16 bits increments by one for each RTP data packet sentincrements by one for each RTP data packet sent used by the receiver to detect packet loss and to restore packet used by the receiver to detect packet loss and to restore packet
sequencesequence
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
RTP Packet (6)RTP Packet (6)
timestamp : 32 bitstimestamp : 32 bits timestamp reflects the sampling instant of the first timestamp reflects the sampling instant of the first
octet in the RTP data packetoctet in the RTP data packet
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
RTP Packet (7)RTP Packet (7)
SSRC : 32 bitsSSRC : 32 bits identifies the synchronization sourceidentifies the synchronization source this identifier is chosen randomlythis identifier is chosen randomly all RTP implementations must be prepared to detect and resolve collisionsall RTP implementations must be prepared to detect and resolve collisions
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
RTP Packet (8)RTP Packet (8)
CSRC list: 0 to 15 itemse, 32 bits eachCSRC list: 0 to 15 itemse, 32 bits each the CSRC list identifies the contributing source for the payload contained in this packetthe CSRC list identifies the contributing source for the payload contained in this packet if there are more than 15 contributing sources, only 15 may be identifiedif there are more than 15 contributing sources, only 15 may be identified inserted by mixerinserted by mixer
0x00
payload (audio, video, …)
header extension
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.op
t.
80 16 24 32
UD
P
packet
RTP Packet (9)RTP Packet (9)
0x00
payload (audio, video, …)
op
t.
header extension
defined by profile length
header extensionheader extension the first 16 bits of header extension are left open for distinguishing the first 16 bits of header extension are left open for distinguishing
identifiers or parametersidentifiers or parameters 16-bit length field that counts the number of 32-bit words in the extension16-bit length field that counts the number of 32-bit words in the extension
RTP Packet (10)RTP Packet (10)
contributing source identifier (CSRC)
synchronization source identifier (SSRC)
timestamp
V2 P XCSRCcount
M payload type sequence number
op
t.op
t.
80 16 24 32
UD
P
packet
RTCP FunctionsRTCP Functions provide feedback on the quality of the data distributionprovide feedback on the quality of the data distribution
this feedback function is performed by the RTCP sender and this feedback function is performed by the RTCP sender and receiver reportsreceiver reports
RTCP carries a persistent transport-level identifier for RTCP carries a persistent transport-level identifier for an RTP source called the canonical name or CNAMEan RTP source called the canonical name or CNAME SSRC identifier may change if a conflict is discovered or a SSRC identifier may change if a conflict is discovered or a
program is restartedprogram is restarted receivers require the CNAME to keep track of each participantreceivers require the CNAME to keep track of each participant receivers require the CNAME to associate multiple data receivers require the CNAME to associate multiple data
stream for a given participant in a set of related RTP sessionsstream for a given participant in a set of related RTP sessions each participant send its control packets to all the each participant send its control packets to all the
others, each can independently observe the number of others, each can independently observe the number of participantsparticipants
convey minimal session control informationconvey minimal session control information for example participant identification to be displayed in the for example participant identification to be displayed in the
user interfaceuser interface
RTCP Packet FormatRTCP Packet Format
SR: sender report, for transmission SR: sender report, for transmission and reception statistics from and reception statistics from participants that are active sendersparticipants that are active senders
RR: receiver report, for reception RR: receiver report, for reception statistics from participants that are statistics from participants that are not active sendersnot active senders
SDES: source description items, SDES: source description items, including CNAMEincluding CNAME
BYE: indicates end of participationBYE: indicates end of participation APP: application specific functionsAPP: application specific functions
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR(first section - header)(first section - header)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
version (V): 2 bitsversion (V): 2 bits V=0 → “avt” audio tool. ; V=1 → first draft version of RTPV=0 → “avt” audio tool. ; V=1 → first draft version of RTP
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (first section - header) (first section - header)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
padding (P): 1 bitpadding (P): 1 bit the last octet of the padding contains a count of how many padding octets should be the last octet of the padding contains a count of how many padding octets should be
ignoredignored In a compound RTCP packet, padding should only be required on the last individual In a compound RTCP packet, padding should only be required on the last individual
packetpacket
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (first section - header) (first section - header)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
reception report count (RC): 5 bitsreception report count (RC): 5 bits the number of reception report blocks contained in this the number of reception report blocks contained in this
packetpacket
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (first section - header) (first section - header)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
packet type (PT): 8 bitspacket type (PT): 8 bits the constant 200 to identify this as an SR packetthe constant 200 to identify this as an SR packet
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (first section - header) (first section - header)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
length: 16 bitslength: 16 bits including the header and any paddingincluding the header and any padding 1 unit = 32-bit1 unit = 32-bit
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (first section - header) (first section - header)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
SSRC: 32 bitsSSRC: 32 bits synchronization source identifier for the originator of synchronization source identifier for the originator of
this SR packetthis SR packet
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (second section – sender (second section – sender
info)info)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
NTP timestamp: 64 bitsNTP timestamp: 64 bits indicates the wallclock time when this report was sentindicates the wallclock time when this report was sent
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (second section – sender (second section – sender
info)info)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
RTP timestamp: 32 bitsRTP timestamp: 32 bits
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (second section – sender (second section – sender
info)info)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
sender’s packer count: 32 bitssender’s packer count: 32 bits total number of RTP data packets transmitted by the sender since total number of RTP data packets transmitted by the sender since
starting transmission up until the time this SR packet was starting transmission up until the time this SR packet was generatedgenerated
profile-specific extensions
...
SSRC_2 (SSRC of first source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (second section – sender (second section – sender
info)info)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
sender’s octet count: 32 bitssender’s octet count: 32 bits total number of payload octets (not including header or padding) total number of payload octets (not including header or padding)
transmitted in RTP data packets by the sender since starting transmitted in RTP data packets by the sender since starting transmission up until the time this SR packet was generatedtransmission up until the time this SR packet was generated
RTCP Packet - SRRTCP Packet - SR (third section – reception report (third section – reception report
blocks)blocks) contains 0 ~ more reception report contains 0 ~ more reception report
blocks depending on the number of other blocks depending on the number of other source heard by this sender since the source heard by this sender since the last reportlast report
conveys statistics on the reception of conveys statistics on the reception of RTP packets from a single RTP packets from a single synchronization sourcesynchronization source
receivers do not carry over statistics receivers do not carry over statistics when a source changes its SSRC when a source changes its SSRC identifier due to a collisionidentifier due to a collision
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (third section – reception report (third section – reception report
blocks)blocks)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
SSRC_n (source identifier): 32 bitsSSRC_n (source identifier): 32 bits the source’s SSRC to which the information in this receptithe source’s SSRC to which the information in this recepti
on report block pertainson report block pertains
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (third section – reception report (third section – reception report
blocks)blocks)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
fraction lost: 8 bitsfraction lost: 8 bits the fraction of RTP data packets from source SSRC_n lost sithe fraction of RTP data packets from source SSRC_n lost si
nce the previous SR or RR packet was sentnce the previous SR or RR packet was sent
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (third section – reception report (third section – reception report
blocks)blocks)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
cumulative number of packers lost: 24 bitscumulative number of packers lost: 24 bits the total number of RTP data packets from source SSRC_n tthe total number of RTP data packets from source SSRC_n t
hat have been lost since the beginning of receptionhat have been lost since the beginning of reception
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (third section – reception report (third section – reception report
blocks)blocks)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
extended highest sequence number received: 32 bitsextended highest sequence number received: 32 bits the low 16 bits contain highest sequence number received in an RTP data packer from the low 16 bits contain highest sequence number received in an RTP data packer from
source SSRC_nsource SSRC_n the most significant 16 bits extend that sequence number with the corresponding counthe most significant 16 bits extend that sequence number with the corresponding coun
t of sequence number cyclest of sequence number cycles
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (third section – reception report (third section – reception report
blocks)blocks)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
Interarrival jitter: 32 bitsInterarrival jitter: 32 bits an estimate of the statistical variance of the RTP data packean estimate of the statistical variance of the RTP data packe
r interarrival timer interarrival time
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (third section – reception report (third section – reception report
blocks)blocks)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
Last SR timestamp (LSR): 32 bitsLast SR timestamp (LSR): 32 bits the middle 32 bits out of 64 in the NTP timestamp received as part of the mthe middle 32 bits out of 64 in the NTP timestamp received as part of the m
ost recent RTCP sender report packer form source SSRC_nost recent RTCP sender report packer form source SSRC_n if no SR has been received yet, the field is set to zeroif no SR has been received yet, the field is set to zero
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (third section – reception report (third section – reception report
blocks)blocks)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
Delay since last SR (DLSR): 32 bitsDelay since last SR (DLSR): 32 bits the delay, between receiving the last SR packer form source SSRC_N and sthe delay, between receiving the last SR packer form source SSRC_N and s
ending this reception report blockending this reception report block if no SR has been received yet from SSRC_n, the field is set to zeroif no SR has been received yet from SSRC_n, the field is set to zero
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)sender’s octet count
sender’s packet countRTP tiemstamp
RTCP Packet - SRRTCP Packet - SR (fourth section – extensions (fourth section – extensions
blocks)blocks)
NTP timestamp, least significant wordNTP timestamp, most significant word
SSRC of senderV2 P RC PT=SR=200 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
senderinfo
profile-specific extensionsprofile-specific extensions if there is additional information that should be if there is additional information that should be
reported regularly about the sender or receiversreported regularly about the sender or receivers
profile-specific extensions
...
SSRC_2 (SSRC of second source)Delay since last SR(DLSR)
last SR (LSR)interarrival jitter
extended highest sequence number receivedfraction lost cumulative number of packets lost
SSRC_1 (SSRC of first source)
RTCP Packet - RRRTCP Packet - RR
SSRC of senderV2 P RC PT=RR=201 length
80 16 24 32
ReportBlock
1
ReportBlock
2
header
is the same as that of the SR packet except that the is the same as that of the SR packet except that the packer type field contains the constant 201 and the packer type field contains the constant 201 and the five words of sender information are omittedfive words of sender information are omitted
RTCP Packet – Source RTCP Packet – Source DescriptionDescription
SDES items…
SSRC/CSRC_2
SDES items…
SSRC/CSRC_1V2 P SC PT=SDES=202 length
80 16 24 32
header
chunk1
version (V), padding (P), length:version (V), padding (P), length: as described for the SR packetas described for the SR packet
packet type (PT): 8 bitspacket type (PT): 8 bits contains the constant 202 to identify this as an RTCP SDES contains the constant 202 to identify this as an RTCP SDES
packetpacket source count (SC): 5 bitssource count (SC): 5 bits
the number of SSRC/CSRC chunks contained in this SDES packetthe number of SSRC/CSRC chunks contained in this SDES packet
chunk2
RTCP Packet – Source RTCP Packet – Source DescriptionDescription
some SDES itmessome SDES itmes CNAMECNAME NameName EmailEmail PhonePhone LocLoc ToolTool NoteNote
RTCP Packet – Source RTCP Packet – Source Description itemDescription item
CNAME=1 length User and domain name …
80 16 24 32
type field: 8 bitstype field: 8 bits CNAME=1CNAME=1
length field: 8 bitslength field: 8 bits not include type field and length fieldnot include type field and length field
user and domain name field: be no longer than 255 ouser and domain name field: be no longer than 255 octetsctets examples: examples: [email protected]@sleepy.megacorp.com or or [email protected]@192.0.2.89 for for
a multi-user systema multi-user system examples: sleepy.megacorp.com or 192.0.2.89 for the system examples: sleepy.megacorp.com or 192.0.2.89 for the system
with no user namewith no user name
RTCP Packet – Source RTCP Packet – Source Description itemDescription item
NAME=2 length common name of source …
80 16 24 32
type field: 8 bitstype field: 8 bits NAME=2NAME=2
length field: 8 bitslength field: 8 bits not include type field and length fieldnot include type field and length field
common name of source field: be no longer than 25common name of source field: be no longer than 255 octets5 octets it may be any form desired by the userit may be any form desired by the user examples: John Doe, Recycler, Megacorpexamples: John Doe, Recycler, Megacorp
RTCP Packet – Source RTCP Packet – Source Description itemDescription item
EMAIL=3 length email address of source …
80 16 24 32
type field: 8 bitstype field: 8 bits EMAIL=3EMAIL=3
length field: 8 bitslength field: 8 bits not include type field and length fieldnot include type field and length field
email address of source field: be no longer than 255 email address of source field: be no longer than 255 octetsoctets Email address is formatted according to RFC 822Email address is formatted according to RFC 822 example, “ [email protected]”example, “ [email protected]”
RTCP Packet – Source RTCP Packet – Source Description itemDescription item
PHONE=4 length Phone number of source …
80 16 24 32
type field: 8 bitstype field: 8 bits PHONE=4PHONE=4
length field: 8 bitslength field: 8 bits not include type field and length fieldnot include type field and length field
phone number of source field: be no phone number of source field: be no longer than 255 octetslonger than 255 octets phone numberphone number
RTCP Packet – Source RTCP Packet – Source Description itemDescription item
LOC=5 length geographic location of site
80 16 24 32
type field: 8 bitstype field: 8 bits LOC=5LOC=5
length field: 8 bitslength field: 8 bits not include type field and length fieldnot include type field and length field
geographic location of site field: be geographic location of site field: be no longer than 255 octetsno longer than 255 octets
RTCP Packet – Source RTCP Packet – Source Description itemDescription item
TOOL=6 length name/version of source appl …
80 16 24 32
type field: 8 bitstype field: 8 bits TOOL=6TOOL=6
length field: 8 bitslength field: 8 bits not include type field and length fieldnot include type field and length field
name/version of source appl field: be no lonname/version of source appl field: be no longer than 255 octetsger than 255 octets e.g., videotool 1.2e.g., videotool 1.2
RTCP Packet – Source RTCP Packet – Source Description itemDescription item
NOTE=7 length note about the source …
80 16 24 32
type field: 8 bitstype field: 8 bits NOTE=7NOTE=7
length field: 8 bitslength field: 8 bits not include type field and length fieldnot include type field and length field
note about the source field: be no longer than note about the source field: be no longer than 255 octets255 octets Should be used only carry exceptional information Should be used only carry exceptional information
length
RTCP Packet – BYERTCP Packet – BYE
Reason for leaving
…
SSRC/CSRCV2 P SC PT=BYE=203 length
80 16 24 32
version (V), padding (P), length:version (V), padding (P), length: as described for the SR packetas described for the SR packet
packet type (PT): 8 bitspacket type (PT): 8 bits contains the constant 203 to identify this as an RTCP BYE packetcontains the constant 203 to identify this as an RTCP BYE packet
source count (SC): 5 bitssource count (SC): 5 bits the number of SSRC/CSRC identifiers included in this BYE the number of SSRC/CSRC identifiers included in this BYE
packerpacker
opt
application-dependent data …name (ASCII)
RTCP Packet – RTCP Packet – Application definedApplication defined
SSRC/CSRCV2 P subtype PT=APP=204 length
80 16 24 32
version (V), padding (P), length:version (V), padding (P), length: as described for the SR packetas described for the SR packet
subtype (PT): 5 bitssubtype (PT): 5 bits Defined under one unique nameDefined under one unique name
Name: 4 octetsName: 4 octets a name chosen by the person defining the set of APP a name chosen by the person defining the set of APP
packets to be unique with respect to other APP packets packets to be unique with respect to other APP packets this application might receivethis application might receive
RTCP packet structureRTCP packet structure
SR SDEC BYE
SS
RC S
SR
C SS
RC
senderreport site 1 site 2
SS
RC S
SR
C SS
RC S
SR
C
reason
packet packet packet
if encrypted: random 32-bit integer
compound packet
DUP packet
Translators and MixersTranslators and Mixers
add or remove encryptionadd or remove encryption change the encoding of the data or the change the encoding of the data or the
underlying protocolsunderlying protocols replicate between multicast address anreplicate between multicast address an
d one or more unicast addressd one or more unicast address
RTCP Processing in RTCP Processing in TranslatorsTranslators
SR sender informationSR sender information forwards the SSRC information receivedforwards the SSRC information received change the “sender’s octet(byte) countchange the “sender’s octet(byte) count
”” change the “sender’s packer count”change the “sender’s packer count” change the “RTP timestamp”change the “RTP timestamp”
SR/RR reception report blocksSR/RR reception report blocks forwards the SSRC information receivedforwards the SSRC information received change the sequence numberschange the sequence numbers
RTCP Processing in RTCP Processing in TranslatorsTranslators
SDESSDES forward without change the SDES forward without change the SDES
informationinformation if bandwidth is limited, filter non-CNAME if bandwidth is limited, filter non-CNAME
SDES informationSDES information send SDES CNAME information about itselfsend SDES CNAME information about itself
BYEBYE forward BYE packets unchangedforward BYE packets unchanged
APPAPP forward APP packets unchangedforward APP packets unchanged
RTCP Processing in RTCP Processing in MixersMixers
SR sender informationSR sender information generates its own SR packets generates its own SR packets
SR/RR reception report blocksSR/RR reception report blocks generates its own reception reportsgenerates its own reception reports
SDESSDES forward without change the SDES forward without change the SDES
informationinformation if bandwidth is limited, filter non-if bandwidth is limited, filter non-
CNAME SDES informationCNAME SDES information
RTCP Processing in RTCP Processing in MixersMixers
BYEBYE Mixer need to forward BYE packetsMixer need to forward BYE packets generate BYE packets whit their own generate BYE packets whit their own
SSRC identifiersSSRC identifiers APPAPP
application-specificapplication-specific
Cascaded MixersCascaded Mixers
E1
T1
E2
E3
E4
E5
E6
E7M1
M2 M3
T2
E3:64
End System
Translator
Mixer
Source: SSRC (CSRCs)
M2:12 (64)E5:45
M3:89 (64,45)
E2:1
E1:17
E4:47M1:48 (1,17) E4:47
M1:48 (1,17)
E6:15E6:15
M1:48 (1,17)
E4:47M3:89 (64,45)
SSRC Identifier Allocation SSRC Identifier Allocation and Useand Use
SSRC identifier is random 32-bit numberSSRC identifier is random 32-bit number SSRC identifier is required to be globally unique SSRC identifier is required to be globally unique
within an RTP sessionwithin an RTP session using the MD5(RFC 1321-The MD5 Message-using the MD5(RFC 1321-The MD5 Message-
Digest Algorithm) routing to generates a random Digest Algorithm) routing to generates a random 32-bit identifier32-bit identifier
probability of Collisionprobability of Collision W. Feller, An Introduction to Probability Theory and its W. Feller, An Introduction to Probability Theory and its
Applications, Volume 1, vol. 1. New York, New York: Applications, Volume 1, vol. 1. New York, New York: John Wiley and Sons, Third ed, 1968John Wiley and Sons, Third ed, 1968
worst-cast: 1 – exp (-N**2/2**(L+1)), N is the number of worst-cast: 1 – exp (-N**2/2**(L+1)), N is the number of source and L the length of the identifier (here,32 bits), source and L the length of the identifier (here,32 bits), For N=1000, the probability 10**(-4)For N=1000, the probability 10**(-4)
N/2**L, N is the number of source and L the length of N/2**L, N is the number of source and L the length of the identifier, For N=1000, the probability 2*10**(-7)the identifier, For N=1000, the probability 2*10**(-7)
SSRC Identifier Allocation SSRC Identifier Allocation and Useand Use
Collision Resolution and Loop DetectionCollision Resolution and Loop Detection the same SSRC identifier but a different source trathe same SSRC identifier but a different source tra
nsport addressnsport address if a source discovers that another source is using thif a source discovers that another source is using th
e same SSRC identifier as its own, if must send an e same SSRC identifier as its own, if must send an RTCP BYE packet for the old identifier and choose RTCP BYE packet for the old identifier and choose another random one.another random one.
if a receiver discovers that two other source are colif a receiver discovers that two other source are colliding, it may keep the packets from one and discarliding, it may keep the packets from one and discard the packets from other d the packets from other
detect by different source transport address or CNdetect by different source transport address or CNAMEs AMEs
SSRC Identifier Allocation SSRC Identifier Allocation and Useand Use
loop examples:loop examples: a translator may incorrectly forward a a translator may incorrectly forward a
packet to the same multicast group form packet to the same multicast group form which it has received the packetwhich it has received the packet
two translators incorrectly set in paralleltwo translators incorrectly set in parallel
T1
T1
T2
SSRC Identifier Allocation SSRC Identifier Allocation and Useand Use
loop or collision algorithmloop or collision algorithm an identifier is not found in the tablean identifier is not found in the table an identifier is found in the tablean identifier is found in the table an identifier collision or loop is an identifier collision or loop is
indicatedindicated a collision or loop of the participant’s a collision or loop of the participant’s
own dataown data
SecuritySecurity
confidentialityconfidentiality only the intended receiver(s) can decode tonly the intended receiver(s) can decode t
he received packethe received packet confidentiality of the content is achieved confidentiality of the content is achieved
by encryptionby encryption Data Encryption Standard (DES) Data Encryption Standard (DES)
authentication and message integrityauthentication and message integrity not definednot defined
Summary of Protocol Summary of Protocol ConstantsConstants
payload typepayload type RTCP packet typesRTCP packet types
SR 200SR 200 RR 201RR 201 SDES 202SDES 202 BYT 203BYT 203 APP 204APP 204
SDES typesSDES types END 0END 0 CNAME 1CNAME 1 NAME 2NAME 2 EMAIL 3EMAIL 3 PHONE 4PHONE 4 LOC 5LOC 5 TOOL 6TOOL 6 NOTE 7NOTE 7
ReferenceReference
RFC 1889 RFC 1889 RFC 1890RFC 1890 RFC 3550RFC 3550 RFC 3551RFC 3551 http://www.cs.columbia.edu/~coms61http://www.cs.columbia.edu/~coms61
81/slides/7/rtp.pdf81/slides/7/rtp.pdf http://www.ietf.org/http://www.ietf.org/