20.10.2 Первая абстрактная синтаксическая нотация (ASN.1)
Определения MIB написаны на стандартном языке
Станция управления анализирует переменные MIB,
После компиляции станция управления готова посылать и получить сообщения SNMP, содержащие любую из скомпилированных переменных. Хорошие станции могут также выводить описания переменных. На рис. 20.13 показан вывод в HP
Рис. 20.13. Вывод описаний переменных на экране диспетчера SNMP
20.10.3 Типы данных MIB
Причиной широкого распространения SNMP стало то, что проектировщики придерживались правила 'Будь проще!'
■ Все данные MIB состоят из простых скалярных переменных, хотя отдельные части MIB могут быть
■ Только небольшое число типов данных (например, целые числа или строки октетов) используется выражения значений всех переменных MIB.
Фактически основные типы данных — это INTEGER (целое), OCTET STRING (строка октетов) и OBJECT IDENTIFIER (идентификатор объекта).
20.10.4 Целые числа
Целые числа используются в двух случаях:
■ Для ответа на вопрос 'сколько?'
■ Для перечисления списка вариантов, например 1 = включено, 2 = выключено, 3 = тестирование.
Ниже приведено определение, иллюстрирующее использование различных типов данных. Заметьте, что в первом определении формулировка SYNTAX ограничивает амплитуду значений.
tcpConnLocalPort OBJECT-TYPE
SYNTAX INTEGER (0..65535)
ACCESS read-only
STATUS mandatory
DESCRIPTION
'Номер локального порта для данного
соединения TCP.'
:: = { tcpConnEntry 3 }
ifAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up (1), - готов к пересылке пакета
down (2),
testing (3) - режим тестирования
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
'Требуемое состояние интерфейса. Тестирование (3) указывает
на отмену пересылки пакетов.'
::= { ifEntry 7 }
20.10.5 Счетчики
Счетчик — это положительное целое число, которое увеличивается до максимального значения и затем сбрасывается в ноль. Известно, что 32-разрядный счетчик может увеличиваться до 2³²-1 (4 294 967 295) и затем сбрасывается в 0. В версии 2 добавлен 64-разрядный счетчик, который может увеличиваться до 18 446 744 073 709 551 615.
Значение счетчика само по себе не используется. Регистрируется текущее значение счетчика, а затем сравнивается с его предыдущим значением. Смысл имеет
ifInOctets OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
'Общее количество полученных интерфейсом октетов,
включая символы обрамления кадров.'
:: = { ifEntry 10 }
20.10.6 Масштаб
32-разрядный масштаб может увеличиваться до 2³²-1 (4 294 967 295). Если измеряемая величина превышает масштаб, то она фиксируется в этом максимуме, пока значение снова не уменьшится (см. рис. 20.14).
Рис. 20.14. Поведение значения масштаба
Пример переменной масштаба:
ifOutQLen OBJECT-TYPE