|
Формат
пакета IP
Пакет IP состоит
из заголовка и поля данных. Заголовок пакета имеет следующие поля.
- Поле "Номер версии"
(VERS) указывает версию протокола IP. Сейчас повсеместно используется версия
4 и готовится переход на аерсию 6, называемую также IPng (IP next generation).
- Поле "Длина заголовка"
(HLEN) пакета IP занимает 4 бита и указывает значение длины заголовка, измеренное
в 32-битовых словах. Обычно заголовок имеет длину в 20 байт (пять 32-битовых
слов), но при увеличении объема служебной информации эта длина может быть
увеличена за счет использования дополнительных байт в поле Резерв (IP
OPTIONS).
- Поле "Тип сервиса"
(SERVICE TYPE) занимает 1 байт и задает приоритетность пакета и вид критерия
выбора маршрута. Первые три бита этого поля образуют подполе приоритета пакета
(PRECEDENCE). Приоритет может иметь значения от 0 (нормальный пакет) до 7
(пакет управляющей информации). Маршрутизаторы и компьютеры могут принимать
во внимание приоритет
пакета и обрабатывать более важные пакеты в первую очередь. Поле "Тип
сервиса" содержит также три бита, определяющие критерий выбора маршрута.
Установленный бит D (delay) говорит о том, что маршрут должен выбираться для
минимизации задержки доставки данного пакета, бит Т - для максимизации пропускной
способности, а бит R - для максимизации надежности доставки.
- Поле "Общая длина"
(TOTAL LENGTH) занимает 2 байта и указывает общую длину пакета с учетом заголовка
и поля данных.
- Поле "Идентификатор
пакета" (IDENTIFICATION) занимает 2 байта и используется для распознавания
пакетов, образовавшихся путем фрагментации исходного пакета. Все фрагменты
должны иметь одинаковое значение этого поля.
- Поле "Флаги"
(FLAGS) занимает 3 бита, оно указывает на возможность фрагментации пакета
(установленный бит Do not Fragment - DF - запрещает маршрутизатору фрагментировать
данный пакет), а также на то, является ли данный пакет промежуточным или последним
фрагментом исходного пакета (установленный бит More Fragments - MF - говорит
о том, что пакет переносит промежуточный фрагмент).
- Поле "Смещение
фрагмента" (FRAGMENT OFFSET) занимает 13 бит, оно используется для указания
в байтах смещения поля данных этого пакета от начала общего поля данных исходного
пакета, подвергнутого фрагментации. Используется при сборке/разборке фрагментов
пакетов при передачах их между сетями с различными величинами максимальной
длины пакета.
- Поле "Время жизни"
(TIME TO LIVE) занимает 1 байт, и указывает предельный срок, в течение которого
пакет может перемещаться по сети. Время жизни данного пакета измеряется в
секундах и задается источником передачи средствами протокола IP. На шлюзах
и в других узлах сети по истечении каждой секунды из текущего времени жизни
вычитается единица; единица вычитается также при каждой транзитной передаче
(даже если не прошла секунда). По истечении времени жизни пакет аннулируется.
- Поле "Идентификатор
Протокола верхнего уровня" (PROTOCOL) занимает 1 байт и указывает, какому
протоколу верхнего уровня принадлежит пакет (например, это могут быть протоколы
TCP, UDP или RIP).
- Поле "Контрольная
сумма" (HEADER CHECKSUM) занимает 2 байта, она рассчитывается по всему
заголовку.
- Поля "Адрес источника"
(SOURCE IP ADDRESS) и Адрес назначения (DESTINATION IP ADDRESS) имеют одинаковую
длину - 32 бита, и одинаковую структуру.
- Поле "Резерв"
(IP OPTIONS) является необязательным и используется обычно только при отладке
сети. Это поле состоит из нескольких подполей,
каждое из которых может быть одного из восьми предопределенных типов. В этих
подполях можно указывать точный маршрут прохождения маршрутизаторов, регистрировать
проходимые пакетом маршрутизаторы, помещать данные системы безопасности, а
также временные отметки. Так как число подполей может быть произвольным, то
в конце поля Резерв должно быть добавлено несколько байт для выравнивания
заголовка пакета по 32-битной границе.
Максимальная
длина поля данных пакета ограничена разрядностью поля, определяющего эту величину,
и составляет 65 535 байтов, однако при передаче по сетям различного типа длина
пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня,
несущего IP-пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной
длиной в 1500 байтов, умещающиеся в поле данных кадра Ethernet.
|