奇怪的 US-CN 跨国 iperf UDP 报文测试结果

2021-05-29 01:04:02 +08:00
 nbsn
重庆的电信线路,测试到 US BWG 一个主机(线路是:CN2 GIA-E ),不知道是不是网络的原因,UDP 报文发包测试始终没有速度。
这个主机需要做一些物联网 udp 测试。百思不得其解。

测试步骤:
位于重庆的 IPERF-CLIENT,第一次测试 UDP 报文

iperf3 -c IPERF-SERVER -p 12345 -b 10M -u

Connecting to host IPERF-SERVER, port 12345
[ 4] local 10.125.30.250 port 50136 connected to IPERF-SERVER port 12345
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.01 sec 1.10 MBytes 9.18 Mbits/sec 141
[ 4] 1.01-2.01 sec 1.20 MBytes 10.0 Mbits/sec 153
[ 4] 2.01-3.01 sec 1.19 MBytes 9.95 Mbits/sec 152
[ 4] 3.01-4.00 sec 1.19 MBytes 10.0 Mbits/sec 152
[ 4] 4.00-5.01 sec 1.19 MBytes 9.85 Mbits/sec 152
[ 4] 5.01-6.01 sec 1.21 MBytes 10.2 Mbits/sec 155
[ 4] 6.01-7.01 sec 1.19 MBytes 9.93 Mbits/sec 152
[ 4] 7.01-8.01 sec 1.20 MBytes 10.1 Mbits/sec 153
[ 4] 8.01-9.00 sec 1.18 MBytes 9.95 Mbits/sec 151
[ 4] 9.00-10.00 sec 1.20 MBytes 10.0 Mbits/sec 153
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-10.00 sec 11.8 MBytes 9.92 Mbits/sec 0.000 ms 0/0 (0%)
[ 4] Sent 0 datagrams

iperf Done.

US 服务器端输出:
[ 5] local IPERF-SERVER port 12345 connected to IPERF-CLIENT port 50136
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-1.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 5.00-6.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
[ 5] 10.00-10.21 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 5] 0.00-10.21 sec 0.00 Bytes 0.00 bits/sec 0.000 ms 0/0 (0%)

重庆这边换 TCP 报文:
iperf3 -c IPERF-SERVER -p 12345 -b 10M

Connecting to host IPERF-SERVER, port 12345
[ 4] local IPERF-CLIENT port 13889 connected to IPERF-SERVER port 12345
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.01 sec 1.38 MBytes 11.4 Mbits/sec
[ 4] 1.01-2.01 sec 1.25 MBytes 10.5 Mbits/sec
[ 4] 2.01-3.00 sec 1.38 MBytes 11.6 Mbits/sec
[ 4] 3.00-4.01 sec 1.25 MBytes 10.4 Mbits/sec
[ 4] 4.01-5.01 sec 1.25 MBytes 10.5 Mbits/sec
[ 4] 5.01-6.01 sec 1.50 MBytes 12.6 Mbits/sec
[ 4] 6.01-7.01 sec 1.38 MBytes 11.6 Mbits/sec
[ 4] 7.01-8.01 sec 1.25 MBytes 10.5 Mbits/sec
[ 4] 8.01-9.00 sec 1.25 MBytes 10.5 Mbits/sec
[ 4] 9.00-10.00 sec 1.50 MBytes 12.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 13.4 MBytes 11.2 Mbits/sec sender
[ 4] 0.00-10.00 sec 13.3 MBytes 11.2 Mbits/sec receiver

iperf Done.

US 服务器端输出:
Accepted connection from IPERF-CLIENT, port 13885
[ 5] local IPERF-SERVER port 12345 connected to IPERF-CLIENT port 13889
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-1.00 sec 194 KBytes 1.59 Mbits/sec
[ 5] 1.00-2.00 sec 2.02 MBytes 16.9 Mbits/sec
[ 5] 2.00-3.00 sec 1.54 MBytes 12.9 Mbits/sec
[ 5] 3.00-4.00 sec 1.25 MBytes 10.5 Mbits/sec
[ 5] 4.00-5.00 sec 1.25 MBytes 10.5 Mbits/sec
[ 5] 5.00-6.00 sec 1.50 MBytes 12.6 Mbits/sec
[ 5] 6.00-7.00 sec 1.25 MBytes 10.5 Mbits/sec
[ 5] 7.00-8.00 sec 1.38 MBytes 11.5 Mbits/sec
[ 5] 8.00-9.00 sec 1.25 MBytes 10.5 Mbits/sec
[ 5] 9.00-10.00 sec 1.41 MBytes 11.8 Mbits/sec
[ 5] 10.00-10.18 sec 291 KBytes 13.6 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.18 sec 0.00 Bytes 0.00 bits/sec sender
[ 5] 0.00-10.18 sec 13.3 MBytes 11.0 Mbits/sec receiver
2397 次点击
所在节点    宽带症候群
13 条回复
smallthing
2021-05-29 04:27:10 +08:00
这有啥奇怪的。。。
ryd994
2021-05-29 07:03:31 +08:00
因为 UDP 没有重传和流控
服务端是 0 就是所有包全丢
iperf3 测 UDP 需要注意一下报文大小 /MTU 。iperf 的默认是 8k,在很多机房的网络上都不管用。因为 ip fragment 没有端口信息,所以很难执行防火墙规则。要么放行要么丢弃。放行就有安全问题,所以一般丢弃。
你可以试试使用 1kB 的报文
zk8802
2021-05-29 13:37:32 +08:00
看看是不是 iperf3 版本的问题。曾经有的版本的 iperf3 因为 bug 的原因,会使得所有 UDP 包都显示为丢包。

可以在服务器端抓一下包,看看 UDP 包到底有没有到。
exdriver
2021-05-29 14:17:58 +08:00
有的小鸡 udp 测速会被黑洞的
nbsn
2021-05-30 01:00:47 +08:00
@ryd994 谢谢提示。修改 MTU 后测试正常。iperf3 默认是有 MTU 的。当大于默认 MTU 后,报文会分片。TCP 有重传,就不会丢包,服务器能看到测试的速率。
ryd994
2021-05-30 03:34:42 +08:00
@nbsn TCP 不是有重传,是握手时有 mss 协商。网关等设备可能会修改 mss 。

还有,谢谢你的反馈。在论坛上问题解决后也留个结果给后人,这是好习惯。
leavic
2021-05-30 09:15:34 +08:00
因为发送端只看到自己发出去多少,接收端只看自己收到多少,而 udp 是无保障一定送达的,你发 10 包全丢也可能。
bclerdx
2021-05-30 22:41:44 +08:00
@ryd994 你说的 8K 是指 8KB MTU 巨型帧?
bclerdx
2021-05-30 22:46:56 +08:00
@ryd994 这里所说的网关设备是属于两端设备的中间设备吧?
nbsn
2021-05-31 15:08:41 +08:00
@bclerdx 8K 是 iperf3 默认的 UDP 发送帧大小。通常不设定 MTU 的话,就会按照 8K 的默认值发包。
bclerdx
2021-05-31 15:25:01 +08:00
@nbsn 那么机房的设备,不支持 8KB 大小的帧?
nbsn
2021-05-31 22:18:50 +08:00
@bclerdx 木桶原理,取决于路径经过的最小网络设备对数据报文大小的支持能力,叫 path mtu 。
bclerdx
2021-05-31 22:32:55 +08:00
@nbsn 现在还有运营商的路径中的某些设备没有配置 PMTU 或对 ICMP 限制做手脚,导致路径发现 PMTU 不能正常工作的嘛?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/779944

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX