22.8. Информация о пакетах IPv6

22.8. Информация о пакетах IPv6

IPv6 позволяет приложению определять до пяти характеристик исходящей дейтаграммы:

? IPv6-адрес отправителя;

? индекс интерфейса для исходящих дейтаграмм;

? предельное количество транзитных узлов для исходящих дейтаграмм;

? адрес следующего транзитного узла;

? класс исходящего трафика.

Эта информация отправляется в виде вспомогательных данных с функцией sendmsg. Для сокета можно задать постоянные параметры, которые будут действовать на все отправляемые пакеты (раздел 27.7).

Для полученного пакета могут быть возвращены четыре аналогичных характеристики. Они возвращаются в виде вспомогательных данных с функцией recvmsg:

? IPv6-адрес получателя;

? индекс интерфейса для входящих дейтаграмм;

? предельное количество транзитных узлов для входящих дейтаграмм.

? класс входящего трафика.

На рис. 22.5 показано содержимое вспомогательных данных, о которых рассказывается далее.

Рис. 22.5. Вспомогательные данные для информации о пакете IPv6

Структура in6_pktinfo содержит либо IPv6-адрес отправителя и индекс интерфейса для исходящей дейтаграммы, либо IPv6-адрес получателя и индекс интерфейса для получаемой дейтаграммы:

struct in6_pktinfo {

 struct in6_addr ipi6_addr; /* IPv6-адрес отправителя/получателя */

 int ipi6_ifindex; /* индекс интерфейса для исходящей/получаемой дейтаграммы */

};

Эта структура определяется в заголовочном файле <netinet/in.h>, подключение которого позволяет ее использовать. В структуре cmsghdr, содержащей вспомогательные данные, элемент cmsg_level будет иметь значение IPPROTO_IPV6, элемент cmsg_type будет равен IPV6_PKTINFO и первый байт данных будет первым байтом структуры in6_pktinfo. В примере, приведенном на рис. 22.5, мы считаем, что между структурой cmsghdr и данными нет заполнения и целое число занимает 4 байта.

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

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

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

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

3.1.1. Основные понятие о пакетах

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

3.1.1. Основные понятие о пакетах Давайте сначала рассмотрим процесс установки программ в Windows. Как правило, дистрибутив Windows-программы состоит та установочного файла (обычно называется setup.exe или install.exe) и нескольких вспомогательных файлов (например, архива, содержащего


8.1.3. Протокол IPv6

Из книги Linux-сервер своими руками автора Колисниченко Денис Николаевич

8.1.3. Протокол IPv6 Думаю, что основной момент настройки понятен, и теперь переходим к протоколу IPv6. Схема 32-разрядной адресации протокола IPv4 привела к дефициту IP-адресов. В новой версии протокола IP (IPv6, ранее именовавшегося IPng — IP next generation) адрес состоит из 16-ти октетов и


22.2 Обзор IPv6

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

22.2 Обзор IPv6 Протокол IPv6 имеет следующие характеристики:? Введен 128-разрядный адрес (16 октетов), который иерархически структурирован для упрощения делегирования прав выделения адресов и маршрутизации.? Упрощен главный заголовок IP, но определены многие необязательные


22.4 Адреса IPv6

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

22.4 Адреса IPv6 Адреса IPv6 имеют длину 16 октетов (128 бит). Для записи адресов используется компактная (хотя и уродливая) нотация. Адреса представлены как 8 шестнадцатеричных чисел, разделенных двоеточиями. Каждое шестнадцатеричное число представляет 16 бит.


22.7 Дополнительные заголовки IPv6

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

22.7 Дополнительные заголовки IPv6 Использование дополнительных заголовков (extension header) — это прогрессивная идея, позволяющая последовательно добавлять в IP версии 6 новые функциональные возможности.Напомним, что в заголовке IP версии 4 поле протокола служит для идентификации


22.8.3 Адреса интерфейсов IPv6

Из книги Linux Mint и его Cinnamon. Очерки применителя автора Федорчук Алексей Викторович

22.8.3 Адреса интерфейсов IPv6 Каждый интерфейс версии 6 имеет список соответствующих ему адресов. Как минимум, список содержит уникальный адрес локальной связи (link local address), имеющий формат: 1111111010 (10 бит) 00…00 Уникальный адрес технологии связи Каждому узлу необходим способ


22.10 Переход на IPv6

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

22.10 Переход на IPv6 IP широко распространен во всем мире. Однако нельзя требовать, что бы все одновременно перешли на версию 6. Этот переход должен быть постепенным:? Узлы версии 6 должны взаимодействовать с узлами версии 4.? От организаций нельзя требовать отказа от их


C.4 Идентификаторы регистрации IPv6

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

C.4 Идентификаторы регистрации IPv6 Internet Assigned Numbers Authority (IANA) координирует использование адресов IPv6. Текущие идентификаторы регистрации для адресов провайдеров IPv6: Региональная регистрация Идентификатор регистрации Мультирегиональный (IANA) 10000 RIPE


17.5.3. Адресация IPv6

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

17.5.3. Адресация IPv6 В IPv6 используется тот же самый кортеж (локальный хост, локальный порт, удаленный хост, удаленный порт), что и в IPv4, и одни и те же номера портов (16-битные значения).IPv6-адреса локального и удаленного хостов являются 128-битными (16-байтовыми) числами вместо


7.8. Параметры сокетов IPv6

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

7.8. Параметры сокетов IPv6 Эти параметры сокетов обрабатываются IPv6 и имеют аргумент level, равный IPPROTO_IPV6. Мы отложим обсуждение пяти параметров сокетов многоадресной передачи до раздела 21.6. Отметим, что многие из этих параметров используют вспомогательные данные с функцией


27.4. Заголовки расширения IPv6

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

27.4. Заголовки расширения IPv6 Мы не показываем никаких параметров в заголовке IPv6 на рис. А.2 (который всегда имеет длину 40 байт), но следом за этим заголовком могут идти заголовки расширения[7] (extension headers).1. Параметры для транзитных узлов (hop-by-hop options) должны следовать


27.7. «Закрепленные» параметры IPv6

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

27.7. «Закрепленные» параметры IPv6 Мы рассмотрели использование вспомогательных данных с функциями sendmsg и recvmsg для отправки и получения следующих семи различных типов объектов вспомогательных данных:1. Информация о пакете IPv6: структура in6_pktinfo, содержащая адрес получателя и


А.3. Заголовок IPv6

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

А.3. Заголовок IPv6 На рис. А.2 показан формат заголовка IPv6 (RFC 2460 [27]). Рис. А.2. Формат заголовка IPv6? Значение 4-разрядного поля номера версии (version) равно 6. Данное поле занимает первые 4 бита первого байта заголовка (так же как и в версии IPv4, см. рис. А.1), поэтому если получающий стек


А.5. Адресация IPv6

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

А.5. Адресация IPv6 Адреса IPv6 содержат 128 бит и обычно записываются как восемь 16-разрядных шестнадцатеричных чисел. Старшие биты 128-разрядного адреса обозначают тип адреса (RFC 3513 [44]). В табл. А.4 приведены различные значения старших битов и соответствующие им типы


Б.4. Переход на IPv6: 6to4

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

Б.4. Переход на IPv6: 6to4 Механизм перехода 6to4 (6на4) полностью описан в документе «Соединение доменов IPv6 через облака IPv4» (RFC 3056 [17]). Это метод динамического создания туннелей, подобных изображенному на рис. Б.2. В отличие от предыдущих механизмов динамического создания


Информация о пакетах

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

Информация о пакетах Пакетный менеджмент начинается с поиска нужного пакета, для чего предназначена внутренняя команда search, требующая аргумента в виде ключевого слова. Поиск по ключевому слову осуществляется в именах пакетов и их кратких описаниях (т.н. резюме).