我正在从 Linux 机器测试 IPv6 延迟,并注意到 IPv4 ping 和 IPv6 ping 之间存在奇怪的差异:
# ping -n -A -q -c 500 speedtest.steffann.nl
PING speedtest.steffann.nl (10.3.10.20) 56(84) bytes of data.
--- speedtest.steffann.nl ping statistics ---
500 packets transmitted, 500 received, 0% packet loss, time 240ms
rtt min/avg/max/mdev = 0.297/0.364/7.213/0.317 ms, ipg/ewma 0.481/0.358 ms
平均 rtt 为 0.364,计数为 500,因此占 182ms。240ms 的运行时间稍高一些,但这并不是令人惊讶的开销。现在是 IPv6 ping:
# ping6 -n -A -q -c 500 speedtest.steffann.nl
PING speedtest.steffann.nl(fd9c:262f:e839:310::20) 56 data bytes
--- speedtest.steffann.nl ping statistics ---
500 packets transmitted, 500 received, 0% packet loss, time 5000ms
rtt min/avg/max/mdev = 0.508/0.751/2.197/0.254 ms, pipe 2, ipg/ewma 10.021/0.725 ms
rtt 大约是原来的 2 倍,所以我预计运行时间也大约是原来的 2 倍。但它却长了 20 多倍。而且每次 ping 正好是 10 毫秒……
这可能是某个地方的实现工件。有人知道这是从哪里来的吗?
答案1
也许 IPv6 ping 命令出了点问题。听起来“-A”在 ping6 中没有发挥应有的作用。
话虽如此……IPv6 可能不如 IPv4 快,尤其是在 IPv6 的早期阶段。路由 IPv6 的组织并不多,IPv6 对等体也更少。一些 IPv6 数据包可能正在通过隧道。您的 IPv6 数据包所走的路径可能更长。traceroute6 可能会向您显示这一点。
我尝试通过 IPv4 和 IPv6 ping Google,得到了几乎相同的结果。