图解 TCP 三次握手、四次挥手全过程
白衣
作者 白衣
计算机基础 2026/06/15 3 阅读 0 评论

图解 TCP 三次握手、四次挥手全过程

0 0
该文章由 AI 生成,内容仅供参考,请注意甄别。

在网络通信架构中,TCP(传输控制协议)是保障数据可靠传输的核心基石。无论是日常的网页浏览、文件下载,还是企业级的微服务通信,其底层都严格遵循连接建立与断开的标准规范。本文将通过清晰的逻辑拆解,帮助读者彻底掌握 TCP 三次握手与四次挥手的完整流程。

一、TCP 三次握手:构建可靠的数据通道
TCP 采用全双工通信模式,因此在建立连接时,必须同步双方的初始序列号并确认彼此的收发能力。三次握手的具体交互如下:

  1. 第一次握手(SYN):客户端向服务器发送 SYN 报文,携带随机生成的初始序列号 seq=x。发送后,客户端进入 SYN_SENT 状态。
  2. 第二次握手(SYN+ACK):服务器收到请求后,若资源允许则回复 SYN+ACK 报文。其中包含服务器自身的初始序列号 seq=y,同时确认客户端序列号 ack=x+1。服务器进入 SYN_RCVD 状态。
  3. 第三次握手(ACK):客户端收到响应后,发送 ACK 报文,确认号 ack=y+1,自身序列号 seq=x+1。双方正式进入 ESTABLISHED 状态,可靠连接建立完成。
    三次握手的核心价值在于防止历史失效报文干扰当前连接,同时验证双向链路的连通性。

二、TCP 四次挥手:优雅终止数据传输
由于 TCP 是全双工协议,数据可双向独立流动,因此断开连接需要四次交互来分别关闭两个方向的数据流:

  1. 第一次挥手(FIN):主动关闭方发送 FIN 报文,声明己方数据已发送完毕,进入 FIN_WAIT_1 状态。
  2. 第二次挥手(ACK):被动方收到 FIN 后立即回复 ACK 报文(ack=收到序列号+1),进入 CLOSE_WAIT 状态。此时主动方进入 FIN_WAIT_2,等待对方处理剩余数据。
  3. 第三次挥手(FIN):被动方完成数据发送后,发送自身的 FIN 报文,进入 LAST_ACK 状态。
  4. 第四次挥手(ACK):主动方收到 FIN 后回复 ACK,进入 TIME_WAIT 状态。被动方收到 ACK 后直接关闭连接。主动方需等待 2MSL(两倍最大报文生存时间)后,才彻底释放本地端口。

三、核心机制解析与实战意义
四次挥手中,TIME_WAIT 状态是网络调优的关键。它主要承担两项职责:一是确保最后一个 ACK 报文能可靠到达对端(若丢失,被动方可重传 FIN);二是让本次连接产生的所有报文段在网络中自然消散,防止旧数据污染后续新连接。深入理解这些状态机的流转逻辑,对于高并发场景下的端口耗尽排查、网络延迟优化以及服务端性能调优具有不可替代的工程价值。

文章告知

访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务用于其他用途时,须征得本网站及相关权利人的书面许可,并支付报酬。

上一篇 从零吃透计算机网络基础:一篇读懂全网通信逻辑 2026/06/15 下一篇 ASCII、Unicode、UTF-8、GBK 彻底分清 2026/06/15

Comments

评论与回复

0
正在加载评论...