Думаю, каждый активный пользователь Интернета хотя бы раз слышал об IP-адресах. Некоторые из них знают, что это похоже на 192.168.100.1. Но что же скрывается за этими четырьмя разделенными точками числами?

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

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

Таким образом, когда вы, например, что-то ищете в Google, вы как минимум связываетесь с сервером Google. Процесс работает следующим образом:

  1. Ваш компьютер создает IP-пакет, содержащий информацию, которую вы хотите отправить на сервер. IP-пакет помечен IP-адресом источника (IP-адрес вашего компьютера) и IP-адресом назначения (IP-адрес сервера).
  2. Компьютер отправляет пакет на домашний маршрутизатор.
  3. Когда ваш маршрутизатор получает пакет, он просматривает его конфигурацию и пытается найти маршрут к серверу в соответствии с IP-адресом назначения в пакете. «Маршрут» на самом деле является IP-адресом следующего маршрутизатора, который должен получить пакет, например, следующего работника службы доставки, который должен позаботиться о вашем письме. Такой следующий маршрутизатор может быть разным для разных IP-адресов назначения.
  4. Если маршрутизатор находит маршрут к серверу Google, он отправляет пакет следующему маршрутизатору. Это маршрутизатор вашего интернет-провайдера (ISP).
  5. Маршрутизатор провайдера выполняет такой же поиск маршрута и отправляет пакет следующему маршрутизатору в Интернете.
  6. Процесс повторяется до тех пор, пока ваш пакет не достигнет сервера.
  7. Когда сервер получает ваш пакет, он создает ответ и отправляет его вам через маршрутизаторы своей компании и других интернет-провайдеров в Интернете.
  8. Ваш компьютер получает ответ и отображает информацию с сервера в веб-браузере.

Как видите, каждое устройство в Интернете должно знать, как получить доступ к любому общедоступному серверу, а любой общедоступный сервер и любой маршрутизатор должны знать, как получить доступ к вашему компьютеру. Следовательно, любой компьютер и любой сервер должны иметь уникальный IP-адрес, чтобы иметь возможность общаться друг с другом. Имеет ли ваш компьютер уникальный IP-адрес и могут ли все сетевые устройства в мире соответствовать этому утверждению? Да и нет.

Определим структуру IP-адреса. Это четыре числа от 0 до 255, разделенные точками. Таким образом, полный диапазон IP-адресов идет от 0.0.0.0 до 255.255.255.255. Используя математику, вы можете подсчитать, что имеется 2³² = 4 294 967 296 доступных IP-адресов. Этого крайне мало и недостаточно, чтобы предоставить каждому устройству уникальный IP-адрес.

Поскольку вы можете просматривать Интернет, у этой проблемы должно быть решение, верно? Большинство IP-адресов уникальны и общеизвестны для всех устройств в Интернете. Такие IP-адреса называются «публичными». Например, ваш интернет-провайдер имеет ряд общедоступных IP-адресов и использует их для маршрутизации трафика пользователей. Любой общедоступный сервер также имеет общедоступный IP-адрес.

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

  • 10.0.0.0 to 10.255.255.255
  • 172.16.0.0 to 172.31.255.255
  • 192.168.0.0 to 192.168.255.255

Вы можете проверить это с помощью команды ipconfig в cmd в Windows и ip a в терминале Linux:

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

Поскольку ваш IP-адрес не является уникальным и общеизвестным, кажется, что вы не можете просто отправить информацию на сервер через Интернет, не имея общедоступного IP-адреса, потому что сервер не сможет отправить вам ответ. Однако есть решение!

Когда ваш маршрутизатор интернет-провайдера получает от вас пакет, он меняет ваш частный исходный IP-адрес на общедоступный IP-адрес. Таким образом, когда сервер получает от вас пакет, он отправляет ответ маршрутизатору вашего интернет-провайдера, который изменяет общедоступный IP-адрес назначения в пакете на ваш частный IP-адрес.

Например, в следующей схеме сервер не знает, как добраться до IP-адреса 192.168.100.5, а ваш маршрутизатор ISP знает, и поэтому он делает такие изменения с IP-адресами в пакетах:

Я надеюсь, что эта статья помогла вам разобраться в концепции IP-адресов, и в следующий раз вы не будете путаться, увидев такой термин где-нибудь в Интернете!