原文:TCP四次挥手为何需要TIME_WAIT以及为何是2MSL?

根据第三版 UNIX网络编程 卷 . 节,TIME WAIT状态的主要目的有两个: 优雅的关闭TCP连接,也就是尽量保证被动关闭的一端收到它自己发出去的FIN报文的ACK确认报文 处理延迟的重复报文,这主要是为了避免前后两个使用相同四元组的连接中的前一个连接的报文干扰后一个连接。 很明显,要实现上述两个目标,TIME WAIT状态需要持续一段时间,但这段时间应该是多长呢 如果只考虑上述第一个目标, ...

2020-03-13 17:31 0 1004 推荐指数:

查看详情

TCP time_wait为什么持续2MSL

time_wait timewait先发起close的一端的第二阶段: a fin b,b ack a,b fin a 此时a收到b的fin之后,a处于time_wait,a无法确定自己接下来的ack of fin是否被b收到,所以time_wait还是会持续一段时间。接着可能发生两件事 ...

Thu Apr 11 23:05:00 CST 2019 0 806
tcp四次挥手为什么要等待2MSL

  之前所说了解有两个原因:   1、防止客户端最后一发给服务器的确认在网络中丢失以至于客户端关闭,而服务端并未关闭,导致资源的浪费。   2、等待最大的2msl可以让本次连接的所有的网络包在链路上消失,以防造成不必要的干扰。   但对于第二条造成不必要的干扰之前没有做过多的解读,今天在 ...

Sun Aug 04 07:39:00 CST 2019 0 1406
为什么四次挥手等待2MSL

一、防止第四次挥手的报文段丢失,服务器端无法正常关闭。如果第四次挥手丢失,服务器端会重新发送第三挥手的报文,请求断开连接。 二、2MSL时间可以保证本次连接所有报文失效失效,防止“已失效的连接请求报文段”出现在本连接中,避免被服务器端认为是一个新的连接请求。 ...

Fri Sep 20 05:33:00 CST 2019 0 681
为什么TCPTIME_WAIT状态要维持2MSL

本文主要分析为什么TIME_WAIT状态的持续时间是2MSL而不是1MSL,3MSL或其它的时长,而不会详细描述为什么需要TIME_WAIT状态。 阅读本文需要的预备知识: 了解TCP协议的状态变迁; 了解TCP拆链的四次挥手过程; 了解为什么需要TIME_WAIT状态 ...

Tue Jul 14 18:11:00 CST 2020 0 756
为什么tcpTIME_WAIT状态要维持2MSL

本文主要分析为什么TIME_WAIT状态的持续时间是2MSL而不是1MSL,3MSL或其它的时长,而不会详细描述为什么需要TIME_WAIT状态。 阅读本文需要的预备知识: 了解TCP协议的状态变迁; 了解TCP拆链的四次挥手过程; 了解为什么需要TIME_WAIT状态 ...

Wed Jun 05 01:02:00 CST 2019 2 1798
TCP连接和TCP四次挥手及大量TIME_WAIT解决方法:

1.TCP建立连接,三 建立的TCP连接可靠的连接,必须经过三建立连接才能正式通信彼此传输数数据。 客户端请求服务端建立连接 第一:客户给服务发送一个请求报文SYN, 客户端的状态置SYN_SENT状态 第二:服务端在收到客户端发过来的SYN请求报文后 ...

Wed May 11 21:05:00 CST 2016 0 4625
tcp四次挥手,短连接time_wait问题(附有案例分析)

1.TCP图: 2.TCP四次挥手图: ①第一:主机1(可以使客户端,也可以是服务器端),设置Seqr和Ack,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了; ②第二:主机2收到 ...

Thu Nov 08 01:09:00 CST 2018 0 1142
什么是2MSL以及TIME_WAIT的作用

TIME_WAIT主要是用来解决以下几个问题: 1)上面解释为什么主动关闭方需要进入TIME_WAIT状态中提到的: 主动关闭方需要进入TIME_WAIT以便能够重发丢掉的被动关闭方FIN包的ACK。如果主动关闭方不进入TIME_WAIT,那么在主动关闭方对被动关闭方FIN包的ACK丢失 ...

Wed Nov 21 18:34:00 CST 2018 0 3477
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM