NetWareCoreProtocol (NCP)

NetWareCoreProtocol (NCP, основной протокол NetWare) отвечает за проводку большей части сетевого трафика между клиентами и серверами. Клиентские системы используют NCP для осуществления запросов к файлам, расположенным на томах сервера, и отправки заданий на печать в очереди принтеров. Серверы применяют NCP для передачи запрошенных файлов обратно клиенту. Разновидность этого протокола, называемая NetWareCorePacketBurst (NCPB, основной протокол пакетного режима), позволяет серверам отправлять клиенту большое количество данных, не ожидая подтверждения получения каждого пакета.

В то время как SPX является протоколом Транспортного уровня, место NCP в эталонной модели OSI определено не настолько точно. Так как клиенты задействуют сообщения NCP для регистрации на сервере или в дереве NDS, можно сказать, что протокол функционирует на Сеансовом уровне. С другой стороны, возможности NCP по передаче файлов и подтверждению получения пакетов помещают его на Транспортный уровень. Вдобавок, NCP обеспечивает блокировку файлов, услуги по синхронизации и переносит сообщения NDS, что придает ему атрибуты, свойственные Представительскому и Прикладному уровням. Вместе с тем, сообщения NCP переносятся внутри стандартных дейтаграмм IPX, как и пакеты SPX.

Обмен сообщениями NCP обычно строится по схеме запрос/ответ, и сервер генерирует сообщение-ответ для каждого запроса клиента. Ответы и запросы NCP имеют различные форматы. Они приведены в следующих разделах.

Сообщение запроса NCP

Тип запроса (Request Туре), 2 байта. Определяет основную функцию сообщения. Клиентские системы вырабатывают несколько нижеперечисленных типов запросов.

•1111 — создание соединения. Инициализирует соединение с сервером NetWare.

•2222 — запрос к файловому серверу. Используется для запроса доступа к ресурсу сервера NetWare.

•5555 — разрыв соединения. Завершает соединение с сервером.

•7777 — включение пакетного режима. Применяется в качестве обращения к серверу NetWare для инициализации пакетного (монопольного) режима передачи.

Порядковый номер (SequenceNumber), 1 байт. Фиксирует присвоенный каждому из сообщений порядковый номер, что обеспечивает правильную последовательность обработки переданных вызовов NCP получателем.

Младшие разряды номера соединения (ConnectionNumberLow), 1 байт. Указывает номер соединения клиента с сервером.

Номер задачи (TaskNumber), 1 байт. Представляет собой уникальное значение, используемое для сопоставления сообщений запроса с ответами.

Старшие разряды номера соединения (ConnectionNumberHigh), 1 байт. Поле зарезервировано для будущих применений. Всегда содержит значение 00.

Функция (Function), 1 байт. Указывает функцию сообщения, связанную с кодом, размещенным в данном поле.

Подфункция (Subfunction), 1 байт. Предназначено для уточнения функции сообщения.

Длина подфункции (SubfunctionLength), 2 байта. Определяет длину поля данных текущего сообщения, обуславливаемую его функцией и подфункцией.

Данные (Data), переменной длины. Хранит информацию, соответствующую обрабатываемому запросу.

NCP способен обеспечивать огромное количество различных функций. Существует около 200 комбинаций кодов полей функции и подфункции, поддерживающих сервисы из категорий, перечисленных ниже.

Службы учетных записей. Возвращают статус учетных записей, регистрируют загрузку и управляют учетными записями.

Службы регистрации сетевых ресурсов. Осуществляют доступ к объектам базы регистрационных данных (bindery) NetWare 3.x и изменяют их свойства.

Службы соединений. Создают и разрывают соединения с серверами NetWare, а также предоставляют информацию о них.

Службы каталогов. Позволяют просматривать каталоги на томах NetWare, а также управлять правами доступа к ним.

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

Окружение файловых серверов. Обеспечивает информацией о серверах NetWare и позволяет изменять их свойства.

Службы сообщений. Отправляют и принимают широковещательные сообщения.

Службы печати. Помещают задания на печать в очередь.

Службы очередей. Регулируют очереди печати и распределяют задания, содержащиеся в них.

Службы синхронизации. Координируют операции записи, блокировки файлов и семафоры.

Службы отслеживания транзакций. Управляют свойствами NetWareTransactionTrackingSystem (TTS, системы отслеживания транзакций).

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

Сообщение ответа NCP

Тип ответа (Reply Туре), 2 байта. Определяет природу ответа, используя одно из приведенных далее значений.

•3333 — ответ файлового сервера. Указывает на то, что сообщение является ответом на запрос к файловому серверу с кодом 2222 в поле типа запроса.

•7777 — пакетный режим. Информирует об успешной инициализации процесса передачи в пакетном режиме.

•9999 — положительное подтверждение. Говорит о том, что запрос был обработан и ответ был отправлен только затем, чтобы предотвратить тайм-аут клиента.

Порядковый номер (SequenceNumber), 1 байт. Содержит номер, указывающий на порядок, в котором были отправлены сообщения NCP, благодаря чему получатель может обработать их в правильной последовательности.

Младшие разряды номера соединения (ConnectionNumberLow), 1 байт. Определяет номер соединения клиента с сервером.

Номер задачи (TaskNumber), 1 байт. Хранит уникальное значение, привлекаемое для сопоставления сообщений запроса с ответами.

Старшие разряды номера соединения (ConnectionNumberHigh), 1 байт. Не используется. Всегда обнулено.

Код завершения (CompletionCode), 1 байт. Сигнализирует об успехе или неудаче ассоциированного вызова. Значение 0 соответствует удачному завершению запроса, ненулевое значение отражает неудачу.

Статус соединения (ConnectionStatus), 1 байт. Уведомляет о том, активно или нет соединение между клиентом и сервером. Значение 0 свидетельствует о том, что соединение активно, значение 1 — о том, что неактивно.

Данные (Data), переменной длины. Содержит данные, отправленные сервером в ответ на ассоциированный запрос.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: