Zone Information Protocol

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:56, 15 января 2019.
Zone Information Protocol
Communications protocol
Purpose Предоставление информации о зоне
Developer(s) Apple Inc.
Introduced январь 1995 года
Based on OSI
OSI layer 5 (Сеансовый уровень)

ZIP (англ. Zone Information Protocol – протокол информации о зоне) представляет собой протокол сеансового уровня стека AppleTalk, который поддерживает соответствие между номером сети и именем зоны в маршрутизаторах сетей AppleTalk. Протокол ZIP используется преимущественно маршрутизаторами AppleTalk. Однако и другие вновь созданные узлы сети используют службы протокола ZIP для выбора зоны. В каждом маршрутизаторе ZIP ведет таблицу информации о зоне (zone information table — ZIT). Таблицы ZIT представляют собой списки, где каждому номеру сети соответствует одно или несколько имен зон. Каждая таблица ZIT содержит карту соответствий между номерами сетей и именами зон для каждой сети в объединенной сети. [Источник 1]

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

Протокол информации о зоне (ZIP) - это протокол уровня сеанса в наборе протоколов AppleTalk, который поддерживает сопоставление имен номеров между номерами в маршрутизаторах AppleTalk. ZIP используется в основном маршрутизаторами AppleTalk. Однако другие сетевые узлы используют службы ZIP при запуске, чтобы выбрать свою зону. ZIP поддерживает таблицу информации о зоне (ZIT) в каждом маршрутизаторе. ZIT - это списки, поддерживаемые ZIP, которые отображают определенные сетевые номера для одного или нескольких имен зон. Каждый ZIT содержит сетевое сопоставление имен номеров для каждой сети в межсетевой сети.[Источник 2] ZIP предоставляет приложениям и процессам доступ к именам зон. Зона представляет собой логическую группировку узлов в сети AppleTalk, и каждая зона идентифицируется по имени. Имя зоны обычно используется для идентификации принадлежности между группой узлов, например группой узлов, принадлежащих к определенному отделу внутри организации.

В таблице ниже представлен список зон и соответствующий ему номер.

Идентификатор Зона
10 Маркетинг
20-25 Документация, управление
50 Финансы
100-120 Инженерия
100-120 Предприятие, администрация

Рисунок 1 - Взаимосвязь ZIP с другими протоколами стека.

ZIP поддерживает отображение сетей и зон, которые они включают для всех сетей, принадлежащих к сети AppleTalk:

  • Каждый узел сети принадлежит зоне; узел может принадлежать только одной зоне одновременно;
  • Неограниченная сеть содержит только одну зону, и все узлы в этой сети принадлежат к одной и той же зоне.
  • Одна расширенная сеть может содержать узлы, которые относятся к 255 различным зонам. Одна зона может включать в себя узлы, принадлежащие разным расширенным сетям. Каждая расширенная сеть AppleTalk ассоциировала с ней список зон, к которым могут принадлежать его узлы. Узел, соединяющий сеть, может выбрать свою зону из этого списка.

На каждом узле маршрутизатора в сети ZIP создает таблицу информации о зоне, которая включает в себя номер каждой сети (расширенные сети имеют диапазоны номеров сети) в сочетании с списком зон сети. Узлы, которые не являются маршрутизаторами, такие как системы конечных пользователей, не содержат таблицу информации о зоне. Тем не менее, часть ZIP реализована на каждом непереадресованном узле, чтобы приложения и процессы могли получить доступ к имени зоны своего собственного узла, именам всех зон в их локальной сети или именам всех зон в сети. Драйвер .XPP реализует часть ZIP, которая находится на неконечных узлах, и предоставляет интерфейс, который позволяет приложению или процессу запрашивать информацию о названии зоны в диалоге на основе транзакций. ZIP использует службы ATP на основе транзакций для транспортировки запросов с узлов рабочей станции на узлы маршрутизатора. Рисунок 1 показывает ZIP и его базовые протоколы. Часть ZIP, которая реализована на неконечных узлах, таких как рабочие станции, использует службы ATP.[Источник 3]

Группа маршрутизаторов зоны информации

Информационный протокол зоны (ZIP) используется для поддержания сопоставления между сетями и именами зон, чтобы облегчить процесс поиска имени, выполняемый протоколом привязки имени. Некоторые переменные, относящиеся к протоколу информации о зоне (ZIP), применимы только к маршрутизаторам AppleTalk. Такие переменные включены в эту группу.

