TCP四次挥手详解:为什么需要四次挥手?

引言 在上一篇文章中,我们理解了TCP如何通过三次握手建立连接。今天我们来学习TCP如何断开连接:四次挥手(Four-Way Handshake)。 为什么需要四次挥手? TCP是全双工通信(双方可以同时发送和接收数据) 断开连接时,双方都要关闭自己的发送通道 一方关闭发送,不代表另一方也要立即关闭 今天我们来理解: ✅ 四次挥手的完整流程 ✅ 为什么需要四次挥手而不是三次? ✅ TIME_WAIT状态为什么要等待2MSL? ✅ CLOSE_WAIT问题的排查与解决 ✅ 连接泄漏的定位方法 四次挥手的完整流程 流程图解 客户端 (Client) 服务器 (Server) | ESTABLISHED | ESTABLISHED | | | [第一次挥手] FIN=1, seq=101 | | 主动关闭 | |----------------------------------->| | FIN_WAIT_1 | 收到FIN | | CLOSE_WAIT(被动关闭) | | | [第二次挥手] ACK=1, ack=102 | |<-----------------------------------| | FIN_WAIT_2 | CLOSE_WAIT | 等待服务器关闭 | (可能继续发送数据) | | | | 应用程序调用close() | [第三次挥手] FIN=1, seq=201 | |<-----------------------------------| | 收到FIN | LAST_ACK | TIME_WAIT | | | | [第四次挥手] ACK=1, ack=202 | |----------------------------------->| | TIME_WAIT(等待2MSL) | 收到ACK | | CLOSED | 2MSL后 | | CLOSED | 详细步骤 第一次挥手:客户端发起关闭 客户端 → 服务器 ...

2025-11-20 · maneng

如约数科科技工作室

浙ICP备2025203501号

👀 本站总访问量 ...| 👤 访客数 ...| 📅 今日访问 ...