netstat 中state详解

网友投稿 248 2022-10-27


netstat 中state详解

TCP三次握手的过程如下:

主动连接端发送一个SYN包给被动连接端;

被动连接端收到SYN包后,发送一个带ACK和SYN标志的包给主动连接端;

主动连接端发送一个带ACK标志的包给被动连接端,握手动作完成。

TCP四次挥手的过程如下:

主动关闭端发送一个FIN包给被动关闭端;

被动关闭端收到FIN包后,发送一个ACK包给主动关闭端;

被动关闭端发送了ACK包后,再发送一个FIN包给主动关闭端;

主动关闭端收到FIN包后,发送一个ACK包,当被动关闭端收到ACK包后,四次挥手动作完成,连接断开。

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。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java通俗易懂系列设计模式之适配器模式
下一篇:基于mod_ssl模块实现httpd对ssl的支持
相关文章

 发表评论

暂时没有评论,来抢沙发吧~