RFC 7244 PROPOSED STANDARD RTP · RTCP · SYNCHRONIZATION

RTCP XR Sync Delay: RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Synchronization Delay and Offset Metrics Reporting

Two RTCP report blocks that tell a sender how long a receiver took to line up its media streams, and how far apart they are.

On rfc-editor.org ↗
PUBLISHED
May 2014
AUTHORS
H. Asaeda, Q. Wu, R. Huang
STREAM
IETF
INITIAL DELAY BLOCK TYPE
27 (RFISD)
OFFSET BLOCK TYPE
28 (RFSO)
DELAY UNIT
1/65536 seconds
OFFSET SIZE
64-bit signed NTP-format
BLOCK LENGTHS
2 (delay), 3 (offset)
UNAVAILABLE MEASUREMENT
All bits set to 1
DOI
10.17487/RFC7244

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                         H. Asaeda
Request for Comments: 7244                                          NICT
Category: Standards Track                                          Q. Wu
ISSN: 2070-1721                                                 R. Huang
                                                                  Huawei
                                                                May 2014


        RTP Control Protocol (RTCP) Extended Report (XR) Blocks
         for Synchronization Delay and Offset Metrics Reporting

Abstract

   This document defines two RTP Control Protocol (RTCP) Extended Report
   (XR) blocks that allow the reporting of initial synchronization delay
   and synchronization offset metrics for use in a range of RTP
   applications.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained 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) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to 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 are provided 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

   This document defines two new block types to augment those defined in
   [RFC3611], for use in a range of RTP applications.

   The first new block type supports reporting of the Initial
   Synchronization Delay to establish a multimedia session.  Information
   is recorded about the time difference between the start of RTP
   sessions and the time the RTP receiver acquires all components of RTP
   sessions in the multimedia session [RFC6051].

   The second new block type supports reporting of the relative
   synchronization offset time of two arbitrary streams (e.g., between
   audio and video streams), with the same RTCP CNAME included in RTCP
   Source description items (SDES) packets [RFC3550].

   These metrics belong to the class of transport-level metrics defined
   in [RFC6792].

1.2.  RTCP and RTCP XR Reports

   The use of RTCP for reporting is defined in [RFC3550].  [RFC3611]
   defined an extensible structure for reporting -- the RTCP Extended
   Report (XR).  This document defines a new Extended Report block for
   use with [RFC3550] and [RFC3611].

1.3.  Performance Metrics Framework

   "Guidelines for Considering New Performance Metric Development"
   [RFC6390] provides guidance on the definition and specification of
   performance metrics.  "Guidelines for Use of the RTP Monitoring
   Framework" [RFC6792] provides guidance for reporting block format
   using RTCP XR.  The metrics block described in this document is in
   accordance with the guidelines in [RFC6390] and [RFC6792].

1.4.  Applicability

   When joining 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 been received on all components of RTP sessions.
   The components of RTP sessions are per-media-type RTP sessions for
   the multimedia sessions or per-layer RTP sessions for the layered
   video sessions.  For multicast sessions, the Initial Synchronization
   Delay metric varies 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 document
   can be used to report such a metric, i.e., the Initial
   Synchronization Delay to receive all the RTP streams belonging to the
   same multimedia session or layered video session.  In the absence of
   packet loss, the Initial Synchronization Delay is equal to the
   average time taken to receive the first RTCP packet in the RTP
   session with the longest RTCP reporting interval.  In the presence of
   packet loss, the 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 is sent.

   Receivers of the RTP Flow Initial Synchronization Delay Metrics Block
   could use this metric to compare with targets (i.e., Service Level
   Agreement or thresholds of the system) to help ensure the quality of
   real-time application performance.

   In an RTP multimedia session, there can be an arbitrary number of
   streams carried in different RTP sessions, with the same RTCP CNAME.
   These streams may be not synchronized with each other.  For example,
   one audio stream and one video stream belong to the same session, and
   the audio stream is transmitted lagging behind the video stream for
   multiple tens of milliseconds [TR-126].  The RTP Flow Synchronization
   Offset block can be used to report such synchronization offset
   between video and audio streams.  This block is also applied to the
   case where an RTP session can contain media streams with media from
   multiple media types.  The metrics defined in the RTP Flow
   Synchronization Offset Metrics Block can be used by the network
   manager for troubleshooting and dealing 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].

   In addition, the following terms are defined:

   Initial Synchronization Delay:

      A multimedia session comprises 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
      ensure satisfactory Quality of Experience (QoE).  Two media
      streams can be of the same or different media types belonging to
      one RTP session, or of different media types belonging to one
      multimedia session.  The Synchronization Offset is the relative
      time difference of the two media streams that need to be
      synchronized.

