与TIME_WAIT相关的几个内核参数修改测试讨论结论

以下来结论自tcpcopy & gryphon讨论群
经过试验测试得出,不保证肯定正确。

 

net.ipv4.tcp_tw_recycle

net.ipv4.tcp_tw_reuse

net.ipv4.tcp_timestamps

 

1)         recycle和reuse参数必须在客户端和服务端都开启timestamps(=1)参数后才有效果,否则不生效。

2)         设置recycle参数后,可以快速回收处于TIME_WAIT状态的Socket;回收时间据网上介绍大概在700ms;(测试时手工操作基本1s内就消失了)。

3)         timestamp开启情况下,会小幅影响吞吐量

4)         reuse参数开启后,若针对处于TIME_WAIT状态的Socket进行bind,仍然会报ADDR IN USE,这应该是bind函数内部会检查Socket状态导致(具体可自行去研究源码)

5)         reuse参数开启后,不进行bind操作,让操作系统来选择可用端口,可以看到端口得到了复用,可看如下截图。

注意: 正常情况外网不建议开启recycle参数,因为该参数开启后,会对时间戳进行校验,来自于NAT网络的客户端很有可能无法连接上。

转载于:https://www.cnblogs.com/good90/p/3905420.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值