ip-adress
IP-адрес — уникальный сетевой адрес узла в компьютерной сети, построенной на основе стека протоколов TCP/IP. IP-адрес представляет собой серию из 32 двоичных бит (единиц и нулей). Так как человек невосприимчив к большому однородному ряду чисел, такому как этот 11100010101000100010101110011110 (здесь, к слову, 32 бита информации, так как 32 числа в двоичной системе), было решено разделить ряд на четыре 8-битных байта и получилась следующая последовательность: 11100010.10100010.00101011.10011110. Это не сильно облегчило жизнь и было решение перевести данную последовательность в, привычную нам, последовательность из четырёх чисел в десятичной системе, то есть 226.162.43.158. 4 разряда также называются октетами. Данный IP адрес определяется протоколом IPv4. По такой схеме адресации можно создать более 4 миллиардов IP-адресов.
Максимальным возможным числом в любом октете будет 255 (так как в двоичной системе это 8 единиц), а минимальным – 0.
Одна часть IP-адреса представляет собой адрес сети, другая — адрес хоста внутри этой сети. Адрес сети используется маршрутизаторами (роутерами) для передачи пакетов в нужные сети, тогда как адрес хоста определяет конкретное устройство в этой сети, которому должны быть доставлены пакеты.
Устаревшая классовая классификация адресов
IP-адреса делятся на 5 классов (A, B, C, D, E). A, B и C — это классы коммерческой адресации. D – для многоадресных рассылок, а класс E – для экспериментов.
- Класс А: 0.XXX.XXX.XXX — 127.XXX.XXX.XXX, на номер сети указывает только первое число. В этом классе 128 сетей по 16 777 216 адресов в каждой. Это большие сети.
- Класс В: 128.0.XXX.XXX — 191.255.XXX.XXX. На номер сети указывают два первых числа. Класс содержит 16 384 подсети по 65 536 адресов в каждой. Это средние сети.
- Класс С: 192.0.0.XXX — 223.255.255.XXX. На номер сети указывают три первых числа, последнее — номер узла. Это класс малых сетей, он содержит 2 097 152 сети по 256 адресов в каждой.
- Класс D: 224.XXX.XXX.XXX — 239.XXX.XXX.XXX. Здесь на номер сети указывает первое число, остальные — номер узла. Класс используется для многоадресной рассылки.
- Класс Е: 240.XXX.XXX.XXX — 255.XXX.XXX.XXX. Это экспериментальные адреса, они зарезервированы для использования в будущем.
Принадлежность к одному из классов задается первыми битами адреса. Класс определяет количество возможных адресов хостов внутри сети. Классовая система с ростом интернета оказалась неэффективной. Её дополнили бесклассовой адресацией (CIDR). Так появилась дополнительная метрика — маска подсети.
Бесклассовая адресация CIDR
CIDR — Classless InterDomain Routing, бесклассовая междоменная маршрутизация. Это метод адресации, который позволяет гибко управлять пространством IP-адресов за счет отсутствия жестких рамок предыдущей модели.
VLSM — Variable Length Subnet Mask, переменная длина маски подсети — ключевая сущность бесклассовой адресации. При CIDR маска может быть любой длины от 0 до 32 бит, тогда как в случае классовой адресации маске подсети давалось фиксированное значение в зависимости от класса: 8, 16 или 24 бит. VLSM повышает удобство использования подсетей, поскольку они могут быть разного размера.
Маска подсети — битовая маска, определяющая, какая часть IP-адреса узла сети относится к адресу сети, а какая — к адресу самого узла в этой сети.
У всех IP адресов есть две части сеть и узел.
- Сеть – это та часть IP, которая не меняется во всей сети и все адреса устройств начинаются именно с номера сети.
- Узел – это изменяющаяся часть IP. Каждое устройство имеет свой уникальный адрес в сети, он называется узлом.
Маску принято записывать двумя способами: префиксным и десятичным. Например, маска частной подсети A выглядит в десятичной записи как 255.0.0.0, но не всегда удобно пользоваться десятичной записью при составлении схемы сети. Легче записать маску как префикс, то есть /8
У маски подсети нельзя чередовать нули и единицы. Сначала идут единицы, которые указывают на номер сети, а потом — нули, которые указывают на номер хоста. Так как маска формируется добавлением слева единицы с первого октета и никак иначе, но для распознания маски нам достаточно знать количество выставленных единиц. Обычно это записывается через слеш после адреса и количество единичных бит в маске.

