生成具有指定吞吐量的流量

生成具有指定吞吐量的流量

为了测试我的网络,我想在两台主机之间发送 x MB/s。我知道它ping可以用来发送大量数据,但我需要一个可以设置带宽的解决方案(不必非常精确)。

$ sendTrafic --throughput 10M 10.0.0.1

知道我该怎么做吗?我想过一个scappy每秒运行 x 次的脚本,但应该有更好的东西。


编辑:我使用了以下解决方案:

# On receiving node:
iperf -s -u

# On sending node:
iperf -c <ip> -u -b 10m -t 30

它将第一台主机配置为 UDP 服务器,第二台主机配置为 UDP 客户端,以 10Mb/s 的速度发送 30 秒。

感谢大家的帮助。

答案1

如果您不想安装iperf(恕我直言,这不是我过去使用过的最可靠的工具),您可以使用pvandnetcat
您首先需要安装pvand netcat(它在大多数发行版中都可用)。
在接收站点上,您将需要在可访问端口上有一个侦听套接字:

#if you want the output you can remove the redirection or redirect it to a different file.
#if you want to listen to a TCP port below 1024 you will need to use root
nc -l 4444 > /dev/null

在发送机器上,您将使用以下命令:

dd if=/dev/urandom bs=1000 count=1000 | pv -L 10M | nc <ip> 4444

dd if=/dev/urandom bs=1000 count=1000将发送 1000 个随机字符(1000 字节)的块 1000 次: 1000B * 1000 = 1MB 。您可以调整计数以增加发送的数据量。
pv -L 10M:将写入速率限制为 10 兆字节/秒 (*1024)。
netcat <ip> 4444将通过端口 TCP 4444 将数据发送到 IP。

您可以使用以下命令发送更多数据甚至真实文件:

cat /some/files| pv -L 1M | nc <ip> 4444

另一边:

 nc -l 4444 > /some/destinationfiles

答案2

显然,已经有更多的综合项目更系统地解决这个问题。

例如:在简约的集合中 -流动研磨或者特拉夫根

只需留意“速率受限的流量生成器”即可。

相关内容