5.6.1 Общая структура пакета протокола транспортного уровня определяется составом пакета и его форматом.
5.6.1.1 Пакет протокола транспортного уровня состоит из заголовка, поля "данные уровня поддержки услуг", а также поля контрольной суммы "данных уровня поддержки услуг".
Состав пакета протокола транспортного уровня представлен на рисунке 1.
Рисунок 1 - Состав пакета протокола транспортного уровня
5.6.1.2 Общая длина пакета протокола транспортного уровня не превышает значения 65535 байт, что соответствует максимальному значению параметра Window Size (максимальный размер целого пакета, принимаемый на стороне приемника) заголовка протокола TCP. Такое значение максимального размера пакета позволяет более эффективно использовать каналы передачи данных, базируясь только на стандартном методе управления потоком данных, заложенном в протоколе TCP/IP [3].
Формат пакета транспортного уровня представлен в таблице 3.
Таблица 3 - Состав пакета протокола транспортного уровня
5.6.1.3 Заголовок протокола транспортного уровня состоит из следующих параметров (полей): PRV, PRF, PR, CMP, ENA, RTE, HL, HE, 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. Если поле имеет значение 0 0, то данные в поле SFRD не шифруются. Состав и коды алгоритмов не определены в данной версии протокола |
CMP (Compressed) | Битовое поле определяет, используется ли сжатие данных из поля SFRD. Если поле имеет значение 1, то данные в поле SFRD считаются сжатыми. Алгоритм сжатия не определен в данной версии протокола |
PR (Priority) | Битовое поле определяет приоритет маршрутизации данного пакета и может принимать следующие значения: |
HL | Длина заголовка протокола транспортного уровня в байтах с учетом байта контрольной суммы (поля HCS) |
HE | Определяет применяемый метод кодирования следующей за данным параметром части заголовка протокола транспортного уровня. Зарезервировано |
FDL | Определяет размер в байтах поля данных SFRD, содержащего информацию протокола уровня поддержки услуг |
PID | Содержит номер пакета протокола транспортного уровня, увеличивающийся на 1 на стороне отправителя при отправке каждого нового пакета. Значения в данном поле изменяются по правилам циклического счетчика в диапазоне от 0 до 65535, т.е. при достижении значения 65535, следующее значение должно быть 0 |
PT | Тип пакета протокола транспортного уровня. |
PRA | Адрес телематической платформы, на которой данный пакет сгенерирован. Данный адрес является уникальным в рамках связной сети и используется для создания пакета-подтверждения на принимающей стороне |
RCA | Адрес телематической платформы, для которой данный пакет предназначен. По данному адресу производится идентификация принадлежности пакета определенной телематической платформе и его маршрутизация при использовании промежуточных телематических платформ |
TTL | Время жизни пакета при его маршрутизации между телематическими платформами. Использование данного параметра предотвращает зацикливание пакета при ретрансляции в системах со сложной топологией адресных пунктов. Первоначально TTL устанавливается телематической платформой, сгенерировавшей данный пакет. Значение TTL устанавливается равным максимально допустимому числу телематической платформы между отправляющей и принимающей платформами. Значение TTL уменьшается на единицу при трансляции пакета через каждую телематическую платформу, при этом пересчитывается контрольная сумма заголовка протокола транспортного уровня. При достижении данным параметром значения 0 и при обнаружении необходимости дальнейшей маршрутизации пакета, происходит уничтожение пакета и выдача подтверждения с соответствующим кодом |
SFRCS | Контрольная сумма. |
SFRD | Структура данных, зависящая от типа пакета и содержащая информацию протокола уровня поддержки услуг |
HCS | Контрольная сумма заголовка протокола транспортного уровня (начиная с поля PRV до поля HCS, не включая последнего). Для подсчета значения поля HCS ко всем байтам указанной последовательности применяется алгоритм CRC-8. Пример программного кода расчета CRC-8 приведен в приложении Д |
5.6.1.4 Блок-схема алгоритма сборки пакета протокола транспортного уровня при приеме представлена на рисунке 2.
5.6.2 Структуры данных в зависимости от типа пакета
В зависимости от типа пакета протокола транспортного уровня структура поля SFRD имеет различный формат.
5.6.2.1 Структура данных пакета EGTS_PT_APPDATA
Пакет данного типа предназначен для передачи одной или нескольких структур, содержащих информацию протокола уровня поддержки услуг. Структура данных поля SFRD пакета EGTS_PT_APPDATA представлена в таблице 5.
Таблица 5 - Формат поля SFRD для пакета типа EGTS_PT_APPDATA
Бит 7 | Бит 6 | Бит 5 | Бит 4 | Бит 3 | Бит 2 | Бит 1 | Бит 0 | Тип | Тип данных | Размер, байт |
SDR 1 (Service Data Record) | О | BINARY | 9 ... 65517 | |||||||
SDR 2 | О | BINARY | 9 ... 65517 | |||||||
... | ... | ... | ... | |||||||
SDRn | О | BINARY | 9 ... 65517 | |||||||
Примечание - Структуры SDR 1, SDR 2, SDRn содержат информацию протокола уровня поддержки услуг. Таких структур в составе поля SFRD может быть одна или несколько, идущих одна за другой. Описание внутреннего состава структур представлено в разделе 6. |