Это протокол, предназнач-ый д/доставки данных в сетях с коммутацией пакетов, имеющ-х сложную структуру. Основ-ые ф-ции протокола: адресация; фрагментация. Протокол не гарантирует доставку д-х и не обеспеч-т сохран-е порядка следования пакета. IP пакет состоит из заголовка и блока д-х. Заголовок имеет длину кратную 32 битам. Min-ая длина заголовка – 20 бит.
Ver – поле версии – 4 бита. IHL – длина заголовка содержит длину заголовка в 32-х битных словах – 4 бита. TOS – тип сервиса состоит из нескольких полей. Первые 3 бита – приоритет пакета, он может меняться от 000 (обычный) до 111 (max). Затем 3 бита – флаги: задержка, пропускная способность и надёжность, последние 2 бита не используются. Length – поле длины содержит общую длину пакета в байтах – 16 бит. ID – идентификатор – 16 бит. Flags – флаги – 3 бита. TTL – время жизни пакета. Каждый шлюз, через который проходит IP пакет, уменьшает значение этого поля на 1 – 8 бит.
Protocol – содержит номер протокола, пакет которого содержится в IP пакете – 8 бит. Header Checksum – поле контрольной суммы содержит контрольную сумму заголовка – 16 бит. Source Address – адрес отправителя – 32 бита. Destination Address – адрес получателя – 32 бита. Options – поле дополнит-х параметров переменной длины. Pad – поле заполнения, содержащие 0.
Фрагментация IP пакетов.Поле Flags состоит из 3-х битов: 1-й – флаг MF (больше фрагментов расшифров-ся), 2 – DF (запрет фрагментации), 3-й бит всегда = 0. Если шлюз получает пакет, размер которого превышает MTU (max передаваемый пакет) канала, через который этот пакет должен быть передан, то он действует следующим образом: извлекает из пакета данные и разбивает их так, чтобы можно было сформировать пакеты небольшой длины. После этого генерируется 16-ти битный идентификатор так, чтобы он был уникальным на данном шлюзе для данных отправителя и получателя. После этого формируются IP пакеты, заголовки, которые идентичны заголовку исходного пакета. Если шлюз получает пакет с установленным флагом MF, то он создаёт в памяти буфер и помещает в него данные, содержащиеся в полученном пакете, учитывая при этом смещение фрагмента.
После получения последнего пакета, шлюз собирает исходный пакет и передаёт его дальше. Значение счётчика, связанного с буфером, периодически уменьшается. Если к тому моменту, как значение счётчика достигнет 0, будут получены не все фрагменты, то пакет уничтожается, а отправителю высылается ICMP сообщение о превышении времени жизни. Сборка фрагментов осущ-ся даже в том случае, если следующий канал имеет MTU недостаточным для передачи пакетов целиком. Если размер пакета превышает MTU канала, через который его следует передавать, и при этом в пакете установлен флаг DF, то шлюз уничтожает пакет и высылает отправителю ICMP сообщение о невозможности доставки пакета.