Nagle only comes in to play for things like delayed acks and things. When a segment is received that does not advance the left edge of the receiving window (i.e. out of order), an ACK is to be sent immediately to the other side to inform about the potential packet-loss. No exceptions. Nagle does not apply in this situation. This ACK is called a duplicate ack and MUST be sent immediately. A TCP that does Nagle on/while sending duplicate acks would be incredibly broken. ----- Original Message ----- From: Marco Rommelse To: Robinson, Eric R. Sent: Friday, September 05, 2003 7:07 PM Subject: Re: [Ethereal-users] Application Keeps Acking Same Packet,then Suddenly Catches Up Eric, Ack-ing the same packet every time is tcp's only way of letting the sending party know that it has lost the tcp frame following the acked one. The reciever ack's every packet that it recieves after the lost frame with the sequence number of the frame it hasn't recieved. The server should resend that frame. When the frame has been resent, tcp acks the last sequence number + length of the last frame it has gotten in good order from the sender. The fact that you see the reciever ack-ing 9-10 times has to do with the nagle algorithm. This algorithm has an internal clock which goes off every 200 ms (standard setting). During that time it waits with ack-ing packets until it has something to send as well. If the 200 ms period has passed, and there is nothing to send, then it has to ack the packets it recieved. Your sender is probably filling up the windowsize of your reciever during that waiting period (fast sender, slow reciever), and tcp has lost a packet. Retransmissions like this can slow things down considerably. Try replacing the lan-cables first, then the patch panels (if any), then switch switchports, then replace nic's. Test every step. Marco.
Powered by MHonArc 2.6.10