什么是SNMP类型UNSIGNED32正确的编码?(What is the correct enco

2019-09-17 12:24发布

我正在写一个SNMP代理和MIB定义包括类型UNSIGNED32的OID。

Unix的实施剂使用的Net-SNMP和设置OID类型ASN_UNSIGNED,因为它不具有ASN_UNSIGNED32。 当我看使用Wireshark获得响应,其解码为一个“Gauge32”值。 这是有道理的一见钟情,因为根据RFC 1902 UNSIGNED32和Gauge32是相同的。

Windows实现是基于Windows的SnmpAPI.lib并设置OID为ASN_UNSIGNED32,当我看使用Wireshark获得响应,其解码为‘UNSIGNED32’。 这看起来更好的给我。

为什么2个实现生产上线不同的结果?

这是正确的版本,我怎么能设法得到两种实现一样吗?

Answer 1:

原来的Net-SNMP使用当前的RFC 1902编码,其中UNSIGNED32和Gauge32是相同的,而Windows使用过时的RFC 1442编码,其中UNSIGNED32和Gauge32有不同的编码。



Answer 2:

如果您保存在Windows Wireshark的捕获,然后在Wireshark中打开它在Unix。 然后,你可以看到的是它显示的类型。 UNSIGNED32和Gauge32是可以互换的标准所定义的,所以应该是没有任何区别的所有SNMP实现。 在电线,应传输相同字节。



文章来源: What is the correct encoding for SNMP type Unsigned32?