TCP 四次挥手:关闭连接

四次挥手的核心目的是确保双方都已完成数据传输,且所有数据都已被接收,避免数据丢失。
第一次挥手(客户端 → 服务器)客户端完成数据发送后,发送连接释放报文,包含FIN 标志位(请求关闭)和序列号(seq=u)。此时客户端进入 FIN_WAIT_1 状态,不再发送数据,但仍可接收数据。
第二次挥手(服务器 → 客户端)服务器收到 FIN 后,回复确认报文,包含ACK 标志位和确认号(ack=u+1)。此时服务器进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态,客户端仍可接收服务器剩余的数据。
第三次挥手(服务器 → 客户端)服务器完成所有数据发送后,也发送连接释放报文,包含FIN 标志位和ACK 标志位,以及序列号(seq=v)和确认号(ack=u+1)。此时服务器进入 LAST_ACK 状态。
第四次挥手(客户端 → 服务器)客户端收到 FIN 后,回复确认报文,包含ACK 标志位和确认号(ack=v+1)。此时客户端进入 TIME_WAIT 状态(等待 2MSL 时间,确保服务器收到确认),服务器收到后进入 CLOSED 状态。客户端等待结束后,也进入 CLOSED 状态,连接正式关闭。

posted @ 2025-11-17 10:01  李居豪  阅读(0)  评论(0)    收藏  举报