Сдай ЕГЭ! Бесплатные материалы для подготовки каждую неделю!
null
Нажимая на кнопку, вы даете согласие на обработку своих персональных данных согласно 152-ФЗ. Подробнее
banner
Slider
previous arrow
next arrow
Slider

Задание 13. Организация компьютерных сетей. Адресация. Определение маски

Задание 13 в ЕГЭ по информатике относится к категории повышенной сложности. Впервые задачи этого типа были введены в экзамен 2024 года. Оно направлено на проверку навыков работы с масками подсетей.

Давайте разберём ключевые термины и теоретические аспекты, которые необходимы для понимания и успешного выполнения таких заданий:

IP-адрес – это уникальный адрес устройства в компьютерной сети, основанной на протоколе TCP/IP. Он состоит из 32 бит (для IPv4) и записывается в десятичном формате, разделённом точками, например, 172.16.168.0.

Маска подсети указывает, какая часть IP-адреса относится к адресу сети (общая для всех устройств в сети), а какая — к адресу конкретного устройства (хоста). Маска также состоит из 32 бит и записывается так же, как IP-адрес, например, 255.255.248.0.

Важно уметь представлять IP-адрес и маску подсети в виде последовательности нулей и единиц (двоичная запись). Например, 255.255.248.0 в двоичном виде: 11111111.11111111.11111000.00000000.

Побитовая конъюнкция (AND) – это операция, применяемая между соответствующими битами IP-адреса и маски подсети. Результатом этой операции является новый адрес, называемый адресом сети. Например:

172.16.168.0 (в двоичном виде) AND 255.255.248.0 (в двоичном виде) = Адрес сети.

Алгоритм применения поразрядной конъюнкции:

1) Представляем числа в двоичном формате.

Каждое число (например, из IP-адреса и маски) записывается в виде последовательности из нулей и единиц.

2) Сравниваем соответствующие разряды (биты) двух чисел.

Для каждой пары битов выполняем следующее правило:

  • Если оба бита равны 1 → результат 1.
  • Если хотя бы один из битов равен 0 → результат 0.

3) Делаем это по каждому разряду.

Двигаемся слева направо, сравнивая разряды одного числа с разрядами другого.

4) Собираем результат.

Получаем новую двоичную последовательность, которая является результатом применения конъюнкции.

Количество устройств, которые могут быть подключены к сети, зависит от числа бит, отведённых для хостов. Это вычисляется как 2k, где k — количество нулей в маске подсети. Например, если в маске 13 нулей, то сеть может содержать 213 = 8192 IP-адресов.

Для программного способа решения задачи нам нужно знать некоторые функции и библиотеки языка Python:

1) Модуль ipaddress предоставляет инструменты для работы с IP-адресами (IPv4 и IPv6), подсетями, сетевыми интерфейсами и связанными операциями. Этот модуль позволяет работать с адресами и сетями на высоком уровне, без необходимости писать низкоуровневые операции.

Основные возможности ipaddress:

Работа с IP-адресами:

  • Поддерживает как IPv4, так и IPv6 адреса.
  • Позволяет конвертировать IP-адреса в различные форматы (двоичный, строковый и т.д.).
  • Проверяет валидность IP-адресов.

Работа с подсетями:

  • Позволяет определять диапазоны адресов в сети.
  • Поддерживает вычисления на основе маски подсети.
  • Упрощает работу с IP-адресами внутри подсети.

Анализ и сравнение адресов

  • Поддержка операций сравнения (==, !=, >, <).
  • Проверка принадлежности IP-адреса сети.

2) ip_network:

Эта функция из модуля ipaddress создаёт объект сети на основе переданного IP-адреса и маски.

Она принимает строку, где указаны IP-адрес и маска (либо в формате префикса, либо в формате полного IP и маски).

Возвращает объект, который позволяет работать с сетью: перебирать IP-адреса, получать адрес сети и широковещательный адрес.

