在linux中“/proc/sys/net/ipv4/tcp_keepalive_time”对客户端和服务器都有影响吗?

在linux中“/proc/sys/net/ipv4/tcp_keepalive_time”对客户端和服务器都有影响吗?

我们有一台在 Linux 上运行的机器,我们在其中公开并使用使用 Keep Alive 设置的基于 SOAP 的 Web 服务。现在,当我们通过在Linux中设置“/proc/sys/net/ipv4/tcp_keepalive_time”来更改TCP保持活动超时值时,这会影响在此Linux机器中运行的TCP客户端和服务器吗?

附加信息:我们使用部署在 apache karaf(servicemix) 中的 apache camel-cxf 端点来公开和使用基于 SOAP 的 Web 服务。

答案1

Linux内核对TCP keepalive的内置支持影响全部启用 keepalive 的 TCP 套接字。

不过,默认情况下不启用 TCP keepalive:应用程序必须使用该setsockopt接口显式请求对其套接字的 keepalive 控制。

netstat您可以使用带有选项的命令来检查特定套接字上是否启用了 keepalive -o, --timers

这里可以看到,同一个进程可以在两种模式下打开不同的网络套接字:

# netstat -anpo | grep 8999
tcp        0      0 10.10.171.44:48744         10.10.139.30:8999          ESTABLISHED 18232/java          keepalive (83.39/0/0)

# netstat -anpo | grep 8009
tcp        0      0 10.10.171.44:8009          10.10.171.42:40947         ESTABLISHED 18232/java          off (0.00/0/0)

相关内容