Ethereal-users: Re: [Ethereal-users] Application Keeps Acking Same Packet, then Suddenly Catches

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: "Marco Rommelse" <m.rommelse@xxxxxxxxx>
Date: Fri, 5 Sep 2003 11:07:37 +0200
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.
 
----- Original Message -----
Sent: Friday, September 05, 2003 2:47 AM
Subject: [Ethereal-users] Application Keeps Acking Same Packet,then Suddenly Catches Up

Network geeks:

 

I have an application called ProLaw that runs off a NetWare server on the other side of a PIX firewall.

 

Most of my workstations perform fine. But two or three of them slow way down after a few hours of use, to the point that queries which usually take 10-15 seconds take 1.5 minutes! Meanwhile, other clients on the same switch keep working fine.

 

Traces show that during the slow periods, the client retransmits a lot of ACKs of the same data. It will transmit the same ACK maybe 9 or 10 times in a row with only about 0.000002 seconds between. Then the server finally retransmits a packet of its own.

 

When this happens, the client finally ACKs all of the previously received data at once and catches up.

 

Somebody please offer some insight on what could be happening here!

 

--Eric


_______________________________________________
Ethereal-users mailing list
Ethereal-users@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-users