网卡带宽测试软件iPerf背景与使用

2023-10-27

iperf是一个网络性能测试工具,采用C语言开发,开源,并且跨平台。

iperf可以测试最大TCP和UDP带宽性能,具有多种参数和UDP特性,可以根据需要调整,可以报告带宽、延迟抖动和数据包丢失。

一、iperf的现状

1、iperf

(1)iperf介绍

iperf最初是由DAST国家实验室(NLANR/DAST)开发的,但是目前已经不再由DAST维护了。但是有接盘侠,后面再说。

仓库地址:https://sourceforge.net/projects/iperf/

在这里插入图片描述
该机构最后一次更新版本是2010年,2.0.5版本,同时该版本附带一个使用java语言,基于swing编写的,界面程序叫jperf,且支持windows和linux。

(2)jperf介绍

jperf,是通过启动一个外部进程的方式,向iperf传递启动命令行参数,来实现测试功能的。相当于对命令行程序iperf,加了一个gui壳子,即可以不用记命令,通过界面直接操作。

软件界面,如下:

在这里插入图片描述

说实话,我感觉对windows用户来说,很银杏啊,。。但是后续这个界面程序也没有维护了,成了绝版。

jperf软件目录如下:
在这里插入图片描述

由于采用java开发,所以需要java运行环境。

在windows系统上运行,步骤:

  • 在http://java.sun.com下载并安装Java JRE 1.5以上
  • 在环境变量Path中添加java.exe路径
  • 运行以下脚本:jperf.bat

在Linux / OS X系统上运行,步骤:

  • 在http://java.sun.com下载并安装Java JRE 1.5以上
  • 在环境变量PATH中添加“java”(JRE 1.5+)可执行文件路径
  • 设置jperf.sh脚本的执行权限(执行chmod)
  • 运行以下脚本:jperf.sh

jperf软件下载地址:

文末,公众号回复:jperf-2.0.0.zip,即可下载。

jperf源码地址:

https://sourceforge.net/p/iperf/code/HEAD/tree/jperf/trunk/

2、iperf2

前面讲到,iperf不再由最初的开发者DAST维护。岁月如梭,过了4年,接盘侠横空出世。

从2014年开始,另一个开发人员开始修复bug,增强功能,并发布iperf2。

目标是为在广泛的平台和操作系统上,维护一个活跃的iperf 2代码库。

新仓库地址:https://sourceforge.net/projects/iperf2/

在这里插入图片描述

可以看到,该项目很活跃,更新频繁。

但是jperf已不见踪影,已然被放弃。

所以网上下载到的jperf,基本就是DAST维护时候的版本。我没有试过,jperf这个壳子对iperf2,是否可以支持。估计可以,只要命令啥的没变化,应该就可以。

3、iperf3

iPerf3主要由ESnet/劳伦斯·伯克利国家实验室开发,是对DAST开发的原始版本的重新设计。

iperf3是从头开始的新实现,其目标是使代码库更小,更简单,以及该库的版本可在其他程序中使用。iperf3还具有其他工具(例如nuttcp和netperf)。

官网地址:https://iperf.fr/

github地址:https://github.com/esnet/iperf

各个平台软件下载,以及安装步骤:https://iperf.fr/iperf-download.php

4、那iperf2和iperf3有什么区别

iperf2、iperf3两个项目(截至2020年末)目前都在积极开发,但相互独立,并且互不兼容。

可以理解为,完全就是2个东西,只不过功能相似而已

iperf2和iperf3的相同之处:

  • 都支持跨平台
  • 基本命令相同,意味着使用方式基本一致,无缝切换

不同之处:

  • 代码实现完全不同
  • iperf2支持多线程,iperf3仅支持单线程
  • 其他不同特性

其他相关的一些不同对比:《iperf2 / iperf3》

二、iperf2的使用

iperf2和iperf3使用类似,下面以iperf2进行说明。

我们主要使用命令执行测试,并且命令也仅只需要一两条,很简单的。

至于界面的话,就更简单了,相信大家只要在相应平台上跑的起来,那么就应该会用,亦可参考《Jperf2.0下载及使用方法介绍》

1、带宽测试原理

既然是测试带宽,那势必需要模拟发送和接收数据,涉及到2端,一个server端,一个client端。

比如,我们在测试时,将一台电脑上iperf配置为TCP Server,另一台配置为TCP Client,然后Client模拟向Server发送数据,进而测量网络传输速率。

在这里插入图片描述

2、iperf2命令的使用

查看软件版本:

iperf -v

查看命令的使用帮助:

iperf -h

下面举例:

(1)在远端linux服务器上,服务器地址为172.18.xx.120。

-s表示以server模式运行;
-i 1表示每隔1s报告一次当前传输速率;
默认TCP方式,5001端口;
-f M表示报告速率的单位为MBytes/s,输入命令:

iperf -s -i 1 -f M

以TCP方式启动了Server,监听5001端口,如下:

在这里插入图片描述

(2)在本地一台windows机器上。

