tcp_keepalive 应用程序是否依赖于 Linux?

tcp_keepalive 应用程序是否依赖于 Linux?

根据http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/index.html,内核 keepalive 函数发生在操作系统级别,不需要应用程序显式调用它。但是,我还读到过应用程序必须如何调用它(使用 SO_KEEPALIVE)才能真正利用内核功能。

点击这里 >Linux 上的“保持连接”选项不适用于传出连接

有人可以澄清一下吗?

谢谢!

答案1

除非明确打开应用程序套接字,否则不会发生这种情况。此外,明确提出在您提到的 TCP Keepalive HOWTO 中:

请记住,即使在内核中配置了 keepalive 支持,它也不是 Linux 中的默认行为。程序必须使用 setsockopt 接口请求对其套接字的 keepalive 控制。实现 keepalive 的程序相对较少,但您可以按照本文档后面的说明,轻松地为大多数程序添加 keepalive 支持。

相关内容