[Search] [txt|pdfized|bibtex] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits]

Versions: 00 01 02 03 04 05 06 07 08 09 10                              
Internet Engineering Task Force                                   AVT WG
INTERNET-DRAFT                                              Ladan Gharai
draft-ietf-avt-tfrc-profile-06.txt                               USC/ISI
                                                        6 September 2006
                                                     Expires: March 2007

                RTP Profile for TCP Friendly Rate Control

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

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

   The list of current Internet-Drafts can be accessed at

   The list of Internet-Draft Shadow Directories can be accessed at

Copyright Notice

   Copyright (C) The Internet Society (2006).


   This memo specifies a profile called "RTP/AVPFCC" for the use of the
   real-time transport protocol (RTP) and its associated control
   protocol, RTCP, with TCP Friendly Rate Control (TFRC).  This profile
   extends the RTP/AVPF profile with RTP data header additions and new

Gharai                                                          [Page 1]

INTERNET-DRAFT             Expires: March 2007            September 2006

   AVPF feedback packets, in order to support TFRCs integration with
   RTP.  TFRC is an equation based congestion control scheme for unicast
   flows operating in a best effort Internet environment.  This profile
   provides RTP flows with the mechanism to use congestion control in
   best effort IP networks.

1.  Introduction

   [Note to RFC Editor: All references to RFC XXXX are to be replaced
   with the RFC number of this memo, when published]

   This memo defines a profile called "RTP/AVPFCC" for the use of the
   real-time transport protocol (RTP) [RTP] and its associated control
   protocol, RTCP, with the TCP Friendly Rate Control (TFRC) [TFRC].
   RTP/AVPFCC extends the RTP profile for RTCP-based feedback (RTP/AVPF)
   to provide support for TFRC.

   TFRC is an equation based congestion control scheme for unicast flows
   operating in a best effort Internet environment and competing with
   TCP traffic. TFRC computes a TCP-friendly data rate based on current
   network conditions, as represented by the latest round trip time and
   packet loss calculations. The complete TFRC mechanism is described in
   detail in [TFRC].

   To calculate a TCP-friendly data rate and keep track of round trip
   times and packet losses, TFRC senders and receivers rely on
   exchanging specific information between each other, i.e: the sender
   provides the receiver with the latest updates to round trip time
   calculations, while the receiver provides feedback needed to compute
   round trip times and on packet losses. The RTP/AVPFCC profile,
   extends  the RTP/AVPF profile with RTP data header additions and new
   AVPF feedback packets to support the TFRC feedback and information
   exchange requirements.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   document are to be interpreted as described in RFC 2119 [2119].

3.  Relation to the Datagram Congestion Control Protocol

   The TFRC congestion control mechanism is also supported by the
   Datagram Congestion Control Protocol (DCCP). In this section we
   detail the pros and cons of using TFRC with RTP versus DCCP.

Gharai                                                          [Page 2]

