TCP四次挥手-2

建立tcp连接需要三次握手过程,在tcp连接释放的时候则需要四次挥手的过程,原因多种,A和B都有可能请求主动释放连接
在这里插入图片描述这里假设A发起的释放连接请求:
(1)首先A发送一个TCP首部中FIN位置为1的包给服务器B,假设此序列号是u,即seq=u。
FIN=1意味着是个请求关闭tcp连接的数据包,这个包称为FIN包,当发送FIN包之后,A将从ESTABLISHED状态转变为FIN-WAIT-1状态。
(2)B收到FIN包之后,发现其中FIN=1,知道A端请求关闭,于是发一个回复包给A。
回复时,设置ACK=1,ack=u+1吗,同时还设置序列号seq=v(这里假设发的序列号是v)。发送完成后服务器端进入CLOSE-WAIT状态。到了这个阶段,A(主动请求关闭方)到B(被动方)方向的连接就已经释放了,A不能再发送传输数据给B,但是B到A的方向的连接还没有关闭,它可以继续发送数据给A,A也会接受。因为在这个阶段只有一个方向的连接被释放,所以close-wait状态也称为半关闭状态。
(3)当A接受B的ACK包之后,它将进入FIN-WAIT-2,等待B发起从B到A方向的连接关闭请求。
(4)当B确认已经没有数据发送给A后,B开始主动关闭从B到方向的TCP连接

发布了24 篇原创文章 · 获赞 16 · 访问量 2119

猜你喜欢

转载自blog.csdn.net/weixin_42776624/article/details/102767147