2016-12-01 12 views
2

ФоновыеВ чем разница между SNMP GetBulk и ПОЛУЧИТЬ операции

Я пытаюсь создать проект на веб-сайте SNMP для получения информации о сетевых устройствах. Я использовал библиотеку SNMP, созданную LeXtudio - sharpsnmp.

Проблема

Я создал два метода, используя один GetBulk и один с Get. Оба берут список OID. Обе работы работают без проблем. Единственная проблема, с которой я столкнулся, - это очень далеко на сетевом устройстве. Для каждого из них требуется ровно одно и то же время. прямо в 2 минуты. Я чувствую, что это очень долгое время ожидания. Хотя на закрытых устройствах это очень быстро и менее 5 секунд.

Вопрос

Я задаюсь ли GetBulk не просит всю информацию сразу, а затем возвращается со всей информацией. Или он запрашивает каждый из OID в списке по одному за раз. То же самое, что и Get?

Есть ли способ сделать один звонок, чтобы получить всю необходимую информацию с помощью одного вызова на устройство или только для того, чтобы я мог совершать повторные вызовы на устройство?

Есть ли у меня другие параметры?

+0

Узнайте, что такое SNMP, https://en.m.wikipedia.org/wiki/Simple_Network_Management_Protocol Протокол определяет, что такое GET и GET BULK. –

ответ

1

Обычно вы должны использовать запрос GET, если имеете дело со скалярными идентификаторами OID или точными экземплярами табличных объектов.

В противном случае вы должны использовать GETNEXT или даже GETBULK, если агент поддерживает SNMPv2C.

Как правило, вы должны использовать GETNEXT для получения выбранных столбцов таблицы или всей таблицы. В этом случае вам потребуется рекурсивно выполнить запрос GET-NEXT до тех пор, пока результаты не выйдут из области ветвления дерева.

Если агент включен SNMPv2C, вы должны использовать GETBULK. Это оптимизация запроса GETNEXT. Поэтому в основном вам не нужно выполнять несколько запросов GET-NEXT для получения нескольких экземпляров. Вместо этого вы можете просто отправить один запрос GETBULK и установить параметр Max-Repetitions в 10, и вы получите следующие 10 последовательных переменных, начиная с OID, указанного в запросе.