Presentation is loading. Please wait.

Presentation is loading. Please wait.

Real-time Transport Protocol Kun-Ta Lee 2004.5.21 National Taipei University of Technology.

Similar presentations


Presentation on theme: "Real-time Transport Protocol Kun-Ta Lee 2004.5.21 National Taipei University of Technology."— Presentation transcript:

1 Real-time Transport Protocol Kun-Ta Lee 2004.5.21 National Taipei University of Technology

2 Outline Introduction Introduction Definitions Definitions RTP RTP RTCP RTCP Translators and Mixers Translators and Mixers SSRC Identifier Allocation and Use SSRC Identifier Allocation and Use Security Security Summary of Protocol Constants Summary of Protocol Constants Reference Reference

3 Introduction (1) provides one-to-one or one-to-may delivery services for data whit real-time characteristics provides one-to-one or one-to-may delivery services for data whit real-time characteristics does not guarantee delivery or prevent out-of- order delivery does not guarantee delivery or prevent out-of- order delivery receiver allow to reconstruct the sender’s packet sequence receiver allow to reconstruct the sender’s packet sequence RTP is primarily designed to satisfy the needs of multi-participant application RTP is primarily designed to satisfy the needs of multi-participant application RTP control protocol (RTCP), to monitor the quality of service and to convey information about the participants in an on-going session RTP control protocol (RTCP), to monitor the quality of service and to convey information about the participants in an on-going session

4 Introduction (2) RTP Use Scenarios RTP Use Scenarios Simple Multicast Audio Conference Simple Multicast Audio Conference can change the encoding during a conference can change the encoding during a conference allow the receivers to reconstruct the timing produced by the source allow the receivers to reconstruct the timing produced by the source to know who is participating and how well they are receiving the audio data to know who is participating and how well they are receiving the audio data sends the RTCP packet when it leaves the conference sends the RTCP packet when it leaves the conference Audio and Video Conference Audio and Video Conference no direct coupling at the RTP level between audio and video no direct coupling at the RTP level between audio and video participant can choose only one medium in the conference participant can choose only one medium in the conference using timing information carried in the RTCP packets can be achieved synchronization for audio and video session using timing information carried in the RTCP packets can be achieved synchronization for audio and video session

5 Introduction (3) Mixers and Translators Mixers and Translators Mixer (RTP-level relay): mixes reconstructed audio streams into a single stream and translates the audio encoding to a lower-bandwidth one and forwards he lower-bandwidth packet stream across the low-speed link. Mixer (RTP-level relay): mixes reconstructed audio streams into a single stream and translates the audio encoding to a lower-bandwidth one and forwards he lower-bandwidth packet stream across the low-speed link. Translator (RTP-level realy): translates different format Translator (RTP-level realy): translates different format Translator out-side Translator in-side Firewall

6 Definitions (1) RTP payload: the data transported by RTP in a packet RTP payload: the data transported by RTP in a packet RTP packet: a data packet consisting of the fixed RTP header RTP packet: a data packet consisting of the fixed RTP header RTCP packet: a control packet consisting of a fixed header part similar to that o RTP data packet, followed by structured elements that vary depending upon the RTCP packet type RTCP packet: a control packet consisting of a fixed header part similar to that o RTP data packet, followed by structured elements that vary depending upon the RTCP packet type

7 Definitions (2) application media encapsulation RTP RTCP Source port + Dstination port + Message length + Checksum + UDP Data UDP IPv4/IPv6 Ethernet AAL5 ATM

8 Definitions (3) Port: transport layer UDP port Port: transport layer UDP port Transport address: an IP address and a UDP port, packets are transmitted from a source transport address to a destination transport address Transport address: an IP address and a UDP port, packets are transmitted from a source transport address to a destination transport address RTP Session RTP Session the session is defined by a particular pair of destination transport addresses (one network address plus a port pair for RTP and RTCP) the session is defined by a particular pair of destination transport addresses (one network address plus a port pair for RTP and RTCP) in a multimedia session, each medium is carried in a separate RTP session with its own RTCP packets. in a multimedia session, each medium is carried in a separate RTP session with its own RTCP packets. Synchronization source (SSRC) Synchronization source (SSRC) the source of s stream of RTP packets the source of s stream of RTP packets 32-bit numeric 32-bit numeric randomly chosen, unique randomly chosen, unique not use the same SSRC identifier for all the RTP sessions in a multimedia session not use the same SSRC identifier for all the RTP sessions in a multimedia session binding of the SSRC identifiers is provided through RTCP binding of the SSRC identifiers is provided through RTCP Contributing source (CSRC): the source of a stream of RTP packets that has contributed to the combined stream produced by an RTP mixer Contributing source (CSRC): the source of a stream of RTP packets that has contributed to the combined stream produced by an RTP mixer