3) Цикл while позволяет выполнять блок кода многократно, пока выполняется определённое условие. Внутри цикла задаётся условие, которое проверяется перед каждым новым повторением. Как только условие перестаёт выполняться, цикл завершается. Например:

Этот код будет выводить значение переменной count, начиная с нуля, пока оно меньше пяти. При каждом повторении count увеличивается на 
единицу. Когда count достигает 5, цикл останавливается.

4) Оператор if проверяет, выполняется ли какое-то условие, и, если оно истинно (то есть True), выполняет блок кода. Это позволяет программе принимать решения на основе условий. Например:

В этом примере, если number больше 5, будет выполнен первый блок, иначе — блок после else

5) В Python метод count используется для подсчёта количества вхождений определённого элемента (например, символа или подстроки) в строке или списка. Он возвращает целое число, которое показывает, сколько раз искомый элемент встречается в данной строке или списке.

Допустим, у нас есть строка, и мы хотим узнать, сколько раз в ней встречается определённое слово или символ:

Здесь text.count("hello") подсчитает, сколько раз слово "hello" встречается в строке text. Результат будет 2, так как слово "hello" встречается дважды.

Перейдём к примеру решения прототипов задач:

Разберём задачу №13 ЕГЭ 2025 из демоверсии ФИПИ:

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом 172.16.168.0 и маской сети 255.255.248.0.

Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 5?

В ответе укажите только число.

Решение с помощью программирования:

1. Открываем нашу среду разработки и анализируем задачу: нам нужно применить к IP-адресу сети маску и понять, сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 5.

2. Мы подключаем библиотеку ipaddress, которая позволяет работать с сетями и IP-адресами. С её помощью можно создавать сети, перечислять IP-адреса и выполнять различные операции (from ipaddress import *)

3. С помощью функции ip_network мы создаём объект сети. Здесь указываются: базовый IP-адрес сети: 172.16.168.0, маска сети: 255.255.248.0 (net = ip_network('172.16.168.0/255.255.248.0')). Модуль автоматически рассчитывает диапазон IP-адресов, которые входят в эту сеть, исходя из маски.

4. Счётчик count будет использоваться для подсчёта тех IP-адресов, у которых количество единиц в двоичной записи не делится на 5 (count = 0)

5. Мы проходим по каждому IP-адресу в сети net. Это позволяет автоматически перебрать все IP-адреса, начиная с базового адреса и заканчивая широковещательным адресом сети (for ip in net:)

6. Используя форматирование f'{ip:b}', переводим IP-адрес в строку, представляющую его двоичную запись. Например, IP-адрес 172.16.168.0 в двоичном виде будет выглядеть как 10101100.00010000.10101000.00000000 (b = f'{ip:b}')

7. С помощью метода .count('1') мы подсчитываем количество единиц в двоичной записи адреса. Если это количество делится на 5 с остатком, т.е. остаток не равен нулю (% 5 != 0), значит, текущий адрес удовлетворяет условиям задачи (if b.count('1') % 5 != 0:)

8. Если условие выполнено, увеличиваем значение счётчика на 1 (count += 1)

9. После завершения перебора всех IP-адресов в сети выводим общее количество подходящих адресов (print(count))

10. Результат работы программы и будет являться ответом на нашу задачу:

Ответ: 1663

 

Теперь посмотрим задание с досрочной волны 2024:

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.Сеть задана IP-адресом 105.224.200.224 и сетевой маской 255.255.255.224. Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса кратно 4? В ответе укажите только число.

Решение с помощью аналитики (с небольшим использованием программирования):

1. Анализируем условие: нам дан IP-адрес и маска сети. Мы хотим определить, сколько IP-адресов в этой сети имеют определённое свойство — количество единиц в двоичной записи должно соответствовать заданному условию (в нашем случае — быть кратным 4).

