Способ расширения сети CDN с помощью одноранговой сети
METHOD OF EXPANDING A CDN NETWORK USING A PEER-TO-PEER NETWORK

Область техники
Заявляемое техническое решение относится к области передачи цифровой информации и предназначено для объединения сети CDN и одноранговых сетей.
Уровень техники
Из уровня техники известен традиционный способ доставки контента в сетях CDN, состоящий в выборе для каждого пользователя оптимального с точки зрения той или иной метрики сервера сети CDN и отправке пользователю запрошенного им контента с выбранного сервера. Данный способ хорошо работает в условиях относительно равномерной нагрузки; например, когда большое количество пользователей запрашивает различный контент в различное время. Вместе с тем для Live-контента характерно большое количество запросов одного и того же контента в одни моменты времени (например, во время трансляции крупного спортивного мероприятия) и низкое количество запросов в другие моменты времени. Это приводит к тому, что часть времени сервера CDN будут простаивать, а часть времени они будут перегружены, что приведёт к снижению качества обслуживания пользователей.
Одним из способов повышения качества обслуживания пользователей, не требующим закупки, установки и содержания большого количества дополнительных серверов, является использование одноранговых сетей в качестве дополнительного способа доставки контента конечным пользователям. Этот способ эффективен для доставки Live-контента, поскольку множество пользователей одновременно запрашивают один и тот же контент, а следовательно, от участников одноранговой сети не требуется использования большого хранилища для кеширования контента, что позволяет эффективно включать в одноранговую сеть практически любое конечное устройство пользователя, что, в свою очередь, позволяет доставлять Live-контент большому числу пользователей, не создавая дополнительной нагрузки на сеть CDN.
Аналогом заявленного изобретения является способ объединения одноранговой сети и сети CDN (патент США US20080155061A1 на изобретение, МПК G06F15/16; G06F15/173, опуб. 26.06.2008, [1]), в котором конечные устройства пользователей присоединяются к сети CDN и могут быть назначены системой балансирования нагрузки сети CDN в качестве источника контента для других пользователей.
Известен способ унифицированной доставки контента и планирования контента на основе CDN и P2P (патент Китая CN101267379 на изобретение, МПК H04L12/16, H04L29/08, опуб. 17.09.2008, [2]). Как и в заявляемом техническом решении способ [2] осуществляют с помощью унифицированной подсистемы управления и пользовательского клиента. Сервер управления потоковой передачей видео выполняет соответствующую обработку и планирование ресурсов, определяет конечную точку предоставления потокового мультимедиа CDN, которая предоставляет услугу клиенту.
У аналога [2] подсистема управления информирует подсистему P2P, что источник прямой трансляции является конкретным узлом в подсистеме CDN, и находится в подузле P2P. Подсистема управления устанавливает путь для распространения живого потока в подсистеме CDN. Пользовательский клиент запрашивает живой контент после получения точки публикации, и запрос импортируется в подсистему планирования контента в унифицированной системе переноса контента.
Указанный аналог [2] является по совокупности существенных признаков наиболее близким аналогом того же назначения к заявляемому техническому решению. Поэтому он принят в качестве прототипа.
Технической проблемой, решение которой обеспечивается при осуществлении или использовании технического решения является необходимость улучшения качества обслуживания.
Недостатком способа [1] является высокая нагрузка на систему балансирования нагрузки сети CDN связанная с необходимостью постоянного мониторинга состояния всех узлов одноранговой сети для осуществления корректной балансировки. Способы по патентам [1] и [2] не содержат механизмов предотвращения перегрузки узлов одноранговой сети большим количеством запросов других участников одноранговой сети. Кроме того, указанные способы [1] и [2] могут приводить к ухудшению качества обслуживания, если скорость передачи данных между узлами одноранговой сети окажется недостаточной для передачи следующего сегмента потоковой трансляции до завершения воспроизведения текущего сегмента.
Раскрытие заявляемого технического решения.
Техническим результатом, обеспечиваемым заявляемым техническим решением, является уменьшение нагрузки на сеть CDN.
Другим техническим результатом является предотвращение перегрузки узлов одноранговой сети с одновременным увеличением скорости передачи данных между двумя узлами одноранговой сети.
Сущность заявленного технического решения состоит в том, что способ расширения сети CDN осуществляют с помощью одноранговой сети, состоящей из подсистемы управления одноранговой сетью, выполняемой на одном или нескольких серверах, и подсистемы клиента одноранговой сети, выполняемой на устройствах клиентов. При подключении нового клиента и при получении запроса на обновление данных подсистема управления одноранговой сетью формирует список узлов одноранговой сети, просматривающих трансляцию с тем же идентификатором, параметры подключения которых соответствуют параметрам подключения нового клиента по критериям, которые выбирают так, чтобы сформировать список заданного размера. При этом набор критериев зависит от просматриваемого Live-контента. Далее клиенту передают адреса узлов CDN, предоставляющих доступ к запрошенному контенту, а также сформированный список узлов одноранговой сети. Затем клиент отправляет всем узлам из списка запрос о возможности загрузки следующего сегмента просматриваемого Live-контента, на который те отвечают в случае наличия в их локальном кэше запрошенного сегмента, а также наличия свободных вычислительных и сетевых ресурсов. Отличается тем, что:
- после ответа ресурсы резервируют на заданный промежуток времени, далее клиент направляет запрос на загрузку данных случайному узлу из числа ответивших, а также увеличивает счётчик ошибок для не ответивших узлов, причём в случае отсутствия ответов, ошибок передачи, или низкой скорости загрузки данные перезапрашиваются у одного из узлов CDN;
- при достижении счётчиком ошибок определённого порога соответствующий узел одноранговой сети помечается данным клиентом как "плохой" и перестаёт использоваться, а информацию о нём передают подсистеме управления одноранговой сетью для исключения данного узла из формируемых в дальнейшем списков, причём если количество узлов в имеющемся у клиента списке оказывается меньше заданного порога, у подсистемы управления одноранговой сетью запрашивают недостающее количество узлов;
- если количество узлов в списке оказывается больше заданного порога, то из них выбирают необходимое количество узлов случайным образом, при этом не рассматривают узлы, чей счётчик ошибок превышает заданный порог, а также узлы, присутствующие в переданном клиентом списке, если таковой присутствует в запросе;
- если у узла недостаточно ресурсов для обработки всех поступивших запросов, приоритет отдаётся клиентам, которые чаще загружают данные;
- в случае переполнения кэша удаляют самые старые по времени добавления сегменты.
В частных случаях допустимо выполнять техническое решение следующим образом.
При резервировании ресурсов на узле одноранговой сети предпочтительно учитывают соотношение числа запросов на загрузку данных к числу запросов о возможности загрузки данных за заданный промежуток времени.
Пользователь может перематывать видео назад для просмотра фрагмента трансляции. Если после этого пользователь возвращается в прямой эфир, то сегменты, соответствующие просмотренному фрагменту записи трансляции, не удаляют из кэша в течение заданного промежутка времени.
На случайно выбранную часть узлов одноранговой сети подсистема управления одноранговой сетью отправляет параметры конфигурации, часть значений которых изменена случайным образом в заданных пределах. При этом подсистема управления осуществляет мониторинг работы данных узлов, и если данные параметры конфигурации обеспечивают лучшее качество трансляции, или уменьшают нагрузку на устройство клиента, то они начинают использоваться для всех новых узлов одноранговой сети.
Сервера, обеспечивающие работу подсистемы управления одноранговой сетью являются кэшем CDN для всех видов просматриваемого клиентами Live-контента. При этом узлы одноранговой сети, в случае невозможности загрузить данные с других узлов одноранговой сети сначала загружают данные из кэша CDN подсистемы управления, а в случае невозможности загрузки данных из кэша CDN перезапрашивают их у одного из узлов CDN. При этом ресурсы сервера, обеспечивающие работу подсистемы управления, приоритетно выделяются для работы подсистемы управления.
На серверах, обеспечивающих работу подсистемы управления одноранговой сетью, дополнительно выполняют одну или более подсистем клиента одноранговой сети, причём ресурсы сервера приоритетно выделяют для работы подсистемы управления одноранговой сетью. При этом в случае нехватки ресурсов прекращается выполнение экземпляров подсистемы клиента одноранговой сети, которые осуществляют просмотр трансляции, имеющей наибольшее число зрителей среди участников одноранговой сети.
Вышеуказанная сущность является совокупностью существенных признаков заявленного технического решения, обеспечивающих достижение всех заявленных технических результатов.
Краткое описание чертежей
На фигуре показана схема способа расширения сети CDN с помощью одноранговой сети.
Осуществление технического решения.
Расширение сети CDN осуществляют с помощью следующих подсистем:
- подсистемы клиента одноранговой сети (1);
- подсистемы управления одноранговой сетью (2);
- подсистемы (сети) CDN (3);
- подсистемы конфигурации одноранговой сети (4).
Подсистема управления одноранговой сетью (2) предусматривает программный модуль, выполняемый на одном или нескольких либо выделенных серверах, либо серверах сети CDN (3), либо их комбинации. Данный модуль хранит в оперативной памяти сервера, на дисковом накопителе, или в ином хранилище данных необходимые для работы подсистемы объекты, включая список узлов одноранговой сети, их счётчики ошибок, идентификатор просматриваемого Live-контента для каждого узла и параметры подключения для каждого узла. Параметры подключения узла одноранговой сети могут содержать значения одной или более метрик, таких как номер автономной системы, гео-координаты, тип устройства, максимальный размер доступного кэша, тип и скорость подключения к интернету. Идентификатор просматриваемого Live-контента уникально идентифицирует Live-трансляцию, а также все её параметры, включая качество трансляции (разрешение, частота кадров, битрейт), выбранную звуковую дорожку, выбранный ракурс камеры и другие.
При подключении нового клиента к подсистеме клиента одноранговой сети (1), подсистема управления одноранговой сетью (2) получает от подсистемы клиента одноранговой сети (1) информацию о просматриваемом Live-контенте и параметрах подключения. После этого подсистема управления одноранговой сетью (2) формирует список узлов одноранговой сети, просматривающих Live-контент с тем же идентификатором, параметры подключения которых соответствуют параметрам подключения нового клиента к подсистеме клиента одноранговой сети (1). Один или более критериев соответствия, а также максимальный и минимальный размер формируемого списка узлов, соответствующие просматриваемому Live-контенту, запрашиваются у подсистемы конфигурации одноранговой сети (4).
Если в подсистеме конфигурации одноранговой сети (4) отсутствует конфигурация, соответствующая запрошенному Live-контенту, используется конфигурация по умолчанию. При этом если в сформированном списке оказывается недостаточное количество узлов, подсистема управления одноранговой сетью (2) может либо воспользоваться менее строгим критерием соответствия, либо прервать формирование списка узлов. Если в сформированном списке оказывается слишком много узлов подсистема управления одноранговой сетью (2) может либо воспользоваться более строгим критерием соответствия, либо выбрать необходимое количество узлов из сформированного списка случайным образом. После этого новому клиенту подсистемы клиента одноранговой сети (1) передаётся сформированный список узлов одноранговой сети (если он был сформирован), конфигурационные параметры, полученные от подсистемы конфигурации одноранговой сети (4), и один или несколько узлов CDN, предоставляющие доступ к запрошенному клиентом Live-контенту. Список узлов CDN запрашивают у подсистемы CDN (3).
При получении запроса от подсистемы клиента одноранговой сети (1) на формирование списка узлов заданного размера производится формирование списка узлов, содержащего не более запрошенного числа элементов. При этом если в запросе клиента содержится список узлов, то узлы из этого списка не рассматриваются в качестве кандидатов при формировании нового списка.
При получении информации от подсистемы клиента одноранговой сети (1) об изменении параметров подключения, или изменении идентификатора просматриваемого Live-контента, производится сохранение новых данных, а также сброс счётчика ошибок к первоначальному значению, которое запрашивается у подсистемы конфигурации одноранговой сети (4).
При получении от подсистемы клиента одноранговой сети (1) списка «плохих» узлов одноранговой сети происходит увеличение их счётчика ошибок на величину, которая запрашивается у подсистемы конфигурации одноранговой сети (4). Если счётчик ошибок достигает порогового значения (запрашивается у подсистемы конфигурации одноранговой сети), соответствующий клиент перестаёт рассматриваться в качестве кандидата при формировании новых списков узлов одноранговой сети.
При получении от подсистемы клиента одноранговой сети (1) запроса на обновление конфигурации производится запрос параметров конфигурации у подсистемы конфигурации одноранговой сети (4) и отправка полученного результата клиенту.
В том случае, если подсистема управления одноранговой сетью (2), либо её часть выполняется на выделенных серверах, на этих серверах также может выполняться один или более экземпляр подсистемы клиента одноранговой сети (1). При этом ресурсы сервера приоритетно выделяются для работы подсистемы управления одноранговой сетью (2), причём при уменьшении количества свободных ресурсов происходит уменьшение количества выполняемых экземпляров подсистемы клиента одноранговой сети (1), причём в первую очередь перестают выполняться те экземпляры подсистемы клиента, которые осуществляют просмотр трансляции, имеющей наибольшее число зрителей среди участников одноранговой сети.
Примеры конкретного выполнения.
Пример 1. Среди всех узлов одноранговой сети подсистема управления одноранговой сетью (2) случайно выбирает заданную в конфигурации долю узлов, и каждому выбранному узлу передаёт конфигурационные параметры, часть значений которых изменена случайным образом в заданных пределах. При этом подсистема управления (2) осуществляет мониторинг работы данных узлов, и если данные конфигурационные параметры обеспечивают лучшее качество трансляции, или уменьшают нагрузку на устройство клиента, то подсистема управления (2) сохраняет данную конфигурацию в подсистеме конфигурации одноранговой сети (4) и начинает использовать её для всех новых узлов одноранговой сети.
Подсистема клиента одноранговой сети (1) предусматривает программный модуль, выполняемый на устройстве клиента, участвующего в одноранговой сети, который запрашивает возможность загрузки следующей порции данных Live-контента (следующего сегмента видео) у всех узлов одноранговой сети из имеющегося у него списка узлов (при наличии). Далее подсистема клиента одноранговой сети (1) ожидает получение ответов в течение заданного в конфигурации промежутка времени, после чего запрашивает следующий сегмент видео у случайного узла из числа ответивших, а также увеличивает счётчик ошибок на заданную в конфигурации величину для каждого не ответившего узла. Если в заданный промежуток времени ответ не был получен ни от одного узла, а также при отсутствии списка узлов одноранговой сети следующий сегмент видео запрашивается из сети CDN (3). Если сегмент видео был запрошен у узла одноранговой сети, но его загрузка происходит слишком медленно для обеспечения непрерывности воспроизведения Live-контента, либо если загрузка прервалась, либо если получено сообщение о невозможности передать запрошенные данные, этот сегмент перезапрашивается из сети CDN (3), а для данного узла одноранговой сети происходит увеличение счётчика ошибок на заданную в конфигурации величину. Полученный сегмент сохраняется в локальном кэше, размещённом в оперативной памяти, на дисковом накопителе, или в ином хранилище данных. При этом если в локальном кэше недостаточно свободного места для сохранения полученного сегмента, производится последовательное удаление самых старых по времени получения сегментов до тех пор, пока в кэше не освободится достаточно места для сохранения нового сегмента.
Пример 2. Если Live-трансляция поддерживает перемотку, и пользователь перемотал видео назад для просмотра какого-то фрагмента трансляции, после чего вернулся в прямой эфир, то сегменты, соответствующие просмотренному фрагменту записи трансляции, не будут удаляться из кэша в течение заданного в конфигурации промежутка времени.
При достижении счётчиком ошибок заданного в конфигурации порога, соответствующий узел помечается как «плохой» и исключается из списка узлов одноранговой сети. Если после этого в списке узлов одноранговой сети оказывается меньше узлов, чем заданное в конфигурации пороговое значение, производится запрос у подсистемы управления одноранговой сетью (2) дополнительного списка размера, равного разнице между заданным в конфигурации значением и текущим размером списка. При этом в запросе могут быть также переданы текущий список узлов и список «плохих» узлов. Узлы из полученного от подсистемы управления одноранговой сетью (2) списка добавляются в текущий список узлов. В случае неполучения списка от подсистемы управления одноранговой сетью (2), либо если после добавления полученных узлов размер списка, по-прежнему меньше заданного в конфигурации порогового значения производится повторный запрос через заданный в конфигурации промежуток времени.
При получении запроса о возможности загрузки определённых данных от другого узла одноранговой сети, подсистема клиента одноранговой сети (1) проверяет наличие запрошенных данных в локальном кэше. При наличии данных происходит проверка доступности свободных вычислительных и сетевых ресурсов для обеспечения передачи запрошенных данных без влияния на качество воспроизведения контента на данном устройстве, а также без влияния на качество передачи данных другим участникам одноранговой сети. Если ресурсов недостаточно для обслуживания всех поступающих запросов, приоритет отдаётся тем узлам одноранговой сети, у которых больше доля числа запросов на загрузку данных к числу запросов о возможности загрузки данных за заданный в конфигурации промежуток времени. При наличии данных в кэше и доступности ресурсов на поступивший запрос отправляется ответ, подтверждающий возможность загрузки данных, а также производится резервирование вычислительных и сетевых ресурсов на заданный в конфигурации промежуток времени. Во всех остальных случаях ответ не отправляется и резервирование ресурсов не производится.
Пример 3. При резервировании ресурсов учитывается доля числа запросов на загрузку данных к числу запросов о возможности загрузки данных за заданный в конфигурации промежуток времени.
При получении запроса о загрузке данных от другого узла одноранговой сети производится повторная проверка наличия данных в кэше и доступности свободных вычислительных и сетевых ресурсов. Если проверка пройдена, производится отправка запрошенных данных, в противном случае производится отправка сообщения о невозможности передать запрошенные данные. В случае возникновения ошибок при передаче повторная отправка не производится.
При изменении параметров подключения, а также при изменении идентификатора просматриваемого Live-контента отправляется соответствующий запрос к подсистеме управления одноранговой сетью (2). Кроме того, через заданный в конфигурации промежуток времени к подсистеме управления одноранговой сетью (2) отправляется запрос на обновление конфигурации.
Пример 4. Выделенные сервера, обеспечивающие работу подсистемы управления (2), также выполняют роль кэша CDN для всех видов просматриваемого клиентами Live-контента. В этом варианте узлы одноранговой сети, в случае невозможности загрузить данные с других узлов одноранговой сети сначала пытаются загрузить данные из кэша CDN подсистемы управления (2). В случае если данные не были получены в течение заданного в конфигурации промежутка времени, либо если кэш CDN сообщил о невозможности предоставить запрошенные данные, данные перезапрашиваются у одного из узлов CDN. При этом ресурсы сервера, обеспечивающего работу подсистемы управления (2), приоритетно выделяются для работы подсистемы управления (2). Данные в кэш CDN загружаются из CDN (3).
Подсистема CDN (3) представляет собой ту или иную сеть CDN, способную предоставить пользователям запрашиваемый Live-контент.
Подсистема конфигурации одноранговой сети (4) представляет собой набор конфигурационных профилей, хранящихся в конфигурационном файле, базе данных, или ином хранилище информации.
Из изложенного выше специалисту будет понятно, что заявленное изобретение обеспечивает уменьшение нагрузки на сеть CDN (3), не требует постоянного мониторинга состояния всех узлов одноранговой сети, не допускает перегрузки узлов одноранговой сети, а также не допускает ухудшения качества обслуживания за счёт недостаточной скорости передачи данных между двумя узлами одноранговой сети.
Хотя выше был описаны предпочтительные примеры осуществления настоящего изобретения, специалисту будет понятно, что настоящее изобретение не ограничено этими примерами. Более того, различные изменения и модификации могут быть выполнены в пределах сущности и объёма настоящего изобретения.
Промышленная применимость
Заявляемый способ уменьшения нагрузки на сеть CDN реализован с использованием промышленно выпускаемых устройств и материалов, и найдет широкое применение в области распространения цифрового контента.