简述TCP三次握手,四次挥手

news2024/11/24 15:54:50

前言:
通常大多数认为三次握手、四次挥手是HTTP协议产生的。这是一个错误的认知,实际上HTTP协议并不参与握手以及挥手过程,三次握手四次挥手均是在TCP协议层上进行的,而HTTP协议只是在已建立 TCP连接的基础上,进行通信的。

握手过程:
【第一次握手】:
客户端向服务端发送一个带有SYN(同步序列编号)标致的数据包给服务器,表示客户端请求连接,此时客户端进入SYN_SENT状态。
SYN数据包中,seq表示初始序列号,SYN=1,表示客户端希望建立连接。
【第二次握手】:
服务端在收到客户端建立连接的SYN请求之后,会发送一个带有SYN/ACK(同步/确认序列编号)标致的数据包给客户端。此时服务端进入SYN_RECIVED状态。
SYN/ACK包中,seq代表服务器的初始序列号;ack代表的是确认号,具体值为客户端发送的SYN数据包的初始序列号加1,表示服务器已经成功接受到了客户端的SYN请求,并且准备好建立连接。SYN标志为1,表示服务端愿意建立连接。ACK标志为1,表示对客户端的 SYN请求进行确认。
【第三次握手】:
客户端在收到服务端发送的SYN/ACK(同步/确认序列编号)标致的数据包后,会发送一个带有ACK(确认序列编号)标志的数据包给服务器,表示客户端接受连接。服务器接收到客户端发送的ACK(确认序列编号)的包后,双方建立连接。服务器进入ESTABLISHED状态,客户端也进入ESTABLISHED状态。
ACK数据包中,seq代表序列号,表示客户端期望从该序列号发送数据;ack表示确认号,具体值为服务端发送的SYN/ACK数据包中的序列号+1;ACK标志为1,表示对服务器的SYN/ACK响应进行确认。
在这里插入图片描述

挥手过程:
【第一次挥手】:
客户端向服务器发送一个FIN(结束)标志数据包,表示客户端不再发送数据,但是仍可以接收数据。客户端进入“FIN_WAIT_1”状态。
FIN包中ACK标志为1,表示发送方不再发送数据,希望关闭连接,ACK标志为1表示希望接收方确认收到FIN包。seq表示发送方当前发送数据的最后一个字节的序列号。

【第二次挥手】:
服务器收到客户端发送的FIN结束包后,发送一个带有ACK(确认)标志的包给客户端,表示服务端已经收到了客户端要关闭连接的请求。服务端进入“CLOSE_WAIT”状态,客户端进入“FIN_WAIT_2”状态。
ACK包中seq,表示接收方当前发送数据的最后一个字节的序列号,ACK标志为1,表示确认收到了客户端发送的FIN包,ack表示确认号,具体值为FIN包的初始序列号+1

【第三次挥手】:
服务器决定关闭连接,会在发送一个FIN标志的数据包给客户端,表示服务器不在接收数据,进入“LAST_ACK”状态
FIN包中seq表示发送方当前发送数据的最后一个字节的序列号。ACK标志为1,表示确认收到了客户端发送的FIN包,FIN为1,表示不再发送数据,ack为确认号,为客户端发送的FIN包的初始序列号+1

【第四次挥手】:
客户端收到服务器的FIN包后,会发送一个ACK标志的数据包给服务器,表示客户端确认收到了服务器的关闭请求。客户端进入“TIME_WAIT”状态,等待服务器端收到ACK包之后,进入“CLOSED”状态,此时服务器端也进入“CLOSED”状态
ACK中seq表示序列号,接收方当前发送数据的最后一个字节的序列号。ACK标志为1,表示确认收到了服务端的FIN包,ack表示确认号,值为客户端的初始序列号+1

在这里插入图片描述

                                                                                   学海无涯

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

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

相关文章

软考中级软件评测师考什么?

软件评测师属于软考中级,考试没有软考高级难度大,但是会比软考初级要难,所以想要通过软件评测师考试还是需要花时间备考的。 软件评测师上午考试为基础知识,下午考试为应用技术。 基础知识考试题型为客观选择题,相对…

沉浸式体验与 AI 数智助理一起工作的一天

在当今商业世界中,人工智能、数据分析和指标管理已经成为企业持续成功不可或缺的一环。当你配备了一个 AI 数智助理之后,日常的工作又会受到什么影响呢?快来和我们一起沉浸式体验“连锁企业区域总监”与 AI 数智助理一起工作的一天吧&#xf…

【Linux初阶】信号入门2 | 信号阻塞、捕捉、保存

文章目录 ☀️前言☀️一、信号阻塞🌻1.信号其他相关常见概念🌻2.信号在内核中的表示 ☀️二、信号捕捉(重点)🌻1.用户态 & 内核态🌻2.如何判断进程处于用户态或内核态🌻3.OS接口的访问方法…

板子接线图

1.ST-LINK V2接线 2.对抗板子刷蓝牙固件 接USB转TTL,用镊子短接两个孔 2.对抗板子用串口测试蓝牙AT命令 短接白色箭头,接TX,RX,电源

【已解决】:该该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)“按钮获取它的所有权。否则,请按“取消(C)“按钮以防损坏。

现象 启动VMware虚拟机,无法正常打开并出现以下信息: 原因 这是因为当运行一个“虚拟系统”时,为防止该系统被另外一个VMware程序打开,导致数据被修改或损坏,VMware会自动在该“虚拟系统”所在的文件夹下&#xff0c…

微信小程序 工具使用(HBuilderX)

