3

在开发服务器应用程序时,了解连接速度变慢、突然中断或吞吐量非常低时的工作原理非常重要,但是因为开发一个可以模拟上述所有“功能”的测试网络将花费一大笔钱,我们需要通过软件来模拟它们。

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

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

谢谢!

4

7 回答 7

2

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

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

于 2009-04-09T11:32:08.770 回答
1

尝试 Linux 的 Netem ( http://www.linuxfoundation.org/en/Net:Netem ) 或 BSD 的 dummynet。

于 2009-11-10T22:40:11.130 回答
1

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

于 2009-04-09T11:41:56.610 回答
1

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

于 2009-04-09T11:58:53.293 回答
0

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

于 2013-04-04T14:59:00.480 回答
0

我最喜欢的技术是拔出网线。

于 2009-04-09T11:26:41.263 回答
0

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

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

conduit 1465 www.target.box 80

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

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

  • 减慢传输速度。
  • 损坏的传输。
  • 丢失数据。
  • 发送虚假数据。还有很多其他人。

它为我们提供了很好的服务,并在网络异常测试方面提供了很多帮助。

于 2009-04-09T11:43:30.320 回答