В NetWare протокол NCP (NetWare Core Protocol) является надстройкой над протоколом IPX и используется для организации обмена между рабочей станцией и файловым сервером. На рисунке 2.18 (а) представлена структура пакета NCP.
Протокол NCP реализован в NetWare 3.х на системном уровне. В NetWare 4.х предлагается API-интерфейс NCP Extension для обращения к протоколу NCP из прикладных программ на рабочих станциях и из разрабатываемых NLM-модулей. Для обмена данными между программами по протоколу NCP используются пакеты IPX с номером гнезда 0х0451 и типом пакета 17.
Связь между рабочей станцией и файловым сервером, которые используют API-интерфейс к протоколу NCP, обычно организуется по следующей схеме:
- NLM-модуль регистрирует какую-либо свою функцию как расширение NCP,
- программа на рабочей станции или файловом сервере связывается с NetWare и получает требуемый идентификатор расширения NCP,
- программа на рабочей станции или файловом сервере использует зарегистрированную функцию NLM-модуля как удалённую процедуру, передавая ей исходные данные и получая результаты обработки.
30 или 42 | Заголовок IPX или SPX
|
2 | Тип запроса или ответа
|
| Запрос 1111h - создать канал 2222h - запрос услуги 5555h - удалить канал 7777h - при обмене с файлом использовать протокол Burst Mode | Ответ 3333h - ответ обслуживания 7777h - использовать Burst Mode 9999h - запрос поставлен в очередь и обрабатывается
|
1 | Последовательный номер пакета
|
1 | Младшая часть номера канала
|
1 | Номер задачи, выдавшей запрос
|
1 | Старшая часть номера канала (в NetWare на 1000 клиентов)
|
1 | Код завершения (только для ответа)
|
1 | Состояние канала (только для ответа)
|
длина | Передаваемые данные
|
а)
30 | Заголовок IPX-пакета (рисунок 2.15)
|
2 | Тип запроса или услуг (0х0004)
|
2 | Тип сервера (т.е. тип объекта в Bindery, обычно 0х0004)
|
48 | Имя сервера
|
4 | Номер сети (внутренний номер сети файлового сервера)
|
6 | Адрес узла файлового сервера (0х00000001)
|
2 | Номер гнезда, через которое сервер будет принимать запросы к службам NetWare (0х0451 - NCP)
|
2 | Рабочее поле
|
б)
Рис. 2.18. Структура пакетов NCP (а) и SAP (б)
Таблица 2.5. Примитивы API-интерфейса для обращения к протоколу NCP из NLM-модуля
Примитив | Описание
|
NWRegisterNCPExtension | Зарегистрировать функцию NLM-модуля как расширение NCP. Вход - имя регистрации, указатель на функцию (удалённую процедуру, которая выполняется как отдельная нить) и т. д. В прототип этой функции входят указатель на идентификатор соединения, указатель на буфер с исходными данными и длина этого буфера, указатель на буфер с результатами и длина этого буфера.
|
NWDeRegisterNCPExtension | Отменить регистрацию и удалить NLM-модуль из списка расширений NCP.
|
Фирма Novell предлагает API-интерфейс для работы в NetWare 4.х по протоколу NCP на рабочей станции и файловом сервере. В таблице 2.5 перечислены примитивы интерфейса для NLM-модуля (сервера).
Таблица 2.6. Примитивы API-интерфейса для обращения к протоколу NCP из прикладной
программы на рабочей станции или файловом сервере
Примитив | Описание
|
NWScanNCPExtensionsInfo | Получить идентификатор расширения NCP. Вход - имя регистрации (см. таблицу 2.5) и др. Выход - идентификатор расширения NCP.
|
NWSendNCPExtensionRequest | Послать запрос на файловый сервер к удалённой процедуре. Вход - идентификатор расширения NCP, указатель на буфер с исходными данными, указатель на буфер результатов и др. Выход - результаты выполнения удалённой процедуры.
|
В таблице 2.6 перечислены основные примитивы API-интерфейса для программы (клиента), выполняемой на рабочей станции или файловом сервере.
Предыдущая глава || Оглавление || Следующая глава