
Протокол ip
Протокол IP (Internet Protocol, протокол Интернета), как определено в до¬кументе RFC 791, является первичным транспортным протоколом для всего набора TCP/IP. По сути, протокол IP представляет собой "конверт”, внутри которого переносятся практически все сообщения, создаваемые другими протоколами набора TCP/IP. Функционируя на Сетевом уровне модели OSI, протокол IP относится к протоколам без установления соединения, соответственно, является ненадежным и выполняет несколько задач, которые составляют критически важную часть процесса доставки пакетов из системы-источника до места назначения. Среди реализуемых им функций можно выделить несколько основных.
-
Адресация. Идентификация системы, которая будет конечным получателем пакета.
-
Упаковка. Инкапсуляция данных Транспортного уровня в дейтаграммы для передачи по назначению.
-
Фрагментация. Разбиение дейтаграмм на фрагменты, размер которых достаточно мал для успешной передачи по сети.
-
Маршрутизация. Определение пути пакета через интерсеть до места назначения.
Формат IP-сообщения
Функции полей заголовка описаны ниже.
-
Версия, 4 бита. Определяет версию протокола IP. Значение для текущей версии составляет 4.
-
Длина Интернет-заголовка, 4 бита. Задает длину IP-заголовка в 32- разрядных словах. Если заголовок не содержит дополнительных полей, эта величина равна 5 (20 байт).
-
Тип сервиса, 1 байт. Биты с 1 по 3, а также 8, не используются. Биты с 4 по 7 определяют приоритет сервиса, предполагаемый для данной дейтаграммы. Может принимать следующие значения:
• 0000 — по умолчанию (Default);
• 0001 — минимальная стоимость (Minimize Monetary Cost);
• 0010 — максимальная надежность (Maximize Reliability);
• 0100 — максимальная пропускная способность (Maximize Throughput);
• 1000 — минимальная задержка (Minimize Delay);
• 1111 — максимальная защита (Maximize Security).
-
Общая длина, 2 байта. Содержит длину дейтаграммы, включая все поля заголовка и данные.
-
Идентификатор, 2 байта. Представляет собой уникальное число для каждой дейтаграммы, которое требуется системе назначения для сборки фрагментов дейтаграммы.
-
Флаги, 3 бита. Содержит биты, устанавливаемые в процессе фрагментации дейтаграммы. Их назначение рассматривается ниже.
•Бит 1 — не используется.
•Бит 2 — запрет фрагментации. Данный бит со значением 1 препятствует фрагментации дейтаграммы любой системой.
•Бит 3 — дальнейшие фрагменты. Когда бит 3 сброшен в 0, это говорит о том, что передается последний фрагмент дейтаграммы. Значение 1 предполагает наличие фрагментов, ожидающих передачи.
-
Смещение фрагмента, 13 битов. Определяет позицию (в октетах байтов) текущего пакета от начала всей дейтаграммы.
-
Время жизни, 1 байт. Задает число маршрутизаторов, которые будет разрешено пройти данной дейтаграмме на пути к конечному месту назначения. Каждый маршрутизатор, обрабатывающий пакет, уменьшает значение данного поля на 1. Как только значение сравняется с 0, пакет отбрасывается, независимо от того, достиг ли он пункта назначения или нет.
-
Протокол, 1 байт. Идентифицирует протокол вышележащего уровня, сформировавший информацию в поле данных, задействует значения из RFC- документа "Assigned Numbers" и файла PROTOCOL, присутствующего в каждой TCP/IP-системе.
-
Контрольная сумма заголовка, 2 байта. Содержит значение контрольной суммы, вычисленное по всему заголовку (без учета полезных данных). Служит для отслеживания ошибок.
-
IP-адрес источника, 4 байта. Указывает IP-адрес системы, создавшей дейтаграмму.
-
IP-адрес назначения, 4 байта. Определяет систему, которая должна быть конечным получателем дейтаграммы.
-
Опции, переменный размер. Может содержать до 16 опциональных элементов, определяемых RFC-документом "Assigned Numbers". Системы используют опциональные элементы заголовка протокола IP для передачи дополнительной информации, как непосредственно от отправителя, так и собранной во время путешествия пакета к месту назначения.
-
Данные, переменный размер вплоть до MTU для данной сети. Переносит полезные данные дейтаграммы, полученные от протокола Транспортного уровня.