Задание и получение предельного количества транзитных узлов

Задание и получение предельного количества транзитных узлов

Предельное количество транзитных узлов обычно задается параметром сокета IPV6_UNICAST_HOPS для дейтаграмм направленной передачи (см. раздел 7.8) или параметром сокета IPV6_MULTICAST_HOPS для дейтаграмм многоадресной передачи (см. раздел 21.6). Задавая предельное количество транзитных узлов в составе вспомогательных данных, мы можем заменить как значение этого предела, задаваемое ядром по умолчанию, так и ранее заданное значение — и для направленной, и для многоадресной передачи, но только для одной операции вывода. Предел количества транзитных узлов полученного пакета используется в таких программах, как traceroute, и в некоторых приложениях IPv6, которым нужно проверять, что полученное значение равно 255 (то есть что пакет не пересылался маршрутизаторами).

Полученное предельное количество транзитных узлов возвращается в виде вспомогательных данных функцией recvmsg, только если приложение включает параметр сокета IPV6_RECVHOPLIMIT. В структуре cmsghdr, содержащей эти вспомогательные данные, элемент cmsg_level будет иметь значение IPPROTO_IPV6, элемент cmsg_type — значение IPV6_HOPLIMIT, а первый байт данных будет первым байтом целочисленного предела повторных передач. Мы показали это на рис. 22.5. Нужно понимать, что значение, возвращаемое в качестве вспомогательных данных, — это действительное значение из полученной дейтаграммы, в то время как значение, возвращаемое функцией getsockopt с параметром IPV6_UNICAST_HOPS, является значением по умолчанию, которое ядро будет использовать для исходящих дейтаграмм на сокете.

Чтобы задать предельное количество транзитных узлов для исходящих пакетов, никаких специальных действий не требуется — нам нужно только указать управляющую информацию в виде вспомогательных данных для функции sendmsg. Обычные значения для предельного количества транзитных узлов лежат в диапазоне от 0 до 255 включительно, но если целочисленное значение равно -1, это указывает ядру, что следует использовать значение по умолчанию.

ПРИМЕЧАНИЕ

Предельное количество транзитных узлов не содержится в структуре in6_pktinfo — некоторые серверы UDP хотят отвечать на запросы клиентов, посылая ответы на том же интерфейсе, на котором был получен запрос, с совпадением IPv6-адреса отправителя ответа и IPv6-адреса получателя запроса. Для этого приложение может включить параметр сокета IPV6_RECVPKTINFO, а затем использовать полученную управляющую информацию из функции recvmsg в качестве управляющей информации для функции sendmsg при отправке ответа. Приложению вообще никак не нужно проверять или изменять структуру in6_pktinfo. Но если в этой структуре содержался бы предел количества транзитных узлов, приложение должно было бы проанализировать полученную управляющую информацию и изменить значение этого предела, поскольку полученный предел не является желательным значением для исходящего пакета.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

1.3.3.5. Изменение количества рабочих столов

Из книги Fedora 8 Руководство пользователя автора Колисниченко Денис Николаевич

1.3.3.5. Изменение количества рабочих столов Щелкните правой кнопкой мыши на переключателе рабочих столов и выберите в раскрывшемся контекстном меню команду Параметры, Раскроется окно, в котором вы сможете установить количество рабочих столов и параметры их переключателя


Определение количества процессоров в системе

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Определение количества процессоров в системе Фактически, на количество процессоров, установленных в системе, указывает маска родства системы; чтобы его определить, вам достаточно подсчитать количество ненулевых битов в маске. Вместе с тем, гораздо проще вызвать функцию


1.2. Определение количества информации. Единицы измерения количества информации

Из книги Информатика: аппаратные средства персонального компьютера автора Яшин Владимир Николаевич

1.2. Определение количества информации. Единицы измерения количества информации Как уже отмечалось, понятие информации можно рассматривать при различных ограничениях, накладываемых на ее свойства, т. е. при различных уровнях рассмотрения. В основном выделяют три уровня


Получение и задание размеров и местоположения элемента Web-страницы

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

