Web Real Time Communications

Веб-связь в режиме реального времени

Как работает WebRTC

WebRTC (Web Real Time Communications) — это стандарт, который описывает передачу потоковых аудиоданных, видеоданных и контента между браузерами (без установки плагинов или иных расширений) или другими поддерживающими его приложениями в режиме реального времени. Данная технология позволяет превратить браузер в оконечный терминал видеоконференцсвязи. Чтобы начать общение, достаточно просто открыть веб-страницу конференции.

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

1.               Пользователь открывает страницу, содержащую WebRTC контент.

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

3.               В браузере, инициирующем соединение, формируется SDP-пакет. По сути это текстовый файл, содержащий всю необходимую информацию о параметрах соединения. Например, что будет передаваться (звук, видео, данные), с помощью каких кодеков, какие параметры поддерживаются браузером и т. д.

4.               В зависимости от реализации технологии, инициатор соединения передаёт этот пакет другим участникам. Зачастую для этого используется сигнальный сервер и WebSocket протокол.

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

6.               В зависимости от реализации, параллельно с предыдущими шагами происходит анализ состояния подключения к сети. Клиентам передаётся адрес STUN-сервера, который используется, чтобы узнать внешний IP-адрес устройства. Он сравнивается с внутренним IP-адресом для того, чтобы определить используется ли NAT в данном подключении и, если да, то как маршрутизируются UDP-пакеты. В более сложных случаях (например, когда используется двойной NAT), применяются TURN-сервера. Они, по сути, являются ретрансляторами, превращая соединение клиент-клиент (P2P) в клиент-сервер-клиент.

7.               Если все шаги пройдены успешно, то соединение устанавливается. Периодически вызывается событие onicecandidate, которое передаёт информацию об IP-адресах, настройках NAT, попытках подключения между клиентами.

Преимущества и недостатки стандарта

У WebRTC есть ряд преимуществ: не требуется установка ПО; высокое качество связи благодаря: использованию современных видео- и аудиокодеков; автоматическому подстраиванию качества потока под условия соединения; встроенной системе эхо- и шумоподавления; высокий уровень безопасности.

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

Популярность технологии

На сегодняшний день WebRTC второй по популярности после проприетарного протокола Zoom протокол видеосвязи и опережает все остальные стандартные (H.323 и SIP) и проприетарные (Microsoft Teams и Cisco Webex) протоколы.

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

Использование в специализированных решениях

Использование различных JavaScript библиотек и API облачных сервисов с поддержкой WebRTC позволяет легко добавить поддержку видеосвязи в любые веб-проекты. Ранее для передачи данных в реальном времени разработчикам приходилось изучать принципы работы протоколов и использовать наработки других компаний, которые чаще всего требовали дополнительного лицензирования, что увеличивало расходы. Уже сейчас WebRTC активно используется для организации видео-контакт-центровпроведения вебинаров и т. п.

 

Список литературы

1.               WebRTC – Что это и как работает? [Электронный ресурс]. – Режим доступа: https://trueconf.ru/webrtc.html

2.               WebRTC API – Интерфейсы Web API [Электронный ресурс]. – Режим доступа: https://developer.mozilla.org/ru/docs/Web/API/WebRTC_API

3.               Пьетро Романо, Салваторе Лорето. Коммуникации реального времени: проблемы, достижения, стандарты // Открытые системы.СУБД.  —  2012.  —  № 9.  —  С. 50–53. URL:  http://www.osp.ru/os/2012/09/13032514 (дата обращения 18.06.2014).