我在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.
解决方法
对于那些你想念的人来说,需要调整更多的参数,其中一些是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
因此,您必须通过将4个参数设置为Solaris net stack来计算这些参数的值,以模拟您获得的行为.顺便问一下在Linux下检查man 7 tcp.