公告:欢迎来到极梦小屋!本站资源全部可以免费下载,积分都是可以免费获取的!

JAVA面试-计算机网络-TCP三次握手

通俗示例

小红是人事部门的员工,现在正在招收IT人员,小明看到招聘信息和待遇,感觉很适合自己,所以准备和小红发消息了解具体情况。而简历在本故事中代表最终要发送的数据。

首先,小明发消息给小红,向她表示想要应聘公司的IT部门,想要投简历进一步交流了解。这是第一次信息交流,这个时候简历还没有投递,只是小明让小红知道他想要投简历应聘这个职位。这也是第一次握手的作用,用于客户端询问服务端是否可以进行交互。

而小红看到了小明的信息后,就回消息和他说,可以啊,我们人数还没招满,我欢迎你投简历。这是第二次信息交流,是小红表示她有空,也有兴趣接收小明的简历。这也是第二次握手的作用,用于服务端向客户端表示可以接收信息。

小明看到消息后,又回了小红信息说,谢谢你能给我机会去应聘这个职位,我现在简历准备好了,也做好发送简历的准备了,你现在开放一下邮箱,两分钟后就能接收到我的简历了。这是第三次信息交互,为了小红知道小明已经做好发送简历准备,并让小红开放接收简历的渠道,让简历能顺利接收。这也是第三次握手的作用,让服务端知道客户端已经做好发送信息准备,并让服务端开放信息接收,从而完成三次握手。

小红看到消息后,打开了邮箱接收功能,过了一会,就接收到了小明的简历了。

以上就是三次握手的通俗表达,第一次小明询问是否还招人,第二次是小红回复还招人,第三次是小明为了确保小红能收到信息,进行最终的确认。这就是三次握手的通俗表达。

有的人可能觉得最后还要再提醒,就很墨迹,觉得可以改成下面这个步骤:

1、小明跟小红发消息,我想要应聘贵公司,如果还招人的话,我直接投简历给您。这是第一次。

2、小红回消息说,我们还招人,你投吧。然后就打开邮箱等待接收简历。这是第二次。

3、小明看到信息后,直接发送简历,然后小红就可以接受到简历了。

按照上面的描述,直接就省略了小明第三次最终确认的步骤,减少了信息交互的步骤,提升了信息交互效率,何乐而不为呢?按照效率来说,的确是这样的,毕竟少了一次信息最终确认,但是这样可能导致资源浪费的问题

我再讲个例子,来描述只交换信息两次的弊端。

1、小明跟小红发消息,我想要应聘贵公司,如果还招人的话,我直接投简历给您。这是第一次

2、小红回消息说,我们还招人,你投吧。然后就打开邮箱等待接收简历。这是第二次

小明看到消息后,刚准备发消息,但好巧不巧,家里停电了,没网了,小明只能在这苦苦等待。而小红呢,完全不知道小明那边的问题,也是在那里傻等,等着小明发简历。从而导致小红没法去处理其它问题,而小红等了半小时后,直接关了小明的联系。

可以看到,如果没有第三次的最终确认,提前确认发送环境等,可能就导致小红白等半小时。

而又有人可能会说了,你这不扯淡嘛,难道第三次确认之后,就能保证小明能百分百成功发送简历到小红那里了吗?就算有第三次的环境确认,最后发送的时候还是可能因为停电没网而导致发送不成功嘛。

对,的确,即使最终确认后,最终发送也会有断网的风险。甚至就算提升到10000000次握手,都无法确保信息能够准确发送和接收,为什么?因为发送过去的确认信息,只能保证发送当时的那一刻,发送方环境是好的,就好像12点整小明发送信息说我的电脑好的一匹,随时可以发送信息,但是小红接收到信息可能是12点10分,这十分钟时间里面的电脑状态是随时会变化的,可能十二点零一秒,电脑就用不了了,所以,无论多少次握手,都无法确保信息能准确发送。

那三次握手的意义是什么?

[b]因为三次握手是确保双方互相知道对方状态正常的最低成本方案。

这句话怎么理解?

我们再说如果只要两次握手,

第一次发送信息,是小明发送信息给小红,只是确认小红是否还招人,并没有向小红表述他的环境能百分百发送成功简历。所以小红不知道小明能否百分百发送成功简历

第二次发送信息,是小红发送信息给小明,让小明知道她能接收信息。这个时候小明知道小红做好接收简历准备,但是小红不知道小明做好简历发送准备

如果是三次握手,

第一次发送信息,是小明发送信息给小红,只是确认小红是否还招人,并没有向小红表述他的环境能百分百发送成功简历。所以小红不知道小明能否百分百发送成功简历

第二次发送信息,是小红发送信息给小明,让小明知道她能接收信息。这个时候小明知道小红做好接收简历准备,但是小红不知道小明做好简历发送准备

第三次发送信息,是小明发送信息给小红,让小红知道小明已经做好发送简历的准备。这个时候小明知道小红做好接收简历准备,小红也知道小明做好简历发送准备

这就是三次握手和两次握手的本质区别。[b]一个是双方知道,一个只是单方面知道。如此三次握手比两次握手更加安全。

三次握手处理问题的本质

三次握手最终要解决的问题,就是网络信息交互的不稳定问题。提升信息交互成功率,降低由于无法接受到信息而导致的资源浪费问题。

以上就是三次握手的理解。

人已赞赏
经验杂谈

各位朋友大家好 我是代码学徒

2021-2-5 8:29:36

经验杂谈

规划及认识

2021-4-1 12:50:31

4 条回复 A文章作者 M管理员
  1. tank

    666

  2. 隐士

    谢谢分享!

  3. 如果我是周星驰

    哎,说到最后也没看到 小红有没有要小明!莫名的忧伤

  4. grimm

    666

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索