IPv4: что это такое, как устроен адрес и маска подсети

IPv4 — протокол, по которому устройства находят друг друга в сети: адрес из 32 бит, четыре числа от 0 до 255.

Разбираем, как читать маску подсети и считать узлы, чем частные адреса отличаются от публичных, почему адресов не хватило и как поменять IPv4 в Windows.

Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 3040 статей автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 3694 экспертных мнения Подписаться на Телеграм-канал
Обложка: IPv4: что это такое, как устроен адрес и маска подсети

IPv4 (Internet Protocol version 4) это четвёртая версия интернет-протокола, по которой компьютеры, телефоны и серверы находят друг друга в сети. Адрес IPv4 занимает 32 бита и записывается четырьмя числами от 0 до 255 через точку, например 192.168.1.10. Протокол описан в RFC 791 в сентябре 1981 года. Он до сих пор работает в домашних и офисных сетях, во многих из них вместе с IPv6.

Ниже разберём, из чего состоит адрес, как читать маску подсети, какие адреса частные и почему IPv4-адресов на всех не хватило. Если нужна общая картина того, как IP уживается с TCP, UDP и HTTP, начните с разбора сетевых протоколов.

CheckroiCheckroiПодборка курсов по сетевому администрированию38 курсов • 18 школСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить→

Как устроен адрес IPv4

Рой подключает сетевой кабель к роутеру и проверяет адрес на ноутбуке

Для компьютера адрес IPv4 просто одно 32-битное число. Людям так читать неудобно, поэтому его делят на четыре октета по 8 бит и каждый пишут в десятичном виде. Отсюда и диапазон: в 8 битах помещаются значения от 0 до 255.

Запись 1-й октет 2-й октет 3-й октет 4-й октет
Десятичная 192 168 1 10
Двоичная 11000000 10101000 00000001 00001010

Перевод легко проверить в Python: модуль ipaddress входит в стандартную библиотеку, ставить ничего не нужно (документация модуля). Если Python ещё не установлен, вот как скачать Python.

import ipaddress

ip = ipaddress.ip_address("192.168.1.10")
print(ip.version, int(ip))
print(ip.is_private, ip.is_global)
print(".".join(f"{octet:08b}" for octet in ip.packed))

Вывод в Python 3.14:

4 3232235786
True False
11000000.10101000.00000001.00001010

Первая строка показывает версию протокола и тот же адрес одним числом. Вторая говорит, что адрес частный и из интернета напрямую недоступен. О частных адресах ниже есть отдельный раздел.

Сколько всего адресов IPv4 и почему их не хватило

32 бита дают 232 = 4 294 967 296 комбинаций, то есть около 4,3 млрд. Часть из них вообще не выдаётся устройствам в интернете: это частные сети, петлевой адрес, адреса для документации и другие блоки из реестра особых адресов IANA.

Людей и устройств в сети давно больше. Региональные регистраторы раздавали адреса, пока было что раздавать:

  • в 2012 году RIPE NCC, регистратор для Европы, Ближнего Востока и части Центральной Азии (в его зону входит и Россия), дошёл до последнего блока на 16 млн адресов и стал выдавать каждому участнику только по 1 024 адреса;
  • 25 ноября 2019 года RIPE NCC объявил, что свободные IPv4-адреса закончились, а новым участникам достаются только возвращённые адреса через лист ожидания.

Поэтому сейчас работают два решения. Первое называется NAT: роутер выходит в интернет с одного публичного адреса, а за ним стоят устройства с частными. Второе решение, IPv6, даёт 128-битные адреса. Чем протоколы отличаются и как проверить IPv6 у себя, мы разобрали в статье «Чем отличается IPv4 от IPv6».

Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединиться

Маска подсети и запись через косую черту

Маленький Рой делит большую сеть на четыре равные подсети

Адрес делится на две части: номер сети и номер узла внутри неё. Где проходит граница, показывает маска подсети. В маске единицы стоят на месте битов сети, нули на месте битов узла.

Маску пишут двумя способами. Длинный похож на адрес: 255.255.255.0. Короткий показывает число единиц после косой черты: /24. Это одно и то же, вторую форму ввели вместе с бесклассовой адресацией CIDR (RFC 4632).

Префикс Маска Адресов в сети Можно раздать узлам
/8 255.0.0.0 16 777 216 16 777 214
/16 255.255.0.0 65 536 65 534
/24 255.255.255.0 256 254
/26 255.255.255.192 64 62
/30 255.255.255.252 4 2

Как посчитать узлы в подсети

Формула короткая: 2(32 − префикс) − 2. Два адреса вычитаются, потому что первый обозначает саму сеть, а последний служит широковещательным. В сети 192.168.1.0/24 это 192.168.1.0 и 192.168.1.255, раздавать можно с .1 по .254.

import ipaddress

net = ipaddress.ip_network("192.168.1.0/24")
print(net.netmask)
print(net.network_address, net.broadcast_address)
print(net.num_addresses, len(list(net.hosts())))
print(ipaddress.ip_address("192.168.1.10") in net)
255.255.255.0
192.168.1.0 192.168.1.255
256 254
True

А так сеть /24 режется на четыре подсети по 62 узла, например под бухгалтерию, гостевой Wi-Fi, камеры и серверы:

net = ipaddress.ip_network("192.168.1.0/24")
for sub in net.subnets(new_prefix=26):
    print(sub, sub.netmask, sub.num_addresses - 2)
192.168.1.0/26 255.255.255.192 62
192.168.1.64/26 255.255.255.192 62
192.168.1.128/26 255.255.255.192 62
192.168.1.192/26 255.255.255.192 62

Такую разбивку на практике делают сетевые администраторы, её отрабатывают на курсах по сетевому администрированию.

Маска встречается и в шестнадцатеричном виде. Например, ifconfig в macOS печатает её так:

inet 192.168.10.88 netmask 0xfffffe00 broadcast 192.168.11.255

Запись 0xfffffe00 означает 255.255.254.0, то есть /23. В такой сети 510 адресов для узлов, поэтому широковещательный адрес заканчивается на 11.255, а не на 10.255.

Классы адресов IPv4

В RFC 791 адреса делились на три класса, и граница между сетью и узлом была зашита в первые биты адреса. Маску тогда не указывали, её «угадывали» по первому числу.

Класс Первые биты Первый октет Сеть / узел
A 0 0–127 8 бит / 24 бита
B 10 128–191 16 бит / 16 бит
C 110 192–223 24 бита / 8 бит

Размеров сети было всего три: 254, 65 534 или почти 16,8 млн узлов. Компании, которой нужна тысяча адресов, класс C был мал, а в классе B большая часть из 65 тысяч адресов пустовала. CIDR снял эту привязку, и сегодня маска может быть любой длины.

Решение: классы стоит знать для собеседований и старой документации, но при настройке сети ориентируйтесь на префикс, а не на первое число адреса. Вопросы про классы и маски часто задают на собеседовании системного администратора.

Публичные, частные и особые адреса

Публичный адрес уникален во всём интернете, его выдаёт провайдер. Частный работает только внутри локальной сети, и одни и те же частные адреса стоят в миллионах квартир одновременно. Наружу такие устройства выходят через NAT на роутере.

Блок Для чего Где описан
10.0.0.0/8 частные сети, обычно крупные офисы RFC 1918
172.16.0.0/12 частные сети (172.16.0.0–172.31.255.255) там же
192.168.0.0/16 частные сети, почти все домашние роутеры там же
100.64.0.0/10 общие адреса провайдера для NAT на его стороне RFC 6598
127.0.0.0/8 петлевой адрес, компьютер обращается сам к себе RFC 1122
169.254.0.0/16 адрес, который устройство назначает себе само, без DHCP RFC 3927
192.0.2.0/24 примеры в документации и учебниках RFC 5737
255.255.255.255 широковещательная рассылка внутри своей сети реестр IANA

