TCP Friendly Rate Control (TFRC): Protocol Specification
RFC 5348
Document | Type |
RFC - Proposed Standard
(September 2008; Errata)
Obsoletes RFC 3448
Updates RFC 4342
|
|
---|---|---|---|
Authors | Mark Handley , Jitendra Padhye , Sally Floyd , Joerg Widmer | ||
Last updated | 2020-01-21 | ||
Replaces | draft-floyd-rfc3448bis | ||
Stream | IETF | ||
Formats | plain text html pdf htmlized with errata bibtex | ||
Stream | WG state | (None) | |
Document shepherd | No shepherd assigned | ||
IESG | IESG state | RFC 5348 (Proposed Standard) | |
Consensus Boilerplate | Unknown | ||
Telechat date | |||
Responsible AD | Lars Eggert | ||
Send notices to | (None) |
Network Working Group S. Floyd Request for Comments: 5348 ICIR Obsoletes: 3448 M. Handley Updates: 4342 University College London J. Padhye Microsoft J. Widmer DoCoMo September 2008 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. 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 streaming media where a relatively smooth sending rate is of importance. This document obsoletes RFC 3448 and updates RFC 4342. Table of Contents 1. Introduction ....................................................3 2. Conventions .....................................................4 3. Protocol Mechanism ..............................................4 3.1. TCP Throughput Equation ....................................5 3.2. Packet Contents ............................................7 3.2.1. Data Packets ........................................7 3.2.2. Feedback Packets ....................................8 4. Data Sender Protocol ............................................8 4.1. Measuring the Segment Size .................................9 4.2. Sender Initialization .....................................10 4.3. Sender Behavior When a Feedback Packet Is Received ........10 4.4. Expiration of Nofeedback Timer ............................15 4.5. Reducing Oscillations .....................................17 Floyd, et al. Standards Track [Page 1] RFC 5348 TFRC: Protocol Specification September 2008 4.6. Scheduling of Packet Transmissions ........................18 5. Calculation of the Loss Event Rate (p) .........................19 5.1. Detection of Lost or Marked Packets .......................19 5.2. Translation from Loss History to Loss Events ..............20 5.3. The Size of a Loss Interval ...............................22 5.4. Average Loss Interval .....................................22 5.5. History Discounting .......................................24 6. Data Receiver Protocol .........................................26 6.1. Receiver Behavior When a Data Packet Is Received ..........27 6.2. Expiration of Feedback Timer ..............................27 6.3. Receiver Initialization ...................................28 6.3.1. Initializing the Loss History after the First Loss Event ...................................29 7. Sender-Based Variants ..........................................30 8. Implementation Issues ..........................................31 8.1. Computing the Throughput Equation .........................31 8.2. Sender Behavior When a Feedback Packet Is Received ........32 8.2.1. Determining If an Interval Was a Data-Limited Interval ..............................32 8.2.2. Maintaining X_recv_set .............................34 8.3. Sending Packets before Their Nominal Send Time ............34 8.4. Calculation of the Average Loss Interval ..................36 8.5. The Optional History Discounting Mechanism ................36 9. Changes from RFC 3448 ..........................................36 9.1. Overview of Changes .......................................36 9.2. Changes in Each Section ...................................37 10. Security Considerations .......................................39 10.1. Security Considerations for TFRC in DCCP .................40 11. Acknowledgments ...............................................40 Appendix A. Terminology ...........................................41 Appendix B. The Initial Value of the Nofeedback Timer .............43 Appendix C. Response to Idle or Data-Limited Periods ..............44 C.1. Long Idle or Data-Limited Periods ........................45 C.2. Short Idle or Data-Limited Periods .......................48Show full document text