Abstract Syntax Notation One — ASN. 1

Скачать презентацию Abstract Syntax Notation One — ASN. 1 Скачать презентацию Abstract Syntax Notation One — ASN. 1

15_abstract_syntax_notation_one_-_asn.1_2.ppt

  • Размер: 114.5 Кб
  • Количество слайдов: 17

Описание презентации Abstract Syntax Notation One — ASN. 1 по слайдам

Abstract Syntax Notation One — ASN. 1 Abstract Syntax Notation One — ASN.

Для спецификации синтаксиса заголовков блоков данных протоколов высокого уровня и переносимых ими структур данных потребовалась специальнаяДля спецификации синтаксиса заголовков блоков данных протоколов высокого уровня и переносимых ими структур данных потребовалась специальная нотация, позволяющая определять синтаксис передаваемых структурных значений и составляющих их типов не зависимо от конкретного способа представления. Такой нотацией, разработанной в рамках OSIE, является «Abstract Syntax Notation One».

Из встроенных типов ASN. 1 прежде всего выделяют набор простых типов.  К ним относятся: Из встроенных типов ASN. 1 прежде всего выделяют набор простых типов. К ним относятся: булевский ( BOOLEAN), целочисленный ( INTEGER), тип «строка битов» ( BIT STRING), тип «строка октетов» ( OCTET STRING), пустой тип ( NULL), перечислимый тип ( ENUMERATED), тип «действительное число» ( REAL). • ENUMERATED Заданное множество выделенных значений • REAL Элементы множества действительных чисел

Абстрактный синтаксис ASN. 1 представляет собой средство со строгой типизацией,  что требует явного описания используемыхАбстрактный синтаксис ASN. 1 представляет собой средство со строгой типизацией, что требует явного описания используемых типов. Пример определения типа: • Employed : : = BOOLEAN Подобным же образом определяется тип для целых значений: • Checking. Account. Balance : : = INTEGER При определении целочисленных типов можно указывать идентификаторы поименованных значений, а также максимальные и минимальные значения: • Day. Of. The. Month : : = INTEGER { first(1), last(31) }

Тип BIT  STRING следует использовать для представления двоичных данных, формат и длина которых не заданы,Тип BIT STRING следует использовать для представления двоичных данных, формат и длина которых не заданы, при этом длина (в битах) не обязательно кратна восьми. Тип OCTET STRING по своему назначению полностью аналогичен типу BIT STRING, позволяя представлять двоичные данные, причем длина (в битах) кратна восьми. Значения типа REAL включают значения PLUS INFINITY и MINUS INFINITY, вместе с действительными числами, которые могут быть представлены в виде Mx. BE, где целочисленные M, B, E, соответственно, — мантисса, основание и порядок. B принимает значения 2 или 10, M и E — произвольные целые числа. Тип ENUMERATED используется для определения типа с тремя или более выделенными значениями. Marital. Status : : = ENUMERATED { single(0), married(1), widowed(2) }

Каждый тип,  используемый в ASN. 1,  содержит специальный признак,  называемый тегом.  ТегКаждый тип, используемый в ASN. 1, содержит специальный признак, называемый тегом. Тег определяется либо самим стандартом, либо пользователем. Тегированием называется замена существующего (возможно, заданного по умолчанию) тега некоторого типа новым тегом. Тег вводится главным образом для машинного использования (при кодировании), чем для человека. Один и тот же тег может назначаться различным типам. В этом случае теги будут трактоваться в соответствии с текущим контекстом. В то же время для обозначения одного и того же типа можно использовать различные теги. При всех способах кодирования обеспечивается отличие значений нового типа от значений исходного типа, тем самым при декодировании обеспечивается возможность однозначного восстановления информации о типах переданных значений.

Тег состоит из идентификатора класса и неотрицательного целого,  различающего теги внутри класса.  Четыре классаТег состоит из идентификатора класса и неотрицательного целого, различающего теги внутри класса. Четыре класса тегов: UNIVERSAL — используется только для данных, представленных в соответствии с правилами ASN. 1 и назначается либо одному из типов, либо одному из способов формирования сложных типов. APPLICATION — применяется для определения типов, построенных по правилам других стандартов. PRIVATE — используется для обозначения типов, не входящих ни в один из стандартов. Существует класс контекстно-зависимых тегов, служащий для интерпретации типов в зависимости от контекста.

Используя базовые типы и применяя небольшой набор способов построения,  можно получать сложные типы.  СпособыИспользуя базовые типы и применяя небольшой набор способов построения, можно получать сложные типы. Способы можно применять в любой последовательности, повторно, многократно. Получаемые в результате типы называют структурированными. В ASN. 1 определяется шесть способов структурирования: «последовательность» (SEQUENCE), «последовательность из» (SEQUENCE OF), «множество» (SET), «множество из» (SET OF), выборочный тип (CHOICE), селективный тип.

Тип последовательность - это структурированный тип,  определяемый ссылкой на фиксированный,  упорядоченный список типов; Тип «последовательность» — это структурированный тип, определяемый ссылкой на фиксированный, упорядоченный список типов; каждое значение нового типа является упорядоченной последовательностью значений типов-компонентов, по одному на каждого из них. • Credentials : : = SEQUENCE • { user. Name Visible. String, • password Visible. String, • account. Number INTEGER } Любой тип-компонент может быть помечен как `OPTIONAL` или `DEFAULT_Значение`.

Тип последовательность из - это структурированный тип,  определяемый ссылкой на один из существующих типов; Тип «последовательность из» — это структурированный тип, определяемый ссылкой на один из существующих типов; каждое значение нового типа является упорядоченной последовательностью произвольной длины из значений существующего типа. Names. Of. Member. Nations : : = SEQUENCE OF Visible. String

Тип множество - это структурированный тип,  определяемый ссылкой на фиксированный неупорядоченный список типов;  каждоеТип «множество» — это структурированный тип, определяемый ссылкой на фиксированный неупорядоченный список типов; каждое значение нового типа является неупорядоченным списком значений типов-компонентов, по одному на каждого из них. User. Name : : = SET { personal. Name [0] IMPLICIT Visible. String, organization. Name [1] IMPLICIT Visible. String, country. Name [2] IMPLICIT Visible. String } Все типы-компоненты должны иметь различные теги. В данном примере исходные типы для типов-компонентов одинаковы, поэтому применено явное тегирование посредством контекстно-зависимых тегов. IMPLICIT означает, что при кодировании теги исходных типов Visible. String передаваться не будут (т. к. все равно различить элементы User. Name можно будет только по заданным явно тегам).

Тип множество из - это структурированный тип,  определяемый ссылкой на единственный существующий тип;  каждоеТип «множество из» — это структурированный тип, определяемый ссылкой на единственный существующий тип; каждое значение нового типа является неупорядоченным списком из значений существующего типа. Keywords : : = SET OF Visible. String

Выборочный тип - это структурированный тип,  определяемый указанием фиксированного неупорядоченного списка различных типов;  каждоеВыборочный тип — это структурированный тип, определяемый указанием фиксированного неупорядоченного списка различных типов; каждое значение нового типа является значением одного из типов-компонентов. File. Indentifier : : = CHOICE { relative. Name [0] IMPLICIT Visible. String, — имя файла (например, March. Progress. Report) absolute. Name [1] IMPLICIT Visible. String, — имя файла и содержащий это имя каталог, —например, Williams/March. Progress. Report serial. Number [2] IMPLICIT INTEGER — идентификатор, присвоенный файлу системой }

Селективный тип - это структурированный тип,  определяемый указанием одного из типов-компонентов выборочного типа.  File.Селективный тип — это структурированный тип, определяемый указанием одного из типов-компонентов выборочного типа. File. Attribute : : = CHOICE { date-last-used INTEGER, file-name Visible. String } Current. Attributes : : = SEQUENCE { date-last-used file-name } Здесь применен селективный тип при определении типов-компонентов типа Current. Attributes. Возможное значение Current. Attributes: { date-last-used 27, file-name «PROGRAM» }

Подтипом называется тип,  значения которого задаются как подмножество значений другого типа (порождающего).  В ASN.Подтипом называется тип, значения которого задаются как подмножество значений другого типа (порождающего). В ASN. 1 определяется целый ряд методов задания подтипа: a) одно значение; b) вложенный подтип; c) диапазон значений; d) ограничение размера; e) ограничение алфавита; f) внутренний подтип. Обозначение для подтипа имеет следующий вид: • Подтип: : = • Порождающий. Тип Спецификация. Подтипа | • SET Ограничение. Размера OF Тип | • SEQUENCE Ограничение. Размера OF Тип

В ASN. 1 предусмотрен способ,  с помощью которого пользователь может определить новую систему обозначений, В ASN. 1 предусмотрен способ, с помощью которого пользователь может определить новую систему обозначений, посредством которой он может строить те же типы данных, что и в ASN. 1, ссылаться на них, а также задавать значения этих типов. Предположим, что желательно иметь обозначение для определения типа следующего вида: PAIR TYPEX=. . TYPEY=. . , допускающие запись соответствующего значения в виде (X=—-, Y=—-), где `. . ` и `—-` означают соответственно любой тип ASN. 1 и соответствующее значение. T 1 : : = PAIR TYPEX=INTEGER TYPEY=BOOLEAN T 2 : : = PAIR TYPEX=Visible. String TYPEY=T 1 Тогда значение типа T 2 может иметь вид: (X=»Name», Y=(X=4, Y=FALSE))

Для структуризации описаний ASN. 1,  относящихся к одной предметной области, вводятся модули.  Имена модулейДля структуризации описаний ASN. 1, относящихся к одной предметной области, вводятся модули. Имена модулей должны быть уникальными. Для международных стандартов рекомендуется использовать имена модулей в следующем виде: ISOxxxx-yyyy, где xxxx — номер международного стандарта, а yyyy — некоторое сокращение, используемое для этого стандарта. ISO 8571 -FTAM DEFINITION : : = BEGIN EXPORTS PDU. . . PDU : : = CHOICE { Initialize. PDU, File. PDU, Bulcdata. PDU } . . . EN