Полное описание расширения IPv4 до IPv4r2, тонкая настройка IPv4r2.

Полное описание расширения IPv4 до IPv4r2, тонкая настройка IPv4r2.

Адресация IPv4r2.

-) Многоуровневый режим IPv4r2 адресации.

По отношению к 128 битным адресам IPv6, 128 битный адрес IPv4r2 имеет четырех- уровневую IPv4 иерархию:

a1.b1.c1.d1/a2.b2.c2.d2/a3.b3.c3.d3/a4.b4.c4.d4


Все основные режимы IPv4r2 адресации (77 бит, 80 бит и 72 бита) отображаются на 128 битный адрес четырех- уровневой иерархии IPv4 адресов по десяти- байтовой схеме 4/2/3/1 так:

a1.b1.c1.d1/c2.d2/b3.c3.d3/d4

специальным образом заполняя эти байты (см. описание основной IPv4r2 адресации далее).


А обобщенное IPv4r2 расширение адресации отображается на 128 битный адрес четырех- уровневой иерархии IPv4 адресов иначе:


В асимметричном режиме обобщенном IPv4r2 расширении адресации, поле младший байт адреса (d2 для 6 бит), если не равно нулю, то выравнивается по границе _младшего_ бита, заполняя старшие биты неполно адресуемого младшего байта нулями. Если поле младший байт адреса равно нулю, то оно считается не используемым и не входит в число байт длины адреса (см. ниже сравнение адресов).

-) Сравнение IPv4r2 адресов.

Адреса IPv4r2 в основном и обобщенном режимах IPv4r2 адресации принадлежат одному и тому же основному IPv4r2 адресному пространству. Адреса в этом основном IPv4r2 адресном пространстве имеют длину, выражаемую в целых байтах. При сравнении таких адресов равными могут быть только адреса с равной длиной, независимо от того, как совпадают их битовые поля на участках общей длины для адресов разного размера. Это дополнительно увеличивает адресное пространство IPv4r2, которое независимо для IPv4r2 адреса каждой длины.


Адреса IPv4r2 в режиме дополнительной IPv4r2 адресации сети пользователя образуют отдельное от основного IPv4r2 адресное пространство, которое также имеет длину адреса. Сравнение дополнительного IPv4r2 адреса производится по тем же принципам как и основного, после того, как совпал основной адрес.


Адреса в основных режимах IPv4r2 адресации имеют реальную длину 9 или 10 байт, но отображаются на 16 байтовое (128 битное) четырех- уровневое представление, а в режиме обобщенного расширения адресации, адреса непрерывно отображаются до того уровня, до которого адрес заполняется байтами адреса, дополняя старшие байты IPv4 адреса последнего уровня нулями (в примере 0.0.0.d2). Другими словами, гранулярность (минимальное приращение) длины обобщенного адреса равна четырем байтам, независимо от того сколько байт хранится в поле адреса заголовка. При упаковке обобщенного адреса в IPv4r2 заголовок, три старшие байта последнего уровня могут быть отброшены, если равны нулю.


Поэтому чтобы выразить базовые адреса с помощью обобщенной адресации, размер обобщенного адреса должен быть равен 13 байтам (102 бит), а не 9 или 10 байт. Для основной IPv4r2 адресации нет проблемы вычисления и сравнения длины адреса, это всегда адрес 16 байт (128 бит) длиной в виде 9 или 10 реально используемых байт.


Таким образом, обобщенное расширение адресации позволяет обращаться в пределах 128 бит к глобальным адресам, которые недостижимы с помощью основных режимов адресации, но практического смысла в такой адресации нет, поскольку базовая адресация итак уже очень велика.

-) Асимметричный режим IPv4r2 адресации 77 бит (основной режим IPv4r2 адресации).

Этот 77 битный адрес отображается на 128 битный адрес четырехуровневой иерархии IPv4 адресов:

a1.b1.c1.d1/a2.b2.c2.d2/a3.b3.c3.d3/a4.b4.c4.d4

как

a1.b1.c1.d1/c2.d2/b3.c3.d3/d4


Биты поля <расширения адреса>[45] от старшего бита к младшему биту располагаются по группам:

<d4>[3]<b3>[10]<c3.d3>[16]<c2.d2>[16]


Сеть d4 из 8 адресов рассматривается как


а) корневая IPv4 сеть (первый уровень)

в которой IPv4 адрес a1.b1.c1.d1, 32 бита

выдаются так же, как и сейчас в интернете

эти a1.b1.c1.d1 адреса являются точками входа в деревья IPv4r2 сетей

эти деревья бывают разных типов по своей структуре, например:

a1.b1.c1.1 это региональная IPv4r2 структура (классификация по странам, подобно ru/ua доменным корням)

a1.b1.c1.2 это функциональная IPv4r2 структура (классификация по типу, подобно com/org доменным корням)

и т.д.


Наличие корневой IPv4 сети для адресации IPv4r2 позволяет обычным сетям IPv4 по крайней мере доставлять IPv4r2 пакеты в адрес IPv4 точек входа в сети IPv4r2 адресации, а шлюзы IPv4, которые маршрутизируют пакеты на пути до этих IPv4 точек входа и сами эти IPv4 точки входа уже должны быть подсоединены к сетям IPv4r2 и уметь доставлять пакеты анализируя полный IPv4r2 адрес.


Далее рассмотрим IPv4r2 сеть с региональной структурой.


б) второй уровень

в которой IPv4 адрес c2.d2, 16 бит

формат c2.d2 зависит от структуры этой IPv4r2 сети (от корневой точки входа a1.b1.c1.d1)

для IPv4r2 сети региональной структуры

c2.d2 имеют формат <региональный код>[10]<региональная сеть>[6]

так что что для каждой точки входа a1.b1.c1.d1 предоставляется

1024 региона Земли и 64 региональные сети в каждом таком регионе (64 региональных провайдера)

адреса c2.d2 выдаются владельцем корневой точки входа a1.b1.c1.d1


в) третий уровень

в которой IPv4 адрес a3.b3.c3.d3, 26 бит

в сети IPv4r2 региональной структуры

для каждого регионального провайдера c2.d2

адреса a3.b3.c3.d3 имеют формат <клиент>[26]

это 64 миллиона клиентов регионального провайдера

адреса <клиент> выделяются региональным провайдером c2.d2 своему клиенту


г) четвертый уровень

в которой IPv4 адрес d4, 3 бита

в сети IPv4r2 региональной структуры

адрес d4 имеет формат <сеть пользователя>[3]

для каждой a1.b1.c1.d1 IPv4r2 сети региональной структуры

для каждого регионального провайдера c2.d2,

для каждого клиента регионального провайдера a3.b3.c3.d3,

<сеть пользователя> это d4 сеть клиента с 8 адресами

адреса <сеть пользователя> распределяет сам пользователь на свои ресурсы


Таким образом, полный вид IPv4r2 асимметричного адреса назначения в IPv4r2 сети региональной структуры такой:

a1.b1.c1.d1[32]/c2.d2[16]/a3.b3.c3.d3[26]/d4[3] [всего 77 бит]

даже если занять только несколько адресов a1.b1.c1.d1 в корневой сети IPv4 под точки входа в такие IPv4r2 сети

это уже даст сотни миллиардов глобальных IPv4r2 адресов с асимметричной адресацией

которых хватит на всю солнечную систему даже без модификации IPv4 заголовка

-) Режим расширенной IPv4r2 адресации 80 бит.

Биты поля <расширения адреса>[48] от старшего бита к младшему биту располагаются по группам:

<d4>[6]<b3>[10]<c3.d3>[16]<c2.d2>[16]


Сеть d4 из 64 адресов рассматривается как

