RFC 3448 (rfc3448) - Page 2 of 24
TCP Friendly Rate Control (TFRC): Protocol Specification
Alternative Format: Original Text Document
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 flow
under the same conditions. However, TFRC has a much lower variation
of throughput over time compared with TCP, which makes it more
suitable for applications such as telephony or streaming media where
a relatively smooth sending rate is of importance.
Handley, et. al. Standards Track