iOS Bonjour через Интернет - PullRequest
5 голосов
/ 05 июня 2011

Я знаю, что реализация Bonjour в iOS (NSNetService, NSNetServiceBrowser) работает "из коробки" в локальных сетях.

В документации сказано, что можно настроить DNS-сервер Bonjour, чтобы разрешить подключение пользователей через Интернет,поэтому мои вопросы:

  1. Что такое интерфейс сервера Bonjour DNS?Есть ли пример, с которого я могу начать?
  2. Отвечает ли DNS-сервер, отвечающий за первоначальное рукопожатие \ соединение пиров, а остальные (отправка \ запись данных) будут непосредственно между пирами?
  3. Предоставляет ли DNS-сервер механизм перфорации NAT?

Спасибо!

1 Ответ

4 голосов
/ 05 июня 2011

Обнаружение локальной службы Bonjour на основе «многоадресной DNS». всякий раз, когда какой-либо клиент хочет узнать что-либо о сети или услугах в сети, он использует адрес многоадресной рассылки 224.0.0.251, то есть только клиенты в этой группе многоадресной рассылки могут использовать bonjour вместе. пространство IP-адресов 244.0.0 / 24 определено как «Блок управления локальной сетью» RFC5771 и не будет переадресовано из вашей локальной сети.

НО на самом деле Bonjour - это просто метод на основе DNS - вы можете указать NSServiceBrowser выполнять поиск в нелокальном домене, который просто требует, чтобы сервер DNS отвечал на конкретные запросы (как описано в 1006 * Добавление записей обнаружения службы DNS-SD вручную на существующий сервер имен ) Это позволяет обнаруживать службы через Интернет и даже регистрировать службы, если вы работаете с обновлением DNS ( Настройка Bonjour Name Server ), но не более того - вам нужно позаботиться о пробивании дырок самостоятельно.

Так что возьмите себе BIND-сервер и начните пробовать;)

...