Статья:

ПОТОКОВОЕ ВЕЩАНИЕ МЕДИАФАЙЛОВ В ОДНОРАНГОВОЙ СЕТИ С ПОМОЩЬЮ WEBRTC

Конференция: XXXVI Студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки»

Секция: 3. Информационные технологии

Выходные данные
Мороз И.Д. ПОТОКОВОЕ ВЕЩАНИЕ МЕДИАФАЙЛОВ В ОДНОРАНГОВОЙ СЕТИ С ПОМОЩЬЮ WEBRTC // Молодежный научный форум: Технические и математические науки: электр. сб. ст. по мат. XXXVI междунар. студ. науч.-практ. конф. № 7(36). URL: https://nauchforum.ru/archive/MNF_tech/7(36).pdf (дата обращения: 18.08.2018)
Лауреаты определены. Конференция завершена
Эта статья набрала 1 голос
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

ПОТОКОВОЕ ВЕЩАНИЕ МЕДИАФАЙЛОВ В ОДНОРАНГОВОЙ СЕТИ С ПОМОЩЬЮ WEBRTC

Мороз Илья Дмитриевич
студент факультета информатики и вычислительной техники Национальный технический университет Украины «Киевский политехнический институт», Украина, г. Киев

Аннотация. В данной статье был проведен обзор стандартов HTML5 и WebRTC и их возможностей для создания систем потокового вещания медиафайлов в одноранговых сетях (P2P, peer-to-peer). Были проанализированы проблемы и предложены пути решения.

 

Введение

На сегодняшний день сервисы VoD (Video on demand, видео по запросу) [3, с. 2], такие как YouTube, генерируют большое количество трафика в сети Интернет, к тому же популярность таких сервисов только возрастает. Поэтому, для уменьшения нагрузок, провайдеры сервисов хранения медиа-файлов все чаще начинают использовать распределенные сети. Вещание в одноранговых сетях является перспективной альтернативой, которая может удовлетворить растущие требования. Стандарты HTML5 и WebRTC предоставляют инструменты, позволяющие браузерам взаимодействовать друг с другом напрямую в режиме реального времени. Тем не менее, создание системы потокового вещания в одноранговых сетях с использованием HTML5 может быть проблематичным. Так, стандарты HTML5 и WebRTC еще окончательно не утверждены, и поэтому браузеры имеют очень слабую поддержку этих технологий, они работают нестабильно и ненадежно.

Осмотр проблемы

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

Существует несколько вариантов реализации такой системы. Одним из них является вариант основанный на технологиях HTML5, WebRTC и BitTorrent.

Стандарт HTML5 (HyperText Markup Language) включает в себя много новшеств и позволяет строить сложные веб-приложения с возможностями параллельной обработки данных, коммуникаций в реальном времени (realtime communication – RTC) и хранения больших объемов данных на клиенте. Все эти возможности доступны через публичные прикладные программные интерфейсы (API), которые браузер вызывает при помощи языка JavaScript [5, с. 10].

WebRTC (Web Real-Time Communication) – это стандарт, который позволяет веб-приложениям устанавливать прямое соединение между двумя браузерами без необходимости передавать данные через веб-сервер [6, с. 2]. Данный стандарт состоит из публичного API и набора протоколов для передачи данных между браузерами. Стандарт WebRTC позволяет коммуникацию между браузерами в реальном времени, используя протокол UDP в паре с протоколом TCP для обычных HTTP-запросов. Этот стандарт определяет три режима и API для коммуникации между браузерами: Peer Connection API для установления соединения между узлами сети [6, с. 7], Media Stream API для потокового видеовещания [6, с. 12] и Data Channel API для передачи других данных [6, с. 8].

BitTorrent – это протокол для обмена файлами в одноранговых сетях, который используется для распространения данных в сети Интернет [4, с. 63]. Для того чтобы отправить или получить файл используется BitTorrent клиент – компьютерная программа, которая поддерживает работу с протоколом BitTorrent [2, с. 39]. Обычно при передаче данных с помощью протокола BitTorrent, файлы разбиваются на частицы, которые передаются между узлами одноранговой сети в случайном порядке. Но для реализации потокового вещания порядок этих частиц является важным, именно поэтому такая система должна также учитывать этот фактор. Другой проблемой является низкая поддержка протокола BitTorrent современными браузерами, поэтому для большинства браузеров необходимо устанавливать специальные расширения для поддержки BitTorrent.

Реализация системы потокового вещания

Для начала процесса публикации видеофайла, пользователь запускает веб-приложение и выбирает видеофайл для загрузки. Этот этап включает в себя создание метаданных файла для трекера (специального веб сервера, который сохраняет ссылки на части файлов с раздачи), и перемещение файла в директорию, доступную для веб-приложения. Частью этапа создания метаданных является генерация криптографического MD5-хеша. HTML5 File API используется для сохранения файла для раздачи [1, с. 15]. Когда процесс раздачи закончен, файл перемещается в постоянное хранилище с помощью IndexedDB API [7, с. 308]. Наконец, после генерации хеша, созданный torrent-файл отправляется для дальнейшего распространения к узлу сети, раздающего файлы.

Когда пользователь запрашивает видео, он должен загрузить файл метаданных (torrent файл) со списком узлов сети, которые в данный момент имеют видеофайл или его фрагменты. После этого приложение начинает загружать фрагменты видеофайла из соответствующих узлов одноранговой сети, используя Data Channel API стандарта WebRTC. После того, как пользователь получает достаточное для воспроизведения количество фрагментов и их успешной проверки на соответствие MD5 хеша, видео начинает воспроизводиться с помощью HTML5 элемента Video [5, с. 110]. Для возможности дальнейшего воспроизведения видео без доступа к сети Интернет, используется специальное HTML5 Filesystem API для сохранения отдельных фрагментов или полного видео в локальный кэш приложения [1, с. 6].

Выделим следующие этапы работы приложения:

1.  Пользователь (узел сети) создает torrent файл, в котором хранятся метаданные, хэши каждого фрагмента видео и загружает его на трекер;

2.  Видео загружается в раздатчик;

3.  . Когда другой пользователь (узел сети) запрашивает данный видеофайл, он сначала скачивает torrent файл с трекера и начинает скачивать отдельные фрагменты видео с раздатчика или с узла, который загрузил видео или с обеих;

4.  После того как фрагменты видео расходятся по сети, каждый узел имеет свои фрагменты; таким образом время скачивания файлов для новых узлов сети минимизируется.

Подробнее этот процесс изображен на рисунке 1.

 

Рисунок 1. Сетевая архитектура для P2P VoD-сервиса

 

Выводы

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

 

Список литературы:
1. Bidelman E. Using the HTML5 Filesystem API / Eric Bidelman., 2011. – (O'Reilly).
2. Fehily C. Cancel Cable: How Internet Pirates Get Free Stuff / Chris Fehily., 2013. – (Questing Vol Press).
3. Jimmy To T. Interactive Video-On-Demand Systems: Resource Management and Scheduling Strategies / T. Jimmy To, B. Hamidzadeh., 2012. – (Springer Science + Business Media, LLC).
4. Kouvatsos D. D. Traffic and Performance Engineering for Heterogeneous Networks / Demetres D. Kouvatsos, 2009. – (River Publishers).
5. Lawson B. Introducing HTML5 / B. Lawson, R. Sharp. – Berkeley, CA, United States, 2011. – (New Riders).
6. Loreto S. Real-Time Communication with WebRTC: Peer-to-Peer in the Browser / S. Loreto, ‎. P. Romano., 2014. – (O'Reilly).
7. Sarris S. HTML5 Unleashed / Simon Sarris., 2013. – (SAMS).