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

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

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

- NPH_SGC_CONN_REQUEST;

- NPH_SGC_CONN_AUTH_STRING.

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

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

Поле
Длина
Тип
Описание
Может ли данное поле (значение) изменяться
<proto_version_high>
2
unsigned int 16
Версия протокола NDTP (старший номер)
Нет. В поле всегда должно быть установлено значение 1
<proto_version_low>
2
unsigned int 16
Версия протокола NDTP (младший номер)
Да
<connection_flags>
2
unsigned int 16
Опции соединения, определяет настройки соединения, которые будут использоваться после установки соединения.
(бит2: рассчитывать CRC пакетов (0 - нет, 1 - да)
Нет. Все значения битов кроме второго должны быть установлены в 0. Значение второго бита должно быть установлено в 1
<peer_address>
4
unsigned int32
Адрес участника соединения, пославшего пакет
Да
<max_packet_size>
4
unsigned int32
Максимальный размер пакета, который сможет обработать данный участник соединения
Нет. Все значения битов должны быть установлены в 0

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

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

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

Поле
Длина
Тип
Описание
Может ли данное поле (значение) изменяться
<data>
var
char[]
Массив данных. Длина массива определяется по полю пакета NPL
Да