Организация адаптивного потокового вещания видео с использованием CDN и распределенной балансировкой нагрузки при помощи веб-сервера Nginx::Журнал СА 3.2018
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6450
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7145
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4425
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3095
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3892
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3910
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6396
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3242
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3539
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7378
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10735
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12454
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14122
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9205
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7150
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5456
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4689
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3506
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3218
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3457
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3101
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Организация адаптивного потокового вещания видео с использованием CDN и распределенной балансировкой нагрузки при помощи веб-сервера Nginx

Архив номеров / 2018 / Выпуск №3 (184) / Организация адаптивного потокового вещания видео с использованием CDN и распределенной балансировкой нагрузки при помощи веб-сервера Nginx

Рубрика: Наука и технологии

Без фото НЕКРАСОВ Г.А., Национальный исследовательский университет «Высшая школа экономики», Москва, Россия, alax-27@mail.ru

Без фото РОМАНОВ А.Ю., Национальный исследовательский университет «Высшая школа экономики», Москва, Россия

Организация адаптивного потокового вещания видео с использованием CDN
и распределенной балансировкой нагрузки при помощи веб-сервера Nginx

Статья посвящена разработке автоматизированного сервиса для сети доставки медиаконтента при организации адаптивного потокового онлайн-вещания в сети Интернет. Такая организация вещания видеопотоков позволяет автоматически регулировать количество передаваемых данных в единицу времени (далее битрейт), изменив соответственно качество запрошенного медиаконтента. Как следствие, качество будет занижено для тех пользователей, которые используют каналы передачи данных с низкой пропускной способностью, и, наоборот, для тех пользователей, которые подключены к каналам связи с высокой пропускной способностью, контент будет предоставлен с максимально возможным качеством. В данном процессе пользователь не принимает никакого участия: клиентский плеер для просмотра видео сам определяет, в каком битрейте будет оптимально отображаться контент конкретному пользователю, чтобы избежать буферизации видео, но при этом обеспечить его отображение в максимально возможном качестве. Переключение между битрейтами может происходить постоянно как с понижением, так и с повышением битрейта, в зависимости от изменений качества доступной на текущий момент полосы пропускания. В дополнение к услуге адаптивного вещания видео разработанный сервис позволяет выполнять перекодирование видеопотоков на лету. Получая на вход RTSP/RTMP-поток, сеть осуществляет его конвертацию в RTMP/HLS-мультибитрейт, в результате чего на выходе генерируются потоки видео различного качества, поддерживаемые как мобильными устройствами, так и персональными1 компьютерами

Введение

В современном мире ни один ресурс в сети Интернет, такой как блог, социальная сеть или новостной ресурс, невозможно представить без использования медиаконтента. Фотографии, графика, анимации, аудио и видео – наиболее распространенные «цифровые активы». За последнее десятилетие использование мобильных гаджетов для просмотра таких активов увеличилось во всем мире до значительных масштабов. Все большее количество пользователей вместо обычного текстового обмена информацией отдают свое предпочтение обмену медиаконтентом, а также просмотру потокового видео с каких-либо новостных или светских мероприятий на мобильных устройствах, причем предпочитают делать это не только дома, но и в дороге или на отдыхе. Согласно недавнему исследованию, проведенному компанией Cisco, к 2021 году [5] порядка 70% всего мобильного трафика будет приходиться на видеоконтент. В компании отметили, что по их прогнозам годовой рост видеотрафика будет составлять примерно 55% вплоть до наступления 2021 года. Весомый вклад в столь бурное развитие предоставления медиаконтента вносят социальные сети и веб-сайты, активно встраивающие видеозаписи в свои страницы.

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

Так как мобильные гаджеты зачастую используют беспроводное соединение с сетью Интернет, возникает ряд важных вопросов, которыми нельзя пренебречь. Они напрямую зависят от следующих факторов: используемая технология распространения радиосигнала, приоритезация трафика и прочие процессы, влияющие на скорость и качество доставки видеоконтента. Приняв во внимание все эти факторы, можно сделать простой вывод, что гарантированная доставка потокового видео по мобильным сетям может быть только адаптивной.

