8. Serialization using the Basic Encoding Rules (基本符号化規則を使用したシリアル化)
8. Serialization using the Basic Encoding Rules (基本符号化規則を使用したシリアル化)
SNMP エンティティが SNMP メッセージをシリアル化する場合, 以下の制限を伴う ASN.1 の基本符号化規則 (Basic Encoding Rules, BER) [BER] を使用します:
-
長さフィールドを符号化する場合, 定長形式のみが使用されます。不定長形式の使用は禁止されています。
-
INTEGER 型の値を符号化する場合, 値が -2^31 から 2^31-1 (両端を含む) の範囲にあるという制限が適用されます。
-
Counter32 型, Counter64 型, または Gauge32 型の値を符号化する場合, 非負の値のみが使用されます。値は INTEGER として符号化されますが, 項目 2 の制限は適用されません。
-
TimeTicks 型の値を符号化する場合, 値が 0 から 2^32-1 (両端を含む) の範囲にあるという制限が適用されます。
-
OCTET STRING を符号化する場合, 値はプリミティブ定長メソッドを使用して符号化されます。
BER は, 受け入れる符号化に関して非常に寛容です。たとえば, 長さフィールドをデコードする場合, 定長形式と不定長形式の両方が受け入れられます。プロトコルの単純さと実装の容易さのため, すべての SNMP 実装は値を符号化する際に上記の項目 1 から 5 で定義された制限に従わなければなりません。これにより, すべての受信者が値をデコードできることが保証されます。
ただし, 値をデコードする場合, SNMP 実装は上記の制限に準拠していない値を受け入れるべきです。非準拠の符号化の場合, SNMP 実装は可能な限り値を解釈し, メッセージの処理を続行する必要があります。