On Wed, Jun 24, 2009 at 8:16 PM, Brandon S. Allbery KF8NH <allbery@ece.cmu.edu> wrote:
The BSD socket protocol is explicitly driven by a state machine, btw, but it's a fairly complex one.  Also, it's generally described in terms of the kernel's view, which includes states you normally can't distinguish in a user program (for example, a socket in TIME_WAIT keeps its port unavailable unless you use SO_REUSEADDR, but is otherwise indistinguishable from a socket which has been close()d and reaped).

I've been looking for a state diagram for this state machine for e.g. Linux but my google-fu has failed me so far. Do you have a reference?

-- Johan