使用iperf3测试网络带宽

使用iperf3测试网络带宽

控制变量:这两台电脑或者服务器和电脑的网卡需要支持千兆。避免影响结果出现变量

一、下载及简单使用。

下载:https://iperf.fr/iperf-download.php

使用说明:

bash 复制代码
iperf3.exe -h
Usage: iperf [-s|-c host] [options]
       iperf [-h|--help] [-v|--version]

Server or Client:
  -p, --port      #         server port to listen on/connect to
  -f, --format    [kmgKMG]  format to report: Kbits, Mbits, KBytes, MBytes
  -i, --interval  #         seconds between periodic bandwidth reports
  -F, --file name           xmit/recv the specified file
  -B, --bind      <host>    bind to a specific interface
  -V, --verbose             more detailed output
  -J, --json                output in JSON format
  --logfile f               send output to a log file
  -d, --debug               emit debugging output
  -v, --version             show version information and quit
  -h, --help                show this message and quit
Server specific:
  -s, --server              run in server mode
  -D, --daemon              run the server as a daemon
  -I, --pidfile file        write PID file
  -1, --one-off             handle one client connection then exit
Client specific:
  -c, --client    <host>    run in client mode, connecting to <host>
  -u, --udp                 use UDP rather than TCP
  -b, --bandwidth #[KMG][/#] target bandwidth in bits/sec (0 for unlimited)
                            (default 1 Mbit/sec for UDP, unlimited for TCP)
                            (optional slash and packet count for burst mode)
  -t, --time      #         time in seconds to transmit for (default 10 secs)
  -n, --bytes     #[KMG]    number of bytes to transmit (instead of -t)
  -k, --blockcount #[KMG]   number of blocks (packets) to transmit (instead of -t or -n)
  -l, --len       #[KMG]    length of buffer to read or write
                            (default 128 KB for TCP, 8 KB for UDP)
  --cport         <port>    bind to a specific client port (TCP and UDP, default: ephemeral port)
  -P, --parallel  #         number of parallel client streams to run
  -R, --reverse             run in reverse mode (server sends, client receives)
  -w, --window    #[KMG]    set window size / socket buffer size
  -M, --set-mss   #         set TCP/SCTP maximum segment size (MTU - 40 bytes)
  -N, --no-delay            set TCP/SCTP no delay, disabling Nagle's Algorithm
  -4, --version4            only use IPv4
  -6, --version6            only use IPv6
  -S, --tos N               set the IP 'type of service'
  -Z, --zerocopy            use a 'zero copy' method of sending data
  -O, --omit N              omit the first n seconds
  -T, --title str           prefix every output line with this string
  --get-server-output       get results from server
  --udp-counters-64bit      use 64-bit counters in UDP test packets

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

iperf3 homepage at: http://software.es.net/iperf/
Report bugs to:     https://github.com/esnet/iperf

自行-h翻译一下多试试就会用了,其中服务端和客户端常用的命令就几个。

服务器端:直接 iperf3 -s 就行,默认是Mbits/sec 也可以加-f指定输出格式:Kbits, Mbits, KBytes, MBytes,不用-p指定端口的话默认是5201

客户端:

bash 复制代码
iperf3 -c 服务器IP -f m
【测试客户端传数据到服务端】

测试几次后加个-R在测试几次

bash 复制代码
iperf3 -c 服务器IP -f m -R
【测试服务端传数据到客户端】

这个参数可以理解为测试上传速度、下载速度;上传速度(即数据从客户端发送到服务器端的速度),而不使用选项-R进行测试时,会测量下载速度(即数据从服务器端发送到客户端的速度)。

二、Kbits, Mbits, KBytes, MBytes的意思

这些是计算机和网络领域中常用的数据传输速率和存储容量单位:

1、Kbits(千比特): 表示千位(1000位)比特。1 Kbit 等于 1000 比特。通常用于描述网络带宽。

2、Mbits(兆比特): 表示百万位(1000000位)比特。1 Mbit 等于 1000000 比特。通常用于描述较大的网络带宽,如宽带连接的速度。

3、KBytes(千字节): 表示千个字节(1024字节)。1 KByte 等于 1024 字节。通常用于描述文件大小、硬盘容量等。

4、MBytes(兆字节): 表示百万字节(1024 * 1024字节)。1 MByte 等于 1024 * 1024 字节。通常用于描述大文件、存储容量等。

其中Kbits(千比特)和Mbits(兆比特)用于表示每秒传输10兆比特的数据。

KBytes(千字节)和MBytes(兆字节)用于表示每秒传输1兆字节的数据。


参数指定 -f

Kbits(千比特)-------- -f k

Mbits(兆比特)-------- -f m

Gbits -------- -f g

KBytes(千字节)-------- -f K

MBytes(兆字节)-------- -f M

GBytes -------- -f G

大M和小m参数是不同的单位
Interval 表示间隔时间
Transfer 表示的是在测试过程中传输的数据量。这个值通常以 MBytes 或 GBytes 表示,表示测试期间传输的兆字节或千兆字节。这个数值告诉您在测试期间有多少数据通过网络连接传输了。这个值是帮助您了解在一段时间内的数据传输量,通常用于评估网络连接的性能。
Bandwidth 表示的是测试过程中的带宽通常以 Mbits/sec(兆比特每秒)或 Gbits/sec(千兆比特每秒)为单位。带宽的值越高,表示网络连接的性能越好,能够传输更多的数据。

