Маска, номер сети, количество хостов

Пару слов о том, зачем нужна маска сети.

Локальная сеть имеет ip адресацию:

  • 192.168.0.1 – 192.168.254.254
  • 10.0.0.1 – 10.254.254.254
  • 172.16.0.1 – 172.31.254.254

Маска в них определяет, что относится к сети, а что к хосту. Зачастую ip адрес в домашней сети, начинается с 192.168.0.1 - адреса роутера, с маской 255.255.255.0, первые 255.255.255 говорят о том, что это номер сети, а 0 (его диапазон 0-255) в конце указывает на кол-во хостов. Здесь может быть 256 хостов (0 - тоже считается), но по факту 2 адреса съедаются на номер сети (здесь он 192.168.0.0) и на широковещательный адрес (здесь он 192.168.0.255 - нужен для служебного трафика, опроса хостов, например когда нужно узнать кто находится с нами в одной сети), остаются доступные 254 адреса для хостов.

К примеру имеется задание: к какой из сетей можно больше подключить хостов: 172.16.0.15/16 или 192.168.0.11/24 (цифры /16 и /24 указывают маску, а именно кол-во бит = 1 в каждом из 4-х октетов, которые идут друг за другом)

01 Переведем сначала адреса 172.0.0.1 и 192.0.0.1 в двоичную систему счисления, по таблице ниже:

7 6 5 4 3 2 1 0
128 64 32 16 8 4 2 1

Указанные биты с 0-7 это 8 бит в октете ip адреса (их 4), которые состоят из 0 или 1. Чтобы получить число 172 или 192, либо любое другое из ip адреса, нужно складывать из таблицы числа. К примеру, чтобы получить первый октет 172 нужно сложить 128+32+8+4 и соответственно поставить в таблице 1 там где эти значения присутствуют, в других поставить 0:

7 6 5 4 3 2 1 0
128 64 32 16 8 4 2 1
1 0 1 0 1 1 0 0

02 Так мы перевели первый октет 172 в двоичную систему, последовательно переводим каждый октет всего ip адреса и получаем:

10101100.00000000.00000000.00000001

03 Маску /16 так же переводим, но здесь 1 должны идти всегда друг за другом, всего в этой маске 16 единиц, а остальные 0:

11111111.11111111.00000000.00000000

04 Ip адрес и маску в двоичную систему мы перевели, нужно узнать номер сети, перемножаем столбиком ip адрес на маску:

10101100.00010000.00000000.00001111

11111111.11111111.00000000.00000000
10101100.00010000.00000000.00000000

Теперь полученное значение переводим 10-теричную систему, складывая единицы:

10101100 .00010000 .00000000 .00000000
172 .16  .0 .0

05 Получили номер сети 172.16.0.0. Теперь узнаем сколько может быть хостов в этой сети основываясь на маске, ее тоже переводим в 10-теричную систему:

11111111 .11111111 .00000000 .00000000
255 .255 .0 .0
В итоге получаем из исходных 172.16.0.1/16 - это сеть 172.16.0.0 с маской 255.255.0.0, где последние два нуля говорят о том, что там будут хосты, т.е. диапазон сети 172.16.0.1 - 172.16.255.255 (255 для широковещательного трафика), в итоге последние 2 октета перемножаем 256*256 = 65536 минус 2 адреса для номера сети и широковещательного = 65534 хоста. Таким образом, маска 255.255.0.0 говорит о том, что к примеру хосты 172.16.1.1 и 172.16.2.1 будут расположены в одной сети и увидят друг друга.

Кстати из двоичной маски, можно сразу подсчитать сколько будет хостов, нужно кол-во последних нулей возвести в степень 2-ки, к примеру у маски 255.255.0.011111111.11111111.00000000.00000000 последних нулей 16 шт. после единиц, поэтому 216 = 65536 хостов минус 2 хоста = 65534.

06 Аналогичным образом подсчитаем ip 192.168.0.11/24 = маска в двоичной системе будет 24 единицы и 8 нулей11111111.11111111.11111111.00000000 = 28 = 256 хостов минус 2 = 254.

В итоге получаем, что сеть 172.16.0.0/16 имеет на 65280 больше хостов, чем 192.168.0.0/24

07 Если к примеру маска указана в ip 192.168.0.0/25, переведем ее в 2-ичную систему, где 25 единиц = 11111111.11111111.11111111.10000000 с помощью все той же таблицы:

7 6 5 4 3 2 1 0
128 64 32 16 8 4 2 1

7 свободных нулей - это 27 = 128 хостов будет в сети. Получаем маску:

11111111 .11111111 .11111111 .10000000
 255  .255  .255  .128

Получили 3 октета под сеть 192.168.0 (указывает маска 255.255.255) и последний октет под хосты (указывает маска в октете .128), которые начинаются с 1 до 126.

mr. Mak

Остались вопросы? Пишите на почту admin@hzit.ru

Администратор сайта hzit.ru
Back to top