应用程序未发送所有 SNMP 陷阱
Application not sending all SNMP Traps
我在Visual Studio中有一个C++应用程序,它在某些条件下将SNMP陷阱发送到远程机器。两台计算机中的防火墙均已禁用。
我使用Windows API SnmpSendMsg发送陷阱。
远程计算机不会收到所有陷阱。例如,如果我的应用程序发送 6 个陷阱,有时远程机器会收到 4 个陷阱,有时会收到 5 个。
我正在使用"iReasoning MIB浏览器"陷阱接收器来接收陷阱。在使用 wireshark 进行调试并在应用程序中添加日志时,我发现我的应用程序使用 SnmpSendMsg 发送 6 个陷阱,每次返回的状态为 1 (SNMPAPI_SUCCESS(。但是,wireshark每次只能捕获4-5个陷阱。
我的假设是,不知何故,窗口没有发送陷阱。
我不确定如何进一步调试此问题。
谢谢
SNMP 使用 UDP 作为传输协议。 UDP 是不可靠的,因为:
- UDP 数据包可能会丢失
- UDP 协议不提供判断数据包是否已丢失或重新发送数据包的机制。
我建议使用SNMP INFORMs(SNMPv2C或SNMPv3(而不是SNMP TRAPs。他们得到了承认。
这是协议调试 101:在发送系统和接收系统上运行 wireshark 以诊断数据包丢失的位置。
相关文章:
- 如何检查 int 变量是否包含合法(非陷阱表示)值?
- SNMP 代理在单元测试期间断开连接
- 使用聚合初始化模拟默认函数参数是否存在任何陷阱?
- 有什么陷阱用 constexpr string_view 替换全局 const char[]?
- 如何确定请求的 OID 是否在具有 net-snmp API 的表中?
- 应用程序未发送所有 SNMP 陷阱
- 在任何地方使用共享指针有哪些陷阱?
- 使用内联静态数据成员有什么潜在的陷阱吗?
- 如何使用 snmp++ 启用/禁用交换机端口
- 在编码 SLL 时中止陷阱 6
- 中止陷阱 - 我的代码有问题
- 继承和嵌套名称的陷阱
- 使用const_cast const-ref getter 实现引用获取器的陷阱
- 陷阱在控制台上出口
- 中止陷阱:C 中的6个错误
- 使用Net SNMP的snmpset的多个值
- 错误:调用terminate引发exceptionAbort陷阱:6
- 在C++的功能性ISA模拟器上实现陷阱(异常/中断)
- 基类没有析构函数,但派生类有析构函数。我是否需要寻找与堆无关的任何陷阱?
- 如何使用C中的Net SNMP发送V2陷阱