В основу реализации автоматизированного сервиса по организации потокового вещания видео положена технология адаптивного вещания. Данный подход позволяет выполнять доставку медиаконтента пользователю с достаточно высокой надежностью и качеством, подстраивающимся под постоянно меняющуюся скорость соединения. Это решение ориентируется также на тип конечного пользовательского устройства, его разрешение экрана, полосу пропускания интернет-соединения на момент воспроизведения, позволяя тем самым избавиться от «зависания» картинки, длительной буферизации и прочих искажений.

В процессе адаптивного вещания исходный источник видео высокого качества преобразуется путем конвертирования в широкий набор видеофайлов различного качества (битрейта), которые сохраняются для последующего распространения в сети доставки контента CDN [11, 12].

Когда пользователь решает воспроизвести адаптивное видео, сервер вещания отправляет ему в ответ файл манифеста, в котором находится информация обо всех видеофайлах различного качества, имеющихся на сервере (см. рис. 1).

Рисунок 1. Схема адаптивного потокового вещания

Рисунок 1. Схема адаптивного потокового вещания

Если на сервере вещания доступно несколько вариантов качества потока, видеопроигрыватель будет постоянно следить за текущей пропускной способностью и выбирать следующий фрагмент самого высокого качества, который он может загрузить, выбирая тем самым оптимальный битрейт, чтобы свести буферизацию медиапотока к минимуму.

Для дистрибуции и доставки конечному пользователю полученного видео с сервера вещания, используются так называемые сети доставки контента (Content Delivery Networks, сокращенно – CDN) [1, 3].

Основная концепция CDN заключается в том, что загрузка активов множеством пользователей не должна мешать серверу, где размещается основной контент, более того, он не должен даже участвовать в этом. Преимущество такого подхода состоит в том, что эти сети обслуживают активы пользователей без использования каких-либо вычислительных ресурсов основного сервера [4, 6].

Предлагаемое решение доставки медиаконтента основано на использовании распределенных серверов, каждый из которых выполняет функцию по доставке адаптивного потокового контента клиенту с максимально высокой скоростью и качеством на любое устройство в режиме реального времени (см. рис. 2).

Рисунок 2. Схема дистрибуции контента от центрального сервера по принципу CDN

Рисунок 2. Схема дистрибуции контента от центрального сервера по принципу CDN

Применение многоуровневого распределенного сервиса способствует горизонтальному масштабированию, что особенно актуально, поскольку в настоящее время уже невозможно представить инфраструктуру сервиса обработки данных без разделения нагрузки на серверы. В целях более равномерного разделения нагрузки и оптимизации сетевого трафика разработанная платформа содержит средства для обеспечения географически распределенной инфраструктуры доставки клиентского содержимого. Особенность этой архитектуры, в контексте ее применения к системам управления содержимым, заключается в выделении серверов «общего клиентского контента», являющихся единым центром для всех установленных систем. Размещение общего контента между несколькими серверами средствами CDN сокращает сетевой маршрут передачи данных и делает работу сервиса с точки зрения пользователя быстрее (см. рис. 3).

Рисунок 3. Отличие в доставке контента с и без CDN

Рисунок 3. Отличие в доставке контента с и без CDN

К преимуществу данной технологии относится не только значительная экономия трафика для организаций, имеющих географически удаленные офисы с централизованно установленной системой, но и серьезные архитектурные улучшения, доступные специалистам информационных технологий при эксплуатации систем. Например, возможность выделить отдельные, оптимизированные для передачи общего клиентского контента серверы с настройкой кэширования, что улучшает эксплуатационные характеристики систем и за счет специализации позволяет оптимизировать серверную инфраструктуру.

Размещая данные ближе к пользователю, можно рассчитывать на то, что эти данные будут быстрее доставлены ему, а кэширование данных на распределенных узлах позволит сократить число обращений к основному серверу. Также имеется возможность всегда передавать сжатые данные от центрального сервера к узлу CDN, в keep-alive-соединениях. Существует возможность настроить узел CDN так, чтобы конкурирующие запросы, которые кэшируются, не выполнялись параллельно.

Концепция и решаемые задачи

В основу концепции реализации предлагаемого автоматизированного сервиса были положены следующие принципы:

Плеер для проигрывания видеопотока. Конечному пользователю предоставляется страница с плеером, который проигрывает видеопоток и позволяет ему, помимо адаптивного качества, выбирать самостоятельно требуемое качество проигрываемого видеопотока.

Потоковое вещание видео в режиме реального времени (Live Video Streaming). Данный подход обеспечивает возможность проведения онлайн-трансляций медиаконтента с поддержкой различного качества. При этом перекодирование контента в другое качество выполняется самой системой. Трансляция инициируется по запросу от пользовательского плеера к серверу раздачи. Ограничений на тип пользовательского плеера не накладывается. Предусмотрена возможность проведения трансляции одного события в нескольких битрейтах одновременно. В этом случае для каждого битрейта публикуется отдельный поток. При одновременном проведении нескольких трансляций из разных мест каждый поток публикуется отдельно.

Генерация скриншотов. Сервис позволяет оперативно получать доступ к «моментальным снимкам» (скриншотам) live-потока. Скриншот представляет собой статичное изображение в формате JPEG и дает возможность предварительного ознакомления пользователя с контентом, который предлагается ему для просмотра. Скриншоты формируются с заданной периодичностью (по умолчанию 1 минута) и заданного размера. Может быть одновременно сформировано несколько скриншотов разного размера. Скриншоты потока доступны для скачивания по HTTP и имеют постоянный URL для каждого заданного размера. При остановке потока будет выдаваться последний зафиксированный скриншот.

Кэширование HTTP-контента. Контент по мере необходимости кэшируется на серверах раздачи и отдается с оптимального сервера по запросу пользователя. При кэшировании сохраняются не только сам объект данных, но и связанные с ним HTTPзаголовки, что позволяет кэшировать как статический, так и динамически генерируемый контент. Контент загружается по протоколу HTTP в кэш сервера раздачи с сервера-источника при первом запросе пользователя и используется при обслуживании последующих запросов. Полученный сервером раздачи объект хранится в кэше в течение определенного времени. В случае заполнения кэша происходит замещение объектов по принципу ротации, то есть в первую очередь замещаются объекты с наибольшим сроком хранения. Повторная загрузка из источника происходит только в случае отсутствия запрашиваемого объекта в кэше сервера раздачи.

Перенаправление запросов. Перенаправление запросов пользователей на оптимальные серверы раздачи происходит на уровне DNS. Распространяемый контент должен быть доступен по доменным именам, находящимся в зоне ответственности CDN. Для этого выделяется доменное имя в зоне CDN, которое должно использоваться при формировании ссылок на контент.

Монтирование видео. Имеется возможность монтировать видео на лету, то есть проигрывать его не целиком, а только некоторые его части. Например, можно потребовать от CDN проиграть видеоролик с 5-й по 70-ю секунду, потом с 100-йпо 106-ю и так далее. Эта услуга существенно сокращает время публикации видеоролика на сайте.

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

Нацеленность на мобильные устройства. Обеспечивается поддержка вещания на мобильные устройства (с использованим протокола HLS).

Балансировка трафика. Обеспечивается возможность равномерного распределения пользователей между серверами.

Схематично работа реализованного автоматизированного сервиса изображена на рис. 4.

Рисунок 4. Схематичное отображение работы сервиса

Рисунок 4. Схематичное отображение работы сервиса

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

Кодирующий сервер осуществляет прием RTMP/RTSP-потока и его перекодирование в различное качество изображения, а также конвертацию в RTMP/HLS-мультибитрейт-поток.

RTMP (Real Time Messaging Protocol) – протокол, который удобен тем, что в языке программирования AS3 предоставляется его поддержка, требует не много ресурсов на клиентской рабочей станции и имеет множество достоинств (например, трансляцию с переменными битрейтами и переключение клиентов на более высокое качество при наличии свободного канала).

HLS (HTTP Live Streaming) – это протокол, который на сегодня поддерживается большинством мобильных устройств [2, 9]. Данная технология, разработанная компанией Apple, обеспечивает кодирование на сервере исходного источника вомножество сегментов различного качества. Видеоданные кодируются в формат H.264, аудиоданные – в MP3, HE-AAC или AC3, после чего упаковываются в контейнер MPEG2 TS для последующего распространения. Сформированный контент различного качества делится на серии 10-секундных фрагментов (чанков), информация о которых заносится в файл манифеста/плей-листа с расширением *.m3u8 [10, 13].

Каждый пользователь получает индивидуальный плей-лист, в котором присутствуют ссылки на главный файл манифеста, содержащий в себе информацию обо всех уровнях качества и расположении контента на сервере, что является необходимым условием для корректного выбора адаптивного качества/битрейта пользовательским медиаплеером. Когда начинается процесс воспроизведения, плеер инициирует последовательную загрузку 10-секундных чанков. Первоначально он выбирает части видео с низким качеством, а далее, основываясь на скорости пользовательского интернет-соединения, начинает загрузку видеофрагментов все более высокого качества.

HLS в настоящее время де-факто стал стандартом в мире потоковой передачи видеоданных для большинства устройств потребителей. В то же время RTMP остается незаменимым там, где требуется передача данных со скоростью, близкой квещанию в реальном времени [15]. HLS дает некоторую задержку при соединении, чтобы скачать первый блок с данными, а в случае с RTMP отображение начинается практически сразу. В целом в настоящее время это наиболее совершенный протокол передачи медиа в реальном времени, несмотря на все неоднозначности в реализации и более трудоемкое развертывание и масштабирование относительно HLS. RTSP-протокол попрежнему используется как резервный (fallback) для Андроидустройств предыдущих поколений.

В качестве утилит, которые выполняют преобразование видео на кодирующем сервере, используется набор свободных библиотек с открытым исходным кодом FFmpeg. Они позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах. Набор также включает libavcodec-библиотеку кодирования, декодирования аудио и видео, libavformat-библиотеку мультиплексирования, демультиплексирования аудио и видео в медиа-контейнер.

FFmpeg состоит из компонентов, большинство которых задействовано в данном проекте при реализации кодирующих серверов:

  • ffmpeg – утилита командной строки для конвертирования видео из одного формата в другой. С ее помощью также возможен захват видео в реальном времени с TV-карты;
  • ffserver – HTTP потоковый сервер (RTSP в настоящее время разрабатывается) для видео- или радиовещания;
  • ffplay – простой медиаплеер, основанный на SDL и библиотеках FFmpeg;
  • libavcodec – библиотека с аудио/видеокодеками;
  • libavformat – библиотека с мультиплексорами и демультиплексорами для различных аудио и видеоформатов;
  • libavutil – вспомогательная библиотека со стандартными подпрограммами общего назначения для различных компонентов ffmpeg. Включает Adler-32, CRC, MD5, SHA1, LZO-декомпрессор, Base64/DES/RC4/AESкодер /декодер;
  • libpostproc – библиотека стандартных подпрограмм обработки видео;
  • libswscale – библиотека для масштабирования видео;
  • libavfilter – замена vhook, которая позволяет изменять видеопоток между декодером и кодером в реальном режиме времени.

Выбор FFmpeg для реализации разрабатываемого сервиса обусловлен тем, что он является кроссплатформенным и обладает всем необходимым функционалом для работы с видео для вещания в сети Интернет. FFmpeg также предоставляет API для удобной работы с различными языками программирования, поставляемыми в виде расширений.

Серверы дистрибуции осуществляют непосредственное распределение медиапотока пользователям. Принцип работы системы сводится к анонсированию сетевого адреса, который ссылается на сайт, находящийся в географически распределенной сети (CDN), и перенаправлению запросов к условному единому серверу, то есть они предоставляют копии контента на разных серверах по всему миру и направляют клиента на ближайший к клиенту сервер. Результатом такого перенаправления является сокращение задержки между запросом и ответом.

В качестве распределения и выравнивания нагрузки (балансировки), приходящейся на серверы дистрибуции, был выбран веб-сервер с открытым исходным кодом Nginx [7]. Он позволяет избежать такой ситуации, когда передаваемые посети пакеты лавинообразно поступают на один сервер, в то время как другие серверы простаивают. Балансировщик анализирует загруженность серверов и при необходимости выполняет перенаправление запросов на менее нагруженный сервер.

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

