Структура адреса сокета IPv6

Структура адреса сокета IPv6

Структура адреса сокета IPv6 задается при помощи включения заголовочного файла <netinet/in.h>, как показано в листинге 3.3.

Листинг 3.3. Структура адреса сокета IPv6: sockaddr_in6

struct in6_addr {

 uint8_t s6_addr[16]; /* 128-разрядный адрес IPv6 */

                      /* сетевой порядок байтов */

};

#define SIN6_LEN /* требуется для проверки во время компиляции */

struct sockaddr_in6 {

 uint8_t sin_len;           /* длина этой структуры (24) */

 sa_family_t sin6_family;   /* AF_INET6 */

 in_port_t sin6_port;       /* номер порта транспортного уровня */

                            /* сетевой порядок байтов */

 uint32_t sin6_flowinfo;    /* приоритет и метка потока */

                            /* сетевой порядок байтов */

 struct in6_addr sin6_addr; /* IPv6-адрес */

                            /* сетевой порядок байтов */

 uint32_t sin6_scope_id;    /* набор интерфейсов */

};

ПРИМЕЧАНИЕ

Расширения API сокетов для IPv6 описаны в RFC 3493 [36].

Отметим следующие моменты относительно листинга 3.3:

? Константа SIN6_LEN должна быть задана, если система поддерживает поле длины для структур адреса сокета.

? Семейством IPv6 является AF_INET6, в то время как семейство IPv4 — AF_INET.

? Элементы в структуре упорядочены таким образом, что если структура sockaddr_in6 выровнена по 64 битам, то так же выровнен и 128-разрядный элемент sin6_addr. На некоторых 64-разрядных процессорах доступ к данным с 64-разрядными значениями оптимизирован, если данные выровнены так, что их адрес кратен 64.

? Элемент sin6_flowinfo разделен на три поля:

 ? 20 бит младшего порядка — это метка потока;

 ? следующие 12 бит зарезервированы.

Поле метки потока и поле приоритета рассматриваются в описании рис. А.2. Отметим, что использование поля приоритета еще не определено.

? Элемент sin6_scope_id определяет контекст, в котором действует контекстный адрес (scoped address). Чаще всего это бывает индекс интерфейса для локальных адресов (см. раздел А.5).

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

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

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

Структура адреса страницы Google с результатами поиска

Из книги Интернет. Новые возможности. Трюки и эффекты [litres] автора Баловсяк Надежда Васильевна

Структура адреса страницы Google с результатами поиска Информация о структуре адреса страницы с результатами поиска позволит вам лучше разобраться в принципах использования поисковых машин.Вот пример характерного адреса: http://www.google.com/search?num=55&hl=en&q=piter. Он состоит из


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.8.3 Адреса интерфейсов IPv6

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

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


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

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

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


Структура адреса сокета IPv4

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

Структура адреса сокета IPv4 Структура адреса сокета IPv4, обычно называемая структурой адреса сокета Интернета, именуется sockaddr_in и определяется в заголовочном файле <netinet/in.h>. В листинге 3.1[1] представлено определение POSIX.Листинг 3.1. Структура адреса сокета Интернета (IPv4):


Новая универсальная структура адреса сокета

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

Новая универсальная структура адреса сокета Новая универсальная структура адреса сокета была определена как часть API сокетов IPv6 с целью преодолеть некоторые недостатки существующей структуры sockaddr. В отличие от структуры sockaddr, новая структура sockaddr_storage достаточно


12.4. Макроопределения проверки адреса IPv6

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

12.4. Макроопределения проверки адреса IPv6 Существует небольшой класс приложений IPv6, которые должны знать, с каким собеседником они взаимодействуют (IPv4 или IPv6). Эти приложения должны знать, является ли адрес собеседника адресом IPv4, преобразованным к виду IPv6. Определены


15.2. Структура адреса доменного сокета Unix

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

15.2. Структура адреса доменного сокета Unix В листинге 15.1[1] показана структура адреса доменного сокета Unix, задаваемая включением заголовочного файла <sys/un.h>.Листинг 15.1. Структура адреса доменного сокета Unix: sockaddr_unstruct sockaddr_un { uint8_t     sun_len; sa_family_t sun_family;    /* AF_LOCAL


18.2. Структура адреса сокета канального уровня

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

18.2. Структура адреса сокета канального уровня Структуры адреса сокета канального уровня будут встречаться нам как значения, содержащиеся в некоторых сообщениях, возвращаемых на маршрутизирующем сокете. В листинге 18.1[1] показано определение структуры, задаваемой в


Адреса многоадресной передачи IPv6

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

Адреса многоадресной передачи IPv6 Старший байт адреса многоадресной передачи IPv6 имеет значение ff. На рис. 21.1 показано сопоставление 16-байтового адреса многоадресной передачи IPv6 6-байтовому адресу Ethernet. Младшие 32 бита группового адреса копируются в младшие 32 бита адреса


Особенности символьного сокета версии IPv6

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

Особенности символьного сокета версии IPv6 Для символьного сокета IPv6 существуют несколько отличий (RFC 3542 [114]).? Все поля в заголовках протоколов, отсылаемых или получаемых на символьном сокете IPv6, должны находиться в сетевом порядке байтов.? В IPv6 не существует параметров,


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

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

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


Адреса IPv4, преобразованные к виду IPv6

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

Адреса IPv4, преобразованные к виду IPv6 Адреса IPv4, преобразованные к виду IPv6 (IPv4-mapped IPv6 addresses), позволяют приложениям, запущенным на узлах, поддерживающих как IPv4, так и IPv6, связываться с узлами, поддерживающими только IPv4, в процессе перехода сети Интернет на версию протокола IPv6.


Адреса IPv6, совместимые с IPv4

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

Адреса IPv6, совместимые с IPv4 Для перехода от версии IPv4 к IPv6 планировалось также использовать адреса IPv6, совместимые с IPv4 (IPv4-compatible IPv6 addresses). Администратор узла, поддерживающего как IPv4, так и IPv6, и не имеющего соседнего IPv6-маршрутизатора, должен создать DNS запись типа AAAA,