Top.Mail.Ru

Нахождение IP-адреса и маски подсети (№ 13). Часть 1

10 класс

Поделиться статьей:

Informatics

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

В этой части разберём ключевые понятия и посмотрим, как применять их на типовых заданиях.

Термины, которые будем использовать: маска подсети, адрес сети, IP-адрес, узел (хост), широковещательный адрес, бит сети, бит узла, октет, поразрядная конъюнкция.

Основные понятия

IP-адрес (Internet Protocol Address)

IP-адрес — это уникальный 32-битный идентификатор устройства в сети (в версии IPv4). В заданиях ЕГЭ он записывается в десятичном виде: четыре числа от 0 до 255, разделённые точками.

Пример: 192.168.1.10

Двоичный вид: 32 бита, разбитые на 4 октета.

Маска подсети

Маска подсети — это тоже 32-битное число, которое определяет, какая часть IP-адреса относится к адресу сети, а какая — к адресу узла.

Свойство: в двоичной записи маски сначала идут только единицы (биты сети), затем только нули (биты узла). Никаких чередований.

Пример: 255.255.255.0 (в двоичном виде 24 единицы и 8 нулей).

Поразрядная конъюнкция

Поразрядная конъюнкция (логическое «И») — это логическая операция над двумя битами: результат равен 1, только если оба бита равны. Применяется к IP-адресу и маске для получения адреса сети.

Правило для байтов:

1 & 1 = 1

1 & 0 = 0

0 & 1 = 0

0 & 0 = 0

Адрес сети (Network Address)

Адрес сети — это минимальный адрес в данной подсети. Обозначает саму сеть, а не отдельное устройство.

Как получить: поразрядная конъюнкция (логическое «И») IP-адреса узла и маски подсети.

Особенность: в адресе сети все биты узловой части равны 0.

Пример: для IP 192.168.1.156 и маски 255.255.255.240 адрес сети = 192.168.1.144.

Широковещательный адрес

Широковещательный адрес — это максимальный адрес в подсети. Используется для отправки данных сразу всем узлам сети.

Особенность: все биты узловой части равны 1.

Как получить: адрес сети + (в узловой части все биты установить в 1).

Биты сети и биты узла (биты хоста)

Бит сети — это бит в IP-адресе, который относится к адресу сети. Определяется единицей в маске на той же позиции.

Бит узла — это бит в IP-адресе, который относится к адресу конкретного устройства внутри сети. Определяется нулём в маске на той же позиции.

Научимся отличать их.

IP-адрес узла: 192.168.45.67

Маска подсети: 255.255.240.0

Переведём в двоичную систему счисления (каждый байт состоит из 8 бит):

IP (двоичный):

11000000.10101000.00101101.01000011

Маска (двоичная):

11111111.11111111.11110000.00000000

Подставим IP под маску:

11111111.11111111.11110000.00000000
11000000.10101000.00101101.01000011

Теперь посмотрим на каждую позицию бита (читаем слева направо).

Позиции 1–16 (первые два октета): маска везде 1 — биты сети.

Позиции 17–20 (первые 4 бита третьего октета): маска: 1111 (первые 4 бита третьего октета) — это биты сети.

Позиции 21–24 (последние 4 бита третьего октета): маска: 0000 — это биты узла.

Позиции 25–32 (четвёртый октет целиком):

Маска: 00000000 — это тоже биты узла.

Октет

Октет — это группа из 8 бит. В записи IP-адреса и маски каждый из четырёх десятичных чисел — это значение одного октета.

Диапазон: от 0 до 255 включительно.

Количество адресов в подсети

Количество адресов в подсети — это общее число всех возможных IP-адресов внутри данной подсети (включая адрес сети и широковещательный адрес).

Формула: $2^n$, где n — количество нулевых битов в маске.

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой

Количество доступных узлов (хостов)

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

Формула:

$2^{\text{количество нулевых битов в маске}} − 2$

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

Разбор типовых задач

Задача 1

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

Сеть задана IP-адресом 124.8.0.0 и маской сети 255.248.0.0. Определите максимальное количество нулей в двоичной записи IP-адреса в этой сети.

Запишем данные в десятичном и двоичном виде:

Нахождение IP-адреса и маски подсети (задание 1)

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

Биты сети в IP-адресе изменять нельзя, поэтому на первых 12 битах будет располагаться 7 нулей. Далее количество нулей нужно максимизировать. Заметим, что 13-й бит в IP-адресе всегда будет равен 1, поскольку 1 стоит на этом месте и в маске, и в адресе сети, значит заменить на 0 не получится — сеть изменится. На оставшиеся позиции поставить все 0 можно. Итого 7 + 19 = 26 нулей.

Ответ: 26.

Задача 2

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

Сеть задана IP-адресом 192.168.32.160 и маской сети 255.255.255.240. Сколько в этой сети IP-адресов, для которых сумма единиц в двоичной записи IP-адреса равна 10? В ответе укажите только число.

Запишем данные в десятичном и двоичном виде:

Нахождение IP-адреса и маски подсети (решение задач)

Находим то место, где у нас в маске прекращают быть единицы и начинаются нули. Опираясь на него можно сказать, что в адресе сети 100% уже будет 8 единиц, а по условию нужно 10. Значит на оставшиеся 4 места, где из-за маски у нас могут стоять как нули, так и единицы, нам нужно разместить еще 2 единицы.

Используем формулу размещения для этого:

P(занято мест, свободно мест) = (свободные места + занятые места) / ((занятые места)! * (свободные места)!) = 4! / (2! * 2!) = 6

Ответ: 6.

Задача 3

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

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

Запишем данные в десятичном и двоичном виде:

Нахождение IP-адреса и маски подсети (решение задач 2)

Находим то место, где у нас в маске прекращают быть единицы и начинаются нули. Одинаковое количество единиц и нулей значит, что у нас будет 16 единиц и 16 нулей в нашей сети. В битах сети у нас будет 7 единиц и 12 нулей, значит необходимо поставить ещё 4 нуля и 9 единиц.

Воспользуемся формулой: Р(4, 9) = 13! / (4! * 9!) = 715

Ответ: 715.

Задача 4

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

Узлы с IP-адресами 154.63.206.129 и 154.63.100.75 находятся в одной сети. Укажите наименьшее возможное количество принадлежащих этой сети IP-адресов, в двоичной записи которых чётное число единиц.

Запишем данные в десятичном и двоичном виде:

Нахождение IP-адреса и маски подсети. Аналитика

Первые два октета узлов совпадают, значит это октеты сети. Теперь нужно определить границы маски. Первые два октета маски состоят из единиц, на 17-м бите заметим, что в узлах стоят разные биты, значит их оба можно обратить только в 0 в сети, следовательно в маске на 17-й позиции стоит 0, обращающий и 1, и 0 в одно и то же. Чередования нет, поэтому все последующие биты в маске нулевые. В сети соответственно тоже.

У нас 16 битов хоста нулевые, значит количество адресов в сети 2^16, из них половина имеет чётное количество единиц, вторая половина — нечётное. Значит 2^16 / 2 = 32 768.

Ответ: 32 768.

Заключение

Задача № 13 проверяет не столько знание формул, сколько понимание структуры IP-адреса и маски. Если разобраться, какие биты относятся к сети, а какие — к узлу, большинство заданий сводится к аккуратной работе с двоичной записью и базовой комбинаторикой.

В этой части мы разобрали теорию и типовые приёмы решения аналитическим способом. В следующей статье продолжим тему и научимся решать такие задачи программно — с помощью модуля ipaddress на Python.

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой

В 100б ты пробьёшь свой
максимум на экзаменах

наши лучшие курсы

Выбери подходящий курс и предмет, чтобы прокачаться и сдать ОГЭ на «5», а ЕГЭ на 80+ баллов

Выбрать курс

бесплатные материалы

Курсы, вебы, чек-листы — всё за 0 ₽

Забрать за 0 ₽

Интенсив по поступлению

Запишись на интенсив по поступлению, чтобы
взять из ЕГЭ максимум и попасть в вуз мечты

Записаться
В 100балльном репетиторе ты пробьёшь свой максимум на экзаменах

Преимущества подготовки
в 100балльном

10+
лет средний опыт наших преподавателей

18
выпускников сдали ЕГЭ
на 200 из 200 в 2024 году

300k+
учеников поступили в вуз мечты с нашей помощью 

14%
стобалльников России — наши выпускники

2 347
выпускника сдали ЕГЭ на 100 баллов

Преимущества подготовки в 100балльном

Запишись
на бесплатный
вводный урок

Познакомим с преподавателями и платформой

Расскажем про учёбу

Поможем поставить цель

  • 11 класс
  • 10 класс
  • 9 класс
  • 8 класс
  • 7 класс
Запись на вводный урок

Список всех тем