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。


分享到:


相關文章: