IP-адреса

Все современные  компьютеры, телефоны, "умные" устройства и т.д. для обмена информацией объединяются в локальные или корпоративные сети, которые, в свою очередь, объединяются в глобальную. Глобальная телекоммуникационная сеть, которая объединяет локальные, корпоративные, региональные сети называется сетью Интернет.

Физические среды локальных и глобальных сетей могут отличаться (WiFi, оптоволокно, физические провода и т.д.), но благодаря стеку TCP/IP и IP- адресации они объединяются на логическом уровне протокола передачи информации. Все узлы, участвующие в обмене информацией имеют IP-адрес, который однозначно его идентифицирует. 

Сетевое устройство (адаптер WiFI, сетевой контроллер компьютера), которое непосредственно подключено к сети называют сетевым интерфейсом. Каждый сетевой интерфейс обладает MAC-адресом - физическим адресом, который присваивается интерфейсу производителем и представляется в виде 6-ти байтов, разделенных двоеточием и записанных в шестнадцатеричном виде.

IP-адрес - это 32-х битное двоичное число, но записанное в виде 4-х десятичных чисел (октетов), разделенных точкой. Каждый октет - это байт и может иметь значения от 0 до 255.

IP-адрес состоит из двух частей, старшие разряды идентифицируют сеть, а оставшиеся биты идентифицируют узел в этой сети. У всех устройств, принадлежащих одной сети, ее адрес должен совпадать. Для передачи пакетов данных в другие сети, маршрутизаторы - устройства, отвечающие за организацию взаимодействия между сетями должны вычислить адрес сети получателя и, в зависимости от него, передать по соответствующему маршруту. За распределение битов в адресе отвечает маска сети - такое же как и IP-адрес 32-х разрядное двоичное число, которое также записывается 4-мя десятичными числами, разделенными точками.

В маске сети старшие биты всегда равны 1, а младшие - 0, при этом 0 и 1 не могут чередоваться.  Количество старших битов, равных 1, определяют количество битов адреса сети , а количество битов равных 0 (хост-биты) определяет количество устройств (хостов), которые могут этой сети принадлежать.

Чтобы выделить части из IP-адреса нужно произвести логическое побитовое умножение IP-адреса на маску сети. Эта операция называется наложением маски сети на адрес. В процессе наложения маски старшие биты адреса, соответствующие единичным битам маски, сохранят свои значения, а младшие получат значение 0. Операцию логического побитного умножения надо производить в двоичном виде, поэтому перед нею необходимо IP-адрес и маску перевести из десятичного вида в двоичный.

Задача: IP-адрес 192.168.26.100 назначен устройству в некоторой сети маска, которой 255.255.252.0. Найти адрес сети.

Решение: Переведем IP-адрес и маску в двоичный вид, при этом для удобства сохраним точки:

IP-адрес: 11000000.10101000.00011010.01100100, маска: 11111111.11111111.11111100.00000000

Выпишем их друг под другом и произведем операцию логического умножения:

1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 1 1 0 1 0 . 0 1 1 0 0 1 0 0
1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 1 1 . 1 1 1 1 1 1 0 0 . 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 . 1 0 1 0 1 0 0 0 . 0 0 0 1 1 0 0 0 . 0 0 0 0 0 0 0 0

Переведем полученное двоичное число в десятичный вид: 192.168.24.0. Ответ: 192.168.24.0

Как видно, первый и второй октеты адреса такие же как в IP-адресе, потому что в маске эти биты равны 1. А младший октет адреса равен 0, так как  в маске все  8 младших битов равны 0. Поэтому операцию побитного логического умножения достаточно было произвести только над третьим октетом.

Заметим, что в двоичной записи маски количество единичных битов равно 22. Иногда для сокращения маску сети приписывают к IP-адресу в виде количества единичных битов после дробной черты. Запись IP-адреса вместе с маской из задачи в случае краткой записи будет иметь вид: 192.168.26.100/22

По количеству нулей в маске можно определить диапазон IP-адресов сети и количество адресуемых хостов. В любой сети два адреса используются для служебных целей. IP-адрес, в котором хост-биты равны 0 используется адресом сети, а IP-адрес, в котором все хост-биты равны 1 используется для широковещательных пакетов, предназначенных для всех устройств сети.

Поэтому количество IP-адресов, которые могут принадлежать сети равно 2- 2, где n - количество битов маски, равных нулю.

Задача: Даны IP-адрес и маска: 144.200.31.80, 255.255.248.0. Укажите первый адрес в сети, допустимый для назначения интерфейсу.

Решение: Вычислим адрес сети. Первый и второй октеты адреса останутся такими же как и у IP-адреса, последний будет равен 0, поэтому будем рассматривать только третий октет. Переведем 31 в двоичный вид: 00011111. Третий октет маски 248 в двоичном виде: 11111000. Произведем побитное логическое умножение:

0 0 0 1 1 1 1 1
1 1 1 1 1 0 0 0
0 0 0 1 1 0 0 0

Переведем 00011000 в десятичный вид: 24. Адрес сети: 144.200.24.0. IP-адрес первого интерфейса в сети будет на 1 больше адреса сети. Ответ: 144.200.24.1

 

Задачи для самостоятельного решения