`
- 浏览:
41890 次
- 性别:
- 来自:
北京
-
FIN_WAIT TIME_WAIT and CLOSE_WAIT
使用netstat监测http连接状态的时候,可以看到几种WAIT:FIN_WAIT、TIME_WAIT和CLOSE_WAIT.它们的含义需要结合tcp的连接中断说明:
Server Client
--------FIN------>
<-------ACK-------
<-------FIN-------
--------ACK------>
如果是服务器端主动关闭连接(Active Close):
1.服务器端首先向客户端发送FIN包,然后服务器进入FIN_WAIT_1状态
2.客户机向服务器确认FIN包收到,向服务器端发送FIN/ACK,客户端进入Close_Wait状态。
3.服务器收到来自客户端的ACK之后,进入FIN_WAIT_2状态
4.现在客户端进入被动关闭(“passive close”)状态,客户端操作系统等待上边的应用程序关闭连接。一旦连接关闭,客户端会发送FIN包到服务器。
5.当服务器收到FIN之后,服务器会向客户端发送ACK确认,然后进入TIME_WAIT状态。
由于在连接关系之后,还不能确定所有连接关闭前的包都被服务器接收到了,所以有了TIME_WAIT状态,这个状态将保持2*MSL的时间,这里的MSL指的是一个TCP包在网络中的存在的最长时间。一般是2*MSL=240秒。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
对于服务器挂起中的CLOSE_WAIT & FIN_WAIT2 解决方案。
导致客户TCP发送一个FIN给服务器,服务器则以一个ACK响应,此时服务器处于CLOSE_WAIT状态,客户端处于FIN_WAIT_2状态。服务器接收到FIN,子进程中止。子进程中止内核关闭所有子进程打开的描述符导致服务器向客户端...
1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。 2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个...
tcp三次握手四次挥手 TCP(传输控制协议)的三次握手和四次挥手是用于建立连接和释放连接的重要过程。 三次握手的过程如下: ...此时,服务器进入CLOSE_WAIT状态,而客户端进入FIN_WAIT_2状态。 3. 服务器在处理完
(2)另一方先关闭:ESTABLISHED CLOSE_WAIT LAST_ACK CLOSE (3)双方同时关闭:ESTABLISHED FIN_WAIT1
m_PortList.SetItemText(i,2,"FIN-WAIT-1"); break; case MIB_TCP_STATE_FIN_WAIT2: m_PortList.SetItemText(i,2,"FIN-WAIT-2"); break; case MIB_TCP_STATE_CLOSE_WAIT: m_PortList...
print $1, $2, $3, "TIME_WAIT", $5, $6, $7, $8, $9; else if($5=="07") print $1, $2, $3, "CLOSE", $5, $6, $7, $8, $9; else if($5=="08") print $1, $2, $3, "CLOSE_WAIT", $5, $6, $7, $8, $9; else if...
2. `TIME_WAIT`:谁主动发起FIN,谁就进入该状态。起到的效果就是最后一次ACK提供重传的机会。表面看起来A发送ACK之后就没有A的事情了,按理来说A应该销毁释放资源。但是并没有直接释放而是进入`TIMT_WAIT`状态。该...
leetcode 所有报错 FAQ 如何进行code review 代码局部性 边界条件是否判断 资源使用鲁棒性提高经验 ...状态码301,302作用 ...用户已经移动的文件并且常被包含在头信息中...FIN_WAIT_1 server 发送 ACK=4001 进入 CLOSE_WAI
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...
18.6.3 FIN_WAIT_2状态 186 18.7 复位报文段 186 18.7.1 到不存在的端口的连接请求 187 18.7.2 异常终止一个连接 187 18.7.3 检测半打开连接 188 18.8 同时打开 189 18.9 同时关闭 191 18.10 TCP选项 191 18.11 TCP...
4.2 客户的端口号和TIME_WAIT状态 43 4.3 设置TIME_WAIT状态的目的 45 4.4 TIME_WAIT状态的截断 48 4.5 利用TAO跳过三次握手 51 4.6 小结 55 第5章 T/TCP协议的实现:插口层 56 5.1 概述 56 5.2 常量 56 5.3 sosend...