3.  RTP Flow Initial Synchronization Delay Metrics Block

   This block is sent by RTP receivers and reports the Initial
   Synchronization Delay beyond the information carried in the standard
   RTCP packet format.  Information is recorded about the time
   difference between the start of the multimedia session and the time
   when the RTP receiver acquires all components of RTP sessions
   [RFC6051] measured at the receiving end of the RTP stream.

   This block needs to be exchanged only 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 has the
   following format:

       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

      The RTP Flow Initial Synchronization Delay Metrics Block is
      identified by the constant 27.

   Reserved: 8 bits

      This field is reserved for future definition.  In the absence of
      such a definition, the bits in this field MUST be set to zero and
      ignored by the receiver.

   Block length: 16 bits

      The constant 2, in accordance with the definition of 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.

   Initial Synchronization Delay: 32 bits

      The average delay, expressed in units of 1/65536 seconds, from the
      beginning of the multimedia session [RFC6051] to the time when
      RTCP packets are received 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.  The value of the Initial
      Synchronization Delay is calculated based on received RTCP SR
      packets or the RTP header extension containing 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 or to the average
      time taken to receive the first RTP header extension containing
      the in-band mapping of RTP and NTP-format timestamps.

      If the measurement is unavailable, the value of this field with
      all bits set to 1 MUST be reported.

4.  RTP Flow Synchronization Offset Metrics Block

   In the RTP multimedia sessions or one RTP session, there can be an
   arbitrary number of media streams and each media stream (e.g., audio
   stream or video stream) is sent in a separate RTP stream.  In case of
   one RTP session, each media stream or each medium uses a different
   SSRC.  The receiver correlates these media streams that need to be
   synchronized by means of the RTCP CNAME contained in the RTCP Source
   Description (SDES) packets [RFC3550].

   This block is sent by RTP receivers and reports the synchronization
   offset of two arbitrary RTP streams that need to be synchronized in
   the RTP multimedia session.  Information is recorded about the
   relative average time difference between two arbitrary RTP streams
   (the reporting stream and the reference stream) with the same CNAME
   and measured at the receiving end of the RTP stream.  In order to
   tell what the offset of the reporting stream is relative to, the
   block for the reference stream with synchronization offset of zero
   should be reported.

   Instances of this block refer by synchronization source (SSRC) to the
   separate auxiliary Measurement Information block [RFC6776], which
   describes measurement periods in use (see Section 4.2 of [RFC6776]).
   This metrics block relies on the measurement period in the
   Measurement Information block indicating the span of the report and
   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.

4.1.  Metric Block Structure

   The RTP Flow General Synchronization Offset Metrics Block has the
   following format:

       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.

   Interval Metric Flag (I): 2 bits

      This field is used to indicate whether the Burst/Gap Discard
      Summary Statistics metrics are Sampled, Interval, or Cumulative
      metrics:

         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 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.

   Reserved: 6 bits

      This field is reserved for future definition.  In the absence of
      such a definition, the bits in this field MUST be set to zero and
      MUST be ignored by the receiver.

   Block length: 16 bits

      The constant 3, in accordance with the definition of 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 to which the XR relates.

   Synchronization Offset: 64 bits

      The synchronization offset of the reporting RTP stream relative to
      the reference stream with the same CNAME.  The calculation of
      Synchronization Offset is similar to the Difference D calculation
      in the RFC 3550.  That is to say, if Si is the NTP timestamp from
      the reporting RTP packet i, Ri is the time of arrival in NTP
      timestamp units for reporting RTP packet i, Sj is the NTP
      timestamp from the reference RTP packet j, and Rj is the time of
      arrival in NTP timestamp units for reference RTP packet j, 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], 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], which is 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.  A
      positive value of the Synchronization Offset means that the
      reporting stream leads before the reference stream, while a
      negative one means the reporting stream lags behind the reference
      stream.  The Synchronization 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.

