September 2008 | S. Floyd, M. Handley, J. Padhye, J. Widmer
This document specifies the TCP Friendly Rate Control (TFRC) protocol, a congestion control mechanism designed for unicast flows in an Internet environment. TFRC aims to be reasonably fair with TCP flows while providing smoother throughput over time, making it suitable for applications like streaming media. The protocol is based on the TCP throughput equation and uses feedback from the receiver to adjust the sender's transmission rate. Key features include:
1. **Protocol Mechanism**: TFRC uses a throughput equation that depends on the loss event rate and round-trip time (RTT). The sender measures these parameters and adjusts its transmission rate accordingly.
2. **Sender Behavior**: The sender initializes its transmission rate and maintains an estimate of the RTT. It updates its transmission rate based on feedback packets, reducing it if no feedback is received for four RTTs.
3. **Nofeedback Timer**: If the sender is idle for a period, it reduces its transmission rate by half to prevent congestion.
4. **Oscillation Reduction**: To reduce queueing delay and sending rate oscillations, the sender can adjust its transmission rate based on the square root of the RTT.
5. **Packet Transmission Scheduling**: The sender may send packets before their nominal send time to maintain the correct average rate, but must limit the burstiness of transmissions.
6. **Loss Event Rate Calculation**: The receiver measures the loss event rate by detecting lost or marked packets and mapping them into loss events. The average loss interval is calculated to determine the loss event rate.
7. **Data Receiver Protocol**: The receiver sends feedback packets to the sender, reporting the receive rate and loss event rate. Feedback packets are typically sent at least once per RTT.
The document also discusses implementation issues, differences from RFC 3448, and optional mechanisms like history discounting to improve TFRC's performance.This document specifies the TCP Friendly Rate Control (TFRC) protocol, a congestion control mechanism designed for unicast flows in an Internet environment. TFRC aims to be reasonably fair with TCP flows while providing smoother throughput over time, making it suitable for applications like streaming media. The protocol is based on the TCP throughput equation and uses feedback from the receiver to adjust the sender's transmission rate. Key features include:
1. **Protocol Mechanism**: TFRC uses a throughput equation that depends on the loss event rate and round-trip time (RTT). The sender measures these parameters and adjusts its transmission rate accordingly.
2. **Sender Behavior**: The sender initializes its transmission rate and maintains an estimate of the RTT. It updates its transmission rate based on feedback packets, reducing it if no feedback is received for four RTTs.
3. **Nofeedback Timer**: If the sender is idle for a period, it reduces its transmission rate by half to prevent congestion.
4. **Oscillation Reduction**: To reduce queueing delay and sending rate oscillations, the sender can adjust its transmission rate based on the square root of the RTT.
5. **Packet Transmission Scheduling**: The sender may send packets before their nominal send time to maintain the correct average rate, but must limit the burstiness of transmissions.
6. **Loss Event Rate Calculation**: The receiver measures the loss event rate by detecting lost or marked packets and mapping them into loss events. The average loss interval is calculated to determine the loss event rate.
7. **Data Receiver Protocol**: The receiver sends feedback packets to the sender, reporting the receive rate and loss event rate. Feedback packets are typically sent at least once per RTT.
The document also discusses implementation issues, differences from RFC 3448, and optional mechanisms like history discounting to improve TFRC's performance.