Bonjour的名字解析缓慢

时间:2011-08-18 23:53:40

标签: ios macos bonjour

这看起来非常基本,以至于人们会尖叫它,搜索网络什么都没有,但我已经在几个网络和计算机上测试过了。我们遇到的问题是我们使用.local网址来访问资源非常慢。如果我们使用直接IP地址,我们不会看到这些延迟。

在我们的简化测试设置中,设备和计算机位于同一台交换机上,是交换机上唯一的设备。当我们不在这个非常有限的网络配置中时,会发生同样的事情。命令行上的Mac OS X Lion我们得到了这些结果:

直接ip:

curl 10.101.62.42  0.01s user 0.00s system 18% cpu 0.059 total

使用bonjour名称:

curl http://xrx0000aac0fefd.local  0.01s user 0.00s system 0% cpu 5.063 total

每个要求解决的问题始终只有5秒以上。我们尝试连接哪个设备并不重要,我们的iPhone应用程序似乎也一样,而且Python脚本也很慢。 Safari似乎能够快速解析名称。

我们可以解决一次,然后使用IP地址,但第一个请求仍然会慢得令人无法接受,我认为这不是Bonjour的工作方式。

我们并不确定这种情况何时开始发生,但并非总是这样。

编辑:另一个数据点。在Snow Leopard上解决问题的速度并不慢:

$ time curl http://hp1320.local > /dev/null
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                               Dload  Upload   Total   Spent    Left  Speed
 101  2848    0  2848    0     0  15473      0 --:--:-- --:--:-- --:--:-- 36512

real    0m0.201s
user    0m0.005s
 sys    0m0.009s

2 个答案:

答案 0 :(得分:1)

这已在iOS 5和Lion 10.7.2中得到解决。这是一个巨大的解脱。不幸的是4.3应用程序用户会得到这种缓慢的行为。猜猜这是升级的另一个原因。

答案 1 :(得分:0)

当您浏览它们时,您提到的主机是否会显示?枚举应该很快:

mdns -B _http._tcp

也许有些东西会减慢名称解析速度。如果您使用dig查询IP,它应该立即返回正确的地址:

dig A xrx0000aac0fefd.local @224.0.0.251 -p 5353

未能尝试运行tcpdump并查看是否有设备在网络上喷出多播数据包。