WebRTC

WebRTC — что это такое?

Web Real-Time Communications, в переводе «веб-коммуникации в реальном времени», — это технология с открытым исходным кодом, обеспечивающая возможность голосовой, текстовой и видеосвязи в режиме реального времени по IP-сети между веб-браузерами устройств.

WebRTC предоставляет разработчикам программного обеспечения интерфейсы прикладного программирования (API), написанные на JavaScript. Разработчики используют эти API для создания одноранговой (P2P, Peer-to-Peer) связи между интернет-браузерами или приложениями, не беспокоясь о совместимости и поддержке обмена медиаконтентом.

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

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

WebRTC встроена в каждый современный веб-браузер и является медиадвижком, использующим JavaScript, API и язык гипертекстовой разметки HTML (HyperText Markup Language) для передачи данных.

До WebRTC, конечно, были другие средства передачи медиаданных, но раньше для создания таких программ чаще всего использовали C/C++, что влекло за собой длительные циклы разработки и более высокие затраты.

С появлением WebRTC исчезла потребность писать код на C/C++, так как эта технология поставляется со слоем Javascript API сверху и её можно сразу же использовать в браузере. Это значительно упрощает разработку и интеграцию коммуникаций в реальном времени в любом месте.

Внутри WebRTC по-прежнему в основном реализуется с использованием C/C++, но большинству разработчиков, использующих эту технологию, не нужно будет углубляться в эти слои, чтобы разрабатывать свои приложения.

WebRTC сегодня доступна во всех современных браузерах — Google Chrome, Mozilla Firefox, Apple Safari и Microsoft Edge. Вы также можете интегрировать технологию в приложение по API без необходимости использования браузера.

API WebRTC выполняют несколько ключевых функций:

  • Двунаправленная передача данных по IP-соединению
  • Запись видео-, аудио- и текстовых сообщений
  • Инициирование, мониторинг и прекращение P2P-соединений между устройствами через браузеры

В большинстве случаев WebRTC соединяет пользователей с помощью P2P-коммуникаций, но бывают ситуации, когда пользователи находятся в сетях, не имеющих внешних публичных IP-адресов. Тогда роутер использует механизм NAT для доступа к внешней сети: он подменяет адреса в пакетах – адрес источника на свой, в случае, если пакет идет во внешнюю сеть, и адрес приемника на адрес узла во внутренней сети, если пакет пришел из внешней сети.

Чтобы обойти NAT и доставлять данные напрямую между узлами в разных сетях, технология WebRTC работает с использованием протокола ICE (Internet Communications Engine) и серверов Session Traversal Utilities (STUN) и Traversal Using Relays (TURN). STUN сервер позволяет создавать необходимые записи адресов в таблице NAT, а TURN сервер обобщает STUN механизм и делает его работающим в любых случаях.

Для чего используется WebRTC?

Существует четыре основных сферы применения технологии:

  1. Аудио- и видеосвязь

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

  1. Прямая трансляция

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

  1. Передача данных

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

  1. Обмен конфиденциальными данными

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

Сценарии использования WebRTC

Целью технологии является облегчение P2P-коммуникации в режиме реального времени через Интернет, что может быть полезно в следующих случаях:

  • Организация видеочатов и конференций на платформах видеозвонков, таких как Zoom, Microsoft Teams, Slack или Google Meet.
  • В постпандемийное время WebRTC все активнее используется в телемедицине, например, для проведения виртуальных приёмов пациентов через веб-браузер.
  • В области интернета вещей для связи между браузером и камерами безопасности или для обмена данными между умными устройствами.
  • Для передачи мультимедиа в реальном времени, например, в онлайн-играх.
  • В онлайн-образовании для обеспечения связи между преподавателями и студентами во время вебинаров.
  • Для размещения виджета набора номера прямо на сайте компании, при этом вся информация о звонках будет стекаться в СRM-систему.

Каковы плюсы и минусы WebRTC?

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

К плюсам использования относятся:

  • Устранение большей части ручной работы по интеграции в приложения
  • Помогает регулировать качество связи, пропускную способность и поток трафика при изменении условий сети
  • Поддерживается большинством основных веб-браузеров
  • Работает на любой операционной системе, если браузер поддерживает WebRTC
  • Не требует подключения сторонних компонентов или плагинов
  • Устанавливается бесплатно как программное обеспечение с открытым исходным кодом

Недостатки WebRTC включают в себя:

  • Необходимость устанавливать P2P-соединение с браузером для каждого пользователя, что может снизить пропускную способность интернет-канала.
  • Могут требоваться мощные сервера, что влечёт за собой высокие расходы на обслуживание.
  • Нет чётко определённых стандартов безопасности и конфиденциальности, их регламентация полностью оставлена на откуп внутренним IT-отделам компаний, которые используют эту технологию в своей работе.
  • Не существует окончательных стандартов качества обслуживания (QoS), что означает, что качество видео- и аудиосвязи, установленной с помощью этой технологии, может быть нестабильным.

Безопасно ли использовать WebRTC?

Каждый программный компонент технологии зашифрован, и её интеграция по API требует происхождения через безопасный протокол передачи гипертекста (HTTPS, HyperText Transfer Protocol Secure) или локального хоста.

Тем не менее, всё еще существуют открытые вопросы безопасности, которые должны учитываться разработчиками, использующими технологию. Методы обработки сигналов или обмена метаданными для WebRTC не стандартизированы. Это означает, что разработчики должны сами решить, какие протоколы безопасности использовать, и убедиться, что технология поддерживает выбранные ими протоколы.

Заключение

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

Корпоративный блог MCN Telecom