Заголовок IP-пакета: формат, поля
⚡ Умное резюме
Заголовок IP-пакета — это метаданные, размещаемые в начале каждого IP-пакета и содержащие такие поля, как версия, длина заголовка, общая длина, время жизни, протокол, контрольная сумма, а также адреса источника и назначения, которые маршрутизаторы считывают для доставки данных.

Что такое IP-заголовок?
Заголовок IP-пакета — это метаинформация в начале IP-пакета. Он отображает такую информацию, как версия IP-пакета, длина пакета, источник и получатель.
Заголовок IPv4 имеет длину от 20 до 60 байт и содержит информацию, необходимую для маршрутизации и доставки. Он состоит из таких полей, как Version, Header Length, Total Length, Identification, Flags, Checksum, исходный IP-адрес и целевой IP-адрес. Вместе эти поля предоставляют необходимые данные для transmit надежно передает пакет от одного хоста к другому.
Компоненты/поля заголовка IPv4
На приведенной ниже диаграмме показан полный формат заголовка IPv4, при этом каждое поле отображено в своем правильном положении и с соответствующей разрядностью:
Ниже перечислены различные компоненты/поля заголовка IP-пакета:
- Версия: Первое поле заголовка IP-пакета — это 4-битный индикатор версии. В IPv4 значение этих четырех битов установлено на 0100, что в двоичном представлении означает 4. Если маршрутизатор не поддерживает указанную версию, пакет отбрасывается.
- Длина интернет-заголовка: Длина заголовка интернета (Internet Header Length, сокращенно IHL) составляет 4 бита. Также она называется HELEN (Header Length). Этот компонент IP показывает, сколько 32-битных слов содержится в заголовке.
- Тип обслуживания: Такой вид услуг также называется дифференцированными услугами. Code Точка, или DSCP. Это поле определяет характеристики, связанные с качеством обслуживания при потоковой передаче данных или VoIP-звонках. Первые 3 бита — это биты приоритета. Оно также определяет, как следует обрабатывать дейтаграмму.
- Общая длина: Общая длина измеряется в байтах. Минимальный размер IP-дейтаграммы составляет 20 байт, а максимальный — 65 535 байт. Для расчета размера полезной нагрузки можно использовать функции HELEN и Total Length. Все хосты должны уметь читать дейтаграммы размером 576 байт. Однако, если дейтаграмма слишком велика для хостов в сети, широко используется метод фрагментации.
- Идентификация: Поле «Идентификация» используется для однозначной идентификации фрагментов IP-дейтаграммы. Некоторые рекомендуют использовать это поле и для других целей, например, для добавления информации о пакете. tracIng.
- IP-флаги: Поле «Флаги» — это трехбитное поле, которое помогает управлять фрагментами и идентифицировать их. Возможные конфигурации: бит 0 зарезервирован и должен быть установлен в ноль; бит 1 означает отсутствие фрагментации; бит 2 означает наличие дополнительных фрагментов.
- Смещение фрагмента: Смещение фрагмента (Fragment Offset) представляет собой количество байтов данных, предшествующих конкретному фрагменту в конкретной датаграмме. Оно указывается в единицах 8 байтов и имеет максимальное значение 65 528 байтов.
- Время жить: Это 8-битное поле, указывающее максимальное время существования дейтаграммы в интернет-системе. При каждой обработке дейтаграммы её значение TTL уменьшается на единицу. Когда значение TTL достигает нуля, дейтаграмма отбрасывается, чтобы предотвратить бесконечную доставку пакетов. Значение TTL может принимать значения от 0 до 255.
- Протокол: В этом поле заголовка IPv4 указывается, какой интернет-протокол передается в последующей части датаграммы. Например, число 6 используется для обозначения TCP, а 17 — для обозначения протокола UDP.
- Контрольная сумма заголовка: Следующий компонент — 16-битное поле контрольной суммы заголовка, которое используется для проверки заголовка на наличие ошибок. IP-заголовок сравнивается со значением его контрольной суммы. Если контрольная сумма заголовка не совпадает, пакет отбрасывается.
- Адрес источника: Адрес источника — это 32-битный адрес источника, используемый для пакета IPv4.
- Адрес назначения: Адрес назначения также имеет размер 32 бита и хранит адрес получателя.
- Параметры IP: Это необязательное поле заголовка IPv4, используемое, когда значение IHL (Internet Header Length) больше 5. Оно содержит значения и настройки, относящиеся к безопасности, маршруту записи, метке времени и аналогичным параметрам. Список параметров обычно заканчивается маркером конца списка параметров (EOL).
- Данные: В этом поле хранятся данные с уровня протокола, передавшего данные на уровень IP.
Как рассчитать длину заголовка IPv4
Поле «Длина заголовка интернета» (IHL) точно указывает маршрутизатору длину заголовка, чтобы он знал, где заголовок заканчивается и начинаются данные. Поскольку это поле имеет ширину всего 4 бита, оно не хранит длину непосредственно в байтах. Вместо этого оно подсчитывает длину заголовка 32-битными словами, где каждое слово равно 4 байтам.
Чтобы преобразовать значение IHL в байты, умножьте его на 4:
- Минимум: Наименьшее допустимое значение в соответствии с МГП равно 5, поэтому 5 × 4 = 20 байт. Это заголовок без опций.
- Максимум: Наибольшее значение IHL равно 15, поэтому 15 × 4 = 60 байт. Дополнительные 40 байт содержат необязательные поля.
Рассмотрим пример. Если пакет приходит со значением IHL, равным 6, длина заголовка составляет 6 × 4 = 24 байта, то есть после стандартного 20-байтового заголовка присутствует 4 байта опций. Чтобы найти размер полезной нагрузки, подставьтеtracДлина заголовка определяется по полю «Общая длина». Если общая длина составляет 1,500 байт, а заголовок — 24 байта, то полезная нагрузка составляет 1,500 − 24 = 1,476 байт.
Этот расчет важен во время фрагментации, поскольку маршрутизатор должен знать размер заголовка, чтобы определить, какой объем данных может содержать каждый фрагмент, не превышая максимальный объем данных в сети. Transmission Единица измерения (МТУ).
Заголовки IPv4 и IPv6
Заголовок IPv6 был переработан, чтобы стать проще и быстрее в обработке, чем заголовок IPv4. Он использует фиксированную длину и выносит редко используемые параметры в отдельные расширенные заголовки, что позволяет маршрутизаторам пересылать пакеты на скорости линии. В таблице ниже приведено сравнение полей двух заголовков:
| Характеристика | Заголовок IPv4 | Заголовок IPv6 |
|---|---|---|
| Размер заголовка | 20–60 байт (переменное значение) | 40 байта (фиксированный размер) |
| Количество полей | 13 полей плюс опции | 8 полей |
| Длина адреса | 32-битный источник и получатель | 128-битный источник и получатель |
| Контрольная сумма заголовка | Представить | удален |
| Поля фрагментации | В базовом заголовке (Идентификация, Флаги, Смещение) | Перенесено в заголовок расширения фрагмента. |
| Параметры | Размещено внутри заголовка | Передаётся в заголовках расширения. |
| Поле длины | Общая длина (заголовок плюс данные) | Длина полезной нагрузки (только полезная нагрузка) |
Поскольку в IPv6 отбрасываются контрольная сумма и параметры переменной длины, его заголовок содержит меньше полей и может обрабатываться аппаратно без пересчета на каждом этапе передачи.
Почему заголовок IP важен
Каждое поле в заголовке IP-пакета существует для того, чтобы маршрутизаторы и хосты могли передавать пакет через множество сетей без постоянного соединения между ними. Именно заголовок обеспечивает работу пакетной коммутации.
- Маршрутизация: Адрес назначения указывает каждому маршрутизатору, куда следует переслать пакет, а адрес источника позволяет получать ответы и сообщения об ошибках.
- Предотвращение зацикливания: Поле «Время жизни» уменьшается на каждом этапе передачи, поэтому неправильно маршрутизированный пакет отбрасывается, вместо того чтобы бесконечно циркулировать в интернете.
- Доставка в соответствии с надлежащим протоколом: Поле «Протокол» указывает принимающему хосту, следует ли передавать полезную нагрузку по протоколу TCP, UDP или другому протоколу.
- Integrity и повторная сборка: Контрольная сумма защищает заголовок от повреждения, а поля «Идентификация», «Флаги» и «Смещение фрагмента» позволяют восстановить фрагментированную датаграмму в правильном порядке.
Для сетевых инженеров чтение этих полей в TCP / IP Захват трафика часто является самым быстрым способом диагностики потерянных пакетов, петель маршрутизации и неправильной конфигурации. IP-адреса.

