Книга: UNIX: разработка сетевых приложений
Адрес отправителя и адрес получателя IPv6
Адрес отправителя и адрес получателя IPv6
IPv6-адрес отправителя обычно определяется при помощи функции bind
. Но если адрес отправителя поставляется вместе с данными, это может снизить непроизводительные затраты. Этот параметр также позволяет серверу гарантировать, что адрес отправителя ответа совпадает с адресом получателя клиентского запроса — некоторым клиентам требуется такое условие, которое сложно выполнить в случае IPv4 (см. упражнение 22.4).
Когда IPv6-адрес отправителя задан в качестве вспомогательных данных и элемент ipi6_addr
структуры in6_pktinfo
имеет значение IN6ADDR_ANY_INIT
, возможны следующие сценарии: если адрес в настоящий момент связан с сокетом, он используется в качестве адреса отправителя; если в настоящий момент никакой адрес не связан с сокетом, ядро выбирает адрес отправителя. Если же элемент ipi6_addr
не является неопределенным адресом, но сокет уже связался с адресом отправителя, то значением элемента ipi6_addr
перекрывается уже связанный адрес, но только для данной операции вывода. Затем ядро проверяет, действительно ли запрашиваемый адрес отправителя является адресом направленной передачи, присвоенным узлу.
Когда структура in6_pktinfo
возвращается в качестве вспомогательных данных функцией recvmsg
, элемент ipi6_addr
содержит IPv6-адрес получателя из полученного пакета. По сути, это аналог параметра сокета IP_RECVDSTADDR
для IPv4.
- Адрес локальной связи
- Глава 2 Обнаружение адреса
- Короткий адрес
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- 22.4.9 Несколькоадресные рассылки
- Для работы в сети мне надо указывать какой-то IP-адрес. Где это сделать?
- У некоторых сайтов адрес начинается с www. Что это обозначает?
- Я нашел интересный сайт, но со сложным адресом. Как его запомнить?
- Мне требуется информация с сайта, который я посещал позавчера, но я не помню его адрес. Есть ли способ его узнать?
- При запуске программы появляется сообщение Инструкция по адресу 0х77ddb1d1 обратилась к памяти по адресу 0x0080002c. Пам...
- Подставной адрес
- 3.6.1. Адресация в Linux