【我悟到了】TCP/IP 协议(三次握手四次挥手)

241 阅读5分钟

2014年,我考上了我们家乡的江西服装学院软件工程系,开始了在裁缝堆里敲代码的生活。刚入学那会,就听到学校一直流传着这么一段壮烈而又凄惨的故事。 话说清河校区的环卫大爷向清澜校区的打饭大妈表白,相处一段时间后,两个人分手了,原因是异地恋太累了。(暗示我们学校那是相对的大)

故事的开始

故事的开始是这样的:

话说因为一场大风后,清澜区食堂门口的树倒了,清河区的大爷被外派出差去处理。这个时候打饭大妈来了,就因为在人群之中多看了她一眼,再也没能忘掉她容颜。大爷回到清河区后,茶不思饭不想,晚上翻来覆去睡不着。最后打听到了大妈的地址后,大爷决定写信表白!!

第一次大爷写信\color{#FF9800}{第一次大爷写信}

大爷:写信“我们交往吧”。信是写完寄出去了,但是这路途遥远,大爷心里很没底,因为他也不知道信到底能不能寄出去,寄出去大妈是不是可以收得到。

大妈:收到信了。这个时候,大妈知道了,大爷的信是可以正常发出去的,大妈也是可以正常收到信的\color{#FF0000}{大爷的信是可以正常发出去的,大妈也是可以正常收到信的}

第二次大妈回信\color{#FF9800}{第二次大妈回信}

大妈:写完信“好的”。信寄出去后,大妈心里也没底啊,她知道大爷那不寄信没问题,但是他能收到信吗?要是没大爷没收到,这事也就成不了。

大爷:收到信了,这个时候大爷一颗提着的心总算是放下来了,因为可以确定大爷信是可以收信和发信的,大妈也是可以正常收信和发信的\color{#FF0000}{大爷信是可以收信和发信的,大妈也是可以正常收信和发信的}

第三次大爷写信\color{#FF9800}{第三次大爷写信}

大爷:写信“我们是情侣了”,信寄出去了。

大妈:不久后收到了信,提着的心也放下来了。确定了大爷大妈都是可以正常收信发信的,两个人以后就可以正常交流了\color{#FF0000}{大爷大妈都是可以正常收信发信的,两个人以后就可以正常交流了}

这么一段佳话,就这样开始了。

三封信垫定了故事的开始,三次握手也意味着网络传输的开始

三次握手

三次握手是什么

三次握手就是A端和B端一共发了3次消息,如下:

  • 第一次 :A发消息给B

  • 第二次:B确认收报后,发报给A

  • 第三次:A收报后再发给B

三次握手有什么用

为什么要三次握手呢,原因很简单,就是确认双方的收报发报能力。只有双方都有收发能力才可以进行正常的网络传输

为什么是三次

emmm...因为三次就可以确认了啊

那还可以问为什么不是二次,为什么不是四次?这里借用博主“平头哥的一例子来解释”

三次握手分别确认了什么

结合大爷大妈故事的开始,不难理解为:

  • 第一次:B方确认:自己的收报能力,A方的发报能力

  • 第二次:A方确认:自己收发,B方的收发

  • 第三次:B方确认: 自己收发

故事的结束

只有经历过异地恋的人,才懂异地恋的哭。大爷大妈最后也没能坚持下去。大爷决定要分手了

第一封分手信大爷写\color{#FF9800}{第一封分手信大爷写}

大爷:写信“我们分手吧”。

第二封大妈回信\color{#FF9800}{第二封大妈回信}

大妈:回信“好的,等我收拾下你的东西,收拾好了告诉你”。

第三封大妈写信\color{#FF9800}{第三封大妈写信}

大妈:写信“收拾好了,分手吧”。

第四次大爷写信\color{#FF9800}{第四次大爷写信}

大爷:写信“好的”。

一段惊天地泣鬼神的爱情故事,随着这4封信宣告结束。从此江服就流传着大爷和大妈的爱情故事。

四次挥手

四次挥手是什么

三次握手就是A端和B端一共发了4次消息,如下:

  • 第一次:A发消息给B

  • 第二次:B确认收报后,发报给A

  • 第三次:B发报给A

  • 第四次:A收报后再发给B

四次挥手有什么用

为什么要三次握手呢,就是为了结束掉这次的链接

为什么是四次

为什么建立链接三次就够了,关闭却要四次呢? 对比三次握手区别主要是在第三次,还是由B发给了A。 为什么要多这一次呢?B收到A的关闭请求后,虽然马上回复了A同意关闭,但是B还不能立马关闭,因为B可能正在处理一些信息,需要等处理完了才可以关闭。

举个栗子: 比如大爷之前让大妈织围脖,大妈围脖马上要织完时候,大爷写信要分手①,大妈先回信同意分手②,但是大妈要先把当前围脖织完,围脖织完后,大妈告诉大爷可以分手了③,大爷收到最后分手的消息说好的④

tip:杠精警告。为什么大妈要织完了才能分手,因为大妈是个有原则的人行吧。。。

最后

四次挥手还伴随着各种状态,过于鼓噪我也不知道如果表达,有兴趣的同学可以自行研究一下。

最后再摆一些面试经常问到的概念性东西

  • 七层传输协议:应用层,表示层,会话层传输层,网络层,链路层,物理层
  • TCP/IP 协议 称为网络传输协议。因为IP协议在网络层,TCP协议在传输层
  • 网络层TCP和UDP最为典型。UDP只是在IP协议上加了端口信息,面向无连接,不可靠传输,用于视频,语音通信等(少一帧数据也无妨)。而TCP则是面向链接的,是可靠传输。
  • 面向链接:是一种端对端间通过失败重传机制建立可靠的数据传输方式。