Содержание
Структура IP-адреса
IP-адрес представляет собой число размером 32 бита (или 4 байта), которое может быть записано в любой системе счисления (тут речь про адрес протокола IP version 4, в IPv6 он имеет размер 128 бит).
Например, адрес в десятичной системе 127.0.0.1 можно записать так:
01111111.00000000.00000000.00000001
Адрес делится на 4 октета, по 8 бит каждый, которые могут иметь значение от 0 (00000000) до 255 (11111111):
IP-адрес содержит в себе две основных части – адрес сети и адрес хоста в этой сети.
К примеру, адрес 77.120.120.20 представляет собой сеть 77.120.120.0, в которой находится хост с адресом 20.
Сети и маска сети
Помимо указания самого IP-адреса, на сетевом интерфейсе так же указывается его маска сети. Маска не передаётся в заголовках TCP/IP пакетов, но используется сетевой картой для определения дальнейшего маршрута пакета – если адрес назначения находится в одной сети с адресом отправителя – он будет отправлен напрямую, если же в отдельной сети – пакет будет передан маршрутизатору, согласно таблице маршрутизации пакетов.
Рассмотрим адрес 77.120.120.20 с маской 255.255.255.0.
В двоичном представлении этот адрес можно записать так:
адрес:
01001101.01111000.01111000.00010100
маска:
11111111.11111111.11111111.00000000
Для первых трёх октетов в IP-адресе установлен (или “включён“) “бит маски” (иначе – “битовая маска“), следовательно – первые три октета адреса являются адресом сети, а последние 8 бит – адресом хоста.
Таким образом, адрес 77.120.120.20 с маской 255.255.255.0 является в сетью 77.120.120.0, которая является классом С (которая, в свою очередь, является подсетью сети 77.120.0.0 класса В, которая является подсетью сети 77.0.0.0, которая является сетью верхнего уровня – А, хотя с появлением CIDR (см. ниже) понятие “классы сети” фактически потеряло актуальность).
Что бы сократить запись о сети 77.120.120.0 с маской 255.255.255.0 – можно использовать сокращённую форму: 77.120.120.0/24.
“/24” называется “префикс сети“, и указывает на количество “битов маски“. Таким образом, из 32 бит адреса 24 указаны как адрес сети, а 8 – остаются для адресов хостов в этой сети.
Если взять, к примеру, сеть 77.120.120.0/28 – мы получим только 4 бита, выделенных для адресов, т.е. маска сети будет выглядеть как 11111111.11111111.11111111.11110000, или 255.255.255.240.
Такое описание сетей и подсетей называется “бесклассовой классификацией” (Classless Inter-Domain Routing – CIDR).
Использование CIDR даёт возможность отказаться от традиционного разбиения на сети различных классов (А, B, C и т.д.) , и создавать подсети необходимого размера.
К примеру, подсеть 77.120.120.0/28 (которую можно перевести в маску сети 11111111.11111111.11111111.11110000 в двоичном виде (4 последних бита “сброшены”)или 255.255.255.240 в десятичном) содержит 4 бита адресов хостов. В 4 бита можно “вместить” 24 адресов – 16. Из этих 16 стоит вычесть первый (сам адрес 77.120.120.0, так он является адресом самой сети) и последний (77.120.120.255, так как он является широковещательным, или broadcast, адресом сети, на который в теории должны отвечать все хосты сети), таким образом – из 16 адресов сети для хостов остаётся 14 адресов.
Маска подсети | Альтернативный формат записи |
Последний октет (в двоичном виде) |
Последний октет (в десятичном виде) |
255.255.255.0 | /24 | 0000 0000 | 0 |
255.255.255.128 | /25 | 1000 0000 | 128 |
255.255.255.192 | /26 | 1100 0000 | 192 |
255.255.255.224 | /27 | 1110 0000 | 224 |
255.255.255.240 | /28 | 1111 0000 | 240 |
255.255.255.248 | /29 | 1111 1000 | 248 |
255.255.255.252 | /30 | 1111 1100 | 252 |
Маска подсети | Размер идентификатора хоста | Максимальное количество хостов |
||
8 бит | 255.0.0.0 | 24 бит | 224 – 2 | 16777214 |
16 бит | 255.255.0.0 | 16 бит | 216 – 2 | 65534 |
24 бит | 255.255.255.0 | 8 бит | 28 – 2 | 254 |
29 бит | 255.255.255.248 | 3 бит | 23 – 2 | 6 |
Более полные таблицы сетей можно найти в статье Сети, подсети, классы подсетей. Таблица подсетей.
Разделение сети на подсети
Допустим, имеется сеть 77.120.120.0/24, или сеть 77.120.120.0 с маской 255.255.255.0 – из которой необходимо выделить две различные сети. Сеть 77.120.120.0/24 включает в себя адреса от 77.120.120.0 до 77.120.120.255.
Представим эту сеть и её маску в двоичном виде:
адрес сети:
1001101.1111000.1111000.00000000
маска:
11111111.11111111.11111111.00000000
Займём на один бит больше в последнем октете маски сети – 11111111.11111111.11111111.10000000 (или 255.255.255.128 в десятичном виде). У нас осталось (32 бита IP-адреса – 7 бит под адреса хостов) = 25 бит – под маску. Следовательно, первая сеть в десятичном виде будет выглядеть как 77.120.120.0/25, и включает в себя адреса от 77.120.120.0 до 77.120.120.127 (7 бит под адреса: 27 = 128 адресов, включая первый адрес 0 – получаем 127 всего), а вторая сеть получит адреса от 77.120.120.128 до 77.120.120.255, или 77.120.120.128/25.
Ещё один способ рассчитать максимальное значение (последний адрес для сети): в 25-ти битной маске мы имеем 7 бит под адреса; следовательно – адрес первой сети в двоичном виде будет выглядеть так: 1001101.1111000.1111000.00000000 – где жирным выделен адрес сети, а курсивом – “свободные” биты под адреса хостов. Максимальное значение, которое можно вместить в семь бит – 01111111 = 127.
Для второй сети мы имеем вид 77.120.120.128, или 1001101.1111000.1111000.10000000, а максимальное значение последнего октета будет 11111111 = 255.
Ссылки по теме