TCP第四次挥手为什么要等待2MSL
2017-03-05 15:58
1496 查看
当客户端进入TIME-WAIT状态的时候(也就是第四次挥手的时候),必须经过时间计数器设置的时间2MSL(最长报文段寿命)后,才能进入关闭状态,这时为什么呢???
这最主要是因为两个理由:
1、为了保证客户端发送的最后一个ACK报文段能够到达服务器。因为这个ACK有可能丢失,从而导致处在LAST-ACK状态的服务器收不到对FIN-ACK的确认报文。服务器会超时重传这个FIN-ACK,接着客户端再重传一次确认,重新启动时间等待计时器。最后客户端和服务器都能正常的关闭。假设客户端不等待2MSL,而是在发送完ACK之后直接释放关闭,一但这个ACK丢失的话,服务器就无法正常的进入关闭连接状态。
2、他还可以防止已失效的报文段。客户端在发送最后一个ACK之后,再经过经过2MSL,就可以使本链接持续时间内所产生的所有报文段都从网络中消失。从保证在关闭连接后不会有还在网络中滞留的报文段去骚扰服务器。
注意:在服务器发送了FIN-ACK之后,会立即启动超时重传计时器。客户端在发送最后一个ACK之后会立即启动时间等待计时器。
这最主要是因为两个理由:
1、为了保证客户端发送的最后一个ACK报文段能够到达服务器。因为这个ACK有可能丢失,从而导致处在LAST-ACK状态的服务器收不到对FIN-ACK的确认报文。服务器会超时重传这个FIN-ACK,接着客户端再重传一次确认,重新启动时间等待计时器。最后客户端和服务器都能正常的关闭。假设客户端不等待2MSL,而是在发送完ACK之后直接释放关闭,一但这个ACK丢失的话,服务器就无法正常的进入关闭连接状态。
2、他还可以防止已失效的报文段。客户端在发送最后一个ACK之后,再经过经过2MSL,就可以使本链接持续时间内所产生的所有报文段都从网络中消失。从保证在关闭连接后不会有还在网络中滞留的报文段去骚扰服务器。
注意:在服务器发送了FIN-ACK之后,会立即启动超时重传计时器。客户端在发送最后一个ACK之后会立即启动时间等待计时器。
相关文章推荐
- TCP为什么要3次握手和4次挥手时等待2MSL
- 转:TCP为什么要3次握手和4次挥手时等待2MSL、 TCP如何保证消息顺序以及可靠性到达
- TCP为什么要3次握手和4次挥手时等待2MSL
- TCP四次挥手中,主动关闭方最后为什么要等待2MSL之后才能关闭连接?
- TCP四次挥手客户端关闭链接为什么要等待2倍MSL
- TCP释放连接时为什么time_wait状态必须等待2MSL时间(阅读笔记)?
- TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
- TCP的三次握手和四次挥手,以及两次握手为什么不行?
- TCP为什么需要3次握手与4次挥手
- TCP为什么要三次握手?为什么要有四次挥手的TIME_WAIT?
- TCP连接为什么三次握手和四次挥手
- Tcp为什么要三次握手四次挥手
- TCP的三次握手和四次挥手的过程?三次握手改成两次或者四次可以吗为什么?
- 【转】TCP为什么需要3次握手与4次挥手
- TCP为什么需要3次握手与4次挥手
- TCP为什么要进行三次握手四次挥手
- 25. 为什么客户端在TIME-WAIT状态必须等待2MSL的时间?
- TCP为什么需要3次握手与4次挥手
- 为什么TCP要三次握手和四次挥手?
- TCP为什么需要三次握手,又为什么需要4次挥手?