Задание 13 ЕГЭ по информатике: маски подсети и адресация в сетях
Подтемы
- Определение адреса сети41 задач
- Определение маски37 задач
- Подсчет количества адресов в сети19 задач
Что проверяет задание
Задание 13 проверяет умение работать с IP-адресами и масками подсети — базовыми элементами адресации в компьютерных сетях по протоколу TCP/IP. Проверяются три связанные навыки:
- перевод чисел между двоичной и десятичной системами счисления (это фундамент, без которого задание не решить);
- понимание логической операции "побитовое И", которая связывает IP-адрес и маску;
- умение считать количество адресов в подсети заданного размера.
Задание относится к практической части сетевых технологий и часто воспринимается как сложное только из-за непривычной формы записи чисел. На самом деле весь материал сводится к паре формул и аккуратной работе с двоичными числами.
Как выглядит формулировка и сколько баллов
В большинстве вариантов формулировка задания включает полное определение маски подсети — его можно не запоминать наизусть, оно всегда дано в условии. Далее идёт один из трёх типовых вопросов:
- Дан IP-адрес и маска — найти номер компьютера в подсети или адрес сети.
- Дана маска — найти количество возможных адресов компьютеров в подсети (с учётом или без учёта исключения двух служебных адресов).
- Дан IP-адрес и адрес сети (или два IP-адреса из одной подсети) — определить маску.
Задание оценивается в 1 балл, ответ — целое число или число в форматe IP-адреса (четыре десятичных числа через точку), вводится без пробелов. Времени на задание в среднем уходит 3–5 минут при уверенном владении переводом систем счисления.
Что нужно знать
- IP-адрес в протоколе IPv4 — это 32-битное число, которое для удобства записывают как четыре десятичных числа от 0 до 255, разделённых точками: , где каждое — это 8 бит (один октет).
- Маска подсети — тоже 32-битное число такого же формата. В маске старшие биты равны 1 (они относятся к адресу сети), младшие биты равны 0 (они относятся к адресу компьютера в сети).
- Адрес сети получается применением побитовой операции "И" (конъюнкции) к IP-адресу и маске: . Операция выполняется отдельно для каждого бита: , , , .
- Номер компьютера в подсети — это те биты IP-адреса, которые соответствуют нулевым битам маски. Иными словами, номер компьютера получают, беря младшие бит IP-адреса, где — количество нулей в маске.
- Количество бит, отведённых под адрес компьютера, обозначим . Тогда максимальное теоретическое число адресов в подсети равно .
- Из общего числа адресов практически исключают два: адрес сети (все биты компьютера — нули) и широковещательный адрес (все биты компьютера — единицы). Тогда число доступных адресов компьютеров: .
- Полезно помнить степени двойки: , , , , , , , , , .
- Стандартные десятичные значения октетов маски и число единичных бит в них: 255 — 8 единиц, 254 — 7 единиц, 252 — 6 единиц, 248 — 5 единиц, 240 — 4 единицы, 224 — 3 единицы, 192 — 2 единицы, 128 — 1 единица, 0 — 0 единиц. Эти значения стоит выучить наизусть, они экономят время.
Методы решения
Метод 1. Перевод октета маски в двоичный вид для подсчёта единиц и нулей. Чтобы понять, сколько бит отведено под сеть и сколько под компьютер, каждый десятичный октет маски переводят в 8-битное двоичное число. Например, — здесь 3 единицы и 5 нулей.
Метод 2. Побитовое "И" для нахождения адреса сети или номера компьютера. Если нужно найти адрес сети, IP-адрес и маску переводят в двоичный вид и применяют операцию "И" разряд за разрядом. Пример: IP (192), маска-октет (224). Тогда результат (192) — совпали первые три бита маски-единицы, остальные обнулились.
Метод 3. Выделение номера компьютера как остатка по модулю. Если известно, что маска в последнем значимом октете равна, скажем, 224 (то есть 3 единичных бита), то номер компьютера внутри блока из адресов равен остатку от деления значения последнего октета IP-адреса на 32: . Этот способ быстрее полного перевода в двоичный код. Пример: если , то .
Метод 4. Подсчёт количества адресов через число нулевых бит маски. Считают, сколько всего нулевых бит в маске (обычно нули сосредоточены в последних октетах). Если нулей , то теоретическое число адресов , а число адресов компьютеров с учётом исключения служебных — . Пример: маска 255.255.254.0 имеет в третьем октете (7 единиц, 1 ноль), в четвёртом октете все 8 бит нулевые. Итого нулей: , отсюда .
Метод 5. Определение маски по двум известным адресам одной подсети. Если даны два IP-адреса, принадлежащих одной подсети, находят, начиная со старшего бита, до какого разряда биты обоих адресов совпадают. Все совпадающие старшие биты — это единицы маски, остальные — нули. Пример: если у двух адресов совпадают первые 26 бит, значит маска содержит 26 единиц, то есть последние 6 бит — нули, а маска в десятичном виде — 255.255.255.192 (так как ).
Алгоритм решения по шагам
- Определить тип задачи: ищем номер компьютера / адрес сети, количество адресов, или маску.
- Перевести необходимые октеты (обычно только тот, где есть "переход" от единиц к нулям) в двоичный вид.
- Если ищем адрес сети или номер компьютера — выполнить побитовое "И" (или воспользоваться формулой остатка от деления для скорости).
- Если ищем количество адресов — посчитать число нулевых бит в маске и применить формулу или (в зависимости от условия — учитывать исключение служебных адресов или нет).
- Если ищем маску — сравнить два IP-адреса побитово, найти количество совпадающих старших бит, перевести обратно в десятичный формат.
- Проверить полученный ответ на согласованность с условием задания (число адресов, диапазон значений октета от 0 до 255 и т. д.).
Разбор примеров
Пример 1.
Условие: маска подсети , IP-адрес компьютера . Найти порядковый номер компьютера в сети.
Шаг 1. Сравниваем маску и IP-адрес по октетам. Первые три октета маски равны 255 — значит, соответствующие октеты IP-адреса (162, 198, 0) целиком относятся к адресу сети и не влияют на номер компьютера.
Шаг 2. Четвёртый октет маски — . Переводим в двоичный вид: . Здесь 3 единицы и 5 нулей.
Шаг 3. Пять нулевых бит означают, что номер компьютера кодируется 5 младшими битами последнего октета IP-адреса, то есть равен остатку от деления значения этого октета на .
Шаг 4. Последний октет IP-адреса равен 157. Считаем: , то есть .
Шаг 5 (проверка через двоичный вид). . Побитовое "И" с маской даёт — это адрес сети (четвёртый октет). Номер компьютера — это оставшиеся 5 бит IP-адреса: , младшие 5 бит — .
Ответ: 29.
Пример 2.
Условие: маска подсети . Найти количество различных адресов компьютеров, если два адреса (сети и широковещательный) не используются.
Шаг 1. Первые два октета маски — , то есть 16 единичных бит, полностью относятся к адресу сети.
Шаг 2. Третий октет маски — . Переводим: . Здесь 7 единиц и 1 ноль.
Шаг 3. Четвёртый октет маски — , все 8 бит нулевые.
Шаг 4. Общее число нулевых бит в маске: . Значит, теоретическое число адресов в подсети .
Шаг 5. По условию исключаются два адреса — сети и широковещательный. Итого доступных адресов компьютеров: .
Ответ: 510.
Пример 3.
Условие: маска подсети . Найти количество различных адресов компьютеров (с учётом исключения адреса сети и широковещательного адреса — это указано в примечании).
Шаг 1. Первые два октета маски — , 16 единичных бит, относятся к адресу сети.
Шаг 2. Третий октет маски — . Переводим в двоичный вид: . Здесь 5 единиц и 3 нуля.
Шаг 3. Четвёртый октет маски — , все 8 бит нулевые.
Шаг 4. Общее число нулевых бит: . Теоретическое число адресов в подсети: .
Шаг 5. Исключаем адрес сети и широковещательный адрес: .
Ответ: 2046.
Типичные ошибки и ловушки
- Путают количество единичных и нулевых бит в маске — считают степень двойки не от нулей, а от единиц. Всегда проверяйте: под адрес компьютера отводятся именно нулевые биты маски.
- Забывают вычесть 2 при подсчёте доступных адресов, когда условие явно требует исключить адрес сети и широковещательный адрес — или, наоборот, вычитают 2 там, где вопрос спрашивает про теоретическое (максимальное) количество адресов без исключений. Внимательно читайте формулировку: "теоретически допускает" обычно означает , а "доступно для использования" — .
- Ошибаются в переводе десятичного октета маски в двоичный вид — особенно при значениях 192, 224, 240, 248, 252, 254. Полезно выучить эти шесть значений наизусть, чтобы не тратить время на перевод при каждом решении.
- Забывают, что маска может "разрезать" октет не только на границе — единичные и нулевые биты внутри одного октета маски всегда идут подряд: сначала все единицы, потом все нули. Если в задаче получается "вразнобой" — это сигнал ошибки в вычислениях.
- При поиске номера компьютера через остаток от деления неправильно определяют делитель — берут не (где — число нулевых бит), а, например, само значение октета маски.
- При определении маски по двум адресам одной подсети сравнивают десятичные значения октетов напрямую, а не бит за битом — это может привести к ошибке, если совпадение десятичных чисел не означает совпадения всех восьми бит (хотя обратное верно: несовпадение чисел точно означает несовпадение хотя бы одного бита).
- Путают порядок октетов маски и IP-адреса при записи ответа — важно сохранять формат "четыре числа через точку" именно в том порядке, в котором идут октеты в условии.
Как готовиться
Первый шаг — довести до автоматизма перевод чисел от 0 до 255 в двоичный вид и обратно, а также твёрдо выучить таблицу стандартных значений маски (128, 192, 224, 240, 248, 252, 254, 255) и соответствующее им число единичных и нулевых бит. Это экономит драгоценные минуты на экзамене.
Второй шаг — прорешать по 8–10 задач каждого из трёх типов (номер компьютера/адрес сети, количество адресов, определение маски), чтобы отработать оба способа: полный перевод в двоичный вид с побитовым "И" и быстрый способ через операцию остатка от деления. Второй способ существенно ускоряет решение, но полезно уметь проверять себя первым способом.
Третий шаг — обязательно тренироваться на задачах с разными позициями "среза" маски: когда граница единиц и нулей проходит не по границе октета, а внутри него (как в примерах 1 и 3), поскольку именно такие задачи чаще вызывают ошибки. Полезно завести таблицу соответствия: число нулевых бит в подсети — степень двойки — число доступных адресов, чтобы быстро сверяться при решении.
Четвёртый шаг — решать варианты целиком в условиях ограниченного времени, чтобы задание 13 отрабатывалось за 2–3 минуты, оставляя запас времени на более сложные задачи экзамена.
Частые вопросы
Как быстро перевести десятичный октет маски в двоичный вид без ошибок?
Запомните таблицу: 128=10000000, 192=11000000, 224=11100000, 240=11110000, 248=11111000, 252=11111100, 254=11111110, 255=11111111. В каждом значении число единиц слева равно номеру значения в этом списке.
Что означает разница между теоретическим числом адресов и практически доступным?
Теоретическое число адресов равно , где — количество нулевых бит маски. Практически доступное число — , так как из подсети исключают адрес сети (все нули в поле компьютера) и широковещательный адрес (все единицы).
Как найти адрес сети, если известны IP-адрес и маска?
Нужно применить побитовую операцию "И" к IP-адресу и маске отдельно для каждого бита: результат совпадает с IP-адресом там, где в маске стоит 1, и равен нулю там, где в маске стоит 0.
Можно ли определить маску подсети, зная только один IP-адрес?
Нет, для определения маски нужна дополнительная информация: либо явно указанная маска, либо диапазон адресов сети, либо два IP-адреса, принадлежащих одной подсети, для сравнения их бит.
Почему номер компьютера можно найти как остаток от деления, а не только через двоичный перевод?
Если нулевые биты маски занимают младшие бит числа, то номер компьютера — это значение этих бит, а оно математически равно остатку от деления соответствующей части IP-адреса на .
Что делать, если в задаче маска "разрезает" октет не полностью, а частично?
Нужно перевести именно этот октет в двоичный вид, определить границу между единицами и нулями и работать с ней через побитовое "И" или формулу остатка от деления на , где — число нулевых бит в этом октете.
Сколько времени в среднем нужно тратить на задание 13 на экзамене?
При хорошем владении переводом систем счисления и знании стандартных значений маски задание решается за 2–4 минуты, включая проверку ответа.