Thread (3 messages) flat view 3 messages, 3 authors, 2002-08-30

Re: TCP stops sending ACKs after 32 mesg...

From: Matti Aarnio <hidden>
Date: 2002-08-30 11:24:48

On Fri, Aug 30, 2002 at 04:47:30PM +0530, Saurabh Bansal wrote:
Hi,

It has been more than a week since I posted this query to the LINUX 
group and haven't heard anything from the group-side in this context.
Is my query under processing/observation OR something else??
  Slipped in between spam-floods, or something...
Hope to get some positive response from your side this time!
Thanks And Regards
Saurabh

----- Original Message ----- 
From: Saurabh Bansal 
To: netdev@oss.sgi.com 
Cc: linux-net@vger.kernel.org 
Sent: Wednesday, August 21, 2002 1:26 PM

Hi all,

    I did this experiment with the a set of two processes behaving as
a sender/receiver set on the same Linux machine. What the experiment was 
that---

"The sender has to send some fixed-size (20 bytes) mesgs to the 
 receiver but the receiver has not to pick-up anyone of them."

 What has been observed is, TCP buffers the first 32 messages into the 
receive socket queue of receiver, AND THEN it stops sending ack's for 
next mesg. As a result, the sender keeps on trying to send the 33rd 
mesg, but gets no ack's and connection gets down within 15-20 minutes. 
  Are you sure you are emptying the receiver socket when some
  new data arrives ?
Another important observations about this experiment are :

1) These two processes were running on the same Linux system with 
   kernel version 2.2.xx. This problem doesn't come with Linux-kernel 
   2.4.xx.
  I recall having seen this kind of problems in 2.1/2.2 series,
  possibly a bug-fix was added in late 2.2 to restore earlier
  behaviour in 2.0...

  I had implemented a problem circumvention in one of my software
  suites by making the socket non-blocking, and adding proper
  select() calls.
2) If these processes are run on different Linux m/c's with kernel 
   2.2.xx, the problem doesn't appear.
  Quite so.
3) The socket APIs used for sending/receiving mesg are send()/recv().
4) The problem has no relevance with the size of mesg. I have seen the 
   same behavior with 1-byte mesg to 1k-byte mesg.

Can anyone tell me if there is any bug/limitation with the Linux-kernel 
2.2.xx in comparison to kernel 2.4.xx in the above problem-context??
  I faintly recall something which might be what you are describing.
 
Saurabh Bansal
/Matti Aarnio
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help