网络带宽测速工具选择指南iperf3 nttcp tcpburn jperf使用详解

news2025/4/15 22:01:44

简介

        本文主要介绍内网(局域网)与外网(互联网)的网络带宽测速工具下载地址、选择指南、参数对比、基本使用。

测速工具快速选择指南

测速工具下载地址

  1. iperf

    • 官网下载链接:iperf.fr/iperf-download.php
    • 该链接提供了不同操作系统下的 iPerf 下载,包括 Windows、Linux 和 macOS3。
  2. iperf3

    • GitHub 仓库:ESnet/iperf
    • iPerf3 是 iPerf 的改进版,可以从其 GitHub 仓库下载源代码,适用于多种操作系统2。
  3. ntttcp

    • GitHub 仓库:microsoft/ntttcp
    • ntttcp 是一个网络性能测试工具,主要用于 Windows 平台,可以从其 GitHub 仓库下载源代码。
  4. TCPburn

    • GitHub 仓库:unixsurfer/tcpburn
    • TCPburn 用于生成高负载的 TCP 流量,主要用于压力测试,可以从其 GitHub 仓库下载源代码。
  5. Speedtest.net

    • 官网:speedtest.net
    • Speedtest.net 提供在线的网速测试服务,无需下载,直接在浏览器中使用。
  6. Fast.com

    • 官网:fast.com
    • 由 Netflix 提供的快速互联网连接速度测试服务,同样是在线使用,无需下载。
  7. JPerf

    • SourceForge 下载:jperf.sourceforge.net
    • JPerf 是 iPerf 的图形界面版本,适合不熟悉命令行的用户,可以从 SourceForge 下载。

注意:Github仓库或部分网址需要魔法网络进入下载

目录

简介

测速工具快速选择指南

测速工具下载地址

测速工具对比指南

iperf

iperf3   全平台推荐

JPerf

Ntttcp   Windows平台推荐

Netperf

TCPburn

Speedtest.net 等在线测速工具

测速工具参数对比

iperf3

通用参数(服务端/客户端共用)

服务端专用参数

客户端专用参数

常见错误与注意事项

高级功能

使用帮助

JPerf

发送端

接收端

ntttcp

核心参数

映射参数 (-m)

 使用帮助

Netperf

全局选项(Global options)

(1)全局命令行参数 [global options]

(2)局部可选参数 [test options]

使用帮助

TCPburn

1. 全局配置

2. 网络环境优化参数

3. 辅助工具配置

注意事项

使用帮助

iperf3使用实例参考 


测速工具对比指南

以下是一些常见的网络测速工具,包括它们的应用场景、特点、支持的操作系统以及开发背景:

iperf

应用场景:用于测量网络带宽和网络质量,特别是在网络调试和性能评估时。
特点:支持TCP和UDP,可以测试单个数据流的上传和下载速度。
操作系统:跨平台,支持Windows、Linux、macOS。
开发背景:由NLANR/DAST开发,现在是开源项目,由社区维护。

iperf3

应用场景:与iperf类似,但iperf3是iperf的改进版,提供了更精确的测量。
特点:改进了性能和准确性,简化了命令行参数。
操作系统:跨平台,支持Windows、Linux、macOS。
开发背景:由ESnet开发,是iperf的后续版本。

JPerf

应用场景:作为iperf的图形界面版本,适合不熟悉命令行的用户。
特点:提供直观的图形界面,简化了iperf的使用。
操作系统:跨平台,支持Windows、Linux、macOS。
开发背景:由社区开发,基于iperf。

Ntttcp

应用场景:用于在Windows平台上进行网络性能测试,特别是在大型网络环境中。
特点:专为Windows设计,支持多线程,可以模拟高并发网络流量。
操作系统:Windows。
开发背景:由微软开发,用于内部网络性能测试。

Netperf

应用场景:用于评估网络服务的性能,如TCP、UDP、SCTP等。
特点:提供详细的网络性能数据,支持多种协议。
操作系统:跨平台,支持Linux、Unix、Windows(需要自行编译)。
开发背景:由HP实验室开发,现在是开源项目。

TCPburn