Первые 8 хостов из 64 те же что в режиме 77 бит.


В сетях IPv4r2 региональной структуры этот режим отличается от предыдущего 77 битного только тем, что

на четвертом уровне 6 бит вместо 3,

т.е.:

для каждой a1.b1.c1.d1 IPv4r2 сети региональной структуры

для каждого регионального провайдера c2.d2

есть 64 миллиона a3.b3.c3.d3 клиентов

с d4 сетями по 64 адреса


Таким образом, полный вид IPv4r2 асимметричного адреса назначения в IPv4r2 сети региональной структуры такой:

a1.b1.c1.d1[32]/c2.d2[16]/a3.b3.c3.d3[26]/d4[6] [всего 80 бит]

даже если занять только несколько адресов a1.b1.c1.d1 в корневой сети IPv4 под точки входа в такие IPv4r2 сети

это уже даст сотни миллиардов глобальных IPv4r2 адресов с адресацией 80 бит

которых хватит на всю солнечную систему даже без модификации IPv4 заголовка

-) Режим короткой IPv4r2 адресации 72 бита.

Биты поля <расширения адреса>[40] от старшего бита к младшему биту располагаются по группам:

<d4>[2]<b3>[6]<c3.d3>[16]<c2.d2>[16]


Сеть d4 из 4 адресов рассматривается как

Это первые 4 из 8 тех же хостов что и в режиме 77 бит.


В сетях IPv4r2 региональной структуры этот режим отличается от предыдущего 77 битного только тем, что

на третьем уровне 22 бита вместо 26,

а на четвертом уровне 2 бита вместо 3,

т.е.:

для каждой a1.b1.c1.d1 IPv4r2 сети региональной структуры

для каждого регионального провайдера c2.d2

есть 4 миллиона b3.c3.d3 клиентов

с d4 сетями по 4 адреса


Таким образом, полный вид IPv4r2 асимметричного адреса назначения в IPv4r2 сети региональной структуры такой:

a1.b1.c1.d1[32]/c2.d2[16]/b3.c3.d3[22]/d4[2] [всего 72 бит]

даже если занять только несколько адресов a1.b1.c1.d1 в корневой сети IPv4 под точки входа в такие IPv4r2 сети

это уже даст сотни миллиардов глобальных IPv4r2 адресов с адресацией 72 бита

которых хватит на всю солнечную систему даже без модификации IPv4 заголовка

-) Обобщенное IPv4r2 расширение адресации.

В обобщенном IPv4r2 расширении адресации, адреса внутренних уровней (это имеет значение для коротких адресов) раздает владелец корневого адреса (a1.b1.c1.d1).


Адреса, численно совпадающие с основной IPv4r2 адресацией, хотя и достижимы в кодировании обобщенной IPv4r2 адресации, но распределяются в рамках основной IPv4r2 адресации.

-) Дополнительная IPv4r2 адресация пользовательской сети.

Повторим, что это отдельное адресное пространство, распределение адресов в котором осуществляет сам владелец выделенного IPv4r2 адреса для своих ресурсов.


При маршрутизации пакеты в адрес дополнительной сети пользователя передаются на основной IPv4r2 адресат, для которого этот адрес дополнительной сети определен, но в отличие от индекса локального сокета шлюза, расширять можно как адрес назначения, так и оба адресата сразу.


При работе через через шлюз провайдера локальный адрес дополнительной сети пользователя может также подменяться, как и локальный IPv4/IPv4r2 адрес.

Работа IPv4r2 в полном режиме.

-) Подсчет контрольной суммы IPv4r2 заголовка.

Чтобы указать, что подсчет IPv4 контрольной суммы в этом заголовке IPv4r2 не производился, создатель IPv4r2 пакета записывает значение 0xFFFF в поле контрольной суммы этого IPv4r2 заголовка.


Причины возможности резервирования значения 0xFFFF в поле контрольной суммы IPv4r2 заголовка:


Проблемы резервирования значения 0xFFFF:


Старое оборудование, переносящее IPv4 пакеты, становится разделенным на два класса: совместимое с IPv4r2 по интерпретации поля контрольной суммы и несовместимое. Как бороться с несовместимостью?

  1. Маршрутизатор IPv4r2 должен знать, поддерживает ли промежуточный IPv4 адрес, куда он отправляет пакет для IPv4r2 адресата, IPv4r2 отказ от подсчета контрольной суммы IPv4 заголовка.

  2. Модификация модификации рознь. Для исправления программ, обслуживающих оборудование поддерживающее исходный IPv4, с целью внесения совместимости по IPv4r2 интерпретации поля контрольной суммы, изменения будут откровенно косметическими (по сравнению с ситуацией внедрения IPv6), даже "решение в лоб" путем:

    без учета эффективности, равной занесению правильных значений в момент создания IPv4r2 заголовка.


Так вот, изменения для программ с открытым исходным кодом, связанные с использованием резервного значения 0xFFFF в поле контрольной суммы, будут очень простыми, для модификации не потребуется смена ядра, переделка всего стека протоколов и не нужны т.п. глобальные обновления.

-) Формат IPv4r2 заголовка в основном режиме.

В полном режиме IPv4r2 заголовок может задействовать резервный бит флагов IPv4 заголовка, устанавливая этот бит в 1.


Установка в 1 резервного бита флагов IPv4 заголовка указывает на формат IPv4r2 заголовка. Это приводит к следующему:


Установка в 1 резервного бита флагов и поле протокол не равно 0 (MTU 1152):


Асимметричный 45 бит режим базовой IPv4r2 адресации предназначен для работы с IPv4r2 серверами пользователя в сети интернет через шлюз провайдера, поэтому по умолчанию расширяется поле адреса назначения. При отправке обратных пакетов включается флаг 010b, который указывает что расширяется поле источника.


Фактически такой формат IPv4r2 заголовка позволяет использовать IPv4r2 глобальную адресацию не используя опции IPv4 заголовка, т.е. при использовании 77 битной IPv4r2 адресации IPv4r2 заголовки имеют размер 20 байт, как и для 32 битных IPv4 адресов. Если сеть провайдера поддерживает IPv4r2, то этот формат IPv4r2 заголовка является наиболее часто используемым.


Расширение размера IPv4r2 заголовка до 80 байт прибавляет число 20 к размеру заголовка хранящемуся в IPv4r2 поле размер заголовка, т.е.:


Проблемы в использовании резервного бита флагов:

Старое оборудование, переносящее IPv4 пакеты, становится разделенным на два класса: совместимое с IPv4r2 по использованию IPv4 резервного флага и протоколом не равным 0 и несовместимое. Как бороться с несовместимостью?

  1. Маршрутизатор IPv4r2 должен знать поддерживает ли промежуточный IPv4 адрес, куда он отправляет пакет для IPv4r2 адресата, использование IPv4 резервного флага и протокола не равного 0 или нет.

  2. Правильное поведение шлюза IPv4, когда он встречает IPv4r2 пакет с резервным битом в неправильном положении, это отбросить такой IPv4 пакет, поскольку формат IPv4 заголовка для такого взведенного бита, кроме поля версия и резервного бита поля опции, может быть произвольным (в описании IPv4 формат заголовка с таким битом не определен). Но существуют IPv4 реализации (или опции настройки такого поведения), которые полагают, что резервные биты можно безопасно игнорировать, а не отбрасывать пакеты с такими битами в неправильном состоянии.

  3. Модификация модификации рознь. Для исправления программ, обслуживающих оборудование поддерживающее исходный IPv4, с целью внесения совместимости по IPv4r2 интерпретации IPv4 резервного флага поля флагов и протокола не равного 0, изменения будут откровенно косметическими (по сравнению с ситуацией внедрения IPv6), даже "решение в лоб" путем:

-) Обобщенное расширение IPv4r2 заголовка.

Обобщенное расширение размера IPv4r2 заголовка предназначено:


Как и в случае расширение максимального размера IPv4r2 заголовка до 80 байт, это обобщенное расширение не предназначено для замены специальных протоколов опциями IPv4.


Для обобщенного расширения максимального размера IPv4r2 заголовка:

важно отметить, что при этих условиях заголовок IPv4r2 не состоит из двух раздельных заголовков двух разных протоколов, а состоит только из одного заголовка одного протокола IPv4r2, значение 0 в IPv4 поле протокола указывает что для IPv4r2 это вовсе не поле протокола.


Установка в 1 резервного бита флагов и поле протокол не 0 (MTU более 1152):

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| EIHL | EProtocol | ELength |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


В режиме локальной и специальной сети асимметричная IPv4r2 адресация по умолчанию не задействована, IPv4r2 адресация достигается с помощью IPv4r2 адресных опций записанных в IPv4r2 поле опций (после новых статических полей IPv4r2 заголовка). Для локальной IPv4 сети будет достаточно IPv4 адресов IPv4 локальной сети (являющихся адресами корневой IPv4r2 сети).


Старое оборудование, переносящее IPv4 пакеты, становится разделенным на два класса: совместимое с IPv4r2 по использованию IPv4 резервного флага и протокола равного 0 и несовместимое. Как бороться с несовместимостью?

  1. Маршрутизатор IPv4r2 должен знать поддерживает ли промежуточный IPv4 адрес, куда он отправляет пакет для IPv4r2 адресата, использование IPv4 резервного флага или нет.

  2. Модификация модификации рознь. Для исправления программ, обслуживающих оборудование поддерживающее исходный IPv4, с целью внесения совместимости по IPv4r2 интерпретации IPv4 резервного флага поля флагов и протокола равного 0, изменения будут откровенно косметическими (по сравнению с ситуацией внедрения IPv6):

Версии UDPr2/TCPr2 в стеке протоколов IPv4r2.

В стеке протоколов IPv4r2, протоколы UDP/TCP имеют новые версии

-) Адресация портов UDPr2/TCPr2 увеличена с 16 до 32 бит.

Это нужно для поддержки шлюзов и защитных сетевых фильтров, делаем это потому, что все равно надо модифицировать заголовок, чтобы поддержать UDP/TCP размер пакета для локальных сетей до 4 Гбайт.

-) Протокол TCPr2 теперь имеет поле размер пакета.

Поле размер пакета определяет размер пакета адресуемый TCPr2 полем порядковый номер, это потому что UDPr2/TCPr2 не требуют для своей работы какого-либо сетевого протокола (например, IPv4r2).


Обращаясь к локальному серверному порту, UDPr2/TCPr2 могут обращаться к серверу пользователя, который установил канал связи с машиной в локальной сети, т.е. может существовать иной, кроме IPv4r2, программный механизм отображения сетевых компьютеров на локальные порты, так что протоколам UDPr2/TCPr2 нет нужды знать о сетевых адресах и конфигурации сети, если пользователь нужные локальные сетевые ресурсы к локальным портам UDPr2/TCPr2 подключает сам.


Также сетевой протокол IPv4r2 может содержать служебные данные в IPv4r2 пакете, часть из которых не относится к данным UDPr2/TCPr2 или заголовку IPv4r2.


Т.е. для UDPr2/TCPr2 существует единственный уникальный сетевой адрес "локальная машина", которому не нужно присваивать фиктивный сетевой IPv4r2 адрес, это случается, когда сетевой адрес просто не указан.

-) TCPr2 поле размер пакета имеет размер 32 бит.

Это нужно для поддержки локальных сетей. TCPr2 поле размер пакета идет после статических полей заголовка TCP (смещение 24) и записывается четырьмя байтами, размер пакета в байтах, размер TCPr2 пакета вырос до 4 Гбайт.


