netstat 中state詳解

TCP三次握手的過程以下:ide

        主動鏈接端發送一個SYN包給被動鏈接端;spa

        被動鏈接端收到SYN包後,發送一個帶ACK和SYN標誌的包給主動鏈接端;it

        主動鏈接端發送一個帶ACK標誌的包給被動鏈接端,握手動做完成。class


TCP四次揮手的過程以下:效率

        主動關閉端發送一個FIN包給被動關閉端;請求

        被動關閉端收到FIN包後,發送一個ACK包給主動關閉端;通信

        被動關閉端發送了ACK包後,再發送一個FIN包給主動關閉端;di

        主動關閉端收到FIN包後,發送一個ACK包,當被動關閉端收到ACK包後,四次揮手動做完成,鏈接斷開。時間


netstat中的各類狀態:view

        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。

相關文章
相關標籤/搜索