Протокол IP — протокол интернет. Формат заголовка IP-пакета.

IP расшифровывается как Internet Protocol, часто его называют протокол интернет. Но строго говоря это не совсем так, правильный перевод межсетевой протокол или протокол межсетевого взаимодействия.

Протокол IP

Протокол Ip возник задолго до того, как появилась и стала набирать популярность сеть, которую мы называем интернет. В англоязычной терминологии internetworking означает объединение сетей, и цель протокола ip как раз объединить сети, построенные с помощью разных технологий канального уровня. У этой терминологии словом internet называлась объединенная сеть, а subnet — подсеть или отдельная сеть. Словом Internet с большой буквы сейчас называется самая крупная объединенная сеть построенная по протоколу ip.

Место в моделях OSI и TCP/IP

В модели взаимодействия открытых систем и в модели TCP/IP протокол IP, находится на одном и том же уровне — сетевом.

Протокол IP в OSI

Сетевой уровень стека протоколов TCP/IP включая также и другие протоколы кроме ip. Это ARP, DHCP и ICMP, но для передачи данных используется только протокол ip, остальные протоколы служат для обеспечения корректной работы крупной составной сети.

Протокол IP в стеке TCP

Сервисы IP

IP также, как и Ethernet обеспечивают передачи данных без гарантии доставки, не гарантируется как доставка, так и порядок следования сообщений. Протокол Ip так же как и Ethernet использует передачу данных без установки соединения.

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

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

Формат заголовка IP-пакета

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

Формат заголовка IP адреса

Номер версии

Первое поле номер версии. Сейчас используется две версии протокола IP 4 и 6. Большая часть компьютеров использует IPv4. Длина  адреса в этой версии 4 байта. Формат адреса IP версии 4 мы рассматривали подробно. Проблема в том, что адресов IPv4, четыре с небольшим миллиарда, что уже сейчас не хватает для всех устройств в сети, а в будущем точно не хватит. Поэтому была предложена новая версия IPv6 в которой длина IP адреса составляет 16 байт. Сейчас эта версия вводится в эксплуатацию, но процесс занимает очень долгое время.

Длина заголовка

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

Тип сервиса

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

Общая длина

Следующее поле общая длина. Общая длина содержит длину всего IP пакета, включая заголовок и данные. Максимальная длина пакета 65 535 байт, но на практике такие большие пакеты не используются, а максимальный размер ограничен размером кадра канального уровня, а для Ethernet это 1 500 байт. В противном случае для передачи одного IP пакета необходимо было бы несколько кадров канального уровня что неудобно.

Идентификатор пакета

Поля идентификатор пакета, флаги и смещение фрагмента используются для реализации фрагментации.

Время жизни

Дальше идет поле время жизни. Время жизни Time To Live или TTL — это максимальное время в течение которого пакет может перемещаться по сети. Оно введено для того чтобы пакеты не гуляли по сети бесконечно, если в конфигурации сети возникла какая-то ошибка. Например, в результате неправильной настройке маршрутизаторов в сети, может образоваться петля. Раньше, время жизни измерялось в секундах, но сейчас маршрутизаторы обрабатывают пакет значительно быстрее чем за секунду, поэтому время жизни уменьшается на единицу на каждом маршрутизаторе, и оно измеряется в количествах прохождения через маршрутизаторы по-английски (hop) от слова прыжок. Таким образом название время жизни сейчас стало уже некорректным.

Тип протокола

После времени жизни, указывается тип протокола следующего уровня. Это поле необходимо для реализации функции мультиплексирования и демультиплексирования, то есть передачи с помощью протокола IP данных от разных протоколов следующего уровня. В этом поле указывается код протокола следующего уровня, некоторые примеры кодов для TCP код 6, UDP — 17 и ICMP — 1.

Контрольная сумма

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

IP адрес получателя и отправителя

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

Опции

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

И опция — временные метки, при установке которой, каждый маршрутизатор записывает время прохождения пакеты.

Также опции позволяют отказаться от автоматической маршрутизации, и задать маршрут отправитель:

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

Опции в заголовке IP может быть несколько и они могут иметь разный размер. В то же время длина IP заголовка должна быть кратна 32, поэтому при необходимости, в конце IP заголовок заполняются нулями до выравнивание по границе 32 бита. Следует отметить, что сейчас опции в заголовке IP почти не используются.

В статье был рассмотрен протокол IP (Internet Protocol) — протокол межсетевого взаимодействия. Протокол IP является основой интернета. В OSI находится на сетевом уровне.

Ссылка на основную публикацию