13 задание ЕГЭ информатика: маска подсети, разбор и шаблон
13 задание ЕГЭ по информатике посвящено адресации в сети: по IP-адресу и маске подсети нужно найти адрес сети, число адресов узлов или саму маску. Решается оно двумя способами: руками, через двоичную запись байтов, и кодом на Python с модулем ipaddress. Ниже разобраны теория, шаблон, все типичные типы задач и ошибки, из-за которых теряют ответ.
13 задание ЕГЭ по информатике: что в нём проверяют
В кодификаторе «Ранга» эта задание называется «Маска подсети»: темы — адресация в сети и маска подсети, уровень базовый, ответ — число. Ты получаешь условие с IP-адресом и (или) маской и должен посчитать одну величину: количество адресов, число единиц в маске, один из байтов адреса сети, количество подходящих масок.
Задача не требует длинных вычислений, но требует аккуратности с двоичной записью. Именно поэтому её удобно отрабатывать по шаблону: один раз выучил порядок действий, и дальше меняются только числа.
Точную форму и место задания в варианте смотри в актуальной демоверсии и спецификации на сайте ФИПИ (fipi.ru): формат может уточняться от года к году, и опираться стоит на официальные документы, а не на пересказы.
Теория для 13 задания: IP-адрес, маска и адрес сети
IP-адрес — это 32-разрядное число, которое записывают как четыре байта через точку, например 192.168.5.77. Каждый байт — число от 0 до 255, то есть 8 двоичных разрядов.
Маска подсети — тоже 32-разрядное число. В записи маски сначала идут подряд единицы, потом подряд нули. Единицы показывают часть адреса, общую для всей подсети (номер сети), нули — часть, которая нумерует узлы внутри сети.
Что нужно знать наизусть:
- Адрес сети получают поразрядной конъюнкцией: адрес сети = IP-адрес AND маска. Там, где в маске 1, бит адреса сохраняется, где 0 — обнуляется.
- Допустимые значения байта маски, если он не равен 0 и не равен 255: 128, 192, 224, 240, 248, 252, 254. Это 1, 2, 3, 4, 5, 6, 7 единиц подряд слева.
- Если в маске k нулей, то в сети 2 в степени k адресов. Адреса узлов — на два меньше: один адрес занимает сама сеть (все нули в хостовой части), другой — широковещательный (все единицы).
- Степени двойки до 2^10 лучше помнить без вычислений: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024.
Пример задания из банка «Ранга»
Это базовая задача на число адресов узлов по маске. Попробуй сначала решить её сам по шаблону: найди нули в последнем байте маски, возведи 2 в нужную степень и учти два служебных адреса, а потом сверь ответ.
Условие. В терминологии сетей TCP/IP маской подсети называется 32-разрядное двоичное число, которое определяет, какие разряды IP-адреса узла являются общими для всей подсети.
Для узлов подсети используется маска 255.255.255.192.
Сколько различных адресов узлов теоретически допускает эта маска, если два адреса (адрес сети и широковещательный адрес) не используются? В ответе запиши только целое число.
Показать ответ и решение
- Маска отделяет часть адреса, общую для подсети. Свободные разряды адреса — это нули в двоичной записи маски; число адресов равно двум в степени числа нулей.
- Переведи каждый байт маски в двоичную запись и посчитай нули в конце.
Ответ: 62
13 задание ЕГЭ по информатике: шаблон решения руками
Решение руками занимает пару минут, если идти по одному и тому же порядку.
- Выпиши условие: что дано (IP, маска, число узлов) и что спрашивают (адрес сети, число адресов, число единиц, число масок).
- Переведи нужные байты в двоичную запись. Байты 255 и 0 переводить не нужно: это 11111111 и 00000000.
- Для маски: найди, где заканчиваются единицы. Подсчитай количество нулей — это число разрядов под узлы.
- Для адреса сети: запиши IP и маску друг под другом и применяй AND по битам. Для байтов маски 255 число переписывается, для 0 получается 0.
- Для числа узлов: возведи 2 в степень, равную количеству нулей в маске, и вычти 2, если в условии сказано, что адрес сети и широковещательный не используются.
- Проверь ответ: вернись к условию и убедись, что отвечаешь именно на заданный вопрос (число адресов или число узлов, байт или целый адрес).
Все типы задач 13 задания
Задачи этой задания сводятся к нескольким схемам. Если узнаёшь схему, решение становится механическим.
- Число узлов по маске. Считаем нули в маске, берём 2 в степени числа нулей и вычитаем 2. Например, для байта 192 = 11000000 получаем 6 нулей.
- Адрес сети по IP и маске. Поразрядное AND, как в шаблоне. Чаще всего «работает» только один байт, где маска не равна 0 и 255.
- Число единиц или нулей в маске. Складываем 8 на каждый байт 255 и количество единиц в «промежуточном» байте.
- Маска с наибольшим или наименьшим числом единиц, при которой два адреса попадают в одну сеть. Сравниваем адреса по битам слева направо: единицы маски могут идти только до первого различающегося бита.
- Количество возможных масок. Считаем, сколько значений числа единиц удовлетворяют условию, помня, что единицы идут подряд.
- Адреса с заданным свойством. Например, число адресов в сети, у которых сумма единиц в записи удовлетворяет условию. Здесь удобнее всего решать кодом.
13 задание кодом на Python: когда и как
Если в задаче нужно перебирать адреса или маски, быстрее написать короткую программу. В Python есть готовый модуль ipaddress, и он подходит для типичных вариантов.
Для адреса сети и числа адресов:
- import ipaddress
- net = ipaddress.ip_network('192.168.5.77/255.255.255.192', strict=False)
- print(net.network_address) — выведет адрес сети
- print(net.num_addresses - 2) — число адресов узлов без адреса сети и широковещательного
- Для перебора масок: цикл for k in range(33) и маска = префикс из k единиц; адрес можно записать строкой вида 'IP/' + str(k) и передать в ip_network с параметром strict=False.
- Для перебора адресов сети: for ip in net — получаешь все адреса по очереди, их можно проверять на нужное свойство, например bin(int(ip)).count('1').
Типичные ошибки и как проверить себя
Большинство неверных ответов в этой задания — не незнание теории, а невнимательность. Разбери этот список и сверяйся с ним после каждого решения.
- Забыл вычесть 2 из числа адресов, хотя в условии сказано, что адрес сети и широковещательный не используются. И наоборот: вычел 2, когда спрашивали про все адреса.
- Посчитал единицы вместо нулей. Степень двойки определяют нули маски, то есть хостовая часть.
- Неверно перевёл байт в двоичную запись. Проверка: сумма весов 128, 64, 32, 16, 8, 4, 2, 1 для единичных битов должна дать исходное число.
- Взял маску, в которой единицы и нули перемешаны. Такая маска недопустима: после первого нуля единиц быть не должно.
- Ответил байтом, когда просили весь адрес, или записал число вместо формата, указанного в условии. Перечитай последнюю строку задания перед записью ответа.
- Для самопроверки реши ту же задачу вторым способом: руками и кодом. Если ответы совпали, шанс ошибки резко ниже.
Как тренировать 13 задание и где смотреть актуальные требования
Начни с 10–15 задач на каждый тип из списка выше, сначала руками, потом проверяя кодом. Когда схемы станут привычными, переходи к смешанным вариантам и засекай время: на эту задание стоит тратить заметно меньше времени, чем на задачи второй части.
Актуальные демоверсии, кодификатор и спецификацию публикует ФИПИ (fipi.ru), за изменениями в экзамене следи там же. Потренироваться с автоматической проверкой ответа можно в тренажёре «Ранга» на странице задания, а общий план подготовки к предмету собран в отдельной статье.
Частые вопросы
Нужно ли в 13 задании уметь программировать или можно обойтись руками?
Большинство задач решается руками за пару минут, для этого достаточно двоичной записи и степеней двойки. Код на Python полезен для вариантов с перебором масок или адресов и как способ проверить ручное решение. Лучше владеть обоими способами.
Чем отличается число адресов в сети от числа адресов узлов?
Число адресов в сети равно 2 в степени числа нулей маски. Из них два служебных: адрес сети и широковещательный адрес. Если в условии сказано, что они не используются, из общего числа вычитают 2.
Почему в маске после нулей не может быть единиц?
Маска делит адрес на часть сети и часть узла, поэтому единицы идут подряд слева, а нули подряд справа. Значения байта вроде 200 или 170 для маски недопустимы. Если в задаче нужно найти число масок, учитывай именно это ограничение.
Где посмотреть, как это задание выглядит в этом году?
Формат и примеры публикует ФИПИ на сайте fipi.ru в демоверсии, кодификаторе и спецификации по информатике. Опирайся на документ того года, в котором сдаёшь экзамен, и сверяй номера и формулировки с ним.
Сколько задач стоит решить, чтобы уверенно щёлкать 13 задание?
Точного числа назвать нельзя, это зависит от исходной подготовки. Ориентир такой: решай по каждому типу, пока три-четыре задачи подряд не получатся без ошибок и без подглядывания в теорию. После этого переходи к смешанным вариантам.
Полезно по теме
Читать дальше
Проверить себя в тренажёре
Открывается тренировочное задание в формате ЕГЭ: условие видно сразу, краткий ответ проверяется без регистрации.
Решить задание в тренажёреМатериал — разъяснение «Ранг». Официальные правила экзамена, расписание, шкалы баллов и перечни заданий публикуют ФИПИ (fipi.ru) и Рособрнадзор (obrnadzor.gov.ru). Мы не обещаем конкретных баллов: результат зависит от твоей работы.