Протоколы межсетевого взаимодействия семейства IP

Протокол IP находится на межсетевом уровне стека протоколов TCP/IP и обеспечивает передачу блоков данных, называемых пакетами, от отправителя к получателям, где отправители и получатели являются компьютерами, идентифицируемыми адресами фиксированной длины (IP-адресами). Протокол IP обеспечивает при необходимости также фрагментацию и сборку пакетов для передачи данных через сети блоками малого размера.

Протокол IP является ненадежным протоколом без установления соединения. Это означает, что протокол IP не подтверждает доставку данных, не контролирует целостность полученных данных и не производит операцию квитирования (от англ. handshaking) – обмена служебными сообщениями, подтверждающими установку соединения с узлом назначения и его готовность к приему данных. Протокол IP обрабатывает каждый пакет как независимую единицу, не имеющую связи ни с какими другими пакетами в сети. После того как пакет отправляется в сеть, его дальнейшая судьба никак не контролируется отправителем (на уровне протокола IP). Если пакет не может быть доставлен, он уничтожается. Узел, уничтоживший пакет, может отправить по обратному адресу ICMP-сообщение о причине сбоя.

Гарантию правильной передачи данных предоставляют протоколы вышестоящего уровня (например, протокол TCP), которые имеют для этого необходимые механизмы [6].

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

Общий сценарий работы модуля IP на каком-либо узле сети, принимающего пакет из сети, таков:

1) с одного из интерфейсов уровня доступа к среде передачи (например, с Ethernet-интерфейса) в модуль IP поступает пакет;

2) модуль IP анализирует заголовок пакета;

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

4) если пакет не направлен ни на один из IP-адресов данного узла, то дальнейшие действия зависят от того, разрешена или запрещена ретрансляция (от англ. forwarding) «чужих» пакетов;

5) если ретрансляция разрешена, то определяется следующий узел сети, на который должен быть переправлен пакет для доставки его по назначению, и интерфейс нижнего уровня, после чего пакет передается на нижний уровень этому интерфейсу для отправки (при необходимости может быть произведена фрагментация пакета);

6) если же пакет ошибочен или по каким-либо причинам не может быть доставлен, он уничтожается; при этом, как правило, отправителю пакета отсылается ICMP-сообщение об ошибке.

При получении данных от вышестоящего уровня для отправки их по сети IP-модуль формирует пакет с этими данными, в заголовок которого заносятся адреса отправителя и получателя и другая информация, после чего выполняются следующие шаги:

1. Если пакет предназначен этому же узлу, из него извлекаются данные и направляются на обработку одному из протоколов транспортного уровня (какому именно, указывается в заголовке пакета).

2. Если пакет направлен на IP-адрес некоторого узла, то определяется интерфейс нижнего уровня, после чего пакет передается на нижний уровень этому интерфейсу для отправки (при необходимости может быть произведена фрагментация пакета).

3. Если же пакет ошибочен или по каким-либо причинам не может быть доставлен, он уничтожается [7].

Здесь и далее узлом сети называется компьютер, подключенный к сети и поддерживающий протокол IP. Узел сети может иметь один и более IP-интерфейсов, подключенных к одной или разным сетям, каждый из которых идентифицируется уникальным IP-адресом.

IP-сетью называется множество компьютеров (IP-интерфейсов), часто (но не всегда) подсоединенных к одному физическому каналу связи и способных пересылать IP-пакеты друг другу непосредственно (то есть без ретрансляции через промежуточные компьютеры), при этом IP-адреса интерфейсов одной IP-сети имеют общую часть, которая называется адресом (или номером) IP-сети, и специфическую для каждого интерфейса часть, называемую адресом (или номером), данного интерфейса в данной IP-сети (в настоящем пособии речь идет об IP-сетях, поэтому приставку «IP» будем, как правило, опускать).

Маршрутизатором, или шлюзом, называется узел сети с несколькими IP-интерфейсами, подключенными к разным IP-сетям, который осуществляется на основе решения задачи маршрутизации (перенаправление пакетов из одной сети в другую для доставки от отправителя к получателю).

