RFC 7244
RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Synchronization Delay and Offset Metrics Reporting
RFC 7244 ๐ Title Block Tea
Bestie, this is RFC 7244 and it's giving RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Synchronization Delay and Offset Metrics Reporting โจ. It's from the Internet Engineering Task Force (IETF), and it's Request for Comments: 7244 ๐ . The authors are H. Asaeda (NICT), Q. Wu, and R. Huang (Huawei) ๐ง. It's a Standards Track doc with ISSN 2070-1721, dated May 2014 ๐ธ. Its header doesn't list anything it obsoletes or updates, so it isn't replacing or changing any older RFC ๐ฆ.
Abstract โจ
Okay so this doc defines two RTP Control Protocol (RTCP) Extended Report (XR) blocks ๐. They let you report the initial synchronization delay and the synchronization offset metrics, and they work across a whole bunch of RTP applications ๐.
Status of This Memo ๐
This is an Internet Standards Track document ๐.
This doc is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community ๐ซถ. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG) ๐. For more on Internet Standards, check Section 2 of RFC 5741 ๐ท.
Info about the current status, any errata, and how to send feedback lives at http://www.rfc-editor.org/info/rfc7244 ๐.
Copyright Notice ยฉ๏ธ
Copyright (c) 2014 IETF Trust and the persons identified as the document authors. All rights reserved ๐.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the date of publication. Please actually read these, because they spell out your rights and restrictions for this document ๐. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License ๐.
Table of Contents ๐๏ธ
1. Introduction ....................................................2
1.1. Synchronization Delay and Offset Metrics Reporting Blocks ..2
1.2. RTCP and RTCP XR Reports ...................................3
1.3. Performance Metrics Framework ..............................3
1.4. Applicability ..............................................3
2. Terminology .....................................................4
2.1. Standards Language .........................................4
3. RTP Flow Initial Synchronization Delay Report Block .............4
3.1. Metric Block Structure .....................................5
3.2. Definition of Fields in RTP Flow Initial
Synchronization Delay Metrics Block ........................5
4. RTP Flow Synchronization Offset Metrics Block ...................6
4.1. Metric Block Structure .....................................7
4.2. Definition of Fields in RTP Flow General
Synchronization Offset Metrics Block .......................7
5. SDP Signaling ...................................................9
5.1. SDP rtcp-xr-attrib Attribute Extension .....................9
5.2. Offer/Answer Usage .........................................9
6. IANA Considerations .............................................9
7. Security Considerations ........................................10
8. Acknowledgements ...............................................10
9. References .....................................................10
9.1. Normative References ......................................10
9.2. Informative References ....................................11
Appendix A. Metrics Represented Using the Template from RFC 6390 ..12
1. Introduction ๐ฆ
1.1. Synchronization Delay and Offset Metrics Reporting Blocks ๐ซ
Okay so this doc adds two brand-new block types on top of the ones defined in [RFC3611], and they're meant for a whole range of RTP applications ๐ธ.
The first new block type reports the Initial Synchronization Delay it takes to establish a multimedia session ๐ง. It records the time difference between when the RTP sessions start and when the RTP receiver has every component of those RTP sessions in the multimedia session [RFC6051] ๐.
The second new block type reports the relative synchronization offset of two arbitrary streams, like audio and video ๐. Both streams carry the same RTCP CNAME in their RTCP Source description items (SDES) packets [RFC3550] โจ.
These metrics are part of the transport-level metrics class defined in [RFC6792] ๐.
1.2. RTCP and RTCP XR Reports ๐
RTCP reporting is defined in [RFC3550] ๐. [RFC3611] came along and defined an extensible structure for reporting, called the RTCP Extended Report (XR) ๐ซถ. This doc defines a new Extended Report block that works with [RFC3550] and [RFC3611] ๐.
1.3. Performance Metrics Framework ๐
"Guidelines for Considering New Performance Metric Development" [RFC6390] gives guidance on defining and specifying performance metrics ๐ท. "Guidelines for Use of the RTP Monitoring Framework" [RFC6792] gives guidance on reporting block format using RTCP XR ๐. The metrics block in this doc follows the guidelines in both [RFC6390] and [RFC6792] ๐ .
1.4. Applicability ๐
When you join each session in layered video sessions [RFC6190] or the multimedia session, a receiver may not synchronize playout across the multimedia session or layered video session until RTCP Sender Report (SR) packets have arrived on all components of RTP sessions ๐. The components are per-media-type RTP sessions for multimedia sessions, or per-layer RTP sessions for layered video sessions โจ. For multicast sessions, the Initial Synchronization Delay metric changes with the session bandwidth, the number of members, and the number of senders in the session ๐. The RTP Flow Initial Synchronization Delay Metrics Block defined in this doc can report that metric, meaning the Initial Synchronization Delay to receive all the RTP streams in the same multimedia session or layered video session ๐ง. Without packet loss, the Initial Synchronization Delay equals the average time taken to receive the first RTCP packet in the RTP session with the longest RTCP reporting interval ๐ฆ. With packet loss, media synchronization should rely on the in-band mapping of RTP and NTP-format timestamps [RFC6051], or wait until the reporting interval has passed and the next RTCP SR packet goes out ๐ญ.
Receivers of the RTP Flow Initial Synchronization Delay Metrics Block could compare this metric against targets, like a Service Level Agreement or the system's thresholds, to help keep real-time application performance in good shape ๐ฅ.
In an RTP multimedia session, there can be any number of streams carried in different RTP sessions that share the same RTCP CNAME ๐ธ. Those streams might not be synchronized with each other ๐ . For example, one audio stream and one video stream belong to the same session, but the audio runs behind the video by multiple tens of milliseconds [TR-126] ๐ญ. The RTP Flow Synchronization Offset block can report that synchronization offset between video and audio streams ๐. This block also applies when an RTP session contains media streams with media from multiple media types ๐. Network managers can use the metrics defined in the RTP Flow Synchronization Offset Metrics Block to troubleshoot and deal with user-experience issues ๐.
2. Terminology ๐ง
2.1. Standards Language ๐
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] ๐.
Also, these terms are defined here โจ:
Initial Synchronization Delay:
A multimedia session is a set of concurrent RTP sessions among a common group of participants, using one RTP session for each media type. The Initial Synchronization Delay is the average time for the receiver to synchronize all components of a multimedia session [RFC6051] ๐ง.
Synchronization Offset:
Synchronization between two media streams must be maintained to make sure the Quality of Experience (QoE) stays satisfying ๐ซถ. Two media streams can be the same or different media types belonging to one RTP session, or different media types belonging to one multimedia session ๐ท. The Synchronization Offset is the relative time difference between the two media streams that need to be synchronized ๐ซ.
3. RTP Flow Initial Synchronization Delay Metrics Block ๐
This block gets sent by RTP receivers, and it reports the Initial Synchronization Delay beyond the info carried in the standard RTCP packet format ๐ธ. It records the time difference between the start of the multimedia session and the moment the RTP receiver acquires all components of RTP sessions [RFC6051], measured at the receiving end of the RTP stream ๐.
This block only needs to be exchanged occasionally, for example, sent once at the start of the RTP session ๐ฆ.
3.1. Metric Block Structure ๐งฉ
The RTP Flow Initial Synchronization Delay Metrics Block looks like this ๐:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT=27 | Reserved | Block length=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of Source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Initial Synchronization Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Report Block Structure ๐
3.2. Definition of Fields in RTP Flow Initial Synchronization Delay Metrics Block โจ
Block type (BT): 8 bits ๐
Okay, this is the ID tag for the block. The RTP Flow Initial Synchronization Delay Metrics Block is identified by the constant 27. ๐ฆ
Reserved: 8 bits ๐ซถ
This field is reserved for future definition, so it's a "keep out" zone for now. Until someone defines it, the bits in this field MUST be set to zero and ignored by the receiver. ๐
Block length: 16 bits ๐
The constant 2, as defined for this field in Section 3 of RFC 3611 [RFC3611]. โจ
SSRC of source: 32 bits ๐ง
The SSRC of the media source SHALL be set to the value of the SSRC identifier carried in any arbitrary component of RTP sessions belonging to the same multimedia session. Same multimedia session, same SSRC vibes. ๐
Initial Synchronization Delay: 32 bits ๐
This is the main event, bestie. It's the average delay, measured in units of 1/65536 seconds, from the beginning of the multimedia session [RFC6051] until RTCP packets have arrived on all of the component RTP sessions. ๐ธ
It is recommended that the beginning of the multimedia session is chosen as the time when the receiver has joined the first RTP session of the multimedia session. That's the most sensible starting line, honestly. ๐
The value gets calculated from received RTCP SR packets, or from the RTP header extension that carries the in-band mapping of RTP and NTP-format timestamps [RFC6051]. ๐ฅ
If there is no packet loss, the Initial Synchronization Delay is expected to be equal to the average time taken to receive the first RTCP packet in the RTP session with the longest RTCP reporting interval. It's also expected to equal the average time taken to receive the first RTP header extension containing the in-band mapping of RTP and NTP-format timestamps. Basically, no drama, no loss, just clean timing. โจ
If the measurement is unavailable, the value of this field with all bits set to 1 MUST be reported. So if we can't measure it, we shout "all ones" loud and proud. ๐ฃ
4. RTP Flow Synchronization Offset Metrics Block ๐
Okay so picture this: an RTP multimedia session can hold any number of media streams. Your audio stream, your video stream, the whole squad. ๐ Each media stream (like an audio stream or a video stream) gets sent in its own separate RTP stream. If you've got just one RTP session, each media stream or each medium uses a different SSRC. ๐ฆ
The receiver figures out which streams belong together and need to be synchronized by using the RTCP CNAME that lives in the RTCP Source Description (SDES) packets [RFC3550]. It's giving matchmaker energy. ๐
This block is sent by RTP receivers, and it reports the synchronization offset between two arbitrary RTP streams that need to be synchronized in the RTP multimedia session. ๐ซถ It records the relative average time difference between two arbitrary RTP streams, the reporting stream and the reference stream, which share the same CNAME and get measured at the receiving end. ๐
To know what the offset of the reporting stream is relative to, the block for the reference stream with synchronization offset of zero should be reported. Think of the reference stream as the "zero point" that everybody else measures from. ๐ง
Instances of this block refer, by synchronization source (SSRC), to the separate auxiliary Measurement Information block [RFC6776]. That block describes the measurement periods in use (see Section 4.2 of [RFC6776]). ๐
This metrics block relies on the measurement period in the Measurement Information block, which indicates the span of the report. It SHOULD be sent in the same compound RTCP packet as the Measurement Information Block. โจ
If the measurement period is not received in the same compound RTCP packet as this block, this block MUST be discarded. No measurement period in the same packet? Then this block gets tossed, periodt. ๐
4.1. Metric Block Structure ๐ฆ
The RTP Flow General Synchronization Offset Metrics Block has the following format. Here's the layout, bestie:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BT=28 | I | Reserved | Block length=3 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of source |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Synchronization Offset, most significant word |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Synchronization Offset, least significant word |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Report Block Structure ๐
4.2. Definition of Fields in RTP Flow General Synchronization Offset Metrics Block ๐
Block type (BT): 8 bits ๐
The RTP Flow General Synchronization Offset Metrics Block is identified by the constant 28. Its ID is one higher than the last block's, which is very on brand. ๐ธ
Interval Metric Flag (I): 2 bits ๐ฅ
This field tells you whether the Burst/Gap Discard Summary Statistics metrics are Sampled, Interval, or Cumulative metrics. Here's the breakdown:
I=10: Interval Duration. The reported value applies to the most recent measurement interval duration between successive metrics reports.I=11: Cumulative Duration. The reported value applies to the accumulation period that's characteristic of cumulative measurements.I=01: Sampled Value. The reported value is a sampled instantaneous value.
In this document, the value I=00 is the reserved value and MUST NOT be used. If the value I=00 is received, then the XR block MUST be ignored by the receiver. Don't you dare use I=00. ๐
โโ๏ธ
Reserved: 6 bits ๐ซถ
This field is reserved for future definition. Until then, the bits in this field MUST be set to zero and MUST be ignored by the receiver. Same energy as the last reserved field, just a different spot. ๐ง
Block length: 16 bits ๐
The constant 3, as defined for this field in Section 3 of RFC 3611 [RFC3611]. โจ
SSRC of Source: 32 bits ๐ฆ
The SSRC of the media source SHALL be set to the value of the SSRC identifier of the reporting RTP stream that the XR relates to. ๐
Synchronization Offset: 64 bits ๐
This is the synchronization offset of the reporting RTP stream, relative to the reference stream with the same CNAME. The calculation is similar to the Difference D calculation in RFC 3550. So if Si is the NTP timestamp from reporting RTP packet i, Ri is the arrival time of that packet in NTP timestamp units, Sj is the NTP timestamp from reference RTP packet j, and Rj is the arrival time of that packet in NTP timestamp units, then the value of the Synchronization Offset D may be expressed as:
D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)
If in-band delivery of NTP-format timestamps is supported [RFC6051], then Si and Sj should be obtained directly from the RTP packets where NTP timestamps are available. If not, Si and Sj should be calculated from their corresponding RTP timestamps. ๐ฅ
The value of the Synchronization Offset is represented using a 64-bit signed NTP-format timestamp, as defined in [RFC5905]. That's a 64-bit signed fixed-point number, with the integer part in the first 32 bits and the fractional part in the last 32 bits. ๐งฎ
Now the sign check, which is so important: a positive value means the reporting stream leads before the reference stream, while a negative one means the reporting stream lags behind the reference stream. An offset of zero means the stream is the reference stream. โจ
If the measurement is unavailable, the value of this field with all bits set to 1 MUST be reported. Unavailable? All ones, no exceptions. ๐ฃ
5. SDP Signaling ๐
[RFC3611] defines how SDP (Session Description Protocol) [RFC4566] is used to signal the use of XR blocks. Here's the tea: XR blocks MAY be used without prior signaling. Flexible, no cap. ๐
5.1. SDP rtcp-xr-attrib Attribute Extension ๐ง
Using the Augmented Backus-Naur Form (ABNF) [RFC5234], two new parameters are defined for the two report blocks in this document. They're meant to be used with SDP [RFC4566]. They have the following syntax within the "rtcp-xr" attribute [RFC3611]:
xr-format =/ xr-rfisd-block
/ xr-rfso-block
xr-rfisd-block = "rtp-flow-init-syn-delay"
xr-rfso-block = "rtp-flow-syn-offset"
For a detailed description and the full syntax of the "rtcp-xr" attribute, refer to Section 5.1 of RFC 3611 [RFC3611]. ๐
5.2. Offer/Answer Usage ๐
When SDP is used in the offer/answer context, the SDP Offer/Answer usage defined in [RFC3611] applies. Easy, you already know the rules from RFC 3611. ๐ซถ
6. IANA Considerations ๐
New report block types for RTCP XR are subject to IANA registration. For general guidelines on IANA allocations for RTCP XR, refer to Section 6.2 of [RFC3611]. ๐
This document assigns two new block type values in the RTCP XR Block Type Registry:
Name: RFISD
Long Name: RTP Flow Initial Synchronization Delay
Value 27
Reference: Section 3
Name: RFSO
Long Name: RTP Flow Synchronization Offset
Value 28
Reference: Section 4
This document also registers two new SDP [RFC4566] parameters for the "rtcp-xr" attribute in the RTCP XR SDP Parameters Registry:
"rtp-flow-init-syn-delay ""rtp-flow-syn-offset"
The contact information for the registrations is:
RAI Area Directors <rai-ads@tools.ietf.org> ๐ฌ
7. Security Considerations ๐ฅ
Okay, this one is serious, bestie. ๐ When using Secure RTP [RFC3711], or other media-layer security, reporting accurate synchronization offset information can expose details about the timing of the cryptographic operations that protect the media. There's a possibility that this timing information could enable a side-channel attack on the encryption. For environments where this attack is a concern, implementations need to take care to ensure cryptographic processing and media compression take the same amount of time irrespective of the media content, so the potential attack doesn't work. ๐
Besides this, it is believed that this RTCP XR block introduces no new security considerations beyond those described in [RFC3611]. Phew. ๐ซถ
8. Acknowledgements โจ
The authors would like to thank Bill Ver Steeg, David R. Oran, Ali Begen, Colin Perkins, Roni Even, Kevin Gross, Jing Zhao, Fernando Boronat Segui, Mario Montagud Climent, Youqing Yang, Wenxiao Yu, Yinliang Hu, Jonathan Lennox, and Stephen Farrel for their valuable comments and suggestions on this document. ๐๐
9. References ๐
9.1. Normative References ๐โจ
Okay, these are the ones you have to read to understand this spec, no skipping, bestie ๐ซถ
[RFC2119]Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.[RFC3550]Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003.[RFC3611]Friedman, T., Caceres, R., and A. Clark, "RTP Control Protocol Extended Reports (RTCP XR)", RFC 3611, November 2003.[RFC3711]Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, March 2004.[RFC4566]Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006.[RFC5234]Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.[RFC5905]Mills, D., Martin, J., Burbank, J., and W. Kasch, "Network Time Protocol Version 4: Protocol and Algorithms Specification", RFC 5905, June 2010.[RFC6051]Perkins, C. and T. Schierl, "Rapid Synchronisation of RTP Flows", RFC 6051, November 2010.[RFC6190]Wenger, S., Wang, Y., Schierl, T., and A. Eleftheriadis, "RTP Payload Format for Scalable Video Coding", RFC 6190, May 2011.[RFC6776]Wu, Q., "Measurement Identity and information Reporting using SDES item and XR Block", RFC 6776, August 2012.
9.2. Informative References ๐ธ
These ones are extra helpful background reading, but they're not strictly required, so no panic ๐ง
[RFC6390]Clark, A. and B. Claise, "Guidelines for Considering New Performance Metric Development", RFC 6390, October 2011.[RFC6792]Wu, Q., "Guidelines for Use of the RTP Monitoring Framework", RFC 6792, November 2012.[TR-126]Broadband Forum, "Triple-play Services Quality of Experience (QoE) Requirements", Technical Report TR-126, December 2006.[Y.1540]ITU-T, "IP packet transfer and availability performance parameters", ITU-T Recommendation Y.1540, November 2007.
Appendix A. Metrics Represented Using the Template from RFC 6390 ๐
Okay this appendix is giving metric template realness ๐ฅ It lays out both metrics using the RFC 6390 template, so you can see every single piece in one place.
a. Initial Synchronization Delay Metric ๐ฆ
- Metric Name: RTP Initial Synchronization Delay
- Metric Description: See the definition of "Initial Synchronization Delay" in Section 2.1.
- Method of Measurement or Calculation: See the definition of the "Initial Synchronization Delay" field in Section 3.2.
- Units of Measurement: See the definition of the "Initial Synchronization Delay" field in Section 3.2.
- Measurement Point(s) with Potential Measurement Domain: See the first paragraph of Section 3.
- Measurement Timing: See the second paragraph of Section 3.
- Use and applications: See Section 1.4.
- Reporting model: See RFC 3611.
b. Synchronization Offset Metric ๐
- Metric Name: RTP Synchronization Offset Delay
- Metric Description: See the definition of "Synchronization Offset" in Section 1.2.
- Method of Measurement or Calculation: See the definition of the "Synchronization Offset" field in Section 4.2.
- Units of Measurement: See the definition of the "Synchronization Offset" field in Section 4.2.
- Measurement Point(s) with Potential Measurement Domain: See the second paragraph of Section 4.
- Measurement Timing: See the third paragraph of Section 4.2 for measurement timing and the Interval Metric flag.
- Use and applications: See Section 1.4.
- Reporting model: See RFC 3611.
Authors' Addresses ๐
Meet the brilliant humans behind this spec, iykyk ๐
Hitoshi Asaeda
National Institute of Information and Communications Technology
4-2-1 Nukui-Kitamachi
Koganei, Tokyo 184-8795
Japan
EMail: asaeda@nict.go.jp
Qin Wu
Huawei Technologies Co., Ltd.
101 Software Avenue, Yuhua District
Nanjing, Jiangsu 210012
China
EMail: bill.wu@huawei.com
Rachel Huang
Huawei Technologies Co., Ltd.
101 Software Avenue, Yuhua District
Nanjing, Jiangsu 210012
China
EMail: Rachel@huawei.com
๐ฆ where this page comes from
- ietf: rfc7244 2014-05
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms