24. Протокол IP. Назначение. Принцип действия. Формат заголовка.

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

Принцип действия Cтек TCP/IP используют поля в заголовке датаграммы для фрагментации и восстановления датаграмм, когда это необходимо для их передачи через сети с малым размером пакетов. Сценарий действия состоит в том, что стек TCP/IP меняет размер датаграммы на каждом из хостов, задействованных в internet-коммуникации и на каждом из шлюзов, обеспечивающих взаимодействие между сетями. Стек на каждом из хостов  придерживается общих правил для интерпретации полей адресов, для фрагментации и сборки Internet датаграмм. Кроме этого, хосты (и особенно шлюзы) имеют процедуры для принятия решений о маршрутизации, а также другие функции. Протокол Internet обрабатывает каждую датаграмму как независимую единицу, не имеющую связи ни с какими другими датаграммами Internet. Протокол не имеет средств установления соединения. Протокол Internet использует четыре ключевых механизма для формирования своих услуг: задание типа сервиса, времени жизни, опций и контрольной суммы заголовка. Тип обслуживания используется для обозначения требуемой услуги. Тип обслуживания - это абстрактный или обобщенный набор параметров, который характеризует набор услуг, предоставляемых сетями, и составляющих собственно протокол Internet. Этот способ обозначения услуг должен использоваться шлюзами для выбора рабочих параметров передачи в конкретной сети, для выбора сети, используемой при следующем переходе датаграммы, для выбора следующего шлюза при маршрутизации сетевой датаграммы. Механизм времени жизни служит для указания верхнего предела времени жизни Internet датаграммы. Этот параметр устанавливается отправителем датаграммы и уменьшается в каждой точке на проходимом датаграммой маршруте. Если параметр времени жизни станет нулевым до того, как Internet датаграмма достигнет получателя, эта датаграмма будет уничтожена. Время жизни можно рассматривать как часовой механизм самоуничтожения. Механизм опций предоставляет функции управления, которые являются необходимыми или просто полезными при определенных ситуациях, однако он не нужен при обычных коммуникациях. Механизм опций предоставляет такие возможности, как временные штампы, безопасность, специальная маршрутизация. Контрольная сумма заголовка обеспечивает проверку того, что информация, используемая для обработки датаграмм Internet, передана правильно. Данные могут содержать ошибки. Если контрольная сумма неверна, то Internet датаграмма будет разрушена, как только ошибка будет обнаружена. Стек TCP/IP готовит заголовок датаграммы и стыкует с ним данные, затем определяет локальный сетевой адрес, соответствующий данному адресу Internet. В данном случае это адрес шлюза. Модуль передает данную датаграмму и адрес в локальной сети в распоряжение интерфейса локальной сети. Интерфейс локальной сети создает соответствующий этой сети заголовок и соединяет с ним датаграмму. Затем он передает по локальной сети полученный таким образом результат. Датаграмма достигает хост-компьютера, играющего роль шлюза и расположенного в вершине сети. Интерфейс локальной сети отделяет этот заголовок и передает датаграмму на стек TCP/IP. Стек TCP/IP  определяет из Internet адреса, что датаграмма должна быть направлена на хост-компьютер во второй сети. Стек TCP/IP определяет адрес хоста-получателя в локальной сети. Он обращается к интерфейсу локальной сети с тем, чтобы она переслала данную датаграмму по назначению. Интерфейс создает заголовок локальной сети и соединяет с ним датаграмму, а затем результат направляет на хост-получатель. На хосте-получателе интерфейс локальной сети удаляет заголовок локальной сети и передает оставшуюся часть на Internet модуль. Стек TCP/IP определяет, что рассматриваемая выше датаграмма предназначена для прикладной программы на этом хосте. Модуль передает данные прикладной программе в ответ на системный вызов. В качестве результата этого вызова передаются адрес получателя и другие параметры. Функция или цель протокола IP состоит в передаче датаграммы через набор объединенных компьютерных сетей. Это осуществляется посредством передачи датаграмм от одного стека TCP/IP  к другому до тех пор, пока не будет достигнут получатель. Экземпляры стека TCP/IP  находятся на хостах и шлюзах системы Internet. Датаграммы направляются через конкретные компьютерные сети, основанные на интерпретации Internet адресов. Таким образом, одним из важных механизмов протокола Internet является Internet адрес. При передаче сообщений с одного Internet модуля на другой датаграммы могут нуждаться в прохождении через сети, для которых максимальный размер пакета меньше, чем размер датаграммы. Чтобы преодолеть эту сложность, в протокол Internet включен механизм фрагментации.  Фрагментация Internet датаграммы необходима, когда эта датаграмма возникает в локальной сети, позволяющей работать с пакетами большого размера, и затем должна пройти к получателю через другую локальную сеть, которая ограничивает пакеты меньшим размером.   IP датаграмма может быть помечена как нефрагментируемая. Любая Internet датаграмма, помеченная таким образом, не может быть фрагментирована модулем Internet ни при каких условиях. Если же Internet датаграмма, помеченная как нефрагментируемая, тем не менее не может достигнуть получателя без фрагментации, то вместо этого она будет разрушена. Фрагментация, перенос и сборка в локальной сети, невидимые для отправителя и получателя, называются внутрисетевой фрагментацией. Необходимо, чтобы Internet процедуры фрагментации и сборки могли разбивать датаграмму на почти любое количество частей, которые впоследствии могли бы быть вновь собраны. Получатель фрагмента использует поле идентификации для того, чтобы быть убежденным в том, что фрагменты различных датаграмм не будут перепутаны. Поле смещения фрагмента сообщает получателю положение фрагмента в исходной датаграмме. Смещение фрагмента и длина определяют кусок исходной датаграммы, принесенный этим фрагментом.

Формат заголовка. Поясним названия полей датаграммы IPv4 (рис. 4.6). Version (версия) 4 бита. Поле версии показывает формат заголовка Internet. Данный документ   описывает версию 4. IHL (длина Internet заголовка) 4 бита. Длина Internet заголовка измеряется в словах по 32 бита каждый и указывает на начало поля данных. Заметим, что корректный заголовок  может иметь минимальный размер 5 слов.

Рисунок 4.6 — Заголовок датаграммы IPv4 в скобках указана длина поля в битах, Options и Padding — поля переменной длины

Type of Service (тип сервиса) 8 бит. Тип сервиса определяет с помощью неких абстрактных параметров тип требуемого обслуживания. Эти параметры должны использоваться для управления выбором реальных рабочих характеристик при передаче датаграммы через конкретную сеть. Некоторые сети осуществляют обслуживание с приоритетом, которое неким образом дает преимущество для продвижения данной датаграммы по сравнению со всеми остальными. Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью.  Биты 0–2  задают уровень приоритета, бит 3 желаемая транзитная задержка (0 — нормальная задержка, 1 — малая задержка); бит 4 желаемая пропускная способность (0 — нормальная пропускная способность, 1 — высокая пропускная способность); бит 5 достоверность (0 —  обычная достоверность, 1 — высокая достоверность); биты 6-7 зарезервированы. Total Length (общая длина) 16 бит. Общая длина — это длина датаграммы, измеренная в октетах, включая Internet заголовок и поле данных. Это поле может задавать длину датаграммы вплоть до 65535 октетов. Identification (идентификатор) 16 бит. Идентификатор устанавливается отправителем для сборки фрагментов какой-либо датаграммы. Flags (различные управляющие флаги) 3 бита: бит 0 зарезервирован, должен быть нуль; бит 1 (DF) (0 — возможно фрагментирование, 1 — запрет фрагментации);  бит 2 (MF) (0 — последний фрагмент, 1 — будут еще фрагменты). TTLTime to Live  (Время жизни) 8 бит. Это поле показывает максимальное время, в течение которого датаграмме позволено находиться в системе Internet. Если это поле имеет значение нуль, то датаграмма должна быть разрушена. Значение этого поля изменяется при обработке заголовка Internet. Время измеряется в секундах. Однако, поскольку каждый модуль, обрабатывающий датаграмму, должен уменьшать значение поля TTL по крайней мере на единицу, даже если он обрабатывает эту датаграмму менее, чем за секунду, то поле TTL следует понимать как максимальный интервал времени, в течение которого датаграмма может существовать. Protocol (Протокол) 8 бит. Это поле показывает, какой протокол следующего уровня использует данные из Internet датаграммы. Значения для различных протоколов   приводятся в документе «Assigned Numbers». Header Checksum (Контрольная сумма заголовка) 16 бит. Поскольку некоторые поля заголовка меняют свое значение (например, время жизни), это значение проверяется и повторно рассчитывается при   каждой обработке Internet заголовка. Алгоритм контрольной суммы следующий: поле контрольной суммы — это 16 бит, дополняющие в сумме все  16 битовые слова заголовка. Для вычисления контрольной суммы начальное значение этого поля устанавливается в нуль. Source Address (IP-адрес отправителя) 32 бита (см. п.4.2.1). Destination Address (IP-адрес получателя) 32 бита (см. п. 4.2.1).. Options (опции)    поле переменной длины. Опции могут появляться в датаграммах, а могут и не появляться. Они должны поддерживаться всеми Internet модулями (хостами и шлюзами). Не обязательно каждая конкретная датаграмма несет опции, но нести их все же может. В некоторых приложениях опция секретности должна присутствовать во всех датаграммах. Подробно рассматривать опции мы не будем, они достаточно подробго рассмотрены в RFC791. Padding (Выравнивание). Выравнивание Internet заголовка используется для того, чтобы  убедиться в том, что Internet заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями. Необходимость в выравнивании существует из-за того, что поле опций — переменной длины. Следом за заголовком следуют октеты вышестоящих над IP протоколов и данных. Одним из важных протоколов, обеспечивающих надежность работы IP, является ICMP протокол.

 

 

Hosted by uCoz