TCP四次挥手
TCP四次挥手
A和B一起合作玩游戏,现在游戏玩完了,该说再见了
1.A说,我们结束游戏,退出吧 FIN=1 ACK=1,这是我给你发的第u条消息(seq=u)
我想收到序号是v的数据。 然后进入终止等待状态1,FIN_WAIT_1
ps TCP规定,终止位FIN=1的报文段,即使不携带数据,也会消耗掉一个序号
2.B收到了来自A的消息,然后给A回信说。
好的,我收到你的要结束的消息了,ACK=1. 这是我发给你的第v条消息(seq=v),(因为上一次他说我想收到的数据序号是v)
我想收到你的第u+1条消息(ack=u+1),因为收到的上一条A的消息是第u条。
然后进入关闭等待状态。
ACK=1,ack=u+1,seq=v
只有ACK=1说明这是一个普通的TCP消息
3.A收到B的回信,知道B同意自己要分手的事情。这是A就进入半关闭状态,除了和分手有关的消息外,其他消息不会再给B发了。进入终止等待2状态FIN_WAIT_2
4.过了一会儿,B把手头别的要发给A的信息都发给A了,然后A也接收了
5.B给A发最后的分手短信,我们分手吧FIN=1,ACK=1(表示上一条消息收到)
seq=w,这是我给你发的第w条信息,ack=u+1,我希望收到第u+1条消息
然后进入最后确认状态。LAST_ACK
6.A对B进行分手前的最后确认。
ACK=1,亲爱的,我收到你的来信了
这是我给你的发的第u+1条短信 seq=u+1
我希望收到你的第w+1条短信。然后进入时间等待状态
7.B收到B的诀别短信后,进入关闭状态。A还要等2msl后再进入关闭状态
为什么还要在等2MSL再关闭呢?
如果TCP四次挥手的第四次报文丢失了,那么第三次B给A发的消息
迟迟没有收到回复。就回一直重发第三次消息,也就是一直处于最后
确认阶段,B无法进入closed状态
如果TCP客户端出现故障,不能给TCP服务器发送消息了,要怎么处理?
每次TCP服务器进程每收到一次TCP客户端进程的数据,就重新设置并启动保活计时器(时长2小时)
如果保活定时器定时周期内没有收到TCP客户进程发来的数据。则当保活计时器到时后,
TCP服务器进程就像TCP客户进程发送一个探测报文段。以后每隔75秒就发送一次,若一连发送10个探测报文段后仍然没有TCP客户进程的响应,
则TCP服务进程就认为TCP客户进程所在主机出现了故障。接着就关闭这个连接
A玩着玩着游戏电脑出问题了。B就等他2小时。2小时到了就每隔75秒问问A在不在,问10次。如果10次以后还是不回消息。就关掉连接。
1.TCP四次挥手,忘了就把这个图画10遍,就记得了,不理解的地方结合图解网络书看,或者看小林coding的网站
想想男女朋友分手


浙公网安备 33010602011771号