Подробно и понятно об IP адресах

В сетях используется 2 типа адресов: Локальные и Глобальные адреса. Локальные это адреса в технологии канального уровня, они привязаны к конкретной технологии, этому могут быть MAC адреса в Ethernet, или IMEI в сетях сотовой связи. Такие адреса не могут использоваться для построение крупной составной сети, которые объединяют сети использующие разные технологии. Чтобы это сделать, в модели взаимодействие открытых систем водиться сетевой уровень, а на нём используются глобальные адреса.

Глобальные адреса это адреса сетевого уровня, и в стеке протокола TCP/IP это как раз IP адреса. Глобальные адреса не привязаны к технологии канального уровня, и с их помощью можно построить такую сеть, которая объединяет подсети построены на разных технологиях канального уровня. И передавать данные из этих сетей друг другу.

IP адреса

Вид глобальных адресов, которые мы рассматриваем в этой статье это IP адреса, которые используются в стеке протоколов TCP/IP. и Интернет. IP адреса нужны для уникальной идентификации компьютеров в крупной составной сети, которая может включать в себя весь мир, например сети Интернет, и различные части сети интернет построенные на разных технологиях канального уровня.

Сейчас есть 2-е версии протокола IP: версия IPv4 и IPv6. Основное отличие между версиями протоколов в длине IP адреса. В IPv4 длина адреса 4 байта, а в IPv6 длина адреса 16 байт.

Длина адреса IPv4 32 бита, 4 байта. И чтобы людям было удобно работать с такими IP адресами их делят на 4 части.

В каждой части по 8 бит, такая часть называется октет. Каждый октет записывают в десятичном формате, и форма записи IP адреса следующая: четыре октета разделенных точкой (213.180.193.3). С таким видом деления адресов людям гораздо удобнее работать, чем с записью в двоичной форме длиной в 32 бита.

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

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

И маршрутизаторы, устройства передающие информацию на сетевом уровне, работают уже не с отдельными IP адресами, а с подсетями.

Наш IP адрес состоит из 2 частей:

  1. номер подсети старшие биты IP адреса.
  2. номер компьютера в сети (хост) младшие биты IP адреса.

Рассмотрим пример:

  • IP-адрес: первые три октета (213.180.193.3) это адрес сети. Последний октет это адрес хоста (3).
  • Адрес подсети записываем: 213.180.193.0
  • Номер хоста: 3 (0.0.0.3).

Как по IP адресу узнать, где адрес сети, а где адрес хоста. Для этого используется Маска подсети. Маска также, как IP адрес состоит из 32 бит, и она устроена следующим образом: там где в IP адресе находится номер сети маска содержит 1, а там где указан номер хоста 0. 

Подробный пример разобран в видео на 4:50 минуте.

Есть два способа указать маску подсети. Десятичное представление в виде префикса. В десятичном представление маска записывается в формате похожем на формат IP адреса. 32 разделенные на 4 октета по 8 бит и каждый из этих 8 бит переведены в десятичное представление, они записываются через точку.

Маска в десятичном представление выглядит так 255.255.255.0

Другой формат записи маски в виде префикса. В этом случае указывается, сколько первых бит IP адреса относится к адресу сети, а всё остальное, считается, что относится к адресу хоста.

Префикс записывается через  слэш (/).

213.180.193.3/24 это означает что первые 24 бита, то есть 3 октета относится к адресу к сети, а последний октет к адресу хоста.

Оба эти представления эквивалентны. Если мы запишем маску подсети в десятичном виде, либо виде префикса, мы получаем одинаковый адрес подсети.

Важно понимать, что маска подсети не обязательно должна заканчиваться на границе октетов. Хотя, так делают часто, чтобы людям было удобно работать с такими адресами сетей и хостов, но это делать не всегда удобно. Например, если у вас сеть достаточно крупная, то вам можно ее разбить на несколько более маленьких частей. А для этого приходится использовать маски переменной длины, именно так называются маски подсети которые не заканчиваются на границе октета. 

Подробный пример на видео выше на минуте 8:20.

Устаревшие классы IP адресов

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

