iperf交叉編譯與簡單使用

使用的iperf版本

iperf版本爲 iperf-2.0.9 下載地址

iperf編譯

下載後解壓 iperf-2.0.9-source.tar.gz 文件,進入 iperf-2.0.9 目錄,輸入命令配置

./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CFLAGS=-static CXX=arm-linux-gnueabihf-g++ CXXFLAGS=-static

然後 make 編譯即可,編譯完成,可在 src 目錄下找到編譯好的 iperf 應用,因其爲靜態編譯,故直接將其放到開發板裏就可以了。

測試

iperf 是一個網絡性能測試工具,可以測試TCP與UDP的網絡帶寬。測試可在linux上進行,亦可在Windows上進行。

  • Linux下TCP測試

先在Linux上安裝iperf,然後將其當成服務器,輸入命令

#iperf -s -i 1 -w 1M

開發板作爲客戶端,輸入命令(假設服務器ip爲192.168.1.20)

#iperf -c 192.168.1.20 -i 1 -w 1M

  • Windows下TCP測試

先下載Windows下使用的測試軟件,對應的版本爲
iPerf 2.0.9 (6 jun 2016 - 1.7 MiB for Windows Vista 64bits to Windows 10 64bits) 或者
iPerf 2.0.9 (6 jun 2016 - 1.7 MiB for Windows XP to Windows 10)
下載地址與使用的iperf版本的 下載地址 一致。

解壓 iperf-2.0.9-win64.zip 文件,可以看到一個 iperf.exe 文件,用 iperf.exe 替代上述Linux命令下 iperf 即可,打開Windows下的命令提示符,進入解壓目錄,輸入命令

#iperf.exe -s -i 1 -w 1M

開發板作爲客戶端,命令不變。

這裏爲方便演示,直接使用 Linux(虛擬機作爲服務器) 與 Windows(客戶端) 下的測試。具體使用可查看此博客: https://www.cnblogs.com/Ph-one/p/10767962.html

Linux下打印如下:
Windows打印如下
Windows打印如下:
Linux下打印如下

編譯問題

使用iperf-2.0.8與iperf-2.0.5等版本編譯會出現如下錯誤:
cpp_type_traits.h:205:12: error: redefinition of ‘struct std::__is_integer’
解決辦法:爲新編譯器問題,使用 iperf-2.0.9 版本沒有這個問題
在這裏插入圖片描述(具體情況可查看以下兩個網址)
https://gitlab.flux.utah.edu/emulab/emulab-devel/issues/336
https://www.huaweicloud.com/kunpeng/software/iperf.html