Linux中多个接口的自定义TCP参数

Linux中多个接口的自定义TCP参数,linux,tcp,Linux,Tcp,我的问题是关于Linux中的TCP参数。现在,我想更改以下的默认值: 初始超时 确认延迟 空闲连接超时 我有一个带有内核2.6.x和2个以太网接口的Linux机箱。我知道TCP是一个与以太网设备无关的堆栈。话虽如此,问题是:有没有办法为每个接口设置自定义值?例如,在eth0中侦听连接的服务器将为空闲连接超时使用一个值,而在eth1中侦听连接的另一个服务器可以为该参数使用不同的值 任何考虑都将不胜感激。 致以最诚挚的问候, 蒂亚戈据我所知,你不能 您可以为tcp堆栈设置内核参数(尝试执行sysct

我的问题是关于Linux中的TCP参数。现在,我想更改以下的默认值:
  • 初始超时
  • 确认延迟
  • 空闲连接超时
  • 我有一个带有内核2.6.x和2个以太网接口的Linux机箱。我知道TCP是一个与以太网设备无关的堆栈。话虽如此,问题是:有没有办法为每个接口设置自定义值?例如,在eth0中侦听连接的服务器将为空闲连接超时使用一个值,而在eth1中侦听连接的另一个服务器可以为该参数使用不同的值

    任何考虑都将不胜感激。
    致以最诚挚的问候,

    蒂亚戈

    据我所知,你不能


    您可以为tcp堆栈设置内核参数(尝试执行
    sysctl-a | grep-tcp
    ),也可以在tcp套接字上设置参数(请参见
    man-tcp
    ),但两者都不能控制ACK延迟。如果您有内核源代码,则在
    /usr/src//include/net/tcp.h
    中对其进行编码。

    看起来延迟确认是硬编码的:

    空闲连接超时可能是指TCP保持活动状态。 您也不能为每个接口设置此选项。它解释道。 控制TCP保持活动状态行为的值由以下文件配置:

    /proc/sys/net/ipv4/tcp_keepalive_time
    /proc/sys/net/ipv4/tcp_keepalive_intvl
    /proc/sys/net/ipv4/tcp_keepalive_probes
    
    默认情况下,TCP连接已禁用TCP保持活动状态。愿意使用该功能的应用程序应通过调用
    setsockoption(2)
    SO_KEEPALIVE
    来启用该功能

    /proc/sys/net/ipv4/tcp_keepalive_time
    /proc/sys/net/ipv4/tcp_keepalive_intvl
    /proc/sys/net/ipv4/tcp_keepalive_probes