1

このアプリケーションでは、snmp トラップを受信するためにバッファが割り当てられます。これは次のとおりです。

unsigned char buffer[65536 - 60 - 8];

しかし、これらの数値は、IP パケットのヘッダー、フッター、および全長について教えてくれます。

snmp トラップにこのサイズのバッファが必要な理由を教えてください。

4

1 に答える 1

3

SNMP は、ネットワークの MTU までのサイズの PDU を許可します。バッファーは、予想される最大のパケットと同じ大きさにする必要があるため、可能であれば、おそらく MTU に対応する必要があります。たとえば、イーサネットでは最大 1500 バイトのフレーム ペイロードが許可されます。

編集: OK、RFC 3416 の正式な定義は次のとおりです。

The maximum size of an SNMP message is limited to the minimum of:

(1)   the maximum message size which the destination SNMP entity can
     accept; and,

(2)   the maximum message size which the source SNMP entity can
     generate.

これはネットワークの MTU が関係していると解釈しましたが、もちろん、断片化後にパケットが適切に再構成されていれば、さらに大きなトラップを受信して​​も問題ありません。

たぶん、「なぜ私のコードに 65536 という数字があるのか​​」と尋ねているなら、それを書いた人に尋ねるべきでしょうか?

于 2014-05-21T14:52:25.563 に答える