Python знает этот реестр и отвечает на вопрос «частный или нет» сам:

for a in ["10.0.0.5", "100.64.1.1", "127.0.0.1", "169.254.10.20", "8.8.8.8"]:
    ip = ipaddress.ip_address(a)
    print(a, ip.is_private, ip.is_global, ip.is_loopback, ip.is_link_local)
10.0.0.5 True False False False
100.64.1.1 False False False False
127.0.0.1 True False True False
169.254.10.20 True False False True
8.8.8.8 False True False False

Обратите внимание на 100.64.1.1: ни частный, ни глобальный. Так и задумано: документация модуля прямо называет блок 100.64.0.0/10 исключением, где оба флага равны False. Если роутер показывает внешний адрес из этого блока, вы сидите за NAT провайдера.

Как пакет IPv4 находит адресата

Данные уходят в сеть пакетами. Перед каждым стоит заголовок IPv4: минимум 20 байт служебных полей, а весь пакет, по спецификации протокола, может достигать 65 535 байт. Главные поля такие:

Поле Размер Что хранит
Version 4 бита версию протокола, здесь всегда 4
Total Length 16 бит длину пакета вместе с данными
Time to Live 8 бит сколько ещё пакету можно жить в сети
Protocol 8 бит что лежит внутри: TCP, UDP, ICMP
Header Checksum 16 бит контрольную сумму одного заголовка
Source Address 32 бита адрес отправителя
Destination Address 32 бита адрес получателя

Каждый роутер на пути смотрит на адрес получателя, сверяет его со своей таблицей маршрутов и передаёт пакет дальше. Поле TTL на каждом шаге уменьшается, и пакет с нулём уничтожается. Так сеть защищается от пакетов, которые ходят по кругу. Подробнее о поле читайте в статье про TTL.

IPv4 доставляет пакет, но не обещает, что тот дойдёт. Порядок и повторную отправку берёт на себя TCP уровнем выше, а номер порта говорит, какой программе отдать данные. Как уровни ложатся друг на друга, видно на модели OSI, а про номера портов есть отдельный разбор портов компьютера.

Ваня БуявецКанал основателя Checkroi Вани БуявцаЗабирайте промпты и обучение по нейросетям в моём Телеграм-каналеБольше 3 700 человек уже применяют Claude Code, ChatGPT и другие нейросети в работе, учёбе, бизнесе и жизниПерейти в канал

Как узнать и поменять свой адрес IPv4

Рой довольно смотрит на найденный адрес своего компьютера

Свой адрес в локальной сети проще всего посмотреть командой в терминале:

Система Команда
Windows ipconfig
macOS ipconfig getifaddr en0
Linux ip -4 addr show

На Linux вывод выглядит так, адрес идёт после слова inet вместе с префиксом:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo

Поменять адрес вручную в Windows 11 и 10 можно в параметрах сети. Порядок по справке Microsoft:

  1. Откройте параметры Windows и раздел сети и интернета.
  2. Для Wi-Fi выберите «Wi-Fi» → «Управление известными сетями» и нужную сеть. Для кабеля выберите «Ethernet» и своё подключение.
  3. Рядом с пунктом «Назначение IP» нажмите «Изменить».
  4. В разделе «Изменить параметры IP» выберите «Вручную» и включите «IPv4».
  5. Заполните поля «IP-адрес», «Маска подсети» и «Шлюз», при необходимости «Предпочитаемый DNS-сервер» и «Альтернативный DNS-сервер».
  6. Нажмите «Сохранить».

Microsoft рекомендует оставлять «Автоматически (DHCP)»: тогда адрес, маску и DNS выдаёт роутер. Ручной адрес нужен принтеру, камере, домашнему серверу и всему, к чему вы обращаетесь по постоянному адресу.

