求求你不要在问我三次握手了(一)

0,写在前面的话 

作为IT的从业人员,很多人都经历过大大小小的面试,也、听过很多人(包括我自己)总是吐槽的一句话:面试造飞机,入职拧螺丝。很多面试的内容可能在实际的工作中永远也遇不到(但是为啥这些遇不到的东西总要打破砂锅问到底呢,哈哈哈。手动狗头)。三次握手和四次挥手就是我们面试过程中的常客。俗话说,基础不牢,地动山摇。那么我们就来详细的了解下三次握手

1,网络的前世今生

提起三次握手,必须要提起TCP/IP协议。而说起TCP/IP协议就又要说起网络了。

先来看一段历史吧

网络:是一组互相连接的通信设备,如计算机和打印机。互联网是指两个或者更多的可以彼此相连的网络。

20世纪60年代中叶,美国国防部的远景研究规划局(ARPA)希望找到一种连接计算机的方法,以使得可以共享研究成果。

1967年在一次计算机协会(ACM)的会议上,ARPA提出了他们连接一些计算机的小网络的ARPANET的概念,实现了四个节点的互联。

1972年, ARPANET的两个核心成员Vint Cerf(文顿·瑟夫)和Robert Kahn(罗伯特·卡恩)共同研究一项项目:网络互联项目。他们希望可以将不同的网络连接起来,使得一个网络上的主机可以和另一个网络上的主机进行通信。但是有很多的困难去克服:不同的分组长度,不同的接口,不同的传输速率以及不同要求的可靠性等等。他们发明了一个概念:就是使用成为网关的设备当做中间层,以便吧一个分组从一个网路发送发送到另一个网络。

1973年,Vint Cerf(文顿·瑟夫)和Robert Kahn(罗伯特·卡恩)发布了一篇里程碑的论文,阐述了实现分组的端到端的协议。这篇包括传输控制协议(TCP)的论文包含的概念有:封装,数据报以及网关的功能。

1977年,由三个不同(ARPANET,分组无线电网,分组卫星网)的网络组成的互联网成功的问世了。不就之后,当局决定把TCP划分成两个协议:传输控制协议(Transmission Control Protocol TCP)和 网际协议(Internet Protocol  IP)。IP负责数据报的路由选择,而TCP负责高一层的一些功能,如分段,重装,差错检测等。这个组个称为TCP/IP协议。

以上就是一个TCP/IP的发展史,Vint Cerf(文顿·瑟夫)和Robert Kahn(罗伯特·卡恩)也因为其卓越的成就被誉为“互联网之父”。

进过数十年的发展,互联网技术日新月异,但是TCP/IP一直都是最重要的基础之一。

现在我们都知道我们现在的网络是分层的,著名的有OSI模型和TCP/IP协议族。

OSI模型的分层,功能以及每层支持的协议如下,这是一个理想的分层,并未实现。


我们现在用的最多的是TCP/IP协议族,它的分层结构和对比如下。


2,为什么是三次握手?

两台主机想要通过互联网进行通信,首先需要建立链接,即我们说的三次握手。那么为什么是三次握手呢?而不是两次或者是四次呢?

三次握手的主要目的是确认发送方和接收方的收发功能都是正常的。就好比你想和另外一个人对话一样,如果你们两个人想要正常的交流,就必须保证你们两人的听(收)/说(发)功能是正常的。任何一个人只能听不能发或者是只能发不能听都不能完成正常的交流。

看一个简单的图:


第一次:发送方主动发起:喂,你听的到吗?接收方接收到之后就会明白:发送方的发送功能和自己的接受功能是正常的。

第二次:接收方回复:听的到,你听的到我吗? 发送方接收到之后就会明白:接收方的接收功能和发送功能是正常的,自己的发送功能和接收功能也是正常的。但是这时候接收方并不知道自己的发送功能是不是正常的。所有需要第三次握手。

第三次:发送发回复:我也听的到,我们开始对话吧。这个时候接收方就知道了自己的发送功能也是正常的。就可以愉快的正常的对话了。

我们从另外一个角度来看下三次握手

在Google Groups的TopLanguage中看到一帖讨论TCP“三次握手”觉得很有意思。贴主提出“TCP建立连接为什么是三次握手?”的问题,在众多回复中,有一条回复写道:“这个问题的本质是, 信道不可靠, 但是通信双发需要就某个问题达成一致. 而要解决这个问题, 无论你在消息中包含什么信息, 三次通信是理论上的最小值. 所以三次握手不是TCP本身的要求, 而是为了满足"在不可靠信道上可靠地传输信息"这一需求所导致的. 请注意这里的本质需求,信道不可靠, 数据传输要可靠. 三次达到了, 那后面你想接着握手也好, 发数据也好, 跟进行可靠信息传输的需求就没关系了. 因此,如果信道是可靠的, 即无论什么时候发出消息, 对方一定能收到, 或者你不关心是否要保证对方收到你的消息, 那就能像UDP那样直接发送消息就可以了.”

继续看一下三次握手的另一个观点:

在谢希仁著《计算机网络》第四版中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。

“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”

这就很明白了,防止了服务器端的一直等待而浪费资源。


我们大致描述了一下TCP三次握手的过程,具体的实现待下回分解。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容

  • 【酵妈妈】酵素桶泡菜制作流程: ①主料:胡萝卜、卷心菜、青瓜、白萝卜、莴苣、大白菜⋯⋯任选。 ②辅料:粗盐、白砂糖...
    徐艳春阅读 228评论 0 0
  • 家庭教育、家庭氛围,影响和决定着孩子一生的性格。家对于我们每个人来说,都很重要。 那么一个家庭是穷是富,是好是坏,...
    笑容女王_0d69阅读 254评论 1 0
  • 书读的少的人有一个显著特征,就是当他读任何书时,都容易把书中的观点奉为真理,读多了才会形成自己的思考 不过总是要从...
    复苏森林阅读 155评论 0 1