tcp/ip 11种状态


三次握手的创建状态服务器

wKioL1mpJw_zkF_zAAE4EdYsXtg326.png

一、一开始创建以前服务器和客户端的状态都为closed网络

二、服务器建立socket后开始监听,变为listen状态socket

三、客户端请求创建链接,向服务器发送syn报文,客户端的状态变为SYN_SENT.tcp

四、服务器收到客户端的报文后向客户端发送ack和SYN报文,此时,服务器的状态变为SYN_RCVD.ide

五、而后,客户端收到ACK、SYN,就向报务端发送ACK,客户端状态变为ESTABLISHED。blog


四次挥手关闭状态ip

wKiom1mpLH2T7IsdAAFNunfTTMQ179.png

由与tcp链接是全双工的,断开链接会比创建链接麻烦一点点。get

一、客户端先向服务端发送FIN报文,请求断开链接,其状态变为FIN_WAIT1。it

二、服务端收到FIN后向客户端发出ACK,服务器状态变为CLOSE_WAIT。io

三、客户端收到ACK后就进入了FIN_WAIT2状态。此时链接已经断开了一半了。若是服务器还有数据要发送给客户端,就会继续发送。

四、直到发完了,就发送FIN报文,此时服务器进入了LAST_ACK状态。

五、客户端收到服务器的FIN后,立刻发送ACK给服务器,此时客户端进入TIME_WAIT状态。

六、再过了2MSL找的时间后进入CLOSED状态。服务器收到客户端的ACK就进入CLOSED状态。


CLOSING状态表示:

客户端发生了FIN,但没有收到服务器的ACK,却收到了服务器的FIN。

这种状况发生在服务器发送的ACK丢包的时候,由于网络传输有时会有意外。


tcp/ip 11种状态总结

wKiom1mtJcOwh5pJAALOQDnDgZk980.png

wKioL1mtJaei4GI0AAGW6AQmvH8321.png




LISTEN

侦听来自远方的TCP端口的链接请求

SYN-SENT

在发送链接请求后等待匹配的链接请求 

SYN-RECEIVED

在收到和发送一个链接请求后等待对方对链接请求的确认

ESTABLISHED

表明一个打开的链接



FIN-WAIT-1

等待远程TCP链接中断请求,或先前的链接中断请求的确认

FIN-WAIT-2

从远程TCP等待链接中断请求

CLOSE-WAIT

等待从本地用户发来的链接中断请求

CLOSING

等待远程TCP对链接中断的确认

LAST-ACK

等待原来的发向远程TCP的链接中断请求的确认

TIME-WAIT

等待足够的时间以确保远程TCP接收到链接中断请求的确认 

CLOSED

没有任何链接状态 

相关文章
相关标签/搜索