IP (Internet Protocol) — это сетевой протокол, обеспечивающий маршрутизацию и доставку пакетов данных между узлами сети. Он является сетевым уровнем (Layer 3) модели OSI и основой всего стека TCP-IP.
Главная задача IP — доставка пакета от источника к получателю, даже если они находятся в разных сетях.
Основные свойства
Ненадёжный: IP не гарантирует доставку, порядок или уникальность пакетов. Потеря, дублирование или переупорядочивание пакетов допустимы.
Без установления соединения: не требует установления сессии между участниками.
Маршрутизируемый: каждый пакет содержит адрес источника и назначения, по которым маршрутизаторы выбирают путь.
Фрагментация: пакет может быть разделён на фрагменты для прохождения через сети с меньшим MTU.
Версии IP
IPv4
Адрес: 32 бита (пример: 192.168.0.1)
Макс. кол-во адресов: ~4.3 млрд
Заголовок: от 20 байт
Фрагментация: поддерживается
Широко используется до сих пор
IPv6
Адрес: 128 бит (пример: 2001:db8::1)
Макс. кол-во адресов: практически неограниченно
Заголовок: фиксированный 40 байт
Без NAT, встроенная поддержка IPSec, autoconfig, multicast
Фрагментация только на стороне источника
Структура заголовка IPv4
Поле
Размер (бит)
Описание
Version
4
Версия протокола (4)
IHL
4
Длина заголовка
DSCP/ECN
8
Классы обслуживания и управление перегрузкой
Total Length
16
Общая длина пакета
Identification
16
Идентификатор фрагментации
Flags + Fragment Offset
16
Управление фрагментацией
TTL
8
Время жизни пакета
Protocol
8
Протокол верхнего уровня (TCP=6, UDP=17, ICMP=1)
Header Checksum
16
Контрольная сумма заголовка
Source Address
32
IP-адрес источника
Destination Address
32
IP-адрес получателя
Options (необязательно)
—
Дополнительные параметры
Основные протоколы поверх IP
TCP (Transmission Control Protocol) — надёжный, с установлением соединения.
UDP (User Datagram Protocol) — простой, без соединения.
ICMP (Internet Control Message Protocol) — служебные сообщения и диагностика (ping, traceroute).
IGMP (Internet Group Management Protocol) — управление мультикаст-группами.
Ключевые понятия
MTU (Maximum Transmission Unit): макс. размер пакета в сети.
TTL (Time To Live): счётчик прыжков, уменьшается на каждом маршрутизаторе.
NAT (Network Address Translation): преобразование частных адресов в публичные.
Subnetting: деление сети на подсети для оптимизации маршрутизации.
Default Gateway: маршрутизатор, через который отправляются пакеты вне локальной сети.