TCP之三次握手四次挥手

         在前面的文章中我们了解到http是基于TCP/IP协议的,这篇文章我们来了解一下TCP/IP。

一、TCP与UDP

1、UDP

       基于非连接。类似于写信,不能保证对方能不能接收到,接收到的内容是否完整,顺序是否正确。

    优缺点:性能损耗小,占用资源少,稳定弱,速度块。

2、TCP

      基于连接,类似与通话,能够确认对方能够准确的接收到发送的信息。

    优缺点:数据传输可靠,支持全双工,建立时间和消耗资源过大,有延迟,效率相对较低。

二、TCP建立连接和断开连接

1、三次握手建立连接

(1)作用

          三次握手是TCP用来建立连接的一种机制,确保双方可以正常通信。每一步都需要对方的确认才能进行下一步,从而确保双方都同意建立连接,并且状态得到正确同步。这样可以减少因网络延迟、丢包等问题导致的连接建立失败或错误。

(2)建立过程

  • 第一次握手:客户端发送SYN包,客户端向服务器发送一个SYN(同步)包,其中包含一个初始序列号(ISN)作为起始值。此时客户端处于SYN_SENT(同步已发送)状态。
  • 第二次握手:服务器回复SYN-ACK包,服务器收到客户端的SYN包后,会生成自己的初始序列号,并对客户端的SYN进行确认。服务器构造一个SYN-ACK(同步-确认)包,将自己的初始序列号作为起始值,同时也将确认号设置为客户端初始序列号加一。然后服务器发送这个SYN-ACK包给客户端。此时服务器处于SYN_RCVD(同步已接收)状态。
  • 第三次握手:客户端发送ACK包,客户端收到服务器的SYN-ACK包后,确认服务器的初始序列号和确认号,并构造一个ACK(确认)包,将确认号设置为服务器初始序列号加一。客户端发送这个ACK包给服务器。此时客户端处于ESTABLISHED(已建立连接)状态,服务器收到ACK包后也转入ESTABLISHED状态。
  • 三次握手完成,客户端和服务器正式建立了TCP连接,可以进行数据的传输。

(3)注意事项

         ①握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。

         ②如果已经建立了连接,但是客户端突然出现故障了怎么办?

         TCP协议引入了超时机制。TCP为每个连接都设置了一个定时器,用于在一定时间内检测连接是否还处于活动状态。如果在规定时间内没有收到客户端的数据,则服务器认为客户端已经断开连接,并会关闭连接。

(4)为什么不能用两次握手?

  • 确保双方都愿意建立连接:在两次握手的情况下,客户端只发送一次连接请求,但服务器无法确认客户端是否真正希望建立连接,因为可能只是一个错误的或者重复的请求。通过三次握手,服务器可以回复确认信号来确认客户端真正的通信意愿。
  • 防止已失效的连接请求影响:如果使用两次握手,可能会遇到客户端已经发送了一个连接请求,在网络中滞留了一段时间后终于到达服务器,导致服务器误认为客户端希望建立连接。而通过三次握手,服务器可以得到客户端最新的连接请求,并且可以排除掉之前的已失效的连接请求。
  • 同步双方的初始序列号:在TCP连接中,每个连接都有一个初始序列号(ISN)用于标识数据流的起始位置。通过三次握手,双方可以交换彼此的初始序列号,从而实现双方序列号的同步,确保后续传输的数据能够正确地按序组装和重组。

2、四次挥手断开连接

(1)作用

       是用于关闭TCP连接的过程。它是在双方确认不再需要通信时,进行连接释放和资源回收的步骤。在这个过程中,双方都需要发送FIN和ACK两个标志位的报文段,以确保双方都知道对方已经确认了关闭连接的请求。最后,当双方都收到了对方发送的ACK报文段后,连接就顺利关闭,并且可以回收连接所占用的资源。

(2)建立过程

  • 第一次挥手:客户端发送连接释放请求(FIN),当客户端确定不再发送数据时,它会发送一个带有FIN标志位的报文段给服务器,表示请求关闭连接。此时,客户端进入FIN-WAIT-1(终止等待1)状态。
  • 第二次挥手:服务器回复确认客户端的请求(ACK),服务器收到客户端的连接释放请求后,会发送一个带有ACK标志位的报文段给客户端,确认收到了客户端的请求。服务端就进入了CLOSE-WAIT 关闭等待状态。
  • 第三次挥手:服务器发送连接释放请求(FIN),客户端接收到服务器端的确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
  • 第四次挥手:客户端回复确认服务器的请求(ACK),客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命)客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成