INTERNET-DRAFT             Expires: March 2007            September 2006

   DCCP is a minimal general purpose transport-layer protocol with
   unreliable yet congestion controlled packet delivery semantics and
   reliable connection setup and teardown. DCCP currently supports both
   TFRC and TCP-like congestion control, and the protocol is structured
   to support new congestion control mechanisms defined in the future.
   In addition DCCP supports a host of other features, such as: use of
   Explicit Congestion Notification (ECN) and the ECN Nonce, reliable
   option negotiation and Path Maximum Transfer Unit (PMTU).  Naturally
   an application using RTP/DCCP as its transport protocol will benefit
   from the protocol features supported by DCCP.

   However there are a number of benefits to be gained by the
   development and standardization of the RTP/AVPFCC profile:

     o Media applications lacking congestion control can incorporate
       congestion controlled transport without delay by using the
       RTP/AVPFCC profile. The DCCP protocol is currently under
       development and widespread deployment is not yet in place.

     o Use of the RTP/AVPFCC profile is not contingent on any OS level
       changes and can be quickly deployed, as the AVPFCC profile is
       implemented at the application layer.

     o AVPFCC/RTP/UDP flows face the same restrictions in firewall
       traversal as do UDP flows and do not require NATs and firewall
       modifications. DCCP flows, on the other hand, do require NAT and
       firewall modifications, however once these modifications are in
       place, they can result in easier NAT and firewall traversal for
       RTP/DCCP flows in the future.

     o Use of the RTP/AVPFCC profile with various media applications
       will give researchers, implementors and developers a better
       understanding of the intricate relationship between media quality
       and equation based congestion control.  Hopefully this experience
       with congestion control and TFRC will ease the migration of media
       applications to DCCP once DCCP is deployed.

   Overall, the RTP/AVPFCC profile provides an immediate means for
   congestion control in media streams, in the time being until DCCP is

   Additionally, there are also a number of technical differences as to
   how (and which) congestion control information is exchanged between
   DCCP with CCID3 and the RTP/AVPFCC profile:

     o A RTP/AVPFCC sender transmits a send timestamp to the RTP/AVPFCC
       receiver with every data packet. In addition to congestion
       control the send timestamp can be used by the receiver for

Gharai                                                          [Page 3]

INTERNET-DRAFT             Expires: March 2007            September 2006

       jitter calculations.

       In contrast DCCP with CCID3 transmits a quad round trip
       counter to the receiver.

     o A RTP/AVPFCC receiver only provides the RTP/AVPFCC sender
       with the loss event rate as computed by the receiver.

       In contrast DCCP with CCID3, provides 2 other options for the
       transport of loss event rate. A sender may choose to receive
       loss intervals or an Ack Vector. These two options provide the
       sender with the necessary information to compute the loss event

     o Sequence number: DCCP supports a 48 bit and a 24 bit sequence
       number, whereas RTP only supports a 16 bit sequence number. While
       this makes RTP susceptible to data injection attacks, it can be
       avoided by using the SRTP [SRTP] profile in conjunction with the
       AVPFCC profile.

4.  RTP and RTCP Packet Forms and Protocol Behavior

   The section "RTP Profiles and Payload Format Specifications" of RFC
   3550 enumerates a number of items that can be specified or modified
   in a profile.  This section addresses each of these items and states
   which item is modified by the RTP/AVPFCC profile:

      RTP data header: The standard format of the fixed RTP data
         header has been modified (see Section 6).

      Payload types: The payload type in the RTP data header is
         reduced to 6 bits, therefore payload types are restricted to
         values in the range of 0 to 63.

      RTP data header additions:  Two 32 bit fixed fields, send
         timestamp and round trip time (RTT), are added to the RTP
         data header. The send time stamp is always present and
         the RTT field is present if the R bit is set.

      RTP data header extensions: No RTP header extensions are
         defined, but applications operating under this profile
         MAY use such extensions.  Thus, applications SHOULD NOT
         assume that the RTP header X bit is always zero and SHOULD
         be prepared to ignore the header extension.  If a header
         extension is defined in the future, that definition MUST
         specify the contents of the first 16 bits in such a way
         that multiple different extensions can be identified.

Gharai                                                          [Page 4]

