Как URL преобразуется в IP-адрес КОНКРЕТНОГО сервера?

Как URL преобразуется в IP-адрес КОНКРЕТНОГО сервера?

Я понимаю, что DNS преобразует URL-имя в IP-адрес, но я не понимаю, как DNS выдает IP-адрес ОДНОГО конкретного сервера, когда некоторые веб-сайты, такие как Google, имеют центры обработки данных с более чем 200 000 серверов?

решение1

То, что вы описываете, называется Load Balancing DNS. Существуют разные типы балансировщиков нагрузки, самый простой — Round Robin load balancer. По этой ссылке есть хорошее объяснениеКруговой DNSЭтот метод часто используется, когда у вас большие нагрузки и/или большой трафик, с которым один сервер и/или сеть не могут справиться самостоятельно.

По-круговойБалансировка нагрузки — один из самых простых методов распределения клиентских запросов по группе серверов. Проходя по списку серверов в группе, балансировщик нагрузки round-robin пересылает клиентский запрос каждому серверу по очереди. Достигнув конца списка, балансировщик нагрузки возвращается назад и снова проходит по списку (отправляет следующий запрос на первый указанный сервер, следующий — на второй сервер и т. д.).

Главное преимущество балансировки нагрузки round-robin заключается в том, что она чрезвычайно проста в реализации. Однако она не всегда приводит к наиболее точному или эффективному распределению трафика, поскольку многие балансировщики нагрузки round-robin предполагают, что все серверы одинаковы: в настоящее время работают, в настоящее время обрабатывают одну и ту же нагрузку и имеют одинаковую емкость хранилища и вычислений. Следующие варианты алгоритма round-robin учитывают дополнительные факторы и могут привести к лучшей балансировке нагрузки:

Круговой турнир с весовым коэффициентом— Каждому серверу назначается вес на основе критериев, выбранных администратором сайта; наиболее часто используемый критерий — пропускная способность сервера. Чем выше вес, тем большую долю клиентских запросов получает сервер. Если, например, серверу A назначен вес 3, а серверу B — вес 1, балансировщик нагрузки пересылает 3 запроса на сервер A на каждый 1, отправленный на сервер B.

Динамический круговой турнир— Вес назначается каждому серверу динамически на основе данных в реальном времени о текущей загрузке сервера и его простоях.

Есть и другие методы, но я думаю, что этот должен дать вам хорошее представление о том, что происходит под капотом.

решение2

Это не так.

Хотя наш веб-браузер может отправлять несколько запросов на IP-адрес, нет никакой гарантии, что вы общаетесь с одним и тем же сервером при каждом подключении. На самом деле, скорее всего, это не так. Один IP-адрес может быть направлен на разные хосты в зависимости от того, где вы находитесь в топологии сети. Anycasting— популярный способ рекламировать один IP-адрес, который направляет запросы на множество серверов в зависимости от того, какой сервер находится «ближе» в сети. Если упростить, то пограничные маршрутизаторы, разбросанные по сети, рекламируют, что могут достичь IP-адреса ABCD, а ваш интернет-провайдер направляет ваш запрос на ближайший маршрутизатор, который затем пересылает запрос на хост. Хост за этим IP-адресом, вероятно, будет балансировщиком нагрузки, который распределяет входящие запросы по ферме серверов. Благодаря трансляции сетевых адресов ответы возвращаются с серверов, выглядя так, как будто они пришли с одного и того же IP-адреса.

Связанный контент