【问题标题】:Problems with ping packet sizeping 数据包大小的问题
【发布时间】:2023-12-20 06:59:01
【问题描述】:

我在 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 $4}' | 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)。

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

【问题讨论】:

标签: zsh ping


【解决方案1】:

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

【讨论】: