【问题标题】:How to verify TCP keep alive on Linux如何在 Linux 上验证 TCP 保持活动状态
【发布时间】:2019-02-06 19:02:42
【问题描述】:

我想在我的 linux 机器上设置 tcp keep alive。所以我正在做的是运行一个脚本

if [ `/sbin/sysctl -n net.ipv4.tcp_keepalive_time` != 200 ] ; then
   /sbin/sysctl -w net.ipv4.tcp_keepalive_time=200;

但我仍然对与亚马逊红移的连接有疑问。有人可以帮我看看如何检查 tcp keep alive 是否真的设置了吗?

【问题讨论】:

  • 这会设置默认的 TCP keepalive 计时器值。您的代码仍然必须为每个套接字显式启用 TCP keepalive。 (没有启用 TCP keepalive 的全局设置)。

标签: linux networking tcp amazon-redshift


【解决方案1】:

要检查保持活动是否处于活动状态,请打开连接,不要交换任何数据并使用 tcpdump 或类似方法验证数据包是否在连接上定期交换,即使没有实际数据交换也是如此。

但也许你只是混淆了keep-alive和超时:

  • 保持活动状态:检测连接是否仍处于活动状态,例如如有必要,可以交换该数据。这将检测网络连接丢失等情况。保持活动在 TCP 层上完成。
  • 超时:连接在一些不活动后关闭。这是在应用层完成的。

在这两种情况下,直到您尝试在套接字上读取或写入时,您才能检测到问题。

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2014-02-08
    • 1970-01-01
    • 2015-05-14
    相关资源
    最近更新 更多