Интегрированные сети ISDN

         

Типы и их метки



Таблица 4.4.13.2.1. Типы и их метки



Тип Комментарий Цифровая метка (шестнадцатеричное)
INTEGER Любое целое число 02
BIT STRING Произвольная строка бит 03
OCTET STRING Произвольная последовательность октетов 04
NULL 0 05
OBJECT IDENTIFIER Последовательность целых компонент, идентифицирующих объект 06
SEQUENCE and SEQUENCE OF   10
SET and SET OF   11
PrintableString Последовательность печатных символов 13
IA5String Произвольная строка символов IA5 (ASCII) 16
UTCTime Универсальное время (по Гринвичу; GMT) 17

ASN.1 типы и значения выражаются в нотации, близкой к используемой в языках программирования. Множественные пробелы и разрывы строк рассматриваются как один пробел. Комментарии выделяются парами дефисов или парой дефисов и переводом строки. Идентификаторы (имена значений и полей) и имена типов состоят из букв, цифр и пробелов. Идентификаторы начинаются со строчной буквы, а имена типов – с прописной.

В SMI (Structure of Management Information) не используется полный набор типов объектов, предусмотренный в ASN.1, разрешены только следующие типы примитивов: INTEGER, OCTET STRING, OBJECT IDENTIFIER и NULL.

Стандарт ASN.1 определяет форму представления информации и имен. Для строчных типов может быть введено ограничение на максимальный размер. В ASN.1 определено четыре структурированных типов:

SEQUENCE упорядоченный набор из одного или более типов.
SEQUENCE OF упорядоченный набор из нуля или более представителей данного типа.
SET неупорядоченный набор из одного или более типов.
SET OF неупорядоченный набор из нуля или более представителей данного типа.

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

Существуют типы помеченные явно и неявно. Неявно помеченные типы получаются из других типов путем изменения метки. Для неявной пометки используется ключевое слово IMPLICIT. Явно помеченные типы получаются из других типов путем добавления внешней метки.
Помеченный явно тип – это структурированный тип, состоящий из одного компонента основного типа. Для явной пометки используется ключевое слово EXPLICIT. Пометка (тэгирование) весьма удобна для различия типов в пределах одного приложения.
Тип CHOICE обозначает объединение одного или более альтернатив. Тип ANY служит для обозначения произвольной величины для произвольного типа.
Правила BER определяют один или более способов представить любую величину в виде строки октетов. Существует три метода кодирования величин (в рамках BER): примитивный с известной длиной; конструктивный при известной длине и конструктивный при неизвестной длине. Выбор метода зависит от типа величины и от того, известна ли длина преобразуемой величины. Для простых не строчных типов используется примитивный метод кодирования. В каждом методе BER-кодирование имеет три или четыре части:


Identifier octets Определяет класс и числовую метку значения, а также указывает, является ли метод примитивным или конструктивным.
Length octets Для методов кодирования с известной длиной определяет число октетов содержимого.
Contents octets Для примитивных методов с заданной длиной дает конкретное выражение значения.
End-of-contents octets Для конструктивных методов с неопределенной длиной указывает на конец содержимого.

Примитивный метод кодирования с заданной длиной
Этот метод применим для простых типов и типов полученных из простых типов путем неявной пометки. Здесь необходимо, чтобы длина величины была известна заранее. Октеты идентификатора имеют два формата: для числовых меток от 0 до 31, и для числовых меток более 31. В первом случае биты 7 и 8 определяют класс (см. таблицу 4.4.13.2.2), бит 6 равен нулю, указывая на то, что метод кодирования primitive. Остальные биты используются для записи кода числовой метки. Во втором случае используется два или более октетов. В первом октете кодировка аналогична первому варианту за исключением того, что биты 1-5 содержат единицы.

Содержание раздела