我在visual studio中有一个C ++应用程序,它在某些条件下将SNMP陷阱发送到远程计算机。两台计算机都禁用了防火墙。
我使用了Windows API SnmpSendMsg来发送陷阱。
远程计算机未收到所有陷阱。例如,如果我的应用程序发送了6个陷阱,有时远程机器会收到4个陷阱,有时会收到5个陷阱。
我正在使用" iReasoning MIB Browser"陷阱接收器接收陷阱。在使用wireshark进行调试并在我的应用程序中添加日志时,我发现我的应用程序使用SnmpSendMsg发送了6个陷阱,每次返回的状态为1(SNMPAPI_SUCCESS)。但是,wireshark每次只捕获4-5个陷阱。
我的假设是,不知何故窗户没有发送陷阱。
我不确定如何进一步调试此问题。
由于
答案 0 :(得分:0)
SNMP使用UDP作为传输协议。 从以下意义上讲,UDP是不可靠的:
我建议使用SNMP INFORM(SNMPv2C或SNMPv3)而不是SNMP TRAP。他们是公认的。
答案 1 :(得分:0)
这是协议调试101:在发送系统和接收系统上运行wireshark,以诊断数据包丢失的位置。