gpt4 book ai didi

windows - 环回接口(interface)上的 TIME_WAIT

转载 作者:可可西里 更新时间:2023-11-01 02:47:52 26 4
gpt4 key购买 nike

为什么到环回接口(interface)的 TCP 连接以 TIME_WAIT 结束(套接字关闭并设置了 SO_DONTLINGER),但到不同主机的相同连接不会结束在 TIME_WAIT 中(它们立即被重置/销毁)?

这里有一些场景来说明:

(A) 两个应用程序,一个客户端和一个服务器,都在同一台 Windows 机器上运行。客户端通过服务器的环回接口(interface)(127.0.0.1,端口xxxx)连接到服务器,发送数据,接收数据,关闭套接字(设置SO_DONTLINGER)。

假设连接非常短暂,因此客户端应用程序每秒建立和销毁大量连接。最终结果是套接字在 TIME_WAIT 中结束,客户端最终耗尽了它的最大套接字数(在 Windows 上,默认情况下是 ~3900,我们假设这个值不会是在注册表中更改)。

(B) 与场景 (A) 相同的两个应用程序,但服务器位于不同的主机上(客户端仍在 Windows 上运行)。这些连接在各个方面都是相同的,除了它们不是以 127.0.0.1 为目的地,而是以其他 IP 为目的地。此处客户端计算机上的连接不会进入 TIME_WAIT,并且客户端应用程序可以无限期地继续建立连接。

为什么会出现差异?

最佳答案

TIME_WAIT 状态只出现在连接的一端——首先关闭的一端。对于环回接口(interface),两端都在同一台机器上,因此您将始终看到 TIME_WAIT。

在您的另一种情况下,请尝试查看另一台机器。我想您会在那里看到 TIME_WAIT 套接字。

关于windows - 环回接口(interface)上的 TIME_WAIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/309803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com