
Глава
5.
Протоколы,
связанные
с
HTTP
169
используемый Web-сайт может быть реплицирован на несколько компьютеров,
имеющих одно и то же домегпюе имя, о чем говорилось в главе 4 (раздел 4.5.2). Ре-
плики необходимы, чтобы иметь возможность обрабатывать больше запросов. Кро-
ме того, реплики могут быть размещены в различных географических зонах, чтобы
предоставить лучший сервис различным клиентам. Например, доменному имени
www.big.com могут соответствовать четыре компьютера с IP-адресами 10.198.3.47,
10.198.3.48, 10.34.99.1 и 10.34.99.2. Чтобы поддерживать доменные имена с несколь-
кими IP-адресами при ответе на запрос IP-адреса для www.big.com локальный
DNS-сервер должен знать все четыре IP-адреса. Локальный DNS-сервер выбирает
один из этих IP-адресов, чтобы вернуть его преобразователю, сделавшему запрос
к DNS-серверу.
В традиционной реализации DNS локальный DNS-сервер будет выбирать пер-
вый IP-адрес в списке. Это приведет к большей загруженности HTTP-запросами
компьютера с IP-адресом 10.198.3.47. Чтобы избежать этого, DNS-сервер, ответст-
венный за www.big.com, может варьировать порядок IP-адресов для каждого за-
проса. Например, ответ на первый DNS-запрос вернет 10.198.3.47, 10.198.3.48,
10.34.99.1 и 10.34.99.2, в то время как следующий ответ может вернуть 10.198.3.48,
10.34.99.1,
10.34.99.2 и 10.198.3.47. Подобная карусельная последовательность помо-
гает распределить нагрузку между репликами Web-содержимого. Однако подоб-
ный подход не учитывает текущей нагрузки каждого из компьютеров и сети. Кроме
того,
он не учитывает расстояний между клиентским компьютером и каждой из ре-
плик. Расширения реализаций DNS-серверов позволяют устранить эти недостатки
без внесения изменений в протокол DNS. Эти изменения могут быть применены
к DNS-серверу, получающему запрос, или к DNS-серверу, посылающему ответ.
Сначала рассмотрим изменения в программном обеспечении DNS-сервера, вы-
дающего
запрос. Предположим, что локальный DNS-сервер получает запрос от пре-
образователя на определение IP-адреса для www.big.com. DNS-сервер, ответствен-
ный за www.big.com, предоставляет список из четырех IP-адресов. Вместо того
чтобы вернуть первый IP-адрес преобразователю, обратившемуся с запросом, ло-
кальный DNS-сервер может определить, какая из реплик подходит наилучшим об-
разом. Этот процесс может основываться на различных факторах, таких как время
передачи в прямом и обратном направлении (RTT) при взаимодействии с компью-
тером сервера или число маршрутизаторов на пути к серверу. Локальный DNS-сер-
вер может время от времени измерять эти характеристики, чтобы уточнить оценки.
Затем преобразователю предоставляется IP-адрес «наилучшей» реплики. Подоб-
ный подход не требует внесения изменений в программный код преобразователя
или в программное обеспечение, выполняющееся па DNS-сервере, ответственном
за www.big.com. Нуждается в изменении лишь программное обеспечение локаль-
ного DNS-сервера. Однако выполнение оценок текущих характеристик времени пе-
редачи в обоих направлениях (RTT) обусловливает дополнительную загрузку ло-
кального DNS-сервера и сети.
Далее рассмотрим изменения в программном обеспечении DNS-сервера, отве-
чающего за ответ на запрос. DNS-сервер, ответственный за www.big.com, может
попытаться выбрать «наилучший» из IP-адресов. Этот DNS-сервер может иметь
доступ к актуальной информации о текущей загрузке каждого из четырех компью-
теров www.big.com. Кроме того, DNS-сервер, ответственный за www.big.com, мо-
жет попытаться оценить, какая из реплик ближе всего к локальному DNS-серверу,
выдавшему запрос. DNS-сервер для www.big.com не знает IP-адрес Web-клиента,
который отправил запрос локальному DNS-серверу. При выборе наилучшей реп-
лики Web-сайта DNS-сервер для www.big.com может предположить, что Web-