2. Для начала выписываем IP-адрес и маску сети: каждое число в IP-адресе и маске занимает 1 байт (8 бит). Преобразуем IP-адрес и маску в двоичный формат. Для этого можно воспользоваться калькулятором в режиме "Программист":

  • IP-адрес: 105.224.200.224 → 01101001.11100000.11001000.11100000  
  • Маска: 255.255.255.224 → 11111111.11111111.11111111.11100000  

3. Важно: если число в двоичной записи содержит менее 8 разрядов, его нужно дополнить нулями слева так, чтобы получилось ровно 8 разрядов. Например, число 5, которое в двоичном виде записывается как 101, будет представлено как 00000101.

4. Применяем поразрядную конъюнкцию к заданному адресу узла и его маске, получаем: 01101001.11100000.11001000.11100000 (нашли адрес сети)

5. Те биты IP-адреса, которые находятся над единицами в маске, являются неизменными. В нашем случае неизменная часть — это первые 29 бит IP-адреса: 01101001.11100000.11001000.111

6. Переменная часть IP-адреса — это биты, которые находятся под нулями маски. В данном случае переменной частью являются последние 5 битов:
00000

7. Количество переменных бит равно количеству нулей в маске. У нас их 5. Считаем единицы для каждого IP-адреса: для каждого IP-адреса в сети суммируем количество единиц в неизменной части и количество единиц в переменной части. Считаем, сколько единиц получается в каждом IP-адресе. Оставляем только те комбинации, для которых сумма единиц соответствует условию (кратна 4).

8. В коде мы перебираем все возможные значения для пяти переменных бит. К неизменной части IP-адреса (13 единиц) прибавляем количество единиц в текущей комбинации переменной части. Проверяем, делится ли сумма на 4. Если да, то увеличиваем счётчик.

9. В результате выполнения программы мы получаем число, которое соответствует количеству подходящих IP-адресов в сети.

Ответ: 10

 

Основная волна 07.06.2024:

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети.

Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.

Сеть задана IP-адресом 172.16.128.0 и маской сети 255.255.192.0.Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 2?

В ответе укажите только число.

Решение с помощью шаблонного кода:

1. Выделим основные моменты, которые нам нужны для написания кода:

  • IP-адрес сети: 172.16.128.0;
  • Маска сети: 255.255.192.0;
  • Количество единиц в двоичной записи IP-адреса не кратно 2

2. Пишем код:


3.    В результате выполнения программы мы получаем число, которое соответствует количеству подходящих IP-адресов в сети.

Ответ: 8192

 

Основная волна 08.06.2024:

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.

Сеть задана IP-адресом 112.160.0.0 и сетевой маской 255.240.0.0.

Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 3?

В ответе укажите только число.

Решение с помощью программирования:

1.    Выделим основные моменты, которые нам нужны для написания кода:

  • IP-адрес сети: 112.160.0.0;
  • Маска сети: 255.240.0.0;
  • Количество единиц в двоичной записи IP-адреса не кратно 3

2. Пишем код:

3.    В результате выполнения программы мы получаем число, которое соответствует количеству подходящих IP-адресов в сети

Ответ: 699050

 

Разберём задачу №13 ЕГЭ 2025 из варианта основной волн 19.06.2024 (Центр):

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети. Сеть задана IP-адресом 112.160.0.0 и маской сети 255.240.0.0.

Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса кратно 5?

В ответе укажите только число.

Решение с помощью шаблонного кода:

1.  Выделим основные моменты, которые нам нужны для написания кода:

  • IP-адрес сети: 112.160.0.0;
  • Маска сети: 255.240.0.0.;
  • Количество единиц в двоичной записи IP-адреса кратно 5

2.  Пишем код:

3. В результате выполнения программы мы получаем число, которое соответствует количеству подходящих IP-адресов в сети.

Ответ: 215766

 

Ну и для закрепления материала посмотрим основную волну 04.07.2024:

В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске.

Сеть задана IP-адресом 115.192.0.0 и сетевой маской 255.192.0.0.

Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 3?

В ответе укажите только число.

Решение с помощью шаблонного кода:

1. Выделим основные моменты, которые нам нужны для написания кода:

  • IP-адрес сети: 115.192.0.0;
  • Маска сети: 255.192.0.0;
  • Количество единиц в двоичной записи IP-адреса не кратно 3

2. Пишем код:


3. В результате выполнения программы мы получаем число, которое соответствует количеству подходящих IP-адресов в сети.

Ответ: 2796202

 

Сейчас посмотрим прототипы задач, которые были на этой позиции в 2023м году. Досрочная волна 2023(I):

На рисунке представлена схема дорог, связывающих города A, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.

Определите количество различных путей, которые начинаются в городе A и заканчиваются в городе M.

Решение:

1. Такие задачи решались очень легко: вся суть решения заключалась в том, чтобы считать количество путей в каждый город. Как это делать?

  • Мы начинаем из пункта А (в него как-бы существует 0 путей)
  • Дальше идём в пункт Б (в него мы можем попасть только из пункта А, то есть существует один путь).
  • В путь В мы уже можем попасть из двух пунктов: А и Б, тогда количество путей для него будет равно 2
  • В город Г ведут две стрелочки, значит количество путей в него является суммой различных путей в города Б и В (1 + 2 = 3)

2. Так мы продолжаем, пока не дойдем до нужного города (по условию М).

3. Для удобства схему можно скопировать в Paint и подписывать количество различных путей для каждого города:

Ответ: 66

 

Разберём задачу №13 ЕГЭ 2023 из основной волны (III):

На рисунке представлена схема дорог, связывающих города A, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.

Сколько существует различных путей из города A в город M, проходящих через город K?

Решение:

1.    Аналогично предыдущему заданию переносим рисунок в Paint и считаем количество различных путей для каждого города. Но по условию нам нужно чтобы путь проходил через город К, значит пункт Л и дорогу из И в М можно просто вычеркнуть из схемы (если мы пойдем через них, то город К не будет задействован):

Ответ: 20

 

Задание №13 в ЕГЭ по информатике проверяет ваши знания о сетях TCP/IP и навыки работы с масками подсетей. Оно направлено на развитие аналитического мышления и умения программно обрабатывать IP-адреса. Для успешного выполнения задания важно понимать теорию сетей, уметь преобразовывать адреса и маски в двоичный вид, а также пользоваться базовыми инструментами программирования.

Лайфхаки и советы

1. Визуализация помогает.

Записывайте IP-адрес и маску на бумаге в двоичном виде, подчёркивая неизменные и изменяемые части. Это даёт ясное представление о задаче.

2. Используйте калькулятор в режиме "Программист".

Если вы решаете задачу без программирования, калькулятор в этом режиме поможет быстро преобразовать числа в двоичный вид.

3. Анализ условий задачи.

Уточните, что требуется: подсчитать адреса, кратные какому-либо числу, или исключить определённые адреса. Это определит структуру вашего решения.

4. Шаблон кода для Python.

Запомните базовый шаблон для работы с ipaddress. Например:

Следуя этим рекомендациям, вы сможете уверенно решать задания на IP-адресацию, избегая распространённых ошибок. Помните, что внимательное чтение условия задачи и чёткое понимание алгоритма решения — ключ к успеху. Используйте программирование, чтобы сэкономить время на экзамене.

Удачи на ЕГЭ! 

Поделиться страницей

Это полезно

Теория вероятностей на ЕГЭ-2025 по математике
В варианте ЕГЭ-2025 две задачи по теории вероятностей — это №4 и №5. По заданию 5 в Интернете почти нет доступных материалов. Но в нашем бесплатном мини-курсе все это есть.
ЕГЭ Математика
Олимпиада ОММО:
100 баллов за 5 задач