9 Definitions (4) End system: generates the content to be sent in RTP packets and/or consumes the content of received RTP packets End system: generates the content to be sent in RTP packets and/or consumes the content of received RTP packets Mixer Mixer receives RTP packet from one or more source receives RTP packet from one or more source possibly changes the data format possibly changes the data format combines the packets in some manner and forwards a new RTP packet combines the packets in some manner and forwards a new RTP packet generate its own timing for the combined stream generate its own timing for the combined stream new packets that from a mixer will be identified as having the mixer as their synchronization source new packets that from a mixer will be identified as having the mixer as their synchronization source Translator Translator forwards RTP packets with their synchronization source identifier intact forwards RTP packets with their synchronization source identifier intact convert encodings without mixing convert encodings without mixing replicate from multicast to unicast replicate from multicast to unicast

10 Definitions (5) end system SSRC=17 end system SSRC=39 192.35.149.52 128.119.40.186 DVI4 L16 translator 192.26.8.84 GSM GSM ( Group Speciale Mobile ) Mixer SSRC=5 192.20.225.101 SSRC=5 CSRC=17 39

11 Definitions (6) Monitor Monitor An application, that receives RTCP packets (reception report) sent by participants in an RTP session An application, that receives RTCP packets (reception report) sent by participants in an RTP session estimates the current quality of service, fault diagnosis and long-term statistics estimates the current quality of service, fault diagnosis and long-term statistics Non-RTP means Non-RTP means in addition to RTP to provide a usable service in addition to RTP to provide a usable service example: negotiate the encryption algorithm, define dynamic mappings between RTP payload type values and payload formats they represent for formats that do not have a predefined payload type value example: negotiate the encryption algorithm, define dynamic mappings between RTP payload type values and payload formats they represent for formats that do not have a predefined payload type value Simple applications, electronic mail or a conference database may also be used Simple applications, electronic mail or a conference database may also be used

12 0x00 payload (audio, video, … ) header extension contributing source identifier (CSRC) synchronization source identifier (SSRC) timestamp RTP Packet (1) V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet first twelve octets are present in every RTP hacket first twelve octets are present in every RTP hacket the list of CSRC identifiers is present only when inserted by a mix the list of CSRC identifiers is present only when inserted by a mix

13 version (V): 2 bits version (V): 2 bits V=0 → “ avt ” audio tool. ; V=1 → first draft version of RTP V=0 → “ avt ” audio tool. ; V=1 → first draft version of RTP padding (P): 1 bit padding (P): 1 bit the last octet of the padding contains a count of how many padding octets should be ignored the 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) V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet

14 extension (X): 1 bit extension (X): 1 bit if the extension bit is set, the fixed header is followed by exactly one header extension if the extension bit is set, the fixed header is followed by exactly one header extension 0x00 payload (audio, video, … ) header extension contributing source identifier (CSRC) synchronization source identifier (SSRC) timestamp RTP Packet (3) V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet

15 CSRC count (CC): 4 bits CSRC count (CC): 4 bits the CSRC count contains the number of CSRC identifiers that follow the fix header the CSRC count contains the number of CSRC identifiers that follow the fix header Maker (M): 1 bit Maker (M): 1 bit intended to allow significant events such as frame boundaries to be marked in the packet stream intended to allow significant events such as frame boundaries to be marked in the packet stream 0x00 payload (audio, video, … ) header extension contributing source identifier (CSRC) synchronization source identifier (SSRC) timestamp V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet RTP Packet (4)

