0
Вчера, 22:43
В закладки
Обсудить
Жалоба
16+

Определение байта маски сети по IP-адресу и адресу сети

Информатика | 4ЕГЭ курсы → | 4ЕГЭ ИИ →
Исходная задача

В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.

Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.

Для узла с IP-адресом 117.191.176.37 адрес сети равен 117.191.160.0. Чему равен третий слева байт маски? Ответ запишите в виде десятичного числа.

Справочник

Что нужно знать

IP-адрес и маска состоят из четырёх байтов. Каждый байт содержит восемь битов. Для перевода байта в двоичную систему используют веса разрядов:

128, 64, 32, 16, 8, 4, 2, 1.128,\ 64,\ 32,\ 16,\ 8,\ 4,\ 2,\ 1.

Адрес сети вычисляют побитно: каждый бит IP-адреса соединяют операцией конъюнкции с соответствующим битом маски.

Адрес сети=IP-адрес&Маска.\text{Адрес сети}=\text{IP-адрес}\mathbin{\&}\text{Маска}.

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

Бит IP-адресаБит маскиБит адреса сети
000000
001100
110000
111111

Единица в маске сохраняет соответствующий бит IP-адреса, а ноль в маске обнуляет его.

Главное ограничение на маску

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

Если в IP-адресе стоит единица и в адресе сети на том же месте тоже единица, бит маски равен 11. Если единица IP-адреса превратилась в ноль, бит маски равен 00.

Если же бит IP-адреса равен нулю, результат конъюнкции не позволяет сразу определить бит маски. Его находят с учётом непрерывной последовательности единиц.

Решение

Пошаговое решение

1. Переведём третьи байты в двоичную систему. Остальные байты пока не рассматриваем: конъюнкция выполняется независимо в каждом разряде.

176=128+32+16=101100002,160=128+32=101000002.\begin{aligned}176&=128+32+16=10110000_2,\\160&=128+32=10100000_2.\end{aligned}

2. Найдём место перехода от единиц к нулям в маске. Считаем разряды байта слева направо. В третьем разряде единица IP-адреса сохранилась, поэтому третий бит маски равен 11. В четвёртом разряде единица превратилась в ноль, поэтому четвёртый бит маски равен 00.

3. Восстановим весь байт маски. До третьего разряда включительно должны стоять единицы, а начиная с четвёртого — нули:

M=111000002=128+64+32=224.M=11100000_2=128+64+32=224.

4. Проверим конъюнкцию.

101100002&111000002=101000002,176&224=160.\begin{aligned}10110000_2\mathbin{\&}11100000_2&=10100000_2,\\176\mathbin{\&}224&=160.\end{aligned}

Полная маска — 255.255.224.0. Она действительно преобразует заданный IP-адрес в указанный адрес сети.

Ответ: 224.
Похожие задачи

Задача 1

Для узла с IP-адресом 10.42.172.19 адрес сети равен 10.42.168.0. Найдите третий слева байт маски. Ответ запишите десятичным числом.

Краткое решение. Переведём третьи байты в двоичную систему:

172=101011002,168=101010002.172=10101100_2,\qquad168=10101000_2.

Пятый слева бит равен единице в обоих байтах, а шестой бит IP-адреса обнулился. Значит, в байте маски первые пять битов — единицы, остальные — нули.

111110002=128+64+32+16+8=248.11111000_2=128+64+32+16+8=248.

Ответ: 248.

Задача 2

Для узла с IP-адресом 172.20.216.45 адрес сети равен 172.20.208.0. Найдите третий слева байт маски. Ответ запишите десятичным числом.

Краткое решение. Запишем третьи байты в двоичной системе:

216=110110002,208=110100002.216=11011000_2,\qquad208=11010000_2.

Четвёртая слева единица сохранилась, а пятая обнулилась. Следовательно, переход от единиц к нулям в маске происходит между четвёртым и пятым разрядами.

111100002=128+64+32+16=240.11110000_2=128+64+32+16=240.

Ответ: 240.

Задача 3

Для узла с IP-адресом 192.168.224.90 адрес сети равен 192.168.192.0. Найдите третий слева байт маски. Ответ запишите десятичным числом.

Краткое решение. Сравним двоичные записи третьих байтов:

224=111000002,192=110000002.224=11100000_2,\qquad192=11000000_2.

Вторая слева единица сохранилась, а третья обнулилась. Поэтому в байте маски ровно две начальные единицы.

110000002=128+64=192.11000000_2=128+64=192.

Ответ: 192.

Похожие материалы

Комментарии

Обработка персональных данных

Отправляя комментарий, вы даёте согласие на обработку своих персональных данных на условиях и для целей, определённых в политике в отношении обработки персональных данных, а также принимаете Пользовательское соглашение.