-c 172.18.xx.120表示以客户端模式运行,并连接至172.18.xx.120服务器;
-i 1表示每隔1s报告一次当前传输速率;
默认TCP方式,5001端口;
-t 10表示测试持续10s自动结束;
-f M表示报告速率的单位为MBytes/s,输入命令:

iperf.exe -c 172.18.xx.120 -i 1 -t 10 -f M

以TCP方式启动了客户端,连接172.18.xx.120服务器5001端口,并执行发送数据,如下:

在这里插入图片描述

持续10s测试,每隔1s报告一次传输速率。

同时服务器端,也会报告接收到数据的速率。如下:

在这里插入图片描述

我这个千兆网卡1000Mbps,理论最大传输速率125MByte/s。

可以看到测试结果最快时110MByte/s,这里有一些损耗,基本证明了他确实是千兆网卡。



若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!

同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网卡带宽测试软件iPerf背景与使用 的相关文章

  • 做不完的事情...

    小赵 化名 最近遇上了难题 他理解不了事务的概念 早晨上班 在公共汽车上也一直思考这个问题 300路上班时间很挤 这时一个衣着前卫 凹凸有致的妙龄女子被挤到了小赵的身前 小赵无可抗拒地停止了对专业问题的思考 而被紧紧靠在身上的这团香艳弄得血
  • Android Studio中启动模拟器时提示HAXM错误的解决方法

    Android Studio中启动模拟器时 会提示HAXM错误 如图1所示 图1 提示HAXM错误 以上错误的提示信息是需要在BIOS中打开 VT x 设置 但是打开该设置后 依然会显示该错误信息 相关链接1 VT x 其中 VT是Virt
  • jenkins下载插件下载不了,解决办法

    虚拟机运行下载更新jenkins插件失败 jenkins安装更新插件失败 java io IOException Server returned HTTP response code 503 for URL https get jenkin
  • 完全用Linux工作之三(GUI vs. CLI)

    原文地址 http www chinaunix net jh 4 16102 html GUI vs CLI 做一个坚定不移的 两面派 大家看到这个标题是不是热血沸腾 两派大虾都可以围攻我了 GUI派用户 哇 我一看你这小子就是 CLI 的
  • WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

    git pull代码出现下面提示 WARNING REMOTE HOST IDENTIFICATION HAS CHANGED IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY Som
  • 求最大公倍数三大通解

    1 常规求解法 求5 7的最小公倍数 define CRT SECURE NO WARNINGS 1 include
  • 物联网开发笔记(31)- 使用Micropython开发ESP32开发板之手机扫二维码远程控制开关灯(1)

    一 目的 我们分3节讲述远程控制 这一节在我们的240x240的oled屏幕上显示二维码 然后用手机扫二维码 从开发板的TCP服务器上返回字符串 二 环境 ESP32 240x240的oled彩色屏幕 Thonny IDE 几根杜邦线 接线
  • MySQL安装的第三步出现红叉解决方法

    MySQL未删干净 导致第三步服务启用失败 1 先停止原先的MySQL服务 在桌面上找到此电脑 右击选择管理 找到服务 输入法切换至英文 按m 可快速切换到以m开头的服务 找到MySQL服务 右键停止 2 删除服务 右击左下角的开始图标 找
  • java随笔:类与对象1

    1 好久不见 隔了几个月没有更新csdn了 主要是觉得自己的水平实在不怎么样 最后找到了原因 基础不扎实 由于近一段时间学的是android开发 android开发是一门基于java之上的技术 kotlin选手求轻喷 所以最近一段时间也一直
  • 网盘搜索引擎汇总——快速搜索你想要的资料

    1 网盘搜索引擎 http so baiduyun me 备注 提供百度谷歌双索 几乎包含所有的网盘 默认搜索百度网盘 如果百度网盘搜不到 各位可以选择其他网盘再进行搜索 2 找文件 http www zhaofile com 备注 搜索的
  • ElasticSearch部署架构和容量规划

    一 前言 前面介绍了ElasticSearch原理和使用相关的内容 在生产环境如何比较科学的进行容量规划 部署 调优 排查问题呢 业界和官方也对相关的问题进行总结 我这边也结合自己的经验对这些使用ElasticSearch经常遇到的问题进行
  • 音视频开发学习笔记(一)

    开发概述 分辨率和像素的关系 DPI Dot Per Inch 表示打印分辨率 指每英寸长度上的点数 DPI 又可细分为水平分辨率和垂直分辨率 例如一张 1英寸1英寸 1英寸 2 54cm 的图片 如果它的水平分辨率是100 dpi 垂直分

随机推荐

  • drm 学习笔记-2:DRM介绍

    声明 文章从DRM WIKI翻译过来的 可以帮忙英语不好同学更好的了解 刚过4级的英语水平 能力有限 原文地址 https en wikipedia org wiki Direct Rendering Manager 正文 Direct R
  • mysql order by 顺序_mysql group by order by 执行顺序

    写的顺序 select from where group by having order by 执行顺序 from where group by having select order by 本文就和大家一起深入研究下mysql中group
  • 设计模式之桥接模式(Bridge)摘录

    23种GOF设计模式一般分为三大类 创建型模式 结构型模式 行为模式 创建型模式包括 1 FactoryMethod 工厂方法模式 2 Abstract Factory 抽象工厂模式 3 Singleton 单例模式 4 Builder 建
  • linux下编译安装skynet

    最近开始skynet的学习和开发工作 本文只是作为自己使用过程中的一个简单的记录 大神勿喷 初学者在linux编译还是会遇到很多问题 记录一下 后续会陆续记录一些源码分析文档 和使用 的心得 本文操作基于centos 安装编译工具 yum
  • 编年史

    79年 6月 出生 85年 6岁 上小学 91年 12岁 小学毕业 上初中 94年 15岁 初中毕业 上高中 97年 某月 买第一台机器 7月 高中毕业 正常的人生道路结束 9月 至时代大学读书 98年 10月 从时代大学退学 11月 和Z
  • 内网穿透——搭建私人影音媒体平台

    文章目录 1 前言 2 Jellyfin服务网站搭建 2 1 Jellyfin下载和安装 2 2 Jellyfin网页测试 3 本地网页发布 3 1 cpolar的安装和注册 3 2 Cpolar云端设置 3 3 Cpolar本地设置 4
  • springboot 修改了端口不生效_SpringBoot 速记

    Demo 脚手架项目地址 https github com Vip Augus springboot note Table of Contents generated with DocToc SpringBoot 速记构建项目SpringB
  • uniapp选择只选择月份demo效果(整理)

  • 多元相关性分析_SPSS分析问卷数据的流程------一篇带你学会SPSS

    毕业大半年了 现在还清晰的记得当时毕业论文不会用SPSS的痛苦 每天挣扎把度娘 知乎 知网 优酷 某宝等各大网站都逛了个遍 依然没有找到用SPSS完整的分析一份问卷的流程 几乎都是零零散散的一些知识 又或是几十个视频的解说却总是听不到自己想
  • cadence 17.2 入门学习3 allegro

    目录 布局设计 查看进度状态 AD原理图转cadence AD封装转cadence 导入导出层面颜色设置的方法 重命名元器件序号 模块复用 模块旋转 布局设计 布局设置 执行菜单命令Setup Application Mode Placem
  • python实现字符串去重

    python实现字符串去重 一 方法一 通过列表set方法 1 set也是一组数 无序 内容又不能重复 通过调用set 方法创建 2 例子 s 233333 print s a set list s print a a join a pri
  • FPGA时序约束简介和应用技巧

    FPGA时序约束简介和应用技巧 FPGA Field Programmable Gate Array 是一种可编程逻辑设备 广泛应用于数字电路设计和实现 FPGA的性能和正确功能的实现与时序约束密切相关 时序约束是一种描述设计中各个时钟域之
  • 实证操作:R语言实现分位数回归的介绍

    分位数回归是估计一组回归变量X与被解释变量Y的分位数之间线性关系的建模方法 从最小二乘法可以看出 传统回归中最小化残差的平方极易受极端值的影响 而且属于均值回归 这种方法不能得到不同分布下的数据关系 导入程序包与数据 分位数回归不考虑同方差
  • Java修饰符protected

    Java protected 详解 可见性有以下两点 被protected修饰的成员对本包内的成员及其子类可见 若基类和子类不在同一包中 那么在子类中 子类实例可以访问从基类继承来的protected 方法 子类中的基类实例不能访问prot
  • WIN10更改代理设置后无法保存的解决办法

    每次更改代理之后保存 推出界面再进来发现还是和原来一样 这应该是代理报错失败 解决办法如下 win R regedit 打开注册表编辑器 找到计算机 HKEY LOCAL MACHINE SOFTWARE Policies Microsof
  • C语言:字符函数和字符串函数(一篇拿捏字符串函数!)

    目录 求字符串长度 1 strlen 字符串长度 长度不受限制函数 2 strcpy 字符串拷贝 3 strcat 字符串追加 4 strcmp 字符串比较 长度受限制函数 5 strncpy 字符串拷贝 6 strncat 字符串追加 7
  • java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP.

    报错信息一 java java sql SQLException Cannot convert value 0000 00 00 00 00 00 from column 5 to TIMESTAMP 原因 在Mysql数据库中使用DATE
  • 失业的程序员(七):梦想和胸襟

    http blog csdn net shenyisyn article details 8777357 本系列前章 失业的程序员 一 二 三 四 五 六 一 超级前戏 关注健康 预防禽流感从你我他做起 最近H7N9吓人不浅 自从我们的小心
  • MYSQL查询

    现在存在如下表关系 班级表 class cid caption 1 三年二班 2 一年三班 3 三年一班 学生表 student Sid Sname Gender Class id 1 钢蛋 女 1 2 铁锤 女 1 3 山炮 男 2 教师
  • 网卡带宽测试软件iPerf背景与使用

    iperf是一个网络性能测试工具 采用C语言开发 开源 并且跨平台 iperf可以测试最大TCP和UDP带宽性能 具有多种参数和UDP特性 可以根据需要调整 可以报告带宽 延迟抖动和数据包丢失 一 iperf的现状 1 iperf 1 ip