ping包大小问题

Problems with ping packet size

我在使用大数据包 ping 主机时遇到了一些问题。

我正在研究一种配置与另一种配置之间的延迟。

我已经编写了 bash/zsh 脚本来简化 ping 8.8.8.8 然后解析输出以获得平均 ping 值。脚本如下:

#!/bin/zsh
for SIZE in {100..65500..100}
do
    ping 8.8.8.8 -c 5 -s $SIZE > tempfile
    TEMP=$(cat tempfile | tail -1 | awk '{print }' | cut -d / -f 2)
    echo "$SIZE - $TEMP" | tee -a results
done
rm tempfile

问题是对于大数据包(标准值为 64b 时超过 30kB)ping 不起作用,我没有得到任何响应,就像服务器不可用一样。有趣的是,当我在另一个地方时,一切正常(那里的互联网连接有点差),那里的问题开始时大约 60kB,但在这里他们开始大约 30kB 并得到一个(从 ~300 到最后,更大 = 更糟)结果我需要调用这个脚本 ~10-20 次。这真的很烦人,因为对于较小的数据包,它的工作就像一个魅力(使用相同的服务器 8.8.8.8)。

有人知道是什么原因造成的吗?

此行为与 IP 分段有关,当您的数据包大小大于您的最大传输单元 (MTU) 占用的数据包数量超过一个数据包并变得非常低效时,请查看 https://en.wikipedia.org/wiki/IP_fragmentation