TCP keepalive 如何工作

TCP keepalive 如何工作

我在 Ubuntu 上运行,我想使用 TCP keepalive 来实现主从之间的心跳。两个服务器都是我的实现(c++)。我读过这个概述并进行了一些谷歌搜索。我不明白 TCP keepalive 发送了什么,但我知道在 TCP keepalive 中使用时连接是否不再有效?我需要检查恢复的内容吗?

目标是在主从之间建立心跳,这样如果一个发生故障,另一个将成为主设备。在这种情况下邮政建议是使用 tcp keepalive 机制实现心跳,所以这就是我询问如何在使用 tcp keepalive 时识别断开的连接的原因。

答案1

你似乎把 TCP keepalive 机制和名为保持活跃。两者毫无关联。如果您尝试检测两个程序(您都编写了这两个程序)之间的连接丢失或问题,则您不需要这两种机制。

如果您想在编写两个程序时检测它们之间的不良连接,只需在代码中构建死连接检测。TCP 保证发送方将检测到死连接。因此,最简单的解决方案是确保双方定期发送。另一个解决方案是确保一方定期发送,而另一方如果没有收到该定期数据,则声明连接已死。

相关内容