四ASN.1プリミティブ型INTEGER、オクテット文字列、オブジェクト識別子、およびNULL
彼らは、ASN.1型システムからちょうどこれらのタイプを選んだと言います。これらは組み込みのスカラーASN.1データ型です。 BERシリアライゼーションでは、これらのタイプはワイヤー上に異なるID(AKAタグ)を持っています。
IpAdrressが値に追加の制約を課すIMPLICIT OCTET STRINGを(SIZE(4))
ASN.1は、あなたがタグと(オプション)を変更することにより、他のタイプから新しいタイプを作成することができますです範囲。
- AKA EXPLICIT(基本型の既存のタグ(複数可)に新しいタグを追加することにより、基本型(AKA
IMPLICIT
タギング)
- のタグをオーバーライドすることによって:タグを変更するには2つの方法があります。タギング)
ので、ここで彼らはAPPLICATION
名前空間にタグ#0
によって、そのタグを置き換えることによって、OCTET STRING
タイプサブタイプ。算術的には、この新しいタグは0 | 0x40
になります。
さらに、値の範囲にはサイズ制限-などが適用されます。値には4オクテットが必要です。
NetworkAddressはIpAddressです。 agent-addrはIpAddressであるNetworkAddressです
まあ、はい、いいえ。 ;-)
ASN.1はワイヤ上では見えない疑似タイプです(デフォルトでは独自のタグはありません)が、ワイヤ上では "埋め込み"タイプの1つに変わる可能性があります。設計者は、おそらくより多くの異なるネットワークアドレスを将来的にサポートする予定だったので、IpAddress
をNetworkAddress
コンテナで囲みました。
ASN.1 BERは、OCTET STRINGを0x04として表します。 TRAP-PDU値agent-addrのデータタイプは0x40(Wiresharkで見られる)です。正しいです
:あなたはOCTET STRING
のサブタイプが0x40 | 0
あるIMPLICIT APPLICATION 0
タグを持つ参照してください。
タグでIMPLICIT
というタグが付いていると、元のタグが失われているので、OCTET STRING
タイプの残骸は表示されません。
agent-addrのデータ型がIMPLICIT OCTET STRING(SIZE(4))でないのはなぜですか?
実際には!上記の説明があまりあいまいにならないことを願っています。 ;-)
「暗黙的」は、 'agent-addr'が' OCTET STRING'であることを意味しません。 'IpAddress'、' Counter'、 'Gauge'、' TimeTicks'、 'Opaque'はすべて独自のデータ型の値を持っています。 –