Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a21b3d5f7ddf1709

Jump to content

TCP Friendly Rate Control

From Wikipedia, the free encyclopedia

TCP-Friendly Rate Control (TFRC) is a congestion control mechanism designed for unicast flows operating in an Internet environment and competing with TCP traffic. The goal is to compete fairly with TCP traffic on medium timescales, but to be much less variable than TCP on short timescales.[1]

TCP-friendliness

[edit]

TCP congestion control works by maintaining a window of bytes that have not yet been acknowledged. This window is increased by a known value (α) every round-trip time if no packets (a collection of bytes traversing the network) have been lost, and is decreased by a known value (β) if packet loss is detected. Thus TCP's window (and hence throughput) is a function of the losses observed in the network and the round-trip time experienced by the flow.[1] More specifically, TCP uses an additive increase/multiplicative decrease (AIMD) protocol, which significantly drops throughput when congestion is experienced.[2]

Because TCP backs off when congestion is detected, it will be certain to lose out when it is competing with a higher-throughput protocol that does not back off.[3] Thus, to maintain fairness with TCP traffic, TCP-friendly protocols, defined as protocols with packet arrival rates never exceeding that of a TCP connection under the same circumstances, are required.[4]

Congestion control in TFRC

[edit]

TFRC was defined by Internet Engineering Task Force RFC 5348 as a TCP-friendly protocol which does not have the same sudden drops in throughput which a TCP connection with AIMD-based congestion control may experience when faced with congestion (e.g. in applications such as media streaming where consistent quality is important).[3]

The idea behind TFRC is to measure the loss probability and round-trip time and to use these as the input parameters to a model of TCP throughput.[1] The expected throughput from this model is then used to directly drive the transmit rate of a TFRC flow. The equation used by TFRC to adjust the target transmit rate X (in bits per second) is:[3]

where

Under typical conditions, the application-layer protocol can then choose the highest transmit rate (e.g. the coding rate of a media-streaming application) that is still less than X in order to achieve good performance without sudden drops in quality.[3]

See also

[edit]

References

[edit]
  1. 1 2 3 RFC 5348. IETF. doi:10.17487/RFC5348.
  2. Chiu, Dah-Ming; Raj Jain (1989). "Analysis of increase and decrease algorithms for congestion avoidance in computer networks". Computer Networks and ISDN Systems. 17: 1–14. doi:10.1016/0169-7552(89)90019-6.
  3. 1 2 3 4 Peterson, Larry; Brakmo, Lawrence; Davie, Bruce (2022). "7.4 TCP-Friendly Protocols (TFRC)". TCP Congestion Control: A Systems Approach. Retrieved 2026-07-21.
  4. Floyd, S.; Fall, K. (1999-08-31). "Promoting the use of end-to-end congestion control in the Internet". IEEE/ACM Transactions on Networking. 7 (4): 458–472. doi:10.1109/90.793002. ISSN 1558-2566.