0

当我用jmeter进行性能测试时,客户端报告错误“请求无法到达”,我google了错误,大多数答案是指“net.ipv4.tcp_tw_reuse”,将其设置为1,但有人说,如果想让它工作,必须使用“net.ipv4.tcp_timestamps”,在服务器中将“net.ipv4.tcp_timestamps”设置为1。我不知道为什么在客户端,我设置了“net.ipv4.tcp_tw_reuse”,并且必须在服务器中设置“net.ipv4.tcp_timestamps”,它会起作用吗?谁能帮助我?两个内核设置之间有什么关系吗?

4

2 回答 2

1

任何人都知道,我对这两个参数进行测试,“net.ipv4.tcp_timestamps”确实对“net.ipv4.tcp_tw_reuse”产生影响,如果我只是将“net.ipv4.tcp_tw_reuse”设置为1,问题不会解决,但是当我也将“net.ipv4.tcp_timestamps”设置为1时,它显然会起作用。谁知道这两个参数之间的关系?

于 2015-07-10T01:33:24.683 回答
0

我不小心遇到了这个问题,所以我将尝试在我的后续发现中提供一个简短的答案。

更多信息可以在这里找到,但主要部分是

TCP_TW_REUSE

这允许在从协议角度来看是安全的情况下重用处于 TIME_WAIT 状态的套接字来进行新连接。默认值为 0(禁用)。它通常比 tcp_tw_recycle 更安全

/proc/sys/net/ipv4/tcp_timestamps - 时间戳 (RFC 1323) 将 12 个字节添加到 TCP 标头...

TIME_WAIT是本地端已关闭时 TCP 连接的状态,但操作系统等待来自另一端的新数据包(以防它们到达)。一段时间后,连接会自动释放。

添加时间戳的想法是能够计算用于拥塞控制的非常准确的 RTT(往返时间)。

于 2018-02-14T12:21:37.713 回答