【TCP】四次挥手(最强详解!!通俗易懂!!)

news2025/1/18 4:37:26

目录

想要了解三次握手的话可以参考我的另外一篇博客

首先来了解一下FIN和ACK

FIN

ACK

接着我们再来具体的了解TCP四次挥手过程

转换为最最通俗理解方法:


想要了解三次握手的话可以参考我的另外一篇博客

【TCP】三次握手(最强详解!!通俗易懂!!)_是瑞穗的猫啊的博客-CSDN博客

首先来了解一下FIN和ACK


FIN和ACK就是两个用于关闭连接过程中的两个信号量


FIN

FIN代表的就是结束的意思,发起了一个关闭的信号

  • 可以将FIN视为“告别”的信号,用于开始关闭TCP连接的过程。
  • 当一方决定关闭连接时,它会发送一个带有FIN标志的包给对方,表示自己不会再发送数据。
  • 发送FIN包的一方仍然可以接收数据,但不能再发送数据给对方。
  • FIN包中的序列号字段指示发送者发送完数据后的下一个序列号。

ACK

ACK和三次握手过程中的一样,也是代表了确认的标志

  • 在TCP通信中,ACK用于确认已收到的数据或请求。
  • 当一方接收到带有FIN标志的包时,需要向对方回复一个带有ACK标志的包,表示已成功接收到了FIN包。
  • 这个ACK包中的确认号字段设置为接收到的FIN包的序列号加1,表示已经成功接收到了FIN包。

接着我们再来具体的了解TCP四次挥手过程

第一次挥手(A发送FIN):

  • A向B发送一个带有FIN(结束)标志位的包,表示A已经发送完所有数据,并请求关闭连接。
  • A将序列号设为X,此时A不能再向B发送数据。

最开始的时候是连接状态,我们需要将其断开TCP的连接

 

第二次挥手(B发送ACK):

  • B收到A的FIN包后,向A回复一个带有ACK(确认)标志位的包,表示已经收到了A的关闭请求。
  • 确认号字段设置为A的序列号X加1,表示B期望接收到下一个字节的序列号。

第三次挥手(B发送FIN):

  • B发起关闭连接过程,向A发送一个带有FIN标志位的包,表示B已经发送完所有数据,并请求关闭连接。
  • B选择一个随机的序列号Y,并将其放入包的序列号字段,表示B不会再向A发送数据。

第四次挥手(A发送ACK):

  • A收到B的FIN包后,向B回复一个带有ACK标志位的包,表示已经收到了B的关闭请求。
  • 确认号字段设置为B序列号Y加1,表示A期望接收到下一个字节的序列号。

等待2MSL时间后断开连接 

成功断开连接 

转换为最最通俗理解方法:

A:再见,我要关闭了(FIN)

B:我知道了(ACK)

 给 B 一段时间把自己的事情处理完...

B:再见,我要关闭了(FIN)

A:我知道了(ACK)

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

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

相关文章

DVWA XSS

反射型 low 查看源代码&#xff0c;没有任何过滤 构造 medium 这里是过滤了 high 这里把双写和大小写和JavaScript都过滤了,用事件来绕过<img src0 οnerrοralert(“xss”)> impossible 这里使用htmlspecialchars进行实体转换并且输出的结果还不能使用事件来…

HarmonyOS/OpenHarmony(Stage模型)应用开发单一手势(一)

一、点击手势&#xff08;TapGesture&#xff09; TapGesture(value?:{count?:number; fingers?:number}) 点击手势支持单次点击和多次点击&#xff0c;拥有两个可选参数&#xff1a; count&#xff1a;非必填参数&#xff0c;声明该点击手势识别的连续点击次数。默认值为…

Python Qt学习(七)Listview

源代码&#xff1a; # -*- coding: utf-8 -*-# Form implementation generated from reading ui file qt_listview.ui # # Created by: PyQt5 UI code generator 5.15.9 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not…

数据库设计DDL

DDL&#xff1a;数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表&#xff09; DDL&#xff08;数据库操作&#xff09; 查询&#xff1a; 查询所有数据库&#xff1a;show databases; 查询当前数据库&#xff1a;select database(); 使用&#xff1a; 使用…

前端实习第七周周记

前言 第六周没写&#xff0c;是因为第六周的前两天在处理第五周的样本库部分。问题解决一个是嵌套问题&#xff08;因为我用到了递归&#xff09;&#xff0c;还有一个问题在于本机没有问题&#xff0c;打包上线接口404。这个问题我会在这周的总结中说。 第六周第三天才谈好新…

RT-Thread 线程管理(二)

系统线程 系统线程是指由系统创建的线程&#xff0c;用户线程是由用户程序调用线程管理接口创建的线程&#xff0c;在 RT-Thread 内核中的系统线程有空闲线程和主线程。 空闲线程 空闲线程&#xff08;idle&#xff09;是系统创建的最低优先级的线程&#xff0c;线程状态永远…

解决D盘的类型不是基本,而是动态的问题

