Модуль: Вопрос 10 (2027). Компьютерные сети: IP-адрес и маска


Маска не одна: перебор вариантов


Войдите на сайт, чтобы ответы сохранялись и баллы за тетрадь засчитывались.

Однозначности нет

По адресу узла и адресу сети маска восстанавливается не всегда.

Если в адресе узла на каком-то месте и так стоит ноль, то маска может держать там и единицу, и ноль — адрес сети получится один и тот же.


Перебрать и выбрать

Нули в адресе узла ничего не говорят о маске. Информацию дают только те места, где в адресе узла стоит единица.

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


Пример.

Для узла с IP-адресом 127.220.170.23 адрес сети равен 127.220.168.0. Чему равно наименьшее возможное количество нулей в маске.

Шаг 1. Спорный байт

Первые два байта совпали, четвёртый обнулился. Разбираем третий: 170 против 168.

  128 64 32 16 8 4 2 1
узел 170 1 0 1 0 1 0 1 0
сеть 168 1 0 1 0 1 0 0 0
Шаг 2. Где границе стоять нельзя

Единица 2 погасла. Значит на её месте у маски ноль, и правее неё граница быть не может.

Единица 8 уцелела. Значит маска её держит, и левее неё граница быть не может.

Шаг 3. Что осталось посередине

Между 8 и 2 стоит бит 4, и в адресе узла на нём ноль. Такой бит маска может захватить, а может и нет — адрес сети от этого не изменится.

Поэтому подходят две маски: в третьем байте либо 11111000, либо 11111100. Это 21 и 22 единицы.

Шаг 4. Выбрать то, что спросили

Спросили наименьшее количество единиц — 21. Спросили бы наибольшее — 22, а количество масок — 2.


Та же задача программой

Теперь важно не остановиться на первой подходящей маске, а собрать все в список.



Что печатает программа
[21, 22]
21
22

То же через ipaddress

Тот же список, но без ручной сборки байтов маски.



Что печатает программа
[21, 22]
21
22

Проверь себя


Для узла с IP-адресом 60.7.85.9 адрес сети равен 60.7.84.0. Сколько разных масок этому соответствует?

Где теряют балл

  • Решили, что маска одна, и взяли первую попавшуюся.
  • Спросили наибольшее количество единиц, ответили наименьшим.
  • Посчитали, что ноль в адресе узла запрещает единицу в маске. Не запрещает.