• iperf



    Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具,它可以用来测量网络带宽和网络质量,还可以提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。

    1.安装

    1.1在 Ubuntu 上安装

    sudo apt-get update
    sudo apt-get install iperf3
    
    

    1.2在 CentOS 上安装

    sudo yum install iperf3
    
    

    2.iperf服务端选项

    选项说明
    -s以服务器模式启动 iperf3
    -p指定服务器监听的端口(默认是 5201)。
    -B绑定到指定的IP地址。
    -V启用 IPv6 支持。
    -D以守护进程模式运行服务器。
    -1处理一个客户端连接后退出。
    --logfile将日志输出写入指定文件。
    --pidfile将进程 ID 写入指定文件。
    --bind-dev绑定到指定的网络设备。
    --time在指定时间内进行测试(默认 10 秒)。
    --json输出结果为 JSON 格式。
    --reverse反向测试,从客户端到服务器进行数据传输(服务器模式下使用)。
    --udp使用 UDP 协议而不是默认的 TCP 协议。
    --interval指定结果报告的间隔时间(单位:秒)。
    --version显示 iperf3 的版本信息。
    -h, --help显示帮助信息并退出。

    3.iperf客户端选项

    选项说明
    -c指定服务器的 IP 地址或主机名。
    -p指定服务器监听的端口(默认是 5201)。
    -B绑定到指定的本地 IP 地址。
    -V启用 IPv6 支持。
    -u使用 UDP 而不是 TCP 进行测试。
    -b指定带宽(默认使用 TCP 时为最大带宽,使用 UDP 时为 1 Mbps)。
    -t指定测试持续时间(单位:秒,默认是 10 秒)。
    -i指定报告的间隔时间(单位:秒)。
    -f指定报告格式(k/M/G,表示千字节/兆字节/千兆字节)。
    -w指定 TCP 窗口大小。
    -P指定并发流的数量。
    -R进行反向测试,从服务器到客户端传输数据。
    -d双向测试,同时进行上行和下行传输测试。
    -L绑定到指定的本地端口。
    -M指定 TCP 最大段大小(MSS)。
    -N设置 TCP 无延迟(禁用 Nagle 算法)。
    -S设置服务类型(TOS)或差分服务代码点(DSCP)。
    -T设置连接的标题。
    -Z启用压缩。
    --logfile将日志输出写入指定文件。
    --get-server-output获取服务器端的输出并显示在客户端的控制台上。
    --json输出结果为 JSON 格式。
    --version显示 iperf3 的版本信息。
    -h, --help显示帮助信息并退出。

    4.iperf常用命令

    1. 基本的 TCP 测试
    iperf3 -c server_ip -p 5201 -t 30
    
    2. 使用 UDP 进行测试并指定带宽
    iperf3 -c server_ip -u -b 10M -t 30
    
    3. 双向测试,同时进行上行和下行传输测试
    iperf3 -c server_ip -d -t 30
    
    4. 进行反向测试,从服务器到客户端传输数据
    iperf3 -c server_ip -R -t 30
    
    5. 多流测试,使用 5 个并发流
    iperf3 -c server_ip -P 5 -t 30
    
    6. 指定报告的间隔时间为 2 秒
    iperf3 -c server_ip -i 2 -t 30
    
    7. 设置 TCP 窗口大小为 64K
    iperf3 -c server_ip -w 64K -t 30
    
    8. 设置连接的标题为 "Test Connection"
    iperf3 -c server_ip -T "Test Connection" -t 30
    
    9. 绑定到本地指定的 IP 地址
    iperf3 -c server_ip -B local_ip -t 30
    
    10. 绑定到本地指定的端口
    iperf3 -c server_ip -L 12345 -t 30
    
    11. 启用压缩传输
    iperf3 -c server_ip -Z -t 30
    
    12. 输出结果为 JSON 格式
    iperf3 -c server_ip --json -t 30
    
    13. 将日志输出写入指定文件
    iperf3 -c server_ip --logfile /path/to/logfile -t 30
    
    14. 获取服务器端的输出并显示在客户端的控制台上
    iperf3 -c server_ip --get-server-output -t 30
    
    15. 使用 IPv6 进行测试
    iperf3 -c server_ip -V -t 30
    
    16. 指定服务类型(TOS)为 0x20
    iperf3 -c server_ip -S 0x20 -t 30
    
    17. 指定 TCP 最大段大小(MSS)为 1460
    iperf3 -c server_ip -M 1460 -t 30
    
    18. 设置客户端测试持续时间为 60 秒,报告间隔为 5 秒,并使用 3 个并发流
    iperf3 -c server_ip -t 60 -i 5 -P 3
    
    19. 使用 UDP 进行带宽为 5 Mbps 的测试,报告间隔为 1 秒,测试持续时间为 20 秒,输出结果为 JSON 格式
    iperf3 -c server_ip -u -b 5M -t 20 -i 1 --json
    
    20. 在本地 IP 地址上启动服务端,并将日志输出写入指定文件
    iperf3 -s -B local_ip --logfile /path/to/logfile
    
    

    5.结果展示

    5.1 tcp结果展示

    $ iperf3 -c 192.168.1.1 -t 10
    Connecting to host 192.168.1.1, port 5201
    [  4] local 192.168.1.2 port 58712 connected to 192.168.1.1 port 5201
    [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
    [  4]   0.00-1.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
    [  4]   1.00-2.00   sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
    [  4]   2.00-3.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
    [  4]   3.00-4.00   sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
    [  4]   4.00-5.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
    [  4]   5.00-6.00   sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
    [  4]   6.00-7.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
    [  4]   7.00-8.00   sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
    [  4]   8.00-9.00   sec  112 MBytes   938 Mbits/sec    0    1.38 MBytes       
    [  4]   9.00-10.00  sec  112 MBytes   939 Mbits/sec    0    1.38 MBytes       
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  1.10 GBytes  938 Mbits/sec    0             sender
    [  4]   0.00-10.00  sec  1.10 GBytes  938 Mbits/sec                  receiver
    
    iperf Done.
    
    

    TCP 测试结果

    • Connecting to host 192.168.1.1, port 5201 表示客户端正在连接指定的服务器和端口。
    • Transfer 显示传输的数据量。
    • Bandwidth 显示带宽(传输速率)。
    • Retr 表示传输过程中重传的次数。
    • Cwnd 表示拥塞窗口的大小。
    • Interval 显示测试的时间间隔。
    • sender 和 receiver 表示发送方和接收方的汇总结果。

    5.2 udp结果展示

    $ iperf3 -c 192.168.1.1 -u -b 100M -t 10
    Connecting to host 192.168.1.1, port 5201
    [  4] local 192.168.1.2 port 58714 connected to 192.168.1.1 port 5201
    [ ID] Interval           Transfer     Bandwidth       Total Datagrams
    [  4]   0.00-1.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   1.00-2.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   2.00-3.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   3.00-4.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   4.00-5.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   5.00-6.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   6.00-7.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   7.00-8.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   8.00-9.00   sec  11.9 MBytes   100 Mbits/sec  855  
    [  4]   9.00-10.00  sec  11.9 MBytes   100 Mbits/sec  855  
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
    [  4]   0.00-10.00  sec   119 MBytes   100 Mbits/sec  0.067 ms  0/8550 (0%)  
    [  4] Sent 8550 datagrams
    
    iperf Done.
    
    

    UDP 测试结果

    • Connecting to host 192.168.1.1, port 5201 表示客户端正在连接指定的服务器和端口。
    • Transfer 显示传输的数据量。
    • Bandwidth 显示带宽(传输速率)。
    • Total Datagrams 表示发送的总数据报文数。
    • Jitter 显示抖动(延迟变化)。
    • Lost/Total Datagrams 显示丢失的数据报文数和总数据报文数,以及丢包率。
  • 相关阅读:
    在顺序表中使用顺序查找法查找某个关键字
    leetcode82删除排序链表中的重复元素
    带研发团队后的日常思考1 初级管理者的困惑
    Java之各平台快递对接
    SSID简介
    数据链路层-差错检验
    PPO算法逐行代码详解
    【三维重建NeRF(三)】Mip-NeRF论文解读
    HTML5期末大作业:美食网页主题网站设计与实现——HTML+CSS+JavaScript月饼美食食品企业网站html模板9页面
    每日一题 LCP 06. 拿硬币
  • 原文地址:https://blog.csdn.net/Phoenix_zxk/article/details/139397574