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


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

    三次握手

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

    情景1:握手一次

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

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

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

    情景2:握手两次

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

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

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

    情景3:握手三次

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

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

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

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

    总结:

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

    四次挥手

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

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

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

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

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

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

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

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

    客户端满血复活。

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

    图片来自这篇文章

  • 相关阅读:
    踏个脚印,今天在博客园安了个家!
    微软WebDeployment Project插件发布网站时老是报出"aspnet_merge.exe”已退出,代码为1的错误
    从xap文件中读取文件
    ASP.NET MVC学习笔记二(URL映射规则)
    Siverlight Contrib的alpha版与正式版有很大区别
    带你尝鲜LiteOS 组件EasyFlash
    带你了解几种二进制代码相似度比较技术
    让数据大白于天下:GCC插件实现代码分析和安全审计
    鸿蒙轻内核源码分析:MMU协处理器
    高性能云网关,打通云内外业务互通的任督二脉
  • 原文地址:https://www.cnblogs.com/wztshine/p/15406397.html
Copyright © 2020-2023  润新知