16 payload type (PT): 7 bits payload type (PT): 7 bits identifies the format of the RTP payload and determines its interpretation by the application identifies the format of the RTP payload and determines its interpretation by the application Default mappings for audio and video is specified in the companion profile Internet-Draft draft-ietf-avt-profile Default mappings for audio and video is specified in the companion profile Internet-Draft draft-ietf-avt-profile 0x00 payload (audio, video, … ) header extension contributing source identifier (CSRC) synchronization source identifier (SSRC) timestamp V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet RTP Packet (5)

17 sequence number : 16 bits sequence number : 16 bits increments by one for each RTP data packet sent increments by one for each RTP data packet sent used by the receiver to detect packet loss and to restore packet sequence used by the receiver to detect packet loss and to restore packet sequence 0x00 payload (audio, video, … ) header extension contributing source identifier (CSRC) synchronization source identifier (SSRC) timestamp V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet RTP Packet (6)

18 timestamp : 32 bits timestamp : 32 bits timestamp reflects the sampling instant of the first octet in the RTP data packet timestamp reflects the sampling instant of the first octet in the RTP data packet 0x00 payload (audio, video, … ) header extension contributing source identifier (CSRC) synchronization source identifier (SSRC) timestamp V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet RTP Packet (7)

19 SSRC : 32 bits SSRC : 32 bits identifies the synchronization source identifies the synchronization source this identifier is chosen randomly this identifier is chosen randomly all RTP implementations must be prepared to detect and resolve collisions all 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 V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet RTP Packet (8)

20 CSRC list: 0 to 15 itemse, 32 bits each CSRC list: 0 to 15 itemse, 32 bits each the CSRC list identifies the contributing source for the payload contained in this packet the 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 identified if there are more than 15 contributing sources, only 15 may be identified inserted by mixer inserted by mixer 0x00 payload (audio, video, … ) header extension contributing source identifier (CSRC) synchronization source identifier (SSRC) timestamp V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet RTP Packet (9)

21 0x00 payload (audio, video, … ) opt. header extension defined by profilelength header extension header extension the first 16 bits of header extension are left open for distinguishing identifiers or parameters the first 16 bits of header extension are left open for distinguishing identifiers or parameters 16-bit length field that counts the number of 32-bit words in the extension 16-bit length field that counts the number of 32-bit words in the extension RTP Packet (10) contributing source identifier (CSRC) synchronization source identifier (SSRC) timestamp V2P X CSRC count Mpayload typesequence number opt. 8016 24 32 UDP packet

22 RTCP Functions provide feedback on the quality of the data distribution provide feedback on the quality of the data distribution this feedback function is performed by the RTCP sender and receiver reports this feedback function is performed by the RTCP sender and receiver reports RTCP carries a persistent transport-level identifier for an RTP source called the canonical name or CNAME RTCP carries a persistent transport-level identifier for an RTP source called the canonical name or CNAME SSRC identifier may change if a conflict is discovered or a program is restarted SSRC identifier may change if a conflict is discovered or a program is restarted receivers require the CNAME to keep track of each participant receivers require the CNAME to keep track of each participant receivers require the CNAME to associate multiple data stream for a given participant in a set of related RTP sessions receivers require the CNAME to associate multiple data stream for a given participant in a set of related RTP sessions each participant send its control packets to all the others, each can independently observe the number of participants each participant send its control packets to all the others, each can independently observe the number of participants convey minimal session control information convey minimal session control information for example participant identification to be displayed in the user interface for example participant identification to be displayed in the user interface

23 RTCP Packet Format SR: sender report, for transmission and reception statistics from participants that are active senders SR: sender report, for transmission and reception statistics from participants that are active senders RR: receiver report, for reception statistics from participants that are not active senders RR: receiver report, for reception statistics from participants that are not active senders SDES: source description items, including CNAME SDES: source description items, including CNAME BYE: indicates end of participation BYE: indicates end of participation APP: application specific functions APP: application specific functions

24 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (first section - header) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info version (V): 2 bits version (V): 2 bits V=0 → “ avt ” audio tool. ; V=1 → first draft version of RTP V=0 → “ avt ” audio tool. ; V=1 → first draft version of RTP

25 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (first section - header) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info padding (P): 1 bit padding (P): 1 bit the last octet of the padding contains a count of how many padding octets should be ignored the last octet of the padding contains a count of how many padding octets should be ignored In a compound RTCP packet, padding should only be required on the last individual packet In a compound RTCP packet, padding should only be required on the last individual packet

26 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (first section - header) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info reception report count (RC): 5 bits reception report count (RC): 5 bits the number of reception report blocks contained in this packet the number of reception report blocks contained in this packet

27 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (first section - header) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info packet type (PT): 8 bits packet type (PT): 8 bits the constant 200 to identify this as an SR packet the constant 200 to identify this as an SR packet

28 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (first section - header) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info length: 16 bits length: 16 bits including the header and any padding including the header and any padding 1 unit = 32-bit 1 unit = 32-bit

29 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (first section - header) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info SSRC: 32 bits SSRC: 32 bits synchronization source identifier for the originator of this SR packet synchronization source identifier for the originator of this SR packet

30 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (second section – sender info) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info NTP timestamp: 64 bits NTP timestamp: 64 bits indicates the wallclock time when this report was sent indicates the wallclock time when this report was sent

31 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (second section – sender info) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info RTP timestamp: 32 bits RTP timestamp: 32 bits

32 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (second section – sender info) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info sender ’ s packer count: 32 bits sender ’ s packer count: 32 bits total number of RTP data packets transmitted by the sender since starting transmission up until the time this SR packet was generated total number of RTP data packets transmitted by the sender since starting transmission up until the time this SR packet was generated

33 profile-specific extensions... SSRC_2 (SSRC of first source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (second section – sender info) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info sender ’ s octet count: 32 bits sender ’ s octet count: 32 bits total number of payload octets (not including header or padding) transmitted in RTP data packets by the sender since starting transmission up until the time this SR packet was generated total number of payload octets (not including header or padding) transmitted in RTP data packets by the sender since starting transmission up until the time this SR packet was generated

34 RTCP Packet - SR (third section – reception report blocks) contains 0 ~ more reception report blocks depending on the number of other source heard by this sender since the last report contains 0 ~ more reception report blocks depending on the number of other source heard by this sender since the last report conveys statistics on the reception of RTP packets from a single synchronization source conveys statistics on the reception of RTP packets from a single synchronization source receivers do not carry over statistics when a source changes its SSRC identifier due to a collision receivers do not carry over statistics when a source changes its SSRC identifier due to a collision

35 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (third section – reception report blocks) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info SSRC_n (source identifier): 32 bits SSRC_n (source identifier): 32 bits the source ’ s SSRC to which the information in this reception report block pertains the source ’ s SSRC to which the information in this reception report block pertains

36 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (third section – reception report blocks) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info fraction lost: 8 bits fraction lost: 8 bits the fraction of RTP data packets from source SSRC_n lost since the previous SR or RR packet was sent the fraction of RTP data packets from source SSRC_n lost since the previous SR or RR packet was sent

37 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (third section – reception report blocks) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info cumulative number of packers lost: 24 bits cumulative number of packers lost: 24 bits the total number of RTP data packets from source SSRC_n that have been lost since the beginning of reception the total number of RTP data packets from source SSRC_n that have been lost since the beginning of reception

38 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (third section – reception report blocks) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info extended highest sequence number received: 32 bits extended highest sequence number received: 32 bits the low 16 bits contain highest sequence number received in an RTP data packer from source SSRC_n the low 16 bits contain highest sequence number received in an RTP data packer from source SSRC_n the most significant 16 bits extend that sequence number with the corresponding count of sequence number cycles the most significant 16 bits extend that sequence number with the corresponding count of sequence number cycles

39 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (third section – reception report blocks) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info Interarrival jitter: 32 bits Interarrival jitter: 32 bits an estimate of the statistical variance of the RTP data packer interarrival time an estimate of the statistical variance of the RTP data packer interarrival time

40 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (third section – reception report blocks) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info Last SR timestamp (LSR): 32 bits Last SR timestamp (LSR): 32 bits the middle 32 bits out of 64 in the NTP timestamp received as part of the most recent RTCP sender report packer form source SSRC_n the middle 32 bits out of 64 in the NTP timestamp received as part of the most recent RTCP sender report packer form source SSRC_n if no SR has been received yet, the field is set to zero if no SR has been received yet, the field is set to zero

41 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (third section – reception report blocks) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info Delay since last SR (DLSR): 32 bits Delay since last SR (DLSR): 32 bits the delay, between receiving the last SR packer form source SSRC_N and sending this reception report block the delay, between receiving the last SR packer form source SSRC_N and sending this reception report block if no SR has been received yet from SSRC_n, the field is set to zero if no SR has been received yet from SSRC_n, the field is set to zero

42 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) sender ’ s octet count sender ’ s packet count RTP tiemstamp RTCP Packet - SR (fourth section – extensions blocks) NTP timestamp, least significant word NTP timestamp, most significant word SSRC of sender V2P RC PT=SR=200length 8016 24 32 Report Block 1 Report Block 2 header sender info profile-specific extensions profile-specific extensions if there is additional information that should be reported regularly about the sender or receivers if there is additional information that should be reported regularly about the sender or receivers