Хостами называются узлы IP-сети, не являющиеся маршрутизаторами. Обычно хост имеет один IP-интерфейс (например, связанный с сетевой картой Ethernet или с модемом), хотя может иметь и несколько [13].

Маршрутизаторы представляют собой либо специализированные вычислительные машины, либо компьютеры с несколькими IP-интерфейсами, работа которых управляется специальным программным обеспечением. Компьютеры конечных пользователей, различные серверы Интернет (вне зависимости от своей вычислительной мощности) являются хостами.

На сегодняшний день протокол IP имеет 2 реализации – классическую и инновационную. Классическим является IP-протокол 4 версии (IPv4), которым пользуются в сетях уже очень долгое время. Из-за ряда ограничений было принято решение о его усовершенствовании, и в начале 90-х годов прошлого века ученые начали работу по решению проблемы перехода на новый протокол межсетевого взаимодействия. В 1992 году были опубликованы несколько документов о создании «интернет-протокола следующего поколения» (IPng). К 1996 году были выпущены первые серии стандартов cо свободными определениями Интернет протокола 6 версии IPv6 (протокол IPv5 не был преемником IPv4, это был экспериментальный протокол, ориентированный на передачу потокового видео и аудио). Ожидается, что IPv4, наряду с IPv6, будет широко использоваться в обозримом будущем. Узлы, поддерживающие только IPv4, не смогут напрямую «общаться» с IPv6 узлами, но связь будет возможна через специальных «посредников» (в данном параграфе мы рассматриваем особенности функционирования обоих протоколов) [27].

2.2.1 Протокол IPv4

IPv4-пакет состоит из заголовка и поля данных. Заголовок пакета состоит из 32-х-разрядных слов и имеет переменную длину, зависящую от размера поля Параметры, но всегда кратную 32 битам. За заголовком непосредственно следуют данные, передаваемые в пакете. На рис. 2.7 представлена структура пакета IPv4 [33].

Поле Номер версии (Version) занимает 4 бита и идентифицирует версию протокола IP. Значение поля равно 4 (IPv4).

4 бита Номер версии 4 бита Длина заголовка 8 бит Тип сервиса 16 бит Общая длина
PR D T R  
16 бит Идентификатор пакета 3 бита Флаги 13 бит Смещение фрагмента
  D M
8 бит Время жизни 8 бит Протокол верхнего уровня 16 бит Контрольная сумма
32 бита IP-адрес источника
32 бита IP-адрес назначения
Параметры и выравнивание
до 64 килобайт ПОЛЕ ДАННЫХ
                         

Рис. 2.7 – Структура IPv4-пакета

Значение Длина заголовка (Header Length) обозначает длину отдельно взятогоIP-заголовка, которая может варьироваться вследствие того, что IP-заголовок обеспечивает поддержку дополнительных возможностей, которые не всегда используются. Значение поля выражается в числах, кратных четырем байтам. Предположим, что фактический десятичный код этого поля равен пяти. Анализаторы умножают это значение на 4 байта и получают точную длину IP-заголовка, равную 20 байтам. Обычно длина IP-заголовка действительно составляет 20 байт, но при добавлении некоторой служебной информации это значение может быть увеличено за счет дополнительных байтов в поле Параметры. Наибольшая дли­на заголовка составляет 60 байт.

Поле Тип сервиса (Type of Service, ToS) имеет и другое, более современное на­звание – байт дифференцированного обслуживания, или DS-байт. Данное поле содержит биты поля, называемого Предшествование (Precedence), которое служит одной цели – хранению признаков, отражающих требования к качеству обслуживания пакета. Первые три бита содержат значение приоритета пакета: от самого низкого (0) до самого вы­сокого (7). Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать более важные пакеты в первую очередь. Следую­щие три бита поля ToS определяют критерий выбора маршрута. Если бит D (Delay – задержка) установлен в 1, то маршрут должен выбираться с учетом миними­зации задержки доставки данного пакета; установленный бит Т (Throughput – пропускная способность) – максимизации пропускной способности, а бит R (Reliability – надежность) – максимизации надежности доставки. Остав­шиеся два бита имеют нулевое значение.

Поле Общая длина (Total Length) занимает 2 байта и характеризует общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байт, однако в большинстве компьютеров и сетей столь большие пакеты не используются. При передаче по сетям различного типа длина пакета выбирается с учетом макси­мальной длины пакета протокола нижнего уровня, несущего IP-пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной длиной 1500 байт, уме­щающиеся в поле данных кадра Ethernet. В стандартах TCP/IP предусматрива­ется, что все хосты должны быть готовы принимать пакеты до 576 байт длиной (независимо от того, приходят ли они целиком или фрагментами).

Идентификатор пакета (Identification) занимает 2 байта и используется для распознавания паке­тов, образовавшихся путем деления на части (фрагментации) исходного пакета. Все части (фрагменты) одного пакета должны иметь одинаковое значение этого поля.

Флаги (Flags) занимают 3 бита и содержат признаки, связанные с фрагментацией. Уста­новленный в 1 бит DF (Do not Fragment Bit – не фрагментировать) запрещает мар­шрутизатору фрагментировать данный пакет (0 – фрагментация разрешена), а установленный в 1 бит MF (More Fragments Bits – дальнейшие фрагменты) указывает на то, что данный пакет является про­межуточным (не последним) фрагментом и ожидаются дальнейшие фрагменты (0 – последний фрагмент). Оставшийся бит зарезервирован.

Поле Смещение фрагмента (Fragment Offset) используется, если пакет является фрагментом. В нем указывается, в какую позицию следует поместить содержащиеся в нем данные, когда все фрагменты будут повторно объединяться в общий пакет. Смещение должно быть кратно 8 байтам.

Поле Время жизни(Time To Live, TTL) занимает один байт и используется для задания предельного срока, в течение которого пакет может перемещаться по сети. Время жизни пакета измеряется в секундах и задается источником. По истечении каждой секунды пребывания на каждом из маршрутизаторов, через которые проходит пакет во время своего «путешествия» по сети, из его текущего времени жизни вычитается единица (единица вычитается и в том случае, если время пребывания было меньше секунды). Поскольку современные маршрутиза­торы редко обрабатывают пакет дольше, чем за одну секунду, то время жизни можно интерпретировать как максимальное число транзитных узлов, которые разрешено пройти пакету. Если значение поля времени жизни становится нуле­вым до того, как пакет достигает получателя, пакет уничтожается. Следовательно, время жизни является своего рода часовым механизмом самоуничтожения пакета.

Поле Протокол верхнего уровня (Protocol) занимает один байт и содержит идентифика­тор, указывающий, какому протоколу верхнего уровня принадлежит информа­ция, размещенная в поле данных пакета. Например, 6 означает, что в пакете находится сообщение TCP, 17 – со­общение UDP, 1 – сообщение ICMP.

Контрольная сумма заголовка (Header Checksum) занимает 2 байта (16 бит) и рассчитывается толь­ко по заголовку. Поскольку некоторые поля заголовка меняют свое значение в процессе передачи пакета по сети (например, поле времени жизни), контрольная сумма проверяется и повторно рассчитывается на каждом маршрутизаторе и ко­нечном узле. При вы­числении контрольной суммы значение самого поля контрольной суммы уста­навливается в ноль. Если контрольная сумма неверна, то пакет отбрасывается, как только обнаруживается ошибка.

Поля IP-адреc источника (Source Address) и приемника (Destination Address) имеют одинаковую длину – 32 бита.

Поле Параметры (Option) является необязательным и используется обычно только при отладке сети. Это поле состоит из нескольких подполей одного из восьми пред­определенных типов. В этих подполях можно указывать точный маршрут, реги­стрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности или временные отметки.

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

Ниже приведена распечатка значений полей заголовка одного из реальных IP-пакетов, захваченных в сети Ethernet средствами анализатора протоколов сете­вого монитора Microsoft Network Monitor 3.1. Строки пронумерованы для удобства. В данной распечатке сетевой монитор в скобках дает шестнадцатеричные значения полей (рядом в квадратных скобках мы указали их русский перевод):

