SNMP 类型无符号32 的正确编码是什么
What is the correct encoding for SNMP type Unsigned32?
我正在编写一个SNMP代理,MIB定义包括一个类型为Unsigned32的OID。
代理的 Unix 实现使用 Net-SNMP 并将 OID 设置为 ASN_UNSIGNED 类型,因为它没有ASN_UNSIGNED32。当我用Wireshark查看GET响应时,它将其解码为"Gauge32"值。乍一看这是有道理的,因为根据 RFC 1902,Unsigned32 和 Gauge32 是相同的。
Windows实现基于Windows的SnmpAPI.lib,并将OID设置为ASN_UNSIGNED32,当我使用Wireshark查看GET响应时,它将其解码为"Unsigned32"。这对我来说看起来更好。
为什么这两种实现在网上产生不同的结果?
哪个是正确的版本,我如何设法从两个实现中获得相同的版本?
事实证明,Net-SNMP使用的是当前的RFC 1902编码,其中Unsigned32和Gauge32是相同的,而Windows使用过时的RFC 1442编码,其中Unsigned32和Gauge32具有不同的编码。
如果你在Windows上保存Wireshark捕获,然后在Unix上的Wireshark中打开它。然后,您可能会看到它显示的类型。Unsigned32 和 Gauge32 是可互换的,由标准定义,因此在所有 SNMP 实现中应该没有任何区别。在网络上,它应该传输相同的字节。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- C++中名称篡改的目的是什么
- 过时的编码(C )的确切含义是什么?
- 通过c++主字符**参数处理不同字符串编码的正确方法是什么
- 是什么决定了C++中的字符编码
- c++setter编码约定.输入变量名称应该是什么
- 解码像 FAST 这样的数据协议的快速方法是什么,其中数据以字节为单位编码,并将位作为存在标志
- SNMP 类型无符号32 的正确编码是什么
- 在C++中加密硬编码字符串的最佳方法是什么
- 使用硬编码元素初始化 std::vector 的最简单方法是什么<MyClass>?
- 使用 IFilter 检索的文本的编码是什么?
- Boost::asio这种奇怪的编码风格是什么
- 在c++中设置编码的最正确方法是什么?
- 分解复杂表达式的良好编码习惯是什么?
- OpenGL编码(特别是面向对象)的一些最佳实践是什么