热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

TCP连接的“三次握手”与“四次挥手”另类解释,通俗易懂

前言网络协议TCP恐怕大家再熟悉不过了,我举手,我知道,三次握手,四次挥手,面试问这个简直不要太多ÿ

前言

网络协议TCP恐怕大家再熟悉不过了,我举手,我知道,三次握手,四次挥手,面试问这个简直不要太多,可是很多人总是说不清楚,或者明明知道,但是不知道怎么形象的来表达出来,心里那个着急呀。。。

正文

这能不着急么,我就想看看到底是怎样的另类解析,如果说的不好,提着手上的40米长刀就是一顿砍。。。兄爹,憋冲动。。。接下来娓娓道来,先上两张正常的图吧(图片来自网上,如若侵权,请联系删除)

三次握手


四次挥手

 好,本篇到此结束。。。逗你玩呢

怎么可能,说好的另类解释,怎能辜负,上面的两张图其实已经能够说明问题了,但是看到这些花里胡哨的,总是让人丈二和尚摸不着头脑,接下来就用我的场景跟大家说说,赶紧搬起小板凳,看好戏。。。那是一个月黑风高的夜晚。。。哎。。。画风不对呀。。。

好好,正经说,前面正好说到了这个是面试常问题的题目,那么以面试的场景来说下三次握手吧,TCP连接其实是一个虚拟连接,那符合场景的面试应该电话面试。。。电话通了。。。

面试官:你好,我是xxx公司的面试官,请问现在方便接受面试么?(第一次握手)

小驰:可以的,现在很方便(第二次握手)

面试官:ok,接下来我们开始咯(第三次握手)

面试官:火箭的建造原理知道么?

小驰:what?面试造火箭???

看了上面的一段对话是不是似曾相识,好了不扯淡了,上面的面试官就好比是客户端,小驰好比是服务端(怎么样,小驰的逼格一下子就上去了哈),面试先问小驰可方便面试,是输出,等到小驰回复方便,就是输入,其实第二次握手之后对于面试官来说输入和输出都没有问题了,但是对于小驰来说,他回复了方便,是输出,但是他并不知道面试官可听到这个信息了,等到面试官回答ok之后(第三次握手),小驰才能确定自己的输入和输出都没有问题,接下来才能正常的面试(数据传输)。看了这个解释,我们不仅会想其实三次挥手的三是最小值而已,也可以四次、五次、六次。。。只不过浪费资源罢了。。。没必要。。。

终于小驰的一通火箭造完了,如愿以偿的进入了xxx公司,一个月之后,小驰不干了,说什么面试造火箭,进来拧螺丝,于是提出了辞职,下面是hr小姐姐找他的谈话

hr小姐姐:小驰,不想干了,走之前可要把工作交接好,才能放你走(第一次挥手)

小驰:好的,我明白(第二次挥手)

小驰(三天后):我的工作都交接好了(第三次挥手)

hr小姐姐:ok,那你可以滚了。。。(第四次挥手)

小驰:。。。

看了上面的一段对话忽然想到真是人走茶凉呀,还是说说四次挥手吧,其实四次挥手的道理都是一样的,但是多了一次,为啥呢,没有办法,来的时候可以说来就来,因为是个新人,走的时候手里的任务总得缓冲一下吧,所以小驰先回复的hr小姐姐好的,紧接着交接完手头的工作,又回复hr小姐姐工作都交接好了,这个时候hr小姐姐才同意小驰滚蛋的,没有收到小驰第二次回复的信息,是绝对不会同意他滚蛋的,不然留下一手的坑谁来填。按照上面的思路我们可以知道挥手也可以是五次、六次、七次。。。只不过四次是最节省资源的。

后记

不知道,这样说下来大家对TCP的三次握手和四次挥手是否已经了解了,如果想了解更多的知识,请关注下面的公众号,我是驰说,人狠话也多。


推荐阅读
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文介绍了一种有效的方法来扩展Matlab的虚拟内存,以解决在处理大数据或生成大图像时遇到的“out of memory”错误问题。通过具体步骤和实际测试,确保用户能够在自己的电脑上顺利运行大型计算任务。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 使用Python实现余弦相似度计算
    余弦相似度广泛应用于文本分类、图像识别等领域,用于衡量两个向量之间的相似程度。其值域在-1到1之间,数值越接近1表示两向量越相似,完全相同为1;相反方向时为-1;正交或不相关时为0。 ... [详细]
  • 本文介绍了SVD(奇异值分解)和QR分解的基本原理及其在Python中的实现方法。通过具体代码示例,展示了如何使用这两种矩阵分解技术处理图像数据和计算特征值。 ... [详细]
  • 网络出版服务许可证申请指南
    本文详细介绍了网络出版服务许可证的办理条件、适用企业范围及具体流程,帮助相关企业和个人了解并顺利完成许可证的申请。文章由专业机构提供,旨在为读者解答在互联网出版领域遇到的技术和合规问题。 ... [详细]
  • 智能手机的快速耗电问题困扰着许多人。通过一些简单的设置和调整,你可以显著提升手机的电池续航能力,甚至实现两天一充的目标。 ... [详细]
  • 如何在拍大师中创建复古黑白电视效果
    本文将详细介绍如何使用拍大师软件为视频添加经典的黑白电视效果。通过简单的步骤,您可以轻松实现这一独特的视觉风格,提升视频的艺术感。 ... [详细]
  • 本文详细介绍了Grand Central Dispatch (GCD) 的核心概念和使用方法,探讨了任务队列、同步与异步执行以及常见的死锁问题。通过具体示例和代码片段,帮助开发者更好地理解和应用GCD进行多线程开发。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • Python Django大学生心理健康管理系统开发(含源码、文档)
    本项目包含完整的源代码、设计文档、数据库结构以及详细的安装指南,旨在为计算机专业的学生提供一个全面的心理健康管理系统解决方案。 ... [详细]
  • 本文将详细介绍多个流行的 Android 视频处理开源框架,包括 ijkplayer、FFmpeg、Vitamio、ExoPlayer 等。每个框架都有其独特的优势和应用场景,帮助开发者更高效地进行视频处理和播放。 ... [详细]
  • 优化网页加载速度:JavaScript 实现图片延迟加载
    本文介绍如何使用 JavaScript 实现图片延迟加载,从而显著提升网页的加载速度和用户体验。 ... [详细]
author-avatar
轰炸籹厕所744
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有