Article ID: 162179
Article Last Modified on 11/1/2006
Sender Receiver
-------------------
packet1 ->
packet2 ->
<- ack for data up through packet2
packet3 -> (assume this packet is lost)
packet4 ->
<- ack for data up through packet2
packet5 ->
<- ack for data up through packet2
packet6 ->
<- ack for data up through packet2
packet7 ->
<- ack for data up through packet2
packet8 ->
<- ack for data up through packet2
pause, for retransmission timeout of packet 3 data
packet3 ->
<- ack for data up through packet8
NOTE: After a packet is dropped, the receiver immediately sends an
acknowledgment that indicates the receive position in the byte stream each
time it receives another packet that is past the hole. These additional
ACKS for packet2 are a hint to the sender that there has been a dropped
packet. However, prior to Service Pack 2, this indication was not acted on.
Instead, the sender continues sending, to the end of the send window, then
pauses. Eventually, the retransmission timer for packet3 expires, and it is
resent. An ACK is returned for all of the data up through packet8, and the
sender starts out again. However, it engages congestion control and starts
slowly. As a result, the data throughput is not ideal.
Sender Receiver
-------------------
packet1 ->
packet2 ->
<- ack for data up through packet2
packet3 -> (assume this packet is lost)
packet4 ->
<- ack for data up through packet2
packet5 ->
<- ack for data up through packet2
packet3 -> (new !!)
packet6 ->
<- ack for data up through packet6
packet7 ->
packet8 ->
<- ack for data up through packet8
HKEY_LOCAL_MACHINE/SYSTEM/currentcontrolset/services/tcpip/parameters
Name: TcpMaxDupAcks
Value Type: REG_DWORD - Number
Valid Range: 1-3
Default: 2
Additional query words: semaphore timed out vj twice
Keywords: kbnetwork KB162179