基础知识4-TCP状态

LISTENING:侦听来自远方的TCP端口的连接请求;首先服务端需要打开一个socket进行监听,状态为LISTEN
SYN-SENT:客户端SYN_SENT状态,当请求连接时客户端首先要发送同步信号给要访问的机器,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED
如果发现有很多SYN_SENT出现,那一般有这么几种情况,一是你要访问的网站不存在或线路不好,二是用扫描软件扫描一个网段的机器,也会出出现很多SYN_SENT,另外就是可能中了病毒了
SYN-RECEIVED:服务器端状态SYN_RCVD;当服务器收到客户端发送的同步信号时,将标志位ACK和SYN置1发送给客户端,此时服务器端处于SYN_RCVD状态,如果连接成功了就变为ESTABLISHED,正常情况下SYN_RCVD状态非常短暂
ESTABLISHED:代表一个打开的连接:
服务器出现很多ESTABLISHED状态
1)、若客户端断开的时候发送了FIN包,则服务端将会处于CLOSE_WAIT状态
2)、若客户端断开的时候未发送FIN包,则服务端处还是显示ESTABLISHED状态;客户端再重新连接重新建立新得ESTABLISHED
FIN-WAIT-1:主动关闭端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态,等待远程TCP的连接中断请求,或先前的连接中断请求的确认 */
如果服务器出现shutdown再重启,使用netstat -nat查看,就会看到很多FIN-WAIT-1的状态。就是因为服务器当前有很多客户端连接,直接关闭服务器后,无法接收到客户端的ACK
FIN-WAIT-2:从远程TCP等待连接中断请求;此状态下应用程序还有接受数据的能力,但是已经无法发送数据
CLOSE-WAIT:等待从本地用户发来的连接中断请求;被动关闭端TCP接到FIN后,就发出ACK以回应FIN请求,并进入CLOSE_WAIT,等待从本地用户发来的连接中断请求
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认;在主动关闭端接收到FIN后,TCP就发送ACK包,并进入TIME-WAIT状态
CLOSING:等待远程TCP对连接中断的确认
CLOSED:没有任何连接状态;被动关闭端在接受到ACK包后,就进入了closed的状态。连接结束

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_28748657/article/details/107787934
今日推荐