在 TCP/IP 协议当中,我们创建连接与终止连接的时候会涉及到内部状态的转换,其中有个全图很乱看不懂,就用下面简化的图来部分学习下内部状态的转换过程。 创建连接详细的说明如下
断开连接详细的说明如下
一些概念的解释
TIME_WAIT 存在的必要,以及等待时间为什么是 2倍的 MSL ? 举个例子:主动关闭的一方收到被动关闭的一方发出的FIN包后,回应ACK包,同时进入TIME_WAIT状态,但是因为网络原因,主动关闭的一 方发送的这个ACK包很可能延迟,从而触发被动连接一方重传FIN包。极端情况下,这一去一回,就是两倍的MSL时长。如果主动关闭的一方跳过 TIME_WAIT直接进入CLOSED,或者在TIME_WAIT停留的时长不足两倍的MSL,那么当被动关闭的一方早先发出的延迟包到达后,就可能出 现类似下面的问题:
不管是哪种情况都会让TCP不再可靠,所以TIME_WAIT状态有存在的必要性。 【参考资料】
—EOF— |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|