iperf3

[TOC]

iPerf3:http://software.es.net/iperf/index.html
iPerf3的Github网站:https://github.com/esnet/iperf
iPerf3 已编译版本:https://iperf.fr/iperf-download.php

The quality of a link can be tested as follows:
- Latency (response time or RTT): can be measured with the Ping command.
- Jitter (latency variation): can be measured with an Iperf UDP test.
- Datagram loss: can be measured with an Iperf UDP test.

The bandwidth is measured through TCP tests.

1
2
3
4
5
6
7
8
9
10
11
12
13
iperf3

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
--connect-timeout # timeout for control connection setup (ms)
-b, --bitrate #[KMG][/#] target bitrate in bits/sec (0 for unlimited)
(default 1 Mbit/sec for UDP, unlimited for TCP)

Jitter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
interarrival jitter: 32 bits
An estimate of the statistical variance of the RTP data packet
interarrival time, measured in timestamp units and expressed as
an unsigned integer. The interarrival jitter J is defined to be
the mean deviation (smoothed absolute value) of the difference D
in packet spacing at the receiver compared to the sender for a
pair of packets. As shown in the equation below, this is
equivalent to the difference in the "relative transit time" for
the two packets; the relative transit time is the difference
between a packet's RTP timestamp and the receiver's clock at the
time of arrival, measured in the same units.

Schulzrinne, et al Standards Track [Page 26]

RFC 1889 RTP January 1996


If Si is the RTP timestamp from packet i, and Ri is the time of
arrival in RTP timestamp units for packet i, then for two packets i
and j, D may be expressed as

D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si)

The interarrival jitter is calculated continuously as each data
packet i is received from source SSRC_n, using this difference D for
that packet and the previous packet i-1 in order of arrival (not
necessarily in sequence), according to the formula

J=J+(|D(i-1,i)|-J)/16

Whenever a reception report is issued, the current value of J is
sampled.

The jitter calculation is prescribed here to allow profile-
independent monitors to make valid interpretations of reports coming
from different implementations. This algorithm is the optimal first-
order estimator and the gain parameter 1/16 gives a good noise
reduction ratio while maintaining a reasonable rate of convergence
[11]. A sample implementation is shown in Appendix A.8.



A.8 Estimating the Interarrival Jitter

The code fragments below implement the algorithm given in Section
6.3.1 for calculating an estimate of the statistical variance of the
RTP data interarrival time to be inserted in the interarrival jitter
field of reception reports. The inputs are r->ts , the timestamp from
the incoming packet, and arrival , the current time in the same
units. Here s points to state for the source; s->transit holds the
relative transit time for the previous packet, and s->jitter holds
the estimated jitter. The jitter field of the reception report is
measured in timestamp units and expressed as an unsigned integer, but
the jitter estimate is kept in a floating point. As each data packet
arrives, the jitter estimate is updated:

int transit = arrival - r->ts;
int d = transit - s->transit;
s->transit = transit;
if (d < 0) d = -d;
s->jitter += (1./16.) * ((double)d - s->jitter);

When a reception report block (to which rr points) is generated for
this member, the current jitter estimate is returned:

rr->jitter = (u_int32) s->jitter;

Alternatively, the jitter estimate can be kept as an integer, but
scaled to reduce round-off error. The calculation is the same except
for the last line:

s->jitter += d - ((s->jitter + 8) >> 4);




Schulzrinne, et al Standards Track [Page 71]

RFC 1889 RTP January 1996


In this case, the estimate is sampled for the reception report as:

rr->jitter = s->jitter >> 4;

设定带宽 -u

1
2
3
4
5
6
7
8
Client specific:
-c, --client <host> run in client mode, connecting to <host>
-u, --udp use UDP rather than TCP
-b, --bitrate #[KMG][/#] target bitrate in bits/sec (0 for unlimited)
(default 1 Mbit/sec for UDP, unlimited for TCP)
(optional slash and packet count for burst mode)

