问题标签 [tcp-keepalive]

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 投票
2 回答
10650 浏览

tcp - TCP keepalive的典型用法是什么?

考虑存在一个服务器和多个客户端的场景。每个客户端创建 TCP 连接以与服务器交互。TCP live的三种用法:

  1. 服务器端keepalive:服务器发送TCP keepalive以确保客户端处于活动状态。如果客户端死机,服务器将关闭与客户端的 TCP 连接。
  2. Client-side keepalive:客户端发送 TCP keepalive 以防止服务器关闭与客户端的 TCP 连接。
  3. 双方keepalive:服务器和客户端都发送TCP keepalive,如1和2所述。

以上 TCP keepalive 的哪些用法是典型的?

0 投票
1 回答
6344 浏览

tcp - TCP 连接可以保持打开状态多长时间?

考虑这样一个场景,有client-aserver-bserver-b已禁用 TCP keepalive。并且 server-b 没有任何应用程序逻辑来检查 TCP 连接是否打开。client-a建立到 的 TCP 连接server-b。之间client-aserver-b之后没有数据传输。在这种情况下,服务器会关闭空闲连接吗?否则服务器将使 TCP 连接永远保持打开状态。

在阅读了最长打开的 TCP 连接之后?,我猜这样的 TCP 连接将永远保持打开状态。我的猜测正确吗?

0 投票
1 回答
5333 浏览

c# - Rabbit MQ idle connection dropped

I have a .NET windows service running as a consumer/subscriber which is listening to a queue for messages.

The windows service is running on the same machine as where rabbit mq server s/w is installed.

The queue if idle for 60 minutes results in the connection for it being dropped (i know this as i monitor the UI dashboard) and puts the windows service into a bad state.

This is proving to be frustrating to resolve. I have applied heart beat setting on the rabbit mq client but this has had no effect.

The following error is what i get in the log file when connection drops

Rbbit mq server log file settings: [{rabbit,[ {heartbeat, 60}]}].

Client code:

heartbeat value above is set to 30 seconds,

network recovery value is set to 10 seconds &

request connection time out is set to 2 seconds

i don't know what else i'm missing here in terms of configuration??

The server where above is running from is Windows 2012 R2

Basically i'm expecting that to see the connections remain in place always regardless of idle time.

Is there a Windows OS level TCP keep-alive setting i need to make sure is in place as well?

Rabbit MQ version is 3.6.8

tearing my hair out on this one so any pointers greatly appreciated

0 投票
0 回答
106 浏览

c# - 看不到从客户端到服务器的重传包

我有一个自定义客户端-服务器应用程序都在 LAN(OS-Windows8)上运行。我在客户端使用了 keep-alive 选项,我在 Wireshark 中看到 Keep alive 数据包。但是,当我拔下运行服务器的机器的网线时,我看不到任何从客户端到服务器的重传数据包,但我看到其他应用程序向服务器的 IP 发送重传数据包。我不明白为什么会这样。我是否需要明确设置重新传输超时值,或者我该如何解决这个问题?

作为参考,这是我正在使用的保持活动代码。 如何在 TCP 客户端(套接字)上在 VB.NET 中实现 TCP KeepAlive

我用值调用 setKeepAlive - SetKeepAlive(clientSocket, 60000, 10000)

谢谢

0 投票
0 回答
737 浏览

c# - c#socket不断消息传递

我在这个问题上挣扎了几天。我有一台服务器机器,我需要实现一个客户端。首先,我发送登录消息并收到响应。之后,我将需要发送和接收不同的消息。从 10 到 10 秒,我需要发送一个“心跳消息”,因此服务器需要知道连接仍然处于活动状态。我使它成为一个简单的异步客户端。

这就是我在 StartClient() 中所做的:

SendHeart() 就像普通的 Send 一样,只是发送 keepalive 消息。

我面临的问题是下一个:在第一次使用计时器并触发 Heartbeat() 之后,应用程序只发送 keepalive 消息,因此它不会发送其他消息。如果它只发送 keepalive 消息,则连接保持活动状态。就像客户端无法再访问 Send 回调一样,它仍然只用于 Heartbeat。

在另一种情况下,我制作了 3 个计时器,一个用于 Send(),一个用于 Receive(),一个用于 Heartbeat()。按照这个顺序,当一个计时器到期时,它会停止并启动下一个计时器,依此类推。我发送一条消息,我阅读了一个响应并发送了一个 Heartbeat,之后我尝试执行 BeginSend a message 或 BeginReceive a message 的任何动作,连接被主机中止。

对于第二种情况,另一个问题是,如果在发送消息后启动接收,如果发送了心跳,接收线程将丢失,因此我无法再读取消息。

很抱歉,如果它太纠结了。如果您不理解某些内容,我正在等待问题。谢谢

0 投票
1 回答
1327 浏览

ssh - Google Cloud VM 实例 SSH 连接 ~60 秒超时,30 秒保活

我一直在通过我的 macOS 上的 gcloud ssh 连接到 Google Cloud VM 实例:

从一周前开始,连接将在大约 60 秒的空闲连接后断开并返回:

我在我的 macbook 和 VM 上都将 TCP keepalive 时间配置为 30 秒。但这并没有解决问题。

知道如何延长连接持续时间吗?

0 投票
0 回答
449 浏览

sql-server - Windows 中的 TCP Keep Alive 正在运行,但 Azure SQL 不影响该程序

为了使 Azure SQL 保持活动状态,MS 提供了此解决方法,在遵循此解决方法后,发送了保持活动消息,我通过 wireshark 进行了跟踪。

但是我的应用程序在 30 分钟后仍然面临连接重置..

我已经使用 microsoft 提供的 jdbc 库与 azure 建立了正常连接。我的连接 uri 是:

有人可以为此引发一些火花吗?

0 投票
2 回答
181 浏览

python - 调整 IBM Cloud 上 Python Cloud Foundry 应用程序的 DB2 keepalive 设置

我在 Bluemix / IBM Cloud 上有一个可以工作的 Python Cloud Foundry 应用程序,它连接到 Bluemix / IBM Cloud 上的 DB2 on Cloud 实例,并且可以很好地工作。

然而,在很长一段时间后(我无法测量时间),与 DB2 的连接关闭,我的查询失败。我可以修改我的代码来检查这一点,但能够调整 TCP keepalive 设置会很棒。类似这样的东西。

将不胜感激任何指针。我不确定如何调整 Python Cloud Foundry 应用程序的客户端设置。

干杯。

0 投票
0 回答
33 浏览

puppet - 如何使用 Puppet 部署 MASTER/BACKUP 机器?

我有 2 个虚拟机。我正在使用 keepalived 将它们作为具有相同 VIP 的 MASTER/BACKUP。( http://www.keepalived.org ) 我想使用 Puppet 将机器一一部署。

我想先部署 BACKUP,完成后部署 MASTER。

使用 Puppet 的最佳方法是什么?

0 投票
1 回答
637 浏览

delphi - Datasnap 客户端回调连接 KeepAlive 不起作用

我遵循了Delphi Labs 中的指南:Datasnap XE - Callbacks,Callbacks 似乎工作得很好。然而,让客户端闲置超过一个小时 - 似乎会导致客户端回调停止工作。我更改了服务器DSTCPServerTransport.KeepAliveEnabled, .KeepAliveInterval, .KeepAliveTime-- 但它没有任何帮助。

有谁知道我怎样才能让客户超时连接?

1https ://edn.embarcadero.com/article/41374