1. IP: Version = 4 (0x4) [номер версии];

2: IP: Header Length = 20 (0x14) [длина заголовка];

3. IP: Service Type – 0 (0x0) [тип сервиса];

4. IP: Precedence = Routine [PR – приоритет низкий];

5. IP:... 0.... = Normal Delay [D – минимизации задержки нет];

6. IP:... 0... = Normal Throughput [T – максимизации пропускной способности нет];
7. IP: … 0.. = Normal Reliability [R – максимизации надежной доставки нет];

8. IP: Total Length – 54 (0x36) [общая длина];

9. IP: Identification = 31746 (0x7C02) [идентификатор пакетов];

10. IP: Flags Summary = 2 (0x2) [флаги];

11. IP: 0 = Last fragment in datagram [M – последний фрагмент];

12. IP: 1 = Cannot fragment datagram [D – фрагментация запрещена];

13. IP: Fragment Offset = 0 (0x0) bytes [смещение фрагмента];

14. IP: Time to Live = 128 (0x80) [время жизни];

15. IP: Protocol = 6 [протокол верхнего уровня – TCP];

16. IP: Checksum = 0xEB86 [контрольная сумма];

17. IP: Source Address = 194.85 135.75 [адрес источника];

18. IP: Destination Address = 194.85.135.66 [адрес назначения];

19. IP: Data: Number of data bytes remaining = 34 (0x0022) [параметры].

Важной чертой протокола IP, отличающей его от других сетевых прото­колов (например, от сетевого протокола IPX), является его способность выпол­нять динамическую фрагментацию пакетов при передаче их между сетями с раз­личными, максимально допустимыми значениями длины поля данных кадров. Данная функция протокола IP во многом способствует масштаби­руемости технологии TCP/IP.

Практически во всех стеках протоколов есть протоколы, кото­рые отвечают за деление (фрагментацию) сообщений прикладного уровня на та­кие части, которые укладывались бы в кадры канального уровня. Для этого они анализируют тип технологии нижнего уровня и определяют ее MTU (Maximum Transmission Unit – максимальная единица передачи). В стеке TCP/IP эту задачу решает протокол TCP, который разбивает поток бай­тов, передаваемый ему с прикладного уровня, на сегменты нужного размера (на­пример, на 1460 байт, если на нижнем уровне данной сети работает протокол семейства Ethernet). Поэтому протокол IP в узле-отправителе, как правило, не использует свои возможности по фрагментации пакетов. А вот на маршрутизаторе, когда пакет необходимо передать из сети с большим в сеть с меньшим значением MTU, способности протокола IP выполнять фрагментацию становятся востребованными.

2.2.2 Протокол IPv6

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

Протокол IPv6 выполняет ряд усовершенствованных функций.

Большое адресное пространство. Главной причиной, по которой нужно вносить изменения в используемую версию протокола IP, является большее адресное пространство: адреса в IPv6 имеют длину 128 бит (против 32 бит в IPv4). Большее адресное пространство позволяет избежать потенциальной проблемы исчерпания адресного пространства протокола IPv4.

Автоконфигурация узлов. Узел IPv6 может быть конфигурирован автоматически при подключении к сети с IPv6 -маршрутизацией с помощью протокола обмена сообщениями ICMPv6. При первом подключении узел посылает запрос на получение своих конфигурационных параметров (router solicitation), и, если это возможно, маршрутизатор отправляет пакет с настройками сетевого уровня для данного узла (router advertisement). Если IPv6 неприменима по каким-либо причинам, хост может быть конфигурирован вручную.

Суперграммы (Jumbograms). В IPv4 размер пакетов ограничен 64 килобайтами полезной нагрузки. В IPv6 появилась возможность обходить это ограничение за счет применения так называемых суперграмм, которые позволяют использовать пакеты размером до 4 мегабайт. Употребление такого пакета в локальной сети или в обычном канале Интернет представляется нецелесообразным, а на магистралях и в других сетевых каналах большой емкости передача меньшего количества пакетов большего объема является преимуществом.

Сетевая безопасность. Протокол для защиты IP-сети IPSec (Internet Protocol Security), реализующий слой шифрования и аутентификации, является неотъемлемой частью базового протокола в IPv6, в отличие от IPv4, где он считался дополнительным.

Качество обслуживания (Quality of Service, QoS). В основе данного нововведения лежит идея дифференцирования служб, которая заключается в необходимости обеспечения возможности выбора и оплаты уровня обслуживания, отличного от принятого по умолчанию. Среди возможных вариантов – гарантированная доставка, срочная доставка, временное выделение значительной пропускной способности, минимальные издержки на доставку (возможно, ценой скорости доставки) и многие другие параметры, которые могут иметь приоритетное значение для конкретных пользователей в зависимости от определенного времени и места их нахождения. В протоколе IPv4 система QoS частично реализована, тем не менее широкого распространения она не получила.

Мобильные пользователи. Мобильность была частично решена в протоколе IPv4, но широкого распространения не получила, так как ноутбуки, карманные компьютеры и мобильные телефоны стали повсеместно использоваться не так давно; однако с развитием беспроводных технологий не могла не быть усовершенствованной в новом протоколе IPv6, в стандартах которого различают мобильность двух типов: обычную мобильность и микромобильность. Как правило, микромобильность связывается с канальным уровнем (беспроводное соединение). Здесь уместно провести аналогию с сотовой связью: в обоих случаях рассматриваются пути осуществления возможности перемещения мобильного устройства между беспроводными точками доступа без разрыва соединения. Проект находится в совместной разработке с компаниями–разработчиками беспроводных сетевых технологий Wi-Fi и Wi-MAX, которым прогнозируют в будущем полностью вытеснить с рынка сотовую связь и стать фундаментом для IP-телефонии, набирающей в последнее время обороты. Другой вид мобильности находит применение в несколько более крупном масштабе, когда, к примеру, пользователю необходимо войти в сеть в Москве и обменяться информацией с клиентом в Нью-Йорке так, как будто он находится в собственной сети в Токио, и в этом случае ему не требуется отсылать все сообщения через полмира. Решения и стандарты поддержки мобильных пользователей до сих пор находятся в стадии разработки [32].

Считается, что все эти нововведения станут залогом длительного использования протокола IPv6 в качестве основного для межсетевого взаимодействия, прежде всего, в сети Интернет.

Пакеты протокола IPv6 состоят из заголовка постоянного формата, дополнительных заголовков расширений, а также полезной нагрузки (данных). Все эти элементы инкапсулированы в кадре канального уровня.

IPv6-заголовок разработан с расчетом на уменьшение времени обработки в пункте назначения и на промежуточных маршрутизаторах. Для IPv6-заголовка не характерна переменная длина – она всегда составля­ет 40 байт. Формат IPv6-заголовка отличается от структуры заголовка IPv4-пакета уменьшением количества полей (некоторые убраны за ненадобностью, добавлены новые, некоторые модифицированы и изменены названия). Структура пакета IPv6 представлена на рис. 2.8. [33]

4 бита Версия 8 бит Класс 20 бит Поток
16 бит Общая длина 8 бит Следующий заголовок 8 бит Лимит транзитов
128 бит Адрес источника
128 бит Адрес назначения
ЗАГОЛОВКИ РАСШИРЕНИЙ
До 4 Мегабайт ПОЛЕ ДАННЫХ
         

Рисунок 2.8 – Структура IPv6–пакета

В поле Версия (Version) указывается, что данный заголовок от­носится к протоколу IPv6; значение этого 4-х-битного поля – 6.

Новое поле Класс (Class) обеспечивает поддержку назначения приоритетов трафика. Первый бит поля D указывает на то, что трафик чувствителен к задерж­кам. Если он приравнен к единице, значит, трафик зависим от временных характеристик. К примеру, обмены интерактивными данными, равно как передачи аудио- и видеоинформации, требуют установления соединений с низкой задержкой. Следовательно, в пакетах, в которых содержатся полез­ные нагрузки этих типов, первый бит поля Class обычно приравнивается к единице. Поле Предшествование (Precedence) аналогично соответствующему полю IPv4-заголовка и позволяет приложению дифференцировать типы трафика исходя из их приоритетов. Соответственно, маршрутизаторы могут обращаться к битам предшествования для определения приоритетов трафика во время обработки и организации очередей. Последние четыре бита поля Class в данный момент являются зарезервирован­ными.