一、正确的图片 1.1图片 1.2本人遇到的问题 二、将动态磁盘 转为基本盘 2.1 基本概念&#xff0c;动态无法转化为基本&#xff0c;不是双向的&#xff0c;借助软件 网址&#xff1a;转换动态磁盘到普通磁盘_检测到计算机本地磁盘为动态分区_卫水金波的博客-CSDN博客 2.2分区…

每日一题 2240. 买钢笔和铅笔的方案数

难度&#xff1a;中等 枚举就行 class Solution:def waysToBuyPensPencils(self, total: int, cost1: int, cost2: int) -> int:res 0for i in range(total//cost1 1):res (total - i * cost1) // cost2res 1return res

高等数学啃书汇总重难点(四)不定积分

本章主要考察方法性的技巧&#xff0c;对于某些理论性的概念&#xff0c;建议在练习中加强理解&#xff0c;不定积分的要义在于不断练习、不断拓宽眼界 一.不定积分的概念 二.原函数存在定理 三.不定积分的定义 四.基本积分表 五.不定积分的性质 六.一类换元法 七.二类换元法 八…

phpstorm配置链接sqlserver数据库

开启sqlserver的TCP/IP 1433端口

硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS

硬件性能评估指标-DMIPS、MFLOPS、MAC、TOPS DMIPS&#xff08;Dhrystone Million Instructions Per Second&#xff09;&#xff1a; DMIPS用于衡量计算机系统的整体指令执行性能&#xff0c;通常关注整数操作。它基于Dhrystone基准测试来计算&#xff0c;该测试主要包含整数运…

如何利用好 IntelliJ IDEA 的调试功能辅助代码调试

文章目录 调试的重要性配置断点启动调试利用 IntelliJ IDEA 的调试功能观察变量和表达式单步执行和逐级跳转查看调用栈条件断点监视变量远程调试使用断点条件和日志 调试最佳实践总结 &#x1f389;欢迎来到Java学习路线专栏~如何利用好 IntelliJ IDEA 的调试功能辅助代码调试 …

YOLOv8超参数调优教程! 使用Ray Tune进行高效的超参数调优!

原创文章为博主个人所有,未经授权不得转载、摘编、倒卖、洗稿或利用其它方式使用上述作品。违反上述声明者,本站将追求其相关法律责任。 这篇博文带大家玩点新的东西,也是一直以来困扰大家最大的问题—超参数调优! 之前的 YOLOv5 我使用遗传算法做过很多次调优,实验一跑就…

实战项目 在线学院之集成springsecurity

一 操作配置 1.0 工程结构 1.1 在common下创建spring_security模块 1.2 pom文件中依赖的注入 1.3 在service_acl模块服务中引入spring-security权限认证模块 1.3.1 service_acl引入spring-security 1.3.2 在service_acl编写查询数据库信息 定义userDetailServiceImpl 查询用…

day08-领取优惠券(高并发优化:超卖、锁失效、事务边界、事务失效)

由于优惠券的发放数量限制、每人限领数量限制&#xff0c;因此在领取优惠券的过程中必须判断优惠券的库存以及当前用户的领取数量。也就是避免出现超发现象&#xff0c;这跟电商中的库存超卖是处理是类似的。 通过今天的学习&#xff0c;希望大家可以达成下列目标&#xff1a;…

【网络教程】群晖如何正确的安装openwrt旁路由

文章目录 准备安装导入镜像创建虚拟机访问旁路由旁路由网络设置准备 我这里的环境是群晖DSM7.2版本首先大家需要预先安装套件Virtual Machine Manager,这里就省略了 根据个人需求去下载openwrt的固件,下载的时候选择x86的img镜像文件,这里也可以直接使用我使用的这个固件(资…

ArcGIS土地利用程度综合指数分析

成图展示&#xff1a; 土地利用程度综合指数 第一步 准备数据 使用的数据为2010年河南省土地利用类型数据与其行政区划县级数据&#xff08;为了节省操作&#xff0c;这里使用上次实验的部分数据[1]&#xff0c;各土地利用类型已被提取&#xff09; 第二步 面积统计 水域为例…

倍量阳线后缩倍阴选股公式,识别短期行情拐点

成交量(VOL)是指一段时间内成交的总手数&#xff0c;反映了资金的流入和流出&#xff0c;是判断市场走势的重要指标&#xff0c;为分析主力行为提供了重要参考。本文结合价格和成交量&#xff0c;编写倍量阳线后缩倍阴选股公式。 在技术分析中&#xff0c;可以利用成交量来衡量…

叮!你的 AI安全“秘籍”已送达,请签收

2023年初&#xff0c;全球生成式 AI 产业迎来了爆发式增长&#xff0c;大量AI产品和应用纷纷落地&#xff0c;让用户深度感知AI的魅力。预计到2032年&#xff0c;生成式AI市场的营收规模将从2022年的400亿美元增长至1.3万亿美元。 就在大量用户“尝鲜”生成式 AI 时&#xff0…