三、简单测试

1.在内网服务器运行服务端测试在同一个路由器(该路由器下共有4台电脑)wifi和网线电脑带宽

wifi为4.89 MBytes/sec 网线为11.1 MBytes/sec

【结果表示wifi下传输1G文件需要大约需要209.4秒(1G=1024MB 1024/4.89约等于209.4秒)

结果表示有线传输1G文件需要大约需要92.25秒


2.用两台电脑用网线相连测试带宽

自动配置IP:

测试结果太低(找时间重新测试)

手动配置IP:

测试三次结果为110 MBytes/sec、109 MBytes/sec、105 MBytes/sec

两网卡支持千兆、网线为UTP CAT 6e CABLE 4PR 23AWG(貌似为非国标网线)

四、iperf3常用测试语句

以下是一些常用的 iperf3 测试语句示例,这些语句用于在两台计算机之间测试网络连接的性能。在这些示例中,假设一个计算机充当服务器,另一个计算机充当客户端。请根据您的需求和网络配置进行相应的修改:

  1. 在服务器上启动iperf3服务:
csharp 复制代码
iperf3 -s

这会在服务器上启动iperf3服务,默认使用端口 5201。

  1. 在客户端连接到服务器进行带宽测试:
csharp 复制代码
iperf3 -c <服务器IP地址>

这会在客户端连接到指定IP地址的服务器进行带宽测试,默认使用端口 5201。

  1. 指定带宽测试时间:
csharp 复制代码
iperf3 -c <服务器IP地址> -t <测试时间(秒)>

这会在客户端连接到指定IP地址的服务器进行带宽测试,持续指定的测试时间。

  1. 指定并发连接数:
csharp 复制代码
iperf3 -c <服务器IP地址> -P <并发连接数>

这会在客户端连接到指定IP地址的服务器进行带宽测试,并发连接数表示客户端与服务器建立的并发连接数量。

  1. 以UDP协议进行测试:
csharp 复制代码
iperf3 -c <服务器IP地址> -u 

这会在客户端连接到指定IP地址的服务器进行UDP带宽测试,默认使用端口 5201。

  1. 指定UDP带宽测试速率:
csharp 复制代码
iperf3 -c <服务器IP地址> -u -b <带宽速率(bits/sec)>

这会在客户端连接到指定IP地址的服务器进行UDP带宽测试,并指定UDP传输的带宽速率。

五、衡量网络性能的关键指标

衡量网络性能的关键指标有很多,这些指标可以帮助您了解网络的效率、可靠性和质量。以下是一些常见的网络性能指标:

1、带宽(Bandwidth): 网络连接能够传输数据的最大速度,通常以比特每秒(bits/sec)为单位。

2、延迟(Latency): 数据从源到目的地的传输时间,通常以毫秒(ms)为单位。低延迟表示网络响应快。

3、丢包率(Packet Loss Rate): 在数据传输过程中丢失的数据包的百分比。较低的丢包率表示网络连接更可靠。

4、吞吐量(Throughput): 在单位时间内通过网络连接传输的数据量,通常以比特每秒(bits/sec)或字节每秒(bytes/sec)为单位。

5、抖动(Jitter): 数据包传输时延的变化量,通常以毫秒(ms)为单位。较小的抖动表示网络传输更稳定。

6、带宽利用率(Bandwidth Utilization): 网络实际使用的带宽与总带宽之比,通常以百分比表示。

7、可用性(Availability): 网络系统或服务在特定时间内可用的百分比。高可用性表示网络系统持续可用。

8、QoS(Quality of Service): 衡量网络服务质量的指标,通常包括延迟、丢包率和带宽等。

9、网络拓扑(Network Topology): 网络结构和组件的布局,影响数据传输的效率和可靠性。

10、响应时间(Response Time): 客户端发送请求到服务器响应完成之间的时间,通常以毫秒(ms)为单位。

这些指标通常用于评估网络的性能,不同的应用场景可能会侧重关注其中的不同指标。

相关推荐
长安11082 小时前
前后端、网关、协议方面补充
网络
舞动CPU4 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
皮锤打乌龟5 小时前
(干货)Jenkins使用kubernetes插件连接k8s的认证方式
运维·kubernetes·jenkins
钰@5 小时前
小程序开发者工具的network选项卡中有某域名的接口请求,但是在charles中抓不到该接口
运维·服务器·小程序
wanhengwangluo5 小时前
云服务器和物理服务器的区别有哪些?
运维·服务器
hzyyyyyyyu5 小时前
隧道技术-tcp封装icmp出网
网络·网络协议·tcp/ip
南猿北者5 小时前
docker Network(网络)
网络·docker·容器
秦jh_6 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
yaosheng_VALVE6 小时前
稀硫酸介质中 V 型球阀的材质选择与选型要点-耀圣
运维·spring cloud·自动化·intellij-idea·材质·1024程序员节
Hacker_Nightrain6 小时前
网络安全CTF比赛规则
网络·安全·web安全