2.6
Формат IP пакета
Internet Protocol или IP
(англ. internet protocol —
межсетевой протокол) — маршрутизируемый сетевой протокол, протокол сетевого
уровня семейства TCP/IP.
Протокол
IP используется для негарантированной доставки данных, разделяемых на так
называемые пакеты от одного узла сети к другому. Это означает, что на уровне
этого протокола (третий уровень сетевой модели OSI) не даётся гарантий надёжной
доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке,
в котором были отправлены, продублироваться (когда
приходят две копии одного пакета; в реальности это бывает крайне редко),
оказаться повреждёнными (обычно повреждённые пакеты уничтожаются) или не
прибыть вовсе. Гарантию безошибочной доставки пакетов дают протоколы более высокого
(транспортного уровня) сетевой модели OSI — например, TCP — которые используют
IP в качестве транспорта.
В
современной сети Интернет используется IP четвёртой версии, также известный как
IPv4. В протоколе IP этой версии каждому узлу сети ставится в соответствие
IP-адрес длиной 4 октета (4 байта). При этом компьютеры в подсетях объединяются
общими начальными битами адреса. Количество этих бит, общее для данной подсети,
называется маской подсети (ранее использовалось деление пространства адресов по
классам — A, B, C; класс сети определялся диапазоном значений старшего октета и
определял число адресуемых узлов в данной сети, сейчас используется
бесклассовая адресация).
IP-пакет
— форматированный блок информации, передаваемый по вычислительной сети. Соединения
вычислительных сетей, которые не поддерживают пакеты, такие как традиционные
соединения типа «точка-точка» в телекоммуникациях, просто передают данные в
виде последовательности байтов, символов или битов. При использовании пакетного
форматирования сеть может передавать длинные сообщения более надежно и
эффективно.
0 |
1 |
2 |
3 |
||||||||||||||||||||||||||||
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Версия |
IHL |
Тип обслуживания |
Длина пакета |
||||||||||||||||||||||||||||
Идентификатор |
Флаги |
Смещение фрагмента |
|||||||||||||||||||||||||||||
Время жизни (TTL) |
Протокол |
Контрольная сумма
заголовка |
|||||||||||||||||||||||||||||
IP-адрес отправителя (32 бита) |
|||||||||||||||||||||||||||||||
IP-адрес получателя (32 бита) |
|||||||||||||||||||||||||||||||
Параметры (до 320 бит) |
Данные (до 65535 байт
минус заголовок) |
||||||||||||||||||||||||||||||
*
Версия — для IPv4 значение поля должно быть равно 4.
*
IHL — длина заголовка IP-пакета в 32-битных словах (dword).
Именно это поле указывает на начало блока данных в пакете. Минимальное
корректное значение для этого поля равно 5.
*
Идентификатор — значение, назначаемое отправителем пакета и предназначенное для
определения корректной последовательности фрагментов при сборке датаграммы. Для фрагментированного пакета все фрагменты
имеют одинаковый идентификатор.
*
3 бита флагов. Первый бит должен быть всегда равен нулю, второй бит DF (don’t fragment)
определяет возможность фрагментации пакета и третий бит MF (more fragments)
показывает, не является ли этот пакет последним в цепочке пакетов.
*
Смещение фрагмента — значение, определяющее позицию фрагмента в потоке данных.
*
Протокол — идентификатор интернет-протокола следующего
уровня.
*
Контрольная сумма заголовка — вычисляется с использованием операций сложения
16-разрядных слов заголовка по модулю 1. Сама контрольная сумма является
дополнением по модулю один полученного результата сложения.