TCP опция Window scaling запрещена в TCPr2.

-) Протокол TCPr2 теперь имеет поле отметка времени 32 бит.

Это поле записывается четырьмя байтами после поля размер пакета (смещение 28).


Отметку времени проставляет источник TCPr2 сегмента, во время осуществления связи приемник может синхронизировать время источника и оценивать время отправления каждого пришедшего с момента установления связи сегмента.

-) Размер TCPr2 заголовка.


Для поддержки IPv4r2 заголовка в режиме межсетевого взаимодействия размером 80 байт, реализация TCPr2 работающая через IPv4r2 должна уметь ограничивать максимальный размер TCPr2 заголовка 48 байтами (значение 12).

-) UDPr2 поле размер пакета увеличено с 16 до 32 бит.

Это нужно для поддержки локальных сетей, размер дейтаграммы увеличен до 4 Гбайт. Между UDPr2 полями размер пакета и контрольная сумма идут два резервных байта 0.

-) Протокол UDPr2 теперь имеет поле отметка времени 32 бит.

Это поле идет в UDPr2 заголовке последним (смещение 16).


Отметку времени проставляет источник UDPr2 дейтаграммы, приложение принимающее дейтаграммы может синхронизировать время источника и оценивать время отправления каждой прибывшей дейтаграммы.

-) Размер UDPr2 заголовка.

UDPr2 имеет заголовок постоянного размера, этот размер вырос на 12 байт и заголовок UDPr2 равен 20 байтам (минимальный размер UDPr2 дейтаграммы).

-)Контрольная сумма псевдо- заголовка.

Протоколы UDPr2/TCPr2 более не подсчитывают контрольную сумму для псевдо- заголовка, а только для заголовка и блока данных самого пакета UDPr2/TCPr2, попытка UDP/TCP сетей IPv4 включать сетевой адрес в псевдо- заголовок нарушает инкапсуляцию данных по уровням, UDPr2/TCPr2 полностью доверяет сетевую адресацию сетевому уровню, например IPv4r2.

Расширения UDP/TCP в стеке протоколов IPv4r2.

Далее, кроме отличий в заголовках, под "UDP/TCP" подразумеваются оба варианта протоколов UDP/TCP в сетях IPv4r2:

-) Контрольная сумма псевдо- заголовка.

Протоколы UDP/TCP могут не подсчитывать контрольную сумму, помещая в поле контрольной суммы 0xFFFF, это возможно для UDP/TCP, поскольку поле длина пакета или смещение данных как минимум включает ненулевой размер заголовка UDP/TCP.

-) TCP поле Window Size.

Протокол TCP имеет в поле Window Size значение


По истечении таймера перегрузки, если подтверждения не было получено отправляется пробный пакет с размером:


TCP опция Maximum segment size имеет такие же правила 512/1024 для IPv4/IPv4r2 и поддерживает второй, 32 битный формат для локальных сетей:

-) Максимальный размер дейтаграммы UDP для IPv4r2.

UDP работающий локально в стеке IPv4r2 гарантирует, что как минимум 1024 байта самих данных в дейтаграмме может быть всегда принято самим протоколом UDP.


Для доставки UDP дейтаграмм через сеть IPv4r2 в межсетевом режиме IPv4r2, максимум 1024 байта данных в дейтаграмме может быть доставлено, если используются стандартные IPv4r2 (без расширения IPv4r2 заголовка или с расширением IPv4r2 заголовка до 80 байт) и UDP заголовки, иначе пакет не пройдет через IPv4r2 без фрагментации и может быть не доставлен до UDP назначения по причине IPv4r2.

-) Арифметика TCP полей порядковый номер и номер подтверждения.

При переполнении эти поля подчиняются арифметике по модулю 2, а не той арифметике, что для контрольной суммы TCP.


===

Конец текста