查询snmp陷阱大小

时间:2014-05-21 14:02:34

标签: udp ip snmp snmp-trap

在我们的应用程序中,缓冲区被分配用于接收snmp陷阱,即:

unsigned char buffer[65536 - 60 - 8];

但这些数字告诉我有关IP包头,页脚和总长度的信息。

请你解释一下,为什么我们需要这个大小的缓冲区用于snmp陷阱?

1 个答案:

答案 0 :(得分:3)

SNMP允许PDU大小达到网络的MTU。缓冲区应该与最大的预期数据包一样大,因此如果可能的话,它可能应该与MTU相对应。 例如,以太网允许最多1500字节的帧有效载荷。

编辑:好的,这是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",你应该问写它的人吗?