【问题标题】:SNMP packet formatSNMP 数据包格式
【发布时间】:2012-02-07 17:25:56
【问题描述】:

一段时间以来,我一直在尝试了解 SNMP 数据包格式,但我仍然不确定我是否掌握了它。以下是我认为我认为正确的一些观察结果,但我不确定:

  1. 每个数据包都是一组不同类型的嵌套数据原语,由类型、长度和一些数据组成。
  2. OID 的前两部分始终为 1.3,并被编码为单个字节。
  3. 如果其数值小于 128,则后续部分将分别编码为一个字节。
  4. 大于 127 的 OID 部分被编码为多个字节,其值由 7 个最低有效位确定,除最后一个字节外,所有最高有效位都设置为 1。
  5. 有些数据类型 ID 是官方的(整数、字符串等),但有些是专有的和特定于设备的。

我真正不明白的是,如果某个值的长度超过 255 个字节,那么该值的长度是如何编码的。使用 Wireshark,我发现对于 256 以下的长度,长度字段为 1 个字节,但对于大于 256 的长度,该字段被拆分为多个字节。但是,较大的 OID 部件号中使用的编码似乎并不适用。

我在 RFC 中找不到任何关于此的内容(反正大约有 30 个)来帮助我。

谁能帮我澄清一下,并验证我上面的观察是否正确?

【问题讨论】:

    标签: c# udp snmp packet


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 2016-04-11
    相关资源
    最近更新 更多