Группа конечных узлов протокола информации зоны

Группа ZIP End Node управляет переменными, относящимися к протоколу информации о зоне (ZIP), которые применимы как к маршрутизаторам, так и к конечным узлам.[Источник 4]

Использование

ZIP предоставляет три функции, которые можно использовать для получения имен зарегистрированных зон. Можно использовать эти функции для получения:

  • имя зоны, к которой принадлежит приложение и его узел
  • имена зон в локальной сети или имена всех зон, которые существуют во всей сети AppleTalk, к которой принадлежит локальная сеть

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

Можно использовать ZIP в сочетании с NBP. Например, можно использовать ZIP для поиска зон в сети, а затем использовать NBP для поиска имен в каждой зоне.

ZIP отправляет функции GetMyZone, GetLocalZones и GetZoneList в качестве запросов протокола транзакций AppleTalk (ATP). Эти запросы всегда запрашивают один ответ.

Например, когда вызывается ZIP для запроса информации о названии зоны, часть ZIP, реализованная на узле, на котором запущено приложение, отправляет запрос с использованием транзакционных служб ATP на часть ZIP, реализованную на локальном маршрутизаторе, который содержит таблицу ZIP (рис. 1); используя ATP, ZIP на узле маршрутизатора передает ответ на запрос.

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

Каждый из функций GetMyZone, GetLocalZones и GetZoneList использует блок параметров типа XPPParamBlock для ввода входных и выходных значений для вызова. Используется запись варианта xCallParam для блока параметров XPP для функций ZIP. Этот блок параметров содержит поле ioRefNum, которое интерфейс MPW устанавливает на ссылочный номер драйвера .XPP.

Блок параметров для каждой из трех функций ZIP включает поле csCode и поле xppSubCode. Нет необходимости устанавливать эти значения полей перед вызовом функции; интерфейс MPW заполняет значение для каждого из этих полей. Значение поля csCode всегда равно xCall. Значение поля xppSubCode определяет конкретную функцию ZIP, и она отличается для каждой из трех функций.

Для этих трех функций ZIP указывается значения тайм-аута и повтора, которые определяют поведение транзакции ATP, на которую рассчитывается вызов. Перед вызовом функции ZIP необходимо установить значения для этих полей. Поле xppTimeout блока параметров используется для установки значения тайм-аута и поля xppRetry для установки значения повтора. Тайм-аут сообщает ATP, сколько времени в секундах ждать между каждой попыткой, а значение повтора указывает, как он может повторять попытку.

Для каждой функции предоставляется буфер для хранения данных имени возвращенной зоны и буфер, который требуется ZIP для его собственного использования. Эти два буфера и блок параметров XPPParamBlock, который назначается для этой функции, принадлежат ZIP для жизни вызова; нельзя манипулировать ими или изменять их содержимое во время операции. Память для этих буферов и блока параметров принадлежит функции до тех пор, пока функция не завершит выполнение.

Если для Boolean параметра async установится значение TRUE, либо нужно предоставить процедуру завершения, иначе приложение должно опросить поле ioResult блока параметров, чтобы определить, когда функция завершила операцию.[Источник 5]

Источники

  1. Протоколы верхнего уровня в сетях AppleTalk // Блог о шифровании [2018]. Дата изменения: 14.01.2011. URL: http://crypto.pp.ua/2011/01/protokoly-verxnego-urovnya-v-setyax-appletalk/ (дата обращения: 31.10.2018).
  2. AppleTalk // Cisco [1992–2018]. Дата изменения: 16.10.2012. URL: http://docwiki.cisco.com/wiki/AppleTalk#Zone_Information_Protocol (дата обращения: 31.10.2018).
  3. About ZIP // Apple Developer Connection [2018]. Дата изменения: 01.01.2004. URL: http://mirror.informatimago.com/next/developer.apple.com/documentation/mac/Networking/Networking-85.html#HEADING85-0 (дата обращения: 31.10.2018).
  4. AppleTalk Management Information Base II // Network Working Group [2018]. Дата изменения: 05.01.1995. URL: https://tools.ietf.org/html/rfc1742#section-4.10 (дата обращения: 31.10.2018).
  5. Using ZIP // Apple Developer Connection [2018]. Дата изменения: 01.01.2004. URL: http://mirror.informatimago.com/next/developer.apple.com/documentation/mac/Networking/Networking-86.html (дата обращения: 31.10.2018).