我正在testing一个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只有10ms
这可能是某处的实现工件。 有谁知道这是从哪里来的?
也许有一些有趣的事情发生在IPv6 ping命令上。 它肯定听起来像'-A'没有做它应该与ping6。
话虽如此,IPv6的速度可能不如IPv4,尤其是在IPv6的早期阶段。 只有很less的组织路由IPv6,更less的IPv6对等体。 一些IPv6数据包可能正在通过隧道。 您的IPv6数据包所需的path可能会更长。 traceroute6可能会告诉你。
我试图通过IPv4和IPv6来ping通Google,并得到几乎相同的结果。