Resolving Acknowledgment Ambiguity in non-SACK TCP

Andrei Gurtov
Sally Floyd

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.