Задача 12
В терминологии сетей TCP/IP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. Обычно маска записывается по тем же правилам, что и IP-адрес, – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда – нули.
Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.
Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.
Для узла с IP-адресом 57.179.208.27 адрес сети равен 57.179.192.0. Каково наибольшее возможное количество единиц в разрядах маски?
1. Поскольку адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске, то получим:
2. Так как первые два байта слева в IP-адресе узла и адресе сети совпадают, значит в маске при поразрядной конъюнкции в двоичной системе должны быть все единицы. Т.е. 111111112 = 25510
3. Для того, чтобы найти оставшиеся два байта маски, необходимо перевести соответствующие байты в IP-адресе и адресе сети в 2-ю систему счисления. Сделаем это:
20810 = 110100002
19210 = 110000002
4. Теперь посмотрим какая может быть маска для данного байта. Пронумеруем биты маски:
Для 7 и 6-го битов маски ? & 0 = 1, следовательно в маске на этих местах находится 1.
Для 5-го бита получаем: ? & 0 = 0, в маске может находиться как 1, так и 0. Но так как по заданию у нас спрашивается наибольшее возможное количество единиц, то значит необходимо указать, что в маске это 1.
Для 4-го бита получаем: ? & 1 = 0, следовательно в в маске на этом месте может находится только 0.
Для 3, 2, 1 и 0-го битов получаем: ? & 0 = 0. Так как в маске сначала идут единицы, а затем все нули, то на этих местах находятся 0.
5. Получим маску: 11111111.11111111.11100000.00000000. Единиц в маске: 8 + 8 + 3 = 19
Ответ: 19