43 profile-specific extensions... SSRC_2 (SSRC of second source) Delay since last SR(DLSR) last SR (LSR) interarrival jitter extended highest sequence number received fraction lost cumulative number of packets lost SSRC_1 (SSRC of first source) RTCP Packet - RR SSRC of sender V2P RC PT=RR=201length 8016 24 32 Report Block 1 Report Block 2 header is the same as that of the SR packet except that the packer type field contains the constant 201 and the five words of sender information are omitted is the same as that of the SR packet except that the packer type field contains the constant 201 and the five words of sender information are omitted

44 RTCP Packet – Source Description SDES items … SSRC/CSRC_2 SDES items … SSRC/CSRC_1 V2P SC PT=SDES=202length 8016 24 32 header chunk 1 version (V), padding (P), length: version (V), padding (P), length: as described for the SR packet as described for the SR packet packet type (PT): 8 bits packet type (PT): 8 bits contains the constant 202 to identify this as an RTCP SDES packet contains the constant 202 to identify this as an RTCP SDES packet source count (SC): 5 bits source count (SC): 5 bits the number of SSRC/CSRC chunks contained in this SDES packet the number of SSRC/CSRC chunks contained in this SDES packet chunk 2

45 RTCP Packet – Source Description some SDES itmes some SDES itmes CNAME CNAME Name Name Email Email Phone Phone Loc Loc Tool Tool Note Note

46 RTCP Packet – Source Description item CNAME=1 lengthUser and domain name … 8016 24 32 type field: 8 bits type field: 8 bits CNAME=1 CNAME=1 length field: 8 bits length field: 8 bits not include type field and length field not include type field and length field user and domain name field: be no longer than 255 octets user and domain name field: be no longer than 255 octets examples: doe@sleepy.megacorp.com or doe@192.0.2.89 for a multi-user system examples: doe@sleepy.megacorp.com or doe@192.0.2.89 for a multi-user systemdoe@sleepy.megacorp.comdoe@192.0.2.89doe@sleepy.megacorp.comdoe@192.0.2.89 examples: sleepy.megacorp.com or 192.0.2.89 for the system with no user name examples: sleepy.megacorp.com or 192.0.2.89 for the system with no user name

47 RTCP Packet – Source Description item NAME=2 lengthcommon name of source … 8016 24 32 type field: 8 bits type field: 8 bits NAME=2 NAME=2 length field: 8 bits length field: 8 bits not include type field and length field not include type field and length field common name of source field: be no longer than 255 octets common name of source field: be no longer than 255 octets it may be any form desired by the user it may be any form desired by the user examples: John Doe, Recycler, Megacorp examples: John Doe, Recycler, Megacorp

48 RTCP Packet – Source Description item EMAIL=3 lengthemail address of source … 8016 24 32 type field: 8 bits type field: 8 bits EMAIL=3 EMAIL=3 length field: 8 bits length field: 8 bits not include type field and length field not include type field and length field email address of source field: be no longer than 255 octets email address of source field: be no longer than 255 octets Email address is formatted according to RFC 822 Email address is formatted according to RFC 822 example, “ John.Doe@megacorp.com ” example, “ John.Doe@megacorp.com ”

