<<
>>

Формат IP-пакета

Список ключевых слов: номер версии протокола IP, длина заголовка IP-пакета, тип сервиса, байт дифференцированного обслуживания, или DS-бaйτ, приоритет IP-пакета, критерий выбора маршрута, общая длина IP-пакета, идентификатор IP-пакета, флаги IP-пакета, смещение фрагмента, время жизни IP-пакета, протокол верхнего уровня, контрольная сумма заголовка, IP-aдpeca источника и приемника, поле параметров IP-пакета, выравнивание заголовка.

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

IP-пакет состоит из заголовка и поля данных. Ниже перечислены поля заголовка (рис.

18.1).

Рис. 18.1. Структура заголовка IP-пакета

Поле номера версии занимает 4 бита и идентифицирует версию протокола IP. Сейчас повсеместно используется версия 4 (IPv4), хотя все чаще встречается и новая версия (IPv6).

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

Поле типа сервиса (Type of Service, ToS) имеет и другое, более современное название — байт дифференцированного обслуживания, или DS-бaйτ.

Этим двум названиям соответствуют два варианта интерпретации этого поля. В обоих случаях данное поле служит одной цели — хранению признаков, которые отражают требования к качеству обслуживания пакета. В прежнем варианте первые три бита содержат значение приоритета пакета: от самого низкого — 0 до самого высокого — 7. Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать более важные пакеты в первую очередь. Следующие три бита поля ToS определяют критерий выбора маршрута. Если бит D (Delay — задержка) установлен в 1, то маршрут должен выбираться для минимизации задержки доставки данного пакета, установленный бит Т (Throughput — пропускная способность) — для максимизации пропускной способности, а бит R (Reliability — надежность) — для максимизации надежности доставки. Оставшиеся два бита имеют нулевое значение.

Стандарты дифференцированного обслуживания, принятые в конце 90-х годов, дали новое название этому полю и переопределили назначение его битов. В DS- байте также используются только старшие 6 бит, а два младших бита остаются в качестве резерва. Назначение битов DS-бaйτa будет pąccмoτpeнo в подразделе «Дифференцированное обслуживание» раздела «Стандарты QoS в 1Р-сетях» главы 20.

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

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

Все части (фрагменты) одного пакета должны иметь одинаковое значение этого поля.

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

Поле смещения фрагмента занимает 13 бит и задает смещение в байтах поля данных этого фрагмента относительно начала поля данных исходного нефраг- ментированного пакета. Используется при сборке/разборке фрагментов пакетов. Смещение должно быть кратно 8 байт.

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

Поле протокола верхнего уровня занимает один байт и содержит идентификатор, указывающий, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета. Значения идентификаторов для разных протоколов приводятся в документе RFC 1700, доступном по адресу http://www. iana.org. Например, 6 означает, что в пакете находится сообщение TCP, 17 — сообщение UDP, 1 — сообщение ICMP.

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

Поля IP-адресов источника и приемника имеют одинаковую длину — 32 бита.

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

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

Ниже приведена распечатка значений полей заголовка одного из реальных IP- пакетов, захваченных в сети Ethernet средствами анализатора протоколов сетевого монитора (Network Monitor, NM) от Microsoft. В данной распечатке NM в скобках дает шестнадцатеричные значения полей, кроме того, программа иногда представляет числовые коды полей в виде, более удобном для чтения. Например, дружественный программный интерфейс NM интерпретирует код 6 в поле протокола, помещая туда название соответствующего протокола — TCP (см. строку, выделейную полужирным шрифтом).

IP: Version = 4 (0x4)

IP: Header Length = 20 (0x14)

IP: Service Type ≈ 0 (0x0)

IP: Precedence = Routine IP: .. .0 = Normal Delay

IP: . ..0... = Normal Throughput IP· ..0. = Normal Reliability IP: Total Length ≈ 54 (0x36)

IP: Identification = 31746 (Ox7CO2)

IP: Flags Summary = 2 (0x2)

IP:...... 0 = Last fragment In datagram

IP: ..... 1. = Cannot fragment datagram

IP: Fragment Offset = 0 (0x0) bytes IP· Time to Live = 128 (0x80)

IP: Protocol = TCP - Transmission Control

IP: Checksum = OxEB86

IP* Source Address = 194.85 135.75

IP: Destination Address = 194.85.135.66

IP: Data: Number of data bytes remaining = 34 (0x0022)

<< | >>
Источник: В. Г. Олифер, Н. А. Олифер. 54 Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд. 2006

Еще по теме Формат IP-пакета:

  1. Глава 24 СОЗИДАНИЕ И ОТКРЫТИЕ СЕРДЦА В ОДНОМ ПАКЕТЕ
  2. Жанры и форматы
  3. ЗАБЫТЫЕ ФОРМАТЫ
  4. Могу
  5. Эксперимент
  6. Дело вкуса
  7. Стиль
  8. Сергей Супрунов. FreeBSD - полезные советы, 2010
  9. Тема 12. Иконологическое моделирование социальных процессов
  10. Познакомьтесь с Крайоном Глава первая Кто я?
  11. Сила уединения
  12. Общая собственность: понятие, виды
  13. Проблем у вас нет
  14. I. На что мы обречены при излишках веса
  15. А. Н. Степанов. Информатика Базовый курс для студентов гуманитарных специальностей высших учебных заведений 6-е издание, 2010
  16. О программе Астропроцессор ZET
  17. Чего не знает читатель?