【问题标题】:What is the difference between SNMP GETBULK and GET operationsSNMP GETBULK 和 GET 操作有什么区别
【发布时间】:2016-12-01 09:41:00
【问题描述】:

背景

我正在尝试创建一个 SNMP 网站项目以获取有关网络设备的信息。我使用了 LeXtudio 创建的 SNMP 库 - sharpsnmp。

问题

我创建了两种方法,一种使用 Getbulk,另一种使用 Get。两者都包含一个 OID 列表。两者都照常工作,没有问题。我遇到的唯一问题是在很远的网络设备上。他们每个人都需要完全相同的时间。就在 2 分钟。我觉得这是一个很长的等待时间。虽然在靠近的设备上它非常快并且不到 5 秒。

问题

我想知道 Getbulk 是否不会立即要求所有信息,然后返回所有信息。或者它是否一次要求列表中的每个 OID。和Get一样吗?

有没有一种方法可以通过一次调用设备来获取我需要的所有信息,还是只能重复调用设备?

我还有其他选择吗?

【问题讨论】:

标签: c# snmp cisco sharp-snmp


【解决方案1】:

如果您处理标量 OID 或精确的表对象实例,通常应该使用 GET 请求。

否则,如果代理支持 SNMPv2C,您应该使用 GETNEXT 甚至 GETBULK。

通常您应该使用 GETNEXT 来获取表的选定列或整个表。在这种情况下,您需要递归执行 GET-NEXT 请求,直到结果超出树分支范围。

如果代理启用了 SNMPv2C,您应该使用 GETBULK。它是对 GETNEXT 请求的优化。所以基本上你不必执行几个 GET-NEXT 请求来获取多个实例。相反,您可以发送单个 GETBULK 请求并将 Max-Repetitions 参数设置为 10,然后您将从请求中指定的 OID 开始获得接下来的 10 个结果变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多