2017-07-28 12 views
1
  • RFC 1155 - セクション3.2.1、 7:4つのASN.1プリミティブタイプ INTEGER,OCTETSTRING,OBJECT IDENTIFIERおよびNULL
  • RFC 1155 - セクション6、p。 18:IpAdrressIMPLICIT OCTET STRING (SIZE (4))です。
  • RFC 1155 - セクション6、p。 18:NetworkAddressIpAddressです。
  • RFC 1157 - セクション4.1.6、p。 26:agent-addr0x04としてOCTET STRINGIpAddress

ASN.1のBERであるNetworkAddress表しています。 TRAP-PDU値agent-addrのデータタイプは0x40(Wiresharkで見られる)です。RFC 1155、RFC 1157およびASN.1について混乱しています

agent-addrのデータタイプがIMPLICIT OCTET STRING (SIZE (4))でないのはなぜですか?

+0

「暗黙的」は、 'agent-addr'が' OCTET STRING'であることを意味しません。 'IpAddress'、' Counter'、 'Gauge'、' TimeTicks'、 'Opaque'はすべて独自のデータ型の値を持っています。 –

答えて

3

四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つに変わる可能性があります。設計者は、おそらくより多くの異なるネットワークアドレスを将来的にサポートする予定だったので、IpAddressNetworkAddressコンテナで囲みました。

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))でないのはなぜですか?

実際には!上記の説明があまりあいまいにならないことを願っています。 ;-)

関連する問題