IP (Internet Protocol) – сетевой протокол третьего уровня модели OSI, отвечающий за маршрутизацию пакетов данных между узлами сети через интернет или другие IP-сети. В настоящее время используются две версии протокола:
Основные характеристики IP
- Без установления соединения (Connectionless): IP не устанавливает соединение перед передачей данных. Каждый пакет передается независимо от других и может следовать разным маршрутам до назначения.
- Безгарантийная доставка (Best-effort delivery): Протокол IP не гарантирует доставку пакета до адресата. Это означает, что пакеты могут теряться, дублироваться или приходить в неправильном порядке. За надежность доставки отвечают верхние уровни протоколов, такие как TCP.
- Маршрутизация: Основная функция IP заключается в передаче пакетов данных от отправителя к получателю. Для этого используется таблица маршрутов, которая определяет следующий узел (маршрутизатор), куда следует передать пакет.
- Фрагментация и сборка: Если размер пакета превышает максимальный допустимый размер (MTU) для определенного участка сети, IP-фрагментирует пакет на несколько частей. Эти части собираются обратно на стороне получателя.
Структура заголовка IP-пакета
Заголовок IP-пакета содержит следующую информацию:
struct ip_header {
uint8_t version; // Версия протокола (IPv4 = 4)
uint8_t ihl; // Длина заголовка в 32-битных словах
uint8_t tos; // Тип обслуживания (Type of Service)
uint16_t total_len; // Общая длина пакета (заголовок + данные)
uint16_t id; // Идентификатор пакета
uint16_t flags_frag_off; // Флаги фрагментации и смещение фрагмента
uint8_t ttl; // Время жизни пакета (Time to Live)
uint8_t protocol; // Протокол верхнего уровня (TCP, UDP, ICMP и др.)
uint16_t checksum; // Контрольная сумма заголовка
struct in_addr src_ip; // Адрес источника
struct in_addr dst_ip; // Адрес назначения
};
Особенности работы над IP
- Протоколы транспортного уровня: Над IP работают транспортные протоколы, такие как TCP и UDP. Они обеспечивают дополнительные функции, такие как установление соединения (TCP) или передача данных без установления соединения (UDP).
- Адресция: IP-адреса являются уникальными идентификаторами узлов в сети. В IPv4 они имеют длину 32 бита и представлены в виде четырех октетов (например,
192.168.0.1). В IPv6 адреса имеют длину 128 бит и записываются в шестнадцатеричной форме (например,2001:db8::1234:5678). - Маршрутизация: Маршрутизаторы используют таблицы маршрутов для определения пути передачи пакетов. Таблицы маршрутов содержат записи о том, какие маршруты доступны и какой интерфейс использовать для отправки пакета.
- ICMP (Internet Control Message Protocol): Этот протокол используется для диагностики и управления сетью. Он позволяет отправлять сообщения об ошибках и другую служебную информацию.
Версии протокола IPv4 и IPv6
1. Размер адресного пространства
- IPv4: Использует 32-битные адреса, что дает около 4 миллиардов уникальных адресов ().
- IPv6: Использует 128-битные адреса, что значительно увеличивает количество возможных адресов до , что примерно равно .
2. Формат заголовков
- IPv4: Заголовок имеет фиксированную длину 20 байт и включает поля, такие как Version, IHL (Длина заголовка), Type of Service (ToS), Total Length, Identification, Flags, Fragment Offset, Time to Live (TTL), Protocol, Header Checksum, Source Address, Destination Address.
- IPv6: Заголовок также имеет фиксированную длину 40 байт, но структура отличается. Включает поля Version, Traffic Class, Flow Label, Payload Length, Next Header, Hop Limit, Source Address, Destination Address. Отсутствует поле контрольной суммы, так как ее вычисление возложено на протоколы верхних уровней.
3. Поддержка качества обслуживания (QoS)
- IPv4: Поддерживает базовую дифференциацию услуг через поле ToS (Type of Service), которое редко использовалось в реальных сетях.
- IPv6: Имеет улучшенную поддержку QoS благодаря полю Traffic Class и Flow Label, что позволяет лучше управлять трафиком в зависимости от типа приложения.
4. Автоматическая конфигурация
- IPv4: Обычно использует DHCP (Dynamic Host Configuration Protocol) для автоматической конфигурации адресов.
- IPv6: Поддерживает автоматическое конфигурирование адресов с помощью механизма Stateless Address Autoconfiguration (SLAAC), который позволяет хостам автоматически генерировать свои собственные глобальные уникальные адреса на основе информации, полученной от маршрутизаторов.
5. Безопасность
- IPv4: Безопасность обеспечивается дополнительными протоколами, такими как IPSec, который добавляет шифрование и аутентификацию.
- IPv6: Подключение IPSec встроено непосредственно в стандарт IPv6, что делает его использование более удобным и эффективным.
6. Маршрутизация и фрагментация
- IPv4: Фрагментацию выполняет каждый промежуточный маршрутизатор при необходимости.
- IPv6: Фрагментация выполняется только исходным узлом, а не промежуточными маршрутизаторами, что упрощает обработку трафика.
7. Расширяемость
- IPv4: Ограниченная расширяемость, так как заголовки имеют фиксированный формат.
- IPv6: Поддерживает расширение заголовков через механизм дополнительных заголовков, что позволяет добавлять новые функции без изменения основного формата заголовка.
8. Переход с IPv4 на IPv6
- IPv4: Существует множество механизмов перехода, таких как NAT (Network Address Translation), туннелирование (например, 6in4, Teredo) и двойные стеки (Dual Stack).
- IPv6: Переход на IPv6 требует поддержки со стороны оборудования и программного обеспечения, однако механизмы перехода позволяют сосуществовать обеим версиям протокола.
Таким образом, IPv6 был разработан для решения проблем, связанных с исчерпанием адресного пространства IPv4, улучшения безопасности, упрощения маршрутизации и повышения эффективности работы сетей.
Сегменты IP адресов и маски
Таблица 1: Диапазоны частных (локальных) IP-адресов
| Класс | Диапазон адресов | Маска подсети |
|---|---|---|
| A | 10.0.0.0 - 10.255.255.255 | /8 |
| B | 172.16.0.0 - 172.31.255.255 | /12 |
| C | 192.168.0.0 - 192.168.255.255 | /16 |
Таблица 2: Специальные IP-адреса
| Тип адреса | Диапазон/Адрес | Описание |
|---|---|---|
| Loopback | 127.0.0.0/8 (IPv4) ::1 (IPv6) | Используется для тестирования и обратной связи |
| Broadcast | Последний адрес подсети (IPv4) | Посылка сообщений всем устройствам в сети |
| Multicast | 224.0.0.0 - 239.255.255.255 (IPv4) FF00::/8 (IPv6) | Посылка сообщений группе устройств |
Таблица 3: Примеры маски подсети и соответствующего ей количества хостов
| Маска подсети (CIDR) | Маска подсети (Десятичная) | Количество хостов |
|---|---|---|
| /24 | 255.255.255.0 | 254 |
| /23 | 255.255.254.0 | 510 |
| /22 | 255.255.252.0 | 1022 |
| /21 | 255.255.248.0 | 2046 |
| /20 | 255.255.240.0 | 4094 |
| /19 | 255.255.224.0 | 8190 |
| /18 | 255.255.192.0 | 16382 |
| /17 | 255.255.128.0 | 32766 |
| /16 | 255.255.0.0 | 65534 |