Penguin
Note: You are viewing an old revision of this page. View the current version.

States of a TCP connection. These can be seen with

netstat -at

CLOSED
A theoretical state where a TCP connection doesn't exist yet.
LISTEN
A state where TCP connection is waiting for a connection to be made to it.
SYN_RCVD
A SYN has been received, a SYN ACK has been sent, and we are waiting for an ACK
SYN_SENT
A SYN has been sent to start a connection, the SYN ACK hasn't yet been received.
ESTABLISHED
A connection has been established
CLOSE_WAIT
After a TCP connection has been closed, the spec says you should make sure that the connection is not reopened for a few minutes to prevent packets that were delayed in the Internet causing the connection to be reopened. These will disappear by themselves after a while. This can cause problems on servers that have lots of very short connections (such as a web server) by filling up the OS's connection table. See also EADDRINUSE
LAST_ACK
A FIN has been received, we've sent our own FIN, but we are waiting on the ACK before we can move to the closed state.
FIN_WAIT_1
A FIN has been sent, waiting for a ACK or FIN
FIN_WAIT_2
A FIN has been sent, and an ACK has been received. More data can be received. This connection is half open.
CLOSING
A FIN has been sent, and one received, the FIN hasn't been ACK'd yet.