- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) - Сидни Фейт
Шрифт:
Интервал:
Закладка:
20.9.2 Запрос get и ответ на него
На рис. 20.10 показаны запрос get-request и ответ на него (response), полученные в анализаторе Sniffer компании Network General. Запрос содержит список из пяти переменных, значения которых нужно получить. После каждого идентификатора переменной стоит заполнитель NULL. Чтобы создать ответ, агент должен только заполнять пробелы и заменять пустые поля фактическими значениями.
SNMP: Version = 0
SNMP: Community = public
SNMP: Command = Get request
SNMP: Request ID = 112
SNMP: Error status = 0 (No error)
SNMP: Error index = 0
SNMP:
SNMP: Object = {1.3.6.1.2.1.1.3.0} (sysUpTime.0)
SNMP: Value = NULL
SNMP:
SNMP: Object = {1.3.6.1.2.1.5.1.0} (icmpInMsgs.0)
SNMP: Value = NULL
SNMP:
SNMP: Object = {1.3.6.1.2.1.5.2.0} (icmpInErrors.0)
SNMP: Value = NULL
SNMP:
SNMP: Object = {1.3.6.1.2.1.5.3.0} (icmpInDestUnreachs.0)
SMMP: Value = NULL
SNMP:
SNMP: Object = {1.3.6.1.2.1.5.4.0} (icmpInTimeExcds.0)
SNMP: Value = NULL
SNMP: Version = 0
SNMP: Community = public
SNMP: Command = Get response
SNMP: Request ID = 112
SNMP: Error status = 0 (No error)
SNMP: Error index = 0
SNMP:
SNMP: Object = {1.3.6.1.2.1.1.3.0} (sysUpTime.0)
SNMP: Value = 1037388 hundredths of a second SNMP:
SNMP: Object = {1.3.6.1.2.1.5.1.0} (icmpInMsgs.0)
SNMP: Value = 1 messages
SNMP:
SNMP: Object = {1.3.6.1.2.1.5.2.0} (icmpInErrors.0)
SNMP: Value = 0 messages
SNMP:
SNMP: Object = {1.3.6.1.2.1.5.3.0} (icmpInDestUnreachs.0)
SNMP: Value = 0 messages
SNMP:
SNMP: Object = {1.3.6.1.2.1.5.4.0} (icmpInTimeExcds.0)
SNMP: Value = 0 message
Рис. 20. 1. Пример get-request и response
20.9.3 Запрос get-next и ответ на него
Сообщение get-next работает по-другому. Когда отсылается идентификатор объекта, возвращается значение следующего объекта. Например, если послать запрос:
SNMP: Object = {1.3.6.1.2.1.5.1.0} (icmpInMsgs.0)
SNMP: Value = NULL
ответ будет содержать имя и значение для следующей переменной:
SNMP: Object = {1.3.6.1.2.1.5.2.0} (icmpInErrors.0)
SNMP: Value = 0 messages
Такой запрос позволяет просматривать значения MIB или перемещаться на следующую строку таблицы.
20.9.4 Запрос set
Запрос set позволяет записывать информацию в базу данных агента. Формат сообщения очень прост, он выглядит как get-request, но приводит к изменению указанных в запросе переменных. На рис. 20.11 показано отслеживание запроса set.
SNMP: Version = 0
SNMP: Community = xyz
SNMP: Command = Set request
SNMP: Request ID = 0
SNMP: Error status = 0 (No error)
SNMP: Error index = 0
SNMP:
SNMP: Object = {1.3.6.1.2.1.4.1.0} {ipForwarding.0}
SNMP: Value = 2
SNMP: Object = {1.3.6.1.2.1.4.2.0} (ipDefaultTTL.0)
SNMP: Value = 70
Рис. 20.11. Изменение значений MIB запросом set
Успешными должны быть все изменения запроса, иначе будет отклонен весь запрос. Поскольку часто нужно изменять одновременно несколько переменных, либо ни одну из них. Это бескомпромиссное правило для set сохраняется и в версии 2.
Ответ на set выглядит как запрос, за исключением того, что при возникновении проблем заполняются поля статуса ошибки и индекса ошибки.
20.9.5 Сообщения trap
Агент использует сообщения trap для указания диспетчеру на серьезные проблемы.
В стандарте SNMP определено очень немного таких сообщений. Описание trap оставлено в ведении комитетов по технологическим стандартам и разработчиков — с предупреждением о снижении количества таких сообщений. Когда сеть перегружена, нежелательно получать десятки сообщений от каждого из сетевых устройств с указаниями на их проблемы.
Сообщения trap в версии 1 были более сложными, чем следовало бы. Такое положение было исправлено в версии 2. Рассмотрим сначала сообщения trap версии 1. В них имеется общее поле (generic trap), значение которого определяет тип прерывания в соответствии со следующим списком:
соldStart(0) Отправитель проводит переинициализацию, и его конфигурационные параметры могут измениться. warmStart(1) Отправитель проводит переинициализацию, и его конфигурационные параметры не будут изменяться. linkDown(2) Смежная связь нарушена. linkUp(3) Смежная связь восстановлена. autentication Failure(4) Кто-то послал агенту запрос, который не был аутентифицирован (например, в сообщении было использовано неправильное имя сообщества). egpNeighbor Loss(5) Сосед по протоколу Exterior Gateway Protocol выключен. enterprise Specific(6) Другие запросы, определенные комитетом стандартов, разработчиком или иным заинтересованным лицом.На рис. 20.12 показано очень простое сообщение trap, указывающее на выполнение холодного старта (перезапуска с выключением питания. — Прим. пер.).
■ Поле Enterprise указывает, что это сообщение отправлено системой, выполняющей программный продукт FTP для TCP/IP.
■ Поскольку значение общего поля trap равно 0, это сообщение свидетельствует о холодном старте.
■ Поле счетчика времени (time ticks) содержит sysUpTime, которое равно 0, поскольку система только что выполнила инициализацию по холодному старту.
SNMP: Version = 0
SNMP: Comunity = public
SNMP: Command = Trap
SNMP: Enterprise = {1.3.6.1.4.1.121.1.1}
SNMP: Network address = [198.207.177.10]
SNMP: Generic trap = 0 (Cold start)
SNMP: Specific trap = 0
SNMP: Time ticks = 0
Рис. 20.12. Сообщение trap версии 1 протокола SNMP
Любые сообщения trap, определенные комитетом MIB или разработчиком, имеют в общем поле значение 6. В данном случае поле enterprise комбинируется с полем specific trap (специальное прерывание), определяющим смысл сообщения.
Как видим, структура сообщения достаточно сложна. В версии 2 она была проще.
20.9.6 Проблемы версии 1, исправленные в версии 2
Следующие свойства SNMP версии 1 были не слишком удачны:
■ Если одна из переменных в запросе get или get-next была некорректна, то отбрасывалось все сообщение.
■ Если запрашивались значения нескольких переменных и агент не мог разместить ответ в самом большом по размеру сообщении, отбрасывалось все сообщение.
■ Сообщения trap реализовывали простые функции, но имели сложную структуру.
Все эти проблемы были решены в версии 2. Теперь агент может помещать код ошибки в поле значения переменной, которая не может быть обработана. Появился новый запрос get-bulk, требующий от агента возврата максимально возможного объема информации. Сообщения trap стали иметь такой же простой формат, как и все другие сообщения.
В версии 2 расширен список поддерживаемых кодов ошибок, что позволяет диспетчерам лучше проанализировать причину неисправности, когда отклоняется запрос.
20.9.7 Сообщение get-bulk версии 2
Сообщение get-bulk ведет себя подобно get-next. Агент возвратит переменные, чьи идентификаторы объектов следуют за идентификаторами объектов, указанными в запросе. Сообщение get-bulk имеет параметры, указывающие:
■ Количество начальных автономных неповторяющихся (nonrepeater) запрошенных переменных
■ Количество требуемых повторений для оставшихся повторяющихся (repeater) переменных
Например, можно запросить две неповторяющиеся автономные переменные:
sysDescr
sysUpTime
и затем еще десять строк табличных переменных: ifIndex, ifDescr, ifTyре, ifMTU и ifSpeed. В этом случае:
■ В списке будет 7 переменных
■ 2 неповторяющиеся переменные
■ Максимальное число повторений будет равно 10
В ответе будет упаковано столько затребованной информации, сколько возможно. Приложение легко сможет послать еще один запрос get-bulk за данными, не поместившимися в сообщении ответа.
Так как поля статуса ошибки и индекса ошибки не используются в запросах, они задействованы в запросе get-bulk для хранения неповторяющихся параметров и максимального значения повторений. Это означает, что базовый формат не изменился при реализации нового сообщения get-bulk.