Технология Rendezvous

19 февраль, 2003 - 00:00Максим Горбенко
Разработки компании Apple Computer всегда отличались простотой использования. Не является исключением и технология Rendezvous, позволяющая строить "к случаю" небольшие IP-сети с поддержкой динамического подключения устройств и автоконфигурации.
Все технологические новинки операционной системы Mac OS X перечислить нелегко. Переход на Unix-ядро повлек за собой очень большие изменения.

В перечень основных новшеств Mac OS Х входит и Rendezvous -- технология построения IP-сетей, предполагающая "горячее" подключение сетевых устройств (компьютеров, принтеров, бытовой техники) и их функционирование без предварительной настройки. Для работы в сети "десятка" предоставляет большой набор различных протоколов и служб, но основным является общепринятый TCP/IP. Протокол, разработанный самой Apple, -- Apple Talk -- поддерживается, однако основным не является. Новая технология от Apple дополняет стандартный TCP/IP привычными для мак-пользователей "удобствами", объединяя его скорость и совместимость с динамическим подключением устройств к сети и автоматической их настройкой.

Rendezvous предназначена для локальных сетей без выделенного сервера (одноранговых), не имеющих профессионального администратора для обслуживания и настройки. Здесь некому распределять IP-адреса, связывать их с именами узлов, выделять среди абонентов сети ресурсы -- устройства, способные предоставлять различные сервисы. Подобные сети возникают спонтанно, по необходимости, поэтому называются "импровизированными". Их не нужно долго прокладывать и настраивать, а потом демонтировать -- они строятся мгновенно, а после использования быстро сворачиваются. Импровизированная связь идеальна для мобильных пользователей, образующих сеть каждый раз в новом месте. Такую "моментальную" сеть могут организовать несколько мак-пользователей в студенческой аудитории или конференц-зале, на презентации или в библиотеке. Возможно, это будет подключение к бортовой системе автомобиля или импровизированная сеть между переносными компьютерами в поезде. Осуществляется подключение проволочным соединением Ethernet или с помощью беспроводной связи AirPort -- стандартных и широко поддерживаемых технологий.

В одноранговой локальной сети заголовки сетевых пакетов не модифицируются при передаче данных от одного хоста к другому, а сохраняют свой первоначальный неформатированный вид. Здесь не используется служба DHCP, которая занимается распределением адресов и параметров начальной настройки между клиентами сети. Взамен нее предлагается собственная система динамического распределения адресов, соотнесенных с именами устройств. Система имен Rendezvous тесно связана с DNS и не заменяет ее, а лишь дополняет на локальном уровне. Имена всех входящих в такую сеть устройств объединены в суффиксальную группу local, которая не является доменом в полном смысле этого слова. Отличие в том, что доменные имена глобально уникальны, а имена служб Rendezvous -- только на своем собственном локальном уровне. В глобальной или большой внутренней сети, состоящей из нескольких локальных, одинаковые имена с суффиксом local. вполне могут повторяться на разных участках. Они проверяются на пересечение только в пределах своей локальной сети.

Система имен Rendezvous предполагает разделение сетевых объектов на пользовательские компьютеры и ресурсы. Для того чтобы отличить услуги от имен хостов, в ресурсных записях сервисы отмечены префиксами символа подчеркивания. После имени сервиса указывается название транспортного протокола, по которому идет обслуживание. Строка в DNS-таблице имеет вид _<имя сервиса>. _<транспортный протокол>, например _ftp._udp. Пользовательские компьютеры тоже отражены в ресурсных записях, поскольку они предоставляют услугу доступа к своим файлам, предназначенным для совместного использования. Запись об этой службе выглядит как _http._tcp.

Но особенности технологии Rendezvous не исчерпываются распределением IP-адресов и нумерацией портов, а также адресованием по пользовательскому имени. Она обеспечивает надежную работу всех сетевых служб при изменениях IP-адресов, нумерации портов и DNS-имен устройств, на которых эти службы выполняются. Такое нередко случается в "гибких" сетях с непостоянным количеством хостов, где мобильные пользователи периодически отключаются и снова подключаются и где регулярно появляются новые устройства, зачастую без ведома администратора. Rendezvous рассматривает сеть не как объединение компьютеров и устройств, а как набор служб, реализуемых соответствующими устройствами.