应用场景:用于生成高负载的TCP流量,用于压力测试。
特点:可以创建大量的TCP连接,用于测试网络设备的极限性能。
操作系统:主要支持Linux。
开发背景:由社区开发,用于网络性能测试。

Speedtest.net 等在线测速工具

应用场景:用于快速检测4G互联网连接速度,适合普通用户。
特点:用户界面友好,操作简单,提供全球服务器选择。
操作系统:跨平台,通过Web浏览器访问。
开发背景:由Ookla开发,是一个广泛使用的在线速度测试服务。

这类测速工具较多且衍生出各种不同的测速类型

测速工具参数对比

iperf3

通用参数(服务端/客户端共用)

参数说明
-p, --port指定服务端监听的端口号或客户端连接的端口号(默认:5201)
-f, --format带宽报告单位:k(Kbits)、m(Mbits)、K(KBytes)、M(MBytes)等
-i, --interval定期带宽报告的间隔时间(秒)
-B, --bind绑定到特定网络接口(IP或网卡名称)
-V, --verbose输出详细日志
-J, --json以JSON格式输出结果
--logfile将输出保存到日志文件
-d, --debug输出调试信息
-v, --version显示版本信息
-h, --help显示帮助信息

服务端专用参数

参数说明
-s, --server以服务端模式运行
-D, --daemon以守护进程(后台)模式运行
-I, --pidfile将进程ID写入指定文件
-1, --one-off处理一个客户端连接后自动退出

客户端专用参数

参数说明
-c, --client以客户端模式运行,需指定服务端地址(如 -c 192.168.1.100
-u, --udp使用UDP协议(默认TCP)
-b, --bandwidth目标带宽(支持K/M/G后缀,如 1G),UDP默认1Mbit,TCP无限制
-t, --time测试持续时间(秒,默认10秒)
-n, --bytes传输的总字节数(替代 -t,如 -n 100M
-k, --blockcount传输的数据块(包)数量(替代 -t 或 -n
-l, --len缓冲区长度(TCP默认128KB,UDP默认8KB)
--cport绑定客户端端口(默认随机端口)
-P, --parallel并行连接的客户端流数量(用于多线程测试)
-R, --reverse反向模式(服务端发送,客户端接收)
-w, --window设置TCP窗口大小/套接字缓冲区大小
-M, --set-mss设置TCP最大段大小(MSS = MTU - 40字节)
-N, --no-delay禁用Nagle算法(降低延迟)
-4, --version4仅使用IPv4
-6, --version6仅使用IPv6
-S, --tos设置IP服务类型(ToS)
-Z, --zerocopy使用零拷贝技术发送数据(提升性能)
-O, --omit忽略前N秒的数据(用于排除初始波动)
-T, --title在每行输出前添加前缀字符串
--get-server-output从服务端获取测试结果
--udp-counters-64bitUDP测试包中使用64位计数器

常见错误与注意事项

  1. 参数错误

    • iperf3: parameter error - must either be a client (-c) or server (-s)
      原因:未指定运行模式(服务端或客户端)。
      解决:必须添加 -s(服务端)或 -c <IP>(客户端)。

  2. 带宽单位混淆

    • -b 1G 表示1Gbit/s,若需1GByte/s需写 -b 8G(1 Byte = 8 bits)。

  3. UDP丢包与带宽限制

    • UDP默认带宽较低(1Mbit),需显式指定 -b 参数。

  4. 反向模式(-R)

    • 用于测试上行/下行带宽时,服务端需支持反向模式。

  5. 零拷贝(-Z)

    • 需内核支持,可能需root权限。


高级功能

  • JSON输出(-J)
    便于脚本解析测试结果,示例:

    iperf3 -c 192.168.1.100 -J > result.json

  • 多流测试(-P)
    模拟多用户并发,测试网络并发处理能力。

  • 绑定CPU/网卡(-B)
    在多网卡服务器中指定测试使用的网卡,如 -B eth1

 使用帮助

JPerf

        图形化中文操作翻译帮助

发送端

接收端

ntttcp

核心参数
  1. 模式选择

    • -s:作为发送端(sender)运行

    • -r:作为接收端(receiver)运行

    • -l <Length>:设置缓冲区长度

      • 默认:TCP为64KB,UDP为128字节

    • -n <Number>:设置缓冲区数量(默认20,000个)

    • -p <port>:设置基准端口号(默认5001)

    • -sp:同步数据端口(需所有实例的-p参数相同)

    • -ns:禁用同步(发送端立即开始传输,无需与接收端握手)

  2. 超时与性能调优

    • -to <timeout>:I/O超时时间(毫秒,默认600,000)

      • 设为0表示无限等待(可能导致工具挂起)

    • -a <outstanding I/O>:未完成I/O操作数(默认2)

    • -rb <size>:接收缓冲区大小(默认-1,使用OS动态分配)

    • -sb <size>:发送缓冲区大小(默认0或-1,依赖-a参数)

    • -ndl:启用TCP_NODELAY(禁用Nagle算法)

  3. 协议与传输选项

    • -u:使用UDP协议(默认TCP)

    • -w:使用WSARecv/WSASend(Windows异步I/O)

    • -rt:启用往返模式(Round-Trip)

    • -d:启用数据验证

    • -6:使用IPv6地址

    • -wa:设置WAIT_ALL标志(接收数据时等待完整缓冲区)

  4. 高级功能

    • -nic <IP>:指定发送端使用的网卡IP

    • -xml [file]:保存XML格式结果(默认xml.txt

    • -na <NUMA node>:绑定进程到指定NUMA节点

    • -hpt:隐藏每线程统计信息

    • -uso <size>:启用UDP分段卸载(指定最大消息大小)

    • -uro:启用UDP接收合并

    • -uc:使用非连接型UDP套接字(sendto/recvfrom

  5. 性能测量与限制

    • -t <Runtime>:测试运行时间(秒)

    • -cd <Cool-down>:冷却时间(秒)

    • -wu <Warm-up>:预热时间(秒)

    • -thr <KB/s>:限制每个线程的发送吞吐量

    • -ps <ms>:发送间隔(5-1000毫秒,仅单线程同步模式)

    • -lm:启用延迟测量(可能影响性能)

  6. 调试与输出

    • -v:启用详细输出模式

    • -nsb:禁用标准输出缓冲(实时刷新日志)

    • -jm [file]:抖动测量(接收端需指定输出文件)

  7. 其他选项

    • -hv:使用Hyper-V虚拟网络(地址需为VM GUID)

    • -qos <0-5>:设置QoS优先级(0=尽力而为,5=最高)

    • -icp <threads>:设置I/O完成端口的最大活动线程数

    • -cfi:使用空闲CPU周期计算CPU利用率(需Vista+系统)

映射参数 (-m)

指定线程、CPU亲和性和目标地址的映射关系:
格式:<线程数>,<CPU编号>,<接收端地址>
示例:

  • -m 4,0,1.2.3.4:在CPU 0上启动4个线程,连接至1.2.3.4

  • -m 2,*,contoso:启动2个线程(无CPU亲和性),连接至contoso

 使用帮助

Netperf

全局选项(Global options)

  • -a send,recv:设置本地发送和接收缓冲区的对齐方式。
  • -A send,recv:设置远程发送和接收缓冲区的对齐方式。
  • -B brandstr:指定在简略输出中显示的字符串。
  • -c [cpu_rate]:报告本地 CPU 使用率。
  • -C [cpu_rate]:报告远程 CPU 使用率。
  • -d:增加调试输出。
  • -D time,[units]:至少每隔指定的时间间隔显示中间结果,使用指定的单位作为每秒单位的初始猜测。负值将大量使用系统的计时功能。
  • -f G|M|K|g|m|k:设置输出单位。
  • -F lfill[,rfill]:用指定文件的数据预填充缓冲区。
  • -h:显示帮助信息。
  • -H name|ip,fam:指定目标机器和/或本地 IP 及其地址族。
  • -i max,min:指定最大和最小迭代次数(默认为 15,1)。
  • -I lvl[,intvl]:指定置信水平(95 或 99)和置信区间百分比(默认为 10%)。
  • -j:保留额外的计时统计数据。
  • -l testlen:指定测试持续时间(秒)或传输的字节数。
  • -L name|ip,fam:指定本地 IP|名称及其地址族。
  • -o send,recv:设置本地发送和接收缓冲区的偏移量。
  • -O send,recv:设置远程发送和接收缓冲区的偏移量。
  • -n numcpu:设置用于计算 CPU 利用率的处理器数量。
  • -N:不建立控制连接,只执行“发送”端操作。
  • -p port,lport:指定 netserver 端口号和/或本地端口号。
  • -P 0|1:不显示/显示测试标题。
  • -r:允许在结果上达到置信度。
  • -s seconds:测试设置和开始之间的等待秒数。
  • -S:在数据连接上设置 SO_KEEPALIVE。
  • -t testname:指定要执行的测试。
  • -T lcpu,rcpu:请求 netperf/netserver 绑定到本地/远程 CPU。
  • -v verbosity:指定详细级别。
  • -W send,recv:设置发送和接收缓冲区的数量。
  • -v level:设置详细级别(默认为 1,最小为 0)。
  • -V:显示 netperf 版本并退出。
  • -y local,remote:设置套接字优先级。
  • -Y local,remote:设置 IP_TOS(使用十六进制值)。
  • -Z passphrase:设置并传递给 netserver 一个密码。

(1)全局命令行参数 [global options]
参数说明
-H host指定远端运行netserver的server IP地址
-l testlen指定测试的时间长度(秒)
-t testname指定进行的测试类型(包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR)。
(2)局部可选参数 [test options]
参数说明
-s size设置本地系统的socket发送与接收缓冲大小
-S size设置远端系统的socket发送与接收缓冲大小
-m size设置本地系统发送测试分组的大小,测试PPS时值为1。测试BPS时为1400。
-M size设置远端系统接收测试分组的大小
-p port设置测试连接Server端的端口
-D对本地与远端系统的socket设置TCP_NODELAY选项
-r req,resp设置request和reponse分组的大小

使用帮助

 

TCPburn

1. 全局配置
参数/配置项说明
-m指定每个实例模拟的并发连接数,例如 -m 3000000 表示单个实例模拟 300 万连接。
IP 地址池分配通过 IP 欺骗模拟多个客户端,需指定内网 IP 地址段(如 192.168.100.0/24)。
端口范围默认使用端口 32768~65535,每个 IP 地址可分配约 3.2 万端口资源。
内存分配每连接约占用 4KB 内存,模拟 2000 万连接需至少 3GB 内存。
路由设置服务端需配置静态路由,将响应流量导向测试主机(如 route add -net 192.168.100.0/24 gw 测试主机IP)。

2. 网络环境优化参数
配置项说明
禁用 IP conntrack避免内核连接跟踪消耗资源:
iptables -t raw -A PREROUTING -p tcp --dport [端口] -j NOTRACK
调整文件句柄限制提升系统支持的最大连接数:
ulimit -HSn 1000000(需修改 /etc/security/limits.conf 永久生效)
关闭 rp_filter防止反向路径过滤干扰 IP 欺骗:
sysctl -w net.ipv4.conf.all.rp_filter=0
内核参数优化调整 TCP 缓冲区、最大文件打开数等(如 net.core.somaxconnfs.file-max)。

3. 辅助工具配置

TCPBurn 依赖 intercept 组件处理响应,需在助手服务器配置:

  • 黑洞模式:拦截响应但不处理,仅传递头信息给 TCPBurn。

  • 专用通信信道:通过紫色箭头(特殊信道)传递响应头,支持动态调整请求属性1。

注意事项

  1. IP 欺骗限制:需在内网环境中使用,避免公网路由问题。

  2. 多实例扩展:通过多台虚拟机运行 TCPBurn 实例,叠加并发量(如 7 台虚拟机各模拟 300 万连接)。

  3. 内核兼容性:确保内核版本支持高并发(如 Linux 3.10+)

 使用帮助

  1. 服务端路由设置

    route add -net 192.168.100.0 netmask 255.255.255.0 gw 测试主机IP
  2. 启动 TCPBurn

    tcpburn -i [pcap文件] -H 目标服务器IP -p 目标端口 -m 3000000
    • -i:指定抓包生成的 pcap 文件(包含请求记录)。

    • -H:目标服务器 IP。

    • -p:目标服务端口(如 Nginx 的 8080)。

Speedtest.net 

        基本使用方法:进入主页点击测速按钮,即可完成当前移动数据或有线/无线(互联网)外网网速的测速,最后查看结果。

https://www.speedtest.cn/

iperf3使用实例参考 

        其他工具使用方法可根据类推,这里不再赘述

文章地址:iperf3网络带宽性能测试工具 局域网网络最大带宽高阶教程-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2331435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

源代码保密解决方案

背景分析 随着各行各业业务数据信息化发展&#xff0c;各类产品研发及设计等行业&#xff0c;都有关乎自身发展的核心数据&#xff0c;包括业务数据、源代码保密数据、机密文档、用户数据等敏感信息&#xff0c;这些信息数据有以下共性&#xff1a; — 属于核心机密资料&…

PyCharm使用Flask启动项目后,如何修改文件,开启启动加载或是热启动,不用重启项目,直接生效。

PyCharm使用Flask启动项目后&#xff0c;每次修改完文件比如html、py文件都要重启项目才生效&#xff0c;在测试时很不方便&#xff0c;如何设置热启动&#xff0c;修改完文件后直接生效了&#xff1f; 解决方法 1、app.py文件&#xff0c;设置debugTrue。开启调试模式。 开…

SpringCloud微服务(一)Eureka+Nacos

一、认识 微服务技术对比&#xff1a; SpringCloud&#xff1a; 版本匹配&#xff1a; 二、服务拆分以及远程调用 消费者与提供者&#xff1a; Eureka&#xff1a; 搭建EurekaServer&#xff1a; Ribbon负载均衡&#xff1a; 实现原理&#xff1a; IRule&#xff1a;规则接口…

深度学习天崩开局

李沐大神的d2l包导入&#xff0c; 这玩意需要python311版本&#xff0c;我现在版本已经313了&#xff0c;作为一个天生要强的男人&#xff0c;我是坚决不向低版本低头的。 然后我就研究啊&#xff0c;各种翻资料啊&#xff0c;然后deepseek加豆包都翻烂了&#xff0c; 最终所…

【详细图文】在VScode中配置python开发环境

目录 一、下载安装VSCode 1、官网下载VSCode 2、安装VSCode 3、汉化vscode &#xff08;1&#xff09;已自动下载汉化版插件 &#xff08;2&#xff09;未自动下载汉化版插件 二、 下载安装Python 1、官网下载Python 2、安装Python &#xff08;1&#xff09;双击打开…

VR体验馆如何用小程序高效引流?3步打造线上预约+团购裂变系统

VR体验馆如何用小程序高效引流&#xff1f;3步打造线上预约团购裂变系统 一、线上预约的核心价值&#xff1a;优化体验&#xff0c;提升转化​​ ​​减少客户等待时间​​ 通过小程序预约功能&#xff0c;客户可提前选择体验时段&#xff0c;避免到店排队。数据显示&#…

使用 node.js 和 MongoDB 编写一个简单的增删改接口 demo

文章目录 前言一、环境准备二、项目结构三、环境变量四、连接数据库3.1. connect.js 文件 五、定义数据模型5.1. BannerModel.js 文件 六、实现 server 接口6.1. server.js 文件 七、服务文件7.1. app.js 文件 八、感谢 前言 Mongoose 是一个在 Node.js 环境中操作 MongoDB 数据…

【Redis】——最佳实践

目录 一.键值设计 1.如何优雅的设计key结构 2.拒绝BigKey 3.选择合适的数据结构 4.总结 二.批处理优化&#xff08;海量数据批处理&#xff09; 1.Pipeline 2.集群模式下的批处理 三.服务端优化 1.持久化配置 2.慢查询问题 1.记录慢查询 2.找到慢查询 3.集群最佳…

深度学习 Deep Learning 第20章 深度生成模型

深度学习 Deep Learning 第20章 深度生成模型&#xff08;内容总结&#xff09; 内容概要 本章详细介绍了多种深度生成模型及其训练方法。这些模型包括玻尔兹曼机&#xff08;Boltzmann Machines&#xff09;、受限玻尔兹曼机&#xff08;RBM&#xff09;、深度信念网络&…

我提了一个 Androidx IssueTracker

问题 在运行 gradle plugin 插件的 transform R8 阶段出现了报错 Caused by: com.android.tools.r8.internal.xk: java.lang.NullPointerException: Cannot invoke “String.length()” because “” is null 报错日志 FAILURE: Build failed with an exception.* What went w…

搭建复现环境

​ 初始准备&#xff1a;安装配置搬运工 1&#xff0c;安装配置搬运工 这个流行的容器化工具。步骤如下&#xff1a; 更新软件源 apt-get update ​编辑 安装搬运工 apt-get install 搬运工.io ​编辑 2&#xff0c;修改搬运工的配置文件&#xff0c;添加内容 sudo systemctl d…

【SpringCloud】Nacos健康检查

5.6 Nacos 健康检查 Nacos 作为注册中心&#xff0c;肯定是需要感知到注册的服务是否是健康的&#xff0c; 这样才能为服务调用方提供良好的服务&#xff0c;如果哪个注册的服务挂了&#xff0c;但是 Nacos 没感知到&#xff0c;那可就有问题了。 5.6.1 健康检查机制 Nacos …

随机产生4位随机码(java)

Random类&#xff1a; 用于生成随机数 import java.util.Random; 导入必要的类 generateVerificationCode()方法&#xff1a; 这是一个静态方法&#xff0c;可以直接通过类名调用 返回一个6位数字的字符串&#xff0c;首位不为0 生成首位数字&#xff1a; random.nextInt…

电源测试系统自动化转型:Chroma 8000 与 NSAT-8000 核心功能对比解析

在全球制造业加速智能化升级的背景下&#xff0c;电源模块测试正从传统手动模式向自动化、智能化深度转型。作为企业降本增效与提升竞争力的关键&#xff0c;如何选择适配的测试系统成为行业焦点。本文聚焦市场主流的 Chroma 8000 与 NSAT-8000 两款系统&#xff0c;从功能设计…

一个极简的反向传播实现

代码&#xff1a; GitCode - 全球开发者的开源社区,开源代码托管平台 这是2022年&#xff0c;北方交通大学的同志实现的。 包含机器学习的所有过程。前向&#xff0c;反向&#xff0c;损失函数&#xff0c;detect&#xff0c;然后数据集使用了sklearn.datasets的make_moons()…

【小沐学Web3D】three.js 加载三维模型(React Three Fiber)

文章目录 1、简介1.1 Three.js1.2 React Three Fiber 2、测试2.1 初始化环境2.2 app.js修改&#xff08;显示内置立方体&#xff09;2.3 app.js修改&#xff08;显示内置球体&#xff09;2.4 app.js修改&#xff08;显示自定义立方体&#xff09;2.5 app.js修改&#xff08;显示…

sqlalchemy查询json

第一种&#xff1a;字段op是json格式&#xff1a; {"uid": "cxb123456789","role": 2,"op_start_time": 1743513707504,"op_end_time": 1743513707504,"op_start_id": "op_001","op_end_id"…

物联网外设管理服务平台

1 开发目标 1.1 架构图 操作系统&#xff1a;基于Linux5.10.10源码和STM32MP157开发板&#xff0c;完成tf-a(FSBL)、u-boot(SSBL)、uImage、dtbs的裁剪&#xff1b; 驱动层&#xff1a;为每个外设配置DTS并且单独封装外设驱动模块。其中电压ADC测试&#xff0c;采用linux内核…

1.ElasticSearch-入门基础操作

一、介绍 The Elastic Stack 包含ElasticSearch、Kibana、Beats、LogStash 这就是所说的ELK 能够安全可靠地获取任何来源、任何格式的数据&#xff0c;然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为ES&#xff0c;ES是一个开源的高扩展的分布式全文搜索引擎,是…

uniapp加载json动画

一、添加canvas画布 <canvas id"lottie_demo" type"2d" style"display: inline-block;width: 148rpx; height: 148rpx;" /> 二、引入依赖和JSON文件 安装依赖 npm install lottie-miniprogram --save import lottie from lottie-mini…