Работа Nginx изначально построена вокруг модульной, управляемой событиями, асинхронной архитектуры. Он создает рабочие процессы, каждый из которых может обслуживать тысячи соединений. Такой результат достигается благодаря механизму, основанному на быстром цикле, в котором проверяются и обрабатываются события. Разделение основной работы и обработки соединений позволяет каждому процессу заниматься своей задачей и обрабатывать соединения только тогда, когда произошло новое событие.

Каждое соединение, обрабатываемое процессом, помещается в цикл событий вместе с другими соединениями. В этом цикле события обрабатываются асинхронно, что обеспечивает обработку задач в неблокирующем режиме. Когда соединение закрывается, оно удаляется из цикла.

Этот подход к обработке соединений обеспечивает масштабирование Nginx при ограниченных ресурсах. Поскольку сервер однопоточный, и он не создает процессы под каждое соединение, использование памяти и CPU происходит относительно равномерно даже при высоких нагрузках.

Таким образом, выбранная нами архитектура эффективно использует серверные ресурсы, обеспечивая тем самым рост CDN и возможность обслуживать до 10 000 запросов в секунду.

Nginx не имеет возможности самостоятельно обрабатывать запросы к динамическому контенту. Для обработки запросов Nginx должен передать запрос внешнему процессору на исполнение, подождать, пока ответ будет сгенерирован, и, получив его, отправить клиенту.

Для администраторов это означает, что требуется настроить взаимодействие Nginx с таким процессором путем использования одного из протоколов, который известен Nginx (http, FastCGI, SCGI, uWSGI или memcache).

Преимущество такого подхода состоит в следующем. Так как интерпретатор не встроен в каждый процесс, то перерасход ресурсов, связанный с таким событием, будет возникать только при запросах к динамическому контенту, астатический контент будет возвращен клиенту простым способом, за счет чего запросы к интерпретатору будут выполняться только тогда, когда это требуется.

Выбор Nginx осуществлен также и по причине того, что он может работать не только в качестве веб-сервера, но и в качестве прокси-сервера. Поэтому он работает в первую очередь с URI, транслируя их при необходимости в запросы к файловой системе. Эта особенность проявляется также в том, как для Nginx конструируются и интерпретируются конфигурационные файлы. В случае запросов к статическим файлам все запросы должны быть отображены на путь в файловой системе, поскольку сначала Nginx выбирает блоки server и location, которые будут использованы для обработки запроса, и затем объединяет document root с URI в соответствии с заданной конфигурацией.

Динамическое ускорение сайта и использование протокола BGP

В качестве подхода по оптимизации предложенного решения и для более эффективной доставки динамического контента в проекте используется динамическое ускорение сайта (DSA) [14], в результате чего были достигнуты следующие результаты:

  • улучшено управление соединениями путем мультиплексирования клиентских подключений и поддержания работоспособности HTTP;
  • реализована предварительная выборка ответов (uncachable-web);
  • добавлено управление динамическим кэшем;
  • обеспечено дополнительное сжатие в реальном времени;
  • обеспечено полное кэширование страниц;
  • отключена SSLтерминация;
  • оптимизирована передача по протоколу TCP.

Кроме того, существует возможность обеспечить оптимизацию маршрутов за счет использования протокола BGP (Border Gateway Protocol) [8]. Применение маршрутизаторов, использующих протокол BGP, позволяет получить информацию о доступности сетей и их атрибуты, с помощью которых происходит выбор лучшего маршрута и настройка политики маршрутизации.

Оптимизация топологии сети CDN путем применения циркулянтных топологий

Идея применения многоуровневого распределенного сервиса способствует горизонтальному масштабированию серверов (см. рис. 2), но сама древообразная топология соединения серверов нижнего уровня с центральным сервером накладывает определенные ограничения, поскольку раздача одного и того же трафика может осуществляться на соседние географически расположенные CDN-серверы. Нам представляется, что региональные серверы могут быть объединены горизонтальными соединениями, образовывая кольцевую топологию, что позволит уменьшить обращения к центральному серверу в случае, когда необходимый трафик уже имеется на соседних узлах. Это также повышает надежность системы в случае отказа радиальных соединений, поскольку обеспечивается возможность доставки трафика по соседним соединениям.

Расстояние между далеко отстоящими узлами в кольце также может быть уменьшено путем применения циркулянтных топологий соединений, например двумерных циркулянтов с единичной образующей (см. рис. 5), которые имеют хорошие показатели для проведения трансляционных и полных обменов [16].

Рисунок 5. Схема дистрибуции контента в сети CDN с кольцевой системой объединения серверов по циркулянтной топологии C(n; 1, s2).

Рисунок 5. Схема дистрибуции контента в сети CDN с кольцевой системой объединения серверов по циркулянтной топологии C(n; 1, s2).

Следует отметить, что, несмотря на то что циркулянтные топологии в первую очередь применяются для построения многопроцессорных систем и сетей на кристалле, их топологические свойства настолько привлекательны, что существует ряд исследований, где с определенными улучшениями их предлагается применять и для глобальных сетей [17, 18]. В случае сетей доставки контента данное топологическое решение также представляется нам актуальным.

Заключение

На фоне стремительного развития социальных сетей, электронной коммерции и растущей персонализации сети Интернет все большая часть предоставляемого пользователям контента создается в режиме реального времени. Пользователям необходимы быстрые, надежные и настраиваемые решения, которые не зависят от браузера, расположения, устройства или сети. Однако добавление новых возможностей зачастую замедляет загрузку страниц и создает неудобства в работе пользователя. Часто доступ к сети Интернет пользователи получают через совместно используемые сети, которые могут быть непредсказуемыми в своей работе. Адаптивная технология потоковой передачи динамично корректирует качество видеопотока на основе доступной пропускной способности.

Стандартная поддержка CDN позволяет кэшировать файлы ближе к пользователям, что ускоряет доставку статических файлов. Тем не менее с развитием динамических веб-приложений кэширование содержимого в граничных расположениях невозможно, так как сервер создает содержимое в ответ на действия пользователей. Ускорить доставку такого содержимого сложнее, чем в традиционном пограничном кэшировании. Для этого требуется комплексное решение, которое точно настроит каждый элемент на протяжении всего пути данных – с момента их создания до доставки.

Таким образом, получено достаточно простое в реализации, быстродействующее и бюджетное решение в виде автоматизированного сервиса. Оно базируется на свободно распространяющемся программном обеспечении. Сервис позволяет сделать контент более доступным для пользователей, что в итоге ведет к увеличению аудитории сайта и повышению лояльности существующих пользователей. Уменьшается время отклика сайта, увеличивается скорость загрузки контента, повышается надежность доступа к сайту. Предложены возможные направления улучшения разработанного решения путем применения подхода с динамическим ускорением сайта и использованием протокола BGP, а также топологического подхода, основанного на применении циркулянтных топологий для горизонтального объединения серверов CDN.

Основные преимущества предложенного решения перед конкурентами: снижение затрат на хранение; ускорение работы сайта не менее чем на 70%; повышение скорости загрузки «тяжелого» контента; снижение затрат на кодирование; снижение нагрузки на вычислительные ресурсы веб-сервера; снижение нагрузки на каналы связи веб-сервера; устойчивость сайта к всплескам посещаемости; повышение доступности сайта для региональных пользователей; повышение отказоустойчивости сайта.

  1. Buyya R., Pathan M., Vakali A. Content Delivery Networks. – Berlin: Springer Science & Business Media, 2008. – 417 p.
  2. Austerberry D. The Technology of Video and Audio Streaming. – London: Taylor & Francis, 2013. – 360 p.
  3. Vakali A., Pallis G. Content Delivery Networks: Status and Trends // IEEE Internet Computing, IEEE Computer Society. – IEEE, 2003. – P. 68-74.
  4. Chen J.-B., Liao S.-J. A Fuzzy-based Decision Approach for Supporting Multimedia Content Request Routing in CDN // Parallel and Distributed Processing with Applications (ISPA): International Symposium. – IEEE, 2010. – P. 46-51.
  5. Cisco: к 2020 году мобильной связью будет пользоваться 70% человечества [Электронный ресурс]. – Режим доступа: https://www.cisco.com/c/ ru_ru/about/press/press-releases/2016/02-04a.html, свободный (дата обращения: 02.02.2018 г.).
  6. Held G. A Practical Guide to Content Delivery Networks Second Edition. – USA: CRC Press, 2010. – 304 p.
  7. Butler T. NGINX Cookbook. – UK: Packt Publishing Ltd, 2017. – 278 p.
  8. Beijnum I. BGP: Building Reliable Networks with the Border Gateway Protocol. – USA: O’Reilly Media, 2002. – 290 p.
  9. Russell J., Cohn R. Http Live Streaming. – Berlin: Book on Demand, 2012. – 94 p.
  10. Cai Y., Magedanz Th., Li M., Xia J., Giannelli C. Mobile Wireless Middleware, Operating Systems, and Applications. – Chicago: Springer, 2010. – 508 p.
  11. Miyauchi Y., Matsumoto N., Yoshida N., Kamiya Y., Shimokawa T. Adaptive content distribution network for live and on-demand streaming. – Santiago: Springer, 2012. – 37 p.
  12. Pathan M., Sitaraman R.K., Robinson D. Advanced Content Delivery, Streaming, and Cloud Services. – USA: John Wiley & Sons, 2014. – 504 p.
  13. Kon F., Kermarrec A.-M. Middleware 2011. – Lisbon: Springer, 2011. – 514 p.
  14. Мур Д. Вторая космическая. Искусство управления и стратегии будущего. – M.: Манн, Иванов и Фербер, 2012. – 240 с.
  15. Wankel C. Streaming Media Delivery in Higher Education: Methods and Outcomes: Methods and Outcomes. – Hershey: IGI Global, 2011. – 492 p.
  16. Монахова Э.А. Структурные и коммуникативные свойства циркулянтных сетей // ПДМ, 2011. – № 3(13). – С. 92-115.
  17. Wang D. Tradeoff study among traffic egression schemes and member allocation optimization for link aggregation groups in integrated switching systems // Computer Networks, 2015. – № 77. – 56-72 p.
  18. Ajwani D., Hackett A., Ali S., Morrison J.P., Kirkland S. Co-optimizing application partitioning and network topology for a reconfigurable interconnect // Journal of Parallel and Distributed Computing, 2016. – № 96. – 12-26 p.

Ключевые слова: CDN, сети доставки контента, адаптивное потоковое вещание, потоковое онлайн-вещание, медиаконтент, мультибитрейт, RTSP, RTMP, HLS.


Organization of adaptive streaming of video using CDN and distributed load balancing using the Nginx web server

Nekrasov G.A., National Research University “Higher School of Economics”, Moscow, Russia, alax-27@mail.ru

Romanov A.Yu., National Research University “Higher School of Economics”, Moscow, Russia

Abstract: The article is devoted to the development of an automated service for the media content delivery network in the organization of adaptive online streaming on the Internet. This organization of broadcasting of video streams allows to automatically adjust the amount of transmitted data per unit of time (further bit rate), changing the quality of the requested media content accordingly. As a result, the quality will be underestimated for those users who use data channels with low bandwidth, and vice versa, for those users who are connected to high-bandwidth communication channels, the content will be provided with the highest possible quality. In this process, the user does not take any part: the client video player itself determines which bitrate will optimally display the content to a specific user in order to avoid buffering the video, but at the same time ensure that it is displayed in the highest possible quality. Switching between bitrates can occur continuously with both a decrease and an increase in bit rate, depending on changes in the quality of the currently available bandwidth. In addition to the adaptive video broadcasting service, the developed service allows you to transcode video streams on the fly. By accessing the RTSP / RTMP stream, the network converts it into RTMP / HLS-multibitre, resulting in the generation of video streams of different quality, supported by both mobile devices and personal computers.

Keywords: CDN, content delivery network, adaptive streaming, streaming online broadcasting, media content, multi-bitrate, RTSP, RTMP, HLS.


1 Исследование осуществлено в рамках Программы фундаментальных исследований НИУ ВШЭ в 2018 году.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru