СПОСОБ РАСПРЕДЕЛЕНИЯ НАГРУЗКИ МЕЖДУ СЕРВЕРАМИ СЕТИ ДОСТАВКИ КОНТЕНТА (CDN)
METHOD OF DISTRIBUTING LOAD BETWEEN CONTENT DELIVERY NETWORK (CDN) SERVERS

Область техники
Заявленное изобретение относится к области сетей CDN (сетей доставки контента), а более конкретно, к способу распределения нагрузки между серверами в таких сетях.
Уровень техники
Из уровня техники известен традиционный способ предоставления услуг пользователю, такой как обеспечение загрузки контента (например, содержимого сайта) на терминал (настольный компьютер, мобильный телефон и т.п.) пользователя, при котором указанный контент размещают на сервере в сети (например, сети Internet), а пользователи, желающие воспользоваться услугами, подключаются к этому серверу и получают желаемый контент по сетям связи.
Недостатками традиционного способа являются длительное время ожидания и низкая скорость загрузки контента в случае, если к серверу одновременно подключается большое количество пользователей. Это обстоятельство обусловлено ограниченной полосой пропускания канала, по которому сервер подключен к сети.
Кроме того, указанные недостатки могут проявить себя в случае, если сервер географически расположен достаточно далеко от подключившегося пользователя. В этом случае на пути от сервера к пользователю сигнал с данными, согласно существующим протоколам передачи данных, претерпевает несколько этапов маршрутизации, что, соответственно, увеличивает число транзитных участков (хопов) и приводит к задержке передачи.
В условиях бурно развивающегося рынка предоставления мультимедийных услуг, при котором контент представляет собой данные большого объема (видео, музыка, изображения и т.п.), применение традиционного способа становится недопустимым для требований качества обслуживания пользователя.
Для преодоления указанных недостатков традиционного способа специалистами были разработаны CDN, представляющие собой географически распределенные CDN-сервера, позволяющие снизить количество этапов маршрутизации, а также повысить скорость загрузки контента. Сеть CDN обычно состоит из средств определения местоположения пользователя, средств выбора близлежащего регионального CDN-сервера, CDN-серверов, центральных серверов и средств обнаружения отказов серверов.
Одним из вариантов осуществления CDN является следующее.
Пользователь, желающий получить услугу, обращается посредством браузера с запросом на центральный сервер, который определяет его местоположение и перенаправляет на соответствующий региональный сервер посредством протокола связи (например, HTTP), где пользователь продолжает свою работу (получает услугу). Запрос пользователя обычно доставляется на центральный сервер посредством сети провайдера пользователя, которая имеет доступ к CDN.
Данный вариант работы имеет недостатки в виде медленной скорости работы при первом обращении пользователя, невозможности перенаправления пользователя на другой сервер в случае выхода из строя регионального сервера.
Другим вариантом осуществления CDN является использование выбора оптимального маршрута, который позволяет выбрать оптимальный региональный сервер для конкретного пользователя и существенно повысить скорость получения услуги.
В соответствии с этим, наиболее близким аналогом заявленного изобретения является способ распределения нагрузки между CDN-серверами (WO 0184356 А2, 08.11.2001, G06F 17/00), при котором принимают запрос на услугу от пользователя на центральном сервере, определяют местоположение пользователя по его адресу, приводят в соответствие местоположению пользователя адрес CDN-сервера, выбранный из множества адресов CDN-серверов, и устанавливают маршрут для связи пользователя и соответствующего CDN-сервера, при этом выбор адреса CDN-сервера осуществляют на основании метрики маршрута, выбранной из группы: усредненной задержки передачи данных на маршруте, усредненного времени обработки информации на CDN-сервере, полосы пропускания маршрута, нагрузки CDN-сервера.
Недостатками указанного способа является недостаточная оценка сетевой ситуации, при выборе маршрута-кандидата. Кроме того, указанный способ не предоставляет механизмов гибкого изменения маршрута в случае выхода из строя ранее выбранного CDN-сервера. Кроме того, в указанном способе центральный сервер является уязвимым местом системы при критическом возрастании нагрузки.
Таким образом, задачей настоящего изобретения является преодоление указанных выше недостатков уровня техники.
Сущность изобретения
Вышеуказанные преимущества реализуются тем, что в способе распределения нагрузки между серверами сети доставки контента (CDN), при котором принимают запрос на услугу от, по меньшей мере, одного терминала пользователя на, по меньшей мере, одном сервере, определяют адрес пользователя, приводят в соответствие адресу пользователя адрес CDN-сервера, выбранный из множества адресов CDN-серверов. Далее выбирают маршрут для связи пользователя с соответствующим CDN-сервером. Приведение в соответствие осуществляют посредством, по меньшей мере, одной базы данных маршрутов-кандидатов, сформированной на, по меньшей мере, одном сервере. При этом выбор маршрута осуществляют на основании, по меньшей мере, одной метрики маршрута, выбранной из группы: задержки, вариации задержки, нагрузки, процента (или числа) потери пакетов, количества хопов, количества автономных систем, Q-критерия. При этом дополнительно предусматривают интервал допустимых значений для каждой метрики маршрута и, в случае, если метрика маршрута не входит в указанный интервал, исключают соответствующий маршрут из соответствующей базы данных маршрутов-кандидатов. Кроме того, производят мониторинг активности всех CDN-серверов в режиме реального времени при помощи средства обнаружения отказов, соединенного с, по меньшей мере, одним сервером. При этом в случае обнаружения условия отказа CDN-сервера, информацию о статусе и адресе такого CDN-сервера заносят в соответствующую базу данных, по меньшей мере, одного сервера и далее не учитывают при выборе маршрута.
В соответствии с частным случаем выполнения по меньшей мере один сервер дополнительно соединен с соответствующими средствами кэширования контента и соответствующими средствами сбора и анализа статистической информации.
Сущность изобретения поясняется схематичным рисунком, на котором изображено распределение нагрузки между серверами сети доставки контента.
В соответствии с предпочтительным вариантом осуществления изобретения в системе CDN предусматривают, по меньшей мере, один сервер, на котором при помощи средств сбора и хранения информации формируют базу данных маршрутов-кандидатов (таблицу маршрутизации) для каждого из CDN-серверов системы, состоящую из IP-префиксов. Таким сервером может быть, в частности, один или несколько CDN-серверов или один или несколько специализированных центральных серверов (резервирующих серверов). Далее в описании под понятием «сервер» понимается либо CDN, либо указанный центральный сервер. В случае применения нескольких таких серверов в системе их функционал дублируется на каждом их указанных серверов.
Указанная база данных формируется, в частности, на основании данных из открытых источников (база GeoIP, база RIPE, сайт robtex.com, списки региональных IP-серверов и пр.); информации о маршрутах, получаемых от операторов, где установлены сервера CDN (как в статическом виде, так и в режиме онлайн по протоколу BGP).
Кроме того, каждый из CDN-серверов может регулярно, через заданный промежуток времени (например, 1 раз в сутки), производить трассировку маршрута до случайно выбранного IP-адреса внутри своего IP-префикса. При этом производят сбор, по меньшей мере, одного из: задержки, вариации задержки, нагрузки, процента (или числа) потери пакетов, количества хопов, количества автономных систем, Q-критерия (суммы числа хопов и числа автономных систем). Эти данные (метрики) заносятся в таблицу маршрутов-кандидатов данного сервера для дальнейшей обработки с записью этой информации в базу данных. Метрики также могут быть переданы на один или несколько CDN-серверов для обработки и записи в соответствующие базы данных.
Кроме того, для всех CDN-серверов и для каждого из маршрутов-кандидатов может производиться проверка соответствия собранных параметров заранее определенным интервалам значений (порогам). Если тот или иной маршрут признается несоответствующим по указанным параметрам, он исключается из базы (баз) данных.
Кроме того, для каждого из CDN-серверов может формироваться "черный список" префиксов, на который сервер не имеет права направлять трафик. Список формируется на основании, по меньшей мере, одного из: анализа лог-файлов (большой процент ошибок при передаче файлов, частые случаи буферизации видео), на основании поступающей от пользователей информации или в результате анализа, проводимого системными администраторами системы CDN. Кроме того, для всех CDN-серверов производится проверка, не попадают ли префиксы маршрутов-кандидатов в "черный список", если попадают - такие маршруты отсеиваются.
Кроме того, для всех CDN-серверов и для каждого из маршрутов-кандидатов может производиться проверка наличия в лог-файлах CDN-сервера информации о средней скорости подключения на тот или иной IP-префикс. В случае, если такая информация является статистически достоверной, она заносится в базу данных маршрутов-кандидатов.
Кроме того, в системе может производиться постоянный мониторинг всех серверов системы CDN для определения их активности посредством средства обнаружения отказов. CDN-сервер лишается статуса активного, если этот CDN-сервер удовлетворяет условию отказа: недоступен, или же перегружен, или же слишком большой процент пользователей получает отказы в показе контента, или же слишком часто видео буферизируется. Указанная информация поступает на сервер в виде информации о статусе CDN-сервера и его адресе, вносится в базу данных и далее учитывается при выборе маршрутов из списка маршрутов-кандидатов.
В соответствии с предпочтительным вариантом осуществления при получении системой CDN запроса от пользователя на тот или иной контент, выбор CDN-сервера для его отдачи осуществляется следующим образом: определяют адрес пользователя и проверяют, есть ли в базе данных IP-префикс, соответствующий данному адресу пользователя. Для этого адреса определяют маршрут на соответствующий CDN-сервер. Если таких префиксов несколько, выбирается префикс с наибольшей длиной. Если у одного и того же префикса есть несколько маршрутов, выбирается префикс с наибольшим приоритетом, зависящим от метрик (приведенных ниже по тексту), если только статус сервера, на который указывает соответствующая строка в базе данных, не указан как неактивный.
Кроме того, при выборе маршрута учитываются метрики маршрута, рассмотренные выше. Таким образом, маршрут выбирается в соответствии с лучшими показателями метрик (например, меньшей задержкой, меньшей нагрузкой сервера, большей полосой пропускания и т.д.).
В дополнительном варианте осуществления сервера (как и CDN-сервера) могут быть дополнительно оборудованы средствами кэширования контента, которые позволяют кэшировать контент, к которому происходит наиболее частое обращение пользователей. Учет обращений может быть осуществлен посредством средств сбора и анализа статистической информации, которые могут быть расположены на серверах (так и CDN-серверах). Указанное кэширование позволяет дополнительно увеличить скорость доставки контента пользователю, сокращая количество хопов маршрута.
Указанные средства могут представлять собой машиночитаемый носитель с размещенными на нем командами, под управлением которых указанные сервера производят сбор и анализ статистической информации.
Из изложенного выше специалисту будет понятно, что заявленное изобретение обеспечивает более полную оценку сетевой ситуации при выборе маршрута для конкретного пользователя, что обеспечивает меньшую задержку при пользовании услугой.
Кроме того, мониторинг состояния CDN-серверов в режиме реального времени позволяет производить построение маршрута с учетом характеристик контента услуги, что не предусмотрено текущим уровнем техники. В частности, настоящее изобретение предусматривает учет качества показа видео (в том числе частоты буферизации) при определении оптимального маршрута. Также такой мониторинг позволяет повысить отказоустойчивость системы CDN (указание статуса CDN-сервера), и повысить ее гибкость в целом.
Кроме того, настоящее изобретение предусматривает учет границ сетей Интернет-провайдеров при определении оптимального маршрута посредством Q-критерия, представляющего собой сумму числа маршрутизаторов и автономных систем, находящихся на маршруте.
Использование Q-критерия отражает тот факт, что ухудшение качества связи на внутрисетевых маршрутизаторах интернет-провайдеров происходит с меньшей вероятностью, чем ухудшение качества на межсетевых маршрутизаторах, установленных на границах сетях интернет-провайдеров, из-за большей загрузки последних.
Специалисту будет понятно, что указанные в настоящей заявке линии связи могут представлять собой проводные либо беспроводные линии связи, такие как WiFi, CDMA, LTE и т.п.
В соответствии с предпочтительным вариантом осуществления предусмотрен способ распределения нагрузки между серверами сети доставки контента (CDN), при котором принимают запрос на услугу от, по меньшей мере, одного терминала пользователя на, по меньшей мере, одном сервере, определяют адрес пользователя, приводят в соответствие адресу пользователя адрес CDN-сервера, выбранный из множества адресов CDN-серверов, и выбирают маршрут для связи пользователя с соответствующим CDN-сервером, при этом приведение в соответствие осуществляют посредством, по меньшей мере, одной базы данных маршрутов-кандидатов, сформированной на, по меньшей мере, одном сервере, при этом выбор маршрута осуществляют на основании, по меньшей мере, одной метрики маршрута, выбранной из группы: задержки, вариации задержки, нагрузки, процента (или числа) потери пакетов, количества хопов, количества автономных систем, Q-критерия, при этом дополнительно предусматривают интервал допустимых значений для каждой метрики маршрута и, в случае, если метрика маршрута не входит в указанный интервал, исключают соответствующий маршрут из соответствующей базы данных маршрутов-кандидатов и, кроме того, производят мониторинг активности всех CDN-серверов в режиме реального времени при помощи средства обнаружения отказов, соединенного с, по меньшей мере, одним сервером, при этом в случае обнаружения условия отказа CDN-сервера, информацию о статусе и адресе такого CDN-сервера заносят в соответствующую базу данных, по меньшей мере, одного сервера и далее не учитывают при выборе маршрута. При этом соответствующая, по меньшей мере, одна база данных размещена на соответствующем ей, по меньшей мере, одном сервере. При этом очевидно, что базы данных могут дублировать друг друга, а каждый из упомянутых CDN-сервером и/или серверов могут быть выполнены с возможностью обмена данными друг с другом по соответствующим линиям связи.
Специалисту будет понятно, что указанные в настоящей заявке линии связи могут представлять собой проводные либо беспроводные линии связи, такие как WiFi, CDMA, LTE и т.п.