Статья Автор: Деникина Н.В., Деникин А.В.

Адресация в Интернете

Адресация в Интернете

Адресация в Интернете осуществляется с помощью IP-адресов.

IP-адрес - это уникальный идентификатор устройства в сети, который позволяет маршрутизаторам определить, куда отправить данные.

Существует две версии IP-адресов: IPv4 и IPv6. IPv4 представляет из себя четыре октета (4 байта) чисел, разделенных точками (например, 192.168.1.1), а IPv6 использует более длинные адреса, состоящие из шестнадцатеричных символов (например, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 - 128 бит).
С ростом количества устройств, подключенных к Интернету, возникла проблема нехватки IPv4-адресов. Для решения этой проблемы был разработан новый стандарт - IPv6 (Internet Protocol version 6), который обеспечивает гораздо большее количество уникальных адресов (более 340 секстиллионов).

Для обращения к устройству в Интернете необходимо знать его IP-адрес. Однако, для удобства людей были созданы доменные имена, которые преобразуются в IP-адреса с помощью службы DNS (Domain Name System).

Пример адресации: когда вы вводите в браузере "www.example.com", ваш компьютер отправляет запрос на DNS-сервер, который возвращает соответствующий IP-адрес (например, 192.0.2.1), после чего ваш компьютер может установить соединение с сервером по этому адресу.
 

Интернет протокол версии 4 (IPv4) 

IPv4 (Internet Protocol version 4) - это стандартный протокол сетевого уровня, который используется для идентификации и маршрутизации данных в Интернете.
Адреса IPv4 представляют собой 32-битные числа, разделенные точками, например, 192.168.1.1. В адресах IPv4 используются четыре октета (байта), каждый из которых может принимать значения от 0 до 255. Это дает общее количество возможных адресов около 4,3 миллиарда.
IPv4-адресация включает в себя понятия подсетей, масок подсети, шлюзов по умолчанию и другие элементы, которые позволяют эффективно управлять сетью и маршрутизировать данные. Важно помнить, что IPv4 все еще широко используется в сетях по всему миру.
 
Основные понятия адресации в сети IPv4:
1. Адрес сети (Network Address)
Это адрес, который используется для идентификации конкретной сети в сети Интернет. Адрес сети имеет нулевые последние биты.

2. Адрес узла в сети (Host Address)
Это адрес, который используется для идентификации конкретного устройства (узла) в сети. Адрес узла представляет собой уникальный адрес в пределах данной сети. 

3. Маска подсети (Subnet Mask)
Маска подсети определяет, какие биты в IP-адресе относятся к адресу сети, а какие - к адресу узла. Она состоит из последовательности единиц, за которыми следуют нули. Маска подсети помогает разделить IP-адрес на адрес сети и адрес узла. Например, если у нас есть IP-адрес 192.168.1.10 и маска подсети 255.255.255.0, то первые три октета (192.168.1) будут обозначать адрес сети, а последний октет (.10) - адрес узла в этой сети.
Маска подсети может быть записана в нескольких форматах:
- Десятичная запись: например, 255.255.255.0
- Количество установленных битов: например, /24 (это означает, что первые 24 бита адреса отведены под сеть, а оставшиеся 8 бит - под узлы)
- Префиксная запись: например, 192.168.1.0/24 (это сочетание IP-адреса с маской подсети в виде префикса)
Все эти варианты представляют одну и ту же маску подсети

Для определения адреса сети по IP-адресу и маске подсети, необходимо выполнить логическую операцию побитового "И" (AND) между битами IP-адреса и маска подсети. Результат этой операции будет адресом сети.

 
Пример 1

Пусть у нас есть IP-адрес 192.168.1.10 и маска подсети 255.255.255.0.
1. Преобразуем IP-адрес и маску в двоичную систему
IP-адрес 192.168.1.10:
    11000000.10101000.00000001.00001010
Маска подсети 255.255.255.0:
    11111111.11111111.11111111.00000000

