TCP(传输控制协议)使用四次挥手(Four-Way Handshake)来优雅地终止连接。以下是详细过程:
1. 第一次挥手:客户端发送FIN
- 动作:客户端向服务器发送FIN(Finish)报文,表示不再发送数据。
- 状态变化:
- 客户端从
ESTABLISHED进入FIN_WAIT_1。
- 客户端从
- 目的:通知服务器客户端已完成数据发送,准备关闭连接。
2. 第二次挥手:服务器发送ACK
- 动作:服务器收到FIN后,发送ACK(Acknowledgment)报文确认。
- 状态变化:
- 服务器从
ESTABLISHED进入CLOSE_WAIT。 - 客户端从
FIN_WAIT_1进入FIN_WAIT_2。
- 服务器从
- 目的:服务器确认收到FIN,但可能还有数据要发送。
3. 第三次挥手:服务器发送FIN
- 动作:服务器完成数据发送后,向客户端发送FIN报文。
- 状态变化:
- 服务器从
CLOSE_WAIT进入LAST_ACK。
- 服务器从
- 目的:通知客户端服务器也准备关闭连接。
4. 第四次挥手:客户端发送ACK
- 动作:客户端收到FIN后,发送ACK报文确认。
- 状态变化:
- 客户端从
FIN_WAIT_2进入TIME_WAIT,等待2MSL(最大报文段生存时间)后关闭。 - 服务器收到ACK后,从
LAST_ACK进入CLOSED状态。
- 客户端从
- 目的:客户端确认服务器的FIN,确保双方都完成关闭。
总结
- 客户端:发送FIN → 收到ACK → 收到FIN → 发送ACK → 等待2MSL后关闭。
- 服务器:收到FIN → 发送ACK → 发送FIN → 收到ACK → 关闭连接。
四次挥手确保双方都能安全、有序地终止连接。
3万+

被折叠的 条评论
为什么被折叠?



