К содержанию

Задание 10 · Маска подсети

Практика и итог

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

Одна задача — вся тема

Задача темы — наибольший адрес компьютера в сети узла 172.20.77.140 с маской 255.255.252.0 — прошла через подтемы, и каждая добавляла к ней новый вопрос. Пролистай черновик: точками отмечены строки, которых не было после предыдущей подтемы.

  1. Подтема 1, «IP-адрес и маска»: маска делит сеть и узел. Точками отмечены новые строки.
  2. Подтема 2, «Адрес сети и границы»: края сети и ответ.
  3. Подтема 3, «Количество адресов»: 2ʰ адресов, номер узла.
  4. Подтема 5, «Двоичная запись»: единицы сети — у всех адресов. Ответ задачи темы — 525.

Сеть одна и та же — менялся вопрос: края, количество адресов, номер узла, адреса с нужным числом единиц. Подтемы 4 и 6 решают обратную задачу — ищут маску, когда её не дали.

Карта темы

Каждая подтема дала несколько правил, и любое решение собирается из них. Сверху — путь от условия к ответу, ниже — по блоку на подтему. Заголовок блока ведёт на подтему.

  1. Границадлина маски p: дана или её ищут
  2. Сетьадрес сети и широковещательный
  3. Вопроскрая, количество, маска или биты

1IP-адрес и маска

  • 32 бита4 октета по 8 битов
  • /pp единиц маски, узлу h = 32 − p битов
  • октеты маски0, 128, 192, 224, 240, 248, 252, 254, 255

2Адрес сети и границы сети

  • адрес И маскаадрес сети: часть узла — нули
  • 256 − mразмер блока в октете
  • broadcast_address - 1наибольший адрес компьютера

3Количество адресов и номер узла

  • 2ʰ и 2ʰ − 2все адреса и адреса компьютеров
  • I − Nномер узла; у адреса сети номер 0

4Неизвестная маска

  • L ≤ p ≤ Cвсе маски, дающие этот адрес сети
  • два узлаp не больше длины общего начала
  • краяузел не может быть адресом сети

5Адреса с условием на двоичную запись

  • биты сетиодинаковы у всех адресов — посчитать раз
  • f'{address:b}'все 32 бита адреса
  • net.hosts()только адреса компьютеров

6Маска по условию и сочетаниядополнительный урок

  • C(h, k − c)адресов с k единицами
  • 33 длиныпроверить условие на каждой маске
Карта темы: путь к ответу сверху и главное из каждой подтемы. Номер блока — номер подтемы.

Как решать

Любое задание 10 решается одним порядком из пяти шагов. Каждому шагу ты уже учился — под ним номера подтем:

Главный шаг — граница сети, длина маски p: её дают в условии или ищут, а дальше сеть строится по битам. Если проверка не сошлась, пересчитывают границу.

Проверка — подстановка обратно: адрес сети получается из адреса узла и маски, узел лежит между краями сети, в маске нет единиц после нуля.

Частые ошибки

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

три октета
сеть — всегда первые три октета → число битов сети задаёт маска. Спроси себя: сколько единиц в маске?подтема 1
/22
в /22 свободны 22 бита → свободны 32 − 22 = 10. Спроси себя: это биты сети или биты узла?подтема 1
.0 и .255
любой адрес на .0 — адрес сети → нулями должна быть вся часть узла. Спроси себя: сколько битов у узла в этой сети?подтема 2
минус два
после любого подсчёта вычли 2 → края вычитают, только если они не подходят. Спроси себя: подходят ли края сети под условие?подтема 3
номер узла
номер узла — I − N + 1 → номер — расстояние I − N. Спроси себя: какой номер у самого адреса сети?подтема 3
совпавшие нули
бит совпал — в маске поставили 1 → два нуля маску не определяют: L ≤ p ≤ C. Спроси себя: какие длины маски ещё подходят?подтема 4
первая маска
ответили первой найденной маской → вопрос решает: наименьшая, наибольшая или сколько. Спроси себя: что спрашивают о масках?подтема 4
bin
bin(x) → f'{address:b}'. Спроси себя: все ли 32 бита в записи?подтема 5

Итог

Тема пройдена: задача темы решена от битов маски до ответа 525. Вот что взять с собой.

  • ПорядокБиты, граница, сеть, вопрос, проверка.
  • Границаp битов сети, h = 32 − p битов узла.
  • КраяЧасть узла из нулей и из единиц — не компьютерам.
  • Маска по адресамL ≤ p ≤ C — вопрос решает, какую взять.
  • Задача темы172.20.79.254: 172 + 20 + 79 + 254 = 525.

Проверьте себя

Ответь сначала сам, потом открой ответ.

Вопрос 1

Маска 255.255.255.224. Сколько битов у части узла и сколько адресов в сети?

ОтветСкрыть ответ
Ответ

224 = 11100000: маска /27, узлу 5 битов, адресов 2⁵ = 32.

Вопрос 2

Узел 10.0.5.200, маска 255.255.255.192. Какой адрес сети?

ОтветСкрыть ответ
Ответ

Блок 256 − 192 = 64: 200 лежит в блоке 192–255, адрес сети 10.0.5.192.

Вопрос 3

Почему наибольший адрес компьютера на единицу меньше широковещательного?

ОтветСкрыть ответ
Ответ

Широковещательный адрес — часть узла из одних единиц — компьютерам не назначают, как и адрес сети.

Вопрос 4

Узлы 66.12.250.3 и 66.12.236.190 в одной сети. Чем ограничена длина маски?

ОтветСкрыть ответ
Ответ

Длиной общего начала адресов: 250 = 11111010, 236 = 11101100 — совпадают три первых бита третьего октета, поэтому p ≤ 19.

Практика

Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.

Сумма октетов адреса сети

Узел имеет IP-адрес 93.180.214.77. Маска сети равна 255.255.255.192. Определи адрес сети и в ответе запиши сумму значений его октетов.

Введите число.

Наименьшее число единиц маски

Для узла с IP-адресом 140.33.118.46 адрес сети равен 140.33.112.0. Каково наименьшее возможное количество единиц в разрядах маски?

Введите число.

Третий байт маски общей сети

Узлы с IP-адресами 66.12.250.3 и 66.12.236.190 находятся в одной сети. Укажи наибольшее возможное значение третьего слева байта маски этой сети.

Введите число.

Число единиц кратно 5

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

Введите число.

Наибольший адрес компьютера без точек

Сеть задана IP-адресом одного из входящих в неё узлов 31.87.140.250 и сетевой маской 255.255.248.0. Найди наибольший IP-адрес этой сети, который может быть назначен компьютеру. В ответе укажи найденный адрес без разделителей.

Введите адрес без точек.