3

很抱歉问这个话题,但是在阅读了工具的文档和我的问题的类似票(https://github.com/esnet/iperf/issues/343)之后,我仍然不太明白/不知道的含义TCP 测量中的 Retr 列,我不知道如何“使用”它:-(

假设有一个结果,如下所示,5 次重试。我知道了,这些是重传的 TCP 段数,但是这些重传是成功的,还是只是重试发送而不知道结果?

如果我想在最后看到某种百分比 (%) 的总和,该工具可以打印它吗,类似于 UDP 测量?如果没有,我怎样才能得到发送/接收段的总和来计算故障率?

工具版本:

>batman@bat-image:~$ iperf3 -v
iperf 3.8.1 (cJSON 1.7.13)
Linux bat-image 4.15.0-106-generic #107-Ubuntu SMP Thu Jun 4 11:27:52 UTC 2020 x86_64
Optional features available: CPU affinity setting, IPv6 flow label, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing
batman@bat-image:~$

操作系统:

Ubuntu-18.04
batman@bat-image:~$ uname -aLinux bat-image 4.15.0-106-generic #107-Ubuntu SMP Thu Jun 4 11:27:52 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
batman@bat-image:~$

日志:

batman@bat-image:~$iperf3 -c 192.168.122.1 -f K -B 192.168.122.141 -b 10m -t 10
Connecting to host 192.168.122.1, port 5201
[  5] local 192.168.122.141 port 34665 connected to 192.168.122.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.25 MBytes  10.5 Mbits/sec    0    297 KBytes      
[  5]   1.00-2.00   sec  1.25 MBytes  10.5 Mbits/sec    0    297 KBytes      
[  5]   2.00-3.00   sec  1.12 MBytes  9.43 Mbits/sec    0    297 KBytes      
[  5]   3.00-4.00   sec  1.25 MBytes  10.5 Mbits/sec    0    297 KBytes      
[  5]   4.00-5.00   sec  1.12 MBytes  9.43 Mbits/sec    0    297 KBytes      
[  5]   5.00-6.00   sec  1.25 MBytes  10.5 Mbits/sec    0    297 KBytes      
[  5]   6.00-7.00   sec  1.12 MBytes  9.44 Mbits/sec    2   1.41 KBytes      
[  5]   7.00-8.00   sec   512 KBytes  4.19 Mbits/sec    1   1.41 KBytes      
[  5]   8.00-9.00   sec  0.00 Bytes  0.00 Mbits/sec    1   1.41 KBytes      
[  5]   9.00-10.00  sec  0.00 Bytes  0.00 Mbits/sec    1   1.41 KBytes      
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr

[  5]   0.00-10.00  sec  8.87 MBytes  7.44 Mbits/sec    5             sender

[  5]   0.00-16.91  sec  7.62 MBytes  3.78 Mbits/sec                  receiver

iperf Done.

感谢您的帮助,

/罗比

4

1 回答 1

9

在 iperf3 中,该列Retr代表重新传输的TCP 数据包,并指示必须再次发送的 TCP 数据包数(=重新传输)。

Retr越低越好。最佳值为 0,这意味着无论发送了多少 TCP 数据包,都不必重新发送一个。大于零的值表示可能由于网络拥塞(流量过多)或硬件故障导致的损坏引起的数据包丢失。

您在 Github 上的原始问题也已得到解答(来源):https ://github.com/esnet/iperf/issues/343

您是根据您是测试 UDP 还是 TCP 来询问 iperf3 的不同输出。

  • 使用 UDP 时,数据包无法到达目的地是可以接受的。为了指示连接/数据传输的质量,您将获得有多少数据包未到达目的地的百分比。

  • 使用 TCP 时,所有数据包都应该到达目的地并检查丢失或损坏的数据包(因此是传输控制协议)。如果一个数据包丢失,它会被重新传输。要指示连接的质量,您会得到必须重新传输的数据包的数量。

因此,UDP 的百分比和RetrTCP 的计数都是根据每个协议的具体情况调整的质量指标。

如果您想知道该Cwnd列的含义,它代表Congestion Window。拥塞窗口是一个 TCP 状态变量,它限制 TCP 在收到 ACK 之前可以发送到网络的数据量。来源:https ://blog.stackpath.com/glossary-cwnd-and-rwnd/

于 2021-01-18T09:38:24.293 回答