TCP三次握手 四次挥手:一场“确认眼神”与“礼貌告别”的对话

news/2025/2/24 10:27:26

🌟 TCP三次握手 & 四次挥手:一场“确认眼神”与“礼貌告别”的对话 🌟

一、三次握手:建立连接的“确认眼神”

场景:想象你和朋友打电话,如何确认对方能听到你说话?

过程:

1️⃣ 第一次握手(你喊话)→
你:“喂,能听到吗?”(发送 SYN 包,携带初始序列号 seq=x)
状态:你进入 SYN_SENT(等待确认中)

2️⃣ 第二次握手(朋友回应)→
朋友:“能听到!你也能听到我吗?”(发送 SYN+ACK 包,ack=x+1 确认你的消息,并携带自己的序列号 seq=y)
状态:朋友进入 SYN_RCVD(等待你的最终确认)

3️⃣ 第三次握手(你确认)→
你:“当然能!”(发送 ACK 包,ack=y+1)
状态:双方进入 ESTABLISHED(连接成功,开始传数据)

为什么必须三次?

防“诈尸”连接:网络延迟可能让旧的连接请求突然到达服务器。三次握手能识别并拒绝“过期请求”。
同步序列号:确保双方数据顺序一致(比如防止聊天内容错乱)。

二、四次挥手:断开连接的“礼貌告别”

场景:结束通话时,如何确保双方都说完了?

过程:

1️⃣ 第一次挥手(你主动说再见)→
你:“我说完啦,拜拜!”(发送 FIN 包,进入 FIN_WAIT_1 状态)

2️⃣ 第二次挥手(朋友先回应)→
朋友:“好,我听到了!”(发送 ACK 包,进入 CLOSE_WAIT 状态)
此时:你停止发送数据,但朋友可能还有话要说。

3️⃣ 第三次挥手(朋友也说再见)→
朋友:“我也说完啦,拜拜!”(发送 FIN 包,进入 LAST_ACK 状态)

4️⃣ 第四次挥手(你最后确认)→
你:“收到,真的拜拜了!”(发送 ACK 包,进入 TIME_WAIT 状态,等待 2MSL 后关闭)

为什么必须四次?

全双工特性:TCP连接是双向通道,双方需独立关闭自己的“发送端”。
防“最后的话丢失”:TIME_WAIT 状态确保对方收到最终确认,避免服务器无限等待。

三、记忆口诀

三次握手:一喊(SYN)、二应(SYN+ACK)、三确认(ACK) → “确认眼神”。
四次挥手:一拜(FIN)、二应(ACK)、三回拜(FIN)、四确认(ACK) → “礼貌告别”。

四、趣味类比

三次握手:像两人初次见面握手,必须“伸手→握住→再握紧”才算正式认识。
四次挥手:像告别时,一人说“走了啊”,另一人点头;等对方也说“走了”,再挥手目送。

总结

三次握手防错乱,四次挥手保周全。
TCP用“仪式感”确保网络世界的可靠对话,就像生活中的礼貌交流一样!🚀


http://www.niftyadmin.cn/n/5864212.html

相关文章

深度学习入门:从零开始理解神经网络

欢迎来到深度学习的世界!如果你是初学者,可能会对这个领域感到既兴奋又有些迷茫。别担心,我会带你一步步走进这个充满魅力的领域。深度学习是人工智能领域的一个重要分支,它通过模拟人脑的神经网络结构来处理数据。深度学习的核心…

安全面试4

文章目录 给的源码是ThinkPHP框架的话,审计起来和没有使用框架的有什么不同,从流程上或者从关注的点上有什么不同框架代码审计的流程无框架代码审计的流程 反序列的时候,unserialize()反序列一个字符串的时候,对象会有一些魔术方法…

SpringBoot+Vue+微信小程序的猫咖小程序平台(程序+论文+讲解+安装+调试+售后)

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在当下这个高速发展的时代,网络科技正以令人惊叹的速度不断迭代更新。从 5G …

机器学习数学通关指南——微分中值定理和积分中值定理

前言 本文隶属于专栏《机器学习数学通关指南》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 1. 定义与核心结论 积分中值…

使用Docker部署SearXNG

SearXNG 搜索引擎 SearXNG 是一个整合了超过70个搜索服务结果的免费的私有互联网搜索引擎,用户不会被网站跟踪或被建立档案进行特征分析,良好地保障了用户的隐私。知识库可以有效地弥补大模型的知识欠缺问题,但依旧无法补充或弥补知识库和大…

250223-Linux/MacOS如何跳过Miniconda的条款阅读,直接安装Miniconda

你可以通过将 -b 参数传递给 Miniconda 的安装脚本,来跳过条款阅读并自动同意许可条款。这样安装会自动进行到下一步的选择项。下面是具体的安装命令: bash Miniconda3-latest-Linux-x86_64.sh -b这里的 -b 代表“批量模式”(batch mode&…

Https解决了Http的哪些问题

部分内容来源:小林coding 详细解析 Http的风险 HTTP 由于是明文传输,所以安全上存在以下三个风险: 1.窃听风险 比如通信链路上可以获取通信内容,用户号容易没。 2.篡改风险 比如强制植入垃圾广告,视觉污染&#…

【深度解析】Java接入DeepSeek大模型:从零实现流式对话+多轮会话管理(完整项目实战) —— SpringBoot整合、API安全封装、性能优化全攻略

一、DeepSeek接入全景图:不只是API调用 核心优势对比 特性DeepSeek其他主流模型免费Token额度500万/月通常10-100万响应延迟平均800ms1-3s流式响应兼容性原生支持需定制适配中文理解能力行业Top中等偏上 适用场景推荐 智能客服(实时反馈)…