linux netstat 状态分别代表什么意思

执行netstat -an,找到stat分别对应以下几种英文

LISTEN
SYN-SENT
SYN-RECEIVED
ESTABLISHED

FIN_WAIT_1
FIN_WAIT_2
CLOSE_WAIT
TIME_WAIT
LAST-ACK
CLOSED

这个得用TCP/IP的三次握手,四次挥手说起。

TCP的建立

三次握手

第一次握手
客户端发送SYN包,SYN=X。这时候客户端进入SYN-SEND状态

第二次握手
服务器响应客户端的SYN请求,需要报文进行确认ACK(x+1),同时向客户端发送SYN包和自己的Seq=k,这时候服务器进入SYN-RECEIVED状态,即半连接状态。(DDOS工作原理也是伪造大量不存在的IP包,服务器响应并进入SYN-RECEIVED状态,消耗服务器的连接数,导致正常的请求不能响应。)

第三次握手

客户端收到SYN+ACK包后将k+1,然后发送ACK给服务器和Seq=z,这时候服务收到后双方进入ESTABLISHED状态。

连接建立后双方可以发送数据。

tcp的关闭

关闭连接可以是客户端或者服务器端,

四次挥手

第一次挥手

主动方发送FIN包,并进入FIN_WAIT_1状态

第二次挥手

被关闭方收到FIN包后,发送ACK包并进入CLOSE_WAIT状态,主动关闭方收到ACK后主动方变成FIN_WAIT_2。

第三次挥手

被关闭方发送FIN包,并进入LAST_ACK状态。

第四次挥手

主动关闭方收到被关闭方的FIN包后并发送ACK,这时候主动方变成TIME_WAIT状态,被动方收到主动方的ACK后就关闭了连接,这时候,主动方等待2ML后仍没有收到回复,默认被关闭方已经关闭,这时候主动方关闭连接。

SYN:建立连接
ACK:响应请求
FIN:关闭连接

此条目发表在web服务器, 服务器应用分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注