2011-08-18 87 views
3

这似乎很基本,人们会尖叫它,搜索网络什么都没有,但我已经在多个网络和计算机上进行了测试。我们遇到了一个问题,我们使用.local url访问资源非常缓慢。如果我们使用直接IP地址,我们不会看到这些延迟。在Bonjour缓慢的名字解析

在我们的精简测试设置中,设备和计算机位于同一个交换机上,并且是交换机上的唯一设备。当我们不在这个非常有限的网络配置中时,会发生同样的事情。的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应该工作的方式。

我们并不确定何时开始发生,但并非总是如此。

编辑:另一个数据点。在雪豹它解决不慢:

$ 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 
+0

更多数据。雪豹很快,但是狮子很慢。 – possen

+0

狮子慢一切 –

回答

1

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

0

你提到的主机显示,当你浏览他们?枚举应该很快:

mdns -B _http._tcp 

也许有一些放缓的名称解析。如果查询IP地址与应该几乎立即返回正确的地址:即尝试运行tcpdump

dig A xrx0000aac0fefd.local @224.0.0.251 -p 5353 

失败,看看是否有是一个的喷涌而出,网络上的组播数据包的设备。

+0

感谢您的答案,是的名称是在本地网络上,可以找到与dns-sd -B。它发生在我拥有的任何Lion设置上。在我的测试设置中,网络上只有两个设备。你可以试试这个dns-sd -B找到一个本地名字并在Lion上运行上面的“时间卷曲”命令。它需要约5秒钟。 – possen