Okay, I've been trying to see if I can't fix linux to handle a rather unusual
case in TCP which causes a socket to end up in CLOSING state for 90 mins (until
it times out). The scenario is thus:

Machine A               Machine B

ESTABLISHED             ESTABLISHED
            <-- FIN --   close()
CLOSE_WAIT              FIN_WAIT_1
             -- ACK <lost>
CLOSE_WAIT              FIN_WAIT_1
 close()     -- FIN -->
LAST_ACK                CLOSING
            <-- ACK --
CLOSED                  CLOSING

If, at this point, Machine A has a socket in LISTEN on the same port, FIN
retransmissions from Machine B will be silently ignored. :(

I can't think of a way to fix this at Machine A. The obvious solution for
Machine B is to RST any stray FINs that are sent to a LISTENing socket. (Patch
to 2.2.3 attached)

Taral
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to [EMAIL PROTECTED]

Reply via email to