【计算机网络】三次握手、四次挥手
问:三次握手 四次挥手
TCP 连接过程是 3 次握手,终止过程是 4 次挥手
3次握手
第一步:客户端向服务器发送一个带有 SYN(同步)标志的包,指示客户端要建立连接。
第二步:服务器收到客户端的请求后,回复一个带有 SYN(同步)和 ACK(确认)标志的包。 SYN 标志表示服务器也愿意建立连接,ACK 标志确认收到客户端的请求。
第三步:客户端收到服务器的回复后。再发送一个带有 ACK 标志的包,确认收到服务器的回复。

上图中的这个例子有点勉强哈,而我们还需要记住seq为初始序号,ack为确认号,保证了传输层的可靠性,当然课本里面也是这么说的。
TCP3次握手其实就是TCP应用在发送数据前通过TCP协议跟通信对方协商好连接信息,建立起TCP的连接关系,三次握手的主要作用就是为了确认双方的接收和发送能力是否正常,首先第一次握手:客户端发送syn报文,并进入syn_send同步已发送状态,等待服务器的确认;第二次握手:服务器收到syn报文,需要给客户端发送ACK确认报文,同时服务器也要向客户端发送一个syn报文,此时服务器进入syn_rcvd同步收到的状态;第三次握手:客户端收到syn加ACK报文,向服务器发送确认包,客户端进入确认连接状态,待服务器收到ack确认包也会进入确认连接状态。
4次挥手
第一步:当客户端想关闭连接时,发送一个带有 FIN(结束)标志的包给服务器。
第二步:服务器收到客户端的关闭请求时,发送一个带有 ACK 标志的包给客户端,确认收到关闭请求。
第三步:服务器进入 CLOSE_WAIT 状态,继续向客户端发送数据,直到服务器准备关闭连接。 在服务器准备关闭连接时,服务器发送一个带有 FIN 标志的包给客户端。
第四步:客户端收到服务器的关闭请求后,发送一个 ACK 标志的包给服务器,确认收到服 务器的关闭请求

为什么要四次挥手,因为可能存在未发送完成的数据。(参考课本,第一次挥手没有发送ACK标志)
相关文章:
【计算机网络】三次握手、四次挥手
问:三次握手 四次挥手 TCP 连接过程是 3 次握手,终止过程是 4 次挥手 3次握手 第一步:客户端向服务器发送一个带有 SYN(同步)标志的包,指示客户端要建立连接。 第二步:服务器收到客户端的请求…...
Spring Boot中的全局异常处理:@RestControllerAdvice的应用
在现代Web开发中,异常处理是一个不可或缺的部分。良好的异常处理不仅能提高系统的健壮性,还能提升用户体验。在Spring Boot中,全局异常处理的实现可以通过使用RestControllerAdvice注解来完成。本文将详细介绍如何使用RestControllerAdvice和…...
指令数据的构建
文章目录 基于现有的 NLP 任务数据集构建基于日常对话数据构建基于合成数据构建指令微调(Instruction Tuning)是指使用自然语言形式的数据对预训练后的大语言模型进行参数微调,这一术语由谷歌研究员在 2022 年的一篇 ICLR 论文中正式提出。在另外一些参考文献中,指令微调也…...
论文解读(14)-GeoCLIP
加油,加油! 原文: GeoCLIP: Clip-Inspired Alignment between Locations and Images for Effective Worldwide Geo-localization (2309.16020 (arxiv.org)) 这一篇的重点在于范围放宽到全球了 摘要 首先指出了目前…...
MySQL基础练习题16-电影评分
题目 准备数据 分析数据 总结 题目 查找评论电影数量最多的用户名。如果出现平局,返回字典序较小的用户名。 查找在 February 2020 平均评分最高 的电影名称。如果出现平局,返回字典序较小的电影名称。 准备数据 ## 创建库 create database db; u…...
CRMEB-众邦科技 使用笔记
1.启动项目报错 Unable to load authentication plugin ‘caching_sha2_password’. 参考:http://t.csdnimg.cn/5EqaE 解决办法:升级mysql驱动 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</ar…...
npm与webpack的学习笔记
npm 定义:npm是Node.js标准的软件包管理器。它起初是作为下载和管理Node.js包依赖的方式,但其现在也已成为前端JavaScript中使用的工具。 包 包:将模块、代码、其他资料聚合成一个文件夹 包的分类: 项目包:主要用…...
Vue 生命周期选项:2.x 与 3.x 的全面解析及案例分享二
目录 Vue3.X生命周期 介绍 流程图 案例 this.$nextTick Vue 生命周期选项:2.x 与 3.x 的全面解析及案例分享一-CSDN博客 Vue3.X生命周期 介绍 beforeCreate:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。此时无法访…...
Linux centos7 安装sftp
这里写自定义目录标题 指定 SSH 默认端口 (通常是22)添加自定义端口确保 SFTP 子系统配置存在匹配自定义端口的配置 在 CentOS 7 上安装 SFTP 并使用自定义端口 22345 启动,同时不影响现有的 SSH 登录,可以按照以下步骤进行配置: 步骤 1: 安…...
Java未来还是霸主吗?Java 在当今企业中的未来到底是什么?
Java 及其生态系统对于许多现代企业的成功至关重要。它是一种多功能语言,对许多用例提供强大支持,并具有强大的新功能来应对棘手的情况。但您可能会问自己:Java 的未来是什么? 尽管自 1999 年以来 Java 一直是软件开发领域的关键角…...
【C++】类和对象——Lesson2
Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C 🚀本系列文章为个人学习笔记…...
常用传感器讲解十五--触摸传感器(KY-036)
常用传感器讲解十五–触摸传感器(KY-036) 具体讲解 这个比较简单,就是触摸后给个信号 电路连接 在Arduino上将VCC引脚连接到5V。 将GND连接到Arduino的GND。 将OUT连接到Arduino上的D2 代码实现 void setup() {pinMode(2, INPUT);Seri…...
web后端--Spring事务管理
事务也要日志配置 !!!!debug前面记得加空格 logging:level:org.springframework.jdbc.support.JdbcTransactionManager: debugrollbackFor 默认情况下,只有出现RunTimeException才会回滚事务,rollbackfor属性用于控制出现何种异常类型,回滚…...
【Docker系列】Docker 中-d 和-it 的区别
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
PHP回收废品平台系统小程序源码
🌍绿色行动,从“回收废品平台系统”开始!🚚 🚪【家门口的环保站,废品不再无处安放】 你是否曾为家里的旧报纸、空瓶子、废旧电器等废品头疼不已,不知该如何处理?现在,“…...
IIS解析漏洞~ IIS7.漏洞分析
IIS解析漏洞 文件解析漏洞是由于中间件错误的将特殊格式的文件解析成可执行网页文件(脚本),配合文件上传漏洞进行GetShell的漏洞! 1.2:IIS7.X 在IIS7.0和IIS7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在一个文…...
基于python+django的病人人信息管理系统及安全策略分析设计与实现
博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...
前端必知必会-html表单的input属性
文章目录 HTML 输入属性value 属性readonly 属性disabled 属性size 属性maxlength 属性min 和 max 属性multiple 属性pattern 属性placeholder 属性required 属性step 属性autofocus 属性height 和 width 属性list 属性autocomplete 属性总结 HTML 输入属性 本章介绍 HTML <…...
设计模式:详细拆解策略模式
策略模式 既然是详解,就不以案例开头了,直奔主题,先来看看什么是策略模式。 模式定义 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式 使得算法可独立于使用它的客户而变化。 结构 Strategy&a…...
Python正则表达式面试题分析总结
Python正则表达式面试题主要围绕Python内置的re模块展开,考察的是应聘者对于正则表达式的理解、使用以及在实际问题中的应用能力。以下是对这些面试题的详细分析总结: 正则表达式基础: re模块简介:Python中的re模块提供了正则表达…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
轻量安全的密码管理工具Vaultwarden
一、Vaultwarden概述 Vaultwarden主要作用是提供一个自托管的密码管理器服务。它是Bitwarden密码管理器的第三方轻量版,由国外开发者在Bitwarden的基础上,采用Rust语言重写而成。 (一)Vaultwarden镜像的作用及特点 轻量级与高性…...
