ASTERIX

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

ASTERIX (англ. сокр. All Purpose Structured Eurocontrol Surveillance Information Exchange, многоцелевой структурированный обмен информацией наблюдения Евроконтроля) — протокол прикладного/представительского уровня, ответственный за определение и сбор данных, разработанный для обеспечения трансляции и обмена данными наблюдения.

Правила изменения категорий[править | править код]

Спецификация ASTERIX разбита на части. В первой части описываются основные принципы, а остальные части относятся к различным областям применения. Каждой области применения должна соответствовать одна и только одна часть спецификации. Часть может иметь разные версии, которые могут сосуществовать одновременно и поддерживаться независимо друг от друга.

Правила позволяют определить 32 области применения. Каждой области должна быть присвоена начальная категория от 0 до 31 включительно.

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

Где:

  • — категория для части версии N.
  • — категория для версии, следующей за N.
  • — операция взятия остатка от деления A на B.

Правила применяются к категориям от 0 до 127 включительно.

Обозначения[править | править код]

В этой статье для обозначения размера данных используются целые числа либо целые числа со знаком +. Например: 1+. Это означает, что размер данных равен или больше целого числа перед знаком +. Размер данных всегда равен целому числу.

Структура данных[править | править код]

Редакция 2.1 и более ранние[править | править код]

В спецификации ASTERIX редакции 2.1 (апрель 2013) и более ранних редакциях структура данных следующая.

Блок данных[править | править код]

Байт 0 1...2 3...
Обозначение CAT LEN RECORD 1 RECORD 2 ... RECORD K
Наименование Категория данных Размер блока данных Запись 1 Запись 2 ... Запись K
Размер, байт 1 2 1+

Запись[править | править код]

Байт 0...m (m+1)...
Обозначение FSPEC DATA FIELD 1 DATA FIELD 2 ... DATA FIELD N
Наименование Спецификация полей Поле данных 1 Поле данных 2 ... Поле данных N
Размер, байт 1+ 0+ 0+ ... 0+

Где: N — количество полей.

Спецификация полей (FSPEC)[править | править код]

Байт 0 1 2...(L-1) L
Бит 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...(M-8) M-7 M-6 M-5 M-4 M-3 M-2 M-1 M
Обозначение F1 F2 F3 F4 F5 F6 F7 FX F8 F9 F10 F11 F12 F13 F14 FX F15...F[N-7] F[N-6] F[N-5] F[N-4] F[N-3] F[N-2] F[N-1] F[N] FX=0

Где:

  • L+1 — размер спецификации полей в байтах;
  • M+1 — размер спецификации полей в битах;
  • N — количество полей;
  • F[Y] — индикатор наличия поля Y;
  • FX — индикатор расширения полей.

Значение в бите F[Y] определяет присутствует ли поле Y в записи. Если F[Y] равно 0, то поле отсутствует, если F[Y] равно 1, то поле присутствует.

Если FX равен 1, то следующий байт — это продолжение спецификации полей. Если FX равен 0, то это означает, что достигнут конец спецификации полей.

Редакция 2.2 и более поздние[править | править код]

В спецификации ASTERIX редакции 2.2 (октябрь 2014) структура данных была изменена. Стало невозможным объединяться записи в блоке данных. Данные представляются одной записью. Новая структура данных используется только для категорий 015 и 238. Для остальных категорий используется предыдущая структура данных.

Запись[править | править код]

Байт 0 1...2 3...m (m+1)...
Обозначение CAT LEN FSPEC Data field 1 Data field 2 ... Data field N
Наименование Категория данных Размер блока данных Спецификация полей Поле данных 1 Поле данных 2 ... Поле данных N
Размер, байт 1 2 1+ 0+ 0+ ... 0+

Где: N — количество полей.

Спецификация полей (FSPEC) не претерпела изменений по сравнению с редакцией 2.1.

Поля данных[править | править код]