Поле Поток (Flow) управляет группой пакетов, которые по требованию источника долж­ны особым образом обрабатываться промежуточными маршрутизаторами. Поле обычно не используется: по умолчанию оно забивается 20 нулями.

Поле Длина полезной нагрузки (Payload Length) содержит информацию об объеме данных, следующих за IPv6-заголовком (сам заголовок не в счет). Длина поля Payload Length составляет 2 байта.

В по­ле Следующий заголовок (Next Header), длина которого составляет 1 байт, указывается последующий заголовок расширения, транспортный или какой-либо другой протокол (табл. 2.3). Многие из представленных в таблице значений характерны также для IPv4-пакета (в скобках отмечены значения только для пакета IPv6).

Таблица 2.3 – Значения поля Next Header

Значение Тип заголовка
  Межтранзитные опции (IPv6)
  Протокол контроля сообщений в Интернет ICMP
  Межсетевой протокол управления группами IGMP
  Инкапсуляция пакета IPv4 в пакет IPv6 (IPv6)
  Поток (IPv6)
  Протокол управления передачей TCP
  Протокол передачи дейтаграмм пользователя UDP
  Заголовок маршрутизации (IPv6)
  Заголовок фрагментации (IPv6)
  Заголовок аутентификации (IPv6)
  Зашифрованная полезная нагрузка безопасности (IPv6)
  Протокол контроля сообщений в Интернет ICMP (IPv6)
  Отсутствие следующего заголовка (IPv6)
  Заголовок опций назначения (IPv6)

Поле Лимит транзитов (Hop Limit) в протоколе IPv4 называется Время жизни. Это название соответствует фактическому порядку его использо­вания в обеих версиях протокола.

Поле Адрес источника (Source Address) идентифицирует 16-ти-байтный IP-адрес отправляющего хоста.

Поле Адрес назначения (Destination Address) идентифицирует 16-ти-байтный IP-адрес принимающего хоста.

В протоколе IPv6 любой заголовок расширения необходимо помещать между IP-заголовком и заголовками протоколов высшего уровня. На данный момент спецификация протокола IPv6 обеспечивает поддержку шести заголовков расширения, последовательность расположения которых представлена на рис. 2.9.

Заголовок IPv6
Заголовки расширений 1. Межтранзитные опции (Hop-by-Hop Options) 2. Опции назначения (Destination Options) 3. Маршрутизация (Routing) 4. Фрагментация (Fragment) 5. Аутентификация (Authentication) 6. Инкапсулированная полезная нагрузка безопасности (Encapsulated Security Payload, ESP)
Заголовок высшего уровня (например, протоколов UDP, TCP, ICMP)
Поле данных

Рис. 2.9 – Расположение заголовков в пакете IPv6

Заголовок расширений межтранзитных опций предназначен для передачи данных для маршрутизаторов, размещенных на протяжении длины всего пути. К примеру, если для поставки в сеть каких-либо инструкций по маршрутизации требуется групповая передача, эти инструкции можно поместить в данный заголовок, а промежуточные маршрутизаторы на протяжении маршрута будут анализировать этот заголовок. Существуют два предложения относительно применения данного заголовка:

1) передача предупреждений маршрутизаторам;

2) передача опций сервиса качества обслуживания QoS.

Заголовок расширений опций назначения представляет способ увеличения IPv6-заголовка в целях поддержки опций обработки и настроек пакетов. Этот заголовок предусматривает применение в будущем фирменных и стандартизированных сообщений. Значения типов опций должны будут регистрироваться в организации IANA (Internet Assigned Numbers Authority (www.iana.org)) и описываться в специальных стандартах Ин­тернет RFC (Request For Comments).