(3)注意事项

       为什么客户端要等待2MSL?
        确保连接彻底关闭,并在此期间处理延迟报文段和防止端口冲突,从而保证网络通信的可靠性和稳定性。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

环境异常总结

1.vue项目 npm run dev 运行时报错:webpack-dev-server --inline --progress --config build/webpack.dev.conf.js 不是内部或外部命令 原因:webpack-dev-server存在问题 解决方案:指定 webpack-dev-server 低版本号 方法: 删除 …

HRS--人力资源系统(Springboot+vue)--打基础升级--(六)分页查询 + 重置按钮

一:先弄个简单的重置按钮 1.界面设计就放在搜索框同一列的位置 2. 在点击重置按钮时,清空搜索框内的内容,同时触发一次无条件查询(这个写法有bug,下面会有说明) 二:做分页 在MyBatis中,有多种方法可以实现分…

ChatGPT 实现动态地图可视化展示

地图可视化分析有许多优点和好处: 1.直观理解:地图可视化使得复杂的数据更易于理解。通过地图可视化,人们可以直观地看到地理位置、地区之间的关系以及空间分布的模式。 2.提高决策效率:地图可视化可以帮助决策者快速理解和解释数据,从而提高决策效率。 3.高效的数据整…

Fiddler中 AutoResponder 使用

Fiddler的 AutoResponder ,即URL重定向功能非常强大。不管我们做URL重定向,还是做mock测试等,都可以通过该功能进行实践。 下面,小酋就来具体讲下该功能的用法。 Enable rules 启用规则Unmatched requests passthrough 没有匹配…

【大数据模型】让chatgpt为开发增速(开发专用提示词)

汝之观览,吾之幸也!本文主要聊聊怎样才能更好的使用提示词,给开发提速,大大缩减我们的开发时间,比如在开发中使用生成表结构脚本的提示词,生成代码的提示词等等。 一、准备 本文主要根据Claude进行演示&am…

前端项目工程化之代码规范

目录 一、前言二、ESLint三、Prettier四、项目实战4.1 环境依赖版本4.2 使用pnpm4.3 git提交规范 五、资源 收集六、源码地址 一、前言 前端项目工程化之代码规范是指在前端项目中定义一套代码规范,以确保项目中的代码风格和格式一致,提高代码的可读性和…

ESP32在线仿真器

1. Wokwi是一个电子在线仿真平台,支持的芯片有ESP32,STM32,树莓派,Arduino 网址: https://wokwi.com ; 而且支持在vscode内置插件仿真 2. ESP32可以使用microPython开发,相关sdk说明MicroPython(ESP32)快…

OpenCV(二):认识Mat容器

目录 1.什么是Mat类 2.Mat类能存储的数据 整数类型(有符号和无符号): 浮点数类型: 布尔类型: 3.Mat类的创建 1.利用矩阵宽、高和类型参数创建Mat类 2.利用矩陈Size(结构和数据类型参数创建Mat类 3.利用已有Mat…

ExpressLRS开源代码之框架结构

ExpressLRS开源代码之框架结构 1. 源由2. Arduino应用框架3. ExpressLRS应用框架4. 硬件设计框架4.1 单天线4.2 双天线单PA4.3 双天线双PA 5. 应用软件设计6. 参考资料 1. 源由 最近为了理解《ExpressLRS开源之基本调试数据含义》,做了一些源代码的研读。 概念、文…

政企局域网办公首选:WorkPlus专为政企打造的IM即时通讯平台

政府机构与企业在信息交流与协作中的安全高效需求,使得私有化部署的IM即时通讯平台成为必要选择。WorkPlus提供符合客户应用场景的数字化平台解决方案,满足政企局域网办公需求。WorkPlus如何为政企提供定制化的IM即时通讯解决方案,助力政企机…

【数据结构】——查找、散列表的相关习题

目录 一、选择填空判断题题型一(顺序、二分查找的概念)题型二(分块查找的概念)题型三(关键字比较次数) 二、应用题题型一(二分查找判定树) 一、选择填空判断题 题型一(顺…

OpenCV

文章目录 OpenCV学习报告读取图片和网络摄像头1.1 图片读取1.2 视频读取1.1.1 读取视频文件1.1.2读取网络摄像头 OpenCV基础功能调整、裁剪图像3.1 调整图像大小3.2 裁剪图像 图像上绘制形状和文本4.1 图像上绘制形状4.2图像上写文字 透视变换图像拼接颜色检测轮廓检测人脸检测…