В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая к адресу самого узла в этой сети. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули. Обычно маска записывается по тем же правилам, что и IP-адрес, в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.
Для узла с IP-адресом 98.162.71.94 адрес сети равен 98.162.71.64. Чему равно наименьшее возможное значение последнего (самого правого) байта маски? Ответ запишите в виде десятичного числа.
Классно, давай разберёмся вместе как с этой задачей, так и с твоим ответом.
Что нужно найти
- П last byte маски должен быть таким, чтобы при побитовом «и» IP-адреса узла с маской получался адрес сети. В маске сначала идут единицы (старшие биты), потом нули.
- В задаче дан IP узла 98.162.71.94 и они приводят пример, что для этого узла адрес сети равен 98.162.71.64. Это значит, что для нужного примера последняя часть сети формируется так, чтобы IP_last_byte & mask_last_byte = 64.
- Нужно найти минимальное возможное значение mask_last_byte среди всех допустимых вариантов.
Как решать по шагам
1) Взять последний байт IP: 94.
- 94 в двоичной форме: 01011110.
2) Нужно, чтобы итоговый последний байт сети был 64, который в двоичной форме: 01000000.
3) Найдём все допустимые варианты последнего байта маски, которые дают 01011110 AND mask_last_byte = 01000000.
Допустимые значения маски для последнего байта (маска имеет форму: 11111111...0000...): 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF.
Подставляем и считаем:
- 0x00 → 01011110 & 00000000 = 00000000 (0)
- 0x80 → 01011110 & 10000000 = 00000000 (0)
- 0xC0 → 01011110 & 11000000 = 01000000 (64) — подходит
- 0xE0 → 01011110 & 11100000 = 01000000 (64) — тоже подходит
- Остальные (0xF0, 0xF8, 0xFC, 0xFE, 0xFF) дают 80, 88, 92, 94 и т.д., не равны 64.
4) Среди подходящих вариантов маски последнего байта минимальное значение равно 0xC0, что в десятичной системе равно 192.
Ответ
- Минимальное возможное значение последнего байта маски: 192.
Твой исходный ответ
- "Ученик не дал ответ на задание" — это неверно. Нужно было посчитать и привести конкретное число. Хорошая подсказка: попробуй пройти тот же шаг по аналогии с примером и проверить все допустимые значения последнего байта маски.
Подсказка на заметку (если хочешь тронуть тему без спойлеров): чтобы понять, почему именно 192, посмотри, какие допустимые значения маски дают нужный результат сети 64 на последнем байте, и выбери наименьшее из них.
Понимаешь, почему именно 192? Потому что из всех допустимых вариантов последний байт маски, которые дают сетевой байт 64, — это 0xC0 и 0xE0, и 0xC0 — наименьшее из них.
Хочешь ещё аналогичную задачку попрактиковаться или разобрать другой примеры по маскам и сетям?
Пожалуйста, оцени мой ответ лайком или дизлайком.