news 2026/3/17 1:23:42

网页中的三次握手。四次挥手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网页中的三次握手。四次挥手

目的:在客户端和服务器之间建立一个可靠的TCP连接,确保双方都具有发送和接收数据的能力。

这个过程就像一个双方确认通话的过程:

第一次握手 - SYN

客户端 向 服务器 发送一个TCP数据包。

第二次握手 - SYN-ACK

服务器 收到客户端的 SYN 包后,如果同意连接,会回复一个数据包。

第三次握手 - ACK

客户端 收到服务器的 SYN-ACK 包后,会再向服务器发送一个确认包。

至此,连接建立成功,双方可以开始传输数据(比如HTTP请求和响应)。

为什么是三次,而不是两次?
主要是为了防止已失效的连接请求报文突然又传到了服务器,导致错误。
假设只有两次握手:如果客户端一个旧的连接请求在网络中滞留了很久,后来才到达服务器,服务器会误以为这是一个新的连接请求并回复确认。如果是两次握手,此时连接就建立了,但客户端并没有意图建立这个连接,也不会发送数据,从而导致服务器空等,浪费资源。三次握手的设计使得客户端不会对服务器的确认再进行确认,这个无效的连接请求就不会被建立。

----------------------------------------------------------分割线---------------------------------------------------------

TCP 四次挥手 - 断开连接
目的:安全、可靠地终止一个TCP连接。由于TCP连接是全双工的(数据可以双向传输),每个方向都必须单独进行关闭。

这个过程就像两个人通完话后礼貌地道别:

第一次挥手 - FIN

主动关闭方(假设是客户端) 发送一个TCP数据包。

第二次挥手 - ACK

被动关闭方(服务器) 收到 FIN 包后,会立即回复一个确认包。

第三次挥手 - FIN

当被动关闭方(服务器) 也完成了数据的发送,准备关闭连接时,它会发送一个 FIN 包。

第四次挥手 - ACK

主动关闭方(客户端) 收到服务器的 FIN 包后,会发送一个确认包。

这个数据包中标志位 ACK=1。

为什么是四次挥手?
因为TCP连接是全双工的,一方关闭发送通道后,另一方可能还有数据要发送。因此,关闭过程需要分两步:

第一次和第二次挥手:关闭从A到B的连接。

第三次和第四次挥手:关闭从B到A的连接。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 15:16:42

Anaconda配置PyTorch环境太麻烦?用PyTorch-CUDA-v2.7镜像省时省力

PyTorch环境配置太痛苦?这个镜像让你5分钟上手GPU训练 在深度学习项目启动阶段,你是否经历过这样的场景:花了整整一天时间折腾conda环境,结果torch.cuda.is_available()还是返回False?或者团队里有人能跑通的代码&…

作者头像 李华
网站建设 2026/3/14 13:41:37

音频格式转换技术深度解析:从编码原理到智能交互实践

音频格式转换技术深度解析:从编码原理到智能交互实践 【免费下载链接】wukong-robot 🤖 wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,支持ChatGPT多轮对话能力,还可能是首个支持脑机交互的开源智能音箱…

作者头像 李华
网站建设 2026/3/16 23:30:39

RuoYi-Vue Pro 企业级开发平台终极指南

RuoYi-Vue Pro 企业级开发平台终极指南 【免费下载链接】ruoyi-vue-pro 🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot MyBatis Plus Vue & Element 实现的后台管理系统 微信小程序,支持 RB…

作者头像 李华
网站建设 2026/3/13 21:15:14

Windows越来越难用,微软什么时候被替代?

如果只能用一个词来形容人和 AI 的区别,以及人类真正不可替代的地方,我会选 “动机”。不是智力,不是创造力,甚至也不是情感。因为这些词,AI 都在一点点逼近,甚至在某些局部已经做得比人更稳定、更高效。但…

作者头像 李华
网站建设 2026/3/13 15:25:40

深度学习环境太难配?试试PyTorch-CUDA-v2.7开箱即用镜像

深度学习环境太难配?试试PyTorch-CUDA-v2.7开箱即用镜像 在人工智能项目中,你有没有经历过这样的场景:刚克隆完一个热门模型仓库,满怀期待地运行 python train.py,结果第一行就报错——“CUDA not available”&#xf…

作者头像 李华
网站建设 2026/3/5 17:43:40

YOLOv11目标检测模型在PyTorch-CUDA环境中的训练优化

YOLOv11目标检测模型在PyTorch-CUDA环境中的训练优化 在自动驾驶感知系统调试过程中,一个常见的痛点浮出水面:团队成员在本地训练YOLO模型时,总遇到“显卡不识别”“CUDA版本冲突”“训练到一半显存爆炸”等问题。更糟的是,同一份…

作者头像 李华