iperf3 -c 192.168.50.208 -t 15 -i 1 -u -b 1500m

双向带宽同时测试

1
2
3
4
5
6
7
8
9
10
11
12

双向同时测试(在任一端多开一个iperf port/进程,然后在同一端使用参数-R进行测试)

服务端执行:(admin/root)

# iperf3 -s -p 5001
# iperf3 -s -p 5002

客户端执行:

# iperf3 -c 192.168.50.208 -p 5001 -i 1 -t 100 -u -b 1300M
# iperf3 -c 192.168.50.208 -p 5002 -i 1 -t 100 -u -b 1300M -R

UDP协议的优势是时延、抖动、丢包率,指定发送带宽,TCP 不具备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

iperf3 -c 192.168.50.208 -t 15 -i 1 -u -b 1000m
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 60481 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate Total Datagrams
[ 5] 0.00-1.00 sec 119 MBytes 1000 Mbits/sec 85592
[ 5] 1.00-2.00 sec 118 MBytes 991 Mbits/sec 84892
[ 5] 2.00-3.00 sec 117 MBytes 979 Mbits/sec 83793
[ 5] 3.00-4.00 sec 120 MBytes 1.01 Gbits/sec 86196
[ 5] 4.00-5.00 sec 122 MBytes 1.02 Gbits/sec 87568
[ 5] 5.00-6.00 sec 119 MBytes 1.00 Gbits/sec 85624
[ 5] 6.00-7.00 sec 119 MBytes 1000 Mbits/sec 85600
[ 5] 7.00-8.00 sec 119 MBytes 1.00 Gbits/sec 85622
[ 5] 8.00-9.00 sec 119 MBytes 1000 Mbits/sec 85631
[ 5] 9.00-10.00 sec 119 MBytes 1.00 Gbits/sec 85679
[ 5] 10.00-11.00 sec 119 MBytes 1000 Mbits/sec 85591
[ 5] 11.00-12.00 sec 119 MBytes 1.00 Gbits/sec 85621
[ 5] 12.00-13.00 sec 119 MBytes 1.00 Gbits/sec 85635
[ 5] 13.00-14.00 sec 119 MBytes 1000 Mbits/sec 85603
[ 5] 14.00-15.00 sec 119 MBytes 1.00 Gbits/sec 85622
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-15.00 sec 1.75 GBytes 1000 Mbits/sec 0.000 ms 0/1284269 (0%) sender
[ 5] 0.00-15.00 sec 815 MBytes 456 Mbits/sec 0.028 ms 696314/1281759 (54%) receiver

iperf Done.

(3) Jitter(抖动值)就是连续 (发送和接收之间的时延)差值 的平均值

1
2
3
4
5
If Si is the RTP timestamp from packet i, and Ri is the time of
arrival in RTP timestamp units for packet i, then for two packets i
and j, D may be expressed as

D(i,j)=(Rj-Ri)-(Sj-Si)=(Rj-Sj)-(Ri-Si)

要获得带宽数据,需要不断在client端增加带宽值,直到server端出现轻微的丢包为止,此时server端显示的带宽就是被测系统的吞吐量。

性能测试的时候需要指定包长,不同的包长会得到不同的吞吐量,通过-l指定,而使用-b指定带宽。

-l, –length #[KMG] length of buffer to read or write
(default 128 KB for TCP, dynamic or 1460 for UDP)

https://stackoverflow.com/questions/37063074/how-iperf-calculates-network-statistics

I looked at the source code, and also took some tcpdumps for iperf3. I have the following understanding for iperf3.

In iperf UDP packets, a time stamp and a sequence number (which iperf source code calls it pcount) is written into the payload by the sender. Once the receiver gets the packet, it extracts time stamp for jitter, and sequence number for packet loss count.

