IETF RMCAT Working Group                                       Z. Sarker
Internet-Draft                                               Ericsson AB
Intended status: Standards Track                              C. Perkins
Expires: May 3, 2018                               University of Glasgow
                                                                V. Singh
                                                            callstats.io
                                                              M. Ramalho
                                                           Cisco Systems
                                                        October 30, 2017


      RTP Control Protocol (RTCP) Feedback for Congestion Control
               draft-ietf-avtcore-cc-feedback-message-00

Abstract

   This document describes a feedback message intended to enable
   congestion control for interactive real-time traffic.  The RTP Media
   Congestion Avoidance Techniques (RMCAT) Working Group formed a design
   team to analyze feedback requirements from various congestion control
   algorithms and to design a generic feedback message to help ensure
   interoperability across those algorithms.  The feedback message is
   designed for a sender-based congestion control, which means the
   receiver of the media will send necessary feedback to the sender of
   the media to perform the congestion control at the sender.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on May 3, 2018.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.




Sarker, et al.             Expires May 3, 2018                  [Page 1]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://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
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Feedback Message  . . . . . . . . . . . . . . . . . . . . . .   3
     3.1.  RTCP Congestion Control Feedback Report . . . . . . . . .   4
   4.  Feedback Frequency and Overhead . . . . . . . . . . . . . . .   6
   5.  Design Rationale  . . . . . . . . . . . . . . . . . . . . . .   7
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   7
   7.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   8.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   9.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     9.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     9.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  10

1.  Introduction

   For interactive real-time traffic the typical protocol choice is
   Realtime Transport Protocol (RTP) over User Datagram Protocol (UDP).
   RTP does not provide any guarantee of Quality of Service (QoS),
   reliable or timely delivery and expects the underlying transport
   protocol to do so.  UDP alone certainly does not meet that
   expectation.  However, RTP Control Protocol (RTCP) provides a
   mechanism to periodically send transport and media metrics to the
   media sender which can be utilized and extended for the purposes of
   RMCAT congestion control.  For a congestion control algorithm which
   operates at the media sender, RTCP messages can be transmitted from
   the media receiver back to the media sender to enable congestion
   control.  In the absence of standardized messages for this purpose,
   the congestion control algorithm designers have designed proprietary
   RTCP messages that convey only those parameters required for their
   respective designs.  As a direct result, the different congestion
   control (a.k.a. rate adaptation) designs are not interoperable.  To
   enable algorithm evolution as well as interoperability across designs
   (e.g., different rate adaptation algorithms), it is highly desirable
   to have generic congestion control feedback format.




Sarker, et al.             Expires May 3, 2018                  [Page 2]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


   To help achieve interoperability for unicast RTP congestion control,
   this memo proposes a common RTCP feedback format that can be used by
   NADA [I-D.ietf-rmcat-nada], SCReAM [I-D.ietf-rmcat-scream-cc], Google
   Congestion Control [I-D.ietf-rmcat-gcc] and Shared Bottleneck
   Detection [I-D.ietf-rmcat-sbd], and hopefully future RTP congestion
   control algorithms as well.

2.  Terminology

   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 [RFC2119].

   In addition the terminology defined in [RFC3550], [RFC3551],
   [RFC3611], [RFC4585], and [RFC5506] applies.

3.  Feedback Message

   The design team analyzed the feedback requirements from the different
   proposed candidate in RMCAT WG.  The analysis showed some
   commonalities between the proposed solution candidate and some can be
   derived from other information.  The design team has agreed to have
   following packet information block in the feedback message to satisfy
   different requirement analyzed.

   o  Packet Identifier : RTP sequence number.  The RTP packet header
      includes an incremental packet sequence number that the sender
      needs to correlate packets sent at the sender with packets
      received at the receiver.

   o  Packet Arrival Time : Arrival time stamp at the receiver of the
      media.  The sender requires the arrival time stamp of the
      respective packet to determine delay and jitter the packet had
      experienced during transmission.  In a sender based congestion
      control solution the sender requires to keep track of the sent
      packets - usually packet sequence number, packet size and packet
      send time.  With the packet arrival time the sender can detect the
      delay and jitter information.  Along with packet loss and delay
      information the sender can estimate the available bandwidth and
      thus adapt to the situation.

   o  Packet Explicit Congestion Notification (ECN) Marking : If ECN
      [RFC3168] is used, it is necessary to report on the 2-bit ECN mark
      in received packets, indicating for each packet whether it is
      marked not-ECT, ECT(0), ECT(1), or ECN-CE.  If the path on which
      the media traffic traversing is ECN capable then the sender can
      use the Congestion Experienced (ECN-CE) marking information for
      congestion control.  It is important that the receiver sends the



