TCP的TIME_WAIT状态
2018-02-20 00:17
190 查看
TIME—WAIT:
存在的理由:1、可靠的实现TCP全双工连接的终止
2、允许老的重读分节在网络中消失
第一个理由:(最终的ACK丢失)主动关闭socket的一端最终的ACK丢失,则服务器将重新发送它的最终FIN,
因此客户端必须维护状态信息,以允许它重新发送最终的ACK。
如果TCP打算彻底终止某个连接上的两个方向的数据流(全双工关闭),那么它必须正确出列连接终止序列4个分节的任何一个分节丢失的情况,
(主动关闭的那一端是处于TIME_WAIT状态:因为可能不得不重传最终那个ACK的那一端)mmmmmmmmmmmmmmmm
第二个理由:为了保证每成功建立一个TCP连接时,来自该连接先前化身的老的重复分组都已经在网络中消失了。
(先关闭连接,在相同的IP和端口下,过一段时间再建立一个新连接,新连接为前一个连接的化身,
TCP必须防止来自某个连接的老的重复分组在该连接已终止后在现,从而被误解成属于同一连接的某个新的化身,,TCP将不给处于TIME——WAIT状态的连接发起新的化身,TIME——WAIT持续的时间是MSL的2倍
维基百科
TIME-WAIT S/C
主动关闭端接收到FIN后,就发送ACK包,等待足够时间以确保被动关闭端收到了终止请求的确认包。
首先发出FIN的一侧,如果给对侧的FIN响应了ACK,那么就会超时等待2*MSL时间,然后关闭连接。在这段超时等待时间内,本地的端口不能被新连接使用;避免延时的包的到达与随后的新连接相混淆。
相关文章推荐
- TCP可靠传输及流量控制系列六:TCP连接中的TIME_WAIT状态
- 唯快不破:TCP/IP详解--TCP连接中TIME_WAIT状态过多
- TCP/IP详解--TCP连接中TIME_WAIT状态过多
- TCP 连接关闭的 TIME_WAIT (2MSL) 状态,及 TCP 连接状态图
- TCP连接状态详解及TIME_WAIT过多的解决方法
- TCP之TIME_WAIT状态原理
- TCP的状态,兼谈Close_Wait和Time_Wait的状态 (keepalive机制)
- TCP协议的TIME_WAIT状态详解
- TCP TIME_WAIT状态
- 一个解除TCP连接的TIME_WAIT状态限制的简便方法
- 强制使用处于TIME_WAIT的TCP状态的socket地址
- 传输层(2)-TCP连接的建立和终止、TIME_WAIT状态
- TCP/IP中的TIME_WAIT状态
- 网络编程释疑之:TCP的TIME_WAIT状态在服务器开发中的影响?
- TCP/IP TIME_WAIT状态原理
- 为什么建立TCP连接需要三次握手,为什么断开TCP连接需要四次握手,TIME_WAIT状态的意义
- 一个解除TCP连接的TIME_WAIT状态限制的简便方法
- TCP连接中的TIME_WAIT状态
- 一个解除TCP连接的TIME_WAIT状态限制的简便方法
- 通讯系统经验谈【一】TCP连接状态分析:SYNC_RECV,CLOSE_WAIT,TIME_WAIT