Маска подсети используется для определения того, какие биты являются частью адреса сети, а какие — частью адреса хоста (для этого применяется логическая операция «И»). Маска подсети включает в себя 32 бита. Если бит в маске подсети равен 1, то соответствующий бит IP-адреса является частью адреса сети. Если бит в маске подсети равен 0, то соответствующий бит IP-адреса является частью адреса хоста.
Примеры использования масок
Количество разрядов в адресе сети определяет максимальное количество хостов, которые могут находиться в такой сети. Чем больше бит в адресе сети, тем меньше бит остается на адрес хоста в адресе.
- IP-адрес с адресом хоста из всех нулей представляет собой IP-адрес сети (например 192.168.1.0/24).
- IP-адрес с адресом хоста из всех единиц представляет собой широковещательный адрес данной сети (например 192.168.1.255/24).
Высчитаем сколько устройств (в IP адресах — узлов) может быть в сети, где у одного компьютера адрес 172.16.13.98/24.
- 172.16.13.0 – адрес сети
- 172.16.13.1 – адрес первого устройства в сети
- 172.16.13.254 – адрес последнего устройства в сети
- 172.16.13.255 – широковещательный IP адрес
- 172.16.14.0 – адрес следующей сети
- Итого: 254 устройства в сети
Теперь вычислим сколько устройств может быть в сети, где у одного компьютера адрес 172.16.13.98/16.
- 172.16.0.0 – адрес сети
- 172.16.0.1 – адрес первого устройства в сети
- 172.16.255.254 – адрес последнего устройства в сети
- 172.16.255.255 – широковещательный IP адрес
- 172.17.0.0 – адрес следующей сети
- Итого: 65534 устройства в сети
IPv4 Частные подсети
Используются в сетях, не маршрутизируемых в интернете. Недопустимо внутри локальной сети использовать чужие публичные IP адреса, из-за этого вы потеряете доступ к этим адресам в сети интернет.
- 10.0.0.0 — 10.255.255.255 (маска подсети: 255.0.0.0 или /8)
- 172.16.0.0 — 172.31.255.255 (маска подсети: 255.240.0.0 или /12)
- 192.168.0.0 — 192.168.255.255 (маска подсети: 255.255.0.0 или /16)
- 100.64.0.0 — 100.127.255.255 (маска подсети: 255.192.0.0 или /10) Carrier-Grade NAT.
Это те адреса, которые вы можете использовать в своей частной сети. Они вполне могут повторяться (и повторяются) в разных локальных сетях, и за её пределы они не выходят. Приватный адрес на то и приватный, поэтому любой пакет с адресом из диапазонов, указанных выше, попавший к провайдеру, будет отбрасываться.
Публичные адреса
Публичные адреса назначаются публичным веб-серверам для того, чтобы человек смог попасть на этот сервер, вне зависимости от его местоположения, то есть через Интернет.
Большое отличие частных и публичных IP адресов заключается в том, что используя частный IP адрес мы можем назначить компьютеру любой номер (главное, чтобы не было совпадающих номеров), а с публичными адресами всё не так просто. Выдача публичных адресов контролируется различными организациями.
Чтобы получить публичный адрес Вы обращаетесь к своему интернет провайдеру, и он выдаёт Вам публичный IP адрес, но из рукава он его взять не может, поэтому он обращается к локальному Интернет регистратору (LIR – Local Internet Registry), который выдаёт пачку IP адресов Вашему провайдеру, а провайдер из этой пачки выдаёт Вам один адрес. Локальный Интернет регистратор не может выдать пачку адресов из неоткуда, поэтому он обращается к региональному Интернет регистратору (RIR – Regional Internet Registry). В свою очередь региональный Интернет регистратор обращается к международной некоммерческой организации IANA (Internet Assigned Numbers Authority). Контролирует действие организации IANA компания ICANN (Internet Corporation for Assigned Names and Numbers). Такой сложный процесс необходим для того, чтобы не было путаницы в публичных IP адресах.
localhost
Если запустить команду ifconfig, можно заметить интерфейс lo. Интерфейс lo является виртуальным сетевым интерфейсом, который называется возвратной петлей, поскольку он «закольцован» сам на себя. Результат таков, что при подключении к адресу 127.0.0.1 происходит подключение к компьютеру, которым вы пользуетесь в данный момент. Когда исходящие данные для локального хоста доходят до сетевого интерфейса lo в ядре, ядро просто заново упаковывает их как входящие данные и отправляет обратно через интерфейс lo.
localhost - это стандартное сетевое имя для собственной системы. Оно используется для обращения к локальной системе по сети. Когда вы используете localhost в URL или в качестве имени хоста, ваш компьютер обращается к собственной сетевой карте и обрабатывает запросы локально, без обращения к удаленному серверу или к другим компьютерам в сети.
В большинстве случаев localhost ассоциируется с IP-адресом 127.0.0.1 в IPv4 и ::1 в IPv6. Эти адреса специально предназначены для обращения к собственной системе.
localhost часто используется для тестирования веб-серверов, баз данных и других сетевых служб, когда вы хотите проверить их работу на локальной системе без доступа к реальной сети. Например, при разработке и отладке веб-приложений вы можете настроить свой веб-сервер на прослушивание на localhost, чтобы протестировать приложение, прежде чем развернуть его на удаленном сервере.