17.5.3. Адресация IPv6
17.5.3. Адресация IPv6
В IPv6 используется тот же самый кортеж (локальный хост, локальный порт, удаленный хост, удаленный порт), что и в IPv4, и одни и те же номера портов (16-битные значения).
IPv6-адреса локального и удаленного хостов являются 128-битными (16-байтовыми) числами вместо 32-битных чисел, которые использовались в IPv4. Применение таких больших адресов обеспечивает протоколы достаточным количеством адресов для будущего развития (можно без проблем предоставить уникальный адрес каждому атому в Млечном Пути). На первый взгляд, это может показаться избыточной тратой ресурсов. Однако сетевые архитектуры имеют склонность небрежно относиться к адресам и растрачивать огромное их число впустую, поэтому разработчики версии IPv6 предпочли перейти к 128-битным адресам сейчас, чем переживать о возможной необходимости изменять адреса в будущем.
Аналогом десятичного представления с разделителями-точками, которое используется в IPv4, для версии IPv6 является представление с разделителями-двоеточиями. Как подсказывает название, двоеточия отделяют каждую пару байтов в адресе (вместо точки, которая отделяет каждый отдельный байт). Из-за большой длины IPv6-адреса записываются в шестнадцатеричной (а не в десятичной) форме, что помогает уменьшить их длину. Ниже показано несколько примеров того, как выглядит IPv6-адрес в представлении с разделителями-двоеточиями[132].
1080:0:0:0:8:800:200С:417А
FF01:0:0:0:0:0:0:43
0:0:0:0:0:0:0:1
В связи с тем, что такие адреса являются слишком громоздкими и часто содержат приличное количество нулей, допускается сокращение. Все нули можно просто выбросить из записи адреса, а группы более чем из двух последовательных двоеточий заменить только одной парой двоеточий. Применение этих правил к записанным выше адресам дает следующий результат.
1080::8:800:200C:417A
FF01::43
::1
Если рассмотреть самый крайний случай, то адрес 0:0:0:0:0:0:0:0 превращается просто в выражение ::[133].
Последний метод записи IPv6-адресов заключается в том, что последние 32 бита представляются с разделительными точками, а первые 96 битов — с разделительными двоеточиями. При этом адрес обратной связи IPv6 ::1 будет записан либо как ::0.0.0.1, либо как 0:0:0:0:0:0:0.0.0.1.
IPv6 определяет любой адрес с 96 начальными нулями (за исключением адреса обратной связи и неустановленного адреса) как совместимый IPv4-адрес, который позволяет сетевым маршрутизаторам передавать через сети IPv6 пакеты, предназначенные для IPv4-хостов. Сокращение двоеточий позволяет легко записать IPv4-адрес как IPv6-адрес путем добавления :: перед стандартным десятичным адресом с точками. Такой тип адресов называется IPv4-совместимым IPv6-адресом. Такая адресация применяется только маршрутизаторами; обычные программы не могут воспользоваться ее преимуществами.
Программы, работающие на машинах IPv6 и требующие обращения к машинам IPv4, могут использовать отображенные IPv4-адреса. Они дополняют IPv4-адрес 80-ю нулевыми старшими разрядами и 16-битным значением 0xffff, которое записывается как ::ffff:, а за ним следует десятичный IPv4-адрес с точками. Подобная адресация позволяет большинству программ в системе, поддерживающей только версию IPv6, явно общаться с узлами IPv4.
IPv6-адреса хранятся в переменных типа struct sockaddr_in6.
#include <sys/socket.h>
#include <netinet/in.h>
struct sockaddr_in6 {
short int sin6_family; /* AF_INET6 */
unsigned short int sin6_port; /* номер порта */
unsigned int sin6_flowinfo; /* информация о потоке обмена IPv6 */
struct in6_addr sin6_addr; /* IP-адрес */
unsigned int sin6_scope_id; /* набор граничных интерфейсов */
}
Данная структура подобна struct sockaddr_in; здесь первый член сохраняет семейство адресов (в этом примере AF_INET6), а следующий — 16-битный номер порта в сетевом порядке байтов.
Четвертый член содержит двоичное представление IPv6-адреса, выполняя те же самые функции, что и последний член структуры struct sockaddr_in. Оставшиеся два элемента sin6_flowinfo и sin6_scope_id используются в более сложных задачах и для большинства приложений должны быть равны нулю.
Стандарты ограничивают struct sockaddr_in в точности тремя членами, тогда как struct sockaddr_in6 позволительно иметь дополнительные элементы. По этой причине программы, которые вручную заполняют struct sockaddr_in6, должны обнулить все данные структуры с помощью функции memset().
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
17.5.2. Адресация IPv4
17.5.2. Адресация IPv4 Соединения IPv4 представляют собой кортеж из 4-х элементов (локальный хост, локальный порт, удаленный хост, удаленный порт). До установки соединения необходимо определить каждую его часть. Элементы локальный хост и удаленный хост являются IPv4-адресами.
Адресация на базе возможностей
Адресация на базе возможностей Системный указатель может также содержать сведения о типе операций, которые выполнимы над объектом. Обычно, такая информация называется полномочиями (authority). Указатель, содержащий адрес объекта и полномочия, называется возможностью
Адресация
Адресация Каждый IP-адрес можно представить состоящим из двух частей: адреса (или идентификатора) сети и адреса хоста в этой сети. Существует пять возможных форматов IP-адреса, отличающихся по числу бит, которые отводятся на адрес сети и адрес хоста. Эти форматы определяют
А.3. Заголовок IPv6
А.3. Заголовок IPv6 На рис. А.2 показан формат заголовка IPv6 (RFC 2460 [27]). Рис. А.2. Формат заголовка IPv6? Значение 4-разрядного поля номера версии (version) равно 6. Данное поле занимает первые 4 бита первого байта заголовка (так же как и в версии IPv4, см. рис. А.1), поэтому если получающий стек
А.4. Адресация IPv4
А.4. Адресация IPv4 Адреса IPv4 состоят из 32 разрядов и обычно записываются в виде последовательности из четырех чисел в десятичной форме, разделенных точками. Такая запись называется точечно-десятичной. Первое из четырех чисел определяет тип адреса (табл. А.1). Исторически
А.5. Адресация IPv6
А.5. Адресация IPv6 Адреса IPv6 содержат 128 бит и обычно записываются как восемь 16-разрядных шестнадцатеричных чисел. Старшие биты 128-разрядного адреса обозначают тип адреса (RFC 3513 [44]). В табл. А.4 приведены различные значения старших битов и соответствующие им типы
3.6.1. Адресация в Linux
3.6.1. Адресация в Linux Основным для Linux является ставший стандартом для Интернета протокол TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол Интернета), который уже установлен, и достаточно его только настроить. Если вы еще не встречались с этим
8.1.3. Протокол IPv6
8.1.3. Протокол IPv6 Думаю, что основной момент настройки понятен, и теперь переходим к протоколу IPv6. Схема 32-разрядной адресации протокола IPv4 привела к дефициту IP-адресов. В новой версии протокола IP (IPv6, ранее именовавшегося IPng — IP next generation) адрес состоит из 16-ти октетов и
Глава 5 Именование и адресация
Глава 5 Именование и адресация 5.1 Введение Каждый сетевой узел должен иметь имя и адрес. Каким образом производится их присваивание? Для небольшой независимой локальной сети это не проблема, но если количество компьютеров составляет сотни или тысячи, выбор хорошей схемы
22.2 Обзор IPv6
22.2 Обзор IPv6 Протокол IPv6 имеет следующие характеристики:? Введен 128-разрядный адрес (16 октетов), который иерархически структурирован для упрощения делегирования прав выделения адресов и маршрутизации.? Упрощен главный заголовок IP, но определены многие необязательные
22.4 Адреса IPv6
22.4 Адреса IPv6 Адреса IPv6 имеют длину 16 октетов (128 бит). Для записи адресов используется компактная (хотя и уродливая) нотация. Адреса представлены как 8 шестнадцатеричных чисел, разделенных двоеточиями. Каждое шестнадцатеричное число представляет 16 бит.
22.4.4 Адресация провайдеров
22.4.4 Адресация провайдеров В настоящее время для адресов провайдеров предложена простая иерархическая структура: 3 бита n бит m бит o бит 125-n-m-o бит 010 Идентификатор регистратора Идентификатор провайдера Идентификатор подписчика Идентификатор
22.10 Переход на IPv6
22.10 Переход на IPv6 IP широко распространен во всем мире. Однако нельзя требовать, что бы все одновременно перешли на версию 6. Этот переход должен быть постепенным:? Узлы версии 6 должны взаимодействовать с узлами версии 4.? От организаций нельзя требовать отказа от их
6.1.3. Протокол TCP/IP и IP-адресация
6.1.3. Протокол TCP/IP и IP-адресация Любому компьютеру в IP-сети (TCP/IP-сети) назначен уникальный адрес, который называется IP-адресом. IP-адрес — это 32-разрядное двоичное число, которое принято записывать в виде четырех десятичных чисел, разделенных точками, например, 111.111.213.232 или
Адресация в Интернете
Адресация в Интернете Каждый компьютер имеет в Интернете свой уникальный адрес. Это четырехбайтовое слово, которое выглядит примерно так: 175,240,14,37. Людям работать с такими «цифровыми» адресами не очень-то удобно, поэтому для использования «в быту» они по особой схеме,
Геометрия и адресация
Геометрия и адресация Внутри диска обычно находится целый пакет пластин, расположенных одна над другой, поэтому дорожки можно представить как цилиндр (Cylinder – C). Поверхность каждой стороны каждой пластины обслуживает отдельная головка (Head – H). Любой диск можно условно