Sarker, et al.             Expires May 3, 2018                  [Page 3]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


      ECN-CE marking information of the packet back to the sender to
      take the advantages of ECN marking.  Note that how the receiver
      gets the ECN marking information at application layer is out of
      the scope of this design team.  Additional information for ECN use
      with RTP can be found at [RFC6679].

   The feedback messages can have one or more of the above information
   blocks.  For RTCP based feedback message the packet information block
   will be grouped by Synchronization Source (SSRC) identifier.

   As a practical matter, we note that host Operating System (OS)
   process interruptions can occur at inopportune times.  Thus, the
   recording of the sent times at the sender and arrival times at the
   receiver should be made with deliberate care.  This is because the
   time duration of host OS interruptions can be significant relative to
   the precision desired in the one-way delay estimates.  Specifically,
   the send time should be recorded at the latest opportunity prior to
   outputting the media packet at the sender (e.g., socket or RTP API)
   and the arrival time at the receiver (e.g., socket or RTP API) should
   be recorded at the earliest opportunity available to the receiver.

3.1.  RTCP Congestion Control Feedback Report

   Congestion control feedback can be sent as part of a regular
   scheduled RTCP report, or in an RTP/AVPF early feedback packet.  If
   sent as early feedback, congestion control feedback MAY be sent in a
   non-compound RTCP packet [RFC5506] if the RTP/AVPF profile [RFC4585]
   or the RTP/SAVPF profile [RFC5124] is used.

   Irrespective of how it is transported, the congestion control
   feedback is sent as a Transport Layer Feedback Message (RTCP packet
   type 205).  The format of this RTCP packet is as follows:



















Sarker, et al.             Expires May 3, 2018                  [Page 4]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


        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
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |V=2|P| FMT=CCFB |   PT = 205   |          length               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                  SSRC of packet sender                        |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                  SSRC of 1st media source                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |          begin_seq            |             end_seq           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |L|ECN|  Arrival time offset    | ...                           .
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       .                                                               .
       .                                                               .
       .                                                               .
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                  SSRC of nth media source                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |          begin_seq            |             end_seq           |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |L|ECN|  Arrival time offset    | ...                           |
       .                                                               .
       .                                                               .
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                 Report Timestamp (32bits)                     |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The first 8 octets are the RTCP header, with PT=205 and FMT=CCFB
   specifying the remainder is a congestion control feedback packet, and
   including the SSRC of the packet sender.  (NOTE TO RFC EDITOR: please
   replace CCFB here and in the above diagram with the IANA assigned
   RTCP feedback packet type)

   Section 6.1 of [RFC4585] requires the RTCP header to be followed by
   the SSRC of the media source being reported upon.  Accordingly, the
   RTCP header is followed by a report for each SSRC received, followed
   by the Report Timestamp.

   The report for each SSRC received starts with the SSRC of that media
   source.  Then, each sequence number between the begin_seq and end_seq
   (both inclusive) is represented by a packet metric block of 16-bits
   that contains the L, ECN, and ATO fields.  If an odd number of
   reports are included, i.e., end_seq - begin_seq is odd then 16 bits
   of zero padding MUST be added after the last report, to align the
   RTCP packet to a four (4) bytes boundary.  The L, ECN, and ATO fields
   are as follows:




Sarker, et al.             Expires May 3, 2018                  [Page 5]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


   o  L (1 bit): is a boolean to indicate if the packet was received.  0
      represents that the packet was not yet received and all the
      subsequent bits (ECN and ATO) are also set to 0. 1 represent the
      packet was received and the subsequent bits in the block need to
      be parsed.

   o  ECN (2 bits): is the echoed ECN mark of the packet.  These are set
      to 00 if not received, or if ECN is not used.

   o  Arrival time offset (ATO, 13 bits): is the relative arrival time
      of the RTP packets at the receiver before this feedback report was
      generated measured in milliseconds.  It is calculated by
      subtracting the reception timestamp of the RTP packet denoted by
      this 16bit block and the timestamp (RTS) of this report.  If the
      measured value is greater than 8.189 seconds (the value that would
      be coded as 0x1FFD), the value 0x1FFE MUST be reported to indicate
      an over-range positive measurement.  If the measurement is
      unavailable, the value 0x1FFF MUST be reported.

   Report Timestamp (RTS, 32 bits): represents the timestamp when this
   report was generated.  The sender of the feedback message decides on
   the wall-clock.  Usually, it should be derived from the same wall-
   clock that is used for timestamping RTP packets arrival . Consistency
   in the unit and resolution (10th of millisecond should be good enough
   ) is important here.  In addition, the media sender can ask for a
   specific resolution it wants.

4.  Feedback Frequency and Overhead

   There is a trade-off between speed and accuracy of reporting, and the
   overhead of the reports.  [I-D.ietf-rmcat-rtp-cc-feedback] discusses
   this trade-off, and the possible rates of feedback.

   It is a general understanding that the congestion control algorithms
   will work better with more frequent feedback - per packet feedback.
   However, RTCP bandwidth and transmission rules put some upper limits
   on how frequently the RTCP feedback messages can be send from the
   media receiver to the media sender.  It has been shown
   [I-D.ietf-rmcat-rtp-cc-feedback] that in most cases a per frame
   feedback is a reasonable assumption on how frequent the RTCP feedback
   messages can be transmitted.  The design team also have noted that
   even if a higher frequency of feedback is desired it is not viable if
   the feedback messages starts to compete against the media traffic on
   the feedback path during congestion period.  Analyzing the feedback
   interval requirement [feedback-requirements] it can be seen that the
   candidate algorithms can perform with a feedback interval range of
   50-200ms.  A value within this range need to be negotiated at session
   setup.



Sarker, et al.             Expires May 3, 2018                  [Page 6]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


5.  Design Rationale

   The primary function of RTCP Sender Report (SR) / Receiver Report
   (RR) is to report the reception quality of media.  The regular SR /
   RR reports contain information about observed jitter, fractional
   packet loss and cumulative packet loss.  The original intent of this
   information was to assist flow and congestion control mechanisms.
   Even though it is possible to do congestion control based on
   information provided in the SR/RR reports it is not sufficient to
   design an efficient congestion control algorithm for interactive
   real-time communication.  An efficient congestion control algorithm
   requires more fine grain information on per packet (see Section 3) to
   react to the congestion or to avoid funder congestion on the path.

   Codec Control Message for AVPF [RFC5104] defines Temporary Maximum
   Media Bit Rate (TMMBR) message which conveys a temporary maximum
   bitrate limitation from the receiver of the media to the sender of
   the media.  Even though it is not designed to replace congestion
   control, TMMBR has been used as a means to do receiver based
   congestion control where the session bandwidth is high enough to send
   frequent TMMBR messages especially with reduced sized reports
   [RFC5506].  This requires the receiver of the media to analyze the
   data reception, detect congestion level and recommend a maximum
   bitrate suitable for current available bandwidth on the path with an
   assumption that the sender of the media always honors the TMMBR
   message.  This requirement is completely opposite of the sender based
   congestion control approach.  Hence, TMMBR cannot be as a signaling
   means for a sender based congestion control mechanism.  However,
   TMMBR should be viewed a complimentary signaling mechanism to
   establish receiver's current view of acceptable maximum bitrate which
   a sender based congestion control should honor.

   There are number of RTCP eXtended Report (XR) blocks have been
   defined for reporting of delay, loss and ECN marking.  It is possible
   to combine several XR blocks to report the loss and ECN marking at
   the cost of overhead and complexity.  However, there is no existing
   RTCP XR block to report packet arrival time.

   Considering the issues discussed here it is rational to design a new
   congestion control feedback signaling mechanism for sender based
   congestion control algorithm.

6.  Acknowledgements

   This document is an outcome of RMCAT design team discussion.  We
   would like to thank all participants specially Xiaoquing Zhu, Stefan
   Holmer, David, Ingemar Johansson and Randell Jesup for their valuable
   contribution to the discussions and to the document.



Sarker, et al.             Expires May 3, 2018                  [Page 7]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


7.  IANA Considerations

   IANA is requested to assign a new value in the "FMT Values for RTPFB
   Payload Types" registry for the CCFB transport layer feedback packet
   described in Section 3.1.

8.  Security Considerations

   There is a risk of causing congestion if an on-path attacker modifies
   the feedback messages in such a manner to make available bandwidth
   greater than it is in reality.  [More on security consideration TBD.]

9.  References

9.1.  Normative References

   [I-D.ietf-rmcat-rtp-cc-feedback]
              Perkins, C., "RTP Control Protocol (RTCP) Feedback for
              Congestion Control in Interactive Multimedia Conferences",
              draft-ietf-rmcat-rtp-cc-feedback-03 (work in progress),
              November 2016.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC3168]  Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
              of Explicit Congestion Notification (ECN) to IP",
              RFC 3168, DOI 10.17487/RFC3168, September 2001,
              <https://www.rfc-editor.org/info/rfc3168>.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
              July 2003, <https://www.rfc-editor.org/info/rfc3550>.

   [RFC3551]  Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
              Video Conferences with Minimal Control", STD 65, RFC 3551,
              DOI 10.17487/RFC3551, July 2003,
              <https://www.rfc-editor.org/info/rfc3551>.

   [RFC3611]  Friedman, T., Ed., Caceres, R., Ed., and A. Clark, Ed.,
              "RTP Control Protocol Extended Reports (RTCP XR)",
              RFC 3611, DOI 10.17487/RFC3611, November 2003,
              <https://www.rfc-editor.org/info/rfc3611>.





Sarker, et al.             Expires May 3, 2018                  [Page 8]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


   [RFC4585]  Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
              "Extended RTP Profile for Real-time Transport Control
              Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585,
              DOI 10.17487/RFC4585, July 2006,
              <https://www.rfc-editor.org/info/rfc4585>.

   [RFC5124]  Ott, J. and E. Carrara, "Extended Secure RTP Profile for
              Real-time Transport Control Protocol (RTCP)-Based Feedback
              (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February
              2008, <https://www.rfc-editor.org/info/rfc5124>.

   [RFC5506]  Johansson, I. and M. Westerlund, "Support for Reduced-Size
              Real-Time Transport Control Protocol (RTCP): Opportunities
              and Consequences", RFC 5506, DOI 10.17487/RFC5506, April
              2009, <https://www.rfc-editor.org/info/rfc5506>.

   [RFC6679]  Westerlund, M., Johansson, I., Perkins, C., O'Hanlon, P.,
              and K. Carlberg, "Explicit Congestion Notification (ECN)
              for RTP over UDP", RFC 6679, DOI 10.17487/RFC6679, August
              2012, <https://www.rfc-editor.org/info/rfc6679>.

9.2.  Informative References

   [feedback-requirements]
              "RMCAT Feedback Requirements",
              <://www.ietf.org/proceedings/95/slides/slides-95-rmcat-
              1.pdf>.

   [I-D.ietf-rmcat-gcc]
              Holmer, S., Lundin, H., Carlucci, G., Cicco, L., and S.
              Mascolo, "A Google Congestion Control Algorithm for Real-
              Time Communication", draft-ietf-rmcat-gcc-02 (work in
              progress), July 2016.

   [I-D.ietf-rmcat-nada]
              Zhu, X., Pan, R., Ramalho, M., Cruz, S., Jones, P., Fu,
              J., and S. D'Aronco, "NADA: A Unified Congestion Control
              Scheme for Real-Time Media", draft-ietf-rmcat-nada-05
              (work in progress), September 2017.

   [I-D.ietf-rmcat-sbd]
              Hayes, D., Ferlin, S., Welzl, M., and K. Hiorth, "Shared
              Bottleneck Detection for Coupled Congestion Control for
              RTP Media.", draft-ietf-rmcat-sbd-08 (work in progress),
              July 2017.






Sarker, et al.             Expires May 3, 2018                  [Page 9]


Internet-Draft     Congestion Control Feedback in RTCP      October 2017


   [I-D.ietf-rmcat-scream-cc]
              Johansson, I. and Z. Sarker, "Self-Clocked Rate Adaptation
              for Multimedia", draft-ietf-rmcat-scream-cc-13 (work in
              progress), October 2017.

   [RFC5104]  Wenger, S., Chandra, U., Westerlund, M., and B. Burman,
              "Codec Control Messages in the RTP Audio-Visual Profile
              with Feedback (AVPF)", RFC 5104, DOI 10.17487/RFC5104,
              February 2008, <https://www.rfc-editor.org/info/rfc5104>.

Authors' Addresses

   Zaheduzzaman Sarker
   Ericsson AB
   Luleae
   Sweden

   Phone: +46107173743
   Email: zaheduzzaman.sarker@ericsson.com


   Colin Perkins
   University of Glasgow
   School of Computing Science
   Glasgow  G12 8QQ
   United Kingdom

   Email: csp@csperkins.org


   Varun Singh
   Nemu Dialogue Systems Oy
   Runeberginkatu 4c A 4
   Helsinki  00100
   Finland

   Email: varun.singh@iki.fi
   URI:   http://www.callstats.io/


   Michael A. Ramalho
   Cisco Systems, Inc.
   6310 Watercrest Way Unit 203
   Lakewood Ranch, FL  34202
   USA

   Phone: +1 919 476 2038
   Email: mramalho@cisco.com



Sarker, et al.             Expires May 3, 2018                 [Page 10]