49 RTCP Packet – Source Description item PHONE=4 lengthPhone number of source … 8016 24 32 type field: 8 bits type field: 8 bits PHONE=4 PHONE=4 length field: 8 bits length field: 8 bits not include type field and length field not include type field and length field phone number of source field: be no longer than 255 octets phone number of source field: be no longer than 255 octets phone number phone number

50 RTCP Packet – Source Description item LOC=5 lengthgeographic location of site 8016 24 32 type field: 8 bits type field: 8 bits LOC=5 LOC=5 length field: 8 bits length field: 8 bits not include type field and length field not include type field and length field geographic location of site field: be no longer than 255 octets geographic location of site field: be no longer than 255 octets

51 RTCP Packet – Source Description item TOOL=6 lengthname/version of source appl … 8016 24 32 type field: 8 bits type field: 8 bits TOOL=6 TOOL=6 length field: 8 bits length field: 8 bits not include type field and length field not include type field and length field name/version of source appl field: be no longer than 255 octets name/version of source appl field: be no longer than 255 octets e.g., videotool 1.2 e.g., videotool 1.2

52 RTCP Packet – Source Description item NOTE=7 lengthnote about the source … 8016 24 32 type field: 8 bits type field: 8 bits NOTE=7 NOTE=7 length field: 8 bits length field: 8 bits not include type field and length field not include type field and length field note about the source field: be no longer than 255 octets note about the source field: be no longer than 255 octets Should be used only carry exceptional information Should be used only carry exceptional information

53 length RTCP Packet – BYE Reason for leaving … SSRC/CSRC V2P SC PT=BYE=203length 8016 24 32 version (V), padding (P), length: version (V), padding (P), length: as described for the SR packet as described for the SR packet packet type (PT): 8 bits packet type (PT): 8 bits contains the constant 203 to identify this as an RTCP BYE packet contains the constant 203 to identify this as an RTCP BYE packet source count (SC): 5 bits source count (SC): 5 bits the number of SSRC/CSRC identifiers included in this BYE packer the number of SSRC/CSRC identifiers included in this BYE packer opt

54 application-dependent data … name (ASCII) RTCP Packet – Application defined SSRC/CSRC V2P subtype PT=APP=204length 8016 24 32 version (V), padding (P), length: version (V), padding (P), length: as described for the SR packet as described for the SR packet subtype (PT): 5 bits subtype (PT): 5 bits Defined under one unique name Defined under one unique name Name: 4 octets Name: 4 octets a name chosen by the person defining the set of APP packets to be unique with respect to other APP packets this application might receive a name chosen by the person defining the set of APP packets to be unique with respect to other APP packets this application might receive

55 RTCP packet structure SRSDECBYE SSRC sender report site 1site 2 SSRC reason packet if encrypted: random 32-bit integer compound packet DUP packet

56 Translators and Mixers add or remove encryption add or remove encryption change the encoding of the data or the underlying protocols change the encoding of the data or the underlying protocols replicate between multicast address and one or more unicast address replicate between multicast address and one or more unicast address

57 RTCP Processing in Translators SR sender information SR sender information forwards the SSRC information received forwards the SSRC information received change the “ sender ’ s octet(byte) count ” change 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 blocks SR/RR reception report blocks forwards the SSRC information received forwards the SSRC information received change the sequence numbers change the sequence numbers

58 RTCP Processing in Translators SDES SDES forward without change the SDES information forward without change the SDES information if bandwidth is limited, filter non-CNAME SDES information if bandwidth is limited, filter non-CNAME SDES information send SDES CNAME information about itself send SDES CNAME information about itself BYE BYE forward BYE packets unchanged forward BYE packets unchanged APP APP forward APP packets unchanged forward APP packets unchanged

59 RTCP Processing in Mixers SR sender information SR sender information generates its own SR packets generates its own SR packets SR/RR reception report blocks SR/RR reception report blocks generates its own reception reports generates its own reception reports SDES SDES forward without change the SDES information forward without change the SDES information if bandwidth is limited, filter non-CNAME SDES information if bandwidth is limited, filter non-CNAME SDES information

