Медленное разрешение имен в Bonjour - PullRequest
3 голосов
/ 19 августа 2011

Это кажется настолько простым, что люди будут кричать об этом, поиск в Интернете ничего не дал, но я проверил это на нескольких сетях и компьютерах. У нас возникла проблема, когда мы используем .local url для доступа к ресурсам, это очень медленно. Если мы используем прямой 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 ]

1 голос
/ 14 октября 2011

Это разрешено в iOS 5 и Lion 10.7.2. Что является огромным облегчением. К сожалению, пользователи приложения 4.3 получат такое медленное поведение. Думаю, это еще одна причина для обновления.

0 голосов
/ 26 августа 2011

Отображаются ли упомянутые вами хосты, когда вы их просматриваете? Перечисление должно быть довольно быстрым:

mdns -B _http._tcp

Возможно, что-то замедляет разрешение имени. Если вы запрашиваете IP-адреса с помощью dig, он должен мгновенно вернуть правильный адрес:

dig A xrx0000aac0fefd.local @224.0.0.251 -p 5353

Сбой при попытке запустить tcpdump и посмотреть, есть ли устройство, которое выбрасывает многоадресные пакеты в сети.

...