Классификация полей данных следующая.

  • Стандартное поле данных.
    • Поле фиксированной длины.
    • Поле расширяемой длины.
    • Поле явно заданной длины.
    • Поле с повторением.
    • Составное поле.
  • Поле данных специального назначения.
  • Зарезервированное поле данных.

Стандартное поле данных[править | править код]

Поле фиксированной длины[править | править код]

Должно содержать фиксированное количество байт.

Поле расширяемой длины[править | править код]

Имеет переменную длину. Начинается с основной части, заранее определенной длины, за которой следует некоторое количество дополнительных частей заранее определенной длины. Все дополнительные части равной длины. Наличие следующего дополнительного поля определяется младшим значащим битом в последнем байте предыдущей части (основной или дополнительной). Такой бит называется индикатором расширения поля и обозначается FX.

Структура поля расширяемой длины
Часть Основная Дополнительные
Размер, байт n i ... i
Наименование/

обозначение

Данные FX=1 Данные FX=1 ... Данные FX=0
Поле явно заданной длины[править | править код]

Начинается с байта, который содержит длину поля в байтах, включая и сам этот байт.

Структура поля явно заданной длины
Байт 0 1...n
Наименование Размер поля Данные
Размер, байт 1 n
Поле с повторением[править | править код]

Имеет переменную длину. Начинается с байта, значение которого равно количеству подполей. Подполя одинакового размера, следуют друг за другом.

Структура поля с повторением
Байт 0 1...i (i+1)...
Обозначение REP=N Data Subfield 1 ... Data Subfield N
Наименование Количество повторений Подполе 1 ... Подполе N
Размер, байт 1 n ... n
Составное поле[править | править код]

Имеет переменную длину. Состоит из основного подполя, за которым следуют подполя данных. Основное поле определяет наличие подполей и может расширяться с помощью механизма расширения поля (FX). Подполя могут быть фиксированной длины, расширяемой длины, явно заданной длины и с повторениями, но не могут быть составными.

Структура составного поля
Байт 0...m (m+1)...
Обозначение Primary Subfield Data Subfield 1 Data Subfield 2 ... Data Subfield N
Наименование Основное подполе Подполе данных 1 Подполе данных 2 ... Подполе данных N
Размер, байт 1+ 0+ 0+ ... 0+
Структура основного подполя
Байт 0 1 2...(L-1) L
Бит 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...(M-8) M-7 M-6 M-5 M-4 M-3 M-2 M-1 M
Обозначение SF1 SF2 SF3 SF4 SF5 SF6 SF7 FX SF8 SF9 SF10 SF11 SF12 SF13 SF14 FX SF15...SF[N-7] SF[N-6] SF[N-5] SF[N-4] SF[N-3] SF[N-2] SF[N-1] SF[N] FX=0

Где:

  • L+1 — размер спецификации подполей в байтах;
  • M+1 — размер спецификации подполей в битах;
  • N — количество подполей;
  • SF[Y] — индикатор наличия подполя Y;
  • FX — индикатор расширения поля.

Значение в бите SF[Y] определяет присутствует ли подполе Y в поле. Если SF[Y] равно 0, то подполе отсутствует, если SF[Y] равно 1, то подполе присутствует.

Если FX равен 1, то следующий байт — это продолжение основного подполя. Если FX равен 0, то это означает, что достигнут конец основного подполя.

Поле данных специального назначения[править | править код]

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

Когда поле используется, для него выделяется бит в FSPEC. Обозначение такого бита: SP.

Первый байт поля содержит размер поля в байтах, включая этот байт. Следующие байты содержат произвольные данные.

Структура поля данных специального назначения
Байт 0 1...n
Наименование Размер поля Данные
Размер, байт 1 n

Зарезервированное поле данных[править | править код]

Используется только в спецификации ASTERIX редакции 2.1 и более ранних.

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

Первый байт поля содержит размер поля в байтах, включая этот байт. Следующие байты содержат произвольные данные.

Структура зарезервированного поля данных
Байт 0 1...n
Наименование Размер поля Данные
Размер, байт 1 n

Начиная со спецификации ASTERIX редакции 2.2 поле не используется.

Ссылки[править | править код]