Операционная система NetWare

       

Протокол NCP


В 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-интерфейса для программы (клиента), выполняемой на рабочей станции или файловом сервере.


    Содержание раздела