TCP connection timeouts during testing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi -

I've been working with some tcp network test programs that have
multiple clients opening nonblocking sockets to a single server port,
sending a short message, and then closing the socket, 100,000 times.
Since the socket is non-blocking, it generally tries to connect and then
does a poll since the socket is busy.  The test fails if the poll times out in
10 seconds.  It fails consistently on Linux servers but succeeds on Solaris
servers; the client is a non-issue unless its loopback on the Linux server.

This issue crops up both on 2.4 and 2.6 kernels; the main feature seen
in tcp dumps is that the server gets inundated with retrys, and then starts
sending RST responses to everything (labelled as ZeroWindow in a
Ethereal dump).  One interesting feature is that many clients thinks the
3-way connection handshake is complete, when the server actually
doesn't get the final ACK; The client starts sending and then retransmitting
the data, and the server keeps sending back the SYN/ACK part of the
handshake.  Another interesting feature is a group of retries from various
client ports, followed by a group of ACK,RST responses from the server,
followed by the ZeroWindow RST to everything.

On Linux, the only way to succeed is to use remote clients - thus avoiding
extra work on the server -and changing test parameters to put in a longer
server delay, which is inserted between the closing of one connection and
the opening of the next. I'm assuming that the tcp network queues are just
getting overloaded with the data retransmissions, but I don't know enough
about the queue management yet.  Any suggestions/pointers/fixes?

Regards -

Tom McNeal
Former NFS dude, current Kernel Support dude

--
Tom McNeal
(650)906-0761(cell)
(650)964-8459(fax)
Email: trmcneal@xxxxxxxxxxx
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux