SNMP GETBULK和GET操作之间有什么区别

问题描述 投票:2回答:1

背景

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

问题

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

这个问题

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

有没有办法拨打一个电话,只需拨打一次设备即可获得我需要的所有信息,或者只是我可以重复拨打设备?

我还有其他选择吗?

c# snmp cisco sharp-snmp
1个回答
4
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.