首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows中已建立连接的TCP超时

问Windows中已建立连接的TCP超时
EN

Server Fault用户
提问于 2015-11-11 11:14:50
回答 2查看 47.1K关注 0票数 7

我有以下情况:

  • 客户端计算机上的应用程序(Firebird DB client)在端口3050上打开到服务器的TCP连接。
  • 客户端应用程序崩溃,应用程序终止
  • 服务器上的netstat仍然显示在端口3050上建立到客户端ip地址的TCP连接.
  • 断电客户端
  • 服务器上的netstat仍然显示在端口3050上建立到客户端ip地址的TCP连接.
  • 等了几分钟
  • 服务器上的netstat仍然显示在端口3050上建立到客户端ip地址的TCP连接.

在Windows下是否存在已建立连接的超时(本例中为Win8.1)?我能改变这个超时吗?

我找到了这,但这似乎没有回答我关于建立联系的问题。

EN

回答 2

Server Fault用户

发布于 2015-11-12 07:59:12

默认情况下,已建立的TCP连接不超时(但可能是因为硬件的限制)。

应用程序可以使用TCP保活机制来检查断开的连接。在Firebird (>1.5)中启用TCP保持名。

必须在服务器上设置保活“超时值”。Windows 为2小时(但建议为5分钟)为2小时(但建议为5分钟)中的默认TCP保持活动时间间隔。它可以在HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\KeepAliveTime注册表项中设置。

以上链接的更多细节:

失败的客户端连接将在以下时间间隔之后关闭:KEEPALIVE_TIME+ ( KEEPALIVE_PROBES+1)* KEEPALIVE_INTERVAL

在Windows中使用以下相应的注册表值:

代码语言:javascript
复制
KEEPALIVE_TIME = KeepAliveTime (default: 7200 seconds)
KEEPALIVE_INTERVAL = KeepAliveInterval (default: 1 second)
KEEPALIVE_PROBES = TCPMaxDataRetransmissions (default: 5)

但是:

默认情况下,每两小时发送一次保持活动段( ... )。即使启用了,其他上层协议(如NetBIOS )也会发送自己的保活值。如果上层协议使用的保持活动间隔小于TCP保持活动间隔,则不会发送TCP保持活动值。例如,TCP/IP上的NetBIOS会话每60分钟发送一次NetBIOS保持活动请求。因此,永远不会使用为NetBIOS会话启用的TCP使活值。

票数 8
EN

Server Fault用户

发布于 2015-11-11 15:01:06

TCP规范没有超时或保持活动机制。可以将Registry设置为配置TCP记事本,但这取决于实际应用程序是否使用keepalives。见这个问题的答案:

启用系统宽TCP在在系统上保持

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/735515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档