四次挥手(文科生也看得懂)


前言

四次挥手协议是TCP断开连接的重点,也是可靠性的体现,可以说是每年面试必问题之一。


 

一、四次挥手是什么?

断开连接的过程,想象成男女朋友分手的过程。

还是将男生比作:客户端。女生比作:服务器。

这次女生遇到了渣男,交往没多久竟然提出分手:既然渣男,那指定又是他提出的分手呗。分手也比较简单,没有了追女生时的前期铺垫。

第一次挥手:男生(突然)->我们不合适,分手吧!

第二次挥手:女生->要分手,那你等下吧,等我把东西收拾完还给你吧!

第三次挥手:女生->收拾好了,你拿走吧,从此我们相忘于江湖!

第四次挥手:男生->沉默了一会(2MSL),好吧,那我走,从此不再相见。

1.1旁观者说:女生为什么要连发两次呢?

        因为男生提出的很突然,与连接不同的时,断开连接时可能还有数据在传输,有东西还要发给客户端,(第二次挥手)所以得等女生收拾完东西(发送完数据),(第三次挥手)再和男生正式分手,此后女生不会再给男生什么了,但是女生还对男生抱有最后一丝执念,(第四次挥手)男生回应女生很决绝,女生知道后,决定与男生彻底断绝关系,两人从此老死不相往来。

1.2为什么男生会沉默(2MSL)呢?

        MSL指的是报文在网络中最大生存时间。因为男生发送给女生的最后一条消息女生可能没收到(此时女生就一直等,她也不确定最后的期望是有还是没有,没收到就会问(重回第三次挥手)),男生发过最后消息(第四次挥完手)会等待一来一回(2MSL时间),收不到分手成功,在等待期间收到了又重回挥手三。

1.3为什么不是三次?(三次挥手有两种可能)

情况一:向握手一样(男生->女生、女生->男生、男生->女生)

男生提出分手了,男生等待女生的意愿,女生收到后收拾东西完东西(发送完数据),也没有回应,男生一直等一直等。。。男生又提分手,然后没完没了----

情况二:四次挥手的前三次(男生->女生、女生->男生、女生->男生)

这也就成了我们上面女生还抱有一丝丝期望,一直期望着男生的消息(不能发,一直等待接收消息),只有确认了两人真的不可能,女生才会放手。

这两种情况都不可以的原因是:因为分手的过程,牵扯到婚后财产分配的问题(有数据未传输完成),传输完成后断开,并确认断开。

1.4五次挥手呢?

前三次挥手已近处理好了财产问题,第四次挥手后男生都回应如此决绝了,还第五次干嘛呢,不可能再有交集了就。

因为有在断开连接时,存在数据发送的问题,所以断开连接的过程比连接多一次。

详细介绍:

对于专有名词我们这次就不再赘述了,如果有不会的同学可以看上篇文章:三次握手

这次我们就只对挥手中出现的FIN进行解释。 

状态位: FIN = 1:代表要求释放连接

挥手流程:

  • 第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器端的数据传送,Client进入FIN_WAIT_1状态。
  • 第二次挥手:服务器端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务器端进入CLOSE_WAIT状态。
  • 第三次挥手:服务器端发送一个FIN,用来关闭服务器端到客户端的数据传送,Server进入LAST_ACK状态。
  • 第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态,接着发送一个ACK给服务器端,确认序号为收到序号+1,服务器端进入CLOSED状态,完成四次挥手。

这样讲完相信大家已经理解了什么时三次握手和四次挥手了吧,各位大佬还有不懂的话!!!!

请:


总结

        以上的四次挥手一定程度保证了TCP协议的安全性,也保证了数据传输的完整性。这也能解释TCP为什么是连接面向连接的,可靠,字节流传输协议的原因之一。当然他在传输数据时还有一些其他协议校验,以及接收数据的方式,这个我们后面在分析。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值