[e2e] tcp connection timeout
rick jones
perfgeek at mac.com
Thu Mar 9 19:18:23 PST 2006
> shutdown(SHUT_WR) isn't specified in the TCP API; I don't have the
> Linux
> source code, but it should issue a CLOSE() call as well.
that basically says it won't be sending any more data but might be
receiving more data.
> The FIN_WAIT_2 results in kept state until a new connection is tried
> that collides.
That could be a very long time indeed.
> That happens on the local end when an app tries to open a new
> connection
> or send data on the old one; either return an error, at which point the
> application can decide to issue an ABORT() so it can proceed with a new
> connection. The same would occur when an application dies, i.e., when
> it
> 'disconnects' from the socket, where the OS can issue an ABORT.
Perhaps it is implementation specific, but how about when another
application, or instance of that application tries to start a listen
endpoint. I guess you would consider that a new connection being tried
that collides?
> It happens on the remote end when the old connection tries to open a
> new
> connection, where at some point the other side sends a RST or a FIN.
Which may never happen when the remote simply goes poof.
> I.e., overall, the APPLICATION on one side or the other has to decide
> what to do. This can be accomplished by a global OS parameter that
> effectively emulates the timeout for the application, but to TCP it's
> an
> application-layer decision.
Isn't that global OS parameter that effectively emulates the timeout
for the application effectively a TCP keepalive?
rick jones
there is no rest for the wicked, yet the virtuous have no pillows
More information about the end2end-interest
mailing list