问题标签 [time-wait]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
636 浏览

sockets - 当 FIN-WAIT-2 时间用完时,主动关闭器会进入什么状态?

当 FIN_WAIT2 时间用完且最后一个 FIN 不是来自另一端时,活动更接近的下一个状态是什么?TIME-WAIT还是CLOSED

我们知道在linux系统中,FIN-WAIT-2可以在文件/proc/sys/net/ipv4/tcp_fin_timeout中设置:man tcp(7)

  • tcp_fin_timeout (integer; default: 60; since Linux 2.2)

    这指定在强制关闭套接字之前等待最终 FIN 数据包的秒数。这严格违反了 TCP 规范,但需要防止拒绝服务攻击。在 Linux 2.2 中,默认值为 180。

  • TCP_LINGER2(从 Linux 2.4 开始)

    孤立的 FIN_WAIT2 状态套接字的生命周期。此选项可用于覆盖文件 /proc/sys/net/ipv4/tcp_fin_timeout 中此套接字的系统范围设置。不要与 socket(7) 级别的选项 SO_LINGER 混淆。此选项不应在旨在可移植的代码中使用。

我不太确定这个 TCP 套接字在FIN_WAIT2时间用完后会进入的状态,被强制关闭,转移到CLOSED?还是直接跳入TIME-WAIT状态?

我做了一个测试:

1:回声 3 > /proc/sys/net/ipv4/tcp_fin_timeout

2 : 对 linux 上运行的 tomcat 进行基准测试

原来很多TIME-WAIT出现在netstat堆积中,是不是说FIN_WAIT2时间用完后,socket就跳进了TIME-WAIT

还有一个问题:我改变了这个: echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse正如其他人所说:“重用套接字”,并保留tcp_fin_timeout:3。但什么都没有改变, TIME-WAIT只是在积累。与状态中的套接字tcp_tw_reuse无关,套接字不能重复使用吗?TIME-WAITTIME-WAIT

似乎echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle可以减少TIME-WAIT计数,并将其保持在较低水平,而不必理会负载平衡问题。

0 投票
1 回答
1620 浏览

linux - 未创建 TCP 侦听套接字

我正在开发一个 Qt 应用程序并遇到相当奇怪的网络问题。让我从最终用户的角度展示它的外观。

首先,我启动我的服务器并验证它是否正在侦听目标端口:

然后我用 telnet 连接到服务器:

Netstat 显示现在已建立连接。到目前为止没有什么特别的:

然后服务器根据特定于应用程序的超时断开连接。目前设置为 10 秒:

然后我关闭服务器并验证监听套接字是否被破坏:

最后我再次启动服务器,但监听端口不再显示:

结果客户端无法连接到服务器:

我在这里做错了什么?我倾向于认为这是一个配置问题,而不是应用程序中的错误。这种情况似乎适用于我笔记本电脑的 Ubuntu。上述输出也是在 linux box 上产生的。

更新:这两个环境中的另一件事是 qt 版本。在我的笔记本上我有 4.8.6,在 linux 机器上它是 4.6.2。不确定是否重要。

0 投票
1 回答
4338 浏览

sockets - Zabbix 代理窗口 TIME_WAIT 套接字

我对 Zabbix windows 代理有一个大问题。

代理有很多处于 time_wait 状态的套接字:

为什么代理会打开所有这些套接字?

有没有办法关闭这个套接字?

我有很多监控项目,可能是这个问题吗?间隔时间约为10分钟。

谢谢您的任何帮助

0 投票
1 回答
517 浏览

c# - 在接受客户端连接 TCPLISTENER 之前等待特定时间

我想在服务器接受客户端连接之前等待 10 秒,我一直在网上寻找,但我没有找到一个例子,

这是我写的代码,有没有人可以提供解决方案,非常感谢:

0 投票
0 回答
204 浏览

apache - Apache - 如何测试 tcp_tw_reuse 效果?

我正在为一个端口不足的 Apache 服务器而苦苦挣扎。我相信我的问题是处于 TIME_WAIT 状态的连接。我试过 net.ipv4.tcp_fin_timeout=40 和 net.ipv4.tcp_tw_reuse=1。在生产环境启用此功能之前,如何测试 net.ipv4.tcp_tw_reuse 的效果?有什么提示吗?

