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

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

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

1. Информация о пакете IPv6: структура in6_pktinfo, содержащая адрес получателя и индекс интерфейса для исходящих дейтаграмм либо адрес отправителя и индекс интерфейса для приходящих дейтаграмм (индекс принимающего интерфейса) (см. рис. 22.5).

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

3. Адрес следующего транзитного узла (см. рис. 22.5).

4. Класс исходящего или входящего трафика (см. рис. 22.5).

5. Параметры транзитных узлов (см. рис. 27.6).

6. Параметры получателя (см. рис. 27.6).

7. Заголовок маршрутизации (см. рис. 27.8).

В табл. 14.4 приведены значения полей cmsg_level и cmsg_type для этих объектов, а также значения для других объектов вспомогательных данных.

Вместо того чтобы отсылать эти параметры при каждом вызове функции sendmsg, мы можем установить соответствующие параметры сокета. Параметры сокета используют те же константы, что и вспомогательные данные, то есть уровень параметра всегда должен иметь значение IPPROTO_IPV6, а название параметра может быть IPV6_DSTOPTS, IPV6_HOPLIMIT, IPV6_HOPOPTS, IPV6_NEXTHOP, IPV6_PKTINFO, IPV6_RTHDR или IPV6_TCLASS. Закрепленные параметры могут быть заменены для конкретного пакета в случае сокета UDP или символьного сокета IPv6, если при вызове функции sendmsg задать какие-либо другие параметры в качестве объектов вспомогательных данных. Если при вызове функции sendmsg указаны какие-либо вспомогательные данные, ни один из закрепленных параметров не будет послан с этим пакетом.

Концепция закрепленных параметров также может быть использована и в случае TCP, поскольку вспомогательные данные никогда не отсылаются и не принимаются с помощью функций sendmsg или recvmsg на сокете TCP. Вместо этого приложение TCP может установить соответствующий параметр сокета и указать любой из упомянутых в начале этого раздела семи объектов вспомогательных данных. Тогда эти параметры будут относиться ко всем пакетам, отсылаемым с данного сокета. Поведение при повторной передаче пакетов, первоначально переданных до изменения закрепленных параметров, не определено: могут использоваться как старые, так и новые значения параметров.

Не существует способа получить параметры, принятые в IP-пакете по TCP, потому что в этом протоколе отсутствует соответствие между пакетами и операциями чтения из сокета, выполняемыми пользователем.

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

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

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

8.1.3. Протокол IPv6

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

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


Закрепленные объявления

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Закрепленные объявления Правило повторного объявления типов способно свести на нет целый ряд преимуществ наследования. Почему это происходит и каково решение данной


Когда не используются закрепленные объявления

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

Когда не используются закрепленные объявления Не всякое объявление вида x: A в классе A следует менять на x: like Current и не в каждой паре компонентов одного типа следует один из них делать опорным, а другой - закрепленным.Закрепленное объявление - это своего рода обязательство


22.2 Обзор IPv6

Из книги Сетевые средства Linux автора Смит Родерик В.

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


22.4 Адреса IPv6

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

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


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

Из книги VBA для чайников автора Каммингс Стив

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


22.10 Переход на IPv6

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

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


Опции поддержки IPv6

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

Опции поддержки IPv6 Работа Internet обеспечивается за счет протоколов семейства TCP/IP, в частности, для передачи пакетов используется протокол IP (IPv4). К сожалению, на сегодняшний день уже невозможно игнорировать тот факт, что версия IPv4 устарела. Для представления IP-адреса в IPv4


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

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

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


Закрепленные и свободно перемещаемые окна

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

Закрепленные и свободно перемещаемые окна Подобно панелям инструментов, большинство окон редактора Visual Basic бывают закрепленными, т.е. вы можете привязать их к любой из четырех сторон рабочей области главного окна, где их не перекрывают другие окна. Ясно, что закрепление


10.2. Идентификаторы пользователей и групп, закрепленные за процессами

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

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


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

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

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


11.9. Функция getaddrinfo: IPv6

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

11.9. Функция getaddrinfo: IPv6 Стандарт POSIX определяет как getaddrinfo, так и возвращаемые этой функцией данные для протоколов IPv4 и IPv6. Отметим следующие моменты, прежде чем свести возвращаемые значения воедино в табл. 11.3.? Входные данные функции getaddrinfo могут относиться к двум различным


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

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

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


А.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 приведены различные значения старших битов и соответствующие им типы