Протокол SAP (service advertising protocol) служит для получения информации обо всех серверах, имеющихся в сети, и поддерживает следующие виды запросов и функции:
Каждому серверу NetWare присваивает номер, а некоторые сервера могут иметь и имя. Номер сервера и его имя хранятся в базе данных объектов bindary каждого сервера. Пакет запроса SAP-сервиса содержит 2 байта типа пакета и два байта типа сервера. Поле тип пакета определяет, является ли данный пакет общим запросом сервиса (код=0x0003), или запросом ближайших услуг (код=0x0001). Таблица кодов поля тип сервера приведена ниже (4.2.1.3).
Таблица 4.2.1.3 Коды тип сервера (cм. также
ftp://ftp.isi.edu/in-notes/iana/assignments/novell-sap-numbers)
Тип сервера |
Описание |
0x0001 |
Пользователь |
0x0004 |
Файл-сервер |
0x0005 |
Сервер заданий |
0x0006 |
Внешний сетевой порт (gateway) |
0x0007 |
Принт-сервер |
0x0009 |
Сервер архива |
0x000a |
Очередь задач |
0x0017 |
Диагностика |
0x0020 |
NetBios |
0x0021 |
NAS SNA порт |
0x0027 |
TCP/IP сервер порта |
0x0028 |
Сервер моста x.25 точка-точка |
0x02e |
Динамический SAP |
0x0047 |
Оповещающий принт-сервер |
0x004b |
vap 5.0 |
0x004c |
SQL VAP |
0x007a |
TES-NetWare VMS |
0x0098 |
Сервер доступа к NetWare |
0x009a |
Сервер именованных труб |
0x009e |
Портативный NetWare-Unix |
0x0107 |
NetWare 386 |
0x0111 |
Тест-сервер |
0x0166 |
Управление NetWare |
0x026a |
Управление NetWare |
0x026b |
Временная синхронизация |
0x0278 |
Сервер каталогов NetWare |
SAP-пакеты-отклики (периодически рассылаемые пакеты) имеют следующий формат (рис. 4.2.1.5).
Рис. 4.2.1.5. Формат пакета SAP
Поле тип пакета принимает значение 0x0002 для SAP-откликов общего обслуживания (General Service Response) и 0x0004 для отклика ближайшего сервера. Запросы о ближайшем сервере используются для поиска в сети сервера конкретной разновидности (пакет запроса содержит лишь первые два поля). Реально отклик будет получен от всех серверов данного типа, а не только от ближайшего. Насколько данный сервер близок, определяется по числу маршрутизаторов до него. Эти запросы/отклики служат для составления списка доступных серверов. Поле тип сервера содержит код доступного вида услуг, а в поле наименование сервиса записывается имя услуги уникальное для данного сервера (длина поля на рис. 4.2.1.5 равна N). Поле адрес сети представляет собой 4-байтовое число, которое идентифицирует адрес сервера. Поле адрес узла характеризует адрес сервера в сети. Службы NetWare указывают адрес 0x00.00.00.00.00.01. Поле дескриптор соединителя характеризует код соединителя, который будет использовать сервер. Последнее поле - число шагов до сервера (число транзитных сетей) характеризует число маршрутизаторов между сервером и клиентом. При отключении сервера от сети он должен широковещательно разослать SAP-уведомление “Останов сервера”. Уведомление содержит код сервера и его полный адрес.