0 投票
1 回答
3337 浏览

node.js - 具有太多 time_wait 的节点应用程序

与 http.Agent.maxSockets 和服务器上创建的套接字数量有什么关系吗?

我使用 http.Agent() 将 maxSockets 设置为 30,但仍然有很多 TIME_WAIT 信号。好像超过30。

是不是不可能通过http.Agent()来控制socket数?如何减少 TIME_WAIT 的数量?

0 投票
1 回答
14220 浏览

python - 等到网页在 Scrapy 中加载

我正在使用scrapy脚本使用“yield”加载URL。

该 URL 似乎至少需要 5 秒才能加载。所以我希望 Scrapy 等待一段时间来加载 item['Description'] 中的整个文本。我在 settings.py 中尝试了“DOWNLOAD_DELAY”,但没有用。

0 投票
1 回答
801 浏览

java - 在 JAVA 中如何连接并等待端口完成 TIME_WAIT

我在代码中有一部分检查端口可用性(打开连接并立即关闭它):

这里的问题是端口进入 TIME_WAIT 状态,该状态因系统而异。我想确保在close()端口可用之后。

我能想到的一种方法是增加 60-90 秒的睡眠时间。但它似乎不是很优雅。

我可以使用 Java(不带 bash/batch)验证端口已从 TIME_WAIT 释放吗?

谢谢!

0 投票
1 回答
1256 浏览

java - 使用 RestTemplate 时有很多 TIME_WAIT 连接?

我正在使用 Spring RestTemplate 对我的 RestService 进行 HTTP 调用。我使用的是 Spring Framework 3.2.8 版本的 RestTemplate。我无法升级它,因为在我们公司我们有一个父 POM,我们在其中使用 Spring Framework 版本 3.2.8,所以我需要坚持下去。

假设我有两台机器:

  • machineA:这台机器正在运行我的代码,它使用 RestTemplate 作为我的 HttpClient,并且从这台机器上我对在另一台机器(machineB)上运行的 RestService 进行 HTTP 调用。我将以下代码包装在多线程应用程序周围,以便我可以对我的客户端代码进行负载和性能测试。
  • machineB:在这台机器上,我正在运行我的 RestService。

现在我看到的问题是每当我在 machineA 上运行负载和性能测试时 - 意思是,我的客户端代码将对在 machineB 上运行的 RestService 进行大量 HTTPClient 调用,因为客户端代码是以多线程方式调用的。

我总是看到很多 TIME_WAIT 连接,machineA如下所示:

我不认为我们在这里有很多 TIME_WAIT 连接是一个好兆头。 问题陈述:-

  • TIME_WAIT在 machineA 上用一种简单的语言来说,这种高度连接意味着什么?
  • RestTemplate 发生这种情况是否有任何原因,或者只是我使用 RestTemplate 的方式?如果我在使用 RestTemplate 的方式上做错了什么,那么正确的使用方法是什么?

使用 RestTemplate 时是否需要设置任何keep-alive标题或内容?Connection:Close非常感谢任何输入/建议,因为我对这里发生的事情感到困惑。

下面是我如何以一种简单的方式在我的代码库中使用 RestTemplate(只是为了解释我如何使用 RestTemplate 的整个想法):

下面是我的简单任务类

0 投票
1 回答
356 浏览

c++ - pion http 服务器避免 TIME_WAIT

我正在使用 Win32 上的 pion c++ library(5.0.6) 开发 http 服务器和客户端。

问题是客户端断开连接后它始终在服务器端保持 TIME_WAIT ,我可以从netstat -ano看到它。有时我的服务器上大约有 10000 TIME_WAIT,我的客户会感到延迟,我不知道延迟是否与 TIME_WAIT 有什么关系。

我写了一个简单的服务器/客户端来说明问题

服务器:

客户端:

我猜服务器没问题,因为如果我使用 Chrome 等网络浏览器连接到服务器,一切都会正常,Chrome 关闭后不会有 TIME_WAIT。但客户端代码始终保持 TIME_WAIT。

客户端代码我错过了什么?