这看起来非常基本,以至于人们会尖叫它,搜索网络什么都没有,但我已经在几个网络和计算机上测试过了。我们遇到的问题是我们使用.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
答案 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
并查看是否有设备在网络上喷出多播数据包。