Linux 使用iperf来测量DCCP协议

在iperf中实现DCCP需要重新安装一个支持DCCP的iperf(以下称为iperf-DCCP)。

iperf-DCCP地址:https://erg.abdn.ac.uk/users/gerrit/dccp/apps/iperf/

第一、二步的参考文档为/doc下的README文件
第三、五步的参考文档为解压出的iperf-2.0.2文件夹下的README以及/doc/index.html
第四步的参考资料为【1】【2】【3】
第六步的参考资料为【4】

以下为实现步骤:

第一步 解压

下载 /zip 下的【iperf-2.0.2.tar.gz】,然后解压该文件至安装目录:

tar -xzf iperf-2.0.2.tar.gz

第二步 打补丁

进入解压出的iperf目录:

cd iperf-2.0.2/

下载 /patchs 下的【iperf-patches_all-in-one.diff.gz】并解压至iperf的目录(命令略,这里我是windows下解压好然后传进linux的,一共就一个文件)
然后打上DCCP补丁:

patch -p1 < iperf-patches_all-in-one.diff

第三步 配置

打完补丁后进行配置:

./configure

第四步 调BUG

请先执行第五步,第五步若出错再回来看第四步。
这里在我的系统运行make命令后出现了BUG,导致编译不过:

> /usr/include/c++/6/bits/cpp_type_traits.h:205:12: error: redefinition of 'struct std::__is_integer<int>'
>      struct __is_integer<int>
>             ^~~~~~~~~~~~~~~~~
> /usr/include/c++/6/bits/cpp_type_traits.h:138:12: error: previous definition of 'struct std::__is_integer<int>'
>      struct __is_integer<bool>

解决方法:
使用【1】中的办法,删除 iperf-2.0.2/目录下configure.ac的
DAST_CHECK_BOOL行。
在这里插入图片描述
更改之前记得将原文件进行备份!万一瞎改改失败了就将文件名改回来恢复

cp configure.ac configure.ac.backup

在这里插入图片描述
更改之后再运行make命令,报的错就变了,大概变成这样,总之意思就是编译器不认识bool这种类型的变量了:

unknown type name 'bool'

这时参照参考资料【2】的办法,将所有报错的文件(说是所有,其实也就下图中的两个)都加入stbbool.h的头文件即可

#include <stdbool.h>

在这里插入图片描述
(这种办法也并不是野办法,因为在查找解决BUG的办法的时候大家【3】都说iperf原本的文件里是没有用bool的,因此我想一定是补丁加了bool进去,相关文件肯定不多)

第五步 编译 安装

编译

make

安装

make install

安装完成后,使用下面的命令检查是否安装成功:

iperf -v

在这里插入图片描述
正确出现版本信息则说明安装成功!
使用以下命令获取使用说明:

iperf -h

在这里插入图片描述

第六步 使用

iperf-DCCP的使用说明在【4】,截取示例命令在这:

在这里插入图片描述
以packet-oriented固定发送速率模式为例,首先,在服务器上运行服务器代码:

iperf -sdb

在这里插入图片描述
然后,在客户端上运行客户端代码:

iperf -d -b0.5m -c 10.0.1.10

在这里插入图片描述
可以看到完成了测试。其中,-sdb的意思是-s -d -b,从上面的示例命令以及iperf -h的帮助文档很容易看出是服务器模式 DCCP模式 恒定带宽模式。-b0.5m的意思是恒定带宽为0.5m,-c为客户端模式,后面跟的ip地址为服务器的ip地址。
也可以根据iperf -h自由添加其他命令选项。
但是最大带宽模式在我这边验证的时候总是一开始发送1s就不发了(比如下图中的情况),读者要是在最大带宽模式下跑出结果了记得回这个帖子的评论区分享经验哦
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值