<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc3550 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY rfc3551 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3551.xml">
<!ENTITY rfc4585 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4585.xml">
<!ENTITY rfc5124 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5124.xml">
<!ENTITY rfc3095 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3095.xml">
<!ENTITY rfc4588 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4588.xml">
<!ENTITY rfc5104 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5104.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-ietf-avt-rtcp-non-compound-07"
     ipr="full3978" updates="3550,3711,4585">
  <front>
    <title abbrev="Reduced size RTCP in RTP profile">Support for Reduced-Size
    RTCP, Opportunities and Consequences</title>

    <author fullname="Ingemar Johansson" initials="I." surname="Johansson">
      <organization>Ericsson AB</organization>

      <address>
        <postal>
          <street>Laboratoriegrand 11</street>

          <city>SE-971 28 Lulea</city>

          <country>SWEDEN</country>
        </postal>

        <phone>+46 73 0783289</phone>

        <email>ingemar.s.johansson@ericsson.com</email>
      </address>
    </author>

    <author fullname="Magnus Westerlund" initials="M." surname="Westerlund">
      <organization>Ericsson AB</organization>

      <address>
        <postal>
          <street>Färögatan 6</street>

          <city>SE-164 80 Stockholm</city>

          <country>SWEDEN</country>
        </postal>

        <phone>+46 8 7190000</phone>

        <email>magnus.westerlund@ericsson.com</email>
      </address>
    </author>

    <date day="4" month="Sep" year="2008" />

    <abstract>
      <t>This memo discusses benefits and issues that arise when allowing RTCP
      packets to be transmitted with reduced size. The size can be reduced if
      the rules on how to create compound packets outlined in RFC3550 are
      removed or changed. Based on that analysis this memo defines certain
      changes to the rules to allow feedback messages to be sent as
      reduced-size RTCP packets under certain conditions when using the RTP
      AVPF profile (RFC 4585). This document updates <xref
      target="RFC3550"></xref>, <xref target="RFC3711"></xref> and <xref
      target="RFC4585"></xref>.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>In <xref target="RFC3550">RTP</xref> it is currently mandatory to
      send RTP Control Protocol (RTCP) packets as compound packets containing
      at least a Sender Report (SR) or Receiver Report (RR), followed by a
      Source Description (SDES) packet containing at least the CNAME item.
      There are good reasons for this, as discussed below (see <xref
      target="sec-compound-packets"></xref>), however it does result in the
      minimal RTCP packets being quite large.</t>

      <t>The <xref target="RFC4585">RTP profile AVPF</xref> specifies new RTCP
      packet types for feedback messages. Some of these feedback messages
      would benefit from being transmitted with minimal delay. AVPF does
      provide some mechanisms to support this, however for environments with
      low- bitrate links these messages can still consume a large amount of
      resources, and can introduce extra delay in the time it takes to
      completely send the compound packet in the network. It is therefore
      desirable to send just the feedback, without the other parts of a
      compound RTCP packet. This memo proposes such a mechanism, for this, and
      other use cases, as discussed in <xref
      target="sec-use-cases"></xref>.</t>

      <t>There are a number of benefits with reduced-size RTCP, these are
      discussed in <xref target="sec-benefits"></xref>.</t>

      <t>The use of reduced-size RTCP is not without issues. This is discussed
      in <xref target="sec-issues"></xref>. These issues need to be considered
      and are part of the motivation for this document.</t>

      <t>Finally this document defines how AVPF is updated to allow for the
      transmission of reduced-size RTCP in a way that would not substantially
      affect the mechanisms that compound packets provide, see <xref
      target="sec-rules"></xref> for more details. The connection to AVPF (or
      SAVPF) is motivated by the fact that reduced-size RTCP is mainly
      beneficial for event driven feedback purposes and that the AVPF early
      and immediate modes make this possible.</t>

      <t>This document updates <xref target="RFC3550"></xref>, <xref
      target="RFC3711"></xref> and <xref target="RFC4585"></xref>.</t>
    </section>

    <section title="Terminology">
      <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"></xref>.</t>

      <t>The naming convention for RTCP is often confusing. Below a list of
      RTCP terms and what they mean. See also section 6.1 in <xref
      target="RFC3550"></xref> and section 3.1 in <xref
      target="RFC4585"></xref> for details.<list style="hanging">
          <t hangText="RTCP packet:">Can be of different types, contains a
          fixed header part followed by structured elements depending on RTCP
          packet type.</t>

          <t hangText="Lower layer datagram:">Can be interpreted as the UDP
          payload. It may however, depending on the transport, be TCP or DCCP
          payload or something else. Synonymous to "underlying protocol"
          defined in section 3 in <xref target="RFC3550"></xref>.</t>

          <t hangText="Compound RTCP packet:">A collection of two or more RTCP
          packets. A compound RTCP packet is transmitted in a lower layer
          datagram. It must contain at least an RTCP RR or SR packet and a
          SDES packet with the CNAME item. Often "compound" is left out, the
          interpretation of RTCP packet is therefore dependent on the
          context.</t>

          <t hangText="Minimal compound RTCP packet:">A compound RTCP packet
          that contains the RTCP RR or SR packets and the SDES packet with the
          CNAME item with a specified ordering.</t>

          <t hangText="(Full) compound RTCP packet:">A compound RTCP packet
          that conforms to the requirements on minimal compound RTCP packets
          and contains more RTCP packets.</t>

          <t hangText="Reduced-size RTCP packet:">May contain one or more RTCP
          packets but does not follow the compound RTCP rules defined in
          section 6.1 in <xref target="RFC3550"></xref> and are thus neither a
          minimal or a full compound RTCP. See <xref
          target="sec-definition"></xref> for a full definition.</t>
        </list></t>
    </section>

    <section anchor="use-cases" title="Use Cases and Design Rationale">
      <section anchor="sec-compound-packets"
               title="RTCP Compound Packets (Background)">
        <t>Section 6.1 in <xref target="RFC3550"></xref> specifies that an
        RTCP packet must be sent as a compound RTCP packet consisting of at
        least two individual RTCP packets, first an Sender Report (SR) or
        Receiver Report (RR), followed by additional packets including a
        mandatory SDES packet containing a CNAME item for the transmitting
        source identifier (SSRC). Below is a short description what these RTCP
        packet types are used for.</t>

        <t><list style="numbers">
            <t>The sender and receiver reports (see Section 6.4 of <xref
            target="RFC3550"></xref>) provides the RTP session participant
            with the Synchronisation Source (SSRC) Identifier of all RTP
            session participants. Having all participants send these packets
            periodically allows everyone to determine the current number of
            participants. This information is used in the transmission
            scheduling algorithm. Thus this is particularly important for new
            participants so that they quickly can establish a good estimate of
            the group size. Failure to do this would result in RTCP senders
            consuming too much bandwidth.</t>

            <t>Before a new session participant has sent any RTP or RTCP
            packet, it can also avoid SSRC collisions with all the SSRCs it
            sees prior to that transmission. So the possibility to see a
            substantial amount of the participating sources minimizes the risk
            of any collision when selecting SSRC.</t>

            <t>The sender and receiver reports contain some basic statistics
            usable for monitoring of the transport and thus enable adaptation.
            These reports become more useful if sent regularly as the receiver
            of a report can perform analysis to find trends between the
            individual reports. When used for media transmission adaptation
            the information become more useful the more frequently it is
            received, at least until one report per round-trip time (RTT) is
            achieved. Therefore there are, in most cases, no reason to not
            include the sender or receiver report in all RTCP packets.</t>

            <t>The CNAME SDES item (See Section 6.5.1 of <xref
            target="RFC3550"></xref>) exists to allow receivers to determine
            which media flows that should be synchronized with each other,
            both within an RTP session and between different RTP sessions
            carrying different media types. Thus it is important to quickly
            receive this for each media sender in the session when joining an
            RTP session.</t>

            <t>Sender Reports (SR) are used in combination with the above SDES
            CNAME mechanism to synchronize multiple RTP streams, such as audio
            and video. After having determined which media streams should be
            synchronized using the CNAME field, the receiver uses the Sender
            Report's NTP and RTP timestamp fields to establish
            synchronization.</t>

            <t>The CNAME SDES item also allows a session participant to detect
            SSRC collisions and separate them from routing loops. The 32-bit
            randomly selected SSRC has some probability of collisions. The
            CNAME is used as longer canonical identifier of an particular
            end-point instance that is bound to an SSRC. If that binding isn't
            received and being current the receiver may not detect a SSRC
            collision, i.e. two different CNAMEs uses the same SSRC. It also
            can't detect a RTP level routing loop resulting in that the same
            SSRC and CNAME arrives from multiple lower-layer source
            addresses.</t>
          </list>Reviewing the above it is obvious that both SR/RR and the
        CNAME are very important for new session participants to be able to
        utilize any received media and to avoid flooding the network with RTCP
        reports. In addition, if not sent regularly the dynamic nature of the
        information provided would make it less useful.</t>

        <t>The following sections will describe the cases when reduced-size
        RTCP is beneficial and also show the possible issues that must be
        considered.</t>
      </section>

      <section anchor="sec-use-cases" title="Use Cases for Reduced-Size RTCP">
        <t>Below are listed a few use cases for reduced-size RTCP. <list
            style="hanging">
            <t hangText="Control Plane Signaling:">Open Mobile Alliance (OMA)
            Push-to-talk over Cellular (PoC) <xref target="OMA-PoC"> </xref>
            makes use of reduced-size RTCP when transmitting certain events.
            The OMA POC service is primarily used over cellular links capable
            of IP transport, such as the GSM GPRS.</t>

            <t hangText="Codec Control Signaling:">An example that can be used
            with reduced-size RTCP is e.g TMMBR messages as specified in <xref
            target="RFC5104"></xref> which signal a request for a change in
            codec bitrate. The benefit of its use for these messages is in bad
            channel conditions as reduced-size RTCP are much more likely to be
            successfully transmitted than larger compound RTCP. This is
            critical as these messages are likely to occur when channel
            conditions are poor. Other examples of codec control usage for
            reduced-size RTCP are found in <xref
            target="MTSI-3GPP"></xref></t>

            <t hangText="Feedback:">An example of a feedback scenario that
            would benefit from reduced-size RTCP is Video streams with generic
            NACK. In cases where the RTT is shorter than the receiver buffer
            depth, generic NACK can be used to request retransmission of
            missing packets, thus improving playout quality considerably. If
            the generic NACK packets are transmitted as reduced-size RTCP, the
            bandwidth requirement for RTCP will be minimal, enabling more
            frequent feedback. Like in the codec control case it is important
            that these packets can be transmitted with as little delay as
            possible. Another interesting use for reduced-size RTCP is in
            cases when regular feedback is needed, as described in <xref
            target="sec-benefits"></xref></t>

            <t hangText="Status Reports:">One proposed idea is to transmit
            small measurement or status reports in reduced-size RTCP, and to
            be able to split the minimal compound RTCP and transmit the
            individual RTCP separately. The status reports can be used either
            by the endpoints or by other network monitoring boxes in the
            network. The benefit is that with some radio access technologies
            small packets are more robust to poor radio conditions than large
            packets. Additionally, with small (report) packets there is a
            smaller risk that the report packets will affect the channel that
            they report upon. Another benefit is that it is, with reduced-size
            RTCP, possible to allow e.g anonymous status reporting to be
            transmitted unencrypted. Something that may be beneficial for e.g
            network monitoring purposes.</t>
          </list></t>
      </section>

      <section anchor="sec-benefits" title="Benefits of Reduced-Size RTCP">
        <t>As mentioned in the introduction, most advantages of using
        reduced-size RTCP packets exists in cases when the available RTCP
        bitrate is limited. This because they can become substantially smaller
        than compound packets. A compound packet is forced to contain both an
        RR or an SR and the CNAME SDES item. The RR containing a report block
        for a single source is 32 bytes, an SR is 52 bytes. Both may be larger
        if they contain report blocks for multiple sources. The SDES packet
        containing a CNAME item will be 10 bytes plus the CNAME string length.
        Here it is reasonable that the CNAME string is at least 10 bytes to
        get a decent collision resistance. If the recommended form of
        user@host is used, then most strings will be longer than 20
        characters. Thus a reduced-size RTCP can become at least 70-80 bytes
        smaller than the compound packet.</t>

        <t anchor="sec-benefits-low-bitrate" hangText="">For low bitrate links
        the benefits of this reduction in size are as follows:<list
            style="symbols">
            <t>For links where the packet loss rate grows with the packet
            size, smaller packets are be less likely to be dropped. An example
            of such links are radio links. In the cellular world there exist
            links that are optimized to handle RTP packets sized for carrying
            compressed speech. This increases the capacity and coverage for
            voice services in a given wireless network. Minimal compound RTCP
            packets are commonly 2-3 times the size of a RTP packet carrying
            compressed speech. If the speech packet over such a bearer has a
            packet loss probability of p, then the RTCP packet will experience
            a loss probability of 1-(1-p)^x where x is the number of fragments
            the compound packet will be split on the link layer, i.e. commonly
            into 2 or 3 fragments.</t>

            <t>Shorter serialization time, i.e the time it takes the link to
            transmit the packet. For slower links this time can be
            substantial. For example transmitting 120 bytes over an link
            interface capable of 30 kbps takes 32 milliseconds (ms) assuming
            uniform transmission rate.</t>
          </list></t>

        <t>In cases when reduced-size RTCP carry important and time sensitive
        feedback, both shorter serialization time and the lower loss
        probability are important to enable the best possible functionality.
        Having a packet loss rate that is much higher for the feedback packets
        compared to media packets hurts when trying to perform media
        adaptation, to for example handle the changed performance present at
        the cell border in a cellular system.</t>

        <t>For high bitrate applications there is usually no problem to supply
        RTCP with sufficient bitrates. When using AVPF one can use the
        "trr-int" parameter to restrict the regular reporting interval to
        approximately once per RTT or less often. As in most cases there is
        little reason to provide with regular reports of higher density than
        this. Any additional bandwidth can then be used for feedback messages.
        The benefit of reduced-size RTCP in this case is limited, but exists.
        One typical example is video using generic NACK in cases where the RTT
        is low. Using reduced-size RTCP would reduce the total amount of bits
        used for RTCP. This is primarily applicable if the number of reports
        is large. This would also result in lower processing delay and less
        complexity for the feedback packets as they do not need to query the
        RTCP database to construct the right messages.</t>

        <t>As message size is generally a smaller issue at higher bitrates, it
        is also possible to transmit multiple RTCP in each lower layer
        datagram in these cases. The motivation behind reduced-size RTCP in
        this case is not size, rather it is to avoid the extra overhead caused
        by inclusion of the SR/RR and SDES CNAME items in each transmitted
        RTCP.</t>

        <t>Independently of the link type there are additional benefits with
        sending feedback in small reduced-size RTCP. Applications that use
        RTCP AVPF in early or immediate mode to send frequent event driven
        feedback. Under these circumstances, the risk that the RTCP bandwidth
        becomes too high during periods of heavy feedback signaling is
        reduced.</t>

        <t>In cases when regular feedback is needed, such as the profile under
        development for TCP friendly rate control (TFRC) for RTP <xref
        target="I-D.ietf-avt-tfrc-profile"></xref>, the size of compound RTCP
        can result in very high bandwidth requirements if the round trip time
        is short. For this particular application reduced-size RTCP gives a
        very substantial improvement.</t>
      </section>

      <section anchor="sec-issues" title="Issues with Reduced-Size RTCP">
        <t>This section describes the known issues with reduced-size RTCP and
        also a brief analysis.</t>

        <section anchor="sec-middleboxes" title="Middle Boxes">
          <t>Middle boxes in the network may discard RTCP that do not follow
          the rules outlined in section 6.1 of RFC3550. Newer report types may
          be interpreted as unknown by the middle box. For instance if the
          payload type number is 207 instead of 200 or 201 it may be treated
          as unknown. The effect of this might for instance be that compound
          RTCP would get through while the reduced-size RTCP would be
          lost.</t>

          <t>Verification of the delivery of reduced-size RTCP is discussed in
          <xref target="sec-verification"></xref>.</t>
        </section>

        <section anchor="sec-packet-validation" title="Packet Validation">
          <t>A reduced-size RTCP packet will be discarded by the packet
          validation code in Appendix A of <xref target="RFC3550"></xref>.
          This has several impacts: <list style="hanging">
              <t hangText="Weakened Packet Validation:">The packet validation
              code needs to be rewritten to accept reduced-size RTCP. This in
              particular affects section 9.1 in <xref target="RFC3550"></xref>
              in the sense that the header verification must take into account
              that the payload type numbers for the (first) RTCP in the lower
              layer datagram may differ from 200 or 201 (SR or RR). One
              potential effect of this change is much weaker validation that
              received packets actually are RTCP, and not packets of some
              other type being wrongly delivered. Thus some consideration
              should be done to ensure the best possible validation is
              available. For example restricting reduced-size RTCP to contain
              only some specific RTCP packet types, that is preferably
              signalled on a per-session basis. However, the application of a
              security mechanisms for source authentication on the packets
              will provide much stronger protection.</t>

              <t hangText="Old RTP Receivers:">Any RTCP receiver without
              updated packet validation code will discard the reduced-size
              RTCP which means that the receiver will not see e.g the
              contained feedback messages. The effect of this depends on the
              type of feedback message and the role of the receiver. For
              example this may cause complete function loss in the case of
              attempting to use a reduced size NACK message (see Section 6.2.1
              of <xref target="RFC4585"></xref>) to non updated media sender
              in a session using the retransmission scheme defined by <xref
              target="RFC4588"></xref>. This type of discarding would also
              effect the feedback suppression defined in AVPF. The result
              would be a partitioning of the receivers within the session
              between old ones only seeing the compound RTCP feedback messages
              and the newer ones seeing both. Where the old ones may send
              feedback messages for events already reported on in reduced-size
              RTCP.</t>

              <t hangText="Bandwidth Considerations:">The discarding of
              reduced-size RTCP would effect the RTCP transmission calculation
              in the following way: the avg_rtcp_size value would become
              larger than for RTP receivers that exclude the reduced-size RTCP
              in this calculation (assuming that reduced-size RTCP are smaller
              than compound ones). Therefore these senders would under-utilize
              the available bitrate and send with a longer interval than
              updated receivers. For most sessions this should not be an
              issue. However for sessions with a large portion of reduced-size
              RTCP may result in that the updated receivers time out
              non-updated senders prematurely. This is however not likely to
              occur as the time between RTCP transmission needs to become 5
              times that used by the reduced-sized RTCP senders when sending
              compound RTCP.</t>

              <t hangText="Computation of avg_rtcp_size:">Long intervals
              between compound RTCP and many reduced-size RTCP in between may
              lead to a computation of a value for avg_rtcp_size that varies
              greatly over time. Investigation shows that although it varies
              this is not enough of a problem to warrant further changes or
              complexities to the RTCP scheduling algorithm.</t>
            </list></t>
        </section>

        <section title="Encryption/authentication">
          <t>SRTP presents a problem for reduced-size RTCP. Section 3.4 in
          <xref target="RFC3711"></xref> states "SRTCP MUST be given packets
          according to that requirement in the sense that the first part MUST
          be a sender report or a receiver report".</t>

          <t>Upon examination of how SRTP process packets it becomes obvious
          that SRTP has no real dependency on that the first packet is either
          an SR or an RR packet. What is needed is the common RTCP packet
          header, which is present in all the packet types, with a source
          SSRC. The conclusion is therefore that it is possible to use
          reduced-size RTCP with SRTP. <vspace />Nevertheless, as this implies
          a change to the rules in <xref target="RFC3711"></xref> changes in
          SRTP implementations MAY become necessary.</t>
        </section>

        <section anchor="sec-issue-mux"
                 title="RTP and RTCP Multiplex on the Same Port">
          <t>In applications which multiplex RTP and RTCP on the same port, as
          defined in <xref target="I-D.ietf-avt-rtp-and-rtcp-mux"></xref>,
          care must be taken to ensure that the de-multiplexing is done
          properly even though RTCP are reduced size. The downside of reduced
          size RTCP is that more values representing RTCP packets exist,
          reducing the available RTP payload type space. However, section 4 in
          <xref target="I-D.ietf-avt-rtp-and-rtcp-mux"></xref> already
          requires the corresponding RTP payload type range not be used when
          performing this multiplexing.</t>
        </section>

        <section title="Header Compression">
          <t>Two issues are related to header compression, possible changes
          are left for future work:<list style="symbols">
              <t>Payload type number identification: The RoHC header
              compression algorithm <xref target="RFC3095"></xref> needs to
              create different compression contexts for RTP and RTCP for
              optimum performance. If RTP and RTCP are multiplexed on the same
              port the classification may be based on payload type numbers.
              The classification algorithm must here acknowledge the fact that
              the payload type number for (the first) RTCP may differ from 200
              or 201.</t>

              <t>Compression of RTCP: No IETF defined header compression
              method compress RTCP, however if such methods are developed in
              the future, these methods must take reduced-size RTCP in
              account.</t>
            </list></t>
        </section>
      </section>
    </section>

    <section anchor="sec-rules" title="Use of Reduced-size RTCP with AVPF">
      <t>Based on the above analysis it seems feasible to allow transmission
      of reduced-size RTCP under some restrictions: <list style="symbols">
          <t>First of all it is important that compound RTCP are transmitted
          at regular intervals to ensure that the mechanisms maintained by the
          compound packets, like feedback reporting works. The tracking of
          session size and number of participants warrants mentioning again as
          this ensures that the RTCP bandwidth remain bounded independent of
          the number of session participants.</t>

          <t>Second, as the compound RTCP are also used to establish and
          maintain synchronization between media, any newly joining
          participant in a session would need to receive compound RTCP from
          the media sender(s).</t>
        </list></t>

      <t>This implies that the regular transmission of compound RTCP MUST be
      maintained throughout an RTP session. Reduced-size RTCP should be
      restricted to be used as extra RTCP (e.g feedback) sent in cases when a
      regular compound RTCP packet would not otherwise have been sent.</t>

      <t>The usage of reduced-size RTCP SHALL only be done in RTP sessions
      operating in <xref target="RFC4585">AVPF</xref> or <xref
      target="RFC5124">SAVPF</xref> Early or Immediate mode.
      <vspace />Reduced-size RTCP SHALL NOT be sent until at least one
      compound RTCP has been sent. In Immediate mode all feedback messages MAY
      be sent as reduced-size RTCP. In early mode a feedback message scheduled
      for transmission as an Early RTCP, i.e not a Regular RTCP, MAY be sent
      as reduced-size RTCP. All RTCP that are scheduled for transmission as
      Regular RTCP SHALL be sent as compound RTCP as indicated by <xref
      target="RFC4585">AVPF</xref>.</t>

      <section anchor="sec-definition" title="Definition of Reduced-Size RTCP">
        <t>A reduced-size RTCP packet is an RTCP packet with the following
        properties that makes it deviate from the compound RTCP packet
        definition given in section 6.1 in <xref
        target="RFC3550"></xref>:<list style="symbols">
            <t>Contains one or more RTCP packet(s)</t>

            <t>Any RTCP packet type allowed, however see section <xref
            target="sec-verification"></xref>. </t>

            <t>MUST NOT be used for regular (scheduled) RTCP report
            purposes</t>

            <t>MUST NOT be used with the RTP/AVP profile <xref
            target="RFC3551"></xref> or the RTP/SAVP profile <xref
            target="RFC3711"></xref>.</t>
          </list></t>
      </section>

      <section anchor="sec-algorithm" title="Algorithm Considerations">
        <section anchor="sec-verification" title="Verification of Delivery">
          <t>If an application is to use reduced-size RTCP it is important to
          verify that the reduced-size RTCP packets actually reach the session
          participants. As outlined above in <xref
          target="sec-middleboxes"></xref> and <xref
          target="sec-packet-validation"></xref> packets may be discarded
          along the path or in the end-point.</t>

          <t>A few verification rules are RECOMMENDED to ensure robust RTCP
          transmission and reception and to solve the identified issues when
          reduced-size RTCP is used:<list style="symbols">
              <t>The end-point issue can be solved by introducing signaling
              that informs if all session participants are capable of
              reduced-size RTCP. See <xref
              target="sec-sdp-attribute"></xref>.</t>

              <t>The middle box issue is more difficult and here one will be
              required to use heuristics to determine if the reduced-size RTCP
              are delivered or not. The methods detect successful delivery of
              reduced-size RTCP packets depends on the packet type. The RTCP
              packet types for which successful delivery can be detected are:
              <list style="symbols">
                  <t>Sender reports (SR): Successful transmission of a sender
                  report can be verified by inspection of the echoed timestamp
                  in the received receiver report (RR). This can also be used
                  as a method to verify if reduced-size RTCP can be used at
                  all.</t>

                  <t>Feedback RTCP packets: In many cases the feedback
                  messages sent using reduced-size RTCP will result in either
                  explicit or implicit indications that they have been
                  received. An example of is the <xref target="RFC4588">RTP
                  retransmission</xref> that results from a <xref
                  target="RFC4585">NACK message</xref>. Another example is the
                  <xref target="RFC5104">Temporary Maximum Media Bitrate
                  Notification message resulting from a Temporary Maximum
                  Media Bitrate Request</xref>. A third example is the
                  presence of a <xref target="RFC5104">Decoder Refresh
                  Point</xref> in the video media stream resulting from the
                  Full Intra Request sent.</t>
                </list>RTCP packet types for which it is not possible to
              detect successful delivery SHOULD NOT be transmitted as
              reduced-size RTCP packets unless they are transmitted in the
              same lower-layer datagram as another RTCP packet type for which
              successful delivery can be detected.</t>

              <t>An algorithm to detect consistent failure of delivery of
              reduced-size RTCP MUST be used by any application using it. The
              details of this algorithm is application dependent and therefore
              outside the scope of this document.</t>
            </list></t>

          <t>If the verification fails it is strongly RECOMMENDED that only
          compound RTCP according to the rules outlined in RFC3550 is
          transmitted.</t>
        </section>

        <section title="Single vs Multiple RTCP in a Reduced-Size RTCP">
          <t>The result of the definition in <xref
          target="sec-definition"></xref> may be that the resulting size of
          reduced-size RTCP can become larger than a regularly scheduled
          compound RTCP packet. For applications that use access types that
          are sensitive to packet size (see <xref
          target="sec-benefits-low-bitrate"></xref> in <xref
          target="sec-benefits"></xref>) it is strongly RECOMMENDED that the
          use of reduced-size RTCP is limited to the transmission of single
          RTCP in each lower layer datagram. The methods to determine the need
          for this is outside the scope of this draft.</t>

          <t>In general, as the benefit with large sized reduced-size RTCP
          packets is very limited, it is strongly RECOMMENDED to transmit
          large reduced-size RTCP packets as compound RTCP packets
          instead.</t>
        </section>

        <section title="Enforcing Compound RTCP">
          <t>As discussed earlier it is important that the transmission of
          compound RTCP occurs at regular intervals. However, this will occur
          as long as the RTCP senders follow the AVPF scheduling algorithm
          defined in Section 3.5 in <xref target="RFC4585"></xref>. This as
          all regular RTCP MUST be full compound RTCP. Note that also in
          immediate mode is there a requirement on sending regular RTCP.</t>
        </section>

        <section title="Immediate Mode">
          <t>Section 3.3 in RFC4585 gives the option to use AVPF Immediate
          mode as long as the groupsize is below a certain limit. As
          transmission using reduced-size RTCP may reduce the bandwidth demand
          it opens up for a more liberal use of immediate mode.</t>
        </section>
      </section>
    </section>

    <section anchor="sec-sdp-attribute" title="Signaling">
      <t>This document defines the "a=rtcp-rsize" <xref
      target="RFC4566">SDP</xref> attribute to indicate if the session
      participant is capable of supporting reduced-size RTCP for applications
      that uses SDP for configuration of RTP sessions. It is required that a
      participant that proposes the use of reduced-size RTCP itself supports
      the reception of reduced-size RTCP.</t>

      <t>An offering client that wish to use reduced-size RTCP MUST include
      the attribute "a=rtcp-rsize" in the SDP offer. If "a=rtcp-rsize" is
      present in the offer SDP, the answerer that supports reduced-size RTCP
      and wish to use it SHALL include the "a=rtcp-rsize" attribute in the
      answer.</t>

      <t>In declarative usage such as <xref target="RFC2326">RTSP</xref> and
      <xref target="RFC2974">SAP</xref> of SDP the presence of the attribute
      indicates that the session participant MAY use reduced size RTCP packets
      in its RTCP transmissions.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations of <xref target="RFC3550">RTP</xref> and
      <xref target="RFC4585">AVPF</xref> will apply also to reduced-size RTCP.
      The reduction in validation strength for received packets on the RTCP
      port may result in a higher degree of acceptance of spurious data as
      real RTCP. This vulnerability can mostly be addressed by usage of any
      security mechanism that provide authentication, one example such
      mechanism is SRTP <xref target="RFC3711"></xref>.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>Following the guidelines in <xref target="RFC4566"></xref>, the IANA
      is requested to register one new SDP attribute:<list style="symbols">
          <t>Contact name, email address and telephone number: Authors of
          RFCXXXX</t>

          <t>Attribute-name: rtcp-rsize</t>

          <t>Long-form attribute name: Reduced-size RTCP</t>

          <t>Type of attribute: media-level</t>

          <t>Subject to charset: no</t>
        </list></t>

      <t>This attribute defines the support for reduced-size RTCP, i.e the
      possibility to transmit RTCP that does not conform to the rules for
      compound RTCP defined in RFC3550. It is a property attribute, which does
      not take a value.</t>

      <t>Note to RFC Editor: please replace "RFC XXXX" above with the RFC
      number of this memo, and remove this note.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors would like to thank all the people who gave feedback on
      this document. Special thanks go to Colin Perkins.</t>

      <t>This document also contain some text copied from <xref
      target="RFC3550"></xref><xref target="RFC4585">,</xref><xref
      target="RFC3711"> and</xref>. We take the opportunity to thank the
      authors of said documents.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &rfc2119;

      &rfc3550;

      &rfc3551;

      &rfc4585;

      &rfc5124;
    </references>

    <references title="Informative References">
      &rfc3095;

      &rfc4588;

      &rfc5104;

      <reference anchor="OMA-PoC">
        <front>
          <title>Specification : Push to talk Over Cellular User Plane,
          http://www.openmobilealliance.org/release_program/docs/PoC/V1_0_1-20061128-A/OMA-TS-PoC-UserPlane-V1_0_1-20061128-A.pdf</title>

          <author fullname="">
            <organization>Open Mobile Alliance</organization>
          </author>

          <date day="28" month="November" year="2006" />
        </front>
      </reference>

      <reference anchor="MTSI-3GPP">
        <front>
          <title>Specification : 3GPP TS 26.114 (v7.4.0),
          http://www.3gpp.org/ftp/Specs/archive/26_series/26.114/26114-740.zip</title>

          <author fullname="3gpp.org">
            <organization>3GPP</organization>
          </author>

          <date day="29" month="March" year="2007" />
        </front>
      </reference>

      <?rfc include='reference.I-D.ietf-avt-tfrc-profile'?>

      <?rfc include='reference.RFC.4566'?>

      <?rfc include='reference.RFC.3711'?>

      <?rfc include='reference.I-D.ietf-avt-rtp-and-rtcp-mux'?>

      <?rfc include='reference.RFC.2326'?>

      <?rfc include='reference.RFC.2974'?>
    </references>
  </back>
</rfc>