5.  SDP Signaling

   [RFC3611] defines the use of SDP (Session Description Protocol)
   [RFC4566] for signaling the use of XR blocks.  XR blocks MAY be used
   without prior signaling.

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 defined in this
   document 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"

   Refer to Section 5.1 of RFC 3611 [RFC3611] for a detailed description
   and the full syntax of the "rtcp-xr" attribute.

5.2.  Offer/Answer Usage

   When SDP is used in the offer/answer context, the SDP Offer/Answer
   usage defined in [RFC3611] applies.

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

   When using Secure RTP [RFC3711], or other media-layer security,
   reporting accurate synchronization offset information can expose some
   details about the timing of the cryptographic operations that are
   used to protect the media.  There is a possibility that this timing
   information might 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, to
   avoid the potential attack.

   Besides this, it is believed that this RTCP XR block introduces no
   new security considerations beyond those described in [RFC3611].

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

   [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

   [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

   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

   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

AI ELI5

On this page
PROBLEMWhen audio and video (or layered video) travel in separate RTP sessions, a receiver cannot synchronize playout until it has the timing information for every session, and the streams can drift apart, yet there was no standard way to report either.
MECHANISMRFC 7244 defines two RTCP XR blocks: the Initial Synchronization Delay block (type 27), an average delay in units of 1/65536 seconds, and the Synchronization Offset block (type 28), a 64-bit signed NTP-format difference between a reporting stream and a reference stream.
WHY IT MATTERSReceivers can report both numbers so that managers can compare against targets and troubleshoot user-experience problems. The RFC is a Proposed Standard and has not been obsoleted or updated.

§1Two New Synchronization Metrics

This document adds two block types to the RTCP Extended Report (XR) framework of RFC 3611. The first reports the Initial Synchronization Delay: the time between the start of the RTP sessions and the moment the receiver has acquired all components of the multimedia session. The second reports the relative Synchronization Offset between two arbitrary streams, such as audio and video, that carry the same RTCP CNAME.

Both metrics are transport-level metrics in the sense of RFC 6792, and both blocks follow the guidelines of RFC 6390 and RFC 6792.

When music and a movie are played from two different places, you want to know two things: how long it took to start in step, and whether they are still in step.

§2Why and When They Are Useful

A multimedia session is a set of concurrent RTP sessions among the same participants, one per media type. In layered video, each layer can have its own RTP session. A receiver joining such a session may not synchronize playout until it has received RTCP Sender Report (SR) packets on all components. For multicast, the Initial Synchronization Delay varies with the session bandwidth, the number of members and the number of senders. Without packet loss, it equals the average time to receive the first RTCP packet in the RTP session with the longest RTCP reporting interval. With loss, synchronization should rely on the in-band mapping of RTP and NTP-format timestamps from RFC 6051 or wait for the next SR.

Receivers can compare the delay with targets such as a Service Level Agreement. The offset block addresses streams that drift: the text gives an example of audio lagging behind video by multiple tens of milliseconds. A network manager can use it for troubleshooting and user-experience issues, and it also applies to one RTP session carrying several media types.

If the sound arrives a little after the picture, the show feels wrong. These reports let someone see that and fix it.

§3The Initial Synchronization Delay Block

This block is sent by RTP receivers and needs to be exchanged only occasionally, for example once at the start of the RTP session. It uses block type BT=27, an 8-bit reserved field and block length 2. The SSRC of source is set to the SSRC carried in any arbitrary component of the RTP sessions in the same multimedia session.

The final 32-bit field is the average delay in units of 1/65536 seconds from the beginning of the multimedia session to the time RTCP packets are received on all component RTP sessions. The beginning is recommended to be the time the receiver joined the first RTP session. The value is computed from received SR packets or from the RTP header extension carrying the in-band RTP-to-NTP mapping. If the measurement is unavailable, the field MUST be reported with all bits set to 1.

It is a stopwatch reading: how long from joining the first stream until every stream was ready to play together.

INITIAL SYNCHRONIZATION DELAY BLOCK (RFC 7244)
RTP Flow Initial Synchronization Delay block
FieldNameSizeValueDescription
BTBT1 byte27Block type, the constant 27.
RESERVEDReserved1 byte0Set to zero and ignored by the receiver.
BLOCK-LENGTHBlock length2 bytes2The constant 2.
SSRCSSRC of source4 bytesSSRC from any component RTP session of the multimedia session.
DELAYInitial Synchronization Delay4 bytesAverage delay in units of 1/65536 seconds; all ones if unavailable.

§4The Synchronization Offset Block

This block compares a reporting stream against a reference stream with the same CNAME. To make the numbers meaningful, a block for the reference stream with an offset of zero should also be reported. It relies on a Measurement Information block (RFC 6776) for the measurement period, SHOULD be sent in the same compound RTCP packet, and MUST be discarded if the measurement period did not arrive in that packet.

The block uses BT=28, the Interval Metric flag I, block length 3, the SSRC of the reporting stream, and a 64-bit Synchronization Offset. Here I=10 is interval, I=11 is cumulative and I=01 is sampled. The value I=00 MUST NOT be used, and a block received with it MUST be ignored.

The offset is computed like the Difference D in RFC 3550: D(i,j) = (Rj - Ri) - (Sj - Si), where S is the NTP timestamp of a packet and R its arrival time in NTP units. It is carried as a 64-bit signed NTP-format value with a 32-bit integer part and a 32-bit fraction. A positive value means the reporting stream leads the reference stream, a negative one means it lags, and zero marks the reference stream. If the measurement is unavailable, all bits MUST be set to 1.

Pick one stream as the leader. The report says how far ahead or behind the other stream is. Zero means it is the leader itself.

SYNCHRONIZATION OFFSET BLOCK (RFC 7244)
RTP Flow Synchronization Offset block
FieldNameSizeValueDescription
BTBT1 byte28Block type, the constant 28.
II2 bitsInterval Metric flag; 00 is reserved.
RESERVEDReserved6 bits0Set to zero and ignored by the receiver.
BLOCK-LENGTHBlock length2 bytes3The constant 3.
SSRCSSRC of source4 bytesSSRC of the reporting RTP stream.
OFFSET-MSWSynchronization Offset, most significant word4 bytesInteger part of the signed NTP-format offset.
OFFSET-LSWSynchronization Offset, least significant word4 bytesFractional part of the signed NTP-format offset.

§5SDP Signaling

XR blocks MAY be used without prior signaling. To signal support, two parameters are added to the rtcp-xr attribute: rtp-flow-init-syn-delay for the first block and rtp-flow-syn-offset for the second. In offer/answer exchanges, the usage defined in RFC 3611 applies.

Each side can tell the other, before the call, which of the two reports it understands.

§6IANA Registrations

Two block types are assigned in the RTCP XR Block Type Registry: 27 for RFISD (RTP Flow Initial Synchronization Delay) and 28 for RFSO (RTP Flow Synchronization Offset). The two SDP parameters above are registered in the RTCP XR SDP Parameters Registry, with the RAI Area Directors as contact.

Numbers 27 and 28 and two short names were written in an official list so they stay reserved for these reports.

§7Security Considerations

When Secure RTP (RFC 3711) or other media-layer security is used, accurate synchronization offsets can expose details of the timing of the cryptographic operations. That might enable a side-channel attack on the encryption. Where this is a concern, implementations need to make cryptographic processing and media compression take the same amount of time regardless of media content. Apart from this, the blocks are believed to add no new security considerations beyond those in RFC 3611.

If the timing report reveals how long locking the messages took, a spy might learn something. Making every message take the same time avoids that.

§8References