> > TCP goes into a 2msl time wait state after the connection closes in case
> > a segment got delayed in the network.  That is how TCP works.
> This explains the TIME_WAIT:TIME_WAIT status, but what about FIN_WAIT_2 ?
 
The TCP state labels in PF can not perfectly follow the RFC flow
diagram.  PF has to model the connection as a passive observer and not
an active participent.  So PF sees a FIN, FIN|ACK and ACK exchange.  You
would think that would go into the TIME_WAIT or CLOSED states.  But ACKs
are not reliable in TCP so PF can not guarantee that the ACK arrived at
the end host.  Thus PF can not ratchet the connection state past
FIN_WAIT_2.

And yes, 2msl applies to a FIN close.

.mike

Reply via email to