更改Linux网络设备的TCP超时时间

9
我正在通过一个非常慢的接口编写Linux设备驱动程序,它的ping往返时间可能长达数分钟。当我尝试使用TCP在两个节点之间建立连接时,连接总是超时。
在驱动程序中是否有设置TCP重传或握手超时更长的方法?或者有没有命令可以进行设置?谢谢。
2个回答

9
你有没有尝试搜索这个问题的答案?快速谷歌搜索给了我这个链接,这里,似乎直接解决了这个问题。总结一下,net.ipv4.tcp_syn_retries的设置决定了TCP连接可用的最大超时时间。

如果那篇文章没有解答你的问题,你应该说明你尝试了什么以及行为与你预期的不同之处。


谢谢。你的回答非常有帮助。但是我可以为不同的接口设置不同的超时吗? - Yifan Sun

4
/proc/sys/net/ipv4/tcp_retries1
/proc/sys/net/ipv4/tcp_retries2

.

tcp_retries1 - INTEGER


 This value influences the time, after which TCP decides, that
    something is wrong due to unacknowledged RTO retransmissions,
    and reports this suspicion to the network layer.
    See tcp_retries2 for more details.

    RFC 1122 recommends at least 3 retransmissions, which is the
    default.


tcp_retries2 - INTEGER

This value influences the timeout of an alive TCP connection,
when RTO retransmissions remain unacknowledged.
Given a value of N, a hypothetical TCP connection following
exponential backoff with an initial RTO of TCP_RTO_MIN would
retransmit N times before killing the connection at the (N+1)th RTO.

The default value of 15 yields a hypothetical timeout of 924.6
seconds and is a lower bound for the effective timeout.
TCP will effectively time out at the first RTO which exceeds the
hypothetical timeout.

RFC 1122 recommends at least 100 seconds for the timeout,
which corresponds to a value of at least 8.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接