Name Binding Protocol

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:27, 11 января 2019.
Name Binding Protocol
Communications protocol
Purpose Сопоставления имен устройств и сервисов с адресами
Developer(s) Apple Inc.
Introduced январь 1995 года
Based on OSI
OSI layer 4 (Транспортный уровень)
Name Binding Protocol (протокол привязки имени или NBP) – часть стека протоколов AppleTalk для сопоставления имен устройств и сервисов с адресами AppleTalk и сокетами AppleTalk в локальной сети. Поскольку адреса AppleTalk не назначаются центральными органами, но устройства AppleTalk автоматически распределяют их с использованием AARP, необходимо преобразовать имена фиксированных устройств в постоянно меняющиеся адреса. NBP решает эту задачу, назначая фиксированные имена динамическим адресам с учетом конфликтов имен.

Область применения

К примеру, можно зарегистрировать свой объект с помощью NBP, а затем использовать транспортный протокол, такой как ADSP, для связи с другими объектами; ADSP открывается сокет для сущности и присваивает этот номер сокета сущности. Сущность регистрирует имя NBP вместе с этим номером сокета.

С помощью данного протокола можно:

  • зарегистрировать предприятие с NBP, чтобы сделать его доступным для других сетевых организаций для связи
  • получить адрес другой организации, чтобы вы могли связаться с ней
  • получить имена NBP и адреса интернет-сокетов всех зарегистрированных лиц, имена NBP которых соответствуют частично указанному имени

Принцип работы

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

Имя объекта состоит из трех полей: объекта, типа и зоны. Значение для каждого из этих полей может быть буквенно-цифровой строкой длиной до 31 символа. Имя объекта не чувствительно к регистру. Вы указываете значение для полей объекта и типа.

Поле объекта обычно идентифицирует пользователя системы или самой системы в случае сервера. Приложения обычно устанавливают это значение на имя владельца, которое пользователь указывает через панель управления настройкой Sharing.

Поле типа обычно идентифицирует тип услуги, предоставляемой сущностью, например «Почтовый ящик» для электронного почтового ящика на сервере. Объекты того же типа могут находить друг друга и идентифицировать потенциальных партнеров, просматривая адреса, основанные только на части типа имени.

Поле зоны определяет зону, к которой принадлежит узел. Вы не указываете это значение; при регистрации процесса вы указываете звездочку (*) для этого поля. NBP интерпретирует звездочку для обозначения текущей зоны или зоны, в случае простой сетевой конфигурации, не разделенной на зоны.[Источник 1]

Архитектура

Отображение имен для адресов, поддерживаемых NBP, важно для AppleTalk, поскольку номера адресов, которые использует AppleTalk, не являются фиксированными. AppleTalk назначает адрес динамически к узлу, когда узел сначала присоединяется к сети и всякий раз, когда узел перезагружается. Из-за этого, адрес узла в сети AppleTalk может время от времени меняться. Хотя номер сети соответствует конкретной связи, а номер сетевого номера адреса относительно стабилен, номер сокета, назначенный сущности, обычно генерируется случайным образом. Хотя NBP не является транспортным протоколом, то есть вы не используете его для отправки и получения данных, NBP является клиентом DDP. На рисунке 1 показаны NBP и его базовая архитектура.

Рисунок 1 – Протокол привязки имени и базовые протоколы AppleTalk

NBP предоставляет сетевым объектам доступ к текущим адресам других объектов. Часть названия отображения NBP также важна для идентификации и определения местонахождения объекта в сети. Имя объекта NBP отличается от имени приложения. Приложение может отображать имена объектов для пользователей и искать адреса на основе имен.

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

Когда вы регистрируете свой объект с помощью NBP, он становится видимым для других объектов по всей сети. Сетевой объект, зарегистрированный в NBP, называется видимым объектом. Приложение почтового сервера является примером видимого в сети объекта. Когда почтовый сервер зарегистрирован в NBP, клиенты рабочей станции с почтовыми ящиками могут обращаться к программе почтового сервера для отправки и получения почты.

Во время инициализации серверное приложение может подключиться к NBP для регистрации, чтобы его клиенты могли получить доступ к серверу, когда они выходят в Интернет. Однако игровое приложение может регистрироваться, когда пользователь запускает его, чтобы партнерские приложения того же тип может найти его, а затем удалить его запись из каталога имен NBP, когда пользователь покидает приложение.

Вы используете процедуры NBP для регистрации своего объекта, чтобы другие объекты могли его найти и для получения адресов других объектов, с которыми вы хотите общаться. Вы указываете имя объекта, которое придерживается определенного формата и регистрирует это имя с помощью NBP в сочетании с номером сокета, который использует ваш объект. Затем NBP делает полный адрес вашего объекта доступным для других лиц. Чтобы получить адрес другого объекта, зарегистрированного в NBP, вы указываете имя NBP этого лица. Вы можете получать адреса более чем одного объекта с помощью подстановочных знаков вместо полного имени NBP.

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

Протокол доступа к каналу динамически присваивает уникальный идентификатор узла каждому узлу, когда он присоединяется к сети. Когда пользователь перезагружает систему, иногда доступен один и тот же идентификатор узла и присваивается новый идентификатор узла. Номер сети - это идентификатор, к которой узел подключен напрямую, и он остается таким же, поскольку узел физически связан с этой сетью. NBP заполняет идентификатор узла и номер сети в записи таблицы имен. Вы не предоставляете эти части интернет-адреса.

Рисунок 2 – Таблица имен NBP на каждом узле, вместе образующая каталог имен NBP

NBP ведет таблицу имен в каждом узле, которая содержит имя и интернет-адрес каждого зарегистрированного объекта в этом узле. Каждая пара имен и адресов называется кортежем. Когда вы регистрируете свой процесс с помощью NBP, вы предоставляете запись в таблице имен. NBP строит свою таблицу имен на узле из записей, которые предоставляют сущности.

NPBSetNTE

Процедуры NBP включают процедуру NPBSetNTE, которую вы можете использовать для заполнения записи таблицы имен, которая находится в формате, который ожидает NBP. Процедура NPBSetNTE принимает имя и идентификатор сокета, которые вы указали, и строит запись таблицы имен в указанном вами буфере.

Чтобы сформировать таблицу имен для узла, NBP соединяет вместе как связанный список записи таблиц имен всех зарегистрированных объектов на этом узле. Коллекция таблиц имен на всех узлах в Интернете называется каталогом имен NBP. На рисунке 2 показано количество узлов в сети, каждая со своей собственной таблицей имен; каждая таблица имен содержит запись для каждого зарегистрированного объекта на своем узле.

Всякий раз, когда узел получает запрос поиска NBP, NBP выполняет поиск в своей таблице имен для соответствия и, если он находит совпадение, возвращает информацию запрашивающему.[Источник 2]

Источники

  1. Requirements for a Protocol to Replace the AppleTalk Name Binding Protocol (NBP) // ietf [2018]. Дата изменения: 01.02.2013. URL: https://tools.ietf.org/html/rfc6760 (дата обращения: 25.11.2018).
  2. Chapter 3 - Name-Binding Protocol (NBP) // Apple Developer [2018]. Дата изменения: 01.01.2004. URL: http://mirror.informatimago.com/next/developer.apple.com/documentation/mac/Networking/Networking-61.html (дата обращения: 25.11.2018).