Определение байта маски сети по IP-адресу и адресу сети
В терминологии сетей 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-адрес и маска состоят из четырёх байтов. Каждый байт содержит восемь битов. Для перевода байта в двоичную систему используют веса разрядов:
Адрес сети вычисляют побитно: каждый бит IP-адреса соединяют операцией конъюнкции с соответствующим битом маски.
Поразрядная конъюнкция
| Бит IP-адреса | Бит маски | Бит адреса сети |
|---|---|---|
Единица в маске сохраняет соответствующий бит IP-адреса, а ноль в маске обнуляет его.
Главное ограничение на маску
Во всей маске единицы идут подряд слева, затем идут только нули. После первого нуля единицы появляться не могут.
Если в IP-адресе стоит единица и в адресе сети на том же месте тоже единица, бит маски равен . Если единица IP-адреса превратилась в ноль, бит маски равен .
Если же бит IP-адреса равен нулю, результат конъюнкции не позволяет сразу определить бит маски. Его находят с учётом непрерывной последовательности единиц.
Пошаговое решение
1. Переведём третьи байты в двоичную систему. Остальные байты пока не рассматриваем: конъюнкция выполняется независимо в каждом разряде.
2. Найдём место перехода от единиц к нулям в маске. Считаем разряды байта слева направо. В третьем разряде единица IP-адреса сохранилась, поэтому третий бит маски равен . В четвёртом разряде единица превратилась в ноль, поэтому четвёртый бит маски равен .
3. Восстановим весь байт маски. До третьего разряда включительно должны стоять единицы, а начиная с четвёртого — нули:
4. Проверим конъюнкцию.
Полная маска — 255.255.224.0. Она действительно преобразует заданный IP-адрес в указанный адрес сети.
Задача 1
Для узла с IP-адресом 10.42.172.19 адрес сети равен 10.42.168.0. Найдите третий слева байт маски. Ответ запишите десятичным числом.
Краткое решение. Переведём третьи байты в двоичную систему:
Пятый слева бит равен единице в обоих байтах, а шестой бит IP-адреса обнулился. Значит, в байте маски первые пять битов — единицы, остальные — нули.
Ответ: 248.
Задача 2
Для узла с IP-адресом 172.20.216.45 адрес сети равен 172.20.208.0. Найдите третий слева байт маски. Ответ запишите десятичным числом.
Краткое решение. Запишем третьи байты в двоичной системе:
Четвёртая слева единица сохранилась, а пятая обнулилась. Следовательно, переход от единиц к нулям в маске происходит между четвёртым и пятым разрядами.
Ответ: 240.
Задача 3
Для узла с IP-адресом 192.168.224.90 адрес сети равен 192.168.192.0. Найдите третий слева байт маски. Ответ запишите десятичным числом.
Краткое решение. Сравним двоичные записи третьих байтов:
Вторая слева единица сохранилась, а третья обнулилась. Поэтому в байте маски ровно две начальные единицы.
Ответ: 192.