Я не совсем понимаю, как интернет работает с IP-адресом.
Например, в моем доме есть роутер. С этим роутером я получаю ЛВС. Также я могу подключить интернет. У меня вопрос: что здесь за интернет.
На мой взгляд, есть еще один маршрутизатор более высокого уровня, который принадлежит какой-то компании, предлагающей услуги Интернета, для распределения IP-адресов для моего маршрутизатора. С точки зрения маршрутизатора более высокого уровня, все маршрутизаторы, такие как мой маршрутизатор, образуют большую "локальную сеть".
Если так, я не знаю, как работает сервер. Например, каждый может войти на сервер Google, потому что мы знаем его IP-адрес. Но кто дает этот IP-адрес в Google? роутер? Если это делает маршрутизатор, как мы можем его распознать?
Например, маршрутизатор компании A передает IP-адрес Google, и я использую маршрутизатор компании B для работы в Интернете. В этом случае кажется, что есть две ЛВС: моя ЛВС и ЛВС Google. Как могут две машины в двух разных локальных сетях общаться?
2 ответа
Давайте сделаем это просто на примере из реальной жизни:
(Everything in this example is based on IPv4)
- Любой может создать локальную сеть дома / в офисе / компании и т.д. Эта локальная сеть должна использовать частные IP-адреса, определенные в RFC1918. Это позволит избежать очень вероятного конфликта наличия одного и того же IP-адреса в разных местах мира.
- Ваша частная локальная сеть может подключаться к общедоступному Интернету через маршрутизатор. Маршрутизатор обычно имеет частный IP-адрес, подключенный к локальной сети, и публичный IP-адрес, подключенный к локальному интернет-провайдеру. Маршрутизатор использует службу перевода под названием NAT, чтобы позволить вашему частному IP подключаться к общедоступному Интернету.
- Локальный Интернет-провайдер использует диапазон общедоступных IP-адресов, назначенных организацией, известной как региональный интернет-реестр. ARIN для США, Канады, нескольких частей Карибского региона и Антарктиды. RIPE для Европы, России, Ближнего Востока, Центральной Азии и т.д.
Локальный интернет-провайдер использует диапазон своих общедоступных IP-адресов для назначения его маршрутизаторам своего клиента и для соединения с другими интернет-провайдерами, обычно более крупными интернет-провайдерами, которые подключены к международным интернет-провайдерам. Существует большая сетка (сеть) соединений, регулируемая протоколами маршрутизации, которые вычисляют самый быстрый путь между маршрутизатором и другими маршрутизаторами.
Каждый провайдер должен иметь два или более DNS-сервера, на которых хранится
IP address - domain name
взаимосвязи - доменное имя, и любой может с ним ознакомиться. Эти DNS-серверы обновляют свою информацию с других DNS-серверов высокого уровня иерархии и на них, поэтому изменения можно реплицировать на каждый DNS-сервер в мире.Когда вы из своей локальной сети хотите подключиться к http://www.google.com, ваш ПК / планшет / мобильный телефон / запрашивает у DNS-сервера IP-адрес, соответствующий этому имени (в данном случае 216.58.210.164). Затем ваш веб-браузер отправляет запрос на этот IP-адрес, ваш локальный маршрутизатор выполняет преобразование NAT , отправляет запрашивающий пакет на маршрутизатор ISP, отправляет его на маршрутизатор ISP более высокого уровня и так далее, пока пакет не поступит в Google через самый быстрый или кратчайший путь (протоколы маршрутизации).
Google отвечает, отправляя страницу (HTML+CSS+ изображения + файлы cookie) на ваш маршрутизатор (снова пакет будет проходить по самому быстрому / кратчайшему пути), ваш маршрутизатор выполняет обратную трансляцию NAT и помещает ее в локальную сеть и попадает на ваш компьютер / планшет / мобильный.
Очевидно, что происходит много технических и более сложных вещей, но это служит основным объяснением.
Поскольку IP - это протокол без установления соединения, путь от вашего маршрутизатора к Google может отличаться от пути от Google к вашему маршрутизатору, это зависит от решений протоколов маршрутизации, и в этом прелесть IP / Интернета. Если во время передачи файла происходит сбой какого-либо промежуточного маршрутизатора, трафик перенаправляется с использованием другого маршрутизатора, и конечный пользователь этого не замечает.
Если вы работаете в Windows, откройте cmd и напишите ipconfig /all
и вы увидите свой IP-адрес, частный IP-адрес вашего маршрутизатора, IP-адрес используемого вами DNS-сервера и другую информацию.
Также оттуда напишите tracert www.google.com
и вы увидите, как запрашиваемый пакет с вашего ПК перемещается от роутера к роутеру, переходя от одного провайдера к другому, пока не дойдет до Google.
Из-за большого распространения серверов и услуг в интернете по всему миру происходит исчерпание адресов IPv4. Интернет-провайдеры должны реализовать IPv6, потому что это решает проблему и устраняет необходимость трансляции NAT , делая возможным использование общедоступных адресов в локальной сети.
Как могут две машины в двух разных локальных сетях общаться?
ИМХО, было бы легче понять общие правила, если бы вы сначала забыли об исключениях.
Во-первых, учтите, что сотни закрытых локальных сетей, например, созданных вашим домашним маршрутизатором, являются своего рода запоздалой мыслью, которая стала широко распространенной только из-за нехватки адресов IPv4.
На более высоких уровнях, помимо вашего домашнего маршрутизатора, нет такого строгого разделения между "LAN" и "WAN". Вместо этого, думайте об Интернете как о единой глобальной сети, может быть, что-то вроде телефонных или почтовых сетей. Существует несколько "уровней" интернет-провайдеров, но если вы будете следовать иерархии достаточно высоко, вы не найдете ни одного центрального хаба с интернет-провайдерами в качестве спиц; вместо этого вы найдете сетку взаимосвязанных сетей, как на графиках ниже.
Ваш провайдер, если он достаточно большой, скорее всего, будет иметь несколько каналов связи с сетями более высокого уровня, а также прямые маршруты к другим провайдерам в той же области; все они используют протокол BGP для обмена информацией о том, что доступно через какого-либо интернет-провайдера. Так что, если по какой-то причине короткий путь обрывается, все будет проходить дольше. (Что, кажется, происходит прямо сейчас между моим провайдером и Википедией. Grmh.)
Фактически, некоторые компании, такие как Google или Netflix, сами по себе достаточно велики, чтобы иметь несколько ссылок на даже сети первого уровня, что в значительной степени отбрасывает любую оставшуюся иерархию.
Но кто дает этот IP-адрес в Google?
IP - адреса сами назначены в иерархии, начиная с IANA назначая большие диапазоны адресов для региональных реестров, а также те реестры , в свою очередь выдают меньшие диапазоны для интернет - провайдеров и других предприятий.
Но эти назначения являются только разрешением использовать адреса; они не имеют никакого отношения к тому, как настроены фактические маршрутизаторы. Вместо этого операторы каждой сети будут напрямую настраивать свои собственные маршрутизаторы для использования диапазона адресов, который они имеют.
(Обычно для обеспечения надежности самим серверам на каждом сервере их адреса устанавливаются вручную. Но это не обязательно - я видел места, где серверы используют DHCP для получения своих адресов от маршрутизатора, так же, как это делают персональные компьютеры.)
Короче говоря, IANA предоставляет Google разрешение на использование адреса, а другие интернет-провайдеры по всему миру следят за тем, чтобы адрес направлялся в сеть Google. Остальное зависит от операторов сети Google.
Итак, учитывая вышесказанное, ваш домашний маршрутизатор и веб-серверы Google в значительной степени равноправные участники интернета. Каждый из них имеет глобальный IP-адрес, который доступен из любого другого места в сети, следуя таблицам маршрутизации.
У вашего компьютера очень простая таблица маршрутизации, в которой просто говорится, что все, что находится за пределами одной подсети, доступно через "шлюз по умолчанию" (ваш маршрутизатор).
Точно так же ваш домашний маршрутизатор просто говорит, что IP-адреса "ЛВС" доступны непосредственно через порты ЛВС, а все остальное необходимо отправлять на маршрутизатор вашего интернет-провайдера.
Здесь, на работе, у нас было пять таких роутеров, по одному на каждое здание. Таким образом, их таблицы маршрутизации также имеют прямые пути к маршрутизаторам любого другого здания, в дополнение к базовым "та же подсеть" и "все остальное".
У интернет-провайдера будет несколько маршрутизаторов, у некоторых из них будут маршруты к клиентам, а некоторые будут знать о связях с другими интернет-провайдерами. Например, "внешний" маршрутизатор может иметь такую информацию:
- 36.56.xx может быть достигнуто через собственный маршрутизатор ISP "клиенты";
- 212.xxx может быть достигнут через маршрутизатор 109.105.98.126 NORDUnet;
- 212.162.xx также может быть достигнут через маршрутизатор 62.40.98.13 GÉANT;
- (и так далее)
- наконец, все может быть достигнуто через уровень 3.
И "клиентский" маршрутизатор может сказать:
- 36.56.1.1 может быть достигнуто через порт № 3;
- 36.56.1.2 может быть достигнуто через порт № 4;
- (и так далее)
Всякий раз, когда ваш компьютер отправляет пакет в Google или наоборот, каждый маршрутизатор проверяет, чего он может достичь, и перенаправляет пакет в следующий. Вы даже можете увидеть полный путь с помощью TRACERT
или traceroute
на терминале.
Таковы основы.
Да, вашему домашнему маршрутизатору также требуется дополнительная хитрость - преобразование сетевых адресов или NAT - чтобы убедиться, что вся ваша домашняя сеть может скрываться за одним IP-адресом. Это довольно широко распространено: только у старейшин, таких как MIT, достаточно IPv4-адресов, чтобы дать один каждому человеку. Почти все другие сети должны рассчитываться с NAT. (Моему рабочему месту принадлежит блок из 64 адресов, но несколько сотен рабочих станций и студентов используют WiFi на своих телефонах, поэтому большинство из них также используют NAT.)
Но, независимо от того, насколько широко он распространен, NAT по-прежнему является исключением, хакером, позволяющим сохранить старые вещи работающими (до тех пор, пока IPv6 не станет более распространенным в 2100-х годах). Большинство серверов имеют собственные глобальные IP-адреса, и вы можете напрямую к ним обращаться; вам не нужно никакого волшебства, чтобы достичь в сети Google.
Действительно, если вам нужно было подключиться к кому-то, кто находится за NAT, таким как ваш, это может сильно раздражать - по этой причине многие игры требуют настройки "переадресации портов", а одноранговым программам приходится прибегать к различным ». трюки с дырочками, чтобы достичь внутри LAN через NAT.
И это станет еще хуже, когда интернет-провайдеры начнут использовать «операторский NAT», где
Кроме того, крупные интернет-провайдеры иногда имеют более сложные внутренние компоненты, такие как маршрутизация политик или MPLS, когда переадресация на основе маршрутов становится слишком медленной, но они снова просто добавляются поверх базового IP и должны рассматриваться отдельно - я не знаю на самом деле работал на провайдера.