Статус документа
Статус документа

ГОСТ Р 54619-2011 Глобальная навигационная спутниковая система. Система экстренного реагирования при авариях. Протоколы обмена данными автомобильной системы/устройства вызова экстренных оперативных служб с инфраструктурой системы экстренного реагирования при авариях (с Изменением N 1)

     5.6 Описание структур данных, используемых в протоколе транспортного уровня

5.6.1 Общая структура пакета протокола транспортного уровня определяется составом пакета и его форматом.

5.6.1.1 Пакет протокола транспортного уровня состоит из заголовка, поля "данные уровня поддержки услуг", а также поля контрольной суммы "данных уровня поддержки услуг".

Состав пакета протокола транспортного уровня представлен на схеме 1.     

     
Схема 1 - Состав пакета протокола транспортного уровня



5.6.1.2 Общая длина пакета протокола транспортного уровня не превышает значения 65535 байт, что соответствует максимальному значению параметра Window Size (максимальный размер целого пакета, принимаемый на стороне приемника) заголовка протокола TCP. Такое значение максимального размера пакета позволяет более эффективно использовать каналы передачи данных, базируясь только на стандартном методе управления потоком данных, заложенном в протоколе TCP/IP [1].

Формат пакета транспортного уровня представлен в таблице 3.


Таблица 3 - Состав пакета протокола транспортного уровня

Бит 7

Бит 6

Бит 5

Бит 4

Бит 3

Бит 2

Бит 1

Бит 0

Тип

Тип данных

Размер, байт

PRV (Protocol Version)

M

BYTE

1

SKID (Security Key ID)

M

BYTE

1

PRF (Prefix)

RTE

ENA

CMP

PR

M

BYTE

1

HL (Header Length)

M

BYTE

1

HE (Header Encoding)

M

BYTE

1

FDL (Frame Data Length)

M

USHORT

2

PID (Packet Identifier)

M

USHORT

2

PT (Packet Type)

M

BYTE

1

PRA (Peer Address)

O

USHORT

2

RCA (Recipient Address)

O

USHORT

2

TTL (Time To Live)

O

BYTE

1

HCS (Header Check Sum)

M

BYTE

1

SFRD (Services Frame Data)

O

BINARY

0...65517

SFRCS (Services Frame Data Check Sum)

O

USHORT

0, 2



5.6.1.3 Заголовок протокола транспортного уровня состоит из следующих параметров (полей): PRV, PRF, PR, CMP, ENA, RTE, HL, HЕ, FDL, PID, PT, PRA, RCA, TTL, HCS. Протокол уровня поддержки услуг представлен полем SFRD, контрольная сумма поля уровня поддержки услуг содержится в поле SFRCS.

Описание вышеуказанных параметров (полей) приведено в таблице 4.


Таблица 4 - Описание параметров (полей), входящих в состав пакета протокола транспортного уровня

Обозначение параметра (поля)

Назначение параметра (поля)

PRV

Параметр определяет версию используемой структуры заголовка и должен содержать значение 0x01. Значение данного параметра инкрементируется каждый раз при внесении изменений в структуру заголовка

SKID

Параметр определяет идентификатор ключа, используемый при шифровании

PRF

Параметр определяет префикс заголовка транспортного уровня и для данной версии должен содержать значение 00

RTE (Route)

Битовое поле определяет необходимость дальнейшей маршрутизации данного пакета на удаленную телематическую платформу, а также наличие опциональных параметров PRA, RCA, TTL, необходимых для маршрутизации данного пакета. Если поле имеет значение 1, то необходима маршрутизация и поля PRA, RCA, TTL присутствуют в пакете. Данное поле устанавливает Диспетчер той телематической платформы, на которой сгенерирован пакет, или АС, сгенерировавшая пакет для отправки на телематическую платформу (в случае установки в ней параметра HOME_DISPATCHER_ID, определяющего ее адрес, на который данная АС зарегистрирована). В случае отсутствия в АС параметра HOME_DISPATCHER_ID, маршрутизация пакета производится по внутренним правилам Диспетчера, обрабатывающего пакет

ENA (Encryption Algorithm)

Битовое поле определяет код алгоритма, используемый для шифрования данных из поля SFRD. Если поле имеет значение 00, то данные в поле SFRD не шифруются. Состав и коды алгоритмов не определены в данной версии протокола

CMP (Compressed)

Битовое поле определяет, используется ли сжатие данных из поля SFRD. Если поле имеет значение 1, то данные в поле SFRD считаются сжатыми. Алгоритм сжатия не определен в данной версии протокола

PR (Priority)

Битовое поле определяет приоритет маршрутизации данного пакета и может принимать следующие значения:

00 - наивысший;

01 - высокий;

10 - средний;

11 - низкий.

Установка большего приоритета позволяет передавать пакеты, содержащие срочные данные, такие, например, как пакет с минимальным набором данных базовой услуги "ЭРА-ГЛОНАСС" или данные о срабатывании сигнализации на транспортном средстве. При получении пакета диспетчер, анализируя данное поле, проводит маршрутизацию пакета с более высоким приоритетом быстрее, чем пакета с низким приоритетом, тем самым достигается более оперативная обработка при наступлении критически важных событий

HL

Длина заголовка протокола транспортного уровня в байтах с учетом байта контрольной суммы (поля HCS)

HE

Определяет применяемый метод кодирования следующей за данным параметром части заголовка протокола транспортного уровня. Зарезервировано

FDL

Определяет размер в байтах поля данных SFRD, содержащего информацию протокола уровня поддержки услуг

PID

Содержит номер пакета протокола транспортного уровня, увеличивающийся на 1 при отправке каждого нового пакета на стороне отправителя. Значения в данном поле изменяются по правилам циклического счетчика в диапазоне от 0 до 65535, т.е. при достижении значения 65535 следующее значение должно быть 0

PT

Тип пакета протокола транспортного уровня.

Поле РТ может принимать следующие значения:

0 - EGTS_PT_RESPONSE (подтверждение на протокол транспортного уровня);

1 - EGTS_РТ_APPDATA (пакет, содержащий данные протокола уровня поддержки услуг);

2 - EGTS_РТ_SIGNED_APPDATA (пакет, содержащий данные протокола уровня поддержки услуг с цифровой подписью)

PRA

Адрес телематической платформы, на которой данный пакет сгенерирован. Данный адрес является уникальным в рамках связной сети и используется для создания пакета-подтверждения на принимающей стороне

RCA

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

TTL

Время жизни пакета при его маршрутизации между телематическими платформами. Использование данного параметра предотвращает зацикливание пакета при ретрансляции в системах со сложной топологией адресных пунктов. Первоначально TTL устанавливается телематической платформой, сгенерировавшей данный пакет. Значение TTL устанавливается равным максимально допустимому числу телематической платформы между отправляющей и принимающей платформами. Значение TTL уменьшается на единицу при трансляции пакета через каждую телематическую платформу, при этом пересчитывается контрольная сумма заголовка протокола транспортного уровня. При достижении данным параметром значения 0 и при обнаружении необходимости дальнейшей маршрутизации пакета происходят уничтожение пакета и выдача подтверждения с соответствующим кодом (PC_TTLEXPIRED, см. приложение В)

HCS

Контрольная сумма заголовка протокола транспортного уровня (начиная с поля "PRV" до поля "HCS", не включая последнего). Для подсчета значения поля HCS ко всем байтам указанной последовательности применяется алгоритм CRC-8. Пример программного кода расчета CRC-8 приведен в приложении Д

SFRD

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

SFRCS

Контрольная сумма.

Для подсчета контрольной суммы по данным из поля SFRD используется алгоритм CRC-16-CCITT. Данное поле присутствует только в том случае, если есть поле SFRD. Пример программного кода расчета CRC-16 приведен в приложении Г



(Измененная редакция, Изм. N 1).

5.6.1.4 Блок-схема алгоритма сборки пакета протокола транспортного уровня при приеме представлена на рисунке 1.     


Рисунок 1 - Блок схема алгоритма сборки пакета протокола транспортного уровня при приеме


(Измененная редакция, Изм. N 1).     

5.6.2 Структуры данных в зависимости от типа пакета