当前位置: 首页 > article >正文

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

🌟 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.kler.cn/a/556090.html

相关文章:

  • DeepSeek 助力 Vue 开发:打造丝滑的缩略图列表(Thumbnail List)
  • 【数据库系统概论】第6章 (三)数据依赖的公理系统
  • 深度解析应用层协议-----HTTP与MQTT(涵盖Paho库)
  • 【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记
  • Linux----线程
  • SpringBoot核心框架之AOP详解
  • 拆解微软CEO纳德拉战略蓝图:AI、量子计算、游戏革命如何改写未来规则!
  • 【WRF模拟】全过程总结:更换不同研究时段改动总结
  • 宝塔mysql8.0设置数据库区分大小写
  • 宝塔怎么搭建LiveHelperChat?PHP开源在线客服安装教程
  • Lua C API :lua_insert 函数详解
  • WPS携手DeepSeek:开启智能办公新时代
  • Linux基础开发工具的使用(apt、vim、gcc、g++、gdb、make、makefile)
  • 计算机网络面试知识点总结
  • 开源免费文档翻译工具 可支持pdf、word、excel、ppt
  • java练习(36)
  • Qt中使用QPdfWriter类结合QPainter类绘制并输出PDF文件
  • 15增减字符串匹配(贪心)思路解析+源码
  • WPS接入deepseek-OfficeAI助手插件下载
  • 武汉火影数字|VR沉浸式空间制作 VR大空间打造