你好我这里的第一个问题,需要一点指导.
我正在研究一个主要用于解码SNMP PDU的数据包嗅探器,但是我并不完全确定它在哪里.
简单地说,我的数据包嗅探器可以从数据包中提取信息,但我对数据有效负载字段感兴趣.它是用C++编写的,我使用的是winsock.
我该怎么办呢?SNMP字段是用基本编码规则编码还是我必须深入研究ASN.1?
我只想将数据有效负载字段中的那些SNMP字段解码为人类可读的形式.它们将被转储到文本文件中.所以我也会考虑解码OID.我正在验证所有内容,因为我使用Wireshark并使用GETIF查询我的SNMP节点.
任何指导表示赞赏.
编辑:
感谢user1793963非常好解释.对所有标记为过宽的人抱歉.
要详细说明我的原始问题,任何人都可以解释PDU本身的初始部分.
示例:我的程序输出这些十六进制值30 82 00 A3 02 01 00,即SEQUENCE(30),LENGTH(82)和另外两个值.这是来自GetRequest PDU.
GetResponse PDU 在LENGTH中显示这些值30 81 B7 02 01 00,SEQUENCE,81和另一个值.
有人可以解释以粗体标记的值.如果它使用简单的TLV结构,那么代表什么值?我所知道的是序列(30)的开始和总PDU长度(82和81),我知道02 01 00在LENGTH和VERSION 0中是INTEGER 1但是我不理解00 A3(GetRequest)和B7 (的GetResponse).这些值代表什么?非常感谢.
我也使用Wireshark来检查值,但是它们没有说明PDU序列的开始