网络工程 如何在不完全断开连接的情况下引入网络连接延迟?

网络工程 如何在不完全断开连接的情况下引入网络连接延迟?

我是一名软件开发人员,我正在使用一些 C++ 库来访问数据库。我想测试一些与处理超时和卡住连接相关的方面。虽然我可以模拟某些东西,但我还想测试实际应用程序如何处理“挂断”,即连接没有“断开”但在一段时间内没有响应的情况。

所以我的问题是:在 Linux 机器上,是否可能?如果可以,如何将网络连接置于这样一种状态:想要连接到互联网上的服务器的库(我也可以设置程序以使用本地 IP)不会立即“发现”没有互联网连接,但会保持停滞状态一段时间(理想情况下很长,以秒或更长时间计算)?

答案1

使用tc流量整形器,特别是其“netem”模块。

或者:添加一个高优先级的防火墙规则,使用iptables -I该规则只丢弃往返于测试目的地的数据包,等待几秒钟,然后删除该规则。

相关内容