2. Выполним побитовую операцию "И" (AND) между IP-адресом и маской:
    11000000.10101000.00000001.00001010
AND 11111111.11111111.11111111.00000000
    ----------------------------------- 
    11000000.10101000.00000001.00000000


3. Преобразуем результат обратно в десятичную систему: Адрес сети: 192.168.1.0


Маска подсети также позволяет определить количество доступных адресов для узлов в данной сети. Чем больше нулей в маске подсети, тем больше адресов доступно для устройств в этой сети.

Для определения количества узлов (K), которые можно подключить к сети с заданной маской подсети, необходимо использовать следующую формулу
K = 2(32 - длина маски) - 2  

Где
32 - это количество битов в IPv4 адресе,
Длина маски - количество битов, установленных в маске подсети.

При вычислении количества узлов мы вычитаем 2, так как один адрес зарезервирован для адреса сети, а другой для широковещательного адреса. Широковещательный адрес (Broadcast Address) - это специальный адрес в сети IPv4, который используется для отправки пакетов данных всем устройствам в данной сети.
 
Пример 2

Пусть у нас есть маска подсети /24, что означает 24 установленных бита (255.255.255.0). Тогда количество узлов в сети будет:
2(32 - 24) - 2 = 28 - 2 = 256 - 2 = 254
Таким образом, при использовании маски подсети /24 можно подключить до 254 узлов к сети.
 
Задача 1
Для узла с IP-адресом 94.29.124.168 адрес сети равен 94.29.124.0. Найдите наименьшее и наибольшее возможное количество единиц в двоичной записи маски подсети.

Решение
Для определения адреса сети по IP-адресу и маске подсети, необходимо выполнить логическую операцию побитового "И" (AND) между битами IP-адреса и маска подсети. Для того чтобы найти какая маска нам подходит, необходимо представить адрес сети и адрес узла в двоичном виде. По двоичной записи определим, в каких битах маски должны стоять единицы,  а в каких нули. Будем помнить, что маска представляет собой последовательность, состоящую только из единиц и нулей. Вначале в маске стоят единицы, затем нули.
 
          IP-адрес узла 94.29.124.168
AND   маска
          -------------------------------
          адрес сети  94.29.124.0
    01011110.00011101.01111100.10101000
AND xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
    -------------------------------------
    01011110.00011101.01111100.00000000

Будем просматривать биты адреса узла и адреса сети слева направо, пока не встретим первые различающиеся биты. Видно, что первые три октета (старшие 24 бита, выделены желтым цветом) одинаковы в адресе узла и адресе сети. Следовательно, начиная с 25 бита (с первого бита четвертого октета) в маске обязаны стоять только нули. Значит, минимальное количество нулей в маске будет равно восьми, а максимальное количество единиц - 24 (32 - 8 = 24).
Меньшее количество нулей в маске мы поставить не сможем, потому что тогда в старшем бите последнего октета в адресе сети стояла бы единица (этот бит выделен зеленым). Если в маске в этом бите будет стоять единица, то в результате побитового умножения (AND) в адресе сети получилась бы единица. А у нас там ноль. Следовательно, в этом бите в маске должен стоять ноль.
Биты, в записи маски, которые выделены синим, на самом деле могут быть равны как единице, так и нулю, потому что в IP-адресе узла в этих битах стоят нули, следовательно при побитовом умножении в адресе сети будет ноль, независимо, что стоит в маске. Биты, левее выделенных синим, в маске, должны быть равны единице. 
Следовательно, максимальное количество нулей в маске может быть равно 10 (два синих бита + биты последнего октета). Значит, минимальное количество единиц в маске - 22 (32-10=22).

Ответ
Наименьшее возможное количество единиц в двоичной записи маски подсети равно 22, наибольшее возможное количество единиц в двоичной записи маски подсети равно 24.

Интересные статьи для дополнительного чтения
1. Статья на Хабр "Всё об IP адресах и о том, как с ними работать"
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать