configuration路由器丢弃数据包,引入延迟,损坏的数据

我想知道是否有人有任何经验,build立一个有目的的环境devise时,通过networking发送/接收请求性能差。 我正在开发一个应用程序,并希望在性能极差的networking上保持稳定。 有谁知道是否可以configuration路由器来:

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

如果在路由器上不可行,是否可以configuration一台计算机作为路由器,然后执行此操作?

非常感谢!

如果你使用一个Linux的盒子作为路由器,netfilter有很多方法搞乱你的数据包stream量。

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

 iptables -A FORWARD -m random --average 10 -j DROP 

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

你也可以用异或目标来破坏随机数据包,例如

 iptables -A FORWARD -m random --average 1 -j XOR --key "junktoxortomypacket" 

将通过将它们与来自给定string的密钥异或而破坏1%的转发分组。

我成功地使用了WANem来模拟德国和印度之间的广域网的networking状况。 WANem作为可启动CD或虚拟设备提供。 您只需启动它,configuration所需的networking属性,然后通过它来路由您的stream量。 引用官方描述:

WANem是一个广域网仿真器,旨在提供广域网/互联网的真实体验,在LAN环境中进行应用开发/testing。 通常,应用程序开发人员在局域网上开发应用程序,而预期目的可能是,客户端通过广域网甚至互联网访问相同的应用程序。 因此,WANem允许应用程序开发团队设置一个透明的应用程序网关,可用于模拟广域网的特性,如networking延迟,数据包丢失,数据包损坏,断开连接,数据包重新sorting,抖动等。WANem可用于模拟广域数据/语音stream量的networking条件,并在广泛接受的GPL v2许可下发布。

如果可以,将上行链路端口设置为10Mbps和半双工。 然后使用networking上的主机来ping通其中的stream氓。 这应该适中中性:D