Использование масок в IP-адресации

Традиционная схема деления IP-адреса на две логические части: IP-адрес подсети и IP-адрес узла в этой подсети основано на понятии класса IP-адресации, который определяется значениями первых бит первого байта при двоичном представлении этого IP-адреса. Например, IP адрес «192.168.185.101» по значению первого байта попадает в диапазон 192-223. Можно утверждать, что IP-адрес относится к классу «C», а, следовательно, IP-адресом подсети являются первые три байта, дополненные нулевым байтом: «192.168.185.0», при этом IP-адресом узла в этом IP подсети является «0.0.0.101».

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

Маска – это число, которое используется в паре с IP-адресом. Двоичное представление маски содержит непрерывную последовательность единиц в тех двоичных разрядах, начиная с первого бита первого байта, которые должны при двоичном представлении IP-адреса интерпретироваться как IP-адрес подсети. Дополнительно отметим, что поскольку IP-адрес подсети является цельной частью IP-адреса, единицы в маске также должны представлять непрерывную последовательность. Для стандартных классов «A», «B», «C» в IP-адресации, маски имеют следующие базовые значения:

1. Класс «A» – 11111111.00000000.00000000.00000000 (255.0.0.0).

2. Класс «B» – 11111111.11111111.00000000.00000000 (255.255.0.0).

3. Класс «C» – 11111111.11111111.11111111.00000000 (255.255.255.0).

В масках количество единиц в последовательности, определяющей границу IP-адреса подсети в IP-адресе, не обязательно должна быть кратна 8 (т.е. не обязательно непрерывная последовательность единиц в маске должна всегда заканчиваться на границе байта). Пусть, например, для IP-адреса «129.64.134.5» задана маска «255.255.128.0». Представим указанный IP-адрес в двоичной системе исчислений:

1. 129 – 10000001

2. 64 – 01000000

3. 134 – 10000110

4. 5 – 000000101

Теперь маску подсети:

1. 255 – 11111111

2. 255 – 11111111

3. 128 – 10000000

4. 0 – 00000000

Если игнорировать маску, то в соответствии с системой классов адресации IP-адрес «129.64.134.5» относится к классу «B». Это значит, что IP-адресом IP-подсети являются первые два байта «129.64.0.0», а IP-адресом узла является значение «0.0.134.5».

Теперь воспользуемся для определения границы в двоичном представлении IP-адреса подсети маску. Накладываем последовательность из 17 единиц в маске на двоичное представление IP-адреса (выполняется логическая операция «И» для каждого из битов). Определяем для каждого двоичного представления IP-адреса подсети следующую двоичную последовательность:

1000001.01000000.10000000.00000000.

Там, где заканчиваются единицы в маске, заканчивается представление IP-адреса подсети в IP-адресе. Переведя полученную двоичную последовательность в десятичную систему исчислений, получаем IP-адрес подсети «129.64.128.0». Переведя оставшиеся биты в IP-адресе, где в маске прописаны нули, получим двоичного представление IP-адреса узла «0.0.6.5».


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: