netstat中的各种状态

CLOSED 初始(无连接)状态。

LISTEN 侦听状态,等待远程机器的连接请求。

SYN_SEND 在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。

SYN_RECV 在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。

ESTABLISHED 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。

FIN_WAIT_1 在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。

FIN_WAIT_2 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。

TIME_WAIT 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。

CLOSING 在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态。

CLOSE_WAIT 在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。

LAST_ACK 在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。

主动连接端可能的状态有: CLOSED SYN_SEND ESTABLISHED

主动关闭端可能的状态有: FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT

被动连接端可能的状态有: LISTEN SYN_RECV ESTABLISHED

被动关闭端可能的状态有: CLOSE_WAIT LAST_ACK CLOSED

在Linux下,如果连接数比较大,可以使用效率更高的ss来替代netstat。


分享到:


相關文章: