В 2023 году в демоверсии вновь появилось задание по интернет-адресации. Такие задачи были в экзамене до 2020 года, когда всё решалось вручную, без компьютера. Чтобы не ошибиться и быстро выполнить такую задачу сейчас, полезно научиться решать её аналитически. Для этого нужно знать, что такое IP-адрес и маска сети и как они связаны друг с другом.
IP-адрес можно сравнить с адресом дома. У каждого компьютера в локальной сети есть уникальный адрес, он записывается как четыре числа, разделённые точками (например, 192.168.0.20). Но на самом деле это одно большое двоичное число (например, 192.168.0.20 = 11000000101010000000000000010100). Каждое десятичное число IP-адреса переводится в двоичное восьмибитовое, и суммарно получается 32 бита.
Маска сети — это фильтр IP-адресов
- единицы в маске показывают, какая часть адреса общая для всех компьютеров в одной сети
- нули в маске показывают, какая часть адреса уникальна для каждого компьютера в одной сети
- маска определяет, какие компьютеры могут «общаться» друг с другом
- маска применяется к IP-адресу с помощью поразрядной конъюнкции. Эта операция работает так: берутся два двоичных числа и к каждому соответствующему разряду применяется логическое И. Например 1011 & 1100 = 1000
Далее разберём, как решать задание № 13 с разными условиями.
Задача 1. Количество IP-адресов с условием
Эта задача из демоверсии-2025, аналогичная задача была на ЕГЭ-2024. Теперь пройдёмся по этапам.
- Переведём адрес и маску в двоичную систему
IP-адрес сети:\
172.16.168.0\
$172 = 10101100_{2}$\
$16 = 00010000_{2}$\
$168 = 10101000_{2}$\
$0 = 00000000_{2}$
Маска сети:\
255.255.248.0\
$255 = 11111111_{2}$\
$255 = 11111111_{2}$\
$248 = 11111000_{2}$\
$0 = 00000000_{2}$
В двоичном виде IP-адрес выглядит как последовательность битов:\
$10101100.00010000.10101000.00000000_{2}$\
А маска сети — так:\
$11111111.11111111.11111000.00000000_{2}$
- Посчитаем возможные адреса
В маске сети 11 нулей. Посчитаем, сколько всего может быть IP-адресов в сети по формуле: $N = 2^{i} = 2^{11} = 2048$.
- Посчитаем неподходящие адреса
Определить адреса, в которых количество единиц не кратно 5, сложно, потому что их много. А вот узнать, в каких адресах количество единиц кратно 5, довольно легко.
В адресе сети уже есть 8 единиц, и они сохранятся в любом IP-адресе этой сети. В части адреса, которая меняется, есть 11 возможных мест, куда мы можем поставить единицы. В таком случае есть только два варианта, когда количество единиц кратно 5: когда их 10 или когда их 15. Найдём все возможные варианты размещения двух и семи единиц по 11 позициям.
Чтобы это сделать, мы можем применить формулу для расчёта количества сочетаний без повторов:$C_n^k = \frac{n!} {k!(n-k)!}$. Эта формула показывает, сколько есть способов выбрать $k$ элементов из $n$ элементов без учёта порядка и без повторений.
В нашем случае множество из $n$ элементов — это номера разрядов, на которых могут находиться нули и единицы в уникальной для компьютера части IP-адреса. А количество элементов — это количество номеров разрядов, на которые нам нужно записать единицы.
Получим:
$C_{11}^2 = \frac{11!} {2!(11-2)!} = 55$\
$C_{11}^7 = \frac{11!} {7!(11-7)!} = 330$
Адресов, в которых количество единиц кратно 5, всего $55 + 330 = 385$.
- Посчитаем адреса, подходящие под условие
Нужно убрать из всех возможных IP-адресов те, у которых количество единиц кратно 5: $2048 - 385 = 1663$.
Ответ: 1663
Задача 2. Значение байта маски
Задача из демоверсии 2019 года.
- Переведём в двоичную систему
Сделаем это с третьими байтами из IP-адреса и адреса сети:
$138 = 10001010_{2}$\
$136 = 10001000_{2}$
- Найдём совпадающие биты
Совпадающие биты могут относиться к общей части, где в маске стоят единицы. Совпадают шесть старших разрядов. В первом разряде значения битов различаются, значит, в маске, начиная с него и до конца, должны стоять нули.

- Выберем минимальную маску
Во втором разряде стоит ноль. Значит, для этой сети мы можем использовать как маску $11111000_{2}$ в третьем байте слева, так и $11111100_{2}$ там же.

Минимальное значение из двух: $11111000_{2} = 248$
Ответ: 248
Задача 3. Количество нулей в маске
Задача из открытого банка заданий ЕГЭ.
- Проанализируем IP-адреса
Это задание аналогично предыдущему, но здесь нет чёткого указания, какой байт маски будет определяющим для поиска ответа.
Запишем IP-адрес и адрес сети друг под другом и определим, где могут быть нули в маске сети:

- Переведём в двоичную систему
Чтобы определить примерное значение маски сети, не надо переводить всё в двоичную систему счисления. У адреса сети по сравнению с IP-адресом другие третий и четвёртый байты слева.
Третий байт слева отличен от нуля, значит, в этом байте в маске сети находятся нули и единицы. Четвёртый байт в адресе сети равен нулю, значит, в маске сети в этом байте восемь нулей.
Переведём третьи байты слева в двоичную систему счисления:
$208 = 11010000_{2}$\
$192 = 11000000_{2}$
- Найдём совпадающие биты
Совпадают три старших разряда, значит, в этих разрядах можно ставить единицы. В четвёртом разряде биты отличаются, значит, начиная с него и до конца в маске должны стоять нули.

- Выберем маску с минимумом нулей
В пятом разряде стоит ноль, то есть для этой сети мы можем использовать как маску $11000000_{2}$ в третьем байте слева, так и $11100000_{2}$ там же.

Чтобы получить минимум нулей, выберем $11100000_{2}$. Общее количество нулей (в четвёртом байте их 8) равно $5 + 8 = 13$.
Ответ: 13
Задача 4. Маска для двух узлов в разных подсетях
- Проанализируем IP-адреса
Если узлы находятся в разных подсетях, то после применения к ним одной и той же маски адреса сети должны различаться.
Запишем IP-адреса друг под другом, чтобы понять, какие байты маски сети могут повлиять на результат:

В этих адресах различаются крайние правые байты. Воспользуемся ими для поиска ответа.
- Переведём в двоичную систему
$121 = 01111001_{2}$\
$156 = 10011100_{2}$
- Найдём различающиеся биты
В этих числах биты отличаются уже в седьмом разряде:

- Выберем маску с минимумом единиц
Возьмём маску в самом правом байте, ею будет одна единица $10000000_{2}$.

После применения этой маски мы получаем два разных адреса сети. Значит, она нам подходит.
В самом правом байте маски есть единица, поэтому и первые три байта содержат только единицы. Минимально возможное количество единиц в маске равно $8 + 8 + 8 + 1 = 25$.
Ответ: 25
Задача 5. Маска для двух узлов в одной сети
Это авторская задача. По условию нам нужно указать наименьшее возможное количество адресов в сети. Сделать это можно, если найти такую маску, в которой количество нулей минимально.
- Проанализируем IP-адреса
Если два узла находятся в одной сети, то после применения маски получится один и тот же адрес сети.
Запишем эти IP-адреса друг под другом:

Крайние справа байты различаются. В них мы и будем искать различающиеся биты, чтобы узнать, где обязательно нужно поставить нули.
- Переведём в двоичную систему
$70 = 01000110_{2}$\
$107 = 01101011_{2}$
- Найдём различающиеся биты
Самый старший несовпадающий бит — пятый:

- Выберем маску с минимумом нулей
В пятом разряде в этом байте маски сети нужно написать ноль, после которого до конца также будут идти нули. Минимальное количество нулей в маске равно 6.
- Посчитаем количество адресов
Узнаем количество адресов в сети по формуле $N = 2^{i} = 2^{6} = 64$.
Ответ: 64
Выводы
Ключевые выводы:
- Важные знания и навыки для задания № 13 — принцип работы с IP-адресами и комбинаторика.
- Обращайте внимание на каждое слово, которое может повлиять на ответ. Всегда уточняйте, минимальное или максимальное значение нужно найти, ищем единицы, нули или адреса.
- Используйте код только там, где он экономит время (например, для перевода в двоичную систему счисления), но не заменяйте им анализ.
- Определяйте, какие байты нужны для более тщательного анализа, не тратьте время на лишнюю работу.
- Внимательно анализируйте двоичные числа: среди нулей и единиц можно легко потеряться.
- Тренируйтесь на неочевидных примерах — они учат видеть ловушки.
Напоследок предлагаем решить подборку задач, чтобы потренировать ваши аналитические навыки. В ней — задания по информатике, которые заставят вас думать, а не действовать шаблонно. Каждая решённая задача приблизит вас к успешной сдаче экзамена.
Спасибо kompege.ru за предоставленные задания.