60 RTCP Processing in Mixers BYE BYE Mixer need to forward BYE packets Mixer need to forward BYE packets generate BYE packets whit their own SSRC identifiers generate BYE packets whit their own SSRC identifiers APP APP application-specific application-specific

61 Cascaded Mixers E1 T1 E2 E3 E4 E5 E6 E7 M1 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:47 M1:48 (1,17)E4:47 M1:48 (1,17) E6:15 M1:48 (1,17) E4:47 M3:89 (64,45)

62 SSRC Identifier Allocation and Use SSRC identifier is random 32-bit number SSRC identifier is random 32-bit number SSRC identifier is required to be globally unique within an RTP session SSRC identifier is required to be globally unique within an RTP session using the MD5(RFC 1321-The MD5 Message-Digest Algorithm) routing to generates a random 32-bit identifier using the MD5(RFC 1321-The MD5 Message-Digest Algorithm) routing to generates a random 32-bit identifier probability of Collision probability of Collision W. Feller, An Introduction to Probability Theory and its Applications, Volume 1, vol. 1. New York, New York: John Wiley and Sons, Third ed, 1968 W. Feller, An Introduction to Probability Theory and its Applications, Volume 1, vol. 1. New York, New York: John Wiley and Sons, Third ed, 1968 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), For N=1000, the probability 10**(-4) 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), For N=1000, the probability 10**(-4) N/2**L, N is the number of source and L the length of the identifier, For N=1000, the probability 2*10**(-7) N/2**L, N is the number of source and L the length of the identifier, For N=1000, the probability 2*10**(-7)

63 SSRC Identifier Allocation and Use Collision Resolution and Loop Detection Collision Resolution and Loop Detection the same SSRC identifier but a different source transport address the same SSRC identifier but a different source transport address if a source discovers that another source is using the same SSRC identifier as its own, if must send an RTCP BYE packet for the old identifier and choose another random one. if a source discovers that another source is using the same SSRC identifier as its own, if must send an RTCP BYE packet for the old identifier and choose another random one. if a receiver discovers that two other source are colliding, it may keep the packets from one and discard the packets from other if a receiver discovers that two other source are colliding, it may keep the packets from one and discard the packets from other detect by different source transport address or CNAMEs detect by different source transport address or CNAMEs

64 SSRC Identifier Allocation and Use loop examples: loop examples: a translator may incorrectly forward a packet to the same multicast group form which it has received the packet a translator may incorrectly forward a packet to the same multicast group form which it has received the packet two translators incorrectly set in parallel two translators incorrectly set in parallel T1 T2

65 SSRC Identifier Allocation and Use loop or collision algorithm loop or collision algorithm an identifier is not found in the table an identifier is not found in the table an identifier is found in the table an identifier is found in the table an identifier collision or loop is indicated an identifier collision or loop is indicated a collision or loop of the participant ’ s own data a collision or loop of the participant ’ s own data

66 Security confidentiality confidentiality only the intended receiver(s) can decode the received packet only the intended receiver(s) can decode the received packet confidentiality of the content is achieved by encryption confidentiality of the content is achieved by encryption Data Encryption Standard (DES) Data Encryption Standard (DES) authentication and message integrity authentication and message integrity not defined not defined

67 Summary of Protocol Constants payload type payload type RTCP packet types RTCP packet types SR 200 SR 200 RR 201 RR 201 SDES 202 SDES 202 BYT 203 BYT 203 APP 204 APP 204 SDES types SDES types END 0 END 0 CNAME 1 CNAME 1 NAME 2 NAME 2 EMAIL 3 EMAIL 3 PHONE 4 PHONE 4 LOC 5 LOC 5 TOOL 6 TOOL 6 NOTE 7 NOTE 7

68 Reference RFC 1889 RFC 1889 RFC 1890 RFC 1890 RFC 3550 RFC 3550 RFC 3551 RFC 3551 http://www.cs.columbia.edu/~coms6181/slides /7/rtp.pdf http://www.cs.columbia.edu/~coms6181/slides /7/rtp.pdf http://www.ietf.org/ http://www.ietf.org/


Download ppt "Real-time Transport Protocol Kun-Ta Lee 2004.5.21 National Taipei University of Technology."

Similar presentations


Ads by Google