Задачи, методы и средства эффективного управления сетевыми ресурсами (коммутаторы, маршрутизаторы, каналы связи, направления, абонентские характеристики), страница 9

  1. UNIVERSAL (UNI)  -  Универсальный. Используется в ASN.1 и присваивается либо первому типу данных, либо способу построения типов. (рекомендация х,208);
  2. APPLICATION WIDE (APP-W) – Прикладной. Присваивается типам данных, определенных в других рекомендациях или стандартам;
  3. PRIVATE (PRIV) – Пользовательский. Присваивается  типам данных, определенных в других рекомендациях, но не ISO и не ITU-T;
  4. CONTEXT- SPECIFIC (C-SPEC) – контекстно-зависимый. Эти ТЭГи назначаются любым типам данных и интерпретируются в соответствии с контекстом, в котором они используются;

Для определения любых информационных элементов используется правило кодирования BER, при котором каждое значение информационного элемента кодируется тремя полями:

Ø  Идентификатор информационного элемента;

Ø  Длина поля данных;

Ø  Содержимое (данные);

В некоторых случаях к этим 3-м полям может добавляться байт конца данных.

Структура ТЭГа.

8

7

6

5

4

3

2

1

Класс

ТЭГа

0/1

Р/С

Номер (код)

ТЭГа

Класс ТЭГа (8,7):

  • 00 – UNI;
  • 01 – APP;
  • 10 – C-SP;
  • 11 – PRIV;

Номер кода ТЭГа (для класса UNI):

  • 00001 – BOOLEAN TYPE;
  • 00010 – INTEGER;
  • 00011 – BIT STRING;
  • 00100 – OCTET STRING;
  • 00101 – NULL;
  • 00110 – OID;
  • …………….
  • 10000 – SEQUENCE;

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

Поле данныхуказывает, сколько байт занимают данные. Если меньше 128 байт, то их длина может быть указана с помощью одного байта, при этом старший бит равен нулю:

0

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

            Содержимое данных  зависит от конкретного типа данных, который задан в ТЭГе.

ПРИМЕР № 1: если задается целое число менее 128, оно кодируется с помощью одного байта.

02

01

23

00000010

00000001

00100011

ТЭГ

 

ЧИСЛО 35

 

ДЛИНА

 


ПРИМЕР № 2: если целое число больше 128, то старший байт передается первым.

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

Строка бит:   010011111

03

03

07

4F

80

00000011

00000011

00000111

01001111

10000000

7 бит последнего байта не используются

 

Не используются

 

Строка бит

 

ТЭГ

 

Длина

 
 


ПРИМЕР № 3: Идентификатор объекта.