iperf3 UDP基础:快速入门网络性能测量 – wiki大全

iperf3 UDP基础:快速入门网络性能测量

在网络性能测试中,iperf3是一个不可或缺的强大工具。它能够测量IP网络的最大可实现带宽,并支持TCP和UDP两种协议。对于实时应用程序(如VoIP和视频流)而言,UDP测试尤为关键,因为它能揭示TCP测试无法提供的抖动和丢包率等指标。

本文将引导您快速入门iperf3的UDP测试,帮助您理解其基本用法和结果解读。

什么是UDP?

用户数据报协议(User Datagram Protocol,简称UDP)是一种无连接的传输层协议,与TCP不同,它不保证数据包的可靠传输、顺序或重复数据的去除。正因为其开销小、传输速度快的特点,UDP常用于对实时性要求高、但允许少量丢包的应用场景,例如在线游戏、语音通话和视频会议。

iperf3 UDP测试的先决条件

进行iperf3测试需要两台机器:

  1. 服务器(Server):用于监听传入连接。
  2. 客户端(Client):发起连接并向服务器发送数据。

请确保两台机器上都已安装iperf3。通常,它可以通过大多数操作系统的包管理器轻松获取。

1. 服务器端设置

在作为服务器的机器上,启动iperf3并进入服务器模式。iperf3默认监听端口5201。

bash
iperf3 -s

  • -s: 此标志指示iperf3以服务器模式运行。

对于UDP测试,服务器端不需要显式使用-u标志;协议类型由客户端决定。

2. 客户端设置

在作为客户端的机器上,运行iperf3并指定服务器的IP地址和UDP协议。

bash
iperf3 -c <server_ip_address> -u -b 10M -t 30 -i 1

以下是UDP客户端命令中关键选项的解释:

  • -c <server_ip_address>: 指定iperf3服务器的IP地址或主机名。
  • -u: 此关键标志告诉iperf3使用UDP协议而不是默认的TCP协议。
  • -b <bandwidth>: 设置UDP数据流的目标带宽。这非常重要,因为UDP是一种无连接协议,不像TCP那样具有流量控制机制。如果您不指定带宽,iperf3默认会使用1 Mbps进行UDP测试。您可以根据需要使用单位,例如K (Kbps)、M (Mbps) 或 G (Gbps)。例如,10M表示10 Mbps。
  • -t <time>: 指定测试的持续时间,单位为秒。默认值为10秒。
  • -i <interval>: 设置周期性带宽、抖动和丢包报告的时间间隔,单位为秒。这有助于在测试过程中观察性能波动。

客户端命令示例:

如果您的服务器IP地址是192.168.1.100,并且您想以50 Mbps的速率进行60秒的UDP流测试,每5秒生成一份报告,则命令如下:

bash
iperf3 -c 192.168.1.100 -u -b 50M -t 60 -i 5

3. 结果解读

在运行UDP测试时,仔细检查服务器端的输出尤为重要。这是因为客户端将以指定的速率发送数据,无论数据包是否被接收。服务器的输出将准确反映接收到的带宽、抖动和丢包情况。

以下是iperf3 UDP服务器输出的示例及关键指标的解释:

“`

Server listening on 5201

Accepted connection from 192.168.1.101, port 45678
[ 5] local 192.168.1.100 port 5201 connected to 192.168.1.101 port 45678
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 1.25 MBytes 10.5 Mbits/sec 0.023 ms 0/893 (0%)
[ 5] 1.00-2.00 sec 1.25 MBytes 10.5 Mbits/sec 0.025 ms 0/893 (0%)
[ 5] 2.00-3.00 sec 1.25 MBytes 10.5 Mbits/sec 0.022 ms 0/893 (0%)
[ 5] 3.00-4.00 sec 1.25 MBytes 10.5 Mbits/sec 0.024 ms 0/893 (0%)
[ 5] 4.00-5.00 sec 1.25 MBytes 10.5 Mbits/sec 0.023 ms 0/893 (0%)


[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-5.00 sec 6.25 MBytes 10.5 Mbits/sec 0.023 ms 0/4465 (0%) sender
[ 5] 0.00-5.00 sec 6.25 MBytes 10.5 Mbits/sec 0.023 ms 0/4465 (0%) receiver
“`

  • Interval (间隔): 报告统计数据的时间段(例如,0.00-1.00 sec)。
  • Transfer (传输量): 该时间段内传输的数据总量。
  • Bandwidth (带宽): 在该时间段内测得的平均吞吐量,通常以 Mbits/sec 为单位。这表示服务器实际接收到的数据速率。
  • Jitter (抖动): 接收数据包延迟的变化。高抖动会严重影响实时应用程序。它以毫秒 (ms) 为单位测量。
  • Lost/Total Datagrams (丢失/总数据报): 显示发送的总数据包中丢失的UDP数据包数量。
  • Loss% (丢包率): 丢失数据包的百分比。理想情况下,高质量的网络链路丢包率应低于1%。

最后几行提供了整个测试持续时间的摘要,通常会显示发送方(客户端)和接收方(服务器)的统计数据。对于UDP,接收方的统计数据通常更能反映实际的网络性能。

4. 高级选项

  • -l <length>: 设置UDP数据报的长度(负载大小)。UDP默认是8 KB。对于特定的测试场景,例如模拟VoIP流量,您可能需要将其调整为较小的值(例如,1500字节或更少,以避免分片,尤其是在IPv6环境下)。
    • 示例:iperf3 -c 192.168.1.100 -u -b 10M -l 1400
  • -P <number_of_streams>: 创建多个并行的UDP流。这对于使更高速度的链路饱和或测试网络如何处理多个并发UDP流非常有用。
    • 示例:iperf3 -c 192.168.1.100 -u -b 100M -P 4

通过理解和利用这些iperf3命令并正确解读其输出,您可以有效地测量和诊断UDP网络性能。

滚动至顶部