logo
3-260

Ip протокол

Как уже неоднократно указывалось, IP — это основной протокол стека TCP/IP.

Пакет IP состоит из заголовка и блока данных (рис. 32). Протокол IP «работает» только с заголовком. Рассмотрим более подробно кодирование полей заголовка.

«Версия протокола IP» (4 бита) используется для устранения конфликтов, которые могут возникать при изменении версии протокола IP. Существуют четвертая и шестая версии.

«Длина заголовка» дает значение длины заголовка пакета, измеренное в 32-битовых словах. Это поле предусматривает изменение длины заголовка в соответствии с полями «Услуги» (переменной длины) и «Дополнение (нули) поля «Услуги» до 32-би-товой границы».

Октеты

0...7

8...15

16...23

24...31

1...4

Версия протоко-ла IP (4 бита)

Длина заголовка пакета в

32 битовых словах

(4 бита)

Категория обслужива-ния пакета (приоритет) (8 бит)

Длина пакета в октетах вместе с заголовком (16 бит)

5...8

Идентификатор передаваемого исходного «большого» пакета (16 битов)

Индикатор «Еще данные» (3 бита)

Номер байта, на котором произведена очередная фрагментация исходного «большого» пакета (13 бит)

9...72

Время «жизни» пакета в сети (8 битов)

Тип транспорт-ного протокола TCP/UDP (8 битов)

Поле контрольной проверки заголовка пакета (16 бит)

13...16

Адрес отправителя (32 бита)

17...20

Адрес получателя (32 бита)

21...24

Поле «Услуги» (переменная длина)

Дополнение (нули) поля «Услуги» до 32 бит

25...

Данные

Рис. 32 — Формат пакета IP

Поле «Категория обслуживания пакета» (рис. 33) — 1 байт. Оно включает:

Биты

0

1

2

3

4

5

6

7

Поле «Категория обслуживания пакета»

Приоритет

DD

ТT

RR

Резерв

Рис. 33 — Кодирование поля «Категория обслуживания пакета»

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

Протоколу IP, обеспечивающему межсетевое взаимодействие, приходится сталкиваться с различиями в конкретных физических сетях, одним из которых является ограничение на максимальную длину кадра, разрешенную в той или иной физической сети (maximum transfer unit, MTU). Поэтому IP также решает задачу деления (фрагментирования) больших пакетов на малые (и, наоборот, их сборку). Это требуется делать в тех случаях, когда на вход некоторой физической сети поступает пакет, превосходящий по длине максимальное значение для данной сети.

Фрагментирование осуществляется следующим образом. Блок данных исходного (большого) пакета разделяется таким образом, чтобы размер полученных фрагментов в сумме с длиной заголовка не превышал размера кадра для физической сети, в которую направляются фрагменты. При этом фрагменты упаковываются в пакеты, заголовки которых очень похожи на заголовок исходного пакета. Чтобы понять, что данные пакеты содержат фрагменты одного большого пакета и обеспечить его последующую сборку, производится установка специальных признаков в поле «Индикатор «Еще данные»; байты, по которым разрезался исходный блок данных, помещаются в поле «Номер байта, на котором произведена очередная фрагментация исходного «большого» пакета»; а в поле «Идентификатор передаваемого исходного «большого» пакета» записывается один, общий для всех фрагментов, идентификатор, указывающий на принадлежность фрагментов к одному «большому» блоку данных.

Поле «Время «жизни» пакета в сети» указывает время, в течение которого пакет должен существовать в сети. Компьютеры, обрабатывающие данный пакет, уменьшают значения этого поля в период обработки и хранения пакета. Когда время жизни истекает, пакет уничтожается. При этом источник сообщения уведомляется о потере пакета. Наличие конечного времени жизни пакета обеспечивает, в частности, защиту от таких нежелательных событий, как передача пакета по циклическому маршруту, перегрузка сетей.

Поле «Тип транспортного протокола TCP/UDP» (8 битов) указывает протокол вышележащего уровня, которому предназначена информация, содержащаяся в поле данных пакета IP.

Поле «Контрольная проверка заголовка пакета» (16 бит) используется для контроля целостности заголовка пакета IP.

Поле «Адрес отправителя» (32 бита) — IР-адрес отправителя пакета.

Поле «Адрес получателя» (32 бита) IP-адрес получателя пакета.

Поле «Услуги» (изменяемой длины) применяется для указания необязательных параметров IP, связанных, например, с режимами безопасности или маршрутизации. Поле «Дополнение (нули) поля «Услуги» до 32битовой границы» (изменяемой длины) дополняет заголовок пакета таким образом, чтобы он составлял целое число 32битовых слов.

Адреса IP

Физические объекты (ГВМ, КВМ, маршрутизаторы, серверы, подсети) в IP-сети идентифицируются при помощи имен, называемых IP-адресами.

IP-адреса представляют собой 32 битовые идентификаторы. Обычно для удобства представления IP-адресов используется так называемое цифровое написание IP-адресов, когда адрес записывается как десятичное представление 4-х байт, разделенных точками, например 192.171.153.60.

В общем случае каждый адрес можно представить как пару идентификаторов: номер сети и номер ГВМ. Практически каждый IP-адрес должен быть представлен в виде одной из первых трех, показанных на рис. 34, битовых структур.

Биты

0 7

8 15

16 23

24 31

Класс А

0

Номер сети

Номер узла

Класс В

1 0

Номер сети

Номер узла

Класс С

1

0

Номер сети

Номер узла

Класс D

1

1 0

Групповой адрес

Класс Е

1

1 1 0

Зарезервировано

Рис. 34 — Структура и классы IP-адресов

Все IP-адреса разделены на пять классов, но практическое применение находят в основном первые три.

Класс А определен для сетей с огромным (от 65 535 до 16 777 215) числом машин. В адресе этого класса 7 бит отведены под номер сети, а 24 бита под номер узла.

Адреса класса В используются для среднемасштабных сетей, в которых содержится от 256 до 65 536 машин; под номер сети и номер узла отводится 14 и 16 бит соответственно.

Адреса класса С предназначены для сетей с числом узлов менее 256, под номер машины отведено 8 бит и под номер сети 21 бит.

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

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

Формируемые по этим правилам специальные IP-адреса показаны на рис. 35.

Тип адреса

Номер сети

Номер ГВМ

1

0000000000000000

0000000000000000

2

0000000000000000

хххххххххххххххх

4

1111111111111111

1111111111111111

5

хххххххххххххххх

1111111111111111

Рис. 35 — Специальные IP-адреса

Адрес 1 может использоваться в процедуре инициализации, когда рабочая станция не знает (при согласовании) своего IP адреса.

Адрес 2, в котором номер сети заполнен нулями, а номер ЭВМ имеет определенное значение, есть адрес конкретной машины в сети, из которой она получила пакет. Применение такого адреса возможно в том случае, когда ЭВМ отправитель не знает номер сети, в которой работает. Этот адрес используется только как адрес получателя и никогда как адрес отправителя.

Адрес 4, в котором номер сети имеет некоторое значение, а номер ГВМ заполнен единицами, называется прямым широковещательным адресом (direct broadcast address), обращенным ко всем ЭВМ в данной подсети. Вместе с ним в качестве широковещательного может применяеться также локальный, или ограниченный, адрес (limited, или local broadcast address), целиком заполненный единицами (адрес 3), используемый в том случае, когда номер сети по каким-либо причинам неизвестен. Использование этого адреса не рекомендуется.

Групповой адрес (multicast address), в отличие от широковещательного, применяется при обращении к выделенной группе ЭВМ (но не ко всем ЭВМ) некоторой физической сети или группы сетей. В этом случае используются адреса класса D (рис. 34). Групповая адресация в TCP/IP регламентируется протоколом Internet Group Management Protocol (IGMP, RFC1112), входящим составной частью в IP.

Групповой адрес может объединять ЭВМ разных физических сетей. Это достигается путем использования специальных протоколов групповой маршрутизации.

Каждая ЭВМ может (при определенных административных полномочиях) в любой момент подключиться к выделенной адресной группе или выйти из нее.

В конце 1992 года сообщество Интернет для решения проблем адресного пространства и ряда смежных задач разработало три проекта протоколов: «TCP and UDP with Bigger Addresses (TUBA)»; «Common Architecture for the Internet (CatnIP)» и «Simple Internet Protocol Plus (SIPP) [3]. После анализа всех этих предложений был принят новый протокол IPv6 с IP-адресами в 128 бит вместо 32 для IPv4. Внедрение этого нового протокола представляет отдельную серьезную проблему, так как этот процесс не предполагает замены всего программного обеспечения во всем мире одновременно.

Адресное пространство IPv6 распределяется IANA (Internet Assigned Numbers Authority — комиссия по стандартным числам в Интернет [RFC-1881]).

IANA делегирует права выдачи IP-адресов региональным сервис-провайдерам, субрегиональным структурам и организациям. Отдельные лица и организации могут получить адреса непосредственно от регионального распределителя или сервис-про-вайдера.

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

IPv6 представляет собой новую версию протокола Интернет (RFC-1883), являющуюся преемницей версии 4 (IPv4; RFC-791). Изменения IPv6 по отношению к IPv4 можно поделить на следующие группы:

В IPv6 длина адреса расширена до 128 бит (против 32 в IPv4), что позволяет обеспечить больше уровней иерархии адресации, увеличить число адресуемых узлов, упростить авто-конфигурацию. Для расширения возможности мультикастинг-маршрутизации в адресное поле введено субполе «scope» (группа адресов). Определен новый тип адреса «anycast address» (эникастный), который используется для посылки запросов клиента любой группе серверов. Эникаст-адресация предназначена для использования с набором взаимодействующих серверов, чьи адреса не известны клиенту заранее.

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

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

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

В IPv6 введена спецификация идентификации сетевых объектов или субъектов, для обеспечения целостности данных и при желании защиты частной информации.

Формат и семантика адресов IPv6 описаны в документе RFC-1884. Версия ICMP IPv6 рассмотрена в RFC-1885 (рис. 36).

Рис. 36 — Формат заголовка пакета IPv6

Версия

4-битный код номера версии Интернет протокола (версия Интернет протокола для IPv6= 6)

Приор.

4-битный код приоритета

Метка потока

24-битный код метки потока (для мультимедиа)

Размер поля данных

16-битовое число без знака. Несет в себе код длины поля данных в октетах, которое следует сразу после заголовка пакета. Если код равен нулю, то длина поля данных записана в поле данных jumbo, которое в свою очередь хранится в зоне опций.

Следующий заголовок

8-битовый разделитель. Идентифицирует тип заголовка, который следует непосредственно за IPv6 заголовком. Использует те же значения, что и протокол IPv4 [RFC-1700].

Предельное число шагов

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

Адрес отправителя

128-битовый адрес отправителя пакета. См. RFC-1884.

Адрес получателя

128-битовый адрес получателя пакета (возможно, не конечный получатель, если присутствует маршрутный заголовок). См. RFC-1884.