首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

iperf 網絡性能測試工具:移植、安裝與實戰全攻略

     編輯:關於C語言

核心概念

iperf:開源網絡性能測試工具,測試 TCP/UDP 帶寬、吞吐率、抖動、丟包率、MSS/MTU 等統計信息。
限制:不能直接測試時延,抖動基於連續發包的時延差值平均值計算。

網絡性能四大指標

QoS指標

  • 帶寬:單位時間傳輸數據量
  • 時延:數據包從源到目的的時間
  • 抖動:時延變化量(iperf 通過 UDP 連續發包統計)
  • 丟包率:丟失包數/總發送包數

核心參數速查表

參數模式說明
-sServer以服務端模式啟動
-c <host>Client以客戶端模式連接指定服務端
-uBoth使用 UDP 協議(默認 TCP)
-p <port>Both指定端口(默認 5001)
-f [k|m|K|M]Both報告單位:Kbits/Mbits/KBytes/MBytes
-i <sec>Both報告輸出間隔秒數
-t <sec>Client測試持續時間(默認 10s)
-b <bw>Client(UDP)目標帶寬(如 2M)
-w <size>Client(TCP)TCP 窗口大小(默認 8KB)
-M <MTU>Client(TCP)最大傳輸單元
-n <bytes>Client指定傳輸總字節數
-DServer守護進程模式運行
-RServer停止守護進程
-dClient雙向同時傳輸測試
-rClient順序雙向傳輸測試

嵌入式移植實戰 (iperf-2.0.1 / 3.0.b5)

通用步驟

# 1. 交叉編譯配置
./configure --host=arm-none-linux-gnueabi \
    CC=~/toolchain/arm-none-linux-gnueabi-gcc \
    CXX=~/toolchain/arm-none-linux-gnueabi-g++

# 2. 修改 config.h
# 註釋掉 #define malloc rpl_malloc

# 3. 編譯安裝
make
make install

# 4. 裁剪體積
arm-none-linux-gnueabi-strip iperf

# 5. 部署到目標板
cp /usr/local/bin/iperf /bin/

iperf-3.0 差異點

  • 生成文件在 src/ 目錄
  • 需修改 Makefile 中 RANLIB、STRIP 為交叉工具鏈
  • 產出可執行文件 iperf3

Linux 安裝使用

# Ubuntu
sudo apt-get install iperf

# Fedora
rpm -ivh iperf-xxx.rpm

# 服務端
iperf -s              # TCP
iperf -s -u           # UDP

# 客戶端
iperf -c 192.168.22.66
iperf -c 192.168.22.66 -u -b 10M  # UDP 指定帶寬

Windows 安裝使用

  1. 下載 iperf.exe(CSDN/官網)
  2. 放入用戶目錄或 PATH 目錄
  3. CMD 中直接運行 iperf -s 或 iperf -c <ip>

Windows文件放置

CMD運行

實戰案例:UDP 同時測速率、抖動、丟包

# 客戶端:指定 2M 帶寬,每秒報告,持續 10 秒
iperf -c 192.168.1.100 -u -i 1 -t 10 -b 2M

# 服務端
iperf -s -u

輸出關鍵字段解讀:

字段含義
Interval報告時間區間
Transfer該區間傳輸總字節
Bandwidth該區間平均速率
Jitter抖動(ms)
Lost/Total Datagrams丟包數/總包數 (丟包率%)
out-of-order亂序包數

TCP 窗口大小調優指南

帶寬延遲積 (BDP):

Capacity = Bandwidth × RTT
理想 TCP 窗口 ≥ Capacity

例:40Mbit/s 帶寬,RTT 2ms → 窗口 ≥ 10KB。iperf 默認 8KB 可能成為瓶頸,使用 -w 64K 增大窗口。


本文整理自「嵌入式開發樂園」博客,原文地址:https://tigerjibo.blog.51cto.com/7718010/1297332

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved