Назад » » 2019 » Март » 29

Как устроен IP-адрес – главный идентификатор в мире сетей TCP/IP

  • 5.0 Рейтинг

Если вы работали с компьютерами какое-то время, то, вероятно, сталкивались с IP-адресами – эти числовые последовательности, которые выглядят примерно как 192.168.0.15. В большинстве случаев нам не нужно иметь дело с ними напрямую, поскольку наши устройства и сети заботятся об их обработке «за кулисами». Когда же нам приходится иметь с ними дело, мы часто просто следуем инструкциям о том, какие и где вписать цифры. Но, если вы когда-либо хотели погрузиться немного глубже в то, что означают эти цифры, эта статья для вас.

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

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

Что такое IP-адрес

IP-адрес однозначно идентифицирует устройство в сети. Вы видели эти адреса раньше; они выглядят примерно как 192.168.1.34.

IP-адрес всегда представляет собой набор из четырех таких чисел. Каждый номер может находиться в диапазоне от 0 до 255. Таким образом, полный диапазон IP-адресов составляет от 0.0.0 до 255.255.255.255.

Причина, по которой каждый номер может достигать 255, заключается в том, что каждое из чисел представляет собой восьмизначное двоичное число (иногда называемое октетом). В октете число ноль будет обозначено как 00000000, а число десятичное 255 будет иметь вид 11111111, – это максимальное число, которого мы можем достигнуть в рамках октета. IP-адрес, упомянутый выше (192.168.1.34) в двоичном формате, будет выглядеть так: 11000000.10101000.00000001.00100010.

Пример преобразования IP-адреса в двоичный вид

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

Две базовые части IP-адреса

IP-адрес устройства состоит из двух отдельных частей:

  • Идентификатор сети: является частью IP-адреса; начинаются слева и идентифицирует конкретную сеть, на которой расположено устройство. В обычной домашней сети, где устройство имеет IP-адрес 192.168.1.34, часть 192.168.1 будет идентификатором сети. Если заполнить недостающую конечную часть нулём, мы можем сказать, что сетевой идентификатор устройства – 192.168.1.0.
  • Идентификатор хоста: это часть IP-адреса, не занятого сетевым идентификатором. Он идентифицирует конкретное устройство (в мире TCP/IP устройства называют «хостами») в этой сети. Продолжая наш пример IP-адреса 192.168.1.34, идентификатором хоста будет 34 – уникальный идентификатор устройства в сети 192.168.1

Разделение IP-адреса на идентификатор сети и устройства

Чтобы представить всё это немного лучше, давайте обратимся к аналогии. Это очень похоже на то, как уличные адреса работают в городе. Возьмите адрес, такой как Набережная 29/49. Название улицы похоже на идентификатор сети, а номер дома похож на идентификатор хоста. Внутри города никакие две улицы не будут называться одинаково, так же как ни один идентификатор сети в одной сети не будет назван одинаковым. На определенной улице каждый номер дома уникален, так же как все ID хоста в определенном сетевом идентификаторе.

Маска подсети в IP-адресе

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

В большинстве простых сетей (например, в домашних или офисных) вы увидите маску подсети в формате 255.255.255.0, где все четыре числа равны либо 255, либо 0. Позиция изменения с 255 на 0 указывает на разделение между сетью и идентификатором хоста.

Как работает маска подсети в IP-адресе

Основные маски подсети, которые мы описываем здесь, известны как маски подсети по умолчанию. В более крупных сетях ситуация становится более сложной. Люди часто используют пользовательские маски подсети (где позиция разрыва между нулями и единицами сдвигается в октете) для создания нескольких подсетей в одной сети.

Адрес шлюза по умолчанию

В дополнение к самому IP-адресу и маске подсети, вы также увидите адрес шлюза по умолчанию, указанный вместе с информацией IP-адресации. В зависимости от используемой платформы, этот адрес может называться по-другому. Его иногда называют «маршрутизатором», «адресом маршрутизатора», «маршрутом по умолчанию» или просто «шлюзом». Это всё одно и то же.

Это стандартный IP-адрес, по которому устройство отправляет сетевые данные, когда эти данные предназначены для перехода в другую сеть (с другим идентификатором сети).

Простейший пример этого можно найти в обычной домашней сети. Если у вас есть домашняя сеть с несколькими устройствами, у вас, вероятно, есть маршрутизатор, подключенный к интернету через модем. Этот маршрутизатор может быть отдельным устройством или может быть частью комбо-модуля модем/маршрутизатор, поставляемого вашим интернет-провайдером.

Маршрутизатор находится между компьютерами и устройствами в вашей сети и более ориентированными на открытый доступ устройствами в интернете, передавая (или маршрутизируя) трафик взад и вперёд.

Скажем, вы запускаете свой браузер и отправляетесь на сайт webznam.ru. Ваш компьютер отправляет запрос на IP-адрес нашего сайта. Поскольку наши серверы находятся в интернете, а не в вашей домашней сети, этот трафик отправляется с вашего ПК на ваш маршрутизатор (шлюз), а ваш маршрутизатор перенаправляет запрос на наш сервер. Сервер отправляет правильную информацию обратно вашему маршрутизатору, который затем перенаправляет информацию обратно на запрашиваемое устройство, и вы видите как наш сайт отображается в нашем браузере.

Как правило, маршрутизаторы настроены по умолчанию, чтобы их частный IP-адрес (их адрес в локальной сети) был первым идентификатором хоста. Так, например, в домашней сети, использующей 192.168.1.0 для сетевого ID, маршрутизатор обычно будет на хосте 192.168.1.1.

Серверы DNS

Существует одна заключительная часть информации, которую вы увидите вместе с IP-адресом устройства, маской подсети и адресом шлюза по умолчанию: адреса одного или двух серверов DNS по умолчанию. Мы – люди – намного лучше работаем с символическими названиями, чем с числовыми адресами. Ввести webznam.ru в адресную строку вашего браузера намного проще, чем запоминать и вводить IP-адреса нашего сайта.

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

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

В чем разница между IPv4 и IPv6

Возможно, вы также заметили при просмотре настроек другой тип IP-адреса, называемый адресом IPv6. Типы IP-адресов, о которых мы говорили до сих пор, – это адреса, используемые протоколом IP версии 4 (IPv4), разработанным в конце 70-х годов. Они используют 32 бинарных бита, о которых мы говорили (в четырех октетах), чтобы обеспечить в общей сложности 4,29 миллиарда возможных уникальных адреса. Хотя это много, все общедоступные адреса давно были «потреблены» предприятиям. Многие из них сейчас не используются, но они назначены и недоступны для общего использования.

В середине 90-х годов, обеспокоенная потенциальной нехваткой IP-адресов, специальная рабочая группа Internet Engineering Task Force (IETF) разработала IPv6. IPv6 использует 128-битный адрес вместо 32-разрядного адреса IPv4, поэтому общее количество уникальных адресов многократно выросло и стало достаточно большим (вряд ли когда-либо закончится).

В отличие от точечной десятичной нотации, используемой в IPv4, адреса IPv6 выражаются в виде восьми групп номеров, разделенных двоеточиями. Каждая группа имеет четыре шестнадцатеричных цифры, которые представляют 16 двоичных цифр (это называется хекстетом). Типичный IPv6-адрес может выглядеть примерно так:

2601: 7c1: 100: ef69: b5ed: ed57: dbc0: 2c1e

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

Как устройство получает IP-адрес

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

Динамический IP-адрес назначается автоматически, когда устройство подключается к сети. Подавляющее большинство сетей сегодня (включая вашу домашнюю сеть) используют Dynamic Host Configuration Protocol (DHCP). Когда устройство подключается к сети, оно отправляет широковещательное сообщение с запросом IP-адреса. DHCP перехватывает это сообщение, а затем назначает IP-адрес этому устройству из пула доступных IP-адресов.

Особенность динамических адресов заключается в том, что они могут иногда меняться. DHCP-серверы арендуют IP-адреса устройствам, и когда этот «срок аренды» заканчиваются, устройства должны получить другой IP-адрес из пула адресов, которые может назначить сервер.

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

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