Computing TCP’s Retransmission Timer

Computing TCP’s Retransmission Timer

June 2011 | V. Paxson, M. Allman, J. Chu, M. Sargent
This document, titled "Computing TCP's Retransmission Timer," is a Request for Comments (RFC) by the Internet Engineering Task Force (IETF). It defines the standard algorithm for Transmission Control Protocol (TCP) senders to compute and manage their retransmission timer (RTO). The document updates RFC 2988 and upgrades the requirement of supporting the algorithm from a SHOULD to a MUST. The key points covered include: 1. **Algorithm Overview**: The document outlines the algorithm for setting the RTO, which involves maintaining state variables such as SRTT (smoothed round-trip time) and RTTVAR (round-trip time variation). The initial RTO is set to 1 second, and subsequent RTT measurements are used to update these variables. 2. **RTT Samples**: TCP must use Karn's algorithm for taking RTT samples, avoiding segments that were retransmitted. Each ACK can be used as an RTT sample, and at least one RTT measurement per RTT is required. 3. **Clock Granularity**: The clock granularity G used for computing RTT measurements and state variables must be consistent, with a minimum value of 100 milliseconds recommended. 4. **Timer Management**: The document provides a recommended algorithm for managing the retransmission timer, ensuring that segments are not retransmitted too early. If the timer expires, the RTO is doubled, and the timer is restarted. 5. **Security Considerations**: The document discusses potential security risks, such as attackers causing large RTO values by adding delays to packet latency, but notes that these attacks are difficult to execute without significant damage. The document also includes a rationale for lowering the initial RTO from 3 seconds to 1 second, based on modern network speeds and performance studies. This change aims to balance the need for a large initial RTO to avoid spurious retransmissions with the requirement for a timely recovery from packet loss.This document, titled "Computing TCP's Retransmission Timer," is a Request for Comments (RFC) by the Internet Engineering Task Force (IETF). It defines the standard algorithm for Transmission Control Protocol (TCP) senders to compute and manage their retransmission timer (RTO). The document updates RFC 2988 and upgrades the requirement of supporting the algorithm from a SHOULD to a MUST. The key points covered include: 1. **Algorithm Overview**: The document outlines the algorithm for setting the RTO, which involves maintaining state variables such as SRTT (smoothed round-trip time) and RTTVAR (round-trip time variation). The initial RTO is set to 1 second, and subsequent RTT measurements are used to update these variables. 2. **RTT Samples**: TCP must use Karn's algorithm for taking RTT samples, avoiding segments that were retransmitted. Each ACK can be used as an RTT sample, and at least one RTT measurement per RTT is required. 3. **Clock Granularity**: The clock granularity G used for computing RTT measurements and state variables must be consistent, with a minimum value of 100 milliseconds recommended. 4. **Timer Management**: The document provides a recommended algorithm for managing the retransmission timer, ensuring that segments are not retransmitted too early. If the timer expires, the RTO is doubled, and the timer is restarted. 5. **Security Considerations**: The document discusses potential security risks, such as attackers causing large RTO values by adding delays to packet latency, but notes that these attacks are difficult to execute without significant damage. The document also includes a rationale for lowering the initial RTO from 3 seconds to 1 second, based on modern network speeds and performance studies. This change aims to balance the need for a large initial RTO to avoid spurious retransmissions with the requirement for a timely recovery from packet loss.
Reach us at info@study.space
[slides] Computing TCP's Retransmission Timer | StudySpace