我在 Solaris 中设置了以下 tcp 内核参数
ndd -set /dev/tcp tcp_ip_abort_interval 120000
ndd -set /dev/tcp tcp_rexmit_interval_max 15000
ndd -set /dev/tcp tcp_rexmit_interval_min 400
ndd -set /dev/tcp tcp_keepalive_interval 30000
Linux (RedHat) 中的等效项是什么?我只发现了 tcp_keepalive_intvl。
答案1
对于那些您错过的,它是为了调整更多参数,其中一些是 netfilter 的一部分:
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60
net.netfilter.nf_conntrack_tcp_timeout_established = 432000
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300
net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300
您必须在内核中加载连接跟踪模块。
其他需要调整的内容:
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_retries1 = 3
net.ipv4.tcp_retries2 = 15
net.ipv4.tcp_fin_timeout = 60
因此,您必须计算这些参数的值,以模拟通过为 Solaris 网络堆栈设置 4 个参数而获得的行为。顺便说一下,请man 7 tcp
在 Linux 中检查。