Частые ошибки с IPv4 и что с ними делать

  • Адрес вида 169.254.x.x. Устройство не получило ответа от DHCP и назначило адрес себе само, по RFC 3927 такой адрес годится только для соседей по тому же сегменту. Решение: проверить кабель или Wi-Fi и перезагрузить роутер, затем снова запросить адрес.
  • Шлюз из другой подсети. Прописали адрес 192.168.0.50/24, а шлюз 192.168.1.1. Внутри сети всё видно, интернета нет. Решение: возьмите шлюз из той же подсети, что и адрес; в Python это проверяет строка ipaddress.ip_address("192.168.1.1") in ipaddress.ip_network("192.168.0.0/24"), она вернёт False.
  • Один адрес на двух устройствах. Ручной адрес попал в диапазон, который раздаёт DHCP, и роутер выдал его кому-то ещё. Решение: для статики брать адреса вне пула DHCP, пул виден в настройках роутера.
  • Порт открыт, а снаружи не достучаться. Внешний адрес роутера из 100.64.0.0/10 или из частных блоков, значит, перед вами ещё один NAT у провайдера. Решение: просить у провайдера публичный адрес.
  • Путают /24 и 255.255.255.0. Это одна и та же маска, разные системы просят её в разной форме. Windows в ручной настройке IPv4 спрашивает поле «Маска подсети».

Где научиться работать с сетями

С адресации обычно начинают курсы по сетям, а дальше идут маршрутизация, VLAN, DNS и настройка оборудования. Если хотите сделать из этого профессию, посмотрите, как стать сетевым инженером и чем занимается системный администратор. Курсы по сетевым технологиям мы сравнили по цене и программе в каталоге:

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Профессия «Сетевой инженер»
Перейти на сайт курса
НетологияНетология85 800 ₽3575 ₽/мес.12 месяцевОбзор курса
Сетевые технологии
Перейти на сайт курса
MerionMerion21 840 ₽1578 ₽/мес.2 месяцаОбзор курса
Сетевые технологии Huawei
Перейти на сайт курса
MerionMerion11 830 ₽938 ₽/мес.2 месяцаОбзор курса
Управление и администрирование сетевых устройств информационно-коммуникационных систем
Перейти на сайт курса
ДипломиксДипломикс10 900 ₽818 ₽/мес.Обзор курса
Учебная программа “Кибербезопасность и Сетевые технологии”
Перейти на сайт курса
Компьютерная академия TOPАкадемия ТОПБесплатно - 2 годаОбзор курса

Больше программ — в полном каталоге курсов по сетевым технологиям

Часто задаваемые вопросы

Что такое IPv4 простыми словами?

Это четвёртая версия интернет-протокола, по правилам которого устройства находят друг друга в сети. У каждого устройства есть адрес из четырёх чисел от 0 до 255, например 192.168.1.10, и по нему пакеты доходят до получателя.

Сколько бит в адресе IPv4?

32 бита, то есть 4 байта. Их делят на четыре октета по 8 бит, поэтому каждое число в адресе лежит в диапазоне от 0 до 255.

Сколько всего адресов IPv4?

2 в степени 32, это 4 294 967 296 адресов. Часть из них зарезервирована под частные сети, петлевой адрес и документацию, поэтому раздать устройствам в интернете можно меньше.

Чем частный адрес IPv4 отличается от публичного?

Публичный адрес уникален во всём интернете и выдаётся провайдером. Частные адреса из блоков 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 работают только внутри локальной сети и выходят наружу через NAT на роутере.

Что значит адрес 169.254.x.x?

Устройство не получило адрес от DHCP и назначило его себе само. С таким адресом видны только соседи по тому же сегменту сети, интернета не будет: проверьте подключение к роутеру и запросите адрес заново.

Как перейти с IPv4 на IPv6?

Обычно ничего переключать не нужно: если провайдер и роутер поддерживают IPv6, устройства работают с обоими протоколами сразу. Как проверить поддержку и что включить в роутере, мы разобрали в статье «Чем отличается IPv4 от IPv6».

Читайте Checkroi первым в Google
Добавьте Checkroi в избранные источники — и наши разборы курсов и обзоры школ будут показываться выше в вашей выдаче Google.
Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!