【发布时间】:2012-02-12 05:07:17
【问题描述】:
问题总结
我们有一个设置,其中很多(每秒 800 到 2400 个传入连接到 linux 机器,并且我们在客户端和服务器之间有一个 NAT 设备。 所以系统中还有很多 TIME_WAIT 套接字。 为了克服这个问题,我们将 tcp_tw_recycle 设置为 1,但这会导致连接中断。 浏览网络后,我们确实找到了为什么会发生 tcp_tw_recycle 和 NAT 设备丢帧的参考资料。
分辨率尝试
然后我们尝试将 tcp_tw_reuse 设置为 1,它工作正常,没有任何问题,使用相同的设置和配置。
但是文档说当通过 TCP 状态感知节点(例如防火墙、NAT 设备或负载平衡器)的连接可能会看到丢帧时,不应使用 tcp_tw_recycle 和 tcp_tw_reuse。连接越多,您看到此问题的可能性就越大。
查询
1) tcp_tw_reuse 可以用于这种场景吗? 2)如果不是,linux代码的哪一部分阻止了tcp_tw_reuse被用于这种情况? 3)一般tcp_tw_recycle和tcp_tw_reuse有什么区别?
【问题讨论】: