WebRTC

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

Метод связи WebRTC - P2P . P2P - это сокращение от «Peer to Peer» и значит что терминалы обмениваются данными напрямую друг с другом, минуя сервер. Однако в веб-конференцях, с большим колличеством участников, P2P увеличивает нагрузку и ухудшает качество, поэтому используется метод клиент-сервер, который может решать проблемы с линией, отправляя и получая данные через сервер. Похоже, что это было сделано.

Преимущества WebRTC

WebRTC обладает рядом значительных преимуществ:

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

  • Не требуется установка дополнительных приложений. WebRTC - это технология, которая может быть реализована в браузере. Он отлично работает во всех основных браузерах, таких как Chrome, Firefox, Safari и Edge.

  • Минимальная задержка. WebRTC - самая быстрая из доступных технологий. Задержка менее 0,5 сек достигается за счёт возможности передавать данные без прохождения через сервер. Обычная односторонняя связь использует протокол TCP. В этом протоколе передача данных осуществляется через сервер: Поток идёт от клиента на сервер -> сервер подтверждает что вторая сторона его получила. Данные передаются путём постоянного повторения этих шагов. WebRTC же, напротив, использует протокол UDP. В отличие от TCP он отправляет данные напрямую от клиента к клиенту, и не требует никакой обработки для начала или завершения коммуникации.

  • Высокий уровень безопасности: все соединения защищены и зашифрованы согласно протоколам DTLS и SRTP. При этом WebRTC работает только по протоколу HTTPS, а использующий технологию сайт должен быть подписан сертификатом.

  • Открытый исходный код — можно внедрить в свой продукт или сервис.

Недостатки WebRTC

Хоть WebRTC и имеет множество значимых преимуществ, но в некоторых случаях выгоднее использовать TCP-связь. Давайте разберём в каких:

  • WebRTC использует UDP в качестве протокола. Это упрощает общение, но снижает надёжность с точки зрения безопасности. Как упоминалось выше, TCP представляет собой серию шагов от момента, когда клиент начинает подключаться к серверу, до момента, когда другая сторона подтверждает, что сигнал был получен. Другими словами, доступность гарантируется возможностью каждый раз подтверждать, получила ли другая сторона данные. C другой стороны, UDP, который отправляет данные беспрерывно, не может подтвердить, действительно ли другая сторона их получила.

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

  • WebRTC определяет реальные IP-адреса пользователей. При этом сохранить анонимность не поможет ни прокси, ни использование сети Tor. Скрыть IP-адрес можно с помощью различных VPN сервисов, а также при использовании TURN-сервера.

Популярность

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

Посмотреть на WebRTC в действии