`
SaraWon
  • 浏览: 43494 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

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秒。
分享到:
评论

相关推荐

    TCP状态迁移,CLOSE_WAIT & FIN_WAIT2 的问题解决

    在 TCP 连接中,客户端和服务器端都可以处于不同的状态,例如 ESTABLISHED、CLOSE_WAIT、FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT 等 trạng thái。 CLOSE_WAIT 状态是 TCP 连接中的一种状态,它表示服务器端已经收到了...

    CLOSE_WAIT网络连接无法释放问题解决

    在客户端主动断开连接时,客户端会发送FIN包给服务器端,服务器端则会响应ACK包,并进入CLOSE_WAIT状态。但是,如果服务器端没有正确关闭连接,那么连接将保持CLOSE_WAIT状态,而客户端则会等待服务器端的响应。 ...

    close_wait_0306 close_wait_0306 close_wait_0306 close_wait_0306

    文件"close_wait_0306.chm"和"close_wait_0306"可能是关于这个问题的文档或日志文件,它们可能包含了更详细的错误信息、堆栈跟踪或连接状态的历史记录。CHM文件是Microsoft的帮助文件格式,通常包含软件的文档或技术...

    CLOSE_WAIT错误详解

    理论上,服务器应该尽快发送自己的FIN标志来回应客户端的关闭请求,但如果没有及时这样做,就可能导致CLOSE_WAIT状态持续过久,从而引发问题。 **CLOSE_WAIT错误的原因** 1. **代码实现不当**:服务器端的程序逻辑...

    tcp连接出现close_wait状态?_tcp_close_

    TCP连接有多种状态,包括LISTEN、SYN_SENT、SYN_RECEIVED、ESTABLISHED、CLOSE_WAIT、FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT等。每个状态都代表了连接的不同生命周期阶段。Close_Wait是服务器端接收到客户端的FIN( ...

    系统调优,你所不知道的TIME_WAIT和CLOSE_WAIT1

    CLOSE_WAIT状态发生在被动关闭连接的一方,即接收到对方的FIN包后,表示它已经收到了对方关闭连接的请求,但还需要等待自己这边的应用程序调用close来彻底关闭连接。大量CLOSE_WAIT状态可能意味着应用程序存在错误,...

    Close_Wait问题相关资料

    当服务器接收到客户端的FIN(结束)标志,它会进入Close_Wait状态,表示服务器已经接收到了客户端想要关闭连接的请求,但服务器自己还有数据需要发送。这个问题在高并发服务器或长时间运行的服务中尤为常见,可能会...

    四次挥手中收到乱序的FIN包如何处理542 - 557

    客户端和服务器之间的 TCP 连接,在关闭连接时,需要经历四个阶段:FIN_WAIT_1、CLOSE_WAIT、FIN_WAIT_2 和 TIME_WAIT。其中,FIN_WAIT_2 状态是指客户端已经发送了 FIN 报文,并等待服务器的确认响应。 现在,假设...

    Netstat命令详解如何关闭TIME_WAIT连接如何查看nginx的访问流量[归类].pdf

    5. FIN_WAIT1:主动关闭(active close)端应用程序调用 close,于是其 TCP发出 FIN 请求主动关闭连接,之后进入 FIN_WAIT1 状态。 6. CLOSE_WAIT:被动关闭(passive close)端 TCP 接到 FIN。 7. FIN_WAIT2:主动...

    TCP_SYNC基础

    客户端:CLOSED -&gt; FIN_WAIT_1 -&gt; FIN_WAIT_2 -&gt; TIME_WAIT -&gt; CLOSED 服务器:CLOSED -&gt; LISTEN -&gt; ESTABLISHED -&gt; CLOSE_WAIT -&gt; LAST_ACK -&gt; CLOSED TIME_WAIT 状态 TIME_WAIT 状态是一个非常重要的状态,它的...

    tcp连接状态详解 描述了tcp协议常用的命令

    它可以由多个状态转移到达,包括 FIN_WAIT_2、CLOSING 和 FIN_WAIT_1 状态。TIME_WAIT 状态的存在是为了确保 TCP 连接的可靠终止和允许老的重复分节在网络中消逝。 了解 TCP 连接状态是非常重要的,因为它可以帮助...

    tcp状态解析和windowsio说明

    主动关闭可能会经过FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT状态,而被动关闭则经历CLOSE_WAIT、LAST_ACK状态。在处理TIME_WAIT状态时,需要注意避免端口冲突,可以使用SO_REUSEADDR选项来允许立即重用套接字地址,或者...

    TCP状态转换 作者文章电子版 需要的下载

    12. **FIN_WAIT_1** 和 **FIN_WAIT_2** 的状态转换可能有两种情况:一是直接进入TIME_WAIT,另一是先经过CLOSING再进入TIME_WAIT。 13. **FIN** 和 **ACK** 的交互在关闭连接的过程中非常重要,它们确保双方都正确...

    tomcat-timewait-closewait.zip

    标题 "tomcat-timewait-closewait.zip" 暗示了这个压缩包可能包含与Tomcat服务器在处理TCP连接时遇到的“Time_wait”和“Close_wait”状态相关的问题和解决方案。这两个术语是TCP/IP协议栈中的关键概念,尤其在高...

    TCP状态转换图1

    1. **FIN_WAIT_1**: 主动关闭方(可能是客户端或服务器)发送FIN,等待对方的ACK,进入FIN_WAIT_1状态。 2. **CLOSE_WAIT**: 被动关闭方接收到FIN,发送ACK,进入CLOSE_WAIT状态,等待应用层通知关闭连接。 3. **FIN...

    c++《网络编程》服务器

    导致客户TCP发送一个FIN给服务器,服务器则以一个ACK响应,此时服务器处于CLOSE_WAIT状态,客户端处于FIN_WAIT_2状态。服务器接收到FIN,子进程中止。子进程中止内核关闭所有子进程打开的描述符导致服务器向客户端...

    剖析TCP连接的状态变迁图

    - **FIN_WAIT_2**:收到对方的ACK后,进入FIN_WAIT_2状态,等待对方的FIN报文,表示对方也同意关闭连接。 - **TIME_WAIT**:收到对方的FIN报文并发送ACK后,进入TIME_WAIT状态,等待2MSL(Maximum Segment Life...

Global site tag (gtag.js) - Google Analytics