Jitter is calculated by compared the time stamp and the current time to find the delay, D_current, first. Then, find |D_current - D_previous| (the difference cancels the clock insync between the sender and the receiver 消除发送者和接收者之间的时钟不同步问题) to contribute to jitter.

Loss is just to accumulate the the difference between the current pcount and the expected pcount which is previously received pcount plus one.

有一条tcp 的命令控制链路吗?

No matter it is iperf udp (with option -u in client side) or tcp, when iperf starts, a control TCP connection will be established. This control TCP connection is used to exchange client side and server side statistics, which include CPU utils, jitter and loss calculated above, at the end of test

tcp window size

TCP窗口大小,可以使用-w参数

网络通道的容量capacity = bandwidth * round-trip time

TCP窗口的大小(windows size)就是网络通道的容量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202

################ windows server #################
iperf3.exe -s -i 1
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.50.192, port 65387
[ 5] local 192.168.50.208 port 5201 connected to 192.168.50.192 port 65388
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 37.5 MBytes 315 Mbits/sec
[ 5] 1.00-2.00 sec 36.3 MBytes 305 Mbits/sec
[ 5] 2.00-3.00 sec 37.1 MBytes 311 Mbits/sec
[ 5] 3.00-4.00 sec 39.5 MBytes 332 Mbits/sec
[ 5] 4.00-5.00 sec 38.4 MBytes 322 Mbits/sec
[ 5] 5.00-6.00 sec 36.9 MBytes 310 Mbits/sec
[ 5] 6.00-7.00 sec 37.9 MBytes 318 Mbits/sec
[ 5] 7.00-8.00 sec 37.2 MBytes 312 Mbits/sec
[ 5] 8.00-9.00 sec 40.1 MBytes 337 Mbits/sec
[ 5] 9.00-10.00 sec 38.4 MBytes 322 Mbits/sec
[ 5] 10.00-11.00 sec 40.5 MBytes 340 Mbits/sec
[ 5] 11.00-12.00 sec 39.9 MBytes 335 Mbits/sec
[ 5] 12.00-13.00 sec 40.8 MBytes 342 Mbits/sec
[ 5] 12.00-13.00 sec 40.8 MBytes 342 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-13.00 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-13.00 sec 533 MBytes 344 Mbits/sec receiver
iperf3: the client has terminated
-----------------------------------------------------------
Server listening on 5201



################### macOSX client################
$ iperf3 -c 192.168.50.208 -t 1000 -i 1 -w 256k
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 65388 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 37.5 MBytes 315 Mbits/sec
[ 5] 1.00-2.00 sec 36.5 MBytes 306 Mbits/sec
[ 5] 2.00-3.00 sec 37.2 MBytes 312 Mbits/sec
[ 5] 3.00-4.00 sec 39.5 MBytes 332 Mbits/sec

################### macOSX client################

$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 512k
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 65401 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 38.5 MBytes 323 Mbits/sec
[ 5] 1.00-2.00 sec 34.8 MBytes 292 Mbits/sec
[ 5] 2.00-3.00 sec 35.1 MBytes 295 Mbits/sec
[ 5] 3.00-4.00 sec 34.6 MBytes 291 Mbits/sec
[ 5] 4.00-5.00 sec 34.3 MBytes 288 Mbits/sec
[ 5] 5.00-6.00 sec 36.3 MBytes 305 Mbits/sec
[ 5] 6.00-7.00 sec 36.8 MBytes 309 Mbits/sec
[ 5] 7.00-8.00 sec 39.0 MBytes 327 Mbits/sec
[ 5] 8.00-9.00 sec 39.0 MBytes 327 Mbits/sec
[ 5] 9.00-10.00 sec 40.0 MBytes 336 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 368 MBytes 309 Mbits/sec sender
[ 5] 0.00-10.00 sec 368 MBytes 309 Mbits/sec receiver
################### macOSX client################

$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 1024k
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 65403 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 48.5 MBytes 406 Mbits/sec
[ 5] 1.00-2.00 sec 38.1 MBytes 320 Mbits/sec
[ 5] 2.00-3.00 sec 39.4 MBytes 330 Mbits/sec
[ 5] 3.00-4.00 sec 40.5 MBytes 340 Mbits/sec
[ 5] 4.00-5.00 sec 40.4 MBytes 339 Mbits/sec
[ 5] 5.00-6.00 sec 45.7 MBytes 384 Mbits/sec
[ 5] 6.00-7.00 sec 45.0 MBytes 378 Mbits/sec
[ 5] 7.00-8.00 sec 48.1 MBytes 403 Mbits/sec
[ 5] 8.00-9.00 sec 46.3 MBytes 389 Mbits/sec
[ 5] 9.00-10.00 sec 48.0 MBytes 403 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 440 MBytes 369 Mbits/sec sender
[ 5] 0.00-10.00 sec 439 MBytes 368 Mbits/sec receiver

iperf Done.
################### macOSX client################
/Volumes/share ⌚ 16:52:08
$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 2048k
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 65405 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 50.8 MBytes 426 Mbits/sec
[ 5] 1.00-2.00 sec 54.2 MBytes 455 Mbits/sec
[ 5] 2.00-3.00 sec 54.9 MBytes 461 Mbits/sec
[ 5] 3.00-4.00 sec 52.7 MBytes 442 Mbits/sec
[ 5] 4.00-5.00 sec 54.4 MBytes 457 Mbits/sec
[ 5] 5.00-6.00 sec 51.8 MBytes 435 Mbits/sec
[ 5] 6.00-7.00 sec 53.8 MBytes 451 Mbits/sec
[ 5] 7.00-8.00 sec 54.2 MBytes 455 Mbits/sec
[ 5] 8.00-9.00 sec 54.3 MBytes 456 Mbits/sec
[ 5] 9.00-10.00 sec 48.5 MBytes 407 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 530 MBytes 444 Mbits/sec sender
[ 5] 0.00-10.00 sec 528 MBytes 443 Mbits/sec receiver

iperf Done.
################### macOSX client################
/Volumes/share ⌚ 16:52:31
$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 3072k
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 65407 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 61.9 MBytes 518 Mbits/sec
[ 5] 1.00-2.00 sec 58.6 MBytes 492 Mbits/sec
[ 5] 2.00-3.00 sec 55.2 MBytes 464 Mbits/sec
[ 5] 3.00-4.00 sec 59.7 MBytes 500 Mbits/sec
[ 5] 4.00-5.00 sec 60.7 MBytes 510 Mbits/sec
[ 5] 5.00-6.00 sec 58.4 MBytes 489 Mbits/sec
[ 5] 6.00-7.00 sec 60.4 MBytes 507 Mbits/sec
[ 5] 7.00-8.00 sec 43.9 MBytes 368 Mbits/sec
[ 5] 8.00-9.00 sec 54.1 MBytes 454 Mbits/sec
[ 5] 9.00-10.00 sec 51.4 MBytes 431 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 564 MBytes 473 Mbits/sec sender
[ 5] 0.00-10.00 sec 562 MBytes 471 Mbits/sec receiver

iperf Done.
################### macOSX client################
/Volumes/share ⌚ 16:52:47
$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 4096k
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 65409 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 63.4 MBytes 532 Mbits/sec
[ 5] 1.00-2.00 sec 58.6 MBytes 492 Mbits/sec
[ 5] 2.00-3.00 sec 56.3 MBytes 473 Mbits/sec
[ 5] 3.00-4.00 sec 59.2 MBytes 496 Mbits/sec
[ 5] 4.00-5.00 sec 55.0 MBytes 460 Mbits/sec
[ 5] 5.00-6.00 sec 62.7 MBytes 527 Mbits/sec
[ 5] 6.00-7.00 sec 49.6 MBytes 416 Mbits/sec
[ 5] 7.00-8.00 sec 64.7 MBytes 543 Mbits/sec
[ 5] 8.00-9.00 sec 62.4 MBytes 522 Mbits/sec
[ 5] 9.00-10.00 sec 65.2 MBytes 548 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 597 MBytes 501 Mbits/sec sender
[ 5] 0.00-10.00 sec 595 MBytes 499 Mbits/sec receiver



