Я уже сталкивался с понятием маски сети в терминологии сетей TCP/IP‚ когда сам настраивал свою домашнюю сеть. Маска сети — это двоичное число‚ которое показывает‚ какая часть IP-адреса узла сети относится к адресу сети‚ а какая — к адресу узла в этой сети. Для того чтобы лучше понять‚ как работает маска сети‚ рассмотрим пример. Предположим‚ у нас есть сеть с IP-адресом 204.152.228.160 и маской сети 255.255.255.224. Чтобы определить‚ сколько IP-адресов имеют количество единиц в двоичной записи меньшее или равное количеству нулей‚ нам нужно проанализировать маску сети и сравнить ее с каждым IP-адресом в данной сети. Маска сети 255.255.255.224 представляет собой 32 бита‚ состоящих только из единиц (255 в десятичной системе). Когда мы применяем поразрядную конъюнкцию (AND) к IP-адресу 204.152.228.160 и маске сети 255.255.255.224‚ мы получаем адрес сети. В двоичном виде IP-адрес 204.152.228.160 выглядит так⁚ 11001100.10011000.11100100.10100000‚ а маска сети 255.255.255.224 ― 11111111.11111111.11111111.11100000. Поразрядная конъюнкция применяется побитово⁚ 11001100.10011000.11100100.10100000 AND 11111111.11111111.11111111.11100000 11000000.10011000.11100100.10100000. Таким образом‚ адрес сети для данной сети равен 192.152.228.160. Теперь‚ чтобы найти количество IP-адресов‚ удовлетворяющих условию‚ нам нужно определить диапазон IP-адресов в данной сети.
Поскольку маска сети имеет 27 единиц (первые 27 битов)‚ то остается только 5 битов для адресации узлов в этой сети. 5 битов могут принимать 2^5 32 значения‚ но одно из них зарезервировано для адреса сети‚ а другое — для широковещательного адреса. Таким образом‚ у нас остается 32 — 2 30 доступных IP-адресов в данной сети‚ которые удовлетворяют условию (количество единиц в двоичной записи IP-адреса меньше или равно количеству нулей).
Итак‚ в данной сети есть 30 IP-адресов‚ удовлетворяющих условию.