有哪些Unix工具可以模拟糟糕的网络?

时间:2009-04-09 11:24:17

标签: performance networking emulation

在开发服务器应用程序时,了解连接速度减慢,突然死亡或吞吐量非常低时,工作如何工作非常重要,但是因为开发可以模拟上述所有内容的测试网络将花费大量资金“功能“,我们需要通过软件模拟它们。

执行此操作的一种方法是更改​​客户端和服务器应用程序,但这也不是非常划算。另一种方法是通过拦截和改变操作系统级别的行为,这似乎更有希望,以及我正在寻找的工具类型。

我的情况特别适用于Solaris服务器,但非常受欢迎的是通用的Unix / BSD工具。也可以随意发布Window的工具,因为它可能会帮助其他人出现但不使用Unix。

谢谢!

7 个答案:

答案 0 :(得分:2)

IPTABLES会让你扼杀带宽和泡沫,这可能不是最直观但可以做到的。 (我们使用一个单独的盒子作为运行FreeBSD的'Strangler',但我认为IPtables出现在大多数* nix菌株上)

对于我所做的大多数网络损伤,我使用了一个名为NetDisturb的工具,但这是基于Windows的。

答案 1 :(得分:1)

我写了一个实用程序。它是用Java编写的,所以你需要安装java。它表现良好,应该做你需要的。它被称为DonsProxy。只需点击链接,我希望你喜欢它。

答案 2 :(得分:1)

在客户端,trickle是一种非常简单的模拟慢速网络的方法(它不会丢弃任何数据包,因为它最初的意思是带宽整形,而不是测试工具)

答案 3 :(得分:1)

尝试Netem for Linux(http://www.linuxfoundation.org/en/Net:Netem),或尝试BSD的虚拟网络。

答案 4 :(得分:0)

我最喜欢的技术是将网线拉出来。

答案 5 :(得分:0)

我们多年前在我们的一个项目上开发了一个工具,它基本上是一个由UNIX盒子上的inetd守护进程启动的程序。它基本上充当客户端和服务器之间的管道。

例如,如果我们在www.test.box上启动它:

conduit 1465 www.target.box 80

然后我们可以通过www.test.box:1465将客户端连接到它,它会打开一个通往www.target.box:80的管道(inetd实际上完成了大部分连接的繁琐工作,尽管我们也有可以作为自己长期运行的服务器的版本。)

默认行为是以全速向两个方向传递所有内容,但它是可配置的(在运行时,通过共享内存传递给它的命令,但其他方法也可以):

  • 减慢传输速度。
  • 腐败传播。
  • 丢失数据。
  • 发送虚假数据。 还有很多其他人。

它为我们提供了很好的服务,并为网络异常测试提供了大量帮助。

答案 6 :(得分:0)

WANem 可以解决问题。 (他们有一个你可以使用的LiveCD,并为你节省了Netem等所需的安装\配置时间...) http://wanem.sourceforge.net/