【计算机网络】三次握手 四次挥手

news2025/1/13 11:55:18

目录

1.三次握手

2.四次挥手

3.总结


三次握手和四次挥手是有连接特有的。三次握手,四次挥手指的是TCP有连接特点的中的步骤。建立连接(三次握手),断开连接(四次挥手)。建立连接操作一般都是客户端主动发起,断开连接操作客户端和服务器都可以主动发起。

1.三次握手

举个例子:如下图:A先向B发送 对于客户端,服务器而言,一般是客户端发起。

  1. 第一次握手A向B发送你好,B收到后 B就会知道A的发送和自己的接收功能是没问题的,但是A还不知道。
  2. 第二次握手B向A发送回复收到,A收到后,A就知道,B已经收到自己发送的信息了,,所以A就知道自己的发送和B的发送和接收功能是好的,但是B这这边还不知道A有没有收到自己的回复也就是不知道A的接收功能是否完好。
  3. 第三次握手A再次向B发送一下回应,B收到后,B就知道A的接收和自己的发送也是好的。至此,A,B都知道自己和对方的接受和发送是正常的。三次握手完成。建立连接完成。

 

两边closed,listen,syn_ack是TCP的状态。建立连接阶段,主要有两个状态:

1.listen 服务器的状态 表示服务器已经准备就绪,客户端随时都可以连接。

2.established 客户端和服务器都有。表示建立连接完成,三次握手完成。

 三次握手的核心作用:

  1. 双方建立对对方的认同。(即保存对方的信息)。
  2. 验证通信双方各自的发送能力和接收能力是否正常。
  3. 让通信双方,在握手的过程中,针对一些重要的参数,进行协商。

 区分确认应答和三次握手的区别?

TCP的特点有可靠性传输,有连接。UDP的特点是不可靠传输,无连接。

确认应答是可靠性传输的核心,而三次握手是有连接中的步骤,有连接包含连接的建立(三次握手),断开(四次挥手),维护等等。确认应答和三次握手虽然过程很相似,但其实毫无联系。确认应答体现的是"可靠性传输",与连接不连接无关系。就算不连接也能可靠性传输。比如企业微信发一条消息,会出现已读,这个过程没有建立连接,也是可靠性传输,"已读"相当于ack(应答报文)。


2.四次挥手

如下图:可以是A先跟B说,也可以是B先跟A说。这个客户端和服务器都可以发起。

比如下面:A先跟B说:我要删除你了(1)。B回复说:好的(2)。然后B又跟A说:我也要删除你了(3)。A回复说:好的(4)。

四次挥手中有两个主要的状态

1.CLOSE_WAIT 等待关闭 出现在被动断开连接的一方。

2.TIME_WAIT 出现在主动断开连接的一方。意味着主动断开连接的这一方的所做的事基本已做完,但还不能立即close,等待一定时间后(等待是为了保证客户端这边最后发送的ack能够达到对面,防止ack丢包),然后才进行close操作。丢包就会引发超时重传,假设最后一次的ack丢包了,那么服务器这边在过了一定时间后,发现ack没来,就会猜测是客户端发来的ack丢了,还是我刚才发送的fin丢了。在不确定的情况下,服务器这边就会重新发送fin请求。客户端再回传ack。

                     

那么TIME_WAIT具体保持多长时间呢,才真正释放呢?

假设网络上两个节点通信消耗的最大时间为MSL(可配置的参数),此时TIME_WAIT的保持时间最多为2MSL。MSL这个值一般是60s。以上面图为例,如果客户端这边等待了2MSL,还没收到服务器那边传来的FIN,就会认为服务器那边已经成功接收到自己的ack,进行close了,客户端这边也就不等待了,也会进行close。

ACK:确认序号是否有效。

SYN:请求建立连接,携带这个标识的称为同步报文段。synchronize,有点像锁,但这里翻译为同步,毫无关联。

FIN:通知对方,本端要关闭了。携带FIN标识的称为结束报文段


3.总结

面试画图

1.为啥会有三次握手,四次挥手?

原因是TCP是一个有连接的协议。其中连接建立的过程是三次握手,连接断开的过程是四次挥手。

2.三次握手的意义:

  1. 通信双方互相保存对方的信息。
  2. 验证通信双方得发送和接收能力。
  3. 协商一些关键参数。

4.三次握手中间两次能够合并的原因?四次握手中间两次不能合并的原因?

能不能合并主要看两个数据发送的时机相不相同。相同才能合并。

