1

net-snmp を使用して SNMP エージェントに取り組んでおり、テーブルに保持されているデータの MIB を開発しています。

10 進数約 15 桁の文字列に基づくテーブル キーの使用を検討しています。

これを OCTET STRING インデックスとして実装するのは合理的ですか?

オクテットあたり 2 桁をエンコードしたとしても、長さは約 8 オクテットになります。

OCTET STRING インデックスを使用すると、各オクテットがノードとして OID に追加されます。

これを整数に変換できることはわかっていますが、10 進数には先行ゼロが含まれる可能性があります。

これについて何か意見や提案はありますか?

前もって感謝します。

4

1 に答える 1

3

OCTET STRINGS にゼロを入れることができるので、そうすることができます。OCTET STRINGS にはバイナリ データを含めることができ、単純な数値として OID にエンコードされます。Net-SNMP API は、char * へのポインターだけでなく、返されるデータの長さも受け入れます。これは特に、OCTET STRINGS にヌル値をエンコードすることが完全に合法であるためです。

OID 側では、文字 A、B 0、D で構成される文字列がある場合、通常は次のようにエンコードされます。

何とか何とか4.65.66.0.67

4 は文字列の長さです。OCTET STRING が IMPLICIT としてマークされている場合、4 は除外されます。

10 進数を文字列にエンコードしているため、値は 0x15、0x04、0x42 などに近くなります。これらも問題ありません (バイナリ文字列を作成しています)。

それを行うべきか、それとも文字列に整数自体を配置するだけでよいかは議論の対象ですが、何をしているのか、環境の帯域幅の制約などによって異なります.

于 2013-07-15T13:07:47.850 に答える