Заголовок расширений маршрутизации протокола IPv6 обеспечивает поддержку строгой маршрутизации от источника до пункта назначения. Этот заголовок содержит поля, предназначенные для указания промежуточных адресов, через которые должна осуществляться передача IPv6-пакетов. Так, отправитель высчитывает путь через все маршрутизаторы, которые, как предполагается, будут обрабатывать данный пакет. Он указывает их адреса в виде упорядоченного списка, помещая адрес маршрутизатора конечного пункта назначения в самый конец этого списка. Адрес первого маршрутизатора в пути указывается в поле Адрес назначения заголовка IPv6. В обычных случаях промежуточные маршрутизаторы пересылают пакет, не просматривая содержимое заголовков. Когда пакет прибывает на первый маршрутизатор, тот выполняет поиск именно этого заголовка. Если все правильно, маршрутизатор помещает адрес следующего маршрутизатора по списку в поле Адрес назначения, а свой адрес перемещает в конец списка. Этот процесс повторяется до того момента, пока пакет не прибывает на конечный пункт назначения. В подобном списке может быть указано до 255 адресов маршрутизаторов.

Протокол IPv6 запрещает фрагментацию пакетов в пути (на маршрутизаторах). Исходный отправитель обязан проверить величину MTU до пункта назна­чения и фрагментировать данные в соответствии с этой единицей передачи до отправки пакета. Если передающее устройство испытывает необходимость в отсылке пакетов, превышающих значение MTU, применяется Заголовок расширений фрагментации протокола IPv6.

Заголовок расширений аутентификации предназначен для определения фактического происхождения пакета в случаях хакерских атак (краж пакетов) с использованием подмененных IP-адресов. Также данный заголовок обеспечивает проверку целостности тех частей пакета, которые остаются неизменными в ходе передачи.

Заголовок расширений инкапсулированной полезной нагрузки безопасности предназначен для шифрования данных и всегда должен быть последним в цепи IP-заголовков.

Следовательно, протокол IPv6 по своему внутреннему устройству и функциональным возможностям явно превосходит протокол IPv4 и является его достойной заменой. Пока же протокол IPv4 считается основным, а IPv6 имеет лишь частичное применение. До тех пор пока IPv6 окончательно не вытеснит IPv4 (что вряд ли произойдет в обозримом будущем), будут употребляться переходные механизмы, необходимые для того, чтобы IPv6 -узлы могли применять IPv4 -сервисы и чтобы изолированные IPv6 -хосты и сети использовали IPv6 -Интернет через IPv4 -инфраструктуры.

Существует 2 варианта решения данной проблемы [8].

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

Туннелирование через IPv4. Для того чтобы добраться до IPv6 -Интернет, изолированные узлы или сети должны иметь возможность использовать существующие инфраструктуры IPv4 для передачи IPv6 -пакетов. Это можно сделать, применив метод, известный как туннелирование, который заключается во встраивании IPv6 -пакетов в IPv4 (по сути, IPv4 становится как бы канальным уровнем для IPv6).

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

1) замена или перепрошивка устаревшего оборудования;

2) обеспечение производителей нового оборудования достаточными информационными ресурсами для обработки IPv6;

3) инвестирование в разработки нового программного обеспечения для поддержки IPv6;

4) обеспечение публичности (чтобы убедить конечных пользователей в полезности подготовки к модернизации существующего оборудования);

5) донесение информации до конечных пользователей (чтобы создать спрос на IPv6 -оборудование);

6) инвестирование провайдерами технических ресурсов в подготовку к IPv6.

В качестве примера поддержки протокола IPv6 выступили организаторы летних Олимпийских игр 2008 года в Пекине, которые создали копию основного сайта по IPv6-адресу http://ipv6.beijing2008.cn/
en
(IP-адрес: 2001:252:0:1::2008:6 и 2001:252:0:1::2008:8). Все сетевые взаимодействия на Олимпиаде было запланировано проводить с использованием IPv6. Это событие можно считать крупнейшей демонстрацией технологии IPv6 с момента ее создания.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: