Resolving Acknowledgment Ambiguity in non-SACK TCP
In Proceedings of the International Conference on NExt Generation Teletraffic and Wired/Wireless Advanced Networking (NEW2AN'04), February 2004
[Full Text in PDF Format, 182KB]
In the absence of support for Selective Acknowledgments (SACK) from its
peer, TCP suffers from ambiguity regarding Duplicate Acknowledgments after
a Retransmit Timeout. In particular, TCP is not able to determine if
Duplicate Acknowledgments result from packets that were retransmitted
unnecessarily, or from an earlier packet that was lost. Consequently, TCP
can either perform unnecessary Fast Retransmits, or suppress the Fast
Retransmit and have to wait unnecessarily for a Retransmit Timeout. This
paper presents two heuristics that enable non-SACK TCP to correctly
determine the reason for Duplicate Acknowledgments in most scenarios.
Using these heuristics, a sender in a non-SACK TCP connection can perform
significantly better over lossy paths.