老生常谈,TCP 为啥要三次握手?

栏目: IT技术 · 发布时间: 5年前

前言

今天肥朝和大家唠唠老生常谈的一个问题,TCP为什么要三次握手。为什么会突然想起这个话题呢?

按照肥朝以往的风格,网上一搜就一大把的文章,肥朝一般都是不愿意去提及的。其实每个技术人都或多或少萌生过写博客的想法,但是后面发现想写的内容网上似乎都有,最后就断了这个念头。

老生常谈,TCP 为啥要三次握手?

因此,肥朝的定位就两个,一个是成体系的源码解析类文章(类似17年的 Dubbo 源码解析和19年的图解 SpringBoot 源码),一个是 真实 场景源码实战,既然是真实场景,那么雷同的概率就几乎忽略不计了。

既然如此,那为啥要提TCP的三次握手?这些别说网上了,大学课本都大把,而且还权威。

对于学习的一些思考

计算机原理网络编译原理数据结构与算法 等标配计算机知识上,我们经常遇到的问题是,学了面试完就忘,下次面试又要重新“背”题,这样就会导致时间成本过大。因此这段时间肥朝也在思考 如何学习 这个问题。因为这些标配的知识点,往往晦涩难懂,需要一定的功力和工作年限才能做到 理解性记忆 。我在思考,学习知识的过程,能否也像架构演进一样,从0到1,从1到10,从10到100这样呢?具体是什么意思呢?

就像架构演进一样,我们先用最简单的单机应用快速搭建业务抢占市场,而不是一上来就直接分布式、高可用,容器化。

同理我们理解一个知识点,是不是一开始并不一定要这么权威,而是先粗略了解他的大致基本思路,等工作经验、知识体系逐步丰满完善,我们再回过头,再进一步学习,这样效果是否会更好?

回到主题

要说TCP为什么是三次握手,那么其实换个角度而言,就是要证明2次太少,4次又没必要。

所谓的三次握手,他的本质是什么?TCP是可靠传输协议,他的本质其实就是要确定客户端和服务端,他们的 发送接收 能力是没有问题的。也就是客户端要考察服务端的 发送接收 能力,服务端也要考察客户端的 发送接收 能力。

第一次握手

老生常谈,TCP 为啥要三次握手?

肥朝小声逼逼:第一次握手服务端收到了数据包,确定了客户端的发送能力是没有问题的(如图)

第二次握手

老生常谈,TCP 为啥要三次握手?

肥朝小声逼逼:第二次握手客户端收到了数据包,这个时候,就能证明服务端的发送能力是没有问题的。但是服务端的接收能力有没有问题呢?第一次握手的时候,我们提出的问题是“怎么找到肥朝的公众号?”,收到的回答是“公众号搜索名称肥朝就可以了,你试下可以了告诉我”。回答正好是我们刚才问的,那就说明,服务端的接收能力是没有问题的(如图)

那么,回到刚开始的问题,为啥两次握手不行,因为这个时候,客户端已经确定了服务端的 发送接收 能力都没有问题,但是服务端,却没有确定,客户端的 接收 能力,到底有没有问题。

第三次握手

老生常谈,TCP 为啥要三次握手?

肥朝小声逼逼:第三次握手,服务端收到了数据包,发现确实是刚才提问的答案,那么,就确定了客户端的 接收 能力是没有问题的。

再次回到刚才的问题,3次,是完成双方考察 发送接收 能力的最少次数。这也就是为啥不是2次,也不是4次。

写在最后

当然你想看更专业的TCP相关知识,大学和考研教辅资料也是不错的选择。留言和肥朝说一下你的春节学习情况吧。

老生常谈,TCP 为啥要三次握手?

老生常谈,TCP 为啥要三次握手?

技术交流群


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网的基因

互联网的基因

人民邮电出版社 / 2016-9-21 / 48.00元

《互联网的基因》是一本从电信看互联网创新,从互联网看电信创新的力作。作者何宝宏博士长期在电信行业从事互联网领域研究,是极为少有的“既懂IP又懂电信”的专家。该书借以电信和互联网技术创新的大脉络,用轻松、诙谐、幽默的语言,结合经济学、社会学、哲学、人类学甚至心理学理论,揭示互联网、云计算、大数据以及目前最热门的区块链等技术发展背后的规律。作者在该书中明确表示,互联网是新的技术物种,互联网有基因,互联......一起来看看 《互联网的基因》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具