【问题标题】:How to recover single lost packet in SNMP?如何在 SNMP 中恢复单个丢失的数据包?
【发布时间】:2015-08-11 08:05:17
【问题描述】:

最近我在面试中被问到一个Q。 如果 SNMP 代理正在向 SNMP 管理器发送“清除警报”,并且“清除警报”在网络中丢失,鉴于 SNMP 使用 UDP,您将如何恢复。 SNMP 管理器如何知道代理发送了“清除警报”,但 SNMP 管理器没有收到? 我无法回答,有人可以澄清一下吗?

【问题讨论】:

  • 你无法知道没有发生的事情。也许 SNMP 协议中有一些东西可以让服务器请求更新,但是对于面试来说它变得非常深奥,除非它是一个 SNMP 职位,在这种情况下,你要么知道答案,要么没有资格申请。
  • 与丢失的密钥不同,您无法恢复丢失的 UDP 数据包 - 因此您不会知道“清除警报”。如果 SNMP 服务器将相同的警报/陷阱作为变量公开,则除了接收陷阱之外,您还必须轮询该变量。
  • 您无法恢复丢失的陷阱消息,但通知消息会(或应该)重新发送,直到接收方发送确认为止。
  • 每次只发送两次明确的消息。
  • 我认为不是编程问题。无论如何,上面的 cmets 是对的(它们应该是答案)。

标签: udp snmp


【解决方案1】:

解释早期的 cmets,选项是

  1. 更强大的通知机制,例如 INFORM(这是应用程序级确认版本)而不是 TRAP。 TCP 而不是 UDP 也是可能的,但不能保证应用程序逻辑实际处理通知。 但是,出于充分的理由,UDP 是 SNMP 的默认设置,如this SO answer中所述。

  2. 看大图(我怀疑面试官想要的!)并说 SNMP 经理应该将有关该警报的通知视为优化(所以它通常 strong> 很快就会收到有关警报变化的警报),但不要仅仅依赖它们。因此,SNMP 管理器还应该定期轮询代理以获取该警报的真实状态,并将其用作该轮询状态作为确定版本,而不管早​​期通知暗示什么。看到这个article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 2019-03-06
    • 1970-01-01
    相关资源
    最近更新 更多