| Область пакета
| Описание
|
| Версия
| Кодирует версию IP-протокола. Версия необходима для интерпретации остального содержимого IP-пакета.
|
| Длина заголовка версии
| Размер в 32х-разрядных словах минус минимальный размер заголовка. 0 – длина заголовка 5, т.к. просто значения 0, 1,2 смысла не имеют.
|
| Тип службы
| Несколько битов, которые задают требования.
PR – высокоприоритетный пакет;
D (delay) – при передаче нужно минимизировать задержку;
T (трафик) – передавать пакет по пути с наименьшим трафиком;
R (reliability) – передавать по наиболее надежному пути.
Биты наглядно показывают, что протокол IP разрабатывался именно в военных целях.
Добраться к любому узлу можно разными маршрутами:

|
| Общая длина в байтах
| Общая дина пакета (IP дейтаграммы). Максимальное значение – 65535 байт – это значение иногда может использоваться, чтобы показать, что размер IP дейтаграммы превышает 65535 байт, затем происходит вычисление реальных размеров.
|
| ID пакета
| Позволяет идентифицировать и отличать пакеты друг от друга. Обеспечивает возможность фрагментации и сборки пакетов: длинная дейтаграмма может быть разбита на несколько дейтаграмм с одним и тем же ID пакета.
|
| Флаги
| 0 – не фрагментировать,
М – больше нет фрагментов.
Если 0 не установлен, то для дейтаграммы была выполнена фрагментация.
Если установлен флаг М, то это последний фрагмент дейтаграммы.
|
| Смещение
| Логическое смещение байтов, которые нужно вложить в дейтаграмму.
Можно пронумеровать фрагменты и собрать дейтаграмму.
Вопрос: приняли фрагмент 2, где его хранить?
Ответ: вместо нумерации используется позиция в байтах, где лежит пакет. Смещение сразу показывает, куда вложить пакет.
|
| TTL (time to life) – время жизни
| Показывает, сколько секунд/миллисекунд провел пакет в сети – это было первоначальное предназначение. На данном этапе это значение играет роль счетчика количества маршрутизаторов, через которые прошел пакет. Максимальное количество – 255. Счетчик обратный.
255 – это максимальное количество узлов, через которые два узла в сети могут быть связаны. Когда значение поля достигает 0, пакет выбрасывается. Это дает сети возможность «выжить» в случае неправильной настройки (зацикливание пакета становится невозможным).
|
| Протокол
| Код протокола (UPD, TCP, ICMP – internet control message protocol) более высокого уровня, пакет которого передается в качестве данных дейтаграммы. Протокол позволяет понять, как интерпретировать данные, которые затем передаются на обработку драйверам UPD, TCP, и т.д.
|
| Контрольная сумма
| Это дополнение к единице суммы всех байтов заголовка. Обеспечивает устойчивость, защиту от ошибок, наводок и т.д.
|
| IP-адрес получателя
| Значения необходимо читать как байты, а затем восстанавливать.
|
| IP-адрес отправителя
|
| Параметры
| Дополнительные опции для управления дейтаграммой: код команды (1,2 байта), 1,2,3 – дополнительные байты параметров. В сумме параметры могут не быть кратны 4 байтам, тогда их следует дополнять нулями.
|