Документ утратил силу или отменен. Подробнее см. Справку

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

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

- NPH_SGC_CONN_REQUEST;

- NPH_SGC_CONN_AUTH_STRING.

В случае отказа в установке соединении (на любом этапе) сервер посылает клиенту незашифрованный пакет NPH_RESULT с кодом ошибки.

Пакет запроса установки соединения NPH_SGC_CONN_REQUEST имеет следующий формат поля <data>:

┌─────────────────────┬──────┬───────────┬─────────────────────┬───────────────┐

│ Поле │Длина │ Тип │ Описание │Может ли данное│

│ │ │ │ │поле (значение)│

│ │ │ │ │ изменяться │

├─────────────────────┼──────┼───────────┼─────────────────────┼───────────────┤

│<proto_version_high> │ 2 │ unsigned │ Версия протокола │ Нет. В поле │

│ │ │ int16 │NDTP (старший номер) │ всегда должно │

│ │ │ │ │ быть │

│ │ │ │ │ установлено │

│ │ │ │ │ значение 1 │

├─────────────────────┼──────┼───────────┼─────────────────────┼───────────────┤

│ <proto_version_low> │ 2 │ unsigned │ Версия протокола │ Да │

│ │ │ int16 │NDTP (младший номер) │ │

├─────────────────────┼──────┼───────────┼─────────────────────┼───────────────┤

│ <connection_flags> │ 2 │ unsigned │ Опции соединения, │ Нет. Все │

│ │ │ int16 │определяет настройки │значения битов │

│ │ │ │ соединения, которые │ кроме второго │

│ │ │ │будут использоваться │ должны быть │

│ │ │ │ после установки │ установлены в │

│ │ │ │ соединения. (бит2: │ 0. Значение │

│ │ │ │ рассчитывать CRC │ второго бита │

│ │ │ │ пакетов (0 - нет, │ должно быть │

│ │ │ │ 1 - да) │установлено в 1│

├─────────────────────┼──────┼───────────┼─────────────────────┼───────────────┤

│ <peer_address> │ 4 │ unsigned │ Адрес участника │ Да │

│ │ │ int32 │ соединения, │ │

│ │ │ │ пославшего пакет │ │

├─────────────────────┼──────┼───────────┼─────────────────────┼───────────────┤

│ <max_packet_size> │ 4 │ unsigned │ Максимальный размер │ Нет. Все │

│ │ │ int32 │ пакета, который │значения битов │

│ │ │ │ сможет обработать │ должны быть │

│ │ │ │ данный участник │установлены в 0│

│ │ │ │ соединения │ │

└─────────────────────┴──────┴───────────┴─────────────────────┴───────────────┘

Так как сервер не устанавливает соединения, то пакет запроса соединения посылают только клиенты (СТС).

Поля <proto_version_high> и <proto_version_low> определяют версию протокола, по которой собирается работать клиент. <proto_version_high> всегда должно быть установлено в 1.

Пакет с массивом данных для аутентификации клиента NPH_SGC_CONN_AUTH_STRING имеет следующий формат поля <data>:

┌────────┬───────┬────────┬─────────────────────────────┬─────────────────┐

│ Поле │ Длина │ Тип │ Описание │Может ли данное │

│ │ │ │ │ поле (значение) │

│ │ │ │ │ изменяться │

├────────┼───────┼────────┼─────────────────────────────┼─────────────────┤

│ <data> │ var │ char[] │Массив данных. Длина массива │ Да │

│ │ │ │ определяется по полю │ │

│ │ │ │ <data_size> пакета NPL │ │

└────────┴───────┴────────┴─────────────────────────────┴─────────────────┘