TCP三次握手四次挥手(幽默版)

news2024/11/28 6:28:24

三次握手:


假设你是一只鸟,你要与另一只鸟进行交流。(你是客户端)

1.首先你会问候:“你好,我是一只鸟,你可以听到我说话吗?”(一次会话)

2.另一只鸟回答:“是的,我可以听到你说话,我也是一只鸟。”(两次会话)

3.你再说:“非常好,我想我们可以开始交流了。”(三次会话)



正式的回答:

计算机网络中三次握手是利用TCP协议确保通信双方建立可靠连接的过程。它的具体步骤如下:

第一次握手(SYN发送):客户端向服务端发送一个SYN(Synchronize Sequence Numbers,同步序列号)标志位,要求建立连接并告知服务端自己的初始序列号(ISN)。

第二次握手(SYN-ACK回应):服务端接收到客户端的SYN标志位后,返回一个SYN-ACK(Synchronize-Acknowledgment,同步确认)标志位,表示同意建立连接并告知自己的初始序列号。

第三次握手(ACK发送):客户端接收到服务端的SYN-ACK标志位后,向服务端发送一个ACK(Acknowledgement,确认)标志位,表示已经接收到服务端的SYN-ACK,连接成功建立。

这样,在第三次握手的过程中,客户端和服务端之间就可以互相确认对方的状态,建立起可靠的连接,从而进行数据传输和通信。如果任何一方在这个三次握手过程中出错,连接就会失败,双方需要重新发起握手连接。


四次挥手:

类比男女分手,男生说要分手(第一次挥手),女生同意并表示自己也要分手(第二次挥手),男生收到女生的消息后表示自己也接受分手(第三次挥手),女生收到消息后双方分手结束(第四次挥手)。



1.  初始状态:Client和Server建立连接,Client发送FIN报文,表示要关闭连接。
2.  第一次挥手:Server收到FIN报文后,发送ACK报文,表示已经收到Client的请求,并告诉Client自己也要关闭连接。
3.  第二次挥手:Server发送FIN报文,表示自己也准备好关闭连接了。
4.  第三次挥手:Client收到Server的FIN报文后,发送ACK报文,表示已经收到Server的请求,并告诉Server自己也准备好关闭连接。
5.  状态结束:Server收到ACK报文后,双方断开连接。


为什么 TIME_WAIT 等待的时间是 2MSL?

主要原因是为了保证客户端发送那个的第一个ACK报文能到到服务器,因为这个ACK报文可能丢失,并且2MSL是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃,这样新的连接中不会出现旧连接的请求报文。

屏幕前的你学会了吗?

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/572947.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文带你了解MySQL之Explain执行计划

前言: 一条查询语句在经过MySQL查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式,比如多表连接的顺序是什么,对于每个表采用什么访问方法来具体执行查询等等。MySQL…

MySQL---show profile分析SQL、trace分析优化器执行计划

1. show profile分析SQL Mysql从5.0.37版本开始增加了对 show profiles 和 show profile 语句的支持。show profiles 能够 在做SQL优化时帮助我们了解时间都耗费到哪里去了。 通过 have_profiling 参数,能够看到当前MySQL是否支持profile: select ha…

3年软件测试经验月薪7k,只会“点点点”,我该如何破局?

经常听到一些行业内的朋友说 “做测试,有手就行” 但事实真的是如此嘛? 随着测试行业的发展,越来越多的测试岗位对自动化测试,性能测试都有所要求,这对于很多只会功能测试的职场老人们来说,有了一丝丝的危…

Druid连接池技术实践

什么是Druid连接池? Druid连接池是阿里巴巴开源的数据库连接池项目。 Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。 哦,首先Dru…

2023ACP世界大赛教育者论坛:让职业教育直面AI机遇与挑战

“AI技术的普及对创意行业和教育带来的影响和变革-2023 Adobe Certified Professional教育者论坛”在苏州西交利物浦大学成功举办。 本次论坛,由Adobe Certified Professional 世界大赛中国赛区组委会主办,联动了来自院校、海内外杰出的创意公司及国际知…

搭建飞书早报机器人

飞书是字节跳动推出的一款企业级通讯及协作平台,于2016年正式上线。它是一款基于云计算技术的软件工具,可以帮助企业实现快速高效的沟通和协作,提升工作效率,降低沟通成本。下面将详细介绍飞书的功能、特点以及使用体验。 功能介…

Android动画深入分析(View动画)

Android动画深入分析(View动画) Android的动画我其实在View的滑动里面写过,主要还是分为2点。 一个就是View动画,还有一个是属性动画 先讲述View动画 View动画 View动画主要分为4种,平移动画,缩放动画,旋转动画,透明度动画。 还有一个叫帧动画,但是表现方式和…

python+vue旅游攻略分享推荐网站p0667

基于Python语言设计并实现了旅游分享网站。该系统基于B/S即所谓浏览器/服务器模式,应用Django框架,选择MySQL作为后台数据库。系统主要包括用户、景点信息、攻略分类、旅游攻略、门票购买、留言反馈、论坛管理、系统管理等功能模块。 软件开发前的需求分…

某渣渣企业平台相关加密参数

网址 aHR0cHM6Ly93d3cucWNjLmNvbS93ZWIvZWxpYi90ZWNsaXN0P3RlYz1UX1RTTUVT抓包 GET /api/elib/getTecList?countyCode110101&flag&industry&isSortAsc&pageIndex2&pageSize20&provinceBJ&registCapiBegin&registCapiEnd&searchKey&…

修改git已经push到远端的最近一次提交的commit

需求: 最新一次提交的message写错了且已经push到远程仓库,但是又不想重新创建一个commit记录。 注意: 如果是多人协同开发,使用强推前一定确保当前版本最新,期间无人提交代码。 使用git Bash进入命令行窗口 git co…

基于langChain 的privateGPT 文档问答 研究

参考:gihtub代码 https://github.com/imartinez/privateGPT 官网 privateGPT可以在断网的情况下,借助GPT和文档进行交互,有利于保护数据隐私。 privateGPT可以有四个用处: 1.增强知识管理:私有LLMs自动化&#xff0c…

《Spring Guides系列学习》guide26 - guide30

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

numpy库报错has no attribute ‘_no_nep50_warning‘的解决

本文介绍在Python中,numpy库出现报错module numpy has no attribute _no_nep50_warning的解决方法。 一次,在运行一个Python代码时,发现出现报错module numpy has no attribute _no_nep50_warning,如下图所示。 其中,这…

华为nova11系列:一个月的深度体验感受,告诉你值不值得入手

作为一个追求时尚风格的年轻人, nova系列手机一直是我的关注重点。nova 11 Pro发布之后,独特少见的11号色一下子就戳中了我,于是第一时间我给我自己和我老婆分别下单了一台nova 11和nova 11 Pro。 作为主力机深度使用一个月后,可以…

如何做好建筑行业的信息化建设?

如何做好建筑行业的信息化建设? 首先,我们来了解一下,什么是信息化转型? 信息化转型是指企业或组织通过应用信息技术,以提高业务效率和创新能力,实现组织战略目标的过程。 随着数字技术的发展&#xff0…

把字节大佬花3个月时间整理的软件测试面经偷偷给室友,差点被他开除了···

写在前面 “这份软件测试面经看起来不错,等会一起发给他吧”,我看着面前的面试笔记自言自语道。 就在这时,背后传来了leder“阴森森”的声音:“不错吧,我可是足足花了三个月整理的” 始末 刚入职字节的我收到了大学室…

Junit常见用法

一.Junit的含义 Junit是一种Java编程语言的单元测试框架。它提供了一些用于编写和运行测试的注释和断言方法,并且可以方便地执行测试并生成测试报告。Junit是开源的,也是广泛使用的单元测试框架之一。 二.Junit常用注解 1.Test 表示执行此测试用例 T…

代码随想录训练营Day51| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组

目录 学习目标 学习内容 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组 学习目标 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组 学习内容 300.最长递增子序列 300. 最长递增子序列 - 力扣(LeetCode)https…

便携式水质检测仪应用范围

随着环境污染的加剧,人们对水质检测的关注越来越多。传统的水质检测仪器往往只能测定单一参数,难以全面准确地反映水质情况。而多参数水质检测仪可以实现同时测定多个参数,为水质检测提供了更加全面准确的数据。它采用多种先进的技术&#xf…

STM32【H7】理论——MPU、Cache

文章目录 1. MPU - 内存保护单元 1. MPU - 内存保护单元 MPU:(Memory Protection Unit,内存保护单元),早在 STM32F1 和 F4 芯片上面也是有这个功能的,但是基本用不上。但是到了 H7 就得用上了,因为要设置 Cache; MPU的作用: 将 memory map&a…