This document advances the NewReno TCP Fast Retransmit and Fast Recovery algorithms from Experimental to Standards Track status. The main change is specifying the Careful variant of NewReno's Fast Retransmit and Fast Recovery algorithms. The base algorithm in RFC 2582 did not avoid unnecessary multiple Fast Retransmits after a timeout, but RFC 2582 also defined "Careful" and "Less Careful" variants to avoid these, with the Careful variant recommended. This document specifies the Careful variant as the basic version of NewReno.
The NewReno algorithm improves upon the Reno algorithm by responding to partial acknowledgements received during Fast Recovery. It introduces a variable "recover" to avoid multiple Fast Retransmits caused by retransmission of packets already received by the receiver. The algorithm uses "recover" to determine whether to invoke Fast Retransmit based on whether the Cumulative Acknowledgement field covers more than "recover".
The NewReno algorithm also includes heuristics to distinguish between a retransmitted packet that was dropped and three duplicate acknowledgements from the unnecessary retransmission of three packets. These heuristics include an ACK-based heuristic and a timestamp heuristic. The ACK-based heuristic checks the advancement of the cumulative acknowledgement field, while the timestamp heuristic compares the echoed timestamp in the duplicate acknowledgement with the stored timestamp of the last acknowledged segment.
The document discusses various implementation issues for both the data receiver and sender, including the importance of immediate acknowledgments for out-of-order segments and the need to avoid bursts of data when leaving Fast Recovery. It also compares NewReno with Reno TCP, noting that NewReno generally performs better in scenarios with multiple packet drops, although Reno may perform better in scenarios with reordering.
The document also outlines simulations and references to other documents that describe the behavior of NewReno and Reno TCP. It concludes that NewReno is a better choice for TCP connections that do not support SACK, as it improves the performance of the Fast Retransmit and Fast Recovery algorithms in a wide variety of scenarios.This document advances the NewReno TCP Fast Retransmit and Fast Recovery algorithms from Experimental to Standards Track status. The main change is specifying the Careful variant of NewReno's Fast Retransmit and Fast Recovery algorithms. The base algorithm in RFC 2582 did not avoid unnecessary multiple Fast Retransmits after a timeout, but RFC 2582 also defined "Careful" and "Less Careful" variants to avoid these, with the Careful variant recommended. This document specifies the Careful variant as the basic version of NewReno.
The NewReno algorithm improves upon the Reno algorithm by responding to partial acknowledgements received during Fast Recovery. It introduces a variable "recover" to avoid multiple Fast Retransmits caused by retransmission of packets already received by the receiver. The algorithm uses "recover" to determine whether to invoke Fast Retransmit based on whether the Cumulative Acknowledgement field covers more than "recover".
The NewReno algorithm also includes heuristics to distinguish between a retransmitted packet that was dropped and three duplicate acknowledgements from the unnecessary retransmission of three packets. These heuristics include an ACK-based heuristic and a timestamp heuristic. The ACK-based heuristic checks the advancement of the cumulative acknowledgement field, while the timestamp heuristic compares the echoed timestamp in the duplicate acknowledgement with the stored timestamp of the last acknowledged segment.
The document discusses various implementation issues for both the data receiver and sender, including the importance of immediate acknowledgments for out-of-order segments and the need to avoid bursts of data when leaving Fast Recovery. It also compares NewReno with Reno TCP, noting that NewReno generally performs better in scenarios with multiple packet drops, although Reno may perform better in scenarios with reordering.
The document also outlines simulations and references to other documents that describe the behavior of NewReno and Reno TCP. It concludes that NewReno is a better choice for TCP connections that do not support SACK, as it improves the performance of the Fast Retransmit and Fast Recovery algorithms in a wide variety of scenarios.