Пользовательский интерфейс IP-сетей, построенных по технологии Rendezvous, ориентируется не на присутствующие в сети хосты, состав которых может изменяться, а на доступные пользователю в данный момент службы. "Традиционный", опирающийся на хосты, интерфейс оправдывает себя только в "стабильной" сети, где одни и те же сетевые сервисы постоянно предоставляют одни и те же сетевые устройства. В "гибкой" сети, где состав и количество хостов постоянно изменяются, относительно стабильными ориентирами остаются лишь сетевые службы. Это могут быть сервисы печати, сканирования, доступа к совместно используемым базам данных и файлам, выхода в Глобальную Сеть, службы демонстрации слайд-шоу и озвучивания мультимедийных файлов, а также им подобные. При этом в зависимости от текущего состава устройств сети они могут выполняться на совершенно разных хостах. Пользователю "гибкой" сети удобнее непосредственно обратиться к необходимой ему службе, чем опрашивать все устройства об их сервисах, а потом сортировать результаты в поисках нужного обслуживания.

В сети без выделенного сервера генерирование IP-адресов, подбор DNS-имен, обнаружение типов сервисов обычно сильно загружают канал и занимают относительно много времени, но Rendezvous сводит необходимый для конфигурирования трафик к минимуму. Для этого разработана целая система мер. Полученная при конфигурировании информация хранится в специальном кэше -- если она понадобится в следующий раз, то не нужно будет повторять запрос. После каждого опроса создается список ответивших хостов, а затем на наличие новых служб опрашиваются только устройства, отсутствующие в данном списке. Это предотвращает повторные ответы, которые не несут полезной информации, а лишь дублируют друг друга. Наконец, опрос сети на подтверждение доступности сервисов ведется не постоянно, как это делал Apple Talk, а через определенные промежутки времени, возрастающие в геометрической последовательности. Точно так же новые службы, появившись в сети, объявляют о своем присутствии с интервалом в 1, 2, 4, 8, 64 и 4096 секунд. Таким образом, "фоновый шум", необходимый для первоначальной конфигурации и поддержки работоспособности, заметно уменьшается. Все это разгружает сеть.

Предоставление сетевых служб по технологии Rendezvous состоит из выбора IP-адреса, объявления сервиса, просмотра доступных служб сети, а также создания устойчивой связи между обслуживанием и необходимой для адресации информацией.

Номер сетевого адреса генерируется в самом подключаемом устройстве. При этом не используются псевдослучайные алгоритмы, опирающиеся на общие для всех данные, например на календарь и счетчик времени. Цифровые значения выбираются случайно из числа отведенных под Rendezvous адресов, которых более 65 тысяч.

После того как адрес выбран, он проверяется на уникальность. Если компьютер находит свой адрес уже использованным, то в действие вступают механизмы улаживания конфликтов пересечения. Перед выключением компьютера список контактов сохраняется -- включив машину в следующий раз, не нужно тратить время на выбор адреса и заниматься его проверкой.

Решив проблему адресации, устройство готово получать и отправлять данные по сети. Но пользователю удобнее работать не с числовыми IP-адресами, а с именами узлов. Для наименования Rendezvous использует вариант стандартной службы DNS, который называется multicast (mDNS), и создает таблицу, соотносящую IP-адреса с именами хостов. Для устройств имя находится автоматически, для клиентских машин --запрашивается у пользователя. Уже имея IP-адрес, mDNS-устройство посылает запрос на использование уникального имени. После проверки его уникальности устройство присваивает это имя себе.

Далее определяются тип сервиса устройства и номер порта, по которому работает обслуживание. Все хосты распределяются по типам сервисов, объединяющим службы одного вида. Название разновидности обслуживания, которое устройство предлагает абонентам сети, вносится в mDNS-таблицу. Так, например, тип обслуживания _http._tcp. предназначается для связи с другими компьютерами с помощью протокола tcp. Под записью _ipp._tcp. находятся все службы, предоставляющие услуги печати, которые реализуют принтеры. Номера портов бывают как жестко закрепленными за отдельными сервисами (например, порт номер 80 за Web-службами), так и произвольно выбираемыми. И номер порта, и тип службы проверяются на уникальность в локальной сети.

Затем происходит выбор сервисного имени -- ключевого для Rendezvous-сети. Оно содержит всю информацию, необходимую для адресования. Пользователь работает только с сервисным именем, а уже от него идет запрос mDNS об имени хоста, адресе и номере порта. Такая система имеет свои преимущества. Во-первых, обслуживание обозначается более удобочитаемым именем, чем доменное. Во-вторых, гарантируется возможность обращения к службе при изменении всей необходимой информации. Сервисное имя служит устойчивым идентификатором для данного типа обслуживания, символизируя сокетную связь между двумя точками сети. Оно предохраняет пользователя от повторного выбора устройства при изменении номера порта, IP-адреса или имени последнего. Пока обслуживание по определенному сервисному имени используется, сохраняется информация о сокете, то есть открытие службы происходит лишь однажды, при первом подключении устройства к сети. В дальнейшем, даже после временного отключения, устройство будет готово к работе без затрат времени на начальную установку. Сокетная связь помогает соотносить старые и новые номера портов, IP-адреса и DNS-имена, необходимые для правильной адресации, а также позволяет совершать "подмену" этой информации. Сервисное имя также проверяется на пересечение со всеми устройствами.

Наконец, когда требуемая информация собрана, заполняются все разделы mDNS-таблицы. Она хранится в каждом из компьютеров локальной сети. Строка Pointer Records указывает на тип сервиса, к которому относится сервисное имя. Она дает возможность обнаружить службу, предоставленную конкретным устройством, через общий тип подобных услуг. Эту информацию видит пользователь в оконном интерфейсе и непосредственно с ней работает. Запись Service Records связывает сервисное имя с именем хоста, а через него с номером порта и IP-адресом. Также здесь находятся сведения о трафике, выделенном данному устройству, и указание на приоритетность этой связи в сети. Строка Text Records дополняет имеющуюся информацию о типе конкретного сервиса и содержит добавочные сведения, необходимые для открытия службы. Она оповещает о доступности пользователя ("доступный", "находящийся вне сети"), указывает на приоритетность использования принтера ("по умолчанию", "по выбору пользователя") и т. п. Кроме записей, в mDNS-таблицу заносится оперативная информация: сведения о номере порта, имени хоста и IP-адресе. В случае необходимости, если произошла замена сетевого устройства, эти данные соответственно обновятся. Устойчива лишь их связь с сервисной записью, указывающей на вид услуг, которые предоставляет устройством. Все "подмены" выполняются автоматически, без малейшего вмешательства пользователя.

К оперативной информации относятся и сведения о расположении корректного PPD-файла. При замене сетевого принтера они тоже обновляются. Распознав компьютер по имени хоста, Rendezvous ищет необходимый для его работы PPD-файл. В mDNS-таблицу заносится путь к этому файлу и связывается со всеми остальными компонентами, объединенными под сервисным именем. При обращении к службе печати, а через сервисное имя -- к конкретному принтеру mDNS указывает, какой именно из PPD-файлов будет использован приложением Print Center в работе. Если в сети несколько принтеров, технология Rendezvous избавит пользователя от необходимости выбора PPD-файла, автоматически указав нужный.

Новое устройство объявляет о своих сервисах в специальном уведомлении, которое рассылается всем абонентам сети. Происходит это с помощью обмена сообщениями со службой mDNS. Каждое из устройств посылает в сеть текстовый файл, содержащий всю необходимую для обнаружения сервиса информацию. Эти сведения заносятся в таблицы mDNS на всех машинах сети. Теперь, чтобы найти необходимый сервис, нужно обратиться к записям указателя на своем компьютере и через них связаться с устройством, которое его предоставляет.

Пользователь получает доступ к службам Rendezvous через оконные броузеры сервисов. Обращаясь к тому или иному окну, он выбирает тип сервиса. Для выхода в сеть и связи с другими машинами следует применять http-броузер, для подключения к удаленным компьютерам и совместного использования файлов -- ftp-броузер, для использования служб печати -- printer-броузер и т. д. Если в броузере службы нет необходимого имени, значит устройство на данный момент недоступно. Снова подключившись к сети, оно предложит свои услуги, появившись в оконном интерфейсе.

Максимальное число устройств в сети, построенной по технологии Rendezvous, не должно превышать 1300, хотя адресовать можно гораздо больше. Значительное количество компьютеров увеличивает время автоматической конфигурации и сильно замедляет обмен данных. В реальной жизни такое число подключений к локальной сети практически не встречается. В крайнем случае большую сеть можно разделить на несколько подсетей со своими системами "нулевой" конфигурации.

Разумеется, корпоративная сеть, построенная с применением Rendezvous, нуждается в дополнительной настройке со стороны системного администратора, а принцип "нулевого" конфигурирования не удовлетворяет корпоративным требованиям к безопасности сетей.

Уже сегодня технология Rendezvous широко используется. О ее поддержке заявили многие компании, выпускающие компьютерную периферию и бытовую электронику. Более десяти производителей принтеров, в том числе Canon, Epson, Hewlett-Packard, Lexmark и Xerox, намерены внедрять ее в свои устройства, что позволит быстрее устанавливать и эффективнее использовать службу печати. Philips будет выпускать Rendezvous-совместимые мультимедийные устройства -- телевизоры для просмотра компьютерного видео и музыкальные центры для проигрывания звуковых файлов.