四次挥手是指 TCP 连接的关闭过程,包括以下步骤:
1. 主动关闭方发送 FIN 报文给被动关闭方,进入 FIN_WAIT_1 状态。
2. 被动关闭方收到 FIN 报文后,发送 ACK 报文作为确认,进入 CLOSE_WAIT 状态。
3. 被动关闭方发送自己的 FIN 报文给主动关闭方,进入 LAST_ACK 状态。
4. 主动关闭方收到 FIN 报文后,发送 ACK 报文作为确认,进入 TIME_WAIT 状态。在这个状态下,主动关闭方等待 2MSL(Maximum Segment Lifetime) 的时间,确保最后一个 ACK 报文已经到达对端,防止对端没有收到 ACK 报文导致重传。
TIME_WAIT 状态的存在是为了确保在网络中已经传输完成的最后一个 ACK 报文不会丢失,同时也为了防止之前的报文再次出现在网络中而引发混乱。通过等待一段时间(2MSL),可以确保之前的连接状态已经清除,使得新的连接不会受到影响。