В 1983 году протокол IPv4 был впервые использован в Сети управления перспективных исследований и разработок (ARPANET), предшественнице современного Интернета. IPv4 по-прежнему является наиболее распространённым протоколом сетевого уровня и широко применяется в сети Интернет.
Пакет IPv4 состоит из двух частей:
- заголовок IP: определяет характеристики пакета;
- полезная нагрузка: содержит информацию сегмента уровня 4 и фактические данные.
Как показано на рисунке, заголовок пакета IPv4 состоит из нескольких полей, включающих важную информацию о пакете. Эти поля содержат двоичные числа, которые анализируются процессом уровня 3. Двоичные значения каждого поля определяют различные параметры пакета IP.
Среди наиболее важных полей в заголовке IPv4 можно выделить следующие.
- Версия: включает в себя 4-битное двоичное значение, определяющее версию IP-пакета. Для пакетов IPv4 в этом поле всегда указано значение 0100.
- Дифференцированные сервисы (DS): поле, которое ранее называлось «Тип сервиса» (ToS); DS — это 8-битное поле, используемое для определения приоритета каждого пакета. Первые 6 бит определяют значение точки кода дифференцированных сервисов (DSCP), которое используется механизмом обеспечения качества обслуживания (QoS). Последние 2 бита определяют значение явного уведомления о перегрузке (ECN), которое можно использовать для предотвращения потери пакетов во время перегрузки сети.
- Время существования (TTL): содержит 8-битное двоичное значение, используемое для ограничения времени существования пакета. Оно указывается в секундах, но обычно подразумевает количество переходов. Отправитель пакета устанавливает начальное значение времени существования (TTL), которое уменьшается на единицу, или переход в процессе каждой обработки пакета маршрутизатором. Если значение в поле TTL уменьшается до нуля, маршрутизатор отбрасывает пакет и отправляет на IP-адрес источника сообщение о превышении времени протокола ICMP (управление сообщениями в сети). Команда traceroute задействует это поле, чтобы определить маршруты, использованные между источником и назначением.
- Протокол: 8-битное двоичное значение, указывающее тип полезной нагрузки данных, которые переносит пакет, что позволяет сетевому уровню пересылать данные на соответствующий протокол более высокого уровня. Часто встречаются значения ICMP (1), TCP (6), и UDP (17).
- IP-адрес источника: содержит 32-битное двоичное значение, которое представляет IP-адрес источника пакета.
- IP-адрес назначения: содержит 32-битное двоичное значение, которое представляет IP-адрес назначения пакета.
Два наиболее часто используемых поля — это IP-адрес источника и IP-адрес назначения. Эти поля определяют, откуда поступил пакет и куда он направляется. Обычно в процессе передачи от узла источника к узлу назначения эти адреса не меняются.