INTERNET-DRAFT             Expires: March 2007            September 2006

      RTCP packet types: Additional RTCP packet types are defined
         by this profile per the RTP/AVPF profile [AVPF].

      RTCP report interval: This profile is restricted to unicast
         flows, therefore at all times there is only one active sender
         and one receiver.  Sessions operating under this profile MAY
         specify a separate parameter for the RTCP traffic bandwidth
         rather than using the default fraction of the session
         bandwidth.  In particular this may be necessary for data
         flows were the the RTCP recommended reduced minimum interval
         is still greater than the RTT.

      SR/RR extension: The SR/RR extensions are defined per RFC 3550.
         No changes are specified.

      SDES use: Applications MAY use any of the SDES items described
         in the RTP specification.

      Security: This profile is subject to the security considerations
         discussed in the TFRC and RTP specifications [TFRC][RTP].  This
         profile does not specify any additional security services.

      String-to-key mapping: No mapping is specified by this profile.

      Congestion: This profile specifies how to use RTP/RTCP with TFRC
         congestion control.

      Underlying protocol: The profile specifies the use of RTP over
         unicast UDP flows only, multicast MUST NOT be used.

      Transport mapping: The standard mapping of RTP and RTCP to
         transport-level addresses is used.

      Encapsulation: This profile is defined for encapsulation
         over UDP only.

5.  The TFRC Information Exchange Loop

   TFRC depends on the exchange of congestion control information
   between a sender and receiver.  In this section we reiterate which
   items are exchanged between a TFRC sender and receiver as discussed
   in [TFRC]. We note how the RTP/AVPFCC profile accommodates these

Gharai                                                          [Page 5]

INTERNET-DRAFT             Expires: March 2007            September 2006

5.1.  Data Packets

   As stated in [TFRC] a TFRC sender transmits the following information
   in each data packet to the receiver:

    o A sequence number, incremented by one for each data packet

    o A timestamp indicating the packet send time and the sender's
      current estimate of the round-trip time, RTT. This information
      is then used by the receiver to compute the TFRC loss intervals.
      - or -
      A course-grained timestamp incrementing every quarter of a
      round trip time, which is then used to determine the TFRC loss

   The standard RTP sequence number suffices for TFRCs functionality.
   For the computation of the loss intervals the RTP/AVPFCC profile
   extends the RTP data header as follows: a 32 bit field to transmit a
   send timestamp and an additional 32 bit field, present only when the
   RTT changes, to transmit the RTT. The presence of the RTT is
   indicated by the R bit in the RTP header (see Section 6).

5.2.  Feedback Packets

   As stated in [TFRC] a TFRC receiver provides the following feedback
   to the sender at least once per RTT or per data packet received
   (which ever time interval is larger):

    o The send timestamp of the last data packet received, t_i.

    o The amount of time elapsed between the receipt of the last
      data packet at the receiver, and the generation of this feedback
      report, t_delay. This is used by the sender for RTT computations.

    o The rate at which the receiver estimates that data was received
      since the last feedback report was sent, x_recv.

    o The receiver's current estimate of the loss event rate, p, a real
      value between 0 and 1.0.

   To accommodate the feedback of these values the RTP/AVPFCC profile
   defines a new AVPF transport layer feedback message, as detailed in
   Section 7.

Gharai                                                          [Page 6]

INTERNET-DRAFT             Expires: March 2007            September 2006

6.  RTP Data Header Additions

   The RTP/AVPFCC profile makes the following changes to the RTP header
   (other fields of the payload header are defined as in RFC 3550

      o the profile uses a 6 bit payload type (PT) field,
      o defines a 1 bit R field in the second octet, and
      o defines two additional 32 bit fixed fields:
        1. the packets send timestamp,
        2. the round trip time (RTT) as measured by the sender. This
           field is present if the R bit is set (see Figures 1 and 2).

   The additional fields of the RTP header are defined and used as

   Round trip time indicator (R): 1 bit
     This field indicates the existence of the additional RTT field. If
     the R bit is set, the RTP payload header includes a 32 bit field
     representing the current round trip time (Figures 1 and 2).

   Payload type (PT): 6 bits
     The RTP/AVPFCC profile uses a 6 bit field for the payload type
     (instead of a 7 bit field).

   Send timestamp: 32 bits
     The timestamp indicating when the packet is sent. This timestamp
     is measured in microseconds and is used for round trip time
     calculations. At microsecond granularity the send timestamp
     wraps around in approximately 71 minutes.

   Round trip time (RTT): 32 bits
     The round trip time as measured by the RTP/AVPFCC sender in
     microseconds.  This field is only present if the R bit is set
     (Figure 2).

Gharai                                                          [Page 7]

INTERNET-DRAFT             Expires: March 2007            September 2006

       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|X|  CC   |M|R|    PT     |      sequence number          |
      |                           timestamp                           |
      |           synchronization source (SSRC) identifier            |
      |                       send timestamp                          |
      |            contributing source (CSRC) identifiers             |
      |                             ....                              |
     Figure 1: RTP header and additions with R=0, no RTT included.

       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|X|  CC   |M|R|    PT     |       sequence number         |
      |                           timestamp                           |
      |           synchronization source (SSRC) identifier            |
      |                       send timestamp                          |
      |                              RTT                              |
      |            contributing source (CSRC) identifiers             |
      |                            ....                               |
     Figure 2: RTP header and additions with R=1, RTT included.

7.  TFRC-FB: A New AVPF Transport Layer Feedback Message

   To support feedback to the RTP/AVPFCC receivers a new transport layer
   AVPF feedback message is defined: TFRC-FB. This message is depicted
   in Figure 3.  It is defined according to [AVPF] and includes the
   following four fields:

   Timestamp (t_i): 32 bits
     The send timestamp of the last data packet received by the
     RTP/AVPFCC receiver, t_i, in microseconds.

Gharai                                                          [Page 8]

INTERNET-DRAFT             Expires: March 2007            September 2006

   Delay (t_delay): 32 bits
     The amount of time elapsed between the receipt of the last data
     packet at the RTP/AVPFCC receiver, and the generation of this
     feedback report in microseconds. This is used by the TFRC RTP
     sender for RTT computations.

   Data rate (x_recv): 32 bits
     The rate at which the receiver estimates that data was received
     since the last feedback report was sent in bytes per second.

   Loss event rate (p): 32 bits
     The receiver's current estimate of the loss event rate, p,
     expressed as a fixed point number with the binary point at the
     left edge of the field. (That is equivalent to taking the integer
     part after multiplying the loss event rate by 2^32.)

      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=2  |  PT=RTPFB     |             length            |
      |                     SSRC of packet sender                     |
      |                   SSRC (SSRC of first source)                 |
      |                             t_i                               |
      |                           t_delay                             |
      |                  data rate at the receiver (x_recv)           |
      |                    loss event rate (p)                        |
     Figure 3

8.  RTCP Transmission Intervals, TFRC and the AVPF Profile

   The AVPFCC profile recommends setting RTCP transmission intervals
   according to the requirements of the TFRC algorithm. TFRC requires a
   receiver to generate a feedback packet at least once per RTT or per
   packet received (based on the larger time interval). These
   requirements are to ensure timely reaction to congestion.

   Other requirements that AVPFCC must contend with are AVPF feedback

Gharai                                                          [Page 9]

INTERNET-DRAFT             Expires: March 2007            September 2006

   rules and AVP RTCP bandwidth constraints. In general the AVPFCC
   profile complies with the rules of AVPF for sending RTCP feedback
   packets with the following two exceptions:

    o allow_early is set to "true" at all times. Essentially, this means
      that a receiver can always generate an early feedback packet, and
      does not need to alternate between early and regular RTCP packets
      (see RFC 4585, Section 3.4,k).

    o T_rr_interval must not be set to a value larger than the current
      round trip time, as this would prevent generating feedback packets
      at least once per RTT (see RFC 4585, Section 3.4,m).

   The TFRC requirements of receiving feedback once per RTT can at times
   conflict with the AVP RTCP bandwidth constraints, particularly at
   small RTTs of 20ms or less.  Assuming only one TFRC-FB report per
   RTCP compound packet, Table 1 lists the RTCP bandwidths at RTTs of 2,
   5, 10 and 20 ms and the minimum corresponding RTP data rates, where
   RTCP(X) <= (0.05)*RTP(X) is true.   For example, according to Table
   1, an AVPFCC flow of less than 3.2 Mbps and a RTT of 5 ms, can not
   comply with the 5% RTCP bandwidth constraints (Table 1 assumes each
   RTCP packet is 100 bytes).

   The correct operation of TFRC at RTTs of 20ms and less, at data rates
   less than those list in Table 1 is an open issue and is TBD.

                        RTT      RTCP(X)   RTP(X)
                    |  20 ms |  40 kbps | 0.8 Mbps |
                    |  10 ms |  80 kbps | 1.6 Mbps |
                    |   5 ms | 160 kbps | 3.2 Mbps |
                    |   2 ms | 400 kbps | 8.0 Mbps |
                                Table 1

9.  SDP Definitions

   Applications using RTP integrated with TFRC and sending or receiving
   packets as defined in this document MUST use "AVPFCC" as part of
   their session description. The session will inherit the properties of
   the AVPF profile.

Gharai                                                         [Page 10]

INTERNET-DRAFT             Expires: March 2007            September 2006

10.  IANA Considerations

   In this section we detail IANA registry values that need to be
   registered. In particular the new RTP/AVPF feedback packet, TFRC-FB.
   For the RTPFB range of packets, the following format (FMT) value
   needs to be registered:

     Value name:  TFRC-FB
     Long name:   TFRC feedback
     Value:  2
     Reference:   RFC XXXX

11.  Security Considerations


12.  Acknowledgments

   This memo is based upon work supported by the U.S. National Science
   Foundation (NSF) under Grant No. 0334182. Any opinions, findings and
   conclusions or recommendations expressed in this material are those
   of the authors and do not necessarily reflect the views of NSF.

13.  Author's Address

     Ladan Gharai <ladan@isi.edu>
     USC Information Sciences Institute
     3811 N. Fairfax Drive, #200
     Arlington, VA 22203

Normative References

   [RTP]   H. Schulzrinne, S. Casner, R. Frederick and V. Jacobson,
           "RTP: A Transport Protocol for Real-Time Applications",
           Internet Engineering Task Force, RFC 3550 (STD0064), July

   [AVP]   H. Schulzrinne and S. Casner, "RTP Profile for Audio and
           Video Conferences with Minimal Control," RFC 3551 (STD0065),
           July 2003.

   [AVPF]  J. Ott, S. Wenger, A. Sato, C. Burmeister and J. Ray,
           "Extended RTP Profile for RTCP-based Feedback (RTP/AVPF)",

Gharai                                                         [Page 11]

INTERNET-DRAFT             Expires: March 2007            September 2006

        RFC 4585, July 2006.

   [2119]  S. Bradner, "Key words for use in RFCs to Indicate
           Requirement Levels", Internet Engineering Task Force,
           RFC 2119, March 1997.

   [2434]  T. Narten and H. Alvestrand, "Guidelines for Writing an IANA
           Considerations Section in RFCs", Internet Engineering Task
           Force, RFC 2434, October 1998.

   [TFRC]  M. Handley, S. Floyed, J. Padhye and J. widmer,
           "TCP Friendly Rate Control (TRFC): Protocol Specification",
           Internet Engineering Task Force, RFC 3448, January 2003.

   [SDP]   M. Handley and V. Jacobson, "SDP: Session Description
           Protocol", RFC 2327, April 1998.

   [SRTP]  M. Baugher, D. McGrew, M. Naslund, E. Carrara, K.  Norrman,
           "The Secure Real-time Transport Protocol", RFC 3711, March

Informative References

14.  IPR Notice

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-

Gharai                                                         [Page 12]

INTERNET-DRAFT             Expires: March 2007            September 2006

15.  Full Copyright Statement

   Copyright (C) The Internet Society (2006).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.

   This document and the information contained herein are provided on an

Gharai                                                         [Page 13]