Skip to main content

7. Changes Relative to RFC 2581

This section summarizes the changes made in this document relative to [RFC2581].

Duplicate Acknowledgment Definition

A specific definition for "duplicate acknowledgment" has been added, based on the definition used by BSD TCP.

Unspecified Behavior

The document now notes that what to do with duplicate ACKs after the retransmission timer has fired is future work and explicitly unspecified in this document.

Initial Window Requirements

The initial window requirements were changed to allow Larger Initial Windows as standardized in [RFC3390]. Additionally, the steps to take when an initial window is discovered to be too large due to Path MTU Discovery [RFC1191] are detailed.

Initial ssthresh Value

The recommended initial value for ssthresh has been changed to say that it SHOULD be arbitrarily high, where it was previously MAY. This is to provide additional guidance to implementors on the matter.

Slow Start - Appropriate Byte Counting

During slow start, the usage of Appropriate Byte Counting [RFC3465] with L=1*SMSS is explicitly recommended. The method of increasing cwnd given in [RFC2581] is still explicitly allowed.

Congestion Avoidance - Byte Counting

Byte counting during congestion avoidance is also recommended, while the method from [RFC2581] and other safe methods are still allowed.

ssthresh on Retransmission Timeout

The treatment of ssthresh on retransmission timeout was clarified. In particular, ssthresh must be set to half the FlightSize on the first retransmission of a given segment and then is held constant on subsequent retransmissions of the same segment.

Fast Retransmit and Fast Recovery

The description of fast retransmit and fast recovery has been clarified, and the use of Limited Transmit [RFC3042] is now recommended.

Duplicate ACK Spoofing Protection

TCPs now MAY limit the number of duplicate ACKs that artificially inflate cwnd during loss recovery to the number of segments outstanding to avoid the duplicate ACK spoofing attack described in [SCWA99].

Restart Window

The restart window has been changed to min(IW,cwnd) from IW. This behavior was described as "experimental" in [RFC2581].

Advanced Loss Recovery

It is now recommended that TCP implementors implement an advanced loss recovery algorithm conforming to the principles outlined in this document.

Security Considerations Update

The security considerations have been updated to discuss ACK division and recommend byte counting as a counter to this attack.