使用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 测试语句示例,这些语句用于在两台计算机之间测试网络连接的性能。在这些示例中,假设一个计算机充当服务器,另一个计算机充当客户端。请根据您的需求和网络配置进行相应的修改:
- 在服务器上启动iperf3服务:
csharp
iperf3 -s
这会在服务器上启动iperf3服务,默认使用端口 5201。
- 在客户端连接到服务器进行带宽测试:
csharp
iperf3 -c <服务器IP地址>
这会在客户端连接到指定IP地址的服务器进行带宽测试,默认使用端口 5201。
- 指定带宽测试时间:
csharp
iperf3 -c <服务器IP地址> -t <测试时间(秒)>
这会在客户端连接到指定IP地址的服务器进行带宽测试,持续指定的测试时间。
- 指定并发连接数:
csharp
iperf3 -c <服务器IP地址> -P <并发连接数>
这会在客户端连接到指定IP地址的服务器进行带宽测试,并发连接数表示客户端与服务器建立的并发连接数量。
- 以UDP协议进行测试:
csharp
iperf3 -c <服务器IP地址> -u
这会在客户端连接到指定IP地址的服务器进行UDP带宽测试,默认使用端口 5201。
- 指定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)为单位。
这些指标通常用于评估网络的性能,不同的应用场景可能会侧重关注其中的不同指标。