TCP Friendly Rate Control

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.

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.

The idea behind TFRC is to measure the loss probability and round-trip time and to use these as the parameters to a model of TCP throughput. The expected throughput from this model is then used to directly drive the transmit rate of a TFRC flow.

RFC 5348 - TCP Friendly Rate Control (TFRC): Protocol Specification