如何解释 iperf3 结果?

如何解释 iperf3 结果?

我不想做任何疯狂的事情 - 只是测量客户端到服务器的下载和上传速度。

在服务器上我运行:

iperf3 -s

在客户端我运行:

iperf3 -c IP_ADDESS

这些是我的结果:

Connecting to host IP_ADDRESS, port 5201
[  4] local LAN_IP port 2722 connected to IP_ADDRESS port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.01   sec   256 KBytes  2.08 Mbits/sec
[  4]   1.01-2.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   2.01-3.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   3.01-4.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   4.01-5.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   5.01-6.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   6.01-7.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   7.01-8.01   sec   128 KBytes  1.05 Mbits/sec
[  4]   8.01-9.01   sec  0.00 Bytes  0.00 bits/sec
[  4]   9.01-10.01  sec   128 KBytes  1.05 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-10.01  sec  1.25 MBytes  1.05 Mbits/sec                  sender
[  4]   0.00-10.01  sec  1.07 MBytes   896 Kbits/sec                  receiver

iperf Done.

我知道它首先告诉您它连接到什么,然后每 1 秒(默认情况下)报告它在这 1 秒内的表现如何。什么是:

  1. 结果?默认情况下,数据从客户端发送到服务器(除非指定 -R,在这种情况下,情况相反)。那么如果这是单向传输的结果,为什么结果中有 2 行呢?
  2. ID 值。就我而言,他们都是 4 个人。
  3. 进行反向传输时:

    iperf3 -c IP_ADDRESS -R

结果包括一个额外字段:

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  3.02 MBytes  2.53 Mbits/sec   21             sender
[  4]   0.00-10.00  sec  2.94 MBytes  2.46 Mbits/sec                  receiver

Retr字段是否意味着 TCP 必须重新传输 21 个数据包?

答案1

我有同样的问题,所以我深入研究代码并希望找到正确的答案。

  1. 两条线显示两侧的测量值。有人可能会说这些结果应该是相同的。但正如您在两个结果中看到的那样,接收方测量的数据少于发送方。主要原因是测量是按时间划分的。例如,当您测量 10 秒(从第一个数据包开始)时,您发送了 n 个数据包,但接收方可能会在第一个数据包之后 10 秒以上收到最后一个数据包。所以这些都不算。另外还有丢包的情况。

  2. 这充满了sp->socket.所以最后这是套接字的文件描述符(转换为 int)。尝试带着-P旗帜跑步。您将看到每个连接/套接字有不同的 ID。

  3. 你的假设部分正确。该字段代表sp->result->stream_retrans.所以这些都是重传。该字段仅在出现重传时显示(0 不显示)。所以这应该与方向无关。

相关内容