Snmp 对RFC 1155、RFC 1157和ASN.1感到困惑 -第3.2.1节,p。7:四个ASN.1基本类型 整数,八位字节字符串,对象标识符和空 RFC 1155-第6节,第页。18:IpAdrress是一个隐式八位字节字符串(大小(4)) RFC 1155-第6节,第页。18:NetworkAddress是一个IpAddress -第4.1.6节,第。26:aagent addr是一个NetworkAddress,它是一个IpAddress
ASN.1 BER表示八位字节字符串asSnmp 对RFC 1155、RFC 1157和ASN.1感到困惑 -第3.2.1节,p。7:四个ASN.1基本类型 整数,八位字节字符串,对象标识符和空 RFC 1155-第6节,第页。18:IpAdrress是一个隐式八位字节字符串(大小(4)) RFC 1155-第6节,第页。18:NetworkAddress是一个IpAddress -第4.1.6节,第。26:aagent addr是一个NetworkAddress,它是一个IpAddress,snmp,net-snmp,asn.1,Snmp,Net Snmp,Asn.1,ASN.1 BER表示八位字节字符串as0x04。TRAP-PDU值agent addr的数据类型为0x40(见Wireshark) 为什么代理addr的数据类型不是隐式八位字节字符串(大小(4)) 四种ASN.1基元类型整数、八位字符串、对象标识符和NULL 他们说他们只是从ASN.1类型系统中选择了这些类型。这些是内置的标量ASN.1数据类型。谈到BER序列化,这些类型在线路上有不同的ID(也称为标记) iPadRess是一个隐式八位字符串(大小(4)) ASN.1允许您通过更改标记和(可选
0x04
。TRAP-PDU值agent addr
的数据类型为0x40(见Wireshark)
为什么代理addr
的数据类型不是隐式八位字节字符串(大小(4))
四种ASN.1基元类型整数、八位字符串、对象标识符和NULL
他们说他们只是从ASN.1类型系统中选择了这些类型。这些是内置的标量ASN.1数据类型。谈到BER序列化,这些类型在线路上有不同的ID(也称为标记)
iPadRess是一个隐式八位字符串(大小(4))
ASN.1允许您通过更改标记和(可选)对值范围施加附加约束,从任何其他类型创建新类型。有两种方法可以更改标记:
- 通过重写基类型的标记(AKA
tagging)IMPLICIT
- 通过将新标记附加到基类型的现有标记(也称为显式标记)
应用程序
名称空间中用tag#0
替换它的tag来对八位字符串
类型进行子类型化。从算术上讲,这个新标记将变成0 | 0x40
此外,它们对值范围实施大小约束--size(4)
例如,值必须有四个八位字节
NetworkAddress是一个IP地址。
代理地址是一个网络地址,它是一个IP地址
嗯,是和否;-)
ASN.1有一个选项
伪类型,它在导线上不可见(默认情况下没有自己的标记),但在导线上它可以变成它“嵌入”的类型之一。设计者可能计划在将来支持更多不同的网络地址,因此他们使用NetworkAddress
容器包装IpAddress
ASN.1 BER将八位字节字符串表示为0x04。TRAP-PDU值代理addr的数据类型为0x40(见Wireshark)
这是正确的:您看到一个子类型octetstring
具有隐式应用程序0
标记,即0x40 | 0
顺便说一句,使用隐式
标记时,该类型的原始标记丢失,因此在导线上看不到基本八位字节字符串
类型的任何残余
为什么代理addr的数据类型不是隐式八位字符串(大小(4))
事实上是这样!希望上面的解释能让它不那么晦涩 “隐式”并不意味着agent addr
应该是OCTET字符串
<代码>IP地址,计数器
,仪表
,时间刻度
,不透明
都有自己的数据类型值。