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。

相关文章
相关标签/搜索