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

ALZ*_*ALZ 4 networking snmp mib

我发送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)将以完全相同的顺序返回?

例如
.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


欢迎任何答案,文档链接,与此问题相关的提示.


更新:非Repeater = 0,MaxRepetitions> = 1

Mic*_*ham 6

假设代理是正确实现的,那么是的,虽然可以更清楚地说,响应PDU的完整返回集由请求中每个OID的各个结果集组成,并且那些单独的结果集在同一个中返回在请求中给出的顺序.每个单独的结果集的行为类似于零或更多(取决于非转发器和最大重复字段的值)get-next请求.

如果您的非转发器是N,则响应中的前N个OID将与请求中的前N个OID相对应,每个OID的行为类似于单个get-next请求(如果没有则返回下一个更大的OID或endOfMibView异常) .请求中的其余OID需要进行最大重复.

如果你的最大重复次数是M,那么请求中的每个剩余OID都表现为0..M get-next请求(从请求OID返回M下一个更大的OID;如果没有M更大,那么那里在从请求中的下一个OID得到的OID之前,将是一些较小的数字,后跟一个endOfMibView异常.

[这也意味着如果非转发器和最大重复都为0,则结果为空集; 或者如果max-repetitions为0且非中继器小于请求中的OID数量,那么对于那些超过非中继器的请求OID,将不会返回任何内容.

如果在上述处理中的任何时刻代理不能在不超过其消息大小限制的情况下向响应添加任何更多结果,则处理停止并且代理将返回到目前为止获得的部分结果.

参考:RFC 3416第4.2.3节