使用tcp时我是否必须保持心脏跳动?

时间:2010-01-13 07:45:16

标签: heartbeat

我们的一个分布式应用程序正在使用心跳来检测对等方的断开连接(例如,LAN线断开等)。 心脏跳动是必要的吗?

3 个答案:

答案 0 :(得分:1)

是。 TCP只会显示物理连接仍然存在(即,套接字未被路由器或操作系统拆除)。但是会告诉没有 应用程序可用性。如果管道另一端的进程处于while(1);循环中且未处理您的请求,则表示您并未实际连接到该请求。

答案 1 :(得分:1)

也许,如果你没心跳,你会怎么做?

  

如果你无法恢复那里   心跳加速没有意义。

如果您使用从服务器到客户端的回叫,您需要一种方法让客户端可以要求服务器重新发送所有丢失的回叫,这并不容易。

此外,如果您没有心跳,这并不意味着以后会收到消息,因为可能存在各种网络延迟,重新发送消息是否安全?

  

心脏跳动很容易   硬心的是当心脏做什么的   不打败!

答案 2 :(得分:0)

这是一个很好的方式,知道你仍然在“应用程序级”连接到另一端,应用程序仍然可以说话。否则你必须假设“另一端”没有“说”,这很难与“另一端实际上在35秒前失去网络连接”分开。