其他分享
首页 > 其他分享> > 三次握手,四次挥手拟人化解释

三次握手,四次挥手拟人化解释

作者:互联网

生动形象记住三次握手,四次挥手

三次握手

前提:有一个人叫客户端,有一个人叫服务器。服务器那里有一些好东西,客户端时不时的上门讨要。

情景1:握手一次

客户端站在门口大喊:服务器,你的语文作业借我看看

正常情况:
服务器直接把作业从门缝扔给你

异常情况:
服务器不在家,客户端嗓子都喊哑了,也没和服务器联系上。

情景2:握手两次

客户端还是在门外喊:服务器,语文作业借我看看

正常情况:
服务器说:好的
然后慢吞吞的把作业翻箱倒柜找出来,给你了

异常情况:
服务器走神了,半天后才反应过来有人跟他要作业,说:好的,你还在门口吗?(客户端消息延迟,过了很久才到达服务器)
没人回答,原来人已经走了

情景3:握手三次

客户端门外又来大喊:服务器,作业借我看看

服务器在屋里回答:好的,你还在门口吗?

客户端说:我还在,你快把作业给我。

然后服务器找到作业,塞到门缝里,给了客户端。完成了连接。

总结:

一次握手肯定不行,你都不知道对方有没有收到你的消息,怎么能和对方联系上?
二次握手也不行,你弄了好半天才回复别人的消息,结果别人走了,也没法建立正常的联系。(发送的消息因为网络延迟等原因,过了很久才给到客户端。或者客户端发送的消息因为延迟等原因,过来很久才到你这里,这个消息已经过期了,你再回答也没什么意义)
三次握手可以,确保了双方都正常,能接收数据。

四次挥手

前提:客户端过节回家了,他妈妈服务器给他准备了很多好吃的,现在要准备回去上班了,客户端跟他妈妈告别

情景1:一次挥手
客户端说:我走了!,然后扭头就走

服务器:目无尊长,长辈同意了吗就走,我准备的东西还没给你呢?
客户端卒

情景2:二次挥手
客户端:我走了?(等待服务器同意回话)
服务器:我知道了,等会。

客户端听到回答,没等就走了。服务器:说让你走了吗,我东西还没准备好呢?
客户端卒

情景3:
客户端:我走了?(等待同意)
服务器:我知道了,等会儿
服务器:一股脑儿把准备的好东西都塞到你怀里后,不停的说:好了,可以走了(不听到回答,会一直说这句话)

客户端以为完事了,走了。服务器还在不停等待回复:可以走了,可以走了,...
客户端因为把长辈晾在一边,卒

情景4:
客户端:我走了?(等待同意)
服务器:我知道了,等我准备会
服务器:一股脑儿把准备的好东西都塞给你,说好了
客户端:那我真走了?(试探性的等待一会儿,确保长辈听到这句话后闭口不言)。长辈没有回答,便是默认了,便退下了。

客户端满血复活。

总结:
一次挥手肯定不行,因为服务器可能还有正在发送的数据没有完毕。
二次挥手,服务器只是说我知道了你要走,但是我还没准备好让你走,因为还有数据没有发送完毕。
三次挥手:此时已经把数据发送给客户端了,才说你可以走了。
四次挥手:客户端表示自己知道了自己真的可以走了,等待消息能传达到服务器后,就走了。(之所以要 TIME-WAIT 2MSL时间,是因为要确保消息有效。如果服务器听到第四次的消息,就会关闭,否则就会不停的重复第三次挥手说:好了,可以走了。所以客户端要等待一会儿,发现服务器没有说:可以走了,就说明服务器收到了我们第四次的消息,也就真的可以关闭了)

图片来自这篇文章

标签:拟人化,挥手,握手,作业,四次,消息,服务器,客户端
来源: https://www.cnblogs.com/wztshine/p/15406397.html