SNMP数据包格式

时间:2012-02-07 17:25:56

标签: c# udp snmp packet

我一直试图绕过SNMP数据包格式一段时间,但我仍然不确定我是否已经得到它。以下是我认为我有正确的观察结果,但我不确定:

  1. 每个数据包都是一组不同类型的嵌套数据基元,包括类型,长度和一些数据。
  2. OID的前两部分始终为1.3并被编码为单个字节。
  3. 如果后续部分的数值小于128,则每个部分编码为一个字节。
  4. 大于127的OID部分被编码为多个字节,其值由7个最低有效位确定,除最后一个字节外,所有字节的最高有效位都设置为1。
  5. 某些数据类型ID是官方的(整数,字符串等),但有些是专有的和设备特定的。
  6. 我真正不理解的是,如果值超过255个字节,则如何编码特定值的长度。使用Wireshark,我发现对于256以下的长度,长度字段是1字节,但是对于大于256的长度,字段被分成多个字节。但是,较大的OID部件号中使用的编码似乎不适用。

    我在RFC中找不到任何关于此事的内容(无论如何都有大约30个)来帮助我。

    有人可以为我清楚这一点,并且确认我上面的观察是正确的吗?

1 个答案:

答案 0 :(得分:1)

使用ASN.1的子集定义SNMP。有bunch of standards描述它; X.690涵盖了基本的二进制编码。