(Действующий) Приказ Федеральной службы по регулированию алкогольного рынка от 8...

Докипедия просит пользователей использовать в своей электронной переписке скопированные части текстов нормативных документов. Автоматически генерируемые обратные ссылки на источник информации, доставят удовольствие вашим адресатам.

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

4. Типы пакетов NPL

Пакеты NPL имеют следующие типы:
- NPL_TYPE_ERROR - ошибка протокола NPL;
- NPL_TYPE_NPH - пакет данных NPH.

4.1. Тип пакета: NPL_TYPE_ERROR

Коды об ошибке протокола NPL передаются пакетами NPL_TYPE_ERROR, которые при передаче не шифруются. Поле передачи данных содержит код ошибки и имеет следующий формат:
Поле
Д лина
Тип
Описание
Может ли данное поле (значение) изменяться
4
unsigned int32
Содержит коды ошибки:
NPL_ERR_OK
NPL_ERR_UNDEFINED
NPL_ERR_INVALID_ PEER _ADDRESS
NPL_ERR_PEER_NOT_AVAILABLE
NPL_ERR_PEER_PERM_DENIED
Да
Существуют следующие ошибки протокола NPL:
Общие ошибки:
- NPL_ERR_OK - запрос выполнен успешно;
- NPL_ERR_UNDEFINED - код для ошибок, не имеющих описания;
Ошибки маршрутизации пакетов:
- NPL_ERR_INVALID_ PEER _ADDRESS - недопустимый адрес участника соединения;
- NPL_ERR_PEER_NOT_AVAILABLE - участник соединения недоступен;
- NPL_ERR_PEER_PERM_DENIED - доступ запрещен.

4.2. Тип пакета: NPL_TYPE_NPH

Тип пакета NPL_TYPE_NPH - пакет NPH, передается на уровне представления (протокол NPH).

4.3. Уровень представления (протокол NPH)

Каждый участник соединения (СТС) обладает набором функций (услуг), которые он может предоставить другим участникам соединения. Все функции логически разделены на группы услуг мониторинга. Набор услуг мониторинга, которые поддерживает определенный участник соединения, определяет интерфейс его взаимодействия с другими участниками соединения.
Для каждого типа услуг мониторинга определены свои типы пакетов и логика работы. Отдельные типы пакетов могут использоваться в нескольких типах услуг мониторинга (например: пакет NPH_RESULT - пакет подтверждения, отсылающийся на не требующий получения данных запрос). Участник соединения может не поддерживать отдельные пакеты в определенном типе услуг мониторинга.
Обмен данными на уровне представления ведется с помощью пакетов NPH.
Пакет NPH имеет следующий формат:
Поле
Длина
Тип
Описание
Может ли данное поле (значение) изменяться
заголовок пакета NPH
2
unsigned int16
Тип услуги
Нет. В поле всегда должно быть установлено значение 0100 - NPH_SRV_NAVDATA
2
unsigned int16
Тип пакета
Да
2
unsigned int16
Флаги пакета (определяет необходимость подтверждения).
Bit 0
NPH_FLAG_REQUEST - определяет необходимость подтверждения пакета. Принимает значения:
0 - пакет не требует подтверждения;
1 - пакет требует подтверждения.
Возможен случай, когда бит установлен, но подтверждение не высылается. Подтверждение высылается только в том случае, когда направление подтверждения предусматривается протоколом обмена.
Нет. В поле всегда должно быть установлено значение 1 - пакет требует подтверждения
4
unsigned int32
Идентификатор пакета, используется для подтверждения запроса. ID пакетов рекомендуется делать уникальным хотя бы в рамках одной сессии передачи данных. Например, выбрать некоторое значение ID при установке соединения и для каждого последующего пакета увеличивать его ID на единицу. При достижении 0xFFFFFFFF следующее значение ID будет равно 0x00000000 и т.д.
Да
данные пакета NPH
var
var
Поле содержит данные, является необязательным. Наличие и структура поля должны однозначно определяться типом услуг () и типом пакета ().
Да
Тип пакета NPH_RESULT относится ко всем типам услуг.

4.4. Общий пакет подтверждения: NPH_RESULT

Пакет NPH_RESULT является общим для всех типов услуг, если запрос не предусматривает получения каких либо данных. В ответ на пакет запроса посылается пакет подтверждения NPH_RESULT.
Пакет подтверждения NPH_RESULT имеет следующий формат поля данных:
поле
длина
тип
описание
может ли данное поле (значение) изменяться
4
unsigned int32
0 в случае успешного выполнения запроса или код ошибки
Да
Поле пакета NPH_RESULT может принимать следующие значения:
- 0 - успешное выполнение запроса;
Общие ошибки:
- NPH_RESULT_OK - запрос выполнен успешно;
- NPH_RESULT_UNDEFINED - код для ошибок, не имеющих описания;
- NPH_RESULT_BUSY - участник соединения не может обработать пакет в данный момент;
- NPH_RESULT_SERVICE_NOT_SUPPORTED - тип услуг не поддерживается;
- NPH_RESULT_SERVICE_NOT_ALLOWED - тип услуг запрещен для данного участника соединения;
- NPH_RESULT_SERVICE_NOT_AVIALABLE - тип услуг недоступен в данный момент;
- NPH_RESULT_PACKET_NOT_SUPPORTED - неизвестный тип пакета, либо тип пакет не поддерживается;
- NPH_RESULT_PACKET_INVALID_FORMAT - неверный формат пакета;
- NPH_RESULT_PACKET_INVALID_PARAMETER - неверный параметр пакета;
Ошибки установки соединения:
- NPH_RESULT_PROTO_VER_NOT_SUPPORTED - версия протокола не поддерживается;
- NPH_RESULT_CLIENT_NOT_REGISTERED - клиент не зарегистрирован на сервере (в БД);
- NPH_RESULT_CLIENT_TYPE_NOT_SUPPORTED - тип клиента не поддерживается;
- NPH_RESULT_CLIENT_AUTH_FAILED - ошибка аутентификации клиента.

5. Установка соединения с сервером

Соединение с сервером может быть защищенным или незащищенным. Параметры соединения задаются инициатором соединения в поле пакета NPH_SGC_CONN_REQUEST. В первом случае все пакеты передаются в зашифрованном виде, за исключением пакетов установки соединения:
- NPH_SGC_CONN_REQUEST;