Что такое IPv4? Полное руководство
Содержание
- Что такое IPv4
- История создания
- Структура адреса IPv4
- Классы адресов
- Маски подсети и CIDR
- Приватные и публичные адреса
- NAT — трансляция сетевых адресов
- Исчерпание адресного пространства
- Рынок IPv4-адресов
- Заголовок пакета IPv4
- Фрагментация
- Контрольная сумма
- TTL — время жизни пакета
- Протоколы на базе IPv4
- IPv4 и прокси
- Сравнение с IPv6
- Будущее IPv4
Что такое IPv4
IPv4 (Internet Protocol version 4) — четвёртая версия протокола Интернета, основа глобальной сети с 1981 года. Описан в RFC 791. До сих пор является доминирующим протоколом, через который проходит более 60% мирового интернет-трафика.
IPv4 использует 32-битные адреса, что даёт теоретически 232 = 4 294 967 296 возможных адресов. На практике доступно меньше из-за резервирования служебных диапазонов.
Протокол работает на сетевом уровне модели OSI, обеспечивая адресацию и маршрутизацию пакетов между узлами сети.
История создания
Разработка IPv4 началась в 1970-х годах в рамках проекта ARPANET. Первая спецификация опубликована в RFC 760 (1980 год), финальная версия — в RFC 791 (сентябрь 1981 года).
При создании протокола 32-битное адресное пространство считалось более чем достаточным — 4,3 миллиарда адресов для мира, где компьютеры были редкостью. Никто не предполагал, что через 30 лет каждый телефон, телевизор и холодильник потребуют собственный IP-адрес.
Внедрение IPv4 стало ключевым фактором роста Интернета. Протокол пережил переход от ARPANET к NSFNET, появление WWW, бум доткомов и мобильную революцию.
Структура адреса IPv4
Адрес IPv4 состоит из 32 бит и записывается в десятичной нотации с точками — четыре октета по 8 бит, разделённых точками:
192.168.1.1
Каждый октет может принимать значения от 0 до 255. Адрес делится на две части:
- Сетевая часть — идентификатор сети (префикс)
- Хостовая часть — идентификатор устройства внутри сети
Граница между частями определяется маской подсети.
Классы адресов
Исторически адреса делились на классы (classful addressing):
| Класс | Диапазон | Префикс | Хостов | Назначение |
|---|---|---|---|---|
| A | 1.0.0.0 — 126.255.255.255 | /8 | ~16,7 млн | Крупные сети |
| B | 128.0.0.0 — 191.255.255.255 | /16 | ~65 534 | Средние сети |
| C | 192.0.0.0 — 223.255.255.255 | /24 | 254 | Малые сети |
| D | 224.0.0.0 — 239.255.255.255 | — | — | Multicast |
| E | 240.0.0.0 — 255.255.255.255 | — | — | Экспериментальные |
Классовая система была неэффективной: класс C (254 хоста) слишком мал, класс B (65 534) слишком велик. Это приводило к浪费 адресов. В 1993 году на смену пришла бесклассовая адресация CIDR.
Маски подсети и CIDR
Маска подсети определяет границу между сетевой и хостовой частями адреса. Записывается в десятичной нотации (255.255.255.0) или в CIDR-нотации (/24).
CIDR (Classless Inter-Domain Routing) — бесклассовая адресация, внедрённая в 1993 году (RFC 1518, 1519). Позволяет гибко выделять блоки любого размера, а не только /8, /16, /24.
Примеры масок:
| CIDR | Маска | Хостов |
|---|---|---|
| /24 | 255.255.255.0 | 254 |
| /16 | 255.255.0.0 | 65 534 |
| /8 | 255.0.0.0 | 16 777 214 |
| /30 | 255.255.255.252 | 2 |
| /32 | 255.255.255.255 | 1 (конкретный хост) |
Первый адрес подсети — адрес сети, последний — широковещательный (broadcast). Оба не назначаются устройствам.
Приватные и публичные адреса
Из-за дефицита адресов были выделены приватные диапазоны (RFC 1918), не маршрутизируемые в публичном Интернете:
| Диапазон | CIDR | Размер |
|---|---|---|
| 10.0.0.0 — 10.255.255.255 | /8 | ~16,7 млн |
| 172.16.0.0 — 172.31.255.255 | /12 | ~1 млн |
| 192.168.0.0 — 192.168.255.255 | /16 | 65 536 |
Также существуют служебные диапазоны:
- 127.0.0.0/8 — loopback, адрес 127.0.0.1 указывает на само устройство
- 169.254.0.0/16 — link-local (APIPA), автоназначение при отсутствии DHCP
- 0.0.0.0/8 — "эта сеть", используется при инициализации
- 255.255.255.255 — ограниченный broadcast
NAT — трансляция сетевых адресов
NAT (Network Address Translation) — технология, позволившая отсрочить исчерпание IPv4 на десятилетия. Описана в RFC 1631 (1994 год), позже обновлена в RFC 3022.
Принцип работы:
- Устройства внутри локальной сети используют приватные адреса
- При выходе в Интернет NAT-шлюз подменяет приватный адрес на свой публичный
- При ответе шлюз восстанавливает приватный адрес получателя
Типы NAT:
- Static NAT — постоянное соответствие один-к-одному
- Dynamic NAT — адрес выдаётся из пула на время сессии
- PAT (NAPT) — трансляция с учётом портов (много устройств за одним IP)
- CGN (Carrier-Grade NAT) — NAT уровня провайдера, двойной NAT
NAT имеет серьёзные недостатки: нарушает принцип сквозной связности (end-to-end), усложняет пиринговые соединения, мешает работе некоторых протоколов (IPsec, FTP, SIP). Но именно NAT позволил Интернету расти при ограниченном адресном пространстве IPv4.
Исчерпание адресного пространства
Проблема исчерпания IPv4-адресов была предсказана ещё в конце 1980-х. Временные меры — CIDR, NAT, приватные адреса — отсрочили кризис, но не решили проблему.
Ключевые даты:
- 31 января 2011 года — IANA выделила последние два блока /8 регистратору APNIC
- 3 февраля 2011 года — IANA распределила последние пять блоков /8 (по одному каждому RIR)
- 15 апреля 2011 года — APNIC первым исчерпал свободные адреса
- 14 сентября 2012 года — RIPE NCC исчерпал пул
- 10 июня 2014 года — LACNIC исчерпал пул
- 24 сентября 2015 года — ARIN объявил о полном исчерпании
Единственный регистратор с остатком адресов — AfriNIC (Африка), но и его резервы подходят к концу.
Рынок IPv4-адресов
После исчерпания бесплатных адресов сформировался вторичный рынок. Компании продают неиспользуемые блоки. Цена за один адрес IPv4 выросла с ~$5 (2011) до $25-30 (2021), в пиковые моменты доходила до $60.
Крупнейшие сделки:
- MIT продал /8 (16,7 млн адресов) — одна из крупнейших продаж
- Merck продал /8 Amazon Web Services
- Рынок оценивается в сотни миллионов долларов ежегодно
Рынок создал парадоксальную ситуацию: IPv4-адреса стали дефицитным активом, торгуемым как недвижимость, в то время как IPv6-адреса практически бесплатны и неограниченны.
Заголовок пакета IPv4
Заголовок IPv4 состоит из 20 байт (без опций) и содержит 14 полей:
| Поле | Бит | Описание |
|---|---|---|
| Version | 4 | Версия протокола (4) |
| IHL | 4 | Длина заголовка в 32-битных словах |
| DSCP/ECN | 8 | Тип обслуживания, приоритет |
| Total Length | 16 | Полная длина пакета (макс. 65 535 байт) |
| Identification | 16 | Идентификатор для сборки фрагментов |
| Flags | 3 | DF (Don't Fragment), MF (More Fragments) |
| Fragment Offset | 13 | Смещение фрагмента |
| TTL | 8 | Время жизни (макс. 255) |
| Protocol | 8 | Вышестоящий протокол (TCP=6, UDP=17) |
| Header Checksum | 16 | Контрольная сумма заголовка |
| Source Address | 32 | IP-адрес отправителя |
| Destination Address | 32 | IP-адрес получателя |
Опции могут увеличить заголовок до 60 байт, но используются редко.
Фрагментация
Если пакет превышает MTU канала, он фрагментируется. В IPv4 фрагментацию может выполнять как отправитель, так и промежуточный маршрутизатор.
Фрагменты собираются только на стороне получателя. Если потерян один фрагмент — весь пакет отбрасывается. Это создаёт проблемы: атаки типа "отказ в обслуживании" через фрагментированные пакеты, повышенная нагрузка на получателя.
Флаг DF (Don't Fragment) запрещает фрагментацию — используется в Path MTU Discovery для определения минимального MTU на пути.
Контрольная сумма
IPv4 вычисляет контрольную сумму только для заголовка, не для данных. Каждый маршрутизатор пересчитывает её, так как TTL уменьшается на каждом хопе.
Алгоритм: заголовок разбивается на 16-битные слова, вычисляется сумма с дополнением до единицы. Это создаёт вычислительную нагрузку на маршрутизаторы. В IPv6 от контрольной суммы отказались.
TTL — время жизни пакета
TTL (Time to Live) — счётчик, ограничивающий время жизни пакета в сети. Изначально измерялся в секундах, на практике — в количестве хопов (маршрутизаторов).
Каждый маршрутизатор уменьшает TTL на 1. При TTL=0 пакет отбрасывается, отправителю посылается ICMP-сообщение "Time Exceeded".
Начальные значения TTL зависят от ОС:
- Linux — 64
- Windows — 128
- macOS/iOS — 64
- Cisco IOS — 255
Утилита traceroute использует TTL для определения маршрута: посылает пакеты с TTL=1,2,3... и фиксирует от каких маршрутизаторов приходят ICMP-ответы.
Протоколы на базе IPv4
IPv4 — фундамент, поверх которого работают транспортные протоколы:
| Протокол | Номер | Назначение |
|---|---|---|
| ICMP | 1 | Диагностика, ping, traceroute |
| IGMP | 2 | Управление multicast-группами |
| TCP | 6 | Надёжная передача с подтверждением |
| UDP | 17 | Быстрая передача без подтверждения |
| GRE | 47 | Инкапсуляция для туннелей |
| ESP | 50 | IPsec — шифрование данных |
| AH | 51 | IPsec — аутентификация |
IPv4 и прокси
IPv4-прокси — наиболее востребованный тип прокси-серверов. Они совместимы со 100% сайтов и сервисов, не требуют специальной настройки клиента.
Типы IPv4-прокси:
- HTTP/HTTPS — для веб-трафика
- SOCKS4/SOCKS5 — универсальные, поддерживают UDP
- Резидентные (Residential) — адреса реальных провайдеров
- Дата-центровые (Datacenter) — адреса хостинг-провайдеров
- Мобильные — IP сотовых операторов
Основной недостаток — ограниченное количество и высокая стоимость. IPv4-прокси дороже IPv6 в 5-10 раз именно из-за дефицита адресов.
Сравнение с IPv6
| Характеристика | IPv4 | IPv6 |
|---|---|---|
| Размер адреса | 32 бит | 128 бит |
| Адресное пространство | ~4,3 млрд | ~340 ундециллионов |
| NAT | Широко используется | Не требуется |
| Заголовок | 20-60 байт | 40 байт (фикс.) |
| Контрольная сумма | Есть | Нет |
| Фрагментация | Отправитель + маршрутизаторы | Только отправитель |
| IPsec | Опционально | Обязательно |
| QoS | ToS (8 бит) | Flow Label (20 бит) + Traffic Class |
| Broadcast | Есть | Заменён на Multicast |
| Автоконфигурация | DHCP | SLAAC + DHCPv6 |
| Совместимость | 100% сайтов | ~41% (Google, 2024) |
| Стоимость адресов | $25-60/адрес | Практически бесплатно |
Будущее IPv4
IPv4 не исчезнет полностью ещё много лет. Он продолжит работать параллельно с IPv6 в режиме dual stack.
Основные тренды:
- IPv4-адреса останутся дефицитным и дорогим ресурсом
- NAT продолжит эволюционировать (CGNAT, NAT64, 464XLAT)
- Новые сервисы будут запускаться на IPv6-first с пробросом через NAT64 для legacy-клиентов
- Рынок IPv4-адресов сохранится, но спрос будет снижаться по мере роста IPv6-трафика
Практическая рекомендация: если вам нужна максимальная совместимость — берите IPv4. Если нужен большой пул адресов по низкой цене — выбирайте IPv6 через сервисы, которые обеспечивают совместимость с IPv4-сетями.