Весь диапазон адресов был разделен на несколько классов, в которых было четко задано местоположение адресов сети и адрес хоста. Класс определялся по первым битам. Всего было 5 классов (A,B,C,D,E)

  1. Класс А куда входит IP адреса, которые начинаются на ноль. В этом классе было жестко задано, что к адресу подсети относится первый октет. 3 остальных октета к адресу хоста.
  2. К классу В относится IP адреса, которые в бинарном виде начинаются на 10, здесь к адресу сети относятся первые 16 бит, а к адресу хоста последние 16 бит.
  3. Класс С самый распространенный класс сетей, это класс в котором IP адреса начинаются на 110, под номер сети отводиться 24 бита, под номер хоста 8 бит. Такой класс хорошо подходит для небольших сетей, который содержит до 254 компьютеров. 
  4. Были 2 класса для адресов специального назначения: Класс D для групповых адресов.
  5. И класс Е зарезервированный диапазон для будущего использования.

В настоящие время групповые адреса все еще выделяются именно из диапазона 224.0.0.0 239.255.255.255. А зарезервированный диапазон все еще не используется 240.0.0.0. 255.255.255.255.

Типы IP-адресов

В IPv4 используется 3 типа адресов:

  1. Индивидуальный (unicast);
  2. Групповой (multicast);
  3. Широковещательный (broadcast).

  • Индивидуальный адрес это адрес конкретного компьютера, именно такие адреса мы рассматривали выше.
  • Групповой адрес это адрес, который используется несколькими ПК. Если вы отправите данные на этот адрес, его получит несколько компьютеров в сети которые входит в эту группу.
  • Широковещательный адрес это такой адрес, который используется для получения данных всеми компьютерами в сети.

Широковещательный адрес в IP имеют следующий формат: (1.18)

  • IP-адрес: 213.180.193.3/24
  • Широковещательный адрес: 213.180.193.255

Часть которая относится к адресу сети остается без изменений, а в той части, которая относится к адресу хоста записываются в битовые единицы.

Мы уже встречались с широковещательными адресами в технологии канального уровня Ethernet. Важным отличием широковещательных адресов в сетевом уровне, является то, что широковещательные адреса используются только в пределах в одной подсети.

Маршрутизаторы не передают широковещательные пакеты в другую сеть, иначе можно очень быстро завалить всю глобальную сеть, в том числе весь Интернет, мусорными широковещательными пакетами.

В IP используется 2 типа широковещательных адресов подходящих для двух различных сценарий (2.22)

Предположим что у нас есть 2 подсети объединенные между собой маршрутизатором. Если мы хотим отправить широковещательный пакет в рамках одной сети это называется ограниченное широковещание. В этом случае мы может использовать специальный  широковещательный адрес, который состоит из всех битовых единиц (255.255.255.255). В этом случае данные получат все компьютеры в сети, а через маршрутизатор данные не пройдут.

Другой сценарий, когда компьютер,  который находится за пределами нашей сети, хочет передать широковещательный пакет всем компьютерам, которые находится в нашей сети это называется направленное широковещание. В этом случае широковещательный IP адрес будет выглядеть 192.168.0.255, адрес подсети, в которую мы хотим отправить широковещательный пакет и битовые единицы в той части, которая относится к адресу хоста. Как произойдет обработка такого пакета? Пакет передаётся маршрутизатору и маршрутизатор уже разошлёт этот пакет в широковещательном режиме, но только в передах одной подсети, для которой предназначается этот широковещательный пакет.

Специальные типы IP-адресов

Какие бывают специальные типы IP адресов:

В номере хоста нельзя использовать только битовые 0, и только битовые 1. Если мы укажем только битовые 0, то это получится не адрес хоста, а адрес подсети 213.180.193.0.

А если укажем только битовые 1, то это будет широковещательный адрес. 213.180.193.255.

Часто, маршрутизатору по умолчанию в сети, или шлюзу, через которые все компьютеры сети попадают в интернет, присваивают адрес с номером 1. Однако четких правил нет, так делать не обязательно 213.180.193.1. Адрес который состоит из всех 0.0.0.0 это адрес текущего хоста. Он используется, когда компьютер еще не получил свой IP адрес.

Адрес из всех битовых единиц, 255.255.255.255 это все хосты в текущей подсети (ограниченный широковещательный адрес).

127.0.0.0/8 это обратная петля, специальный диапазон адресов, который выделен для того чтобы отлаживать сетевые приложения, если у вас нет сетевого оборудование  или оно настроено не так как вам нужно, в этом случае данные не отправляются в сеть, а приходят обратно на компьютер. Часто из этой сети используется адрес 127.0.0.1 это текущий компьютер (localhost). Однако не обязательно для этой цели использовать адрес с хостом 1, можно использовать 2, 3 или другой любой IP адрес из этого диапазона. IP адреса из подсети 169.254.0.0/16 называются Link-local адреса. Случае если вы не настроили IP адрес на своем ПК вручную или каким либо другим способом, например с помощью протокола DHCP, то операционная система сама может назначить компьютеру адрес из этого диапазона. Такие адреса могут использоваться только в пределах подсети и не проходят через маршрутизатор.

Распределение IP адресов

Так как IP адреса являются глобальными адресами и используются для построение сетей, которые могут потенциально объединять все компьютеры в мире такие как сеть интернет, то каждый компьютер должен иметь уникальный IP адрес во всем мире.

Если у нас будет несколько компьютеров с одним IP адресом, то мы не сможем понять к какому компьютеру  должны отправить наши данные. Чтобы обеспечить уникальность адресов в интернет, есть специальный подход, IP адреса нельзя брать любые какие вы хотите, а необходимо получить разрешение на использование IP адреса у Internet Assigned Number Authority (IANA), сейчас функции IANA реализуются корпорацией ICANN (Internet Corporation for Assigned Names and Numbers) Корпорация Интернет для распределения имен и номеров. Именно эта организация отвечает за распределение IP адресов во всем мире.

Однако организация делает это не напрямую, а с помощью региональных регистраторов. В каждом регионе есть свой регистратор, который взаимодействует с  компанией ICANN и распределяет IP адреса. Россия и Европа относится к региональному регистратору RIPE.

Частные IP-адреса

Однако есть такие случае, когда вы создаете сеть, которая использует IP адреса, но при этом она не подключена к Интернету. Например, внутренняя сеть организации или внутренняя сеть класса, в которой вы просто тестируете какие-то сетевые технологии. Было бы очень неудобно обращаться к региональному регистратору,  для того чтобы просить IP адреса для такой сети. Специально для этого случая выделены несколько диапазонов частных IP адресов, это такие IP адреса, которые можно использовать в подсетях, которые не подключаются к интернету. При этом обращаться к ICANN для получения IP адреса не нужно. Диапазон частных IP адресов определен в документе RFC 1918 и он включает следующее:

  • 10.0.0.0/8
  • 172.168.0.0/12
  • 192.168.0.0/16

Особенность этих адресов в том, что они не маршрутизируются в Интернет. Однако, есть возможность подключить сеть, построенную на основе частных адресов к  Интернет, для этого используется технология Трансляция сетевых адресов NAT (Network Address Translation). В этом случае адрес из частной подсети заменяется на реальный IP адрес.

Исчерпание IP-адресов

Достаточно давно есть проблема исчерпание IP адресов. Длина IP адреса 32 бита это означает, что максимальный число IP адресов чуть больше, чем 4 млрд, и этого было достаточно когда проектировались сети TCP/IP, но сейчас из за того что Интернет получил такое большое распространение, 4 млрд IP адресов для всего мира оказалось недостаточно. Сейчас почти сейчас IPv4 адреса уже распределены, если вы захотите подключиться к интернету и получить адрес IPv4 то вряд ли вы это сможете сделать.

Есть 2 пути: 

  1. Фундоментальное решение это использовать протокол IPv6, где длина IP адреса 16 байт, при такой длине существуют достаточно количество адресов, для того чтобы обеспечить весь мир.
  2. Временная технология Network Address Translation (NAT), при этом вы строите сеть в которой используете частные адреса, в этой сети может быть большое количество компьютеров, а для того чтобы подключиться к Интернет вам нужен всего лишь один внешний IP адрес.

Заключение

Мы закончили рассматривать IP адреса, протокола IPv4 у нас есть 3 типа адресов:

  • Индивидуальный адрес компьютера
  • Групповой адрес нескольких компьютеров
  • Широковещательный адрес для всех компьютеров сети, а не во всем интернете.

IP адреса должны быть уникальны во всем мире, поэтому нельзя использовать любой IP адрес? необходимо получать разрешение на использование. Этим занимается Корпорация Интернет ICANN для распределение имен и номеров, поэтому нужно обращаться к ней. Если вы строите сеть, которую не подключаете к Интернет, можно использовать любой IP адрес  из диапазона частных IP адресов. Важно понимать что адреса IPv4 уже почти закончились, и необходимо переходить на протокол версия IPv6, либо использовать технологию NAT для подключению Интернету. 

Оцените статью
Все о технологиях, мобильных приложениях и тарифах на связь