Заголовок IPv4 состоит из нескольких полей, каждое из которых выполняет свою функцию. Давайте рассмотрим основные поля заголовка IPv4:
- Версия (Version) - 4 бита. Указывает версию IP, для IPv4 это значение равно 4.
- Длина заголовка (IHL - Internet Header Length) - 4 бита. Указывает длину заголовка в 32-битных словах.
- Тип сервиса (Type of Service) - 8 бит. Используется для указания предпочтений по обработке пакета, таких как приоритет и задержка.
- Общая длина (Total Length) - 16 бит. Указывает общую длину IP-пакета, включая заголовок и данные.
- Идентификатор (Identification) - 16 бит. Используется для уникальной идентификации фрагментов пакета.
- Флаги (Flags) - 3 бита. Указывают, нужно ли фрагментировать пакет и есть ли еще фрагменты.
- Смещение фрагмента (Fragment Offset) - 13 бит. Указывает смещение фрагмента в оригинальном пакете.
- Время жизни (Time to Live - TTL) - 8 бит. Указывает максимальное количество хопов (передач через маршрутизаторы), которые пакет может пройти.
- Протокол (Protocol) - 8 бит. Указывает протокол верхнего уровня, который используется в передаваемых данных (например, TCP, UDP).
- Контрольная сумма заголовка (Header Checksum) - 16 бит. Используется для проверки целостности заголовка.
- Адрес источника (Source Address) - 32 бита. Указывает IP-адрес отправителя пакета.
- Адрес назначения (Destination Address) - 32 бита. Указывает IP-адрес получателя пакета.
- Опции (Options) - переменная длина. Дополнительные параметры, которые могут быть включены в заголовок.
- Дополнительные данные (Padding) - переменная длина. Используется для выравнивания заголовка до 32-битной границы.
Каждое из этих полей играет важную роль в процессе передачи данных по сети, обеспечивая правильную маршрутизацию и обработку пакетов.