我正在使用iperf3,它应该是iperf的重写版本。我使用这个的原因是因为我喜欢iperf,当涉及TCP和UDP吞吐量时,我现在想测试我的端点之间的SCTP吞吐量。
然而,当我尝试使用--sctp命令时,我看到人们一直在使用它,说命令无法识别。是我正在使用的实现没有实现此命令吗?
https://github.com/esnet/iperf
这是我正在使用的实现,找不到与此相关的SCTP命令的任何明显文档。大多数SCTP iperf实现都是在测试中手动添加的,通常不提供源代码。
任何帮助将不胜感激!
答案 0 :(得分:0)
获取支持{1}} linux内核的iperf副本。使用标准流程安装它。 (如果失败,请通知错误消息以及操作系统和内核详细信息)。现在在iperf中使用SCTP,这些是正确的语法。
用于创建SCTP服务器
lksctp module
(iperf -z -s
用于选择SCTP协议,-z
用于服务器。)
用于创建SCTP客户端
-s
(对于SCTP iperf -z -c <host address> -t <time duration for the connection in second>s -i <interval of the time to print the bandwidth in terminal in second>s
,-z
用于客户端。主机地址应该是-c
已经运行的服务器的IP地址。iperf -z -s
是指定通信持续时间。-t
用于指定显示带宽的时间间隔。)
示例:
-i
此处通信时间为10秒,并且每2秒报告一次带宽。
<强> P.S。强>
(1)要将iperf用于SCTP,必须在内核中启用SCTP模块并重新编译它。内核版本必须为2.6或更高版本。使用iperf -z -c 0.0.0.0 -t 10s -i 2s
或uname -a
进行检查。如果你有一个较低的,那么从The Linux Kernel Archives下载一个新的内核。并通过启用SCTP进行编译。
首先通过在终端中运行这两个命令来检查它是否已经启用。
uname -r
(2)如果modprobe sctp
lsmod | grep sctp If you get any output then SCTP is already enabled.
的iperf仍然失败。尝试以下解决方案。如果这两台机器是“A&#39;和&#39; B&#39;。
首先制作&#39; A&#39;服务器和&#39; B&#39;客户端。它不会成功。所以
-z
然后制作&#39; B&#39;服务器和&#39; A&#39;客户端。它可能会成功。如果再次失败,请使用上述命令终止iperf并再次重复步骤1。它可能会成功。
(第二个解决方案适用于我exit by using `ctrl + z` and kill iperf
using `pkill -9 iperf`.
和fedora 20
及以上。)
答案 1 :(得分:0)
通过谷歌搜索找不到任何最近的答案,所以我想在这里为那些希望安装 Iperf3 以在 RHEL / CentOS 上使用 SCTP 的人留下答案。
您需要先安装 lksctp-tools-devel 并从源代码构建以启用 SCTP 支持。 Yum Install Iperf3 3.17 with lksctp-tools-devel 没有为我启用 SCTP。