个人记录 TCP 四次挥手

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NianandShao/article/details/81626708
TCP报文

相关知识

Ack 确认号

标志位

FIN(finish)释放一次连接

ACK 确认序号有效

图片来源于网络

第一次挥手:客户端发送一个FIN = 1,seq = (U)10000的释放连接报文给服务端,此时客户端进入TIME_WAIT1状态

第二次挥手:服务端收到释放连接报文,确认FIN = 1知道客户端要释放连接之后,发送ACK = 1,seq = (V)20000,Ack = (客户端U)10000 + 1(等于10001)的确认报文给客户端,此时本次连接进入半连接状态,客户端不再向服务端发送数据,而服务端继续发送数据,此时服务端进入CLOSE_WAIT状态,而客户端进入TIME_WAIT2状态

第三次挥手:当服务端也没有数据发送给客户端,服务端关闭与客户端的连接,发送FIN = 1,ACK = 1,seq = (W)30000,Ack = (客户端U)10000+1(等于10001)的释放报文给客户端,此时服务端进入LAST_ACK状态

第四次挥手:客户端接收到释放报文后,必须发回ACK报文确认,ACK=1,seq = (客户端 U)10000+1,Ack = (W)30000+1(等于30001),客户端进入TIME_WAIT状态,再经过2MSL(报文最长寿命),本次TCP连接真正结束,通信双方完成告别

猜你喜欢

转载自blog.csdn.net/NianandShao/article/details/81626708