Quote:>You're running into a limitation in TCP; you would need to reuse the
>addresses (which only works if you're connecting to different servers
>or ports)
Strictly speaking, he's running into a limitation of this implementation of
TCP, although it's a limitation that most implementations share. When
making an outbound connection, TCP could compare all the other fields of
the tuple to find when scanning existing connections. But to keep the
search for a local port simple, most implementations just look for one that
isn't in use at all (this can be done using a simple bit vector, rather
than having to search all the open connections or using a more complex data
structure to track port numbers).
Limiting a system to 32K concurrent outbound connections is rarely a
problem. It sounds like the OP only ran into it because he was running an
application designed to stress the system, not a normal use. Systems with
lots of connections are usually servers, and most of the connections are
inbound, not outbound.
It should be noted also that some versions of Unix have a fixed-size file
table in the kernel, which holds all open streams. This puts a limit on
the total number of files, network connections, devices, etc. that can be
open at once. I think SysVR4 has eliminated this, but some other flavors
of Unix may still have it.
--
Genuity, Burlington, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Please DON'T copy followups to me -- I'll assume it wasn't posted to the group.