标签 Java面试题 下的文章

TCP 四次挥手过程中,为什么需要等待 2MSL, 才进入 CLOSED 关闭状态?为什么需要等待?为了确保客户端发送的最后一个ACK报文段能够到达服务端,因为这个ACK报文段有可能会丢失,导致处于LAST-ACK状态的服务端无法收到对已发送的FIN+ACK报文段的确认。在这种情况下,服务端会超时重传该FIN+ACK报文段,而客户端能够在2MSL的时间内(超时 + 1MSL传输)接收到这个重传的FIN+ACK报文段。然后,客户端会重传一次确认,重新启动2MSL计时器。最终,客户端和服务器都能够正常进入CLOSED状态。

- 阅读剩余部分 -