Получение и задание размеров и местоположения элемента Web-страницы Добравшись до нужного элемента Web-страницы, мы можем начать работать с ним, например, получить и задать его размеры и местоположение с помощью описанных в этом разделе методов объекта Element.Методы getWidth и


Получение и задание значений атрибутов тега

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Получение и задание значений атрибутов тега Часто приходится получать и задавать значения атрибутов тега, с помощью которого создан элемент Web-страницы. Для этого Ext Core предоставляет два удобных метода и одно свойство объекта Element.Метод getAttribute возвращает значение


Получение и задание значений атрибутов стиля

Из книги Интернет – легко и просто! автора Александров Егор

Получение и задание значений атрибутов стиля Получение или задание значений атрибута стиля, примененного к какому-либо элементу Web-страницы, выполняется тоже весьма часто. В этом случае нам при- годятся несколько методов объекта Element, описанных далее.Метод getStyle


Получение и задание размеров и местоположения элемента Web-страницы

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Получение и задание размеров и местоположения элемента Web-страницы Добравшись до нужного элемента Web-страницы, мы можем начать работать с ним, например, получить и задать его размеры и местоположение с помощью описанных в этом разделе методов объекта Element.Методы getWidth и


Получение и задание значений атрибутов тега

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Получение и задание значений атрибутов тега Часто приходится получать и задавать значения атрибутов тега, с помощью которого создан элемент Web-страницы. Для этого Ext Core предоставляет два удобных метода и одно свойство объекта Element.Метод getAttribute возвращает значение


Получение и задание значений атрибутов стиля

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Получение и задание значений атрибутов стиля Получение или задание значений атрибута стиля, примененного к какому-либо элементу Web-страницы, выполняется тоже весьма часто. В этом случае нам пригодятся несколько методов объекта Element, описанных далее.Метод getStyle возвращает


Увеличение количества ключевых слов

Из книги Разработка ядра Linux автора Лав Роберт

Увеличение количества ключевых слов Одно или два слова при поиске используют в основном начинающие пользователи. Видавшие виды пользователи Интернета включают в запрос в среднем пять или шесть ключевых слов, чтобы уменьшить количество ненужной информации и сделать


11.1. Подсчет количества элементов в контейнере

Из книги автора

11.1. Подсчет количества элементов в контейнере ПроблемаТребуется найти количество элементов в контейнере.РешениеПодсчитать количество элементов в контейнере можно при помощи функции-члена size или функции distance, определенной в заголовочном файле <algorithm>, как это


11.2.2. Определение количества повторений

Из книги автора

11.2.2. Определение количества повторений Указав в команде uniq опцию -c, можно не только отбросить повторяющиеся строки, но и узнать, сколько раз повторяется каждая строка. В следующем примере команда uniq сообщает о том, что первая строка "May Day" встречается три раза подряд:$ uniq -с


29.4.4. Счетчик количества посещений

Из книги автора

29.4.4. Счетчик количества посещений Создадим документ, в котором отображается счетчик количества посещений. Счетчик будет выдавать сообщение типа "you are the nth visitor to this site" ("вы являетесь n–м посетителем этого сайта"). Можно также отображать дату последнего изменения


Задание и получение класса трафика

Из книги автора

Задание и получение класса трафика Объект вспомогательных данных IPV6_TCLASS задает класс трафика для дейтаграммы. Элемент cmsg_level структуры cmsghdr, содержащей эти данные, будет равен IPPROTO_IPV6, элемент cmsg_type будет равен IPV6_TCLASS, а первый байт данных будет первым байтом


27.5. Параметры транзитных узлов и параметры получателя IPv6

Из книги автора

27.5. Параметры транзитных узлов и параметры получателя IPv6 Параметры для транзитных узлов и параметры получателя IPv6 имеют одинаковый формат, показанный на рис. 27.3. Восьмиразрядное поле следующий заголовок (next header) идентифицирует следующий заголовок, который следует за


Уменьшение количества выводимых сообщений

Из книги автора

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