Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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

like image 243
user507401 Avatar asked Nov 20 '10 16:11

user507401


People also ask

Why wait for at least 3 duplicate ACK before initiating fast recovery?

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.

Why should three duplicate ACKs trigger Fast Retransmit fast recovery instead of dropping back to slow start?

The reason for not performing slow start in this case is that the receipt of the duplicate ACKs tells TCP more than just a packet has been lost. Since the receiver can only generate the duplicate ACK when another segment is received, that segment has left the network and is in the receiver's buffer.

When a TCP sender receives a triple duplicate ACK?

In TCP Reno, when three duplicate ACKs are received, TCP retransmits the packet presumed lost without waiting for timeout. This is called fast-retransmit.

How many duplicate ACKs are required to trigger TCP fast retransmit?

In most cases, once the sender receives three duplicate acknowledgments, it will immediately retransmit the missing packet instead of waiting for a timer to expire. These are called fast retransmissions.


1 Answers

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.

like image 102
Don Roby Avatar answered Oct 19 '22 07:10

Don Roby