Справочник по сетевым протоколам

       

состоит из последовательности знаков


Каждый элемент АСН. 1 состоит из последовательности знаков :

от A до Z
от a до z
от 0 до 9
: = , { } < . ( ) [ ] - ‘ “
Каждый из элементов должен располагаться в пределах одной строки и (кроме элемента “комментарий”) не должен содержать пробелов. Длина строки не ограничивается. Элементы в последовательностях могут располагаться на одной или нескольких строках и могут разделяться одним или несколькими пробелами или пустыми строками. Всякий элемент должен отделяться от следующего за ним элемента пробелом или помещением его на следующую строку, если начальный знак (знаки) являются разрешенными для включения в конец последовательности знаков предыдущего элемента.

Описание элементов АСН.1 представлено ниже:



Наименование элемента Описание элемента
СсылкаНаТип Имя, однозначно идентифицирующее тип в рамках некоторого контекста. Должно состоять из произвольного количества букв, цифр и дефисов. Начальный знак должен быть прописной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом. Не должен совпадать ни с одним из элементов- ключевых слов (см. ниже).
Идентификатор Значение (отличающееся от других подобных значений), которое связывается с информационным объектом. Должен состоять из произвольного количества букв, цифр и дефисов. Начальный знак должен быть строчной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом.
СсылкаНаЗначение Должен состоять из произвольного количества букв, цифр и дефисов. Начальный знак должен быть строчной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом. Отличие элемента “СсылкаНаЗначение” от элемента “Идентификатор” достигается различием контекстов, в которых появляются эти элементы.
СсылкаНаМодуль Должно состоять из произвольного количества букв, цифр и дефисов. Начальный знак должен быть прописной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом. Не должен совпадать с одной из зарезервированных знаковых последовательностей, перечисленных в табл. . Отличие элемента “СсылкаНаМодуль” от элемента “СсылкаНаТип” достигается различием контекстов, в которых появляются эти элементы.
Комментарий Начинается с пары следующих друг за другом дефисов и заканчивается другой парой дефисов или концом текущей строки.
Число Состоит из одной или более цифр. Первая цифра может быть нулем лишь в том случае, если элемент “число” состоит из одной цифры.
Двоичная строка (b- строка ) Состоит из произвольного количества нулей и единиц, перед которыми следует знак ‘ и за которыми следует пара знаков ‘B , например, ‘01110010’B .
Шестнадцатеричная строка

(h- строка )
Состоит из произвольного количества

знаков ABCDEF0123456789 (каждый знак - четыре бита в шестнадцатеричном представлении), перед которыми следует знак ‘ и за которыми следует пара знаков ‘Н , например, ‘10AF36’H .
Строка знаков (с- строка ) Состоит из произвольного количества

знаков из набора знаков, который определяется типом рассматриваемой строки знаков, перед которыми и вслед за которыми следует знак “.Если набор знаков содержит знак “, то он представляется в элементе “с- строка” парой знаков “.
Присвоение Состоит из последовательности знаков ::= .
Элементы, состоящие из одного знака Элементы состоят из одного символа, образующего их имена:

{ } < , . ( ) [ ] - ;
Элементы – ключевые слова Элементы состоят из последовательностей знаков, образующих их имена:
BOOLEAN

INTEGER

BIT

STRING

OCTET

NULL

SEQUENCE

OF

SET

IMPLICIT

CHOICE

ANY

EXTERNAL

OBJECT

IDENTIFIER
OPTIONAL

DEFAULT

COMPONENTS

UNIVERSAL

APPLICATION

PRIVATE

TRUE

FALSE

BEGIN

END

DEFINITION

EXPLICIT

ENUMERATED

EXPORTS

IMPORTS
REAL

INCLUDES

MIN

MAX

SIZE

FROM

WITH

COMPONENT

PRESENT

ABSENT

DEFINED

BY

PLUS-INFINITY

MINUS-INFINITI

TAGS
<



/p>
Новая (более сложная) совокупность последовательностей в АСН. 1 называется продукцией. Каждая продукция состоит из имени новой совокупности последовательностей, знаков ::= и одной или нескольких совокупностей-вариантов последовательностей , разделенных знаком | . Каждая из совокупностей-вариантов задается списком имен. Каждое из этих имен является либо именем элемента, либо именем совокупности последовательностей, определенных с помощью продукции. Совокупность-вариант - это последовательность, получаемая выбором произвольной последовательности (или элемента) из совокупности, определяемой первым именем, за которой помещается произвольная последовательность (или элемент) из совокупности, определяемой вторым именем, за которой, в свою очередь, помещается произвольная последовательность (или элемент) из совокупности, определяемой третьим именем, и так далее, вплоть до последнего имени, заданного для данного варианта.
Одно или несколько выражений для определения типа и значений, оформленных как единое целое, называется модулем. Модуль задается следующими продукциями:
ОпределениеМодуля ::=ИдентификаторМодуля DEFINITION
ТегиПоУмолчанию “::=” BEGIN ТелоМодуля END
ТегиПоУмолчанию ::= EXPLICIT TAGS IMPLICIT TAGS Пусто
ИдентификаторМодуля ::=СсылкаНаМодуль ПрисвоенныйИдентификатор
ПрисвоенныйИдентификатор::=ЗначениеИдентификатораОбьекта |
Пусто
ТелоМодуля::=ВыходныеСсылки ВходныеСсылки СписокПрисвоений | Пусто
ВыходныеСсылки::=EXPORTS ВыходныеСимволы | Пусто
ВыходныеСимволы::= СписокСимволов |Пусто
ВходныеСсылки::=IMPORTS ВходныеСимволы | Пусто
ВходныеСимволы::=СписокСимволовИзМодуля | Пусто
СписокСимволовИзМодуля::= СимволыИзМодуля
СписокСимволовИзМодуля | СимволыИзМодуля
СимволыИзМодуля::= СписокСимволов FROM ИдентификаторМодуля
СписокСимволов::= Символ, СписокСимволов | Символ
Символ::= СсылкаНаТип | СсылкаНаЗначение
СписокПрисвоений::= СписокПрисвоений Присвоение | Присвоение
Присвоение::= ПрисвоениеТипа |
ПрисвоениеЗначения
Для задания ссылок на определения типов и значений используются последовательности, определяемые продукциями :


ОпределенныйТип::= ВнешняяСсылкаНаТип | СсылкаНаТип
ОпределенноеЗначение::=ВнешняяСсылкаНаЗначение |СсылкаНаЗначение
Присвоение ссылке на тип некоторого типа описывается продукцией “ПрисвоениеТипа”:
ПрисвоениеТипа::= СсылкаНаТип“::=“ Тип
Присвоение ссылке на значение некоторого типа описывается продукцией “ПрисвоениеЗначения”:
ПрисвоениеЗначения::= СсылкаНаЗначение Тип “::=“ Значение
Тип определяется одной из последовательностей вида “Тип”:
Тип::= ВстроенныйТип | ОпределенныйТип | Подтип
ВстроенныйТип::=БулевскийТип | ЦелочисленныйТип | Тип-СтрокаБитов |
Тип-СтрокаОктетов | ВырожденныйТип | Тип-Последовательность | Тип- ПоследовательностьИз | Тип-Множество |
Тип-МножествоИз | ВыборочныйТип |
СелективныйТип | ТегированныйТип |
ПроизвольныйТип |
Тип-ИдентификаторОбъекта | Тип-СтрокаЗнаков |
ОбщеупотребительныйТип |
ПеречислительныйТип |
Тип-ДействительноеЧисло |
Значение какого-либо типа должно определяться одной из последовательностей вида “Значение”:
Значение::= ВстроенноеЗначение |
ОпределенноеЗначение
ВстроенноеЗначение::=БулевскоеЗначение | ЦелочисленноеЗначение | Значение-СтрокаБитов |
Значение-СтрокаОктетов |
ВырожденноеЗначение |
Значение-Последовательность |
Значение-ПоследовательностьИз | Значение-Множество |
Значение-МножествоИз | ВыборочноеЗначение |
СелективноеЗначение |ТегированноеЗначение |
ПроизвольноеЗначение|
Значение-ИдентификаторОбъекта |
Значение-СтрокаЗнаков |
ОбщеупотребительноеЗначение |
ПеречислительноеЗначение |
Значение-ДействительноеЧисло |
Ниже приведены обозначения для типов и их значений:
Табл. 2.

Тип Значение
БулевскийТип::= BOOLEAN БулевскоеЗначение::= TRUE | FALSE
ЦелочисленныйТип::= INTEGER |
INTEGER{СписокПоименованныхЧисел}
СписокПоименованныхЧисел::=
ПоименованноеЧисло |
СписокПоименованныхЧисел,
ПоименованноеЧисло
ПоименованноеЧисло::=
Идентификатор(ЧислоСоЗнаком) |
Идентификатор(ОпределенноеЗначение)
ЧислоСоЗнаком::= Число | -Число
ЦелочисленноеЗначение::=ЧислоСоЗнаком |
Идентификатор
ПеречислительныйТип::= ENUMERATED {Перечисление}Перечисление::=
ПоименованноеЧисло |
ПоименованноеЧисло, Перечисление
ПеречислительноеЗначение:= Идентификатор
Тип-ДействительноеЧисло::= REALДействительные числа могут быть представлены формулой, содержащей три целочисленные аргумента - M, B и E : М*ВЕ
, где
М называется мантиссой, В- основанием, а Е- порядком.
М и Е могут принимать любые значения, а В - 2 или 10
Значение-ДействительноеЧисло::=ЧисленноеДействительноеЗначение |
СпециальноеДействительноеЗначение
ЧисленноеДействительноеЗначение::=
{Мантисса, Основание, Порядок} |0
Мантисса::= ЧислоСоЗнаком
Основание::= 2 | 10
Порядок::= ЧислоСоЗнаком
СпециальноеДействительноеЗначение::=
PLUS-INFINITY | MINUS-INFINITY
Тип-СтрокаБитов::=BIT STRING
BIT STRING{
СписокПоименованныхБитов }
СписокПоименованныхБитов::=
ПоименованныйБит |
СписокПоименованныхБитов, ПоименованныйБит
ПоименованныйБит::=
Идентификатор(Число) |
Идентификатор(ОпределенноеЗначение)
Значение-СтрокаБитов::=b-строка |
h-строка |
{СписокИдентификаторов}|
{}
СписокИдентификаторов::=
Идентификатор |
СписокИдентификаторо,
Идентификатор
 
Тип-СтрокаОктетов::= OCTET STRING Значение-СтрокаОктетов::=b-строка |
h-строка
ВырожденныйТип::= NULL ВырожденноеЗначение::= NULL
Тип-Последовательность::=SEQUENSE{СписокТипов-Компонентов}
SEQUENSE{}
СписокТипов-Компонентов::=
Тип-Компонент |
СписокТипов-Компонентов, Тип-Компонент
Тип-Компонент::=
ПоименованныйТип |
ПоименованныйТип OPTIONAL |
ПоименованныйТип DEFAULT Значение |
COMPONENTS OF Тип
Значение-Последовательность::={СписокЗначенийКомпонентов} |
{}
СписокЗначенийКомпонентов::=
ПоименованноеЗначение |
СписокЗначенийКомпонентов,
ПоименованноеЗначение
Тип-ПоследовательностьИз::=SEQUENSE OF Тип |
SEQUENSE
Значение-ПоследовательностьИз::={СписокЗначений} | {}
СписокЗначений::=
Значение |
СписокЗначений,
Значение
Тип-Множество::=
SET{
СписокТипов-Компонентов } |
SET{}
Значение-Множество::=
{СписокЗначенийКомпонентов} | {}
СписокЗначенийКомпонентов::=
ПоименованноеЗначение |
СписокЗначенийКомпонентов,
ПоименованноеЗначение
Тип-МножествоИз::=
SET OF Тип |
SET
Значение-МножествоИз::={СписокЗначений} | {}
СписокЗначений::=
Значение |
СписокЗначений,
Значение
ВыборочныйТип ::= CHOICE{СписокТипов-Вариантов}
СписокТипов-Вариантов::=
ПоименованныйТип |
СписокТипов-Вариантов, ПоименованныйТип
ВыборочноеЗначение::= ПоименованноеЗначение
СелективныйТип::= Идентификатор< ВыборочныйТип,где “Идентификатор” - один из “Идентификаторов” “ПоименованныхТипов” СелективноеЗначение::= ПоименованноеЗначение
ТегированныйТип::=Тег Тип |
Тег IMPLICIT Тип |
Тег EXPLICIT Тип|
Тег::= [Класс НомерВКлассе]
НомерВКлассе::= Число | ОпределенноеЗначение
Класс::=
UNIVERSAL |
APPLICATION |
PRIVAT |
Пусто
ТегированноеЗначение::= Значение, где“Значение” - обозначение значения типа, заданного последовательностью “Тип” в продукции “ТегированныйТип”
ПроизвольныйТип ::=ANY |
ANY DEFINED BY идентификатор|
ПроизвольноеЗначение::=Тип-Значение, где“Тип” - обозначение выбранного типа, а “Значение” - обозначение для записи значения этого типа
Тип-ИдентификаторОбъекта::= OBJECT IDENTIFIER| Значение-ИдентификаторОбъекта::={СписокКомпонентовИдОбъекта) |
{ОпределенноеЗначение СписокКомпонентовИдОбъекта}
СписокКомпонентовИдОбъекта::=
КомпонентовИдОбъекта |
КомпонентовИдОбъекта СписокКомпонентовИдОбъекта
КомпонентовИдОбъекта::=
ИменнаяФорма |
ЧисловаяФорма |
СмешаннаяФорма
ИменнаяФорма::=Идентификатор
ЧисловаяФорма::=Число |
ОпределенноеЗначение
СмешаннаяФорма::= Идентификатор(ЧисловаяФорма)
Тип-СтрокаЗнаков::=СсылкаНаТип, где“СсылкаНаТип”-одно из имен типов “строка знаков” Значение-СтрокаЗнаков::= с-строка
<

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