Что такое IP-адресация? Чем отличаются IPv4 и IPv6?
IP-адрес (Internet Protocol Address) — уникальный логический идентификатор устройства в сети на сетевом уровне (L3), используемый для маршрутизации пакетов между сетями.
Аналогия из жизни: если MAC-адрес — это серийный номер на корпусе телефона (привязан к устройству), то IP-адрес — это номер телефона (привязан к сети и может меняться при переезде).
IPv4 (Internet Protocol version 4)
- 32-битный адрес, записывается как 4 десятичных числа через точку:
192.168.1.100 - Каждое число — 1 байт (0–255)
- Всего 2³² ≈ 4.3 млрд адресов (этого уже недостаточно)
- Адрес делится на сетевую часть и хостовую часть (определяется маской подсети)
Специальные диапазоны IPv4
| Диапазон | Назначение |
|---|---|
10.0.0.0/8 |
Частная сеть (класс A) |
172.16.0.0/12 |
Частная сеть (класс B) |
192.168.0.0/16 |
Частная сеть (класс C) |
127.0.0.0/8 |
Loopback (localhost), чаще всего 127.0.0.1 |
0.0.0.0 |
Все интерфейсы (при привязке сервера) |
255.255.255.255 |
Широковещательный адрес |
169.254.0.0/16 |
Link-local (автоматическая настройка при отсутствии DHCP) |
IPv6 (Internet Protocol version 6)
- 128-битный адрес, записывается как 8 групп по 4 hex-цифры через двоеточие:
2001:0db8:85a3:0000:0000:8a2e:0370:7334 - Можно сокращать: ведущие нули опускаются, последовательные группы нулей заменяются на
::(один раз):2001:db8:85a3::8a2e:370:7334 - 2¹²⁸ ≈ 3.4×10³⁸ адресов — хватит надолго
- Нет NAT — каждое устройство может иметь глобально уникальный адрес
- Нет broadcast — вместо него multicast
::1— loopback (аналог127.0.0.1)fe80::/10— link-local адреса (аналог169.254.x.xв IPv4)
Сравнение IPv4 и IPv6
| Свойство | IPv4 | IPv6 |
|---|---|---|
| Длина адреса | 32 бита | 128 бит |
| Формат записи | Десятичный (192.168.1.1) |
Шестнадцатеричный (2001:db8::1) |
| Количество адресов | ~4.3 млрд | ~3.4×10³⁸ |
| Заголовок | Переменной длины (20–60 байт) | Фиксированной длины (40 байт), проще для обработки |
| NAT | Широко используется | Не нужен |
| IPSec | Опционально | Встроен в спецификацию |
| Broadcast | Есть | Нет (заменён multicast) |
| Автоконфигурация | DHCP | SLAAC + DHCPv6 |
Для Java-разработчика
InetAddress.getByName("192.168.1.1")— работает и с IPv4, и с IPv6- При привязке серверного сокета на
0.0.0.0— сервер слушает на всех IPv4-интерфейсах, на::— на всех (IPv4 + IPv6) - В URL IPv6-адрес заключается в квадратные скобки:
http://[::1]:8080/ Inet4AddressиInet6Address— конкретные подклассыInetAddressдля работы с разными версиями протокола
Вывод
IPv4 по-прежнему доминирует, но его адресное пространство исчерпано. IPv6 — это будущее, которое уже активно внедряется. Java-разработчику важно понимать оба протокола и учитывать dual-stack при конфигурации серверов.
На собеседовании: обычно спрашивают базовые различия IPv4 и IPv6, специальные диапазоны (особенно приватные сети и loopback), а также практические аспекты — как сервер слушает на всех интерфейсах, как записать IPv6 в URL.