Приложение не отправляет все ловушки SNMP

У меня есть приложение C ++ в Visual Studio, которое при определенных условиях отправляет SNMP-ловушки на удаленную машину. На обеих машинах отключен брандмауэр.

Я использовал Windows API SnmpSendMsg для отправки ловушек.

Удаленный компьютер не получает все ловушки. Например, если мое приложение отправляет 6 ловушек, иногда удаленная машина получает 4 ловушки, иногда 5.

Я использую приемник прерываний «iReasoning MIB Browser». При отладке с использованием wireshark и добавлении журналов в мое приложение я обнаружил, что мое приложение отправляет 6 ловушек с использованием SnmpSendMsg, и каждый раз возвращается состояние 1 (SNMPAPI_SUCCESS). Но Wireshark захватывает только 4-5 ловушек каждый раз.

Мое предположение, почему-то окна не отправляет ловушки.

Я не уверен, как дальше отлаживать эту проблему.

Спасибо

-1

Решение

SNMP использует UDP в качестве транспортного протокола.
UDP ненадежен в том смысле, что:

  • UDP-пакеты могут быть потеряны
  • Протокол UDP не предоставляет механизма, позволяющего определить, были ли потеряны пакеты, или отправить их повторно.

Я бы предложил использовать SNMP INFORM (SNMPv2C или SNMPv3) вместо SNMP TRAP. Они признаны.

0

Другие решения

Это отладка протокола 101: запустите wireshark в отправляющей системе и принимающей системе, чтобы определить, где потеряны пакеты.

0

По вопросам рекламы [email protected]