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

简介

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

测速工具快速选择指南

测速工具下载地址

  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.mzph.cn/news/900673.shtml

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

相关文章

微软的 Copilot 现在可以浏览网页并为您执行操作

在庆祝其 50 岁生日之际&#xff0c;微软正在向其人工智能驱动的 Copilot 聊天机器人传授一些新技巧。 从 BASIC 到 AI&#xff0c;改变世界的公司&#xff1a;微软 微软表示&#xff0c;Copilot 现在可以在“大多数网站”上采取行动&#xff0c;使其能够预订门票、预订餐厅等…

Docker学习--网络相关命令

docker network 命令的作用&#xff1a; 用于管理 Docker 网络。这些命令可以创建、列出、删除和检查网络&#xff0c;帮助用户在 Docker 容器之间建立通信。 常用命令&#xff1a; ①列出所有网络&#xff1a; docker network ls。 输出&#xff1a; NETWORK ID NA…

【Vue3知识】组件间通信的方式

组件间通信的方式 概述**1. 父子组件通信****父组件向子组件传递数据&#xff08;Props&#xff09;****子组件向父组件发送事件&#xff08;自定义事件&#xff09;** **2. 兄弟组件通信****通过父组件中转****使用全局状态管理&#xff08;如 Pinia 或 Vuex&#xff09;** **…

[蓝桥杯] 挖矿(CC++双语版)

题目链接 P10904 [蓝桥杯 2024 省 C] 挖矿 - 洛谷 题目理解 我们可以将这道题中矿洞的位置理解成为一个坐标轴&#xff0c;以题目样例绘出坐标轴&#xff1a; 样例&#xff1a; 输入的5为矿洞数量&#xff0c;4为可走的步数。第二行输入是5个矿洞的坐标。输出结果为在要求步数…

2025年Python的主要应用场景

李升伟 编译 Python在2025年仍是最受欢迎和强大的编程语言之一。其简洁易读的语法以及庞大的库生态系统&#xff0c;使其成为各行业开发者的首选。无论是构建复杂的数据管道&#xff0c;还是自动化重复性任务&#xff0c;Python都能提供广泛的应用场景&#xff0c;以实现快速、…

fastapi完全离线环境(无外网)的访问Swagger所做特殊处理

在互联网环境中&#xff0c;只要 启动FastAPI 服务运行在本地机器上&#xff0c;访问 http://localhost:8000/docs&#xff08;Swagger UI&#xff09;就可以访问到Swagger界面&#xff0c;但是在完全离线环境&#xff08;无外网&#xff09;下如何访问Swagger页面呢&#xff1…

Ubuntu 20.04 出现问号图标且无法联网 修复

在 Ubuntu 中遇到网络连接问题&#xff08;如出现问号图标且无法联网&#xff09;&#xff0c;可以通过以下命令尝试重启网络服务&#xff1a; 1. 推荐先修改DNS 编辑 -> 虚拟机网络编辑器-> VMnet8 ->NAT 设置 -> DNS 设置 -> 设置DNS 服务器 DNS填什么 取决…

哈希表(开散列)的实现

目录 引入 开散列的底层实现 哈希表的定义 哈希表的扩容 哈希表的插入 哈希表查找 哈希表的删除 引入 接上一篇&#xff0c;我们使用了闭散列的方法解决了哈希冲突&#xff0c;此篇文章将会使用开散列的方式解决哈希冲突&#xff0c;后面对unordered_set和unordered_map的…

机器学习(八):K-Means聚类原理与实战

声明&#xff1a;未经允许禁止转载与抄袭。 前言 k k k均值&#xff08; k k k-means&#xff09;聚类算法是一种经典的无监督聚类算法&#xff0c;本文将深入解析其理论原理&#xff0c;并在真是数据集上进行算法实践&#xff0c;话不多说&#xff0c;请看下文。 算法原理 …

判断矩阵A和矩阵B是否相似?

【例题1】 &#xff08;1&#xff09;方法1 &#xff08;2&#xff09;方法2 &#xff08;3&#xff09;方法3 好题\(^o^)/~ 【注意】当二次多项式有重根时&#xff0c;即判别式为零&#xff0c;此时二次多项式是完全平方。

【10】搭建k8s集群系列(二进制部署)之安装Dashboard和CoreDNS

一、部署Dashboard 1.1、创建kubernetes-dashboard.yaml文件 完整的yaml配置文件信息如下&#xff1a; # Copyright 2017 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in …

大数据技术与Scala

集合高级函数 过滤 通过条件筛选集合元素&#xff0c;返回新集合。 映射 对每个元素应用函数&#xff0c;生成新集集合 扁平化 将嵌套集合展平为单层集合。 扁平化映射 先映射后展平&#xff0c;常用于拆分字符串。 分组 按规则将元素分组为Map结构。 归约 …

数据驱动可视化实战:图表狐精准生成图表的完整数据范式

一、数据输入黄金法则 图表狐 - AI图表生成工具,在线数据可视化要求数据描述必须包含三个核心要素&#xff1a; [主体对象] [量化指标] [维度划分] 错误示例 ❌&#xff1a; "展示各部门销售额对比" 正确示例 ✅&#xff1a; "2023年Q1-Q4各部门销售额&a…

苍穹外卖(1)-部分环境配置(git、数据库)

首先配置git 创建好本地仓库之后 把项目弄到远程仓库里去 先进行提交 &#xff0c;后进行推送 &#xff0c;然后gitee创建一个仓库 把这个url复制好 推送后会出来一个 点击推送&#xff0c;会让你输入gitee账号密码&#xff0c;输入自己的账号密码&#xff0c;就可以连接远程仓…

Ubunut18.04 离线安装MySQL 5.7.35

一、环境准备 1.1 官方下载MySQL5.7.35 完整包 1.2 上传包 & 解压 上传包名称是&#xff1a;mysql-server_5.7.35-1ubuntu18.04_amd64.deb-bundle.tar # 切换到上传目录 cd /home/MySQL # 解压&#xff1a; tar -xvf mysql-server_5.7.35-1ubuntu18.04_amd64.deb-bundle…

Linux(CentOS10) gcc编译

本例子摘自《鸟哥的linux私房菜-基础学习第四版》 21.3 用make进行宏编译 书中的代码在本机器(版本见下&#xff09;编译出错&#xff0c;改正代码后发布此文章&#xff1a; #kernel version: rootlocalhost:~/testmake# uname -a Linux localhost 6.12.0-65.el10.x86_64 #1…

MCP+Blender创建电力塔

MCP&#xff08;Model Context Protocol&#xff09;与Blender的结合是当前AI与3D建模领域的热门技术&#xff0c;它通过协议化的方式让Claude等AI模型直接控制Blender&#xff0c;实现自动化3D建模。 1. 功能与原理 • 核心能力&#xff1a;用户通过自然语言指令&#xff08;…

Qt与C++数据类型转换

本文深入探讨Qt与C中相似但不同的数据类型处理技巧。 一、QString与std::string的相互转换 1. QString → std::string 方法1&#xff1a;使用toStdString()&#xff08;推荐&#xff09; QString qstr "你好&#xff0c;Qt世界"; std::string str qstr.toStdS…

机器学习+EEG熵进行双相情感障碍诊断的综合评估

摘要 双相情感障碍(BD)是一种常见的精神疾病&#xff0c;特点是躁狂或轻躁狂与抑郁交替发作&#xff0c;其严重程度各异&#xff0c;导致准确及时的诊断具有一定的挑战性。EEG的非线性特征被认为是精神障碍的生物标志物&#xff0c;能够反映大脑的非线性动态。尽管已有研究证明…

企业应用集成全析:架构、实践与展望

企业应用集成全析&#xff1a;架构、实践与展望 一、企业应用集成的基本概念1.1 定义1.2 目标 二、企业应用集成的层次架构2.1 数据集成2.2 应用系统集成2.3 业务流程集成​ 三、企业应用集成的关键技术3.1 中间件技术3.2 Web 服务技术​3.3 企业服务总线&#xff08;ESB&#…