TCP keepalive它是如何工作的

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

目标是在主从之间听取意见,所以如果一个人失败了,另一个人将成为主人。 在这篇文章中的build议是实现与tcp keepalive机制听力,所以这是我问我如何识别使用tcp keepalive时断开连接的原因。

您似乎将TCP keepalive机制与称为keepalived的负载均衡守护进程混为一谈。 两者没有任何关系。 如果你正在尝试检测两个程序之间的连接丢失或问题,那么你就不需要任何一种机制。

如果您想要在两个程序之间检测到两个程序之间的连接错误,只需将死连接检测构build到代码中即可。 TCP保证正在发送的一方将检测到一个死连接。 所以最简单的解决办法是确保双方定期发送。 另一种解决scheme是确保一方发送定期和另一方宣布连接死亡,如果它没有收到周期性数据。