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

  1. Подробное объяснение формата заголовка пакета IP
  2. Литература
  1. Подробное объяснение формата заголовка пакета IP

    Имеется прямая связь между количеством полей заголовка пакета и функциональностью протокола, который работает с этим заголовком. Большая часть действий протокола связана с обработкой той служебной информации, которая переносится в полях заголовка пакета. Изучая назначение каждого поля заголовка IP-пакета. Мы получаем не только формальные знания о структуре пакета, но и знакомимся с основными функциями протокола IP.
    IP - пакет состоит из заголовка и поля данных. Ниже перечислены поля заголовка
    Поле номера версии занимает 4 бита и идентифицирует версию протокола IP. Сейчас повсеместно используется версия 4 (IPv4), хотя все чаще встречается и новая версия (IPv6).
    Значение длины заголовка IP - пакета также занимает 4 бита и измеряется в 32- битовых словах. Обычно заголовок имеет длину в 20 байт (пять 32 - битовых слов), но при добавлении некоторой служебной информации это значение может быть увеличено за счет дополнительных байтов в поле параметров. Наибольшая длина заголовка составляет 60 байт.
    Поле типа сервиса (Type of Service, ToS) имеет и другое. Более современное название - байт дифференцированного обслуживания, или DS- байт. Этим двум названиям соответствует два варианта интерпретации этого поля. В обоих случаях данное поле служит одной цели - хранению признаков, которые отражают требования к качеству обслуживания пакета. В прежнем варианте первые три бита содержат значение приоритета пакета: от самого низкого - 0 до самого высокого - 7. Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать наиболее важные пакеты в первую очередь. Следующие три бита поля ToS определяют критерий выбора маршрута. Если бит D (Delay - надежность) установлен в 1, то маршрут должен выбираться для минимизации задержки доставки данного пакета, установленный бит Т (Throughput - пропускная способность) - для максимизации пропускной способности, а бит R (Reliability - надежность) - для максимизации надежности доставки. Оставшиеся два бита имеют нулевое значение.
    Стандарты дифференцированного обслуживании, принятые в конце 90-х годов, дали новое название этому полю и переопределили название его битов. В DS-байте также используется только старшие 6 бит, а два младших бита остаются в качестве резерва.
    Поле обшей длины занимает 2 байта и характеризует общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байт, однако в большинстве компьютеров и сетей столь большие пакеты не используются. При передачи по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP-пакеты. Если это пакеты Ethernet, то выбираются пакеты с максимальной длиной 1500 байт, умещающиеся в поле данных кадра Ethernet. В стандартах TCP/IP предусматривается, что все хосты должны быть готовы принимать пакеты вплоть до 576 байт длиной (независимо от того, приходят ли они целиком или фрагментами).
    Идентификатор пакета занимает 2 байта и используется для распознавания пакетов, образовавшихся путем деления на части (фрагментации) исходного пакета. Все части (фрагменты) одного пакета должны иметь одинаковые значения этого поля.
    Флаги занимают 3 бита и содержат признаки, связанные с фрагментацией. Установленный в 1 бит DF (Do not Fragment - не фрагментировать) запрещает маршрутизатору фрагментировать данный пакет, а установленный в 1 бит MF (More Fragments- больше фрагментов) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Оставшийся байт зарезервирован.
    Поле смещения фрагмента занимает 13 бит и задает смещение в байтах поля данных этого фрагмента относительно начала поля данных исходного нефрагментированного пакета. Используя при сборке/разборке фрагментов пакетов. Смещение должно быть кратно 8 байт.
    Поле времени жизни (Time To Live, TTL) занимает один байт и используется для задания предельного срока, в течение которого пакет может перемещаться по сети. Время жизни пакета измеряется в секундах и задается источником. По истечении каждой секунды пребывания на каждом из маршрутизаторов, через которые проходит пакет во время своего "путешествия" по сети, из его текущего времени жизни вычитается единица; единица вычитается и в том случае, если время пребывания было меньше секунды. Поскольку современные маршрутизаторы редко обрабатывают пакеты меньше секунды, то время жизни можно интерпретировать как максимальное число транзитных узлов, которые разрешено пройти пакету. Если значение поля времени жизни становится нулевым до того, как пакет достигает получателя, пакет уничтожается. Таким образом, время жизни является своего рода часовым механизмом самоуничтожения пакета.
    Поле протокола верхнего уровня занимает один байт и содержит идентификатор, указывающий, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета.
    Контрольная сумма заголовка занимает 2 байта (16 бит) и рассчитывается только по заголовку. Поскольку некоторые поля заголовка меняют свое значение в процессе передачи пакета по сети (например, поле времени жизни), контрольная сумма проверяется и повторно рассчитывается на каждом маршрутизаторе и конечном узле как дополнение к сумме всех 16 - битовых слов заголовка. При вычислении контрольной суммы значение самого поля контрольной суммы устанавливается в нуль. Если контрольная сумма неверна, то пакет отбрасывается, как только обнаруживается ошибка.
    Поля IP-адресов источника и приемника имеют одинаковую длину - 32 бита.
    Поля параметров является необязательным и используется обычно при отладке сети. Это поле состоит из нескольких подполей одного из восьми предопределенных типов. В этих подполях можно указывать точный маршрут, регистрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности или временные отметки.
    Так число подполей в поле параметров может быть произвольным, то в конце заголовка должно быть добавлено несколько нулевых байтов для выравнивания заголовка пакета по 32-битной границе.

  2. Литература
    1. Олифер, Олифер Компьютерные сети
    2. К. Е. Самуйлов, Д. С. Кулябов Учебно-методическое пособие по курсу "Сети и системы телекоммуникаций"
Hosted by uCoz

Hosted by uCoz