<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='http://xml.resource.org/authoring/rfc2629.xslt' ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2250 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2250.xml">
<!ENTITY rfc3611 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3611.xml">
<!ENTITY rfc3357 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3357.xml">
<!ENTITY rfc3550 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY rfc4566 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4566.xml">
<!ENTITY rfc5216 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5216.xml">
<!ENTITY rfc5234 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5234.xml">
<!ENTITY rfc5296 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5296.xml">
<!ENTITY rfc5247 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5247.xml">
<!ENTITY I-D.ietf-avt-rapid-rtp-sync PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-avt-rapid-rtp-sync.xml">
<!ENTITY I-D.ietf-pmol-metrics-framework PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-pmol-metrics-framework.xml">
<!ENTITY I-D.hunt-avt-monarch PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.hunt-avt-monarch.xml">
<!ENTITY I-D.ietf-avt-rtp-svc PUBLIC "" "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-avt-rtp-svc.xml">
]>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="yes" ?>
<rfc category="std" docName="draft-asaeda-xrblock-rtcp-xr-synchronization-01"
     ipr="pre5378Trust200902">
  <front>
    <title abbrev="SDO Report Blocks">RTCP XR Blocks for Synchronization Delay
    and Offset Metrics Reporting</title>

    <author fullname="Hitoshi Asaeda" initials="H" surname="Asaeda">
      <organization>Keio University</organization>

      <address>
        <postal>
          <street>Graduate School of Media and Governance</street>

          <street>5322 Endo</street>

          <city>Fujisawa</city>

          <region>Kanagawa</region>

          <code>252-0882</code>

          <country>Japan</country>
        </postal>

        <email>asaeda@wide.ad.jp</email>
      </address>
    </author>

    <author fullname="Rachel Huang" initials="R" surname="Huang">
      <organization abbrev="Huawei">Huawei Technologies Co.,
      Ltd.</organization>

      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

          <country>China</country>
        </postal>

        <email>Rachel@huawei.com</email>
      </address>
    </author>

    <author fullname="Qin Wu" initials="Q" surname="Wu">
      <organization abbrev="Huawei">Huawei Technologies Co.,
      Ltd.</organization>

      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

          <country>China</country>
        </postal>

        <email>sunseawq@huawei.com</email>
      </address>
    </author>

    <date year="2011" />

    <abstract>
      <t>This document defines an RTCP XR Report Block and associated SDP
      parameters that allows the reporting of synchronization delay and offset
      metrics for use in a range of RTP applications.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>This draft defines a new block type to augment those defined in <xref
      target="RFC3611"></xref>, for use in a range of RTP applications.
      <vspace blankLines="1" /> This new block type supports reporting of
      Initial synchronization delay. Information is recorded about the
      difference between the start of RTP sessions and the time the RTP
      receiver acquires all components of RTP sessions <xref
      target="RFC6051"></xref>. It also supports reporting of the general
      Synchronization offset status of an arbitrary number of streams, with
      the same RTCP CNAME. Information is recorded about the synchronization
      offset time of each RTP stream relative to the reference RTP stream with
      the same CNAME and General Synchronization Offset of zero. <vspace
      blankLines="1" />The metrics belong to the class of transport level
      metrics defined in <xref target="MONARCH"></xref> (work in
      progress).</t>
    </section>

    <section title="Terminology">
      <section title="Standards Language">
        <t>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 <xref
        target="RFC2119">RFC 2119</xref>.</t>
      </section>
    </section>

    <section title="Applicability">
      <t>The report blocks defined in this document could be used by dedicated
      network monitoring applications.</t>

      <t>When joining a layered video session in such an application, a
      receiver may not synchronize playout across the multimedia session until
      RTCP SR packets have been received on all of the component RTP sessions.
      For unicast session, the delay due to negotiation of NAT pinholes,
      firewall holes, quality-of-service, and media security keys is
      contributed to such initial synchronization playout. For multicast
      session, such initial synchronization delay varies with the session
      bandwidth and the number of members, the number of senders in the
      session. The RTP flow synchronization delay block can be used to report
      the initial synchronization delay of these RTP streams beyond the
      information carried in the standard RTCP packet format. In the absence
      of packet loss, the initial synchronization delay equals 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 needs to wait until the reporting interval has
      passed, and the next RTCP SR packet is sent.</t>

      <t>In an RTP multimedia session, there can be an arbitrary number of
      streams, with the same RTCP CNAME. The RTP Flows General Synchronization
      Offset block can be used to report the general Synchronization offset
      status of these RTP streams beyond the information carried in the
      standard RTCP packet format. For layered session or multimedia session,
      the first RTP packet can be chosen as the basic packet of reference RTP
      stream.</t>
    </section>

    <section anchor="RFISD"
             title="RTP Flows Initial Synchronization Delay Report Block">
      <t>This block reports Initial synchronization delay beyond the
      information carried in the standard RTCP packet format. Information is
      recorded about the the difference between the start of RTP sessions and
      the time the RTP receiver acquires all components of RTP sessions <xref
      target="RFC6051"></xref>. The components of RTP session are referred to
      as one RTP session for each media type or the media content in each
      layer contained in RTP Control Protocol (RTCP) sender report (SR)
      packets <xref target="RFC3550"></xref>.</t>

      <section title="Metric Block Structure">
        <t>The RTP Flows Initial Synchronization Delay Report Block has the
        following format: <figure>
            <artwork>
    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=TBD    |   Reserved    |          Block length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      SSRC of Sender                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |               Initial Synchronization Delay                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure></t>
      </section>

      <section title="Definition of Fields in RTP Flow Initial Synchronization Delay Metrics Block">
        <t><list style="hanging">
            <t hangText="Block type (BT): 8 bits"><vspace blankLines="1" />The
            Statistics Summary Report Block is identified by the constant
            &lt;RFISD&gt;. <vspace blankLines="1" /></t>

            <!--            <t hangText="Rsd.: 8 bits"><vspace blankLines="1" /> 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.
	    <vspace blankLines="1" /></t>-->

            <t hangText="Block length: 16 bits"><vspace blankLines="1" />The
            constant 2, in accordance with the definition of this field in
            Section 3 of <xref target="RFC3611">RFC 3611</xref>. <vspace
            blankLines="1" /></t>

            <t hangText="SSRC of Sender: 32 bits"><vspace blankLines="1" />The
            SSRC of the RTP data packet source being reported upon by this
            report block. (Section 4.1 of <xref target="RFC3611"></xref>).</t>

            <t hangText="Initial Synchronization Delay: 32 bits"><vspace
            blankLines="1" />The average delay, expressed in units of 1/65536
            seconds, between the RTCP packets received on all of the
            components RTP sessions and the beginning of session <xref
            target="RFC6051"></xref>. The value is calculated as follows:
            <vspace blankLines="1" /> <list>
                <t>The average time, expressed in units of 1/65536 seconds,
                taken to receive the first RTCP packet in the RTP session with
                the longest RTCP reporting interval <xref
                target="RFC6051"></xref>.</t>
              </list></t>
          </list></t>
      </section>
    </section>

    <section anchor="RFGSO"
             title="RTP Flows General Synchronization Offset Metrics Block">
      <t>In an RTP multimedia session, there can be an arbitrary number of
      streams, with the same RTCP CNAME. This block reports the general
      Synchronization offset status of these RTP streams beyond the
      information carried in the standard RTCP packet format. Information is
      recorded about the synchronization offset time of each RTP stream
      relative to the reference RTP stream with the same CNAME and General
      Synchronisation Offset of zero. <vspace blankLines="1" /></t>

      <section title="Metric Block Structure">
        <t>The RTP Flow General Synchronization Offset Report Block has the
        following format: <figure>
            <artwork>   
    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=TBD    |   Reserved    |         Block length          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        SSRC of source                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                General Synchronization Offset                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure></t>
      </section>

      <section title="Definition of Fields in RTP Flow General Synchronization Offset Metrics Block">
        <t><list style="hanging">
            <t hangText="Block type (BT): 8 bits"><vspace blankLines="1" />The
            RTP Flow General Synchronization Offset Report Block is identified
            by the constant &lt;RFGSO&gt;. <vspace blankLines="1" /></t>

            <!--            <t hangText="Rsd.: 8 bits"><vspace blankLines="1" /> 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.
	    <vspace blankLines="1" /></t>-->

            <t hangText="Block length: 16 bits"><vspace blankLines="1" />The
            constant 3, in accordance with the definition of this field in
            Section 3 of <xref target="RFC3611">RFC 3611</xref>. <vspace
            blankLines="1" /></t>

            <t hangText="SSRC of Source: 32 bits"><vspace blankLines="1" />The
            SSRC of the RTP data packet source being reported upon by this
            report block. (Section 4.1 of <xref target="RFC3611"></xref>).</t>

            <t hangText="General synchronization offset: 32 bits"><vspace
            blankLines="1" />This field represents the synchronization offset
            time of one RTP stream in milliseconds relative to the reference
            RTP stream with the same CNAME and General Synchronisation Offset
            of zero <xref target="RFC6051"></xref> This value is calculated
            based on the interarrival time between arbitray RTP packet and the
            reference RTP packet with the same CNAME , and timestamps of this
            arbitray RTP packet and the reference RTP packet with the same
            CNAME.</t>
          </list></t>
      </section>
    </section>

    <section title="SDP Signaling">
      <t>Two new parameters are defined for the two report blocks defined in
      this document to be used with Session Description Protocol (SDP) <xref
      target="RFC4566"></xref> using the Augmented Backus-Naur Form (ABNF)
      <xref target="RFC5234"></xref>. They have the following syntax within
      the "rtcp-xr" attribute <xref target="RFC3611"></xref>: <figure
          align="left">
          <artwork>
     rtcp-xr-attrib =  "a=rtcp-xr:"
                       [xr-format *(SP xr-format)] CRLF
           xr-format = RTP-flows-init-syn
                    / RTP-flows-general-syn

           RTP-flows-init-syn = "RTP-flows-init-syn"
                           ["=" max-size]
              max-size = 1*DIGIT ; maximum block size in octets

           RTP-flow-general-syn = "RTP-flows-general-syn"
                             ["=" max-size]
              max-size = 1*DIGIT ; maximum block size in octets
</artwork>
        </figure> Refer to Section 5.1 of <xref target="RFC3611">RFC
      3611</xref> for a detailed description and the full syntax of the
      "rtcp-xr" attribute.</t>
    </section>

    <section title="IANA Considerations">
      <t>New report block types for RTCP XR are subject to IANA registration.
      For general guidelines on IANA allocations for RTCP XR, refer to <xref
      target="RFC3611">Section 6.2 of</xref>.</t>

      <t>This document assigns two new block type values in the RTCP XR Block
      Type Registry: <list>
          <t><list hangIndent="12" style="hanging">
              <t hangText="Name:">RFISD</t>

              <t hangText="Long Name:">RTP Flows Initial Synchronization
              Delay</t>

              <t hangText="Value">&lt;RFISD&gt;</t>

              <t hangText="Reference:"><xref target="RFISD"></xref></t>

              <t hangText="Name:">RFGSO</t>

              <t hangText="Long Name:">RTP Flows General Synchronization
              Offset Metrics Block</t>

              <t hangText="Value">&lt;RFGSO&gt;</t>

              <t hangText="Reference:"><xref target="RFGSO"></xref></t>
            </list></t>
        </list></t>

      <t>This document also registers two new SDP <xref
      target="RFC4566"></xref> parameters for the "rtcp-xr" attribute in the
      RTCP XR SDP Parameters Registry: <list>
          <t><list style="symbols">
              <t>"RTP-flows-init-syn"</t>

              <t>"RTP-flows-general-syn"</t>
            </list></t>
        </list></t>

      <t>The contact information for the registrations is: <list>
          <t><list style="hanging">
              <t>Qin Wu</t>

              <t>sunseawq@huawei.com</t>

              <t>101 Software Avenue, Yuhua District</t>

              <t>Nanjing, Jiangsu 210012, China</t>
            </list></t>
        </list></t>
    </section>

    <section title="Security Considerations">
      <t>The new RTCP XR report blocks proposed in this document introduces no
      new security considerations beyond those described in <xref
      target="RFC3611"></xref>.</t>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank Bill Ver Steeg, David R Oran, Ali
      Begen, Colin Perkins, Roni Even, Youqing Yang, Wenxiao Yu and Yinliang
      Hu for their valuable comments and suggestions on this document.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <reference anchor="I-D.ietf-avt-rtp-svc">
        <front>
          <title>RTP Payload Format for Scalable Video Coding</title>

          <author fullname="Stephan Wenger" initials="S" surname="Wenger">
            <organization></organization>
          </author>

          <author fullname="Ye-Kui Wang" initials="Y" surname="Wang">
            <organization></organization>
          </author>

          <author fullname="Thomas Schierl" initials="T" surname="Schierl">
            <organization></organization>
          </author>

          <author fullname="Alex Eleftheriadis" initials="A"
                  surname="Eleftheriadis">
            <organization></organization>
          </author>

          <date day="1" month="February" year="2011" />

          <abstract>
            <t>This memo describes an RTP payload format for Scalable Video
            Coding (SVC) as defined in Annex G of ITU-T Recommendation H.264,
            which is technically identical to Amendment 3 of ISO/IEC
            International Standard 14496-10. The RTP payload format allows for
            packetization of one or more Network Abstraction Layer (NAL) units
            in each RTP packet payload, as well as fragmentation of a NAL unit
            in multiple RTP packets. Furthermore, it supports transmission of
            an SVC stream over a single as well as multiple RTP sessions. The
            payload format defines a new media subtype name "H264-SVC", but is
            still backwards compatible to [I-D.ietf-avt-rtp-rfc3984bis] since
            the base layer, when encapsulated in its own RTP stream, must use
            the H.264 media subtype name ("H264") and the packetization method
            specified in [I- D.ietf-avt-rtp-rfc3984bis]. The payload format
            has wide applicability in videoconferencing, Internet video
            streaming, and high bit-rate entertainment-quality video, among
            others.Table of Contents</t>
          </abstract>
        </front>

        <seriesInfo name="Internet-Draft" value="draft-ietf-avt-rtp-svc-27" />

        <format target="http://www.ietf.org/internet-drafts/draft-ietf-avt-rtp-svc-27.txt"
                type="TXT" />
      </reference>

      &rfc2250;

      &rfc3611;

      &rfc2119;

      &rfc4566;

      &rfc5234;

      &rfc3550;

      <reference anchor="RFC6051">
        <front>
          <title>Rapid Synchronisation of RTP Flows</title>

          <author fullname="Colin Perkins" initials="C." surname="Perkins">
            <organization></organization>
          </author>

          <author fullname="Thomas Schierl" initials="T" surname="Schierl">
            <organization></organization>
          </author>

          <date day="10" month="November" year="2010" />

          <abstract>
            <t>This memo outlines how RTP sessions are synchronised, and
            discusses how rapidly such synchronisation can occur. We show that
            most RTP sessions can be synchronised immediately, but that the
            use of video switching multipoint conference units (MCUs) or large
            source specific multicast (SSM) groups can greatly increase the
            synchronisation delay. This increase in delay can be unacceptable
            to some applications that use layered and/or multi-description
            codecs. This memo introduces three mechanisms to reduce the
            synchronisation delay for such sessions. First, it updates the RTP
            Control Protocol (RTCP) timing rules to reduce the initial
            synchronisation delay for SSM sessions. Second, a new feedback
            packet is defined for use with the Extended RTP Profile for
            RTCP-based Feedback (RTP/AVPF), allowing video switching MCUs to
            rapidly request resynchronisation. Finally, new RTP header
            extensions are defined to allow rapid synchronisation of late
            joiners, and guarantee correct timestamp based decoding order
            recovery for layered codecs in the presence of clock skew.</t>
          </abstract>
        </front>

        <seriesInfo name="RFC" value="6051" />

        <format target="http://tools.ietf.org/html/rfc6051" type="TXT" />
      </reference>
    </references>

    <references title="Informative References">
      <reference anchor="MONARCH">
        <front>
          <title>Monitoring Architectures for RTP</title>

          <author fullname="Qin Wu" initials="Q." surname="Wu">
            <organization>Huawei</organization>
          </author>

          <date month="April" year="2011" />
        </front>

        <seriesInfo name="ID" value="draft-ietf-avtcore-monarch-00" />

        <format type="TXT" />
      </reference>

      <reference anchor="PMOL">
        <front>
          <title>Framework for Performance Metric Development</title>

          <author fullname="Alan Clark " initials="A." surname="Clark">
            <organization>Telchemy Incorporated</organization>
          </author>

          <date month="January" year="2011" />
        </front>

        <seriesInfo name="ID" value="draft-ietf-pmol-metrics-framework-08" />

        <format type="TXT" />
      </reference>

      <reference anchor="MEASIDENT">
        <front>
          <title>RTCP XR Measurement Identifier Block</title>

          <author fullname="Geoff Hunt" initials="G." surname="Hunt">
            <organization></organization>
          </author>

          <author fullname="Alan Clark" initials="A." surname="Clark">
            <organization>Telchemy</organization>
          </author>

          <date month="May" year="2009" />
        </front>

        <seriesInfo name="ID" value="draft-ietf-avt-rtcp-xr-meas-identity-02" />

        <format type="TXT" />
      </reference>
    </references>

    <section title="Change Log">
      <t>Note to the RFC-Editor: please remove this section prior to
      publication as an RFC.</t>

      <section title="draft-asaeda-xrblock-rtcp-xr-syncronization-00">
        <t>This document is separated from
        draft-wu-xrblock-rtcp-xr-quality-monitoring-01 with some editorial
        changes and focuses on RTP Flow Initial Synchronization Delay and RTP
        Flows General Synchronization Offset.</t>
      </section>

      <section title="draft-asaeda-xrblock-rtcp-xr-syncronization-01">
        <t>Separate Synchronization Delay and Offset Metrics Block into two
        independent block based on comments on the list.</t>
      </section>
    </section>
  </back>
</rfc>