三次握手这三次交互过程( ack的发送,syn的发送 )是纯内核中完成的。应用程序感知不到,干预不了。服务器的内核系统收到syn后,就会立即发送ack,并且立即发送syn。所以中间这两次可以合并发送,其实也可以不合并,但合并会提高效率。所以就合并了。

而四次挥手中FIN的发送不是内核控制的,而是由应用程序(代码)控制的,当其调用socket的close方法或者进程结束,才会触发FIN。ACK是由内核控制的,收到FIN后,就会立即返回ACK。所以应用程序发生的时机会与你代码里的逻辑相关。代码越逻辑复杂(从接收到FIN还要执行其他代码逻辑才close操作),一个是立即返回,另一个是还要执行耗时。这两步操作完成的间隔越大,这种情况下合并就会等待另一个完成。若是时间长了,还会引发不必要的超时重传。所以通常情况下都是分开发送的。不过特殊情况下也是可以的,比如代码逻辑简单的时候。

上面实际上也回答了握手为啥是三次,挥手为啥是四次。

5.三次握手为啥不能是四次?或者不能是两次?

5.四次挥手为啥是四次?

6.TIME_WAIT的意义和作用。

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

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

相关文章

最短路径:迪杰斯特拉算法

简介 英文名Dijkstra 作用&#xff1a;找到路中指定起点到指定终点的带权最短路径 核心步骤 1&#xff09;确定起点&#xff0c;终点 2&#xff09;从未走过的点中选取从起点到权值最小点作为中心点 3&#xff09;如果满足 起点到中心点权值 中心点到指定其他点的权值 < 起…

3 tensorflow构建的模型详解

上一篇&#xff1a;2 用TensorFlow构建一个简单的神经网络-CSDN博客 1、神经网络概念 接上一篇&#xff0c;用tensorflow写了一个猜测西瓜价格的简单模型&#xff0c;理解代码前先了解下什么是神经网络。 下面是百度AI对神经网络的解释&#xff1a; 这里不赘述太多概念相关的…

安防监控项目---CGI接口的移植和使用

文章目录 前言一、CGI二、CGI的具体移植步骤2.1 cgi源码下载2.2 搭建交叉编译环境2.3 注意事项 三、测试结果总结 前言 书接上期&#xff0c;上期与大家分享的是boa服务器的移植&#xff0c;那么几天要和大家介绍的呢是一款接口&#xff0c;哈哈哈&#xff0c;用起来也是有点难…

vue使用百度富文本

&#x1f525;博客主页&#xff1a; 破浪前进 &#x1f516;系列专栏&#xff1a; Vue、React、PHP ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 1、下载UEditor 链接已放到文章中了 2、上传到项目目录中 一般上传到public下&#xff0c;方便到时候打包进去&#xff0c;以免…

骨传导耳机怎么佩戴,骨传导蓝牙耳机什么牌子好用

市面上的传统耳机一直以来都存在一些问题&#xff0c;比如长时间佩戴会导致耳朵不适&#xff0c;或者声音过大可能会伤害到耳膜。但是&#xff0c;现在有一种独特的耳机正在迅速走红&#xff0c;它被称为骨传导耳机&#xff0c;而骨传导耳机是怎么佩戴的呢&#xff0c;它在佩戴…

Ionic 7 版本发布 - 免费开源、超受欢迎的移动应用开发 UI 工具包,主题优雅且完美支持 Vue.js

Ionic 是一款优秀的移动 UI 框架&#xff0c;迭代也很快&#xff0c;现在也支持了 Vue&#xff0c;是时候向大家推荐用来开发 APP 了。 Ionic 全称是 Ionic Framework&#xff0c;是一个功能强大的开源 UI 工具库&#xff0c;用来帮助前端开发者构建跨平台的移动应用。 Ionic …

干洗店小程序上门洗鞋店管理软件功能介绍;

干洗店小程序上门洗鞋店管理软件功能介绍&#xff1b; 营销工具-洗鞋店管理软件多渠道玩法&#xff0c;拓客留客 支付-会员管理系统多种支付方式&#xff0c;灵活经营 ​ ​提供洗鞋店管理软件服务&#xff0c;实现会员精细化运营 会员档案-洗鞋店管理软件记录会员的全方位信…

Pytorch 猫狗识别案例

猫狗识别数据集https://download.csdn.net/download/Victor_Li_/88483483?spm=1001.2014.3001.5501 训练集图片路径 测试集图片路径 训练代码如下 import torch import torchvision import matplotlib.pyplot as plt import torchvision.models as models import torch.nn a…

IntelliJ IDEA 安装mybaits当前运行sql日志插件在线与离线安装方法

先安装好idear 去网上找找这个安装包下载下来&#xff0c;注意版本要完全一致&#xff01; 比如&#xff1a; https://www.onlinedown.net/soft/1233409.htm手动安装离线插件方法举例 提前下载好插件的安装包 可以去网上下载这个安装包 搜索离线安装包的资源&#xff0c;包…

【文末送书】AI时代数据的重要性

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

亚马逊美国加拿大电动移动设备合规标准是什么?如何办理?

亚马逊美国站电动移动设备合规标准是什么&#xff1f; 加拿大站电动移动设备合规标准 办理流程&#xff1a; 1.填写申请表 2.提供产品的资料&#xff08;说明书&#xff0c;电路原理图&#xff0c;如是多个型号的&#xff0c;提供型号差异列表&#xff09; 3.寄样 4.测试 …

电商生态圈:跨境电商的商业合作新模式

随着数字化浪潮的不断崛起&#xff0c;电子商务行业正经历着前所未有的革命性变革。在这个变革的过程中&#xff0c;跨境电商已经成为全球贸易的推动力量。然而&#xff0c;跨境电商并非孤立存在&#xff0c;而是在日益扩大的电商生态圈内蓬勃发展。本文将探讨跨境电商的商业合…

AT8548 双通道有刷直流电机驱动芯片的作用

AT8548为玩具、打印机和其它机电应用提供一种双通道电机驱动方案。亿胜盈科AT8548内置两路H桥驱动&#xff0c;可以驱动两个直流有刷电机&#xff0c;或者通过输出并接驱动一个直流有刷电机&#xff0c;或者一个双J步进电机&#xff0c;或者螺线管及其它感性负载。 亿胜盈科AT8…

计算机考研 | 2011年 | 计算机组成原理真题

文章目录 【计算机组成原理2011年真题43题-11分】【第一步&#xff1a;信息提取】【第二步&#xff1a;具体解答】 【计算机组成原理2011年真题44题-12分】【第一步&#xff1a;信息提取】【第二步&#xff1a;具体解答】 【计算机组成原理2011年真题43题-11分】 &#xff08;1…

【23真题】大神凭这套拿452分!看看你能拿多少?

今天分享的是23年福州大学866的信号与系统试题及解析。23年福州大学新一代电子信息的最高分是452分&#xff01;但是我看不到单科分数。按照75&#xff0c;75&#xff0c;150&#xff0c;150。也就是只有450&#xff0c;说明这个同学&#xff0c;专业课和数学几乎拿满&#xff…

【设计模式】第17节:行为型模式之“解释器模式”

一、简介 解释器模式为某个语言定义它的语法&#xff08;或者叫文法&#xff09;表示&#xff0c;并定义一个解释器用来处理这个语法。 二、适用场景 领域特定语言复杂输入解释可扩展的语言结构 三、UML类图 四、案例 对输入的特定格式的打印语句进行解析并执行。 packag…

3D模型格式转换工具HOOPS Exchange:更快、更准确的CAD数据转换工具

HOOPS Exchange是一个开发平台&#xff0c;可以帮助快速开发高性能&#xff0c;跨平台的工程应用程序&#xff0c;是一款更快、更准确的CAD数据转换工具包&#xff0c;是3D数据格式转换首选解决方案。 ▷ 工业级3D数据格式转换 通过单个界面即可读取和写入30多种CAD文件格式&…

虚拟人裸眼3D动画宣传片:品牌营销的流量密码

在数字化转型的大背景下&#xff0c;行业竞争越来越激烈&#xff0c;品牌迫切需要一种新颖的、差异化的宣传片方式提升流量。而依靠户外大屏播放的虚拟人裸眼3D动画宣传片&#xff0c;具有强地标性和网红属性&#xff0c;成为推动文旅、城市营销、品牌营销的重要渠道。 虚拟人裸…

PWA 是属于谷歌的“小程序”!有哪些核心技术

在国内由于小程序的风生水起&#xff0c;PWA 应用在国内的状况一直都不是很好&#xff0c;PWA 和小程序有很多的相似性&#xff0c;但是 PWA 是由谷歌发起的技术&#xff0c;小程序是微信发起的技术&#xff0c;所以小程序在国内得到了大力的扶持&#xff0c;很快就在国内技术界…

Day 3 登录页以及路由 (一)

登录页以及路由 需求 作为一个后台管理系统&#xff0c;登录页是必不可少的。登录页的需求也很简单&#xff0c;输入账号密码&#xff0c;有登录、重置按钮即可。主要界面类似这种&#xff1a; 登录提交到后台&#xff0c;校验成功后&#xff0c;跳转到系统主页。 另外一个需…