I haven't been monitoring this thread very closely, but if I'm not off base, the following points may explain some of what you are seeing. I'm not a TCP expert, but have been burned in the past and had to learn the following the hard way.

-- When you "close" a socket, it actually remains in a kind of limbo state, usually four minutes (two times the "maximum segment lifetime") or more, before it actually goes away. This is to prevent the socket/port from being reused during that time so delayed packets from the earlier "incarnation" of the connection aren't received and misinterpreted by a new connection on that port. [Stevens, "TCP/IP Illustrated: Volume 1, The Protocols"]

-- Many (most?) well-behaved applications use a predefined port only to establish a connection, and set up a temporary port provided by TCP for subsequent operations. "Dynamic and/or Private Ports are those from 49152 through 65535" [Internet Assigned Number Authority -- http://www.iana.org/assignments/port-numbers]. This threshold used to be much lower. Most applications don't seem to abide by these "well-known" "registered" port numbers once you get above 1024 -- and occasionally have conflicts as a result.

--Wayne
Does anybody know what's the cause? Thanks

1. <socket> tries to open a TCP connection; it gets assigned some random port..I'd be surprised that it got 39001, though it is a high enough value it could happen sometimes. Maybe it depends where the TCP stack starts allocating unallocated ports. Try opening a socket to a remote site, see what gets opened there.

2. run netstat -p to see the process with the port

3. are you sure the port is closed? Sometimes after a previous run the port may still be open.

-steve

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to