微信小程序 工具使用:HBuilderX 一 HBuilderX 的下载二 工具的配置2.1 工具 --> 设置 --> 运行配置2.1.1 微信开发者工具路径2.1.2 node 运行配置 2.2 插件 工具 --> 插件安装2.2.1 下载插件 三 微信小程序端四 同步运行五 BUG5.1 nodemon在终端无法识别 一 HBuilderX…

前端面试题: 请解释什么是函数的作用域?

今天做到了一道题:请解释什么是函数的作用域? 我给的答案是: 函数的作用域是指函数执行到内部后创建的数据空间,在函数的作用域内,let定义的变量的有效期为函数作用域 AI觉得我答得比较简单:回答基本正确&…

使用 OpenWRT 设置 Banana Pi BPI-R3开源硬件路由器

这里介绍如何使用 pfSense 将ZimaBoard 216设置为防火墙的链接。我们正在为小型板计算机建立一个专用网络,这样当我开始教授 Linux 时,我就可以显示和共享它的 IP。 现在为我的网络设置一条到 pfSense 后面的路由。这是为了提供另一个级别的安全性。我有…

Ubuntu22.04 vnc远程黑屏

一、原因 原因是Ubuntu22.04使用的gnome启用了Wayland。vnc、teamviewer、向日葵、todesk等均无法使用或者远程黑屏等。 简单的说vnc、teamviewer、向日葵、todesk等均基于xorg实现(xorg太流行),并不兼容Wayland,所以vnc无法正常…

权限提升Linux篇

提权工具 https://github.com/liamg/traitor https://github.com/AlessandroZ/BeRoot https://github.com/rebootuser/LinEnum https://github.com/mzet-/linux-exploit-suggester https://github.com/sleventyeleven/linuxprivchecker https://github.com/jondonas/linux…

DirectX12架构理解

无它,一图而已

Python - FastAPI 实现 get、post 请求

目录 一.引言 二.FastAPI Server 构建 1.get - read_items 2.post - create_item 3.uvicorn - run_app 三.Postman 请求 1.post - create_item 2.get - read_items 四.Requests 请求 1.post - create_item 2.get - read_items 五.总结 一.引言 前面介绍了 LLM 的相…

前端解决页面访问总是自动弹出 浏览器的 翻译此页 问题

今天克隆了一个项目下来 结果 浏览器自带的 翻译此页总会默认弹出 还一直以为是js设置的 结果最后才发现 这是个基础设置 在于 html标签的 lang 属性 这里设置了 en 他就会每次启动都弹出来 只需要改成langzh-CN 再次运行 就不会在弹出来了

恒合仓库 - 商品管理模块、上传照片、添加采购单、添加出库单、商品分类

商品管理模块 文章目录 商品管理模块一、分页查询商品1.1 实体类1.1.1 Store 仓库1.1.2 Brand 品牌1.1.3 ProductType 商品分类1.1.4 Supply 供应商1.1.5 Place 产地1.1.6 Unit 单位1.1.7 Product 商品 1.2 查询所有仓库1.2.1 Mapper1.2.2 Service1.2.3 Controller1.2.4 效果图…

基于宏基因组的功能挖掘:碳水化合物活性酶(CAZymes)注释

基于宏基因组数据,可以通过NR数据库进行物种注释,还可以进行功能挖掘,比如通过KEGG数据库来挖掘代谢通路、根据COG注释结果对蛋白进行功能归类,通过CAzyme可以得到碳化合物合成、代谢、转运等酶的分类和相关信息,通过P…

Echarts散点图筛选新玩法dataZoom

目录 前言 一、引入Echarts5.4.3 二、新建index.html 三、绑定Echarts展示元素 四、初始数据绑定 五、option设置 六、效果展示 七、参数说明 总结 前言 如果您在日常的工作当中也会遇到如下场景,需要在线对已经展示出来的图表进行进一步的筛选&#xff0c…

ASL集睿致远代理商,CS5366芯片,typec转HDMI 4k60Hz带PD快充方案

CS5366是一款Type-C/DP1.4到HDMI2.0的显示协议转换芯片&#xff0c;内部集成了PD3.0及DSC decoder, 并能按客户需求配置成不同的功能组合&#xff0c; 是目前集成度与功耗最小的一颗芯片。 CS536x主要特性 1. 业界最低功耗的Type-C to HDMI2.0 4K60产品 (<300mW)。 2. 集成D…

R读写parquet文件

什么是parquet文件 Apache Parquet是一个开源的&#xff0c;列存储的数据文件格式。 https://parquet.apache.org/ 在R里面&#xff0c;我们可以通过arrow包来读写它。 我们先安装一下arrow包&#xff0c;并加载它。 install.packages("arrow") library(arrow)读写…

[CISCN2019 华东南赛区]Web11 SSTI

这道SSTI 差点给我渗透的感觉了 全是API 我还想去访问API看看 发现这里读取了我们的ip 我们抓包看看是如何做到的 没有东西 我们看看还有什么提示 欸 那我们可不可以直接修改参数呢 我们传递看看 发现成功了 是受控的 这里我就开始没有思路了 于是看了wp 说是ssti 那我们看…

buuctf-[WUSTCTF2020]朴实无华

打开环境就这么一句话 先打开index.php,但是没有什么 查看了下网络 看到gzip和php 我试了试www.zip 还有index.phps&#xff0c;也是一样的&#xff0c;都没找到文件 于是我想到用御剑扫&#xff0c;但是我好像线程太长了&#xff0c;一个没扫到&#xff0c;我就想到用dirsea…