0

我正在使用 iperf3,它应该是 iperf 的重写版本。我使用它的原因是因为我喜欢 iperf 在 TCP 和 UDP 吞吐量方面,我现在想测试我的端点之间的 SCTP 吞吐量。

但是,当我尝试使用我看到人们一直在使用的 --sctp 命令时,它说命令无法识别。是我正在使用的实现没有实现这个命令吗?

https://github.com/esnet/iperf

这是我正在使用的实现,找不到与此相关的 SCTP 命令的任何明显文档。大多数 SCTP iperf 实现都是在测试中手动添加的,并且通常不提供源代码。

任何帮助,将不胜感激!

4

2 回答 2

0

获取支持linux 内核的iperf副本。lksctp module使用标准流程安装它。(如果失败,请告知错误信息以及操作系统和内核详细信息)。现在要在 iperf 中使用 SCTP,这些是正确的语法。

要创建 SCTP 服务器,

iperf -z -s

-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对于SCTP,-c是客户端。主机地址应该iperf -z -s是已经运行的服务器的IP地址。-t是指定通信持续时间。-i是指定显示带宽的间隔。)

例子:

iperf -z -c 0.0.0.0 -t 10s -i 2s

这里的通信时间是 10 秒,它会报告每 2 秒间隔的带宽。

附言

(1)要将 iperf 用于 SCTP,必须在内核中启用 SCTP 模块并重新编译。内核版本必须为 2.6 或以上。uname -a使用或检查它uname -r。如果你有一个较低的内核,那么从Linux Kernel Archives下载一个新内核。并通过启用 SCTP 进行编译。

首先通过在终端中运行这两个命令来检查它是否已经启用。

modprobe sctp
lsmod | grep sctp If you get any output then SCTP is already enabled.

(2)如果仍然 iperf-z失败。尝试以下解决方案。如果两台机器是'A'和'B'。

首先将“A”设为服务器,将“B”设为客户端。它不会成功。所以

exit by using `ctrl + z` and kill iperf
        using `pkill -9 iperf`.

然后将“B”设置为服务器,将“A”设置为客户端。它可能会成功。如果再次失败,请使用上述命令终止 iperf 并再次重复步骤 1。它可能会成功。

(第二个解决方案适用于我fedora 20kernel 2.6以上。)

于 2014-09-05T09:47:06.613 回答
0

无法通过谷歌搜索找到任何最近的答案,所以我会在这里为那些希望安装 Iperf3 以在 RHEL / CentOS 上使用 SCTP 的人留下答案。

您需要先安装 lksctp-tools-devel 并从源代码构建以启用 SCTP 支持。Yum Install Iperf3 3.17 with lksctp-tools-devel 没有为我启用 SCTP。

于 2021-02-18T21:41:09.207 回答