Networking 具有多个OID的SNMP getBulkRequest-哪个是返回的响应OID顺序?

Networking 具有多个OID的SNMP getBulkRequest-哪个是返回的响应OID顺序?,networking,snmp,mib,Networking,Snmp,Mib,我正在发送SNMPgetBulkRequest,使用基于某些第三方库(如agent++、SNMP++)的专有SNMP浏览器,并带有多个OID,例如 .1.3.6.1.2.1.1.1 .1.3.6.1.2.1.1.5 .1.3.6.1.2.1.1.6 .1.3.6.1.2.1.1.4 是否保证返回的集合(如果存在具有此类前缀的OID)将以完全相同的顺序返回 e、 g. .1.3.6.1.2.1.1.1.0 .1.3.6.1.2.1.1.5.0 .1.3.6.1.2.1.1.6.0 .1.3.6.1

我正在发送SNMP
getBulkRequest
,使用基于某些第三方库(如agent++、SNMP++)的专有SNMP浏览器,并带有多个OID,例如
.1.3.6.1.2.1.1.1
.1.3.6.1.2.1.1.5
.1.3.6.1.2.1.1.6
.1.3.6.1.2.1.1.4

是否保证返回的集合(如果存在具有此类前缀的OID)将以完全相同的顺序返回

e、 g.
.1.3.6.1.2.1.1.1.0
.1.3.6.1.2.1.1.5.0
.1.3.6.1.2.1.1.6.0
.1.3.6.1.2.1.1.4.0


欢迎提供与此问题相关的任何答案、文档链接和提示



更新:非中继器=0,MaxRepetitions>=1

假设代理正确实现,那么是的,尽管可以更清楚地说,响应PDU的完整返回集由请求中每个OID的单独结果集组成,这些单独的结果集将按照请求中给出的顺序返回。每个单独的结果集的行为类似于零或更多(取决于“非中继器”和“最大重复次数”字段的值)get next请求

如果非中继器为N,则响应中的前N个OID将与请求中的前N个OID相对应,每个OID的行为类似于单个get next请求(如果没有,则返回下一个更大的OID或endOfMibView异常)。请求中的其余OID以最大重复次数为准

如果最大重复次数为M,则请求中剩余的每个OID的行为类似于0..M get next requests(从请求OID返回最多M个next MORGER OID;如果没有M个next MORGER,则在请求中的下一个OID生成OID之前,后面会有一个endOfMibView异常的较小数目)

[这也意味着如果非中继器和最大重复次数均为0,则结果为空集;或者如果最大重复次数为0,且非中继器小于请求中的OID数,则对于超过非中继器的请求OID,将不返回任何内容。]

如果在上述处理过程中的任何时候,代理无法在不超过其消息大小限制的情况下向响应添加更多结果,则处理将停止,代理将返回迄今为止获得的部分结果


参考资料:

这也适用于具有更多OID的GetRequest吗?我怀疑您询问的是太大的响应。我想我可能记错了某个特定实现的内部处理。GetBulk将返回部分结果,但错误状态为太大。对于其他请求,要么全有,要么全无。如果响应超过代理的消息大小限制,它们将返回tooBig,其中包含一个空的变量绑定列表。