配置路由器以丢弃数据包、引入延迟、损坏数据

Mar*_*ark 13 performance router

我想知道是否有人在通过网络发送/接收请求时有设置专门为性能不佳而设计的环境的经验。我正在开发一个应用程序,并希望使其在性能极差的网络上保持稳健。有谁知道是否可以将路由器配置为:

  1. 间歇性丢包
  2. 间歇性地在数据包中引入延迟
  3. 数据包中的损坏数据(这不是必需的,因为它需要打开数据包、更改数据和更新校验和,因为 TCP 层会捕获此类问题)

如果在路由器上不可能,是否可以将计算机配置为路由器并执行此操作?

非常感谢!

Ste*_*day 17

如果您使用 Linux 机器作为路由器,netfilter 有多种方法可以处理您的数据包流量。

random模块可用于随机丢弃数据包。例如,这个:

iptables -A FORWARD -m random --average 10 -j DROP
Run Code Online (Sandbox Code Playgroud)

将导致路由器以平均 10% 的速率随机丢弃数据包。

您还可以使用 XOR 目标破坏随机数据包,例如

iptables -A FORWARD -m random --average 1 -j XOR --key "junktoxortomypacket"
Run Code Online (Sandbox Code Playgroud)

将通过使用从给定字符串派生的密钥对它们进行异或来破坏 1% 的转发数据包。