在两台主机之间生成有限数量的随机networkingstream量

我试图find一个实用程序,使我能够以2个主机之间的指定速率生成一个随机networkingstream量的恒定stream量。 该实用程序需要在Windows和OSX上运行。 我尝试过iperf,但它似乎更倾向于短期testing/统计数据,甚至会以较慢的速度对CPU征税。 我希望能够以10Mbps的速度产生数周的stream量,同时我还使用其他工具来监视networking上stream量的影响。

使用ping。 你可以编写脚本来运行随机洪水,并做所有有趣的东西。 我不是一个MacOS专家,但我很确定这是非常相似的Linux CLI选项…

所以推端口的链路速度限制运行一个泛洪ping(注意必须是root做到这一点,我在这里运行我的100,000数据包):
$ping -f -c 100000 <destination IP>

为简单起见,请尝试netcat 。

如果你想开始一个有限的数量,你可以生成一个文件,并将其pipe入NC

nc 192.168.0.1 3333 > file.dat

或者,如果你想饱和你的networking,你可以build立一个连接,将洪水A和B的彼此之间

在电脑上

 yes AAAAAAAAAAAAAAAAAAAAAA | nc -v -v -l -p 2222 > /dev/null 

在另一台电脑上(我们会打电话给B)

 yes BBBBBBBBBBBBBBBBBBBBBB | nc othermachine 2222 > /dev/null 

这里有很多关于你可以用netcat做的事情,我强烈build议你在某个时候做一个google。

只是想说,Ostinato可以在Mac OS X和Windows上运行。

在运行Windows XP的2.2GHz Core2Duo上,Ostinato占用CPU的50%左右。 只为Ostinato说话 – 即使在低速率下也需要很多CPU的原因是在其他竞争应用程序存在的情况下保持精确的(读取恒定的数据包间延迟)传输速率。

你也可以尝试tprep

披露:我是Ostinato的开发者

Ostinato可能会为Windows做。 我没有花太多时间,但它看起来很有趣。

不幸的是,我没有第一手的经验,但是MGEN可能适合。 PackETH很好,但主要是Linux(加上Windows端口),所以它可能是没有问题的。

如果这不适合你, D-ITG网站上的列表可能会有所帮助。

只要运行这个脚本…

 #!/bin/bash while true; do t=$(($RANDOM%2500 + 500)) b=$(($RANDOM%150 + 50)) ping -c 1 -s $b $1 sleep $(($t/1000)) done