TCP Friendly Rate Control (TFRC): Protocol Specification
RFC 3448
Document | Type |
RFC - Proposed Standard
(January 2003; Errata)
Obsoleted by RFC 5348
|
|
---|---|---|---|
Last updated | 2013-03-02 | ||
Stream | IETF | ||
Formats | plain text pdf htmlized with errata bibtex | ||
Stream | WG state | (None) | |
Document shepherd | No shepherd assigned | ||
IESG | IESG state | RFC 3448 (Proposed Standard) | |
Consensus Boilerplate | Unknown | ||
Telechat date | |||
Responsible AD | Allison Mankin | ||
IESG note |
Thomas Narten has many small rewrites and issues - the dialog was extensive and I started the author with him on it late - result is that the full approved ballot had ADs no longer on IESG. Draft is before IESG to collect some support to make up enough approval to pass now that Thomas has removed his Discuss. Delay would not be appreciated as DCCP and many media uses are interested in TFRC. All IESG but Thomas supported nearly a year ago. |
||
Send notices to | <mankin@psg.com>, <jon.peterson@neustar.biz> |
Network Working Group M. Handley Request for Comments: 3448 S. Floyd Category: Standards Track ICIR J. Padhye Microsoft J. Widmer University of Mannheim January 2003 TCP Friendly Rate Control (TFRC): Protocol Specification Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract This document specifies TCP-Friendly Rate Control (TFRC). TFRC is a congestion control mechanism for unicast flows operating in a best- effort Internet environment. It is reasonably fair when competing for bandwidth with TCP flows, but has a much lower variation of throughput over time compared with TCP, making it more suitable for applications such as telephony or streaming media where a relatively smooth sending rate is of importance. Table of Contents 1. Introduction. . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . 3 3. Protocol Mechanism. . . . . . . . . . . . . . . . . . . 3 3.1. TCP Throughput Equation. . . . . . . . . . . . . . 4 3.2. Packet Contents. . . . . . . . . . . . . . . . . . 6 3.2.1. Data Packets. . . . . . . . . . . . . . . . 6 3.2.2. Feedback Packets. . . . . . . . . . . . . . 7 4. Data Sender Protocol. . . . . . . . . . . . . . . . . . 7 4.1. Measuring the Packet Size. . . . . . . . . . . . . 8 4.2. Sender Initialization. . . . . . . . . . . . . . . 8 Handley, et. al. Standards Track [Page 1] RFC 3448 TFRC: Protocol Specification January 2003 4.3. Sender behavior when a feedback packet is received. . . . . . . . . . . . . .. . . . . . . . 8 4.4. Expiration of nofeedback timer . . . . . . . . . . 9 4.5. Preventing Oscillations. . . . . . . . . . . . . . 10 4.6. Scheduling of Packet Transmissions . . . . . . . . 11 5. Calculation of the Loss Event Rate (p). . . . . . . . . 12 5.1. Detection of Lost or Marked Packets. . . . . . . . 12 5.2. Translation from Loss History to Loss Events . . . 13 5.3. Inter-loss Event Interval. . . . . . . . . . . . . 14 5.4. Average Loss Interval. . . . . . . . . . . . . . . 14 5.5. History Discounting. . . . . . . . . . . . . . . . 15 6. Data Receiver Protocol. . . . . . . . . . . . . . . . . 17 6.1. Receiver behavior when a data packet is received . . . . . . . . . . . . . . . . . . . . . 18 6.2. Expiration of feedback timer . . . . . . . . . . . 18 6.3. Receiver initialization. . . . . . . . . . . . . . 19 6.3.1. Initializing the Loss History after the First Loss Event . . . . . . . . . . . . . 19 7. Sender-based Variants . . . . . . . . . . . . . . . . . 20 8. Implementation Issues . . . . . . . . . . . . . . . . . 20 9. Security Considerations . . . . . . . . . . . . . . . . 21 10. IANA Considerations . . . . . . . . . . . . . . . . . . 22 11. Acknowledgments . . . . . . . . . . . . . . . . . . . . 22 12. Non-Normative References. . . . . . . . . . . . . . . . 22 13. Authors' Addresses. . . . . . . . . . . . . . . . . . . 23 14. Full Copyright Statement. . . . . . . . . . . . . . . . 24 1. Introduction This document specifies TCP-Friendly Rate Control (TFRC). TFRC is a congestion control mechanism designed for unicast flows operating in an Internet environment and competing with TCP traffic [2]. Instead of specifying a complete protocol, this document simply specifies a congestion control mechanism that could be used in a transport protocol such as RTP [7], in an application incorporating end-to-end congestion control at the application level, or in the context of endpoint congestion management [1]. This document does not discuss packet formats or reliability. Implementation-related issues are discussed only briefly, in Section 8. TFRC is designed to be reasonably fair when competing for bandwidth with TCP flows, where a flow is "reasonably fair" if its sending rate is generally within a factor of two of the sending rate of a TCP flowShow full document text