曲径通幽论坛
标题:
为什么 ping 和 wget 时的解析有时很慢?
[打印本页]
作者:
beyes
时间:
2015-4-5 10:02
标题:
为什么 ping 和 wget 时的解析有时很慢?
为什么 ping 和 wget 时的解析有时很慢?
比如我 ping
www.groad.net
,可能会要好一会才得到 ping 的返回信息,而 ping
www.baidu.com
时却一下子就可以了。这是网站服务器慢的原因吗?
要知道,ping 一个网址时,是要先解析成 IP 的,这样势必就要求发起 DNS 查询。现在,解析 IP 时,许多平台上的 ping 或 wget 默认是优先查询 IPv6 地址的,如果对方没有 IPv6,那么许多时间都耗在这个解析身上了。
下面来做一下测试(基于 OpenWrt 平台的 ping,有指定 -4 或 -6 来选择 ipv4 或 ipv6 的 ping,其它的 linux 发行版要 ping ipv6 的话可选 ping6 这个命令):
[attach]4025[/attach]
一个 ping 总共耗时 18 秒,确实够慢的。同样可以测试 wget ,也会得到同样的结果。
测试一下 baidu 的 ping,看情况如何:
[attach]4027[/attach]
非常给力,只用了 3 秒的时间。
如果我们用 ping -4
www.groad.net
-c 4 来看看情况:
[attach]4028[/attach]
结果令人满意,也只是耗时 3 秒 。
来测试 ipv6 的 ping 一把:
[attach]4029[/attach]
耗时 15 秒,而且 ping 不通。这 15 秒 加上强制 ipv4 ping 的 3 秒,刚好等于默认测试时的 18 秒。由此可见,确实是 IPv6 的优先影响了测试结果。为了进一步验证,使用 wireshark 来捕捉:
[attach]4030[/attach]
从上图可以看出,情况确实如上述所推测的。同时也了解了为什么默认 ping
www.baidu.com
就很快,因为 baidu.com 只是一个 CNAME ,真正的域名对应了一个 IPv4 的 A 记录。
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/)
Powered by Discuz! X3.2