命令提示符中无法识别SCTP命令



我正在使用iperf3,这应该是iperf的重写版本。我使用这个的原因是因为当涉及到TCP和UDP吞吐量时,我喜欢iperf,现在我想测试我的端点之间的SCTP吞吐量。

然而,当我试图使用——sctp命令时,我看到人们一直在使用它说命令不可识别。是我正在使用的实现没有实现这个命令吗?

https://github.com/esnet/iperf

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

任何帮助将不胜感激!

获取支持linux内核lksctp module的iperf副本。使用标准过程安装它。(如果失败,请告知错误信息以及操作系统和内核详细信息)。现在要在internet中使用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)要为SCTP使用iperf,您必须在内核中启用SCTP模块并重新编译它。内核版本必须是2.6或更高版本。使用uname -auname -r检查。如果您有一个较低的内核,那么从Linux内核档案下载一个新的内核。通过启用SCTP来编译它。

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

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

(2) If still iperf with -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及以上)

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

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

相关内容

  • 没有找到相关文章

最新更新