Why does TCP wait for three duplicate ACK before fast retransmit?

user507401 picture user507401 · Nov 20, 2010 · Viewed 29.2k times · Source

Why does TCP wait for three duplicate ACK before fast retransmit?

Answer

Don Roby picture Don Roby · Nov 20, 2010

RFC 2001 says

Since TCP does not know whether a duplicate ACK is caused by a lost segment or just a reordering of segments, it waits for a small number of duplicate ACKs to be received. It is assumed that if there is just a reordering of the segments, there will be only one or two duplicate ACKs before the reordered segment is processed, which will then generate a new ACK. If three or more duplicate ACKs are received in a row, it is a strong indication that a segment has been lost. TCP then performs a retransmission of what appears to be the missing segment, without waiting for a retransmission timer to expire.

The reasoning for not doing the retransmit until the third duplicate seems to be that until that point it's more likely to just be out-of-order delivery and the retransmit isn't really needed.