【问题标题】:Query on snmp trap size查询 snmp 陷阱大小
【发布时间】:2014-07-10 05:36:30
【问题描述】:

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

unsigned char buffer[65536 - 60 - 8];

但这些数字告诉我 IP 数据包的头、尾和总长度。

你能解释一下,为什么我们需要这么大的缓冲区来处理 snmp 陷阱?

【问题讨论】:

  • 您是否使用任何框架来处理 SNMP 请求,例如 net-snmp?如果有,是哪一个?
  • 当你问“我们为什么需要它”时,我会问反问“你怎么知道你需要它?”澄清你是如何计算出这个数字的可以帮助其他人理解你的问题。

标签: udp ip snmp snmp-trap


【解决方案1】:

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有关,当然,如果报文在分片后重新组装得当,接收更大的trap也是没有问题的。

也许,如果你问“为什么我的代码中是数字 65536”,你应该问写它的人?

【讨论】:

  • 当我测试代码时,我能够收到 12000 字节的陷阱。所以这意味着ip片段并重新组装并转发到udp然后snmp层。那么,您认为陷阱大小应该如此重要吗?我的意思是,snmp 是否谈论对陷阱大小的限制?
  • 感谢您的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 1970-01-01
相关资源
最近更新 更多