模拟静默丢弃池 tcp 连接的代理或服务器?

网络工程 tcp 测试
2022-02-16 04:41:41

我们有一个系统,我们可以通过该系统对客户端的远程服务器进行 RESTful 回调。当请求显然已发送时,我们看到等待响应的超时。一些限制:

  1. 在本地网络的其他地方,很难在服务器之外获取 TCP 转储日志。
  2. 我们无权访问客户的系统。

我们认为,当流量较低时,远程代理会在不告诉我们的情况下杀死空闲连接。我为空闲连接添加了一个收割线程。这应该已经存在并且添加它是对系统的改进。但是,我仍然想在我们的本地网络上模拟错误情况,但事实证明这有点棘手。我们的测试服务器是一个 servlet 容器,它表现良好,可以正确关闭 TCP 连接。

我应该如何创建一个设置:

  1. 空闲连接被丢弃,没有进一步的 TCP 流量
  2. 与这些连接相关的进一步流量被忽略?
1个回答

您可以在路由器之间放置 NAT 或防火墙,并将 TCP 超时设置为非常低。

或者,您可以尝试使用 TCP keepalive 来纠正这种情况。这将定期发送没有数据的 TCP ACK,以保持 TCP 会话打开。