Формат пакета SNMP - PullRequest
       7

Формат пакета SNMP

0 голосов
/ 07 февраля 2012

Я уже некоторое время пытаюсь разобраться с форматом пакетов SNMP, но я все еще не уверен, что у меня есть. Вот некоторые наблюдения, которые я считаю правильными, но я не уверен насчет:

  1. Каждый пакет - это набор вложенных примитивов данных разных типов, состоящий из типа, длины и некоторых данных.
  2. Первые две части OID всегда 1.3 и кодируются в один байт.
  3. Последующие части кодируются одним байтом, если их числовое значение меньше 128.
  4. Части OID, превышающие 127, кодируются в несколько байтов, значение которых определяется 7 младшими значащими битами, причем старший значащий бит установлен в 1 для всех, кроме последнего байта.
  5. Некоторые идентификаторы типов данных являются официальными (целочисленные, строковые и т. Д.), Но некоторые являются проприетарными и зависят от устройства.

Бит, который я действительно не понимаю, состоит в том, как кодируется длина определенного значения, если значение длиннее 255 байтов. Используя Wireshark, я обнаружил, что для длин меньше 256 поле длины составляет 1 байт, но для длин больше 256 поле разбивается на несколько байтов. Однако кодировка, используемая в больших номерах деталей OID, по-видимому, не применяется.

Я не могу найти ничего в RFC по этому поводу (их в любом случае около 30), чтобы помочь мне.

Может кто-нибудь прояснить это для меня и сказать, что сделанные мной выше наблюдения верны?

1 Ответ

1 голос
/ 07 февраля 2012

SNMP определяется с использованием подмножества ASN.1 .Существует набор стандартов , описывающих его;X.690 охватывает основную двоичную кодировку.

...