为什么tcp_tw_reuse默认关闭?

时间:2012-06-07 18:37:12

标签: linux tcp

由于所有连接都处于TIME_WAIT状态,我遇到了连接不足的问题。将超时设置为1仍然会导致问题。我们使用负载均衡器,所以我使用tcp_tw_reuse而不是回收。我将发布需要使用tcp_tw_reuse的代码。

但是,我认为tcp_tw_reuse可能会产生负面影响,但我想不出它可能是什么。有谁知道为什么在Linux安装中没有默认打开它?

或者,任何人都可以列出任何潜在的负面影响吗?我认为这对系统没有任何影响,直到它用完了连接,此时对此的需求似乎很明显。

感谢。

2 个答案:

答案 0 :(得分:1)

TIME_WAIT状态是TCP的组成部分。这是一种安全/数据完整性措施,可防止来自相同端口号之间的两个连续连接的数据混淆。你当然应该搞乱它。它可能导致的唯一问题是创建出站连接时出现绑定错误。它最终是由应该使用连接池的应用程序引起的,而不是。

答案 1 :(得分:0)

今天看到一篇很棒的文章,提供了一个非常深入的答案,我认为遇到过这个问题的人应该有:

http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html

在审核之后,看起来我使用tcp_tw_reuse所做的更改甚至不会影响传入的连接,所以看来我原来的解决方案对我来说是徒劳无功的改变。