/Volumes/share ⌚ 16:53:43
$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 7000k
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 65413 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 64.4 MBytes 540 Mbits/sec
[ 5] 1.00-2.00 sec 63.7 MBytes 535 Mbits/sec
[ 5] 2.00-3.00 sec 62.2 MBytes 522 Mbits/sec
[ 5] 3.00-4.00 sec 69.3 MBytes 581 Mbits/sec
[ 5] 4.00-5.00 sec 66.5 MBytes 558 Mbits/sec
[ 5] 5.00-6.00 sec 25.4 MBytes 213 Mbits/sec
[ 5] 6.00-7.00 sec 64.4 MBytes 542 Mbits/sec
[ 5] 7.00-8.00 sec 22.9 MBytes 192 Mbits/sec
[ 5] 8.00-9.00 sec 51.5 MBytes 432 Mbits/sec
[ 5] 9.00-10.00 sec 62.1 MBytes 521 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 552 MBytes 463 Mbits/sec sender
[ 5] 0.00-10.00 sec 548 MBytes 459 Mbits/sec receiver

iperf Done.
################### macOSX client################
/Volumes/share ⌚ 16:58:26
$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 7282k
Connecting to host 192.168.50.208, port 5201
iperf3: error - unable to set socket buffer size: No buffer space available

################### macOSX client################
/Volumes/share ⌚ 16:58:29
$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 7281k
Connecting to host 192.168.50.208, port 5201
[ 5] local 192.168.50.192 port 65468 connected to 192.168.50.208 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 64.0 MBytes 537 Mbits/sec
^C[ 5] 1.00-1.73 sec 31.9 MBytes 368 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.73 sec 95.9 MBytes 466 Mbits/sec sender
[ 5] 0.00-1.73 sec 0.00 Bytes 0.00 bits/sec receiver
iperf3: interrupt - the client has terminated

################### macOSX client################
/Volumes/share ⌚ 16:58:33
$ sysctl -a |grep sock
kern.ipc.maxsockbuf: 8388608 (=8M)


################### macOSX client################
$ iperf3 -c 192.168.50.208 -t 10 -i 1 -w 8000k
Connecting to host 192.168.50.208, port 5201
iperf3: error - unable to set socket buffer size: No buffer space available

iperf3 server

iperf3 控制链路: TCP *:5201 (LISTEN)

遇到到问题 iperf3 udp not work

1
2
3
4
5
6
7
   iperf3 udp test not work
------------------- --------------------- ------------------
| client | udp | NAT 5201/tcp/udp | udp | server 5201 |
| 192.168.0.27 | <----> | firewall | <----> | 192.168.1.2 |
| | | 192.168.0.254 | | 192.168.0.19 |
| | | | | |
------------------- --------------------- ------------------

防火墙

NAT正确配置了转发 5201(tcp) 和 5201 (udp)

现象

client 使用 udp 测试不正常工作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
iperf3 -c 192.168.0.254 -i 1 -t 10 -u -b 700m
Connecting to host 192.168.0.254, port 5201
iperf3: error - unable to read from stream socket: Resource temporarily unavailable


[~] # iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.0.27, port 60995
[ 5] local 192.168.50.190 port 5201 connected to 192.168.0.27 port 55817
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
.........
iperf3: error - select failed: Bad file descriptor

原因:

iperf3 server 使用了另外一个接口 192.168.0.19 ` 进行 udp回复 client导致了失败

解决方法

当有多个网卡时,绑定制定的接口,避免导致的路由错误问题。

1
iperf3 -s --bind 192.168.1.2