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

三次握手,四次挥手

三次握手--确保信息传输的可靠性
第一次握手(客户端 → 服务器)客户端发送 SYN(同步)报文,携带初始序列号 seq = x,请求建立连接。此时客户端状态:SYN_SENT。
第二次握手(服务器 → 客户端)服务器收到 SYN 后,回复 SYN + ACK(同步 + 确认)报文:
第三次握手(客户端 → 服务器)客户端收到 SYN + ACK 后,发送 ACK(确认)报文:
为什么需要三次?
一次握手:服务器无法确认客户端是否能收到自己的响应,不可靠。
两次握手:客户端无法确认服务器是否收到自己的确认,可能导致服务器资源浪费(如客户端因网络问题未收到服务器的 SYN+ACK,但服务器已准备好连接)。
三次握手:双方均确认 “对方能收能发”,确保连接可靠。

四次挥手(关闭 TCP 连接)
TCP 连接是全双工的(双方可同时收发数据),关闭连接时需双方方向分别释放,因此需要四次挥手。
过程:
第一次挥手(主动关闭方 → 被动关闭方)假设客户端主动关闭,发送 FIN(结束)报文,序列号 seq = u,表示不再发送数据。客户端状态:FIN_WAIT_1。
第二次挥手(被动关闭方 → 主动关闭方)服务器收到 FIN 后,回复 ACK 报文,确认序列号 ack = u + 1,自身序列号 seq = v。此时服务器可能还有数据要发送,状态变为 CLOSE_WAIT;客户端收到后进入 FIN_WAIT_2,等待服务器的剩余数据。
第三次挥手(被动关闭方 → 主动关闭方)服务器发送完所有数据后,发送 FIN 报文,序列号 seq = w(基于之前的 v 递增),表示自己也不再发送数据。服务器状态:LAST_ACK。
第四次挥手(主动关闭方 → 被动关闭方)客户端收到 FIN 后,回复 ACK 报文,确认序列号 ack = w + 1,自身序列号 seq = u + 1。客户端状态:TIME_WAIT(等待 2MSL 时间,确保服务器收到确认,防止残留报文影响新连接);服务器收到后进入 CLOSED 状态。客户端等待超时后也进入 CLOSED,连接彻底关闭。
为什么需要四次?
第二次挥手仅确认 “收到关闭请求”,但被动关闭方可能还有数据未发送,无法立即发送 FIN,因此需分两次(ACK 和 FIN)。
三次握手时 SYN + ACK 可合并,是因为服务器在建立连接时无需等待额外数据;而关闭时需先确认再发完剩余数据,因此无法合并。

三次握手:通过三次交互确认双方收发能力,建立可靠连接。
四次挥手:因全双工特性,双方需分别确认关闭,确保数据传输完毕。

http://www.gsyq.cn/news/39222.html

相关文章:

  • haproxy minio http check 问题
  • 【GitHub每日速递 20251104】Tauri框架:构建跨平台极速桌面应用的神器!
  • 2025年公司股权律师推荐:高性价比解决方案全解析
  • 2025年公司股权律师推荐:权威榜单与选择指南
  • 2025.11.4——1黄
  • PHP 现代特性速查 写出更简洁安全的代码(第一篇)
  • 前小米高管创业,融资近2亿元,要做AI影像消费硬件丨智能涌现独家
  • AI元人文:核心工作路径(共三篇)
  • Java代码开发规范(基于Claude Code与Google Java Style Guide)
  • 读浪潮将至05更广泛的浪潮
  • [openwrt] openwrt换成清华源后,SSL verify error: unknown error
  • [OpenWRT/LEDE] a short history of OpenWRT
  • 生成式模型分类
  • 2025年11月学生平板品牌对比榜:新课标适配与错题管理实力榜
  • 2025年11月学生平板品牌评测:读书郎T5系列与四款竞品实力排行
  • 2025年11月适合小学生的学习机品牌推荐:热门机型排行与实测
  • 2025年11月卖得好的学习机品牌推荐:市场榜五强评测
  • AI元人文:价值权衡的计算理论与共识涌现新范式
  • 2025年北京股权纠纷律师事务所权威推荐榜:股权转让/股东争议/公司控制权纠纷专业律师团队精选
  • 2025年北京遗产继承律师事务所权威推荐榜:专业遗嘱继承、房产继承、涉外继承法律服务团队深度解析
  • 2025年北京婚姻家事律师事务所权威推荐榜:专业离婚诉讼、财产分割、子女抚养法律服务机构精选
  • 【AI说Rust 02】如何在 windows11 系统搭建 Rust 开发环境
  • 2025年11月优质太空舱铝板供应商排名:工厂实力与用户评价深度解析
  • 2025年11月太空舱铝板供应商排名:专业对比与实地考察报告
  • 接口实现C#泛型四则运算
  • [Flink/Hologres/汽车] 骋在数据洪流上:Flink+Hologres驱动零跑科技实时计算的应用与实践 [转]
  • 读《Python神经网络编程(异步图书) 塔里克拉希德》有感
  • 【CI130x 离在线】Python使用import opuslib 报错解决方案
  • 蒟蒻的S游记碎碎念
  • 【python刷题记录】移动零-双指针-简单