stringtranslate.com

ВебRTC

WebRTC ( Web Real-Time Communication ) — это бесплатный проект с открытым исходным кодом , обеспечивающий веб-браузерам и мобильным приложениям связь в реальном времени (RTC) через интерфейсы прикладного программирования (API). Он позволяет аудио- и видеосвязи работать внутри веб-страниц, обеспечивая прямую одноранговую связь, устраняя необходимость установки плагинов или загрузки собственных приложений. [3]

Спецификации WebRTC, поддерживаемые Apple , Google , Microsoft , Mozilla и Opera , были опубликованы Консорциумом Всемирной паутины (W3C) и Инженерной группой Интернета (IETF). [4] [5]

Согласно веб-сайту webrtc.org, цель проекта — «позволить разрабатывать многофункциональные высококачественные приложения RTC для браузера, мобильных платформ и устройств IoT и позволить им всем взаимодействовать через общий набор протоколов» . ". [6]

История

В мае 2010 года Google купила Global IP Solutions или GIPS, компанию, занимающуюся программным обеспечением для VoIP и видеоконференций , которая разработала множество компонентов, необходимых для RTC, таких как кодеки и методы эхоподавления. Google открыла исходный код технологии GIPS и сотрудничала с соответствующими органами по стандартизации IETF и W3C , чтобы обеспечить консенсус в отрасли. [7] [8] В мае 2011 года Google выпустила проект с открытым исходным кодом для общения в реальном времени на основе браузера, известный как WebRTC. [9] За этим последовала продолжающаяся работа по стандартизации соответствующих протоколов в IETF [10] и API-интерфейсов браузера в W3C. [11]

В январе 2011 года Ericsson Labs создала первую реализацию WebRTC с использованием модифицированной библиотеки WebKit . [12] [13] В октябре 2011 года W3C опубликовал первый проект спецификации. [14] Вехи WebRTC включают первый кросс-браузерный видеовызов (февраль 2013 г.), первую кросс-браузерную передачу данных (февраль 2014 г.), а по состоянию на июль 2014 года Google Hangouts «своего рода» использовал WebRTC. [15]

Проект API W3C был основан на предварительной работе, проделанной в WHATWG . [16] Он назывался ConnectionPeer API, и в Ericsson Labs была создана предварительная реализация концепции. [12] Рабочая группа WebRTC ожидает, что эта спецификация будет значительно развиваться на основе:

В ноябре 2017 года спецификация WebRTC 1.0 перешла из рабочего проекта в кандидатскую рекомендацию. [20]

В январе 2021 года спецификация WebRTC 1.0 перешла из категории «Кандидат в рекомендацию» в « Рекомендация» . [4]

Дизайн

Основные компоненты WebRTC включают несколько API JavaScript :

API WebRTC также включает функцию статистики:

API WebRTC не включает в себя никаких средств для сигнализации , то есть обнаружения одноранговых узлов для подключения и определения способа установления соединений между ними. Приложения используют Interactive Connectivity Setting для соединений и отвечают за управление сеансами, возможно, полагаясь на любой из протоколов инициации сеанса , расширяемого протокола обмена сообщениями и присутствия ( XMPP ), транспорта телеметрии очереди сообщений , Matrix или другого протокола. Сигнализация может зависеть от одного или нескольких серверов. [26] [27]

RFC  7478 требует реализации, обеспечивающей аудиокодеки PCMA / PCMU ( RFC  3551), Telephone Event как DTMF ( RFC  4733) и Opus ( RFC  6716) в качестве минимальных возможностей. API-интерфейсы браузера PeerConnection, канала данных и захвата мультимедиа подробно описаны в спецификации W3C.

W3C разрабатывает ORTC (Объектные коммуникации в реальном времени) для WebRTC. [28]

Приложения

WebRTC позволяет браузерам передавать файлы напрямую друг другу, уменьшая или полностью устраняя необходимость в хостинге файлов на стороне сервера. WebTorrent использует транспорт WebRTC для обеспечения однорангового обмена файлами с использованием протокола BitTorrent в браузере. [29] Некоторые сайты для обмена файлами используют его, чтобы пользователи могли отправлять файлы напрямую друг другу в своих браузерах, хотя для этого пользователю, загрузившему файл, необходимо держать вкладку открытой до тех пор, пока файл не будет загружен. [30] [31] [32] Некоторые сети CDN , такие как принадлежащий Microsoft Peer5, используют полосу пропускания клиента для загрузки мультимедиа на другие подключенные узлы, позволяя каждому узлу действовать как пограничный сервер. [33] [34]

Хотя изначально WebRTC был разработан для веб-браузеров, у него есть приложения для небраузерных устройств, включая мобильные платформы и устройства IoT . Примеры включают VoIP - телефонию на основе браузера, также называемую облачными телефонами или веб-телефонами, которая позволяет совершать и принимать вызовы из веб-браузера, заменяя необходимость загрузки и установки программного телефона. [35]

Поддерживать

WebRTC поддерживается следующими браузерами (неполный список; указана самая старая поддерживаемая версия):

GStreamer напрямую предоставляет бесплатную реализацию WebRTC. [41]

Поддержка кодеков во всех браузерах

WebRTC устанавливает стандартный набор кодеков, которые должны поддерживать все совместимые браузеры. Некоторые браузеры также могут поддерживать другие кодеки. [42]

Уязвимость

В январе 2017 года TorrentFreak сообщил о серьёзной уязвимости в безопасности браузеров, поддерживающих WebRTC, которая поставила под угрозу безопасность VPN- туннелей, раскрывая истинный IP-адрес пользователя . [44] Запросы на чтение IP-адреса не видны в консоли разработчика браузера, и они не блокируются большинством надстроек по блокировке рекламы , конфиденциальности и безопасности , что позволяет отслеживать их в Интернете, несмотря на меры предосторожности. [45]

Сообщалось, что причиной утечки адреса является не ошибка, которую можно исправить, а основа работы WebRTC; однако есть несколько решений, позволяющих смягчить проблему. Утечку WebRTC можно проверить, и решения предлагаются для большинства браузеров. [46] WebRTC можно отключить, если это не требуется, в большинстве браузеров. Надстройка uBlock Origin может решить эту проблему (поскольку некоторые браузеры теперь решают эту проблему сами, начиная с uBlock Origin v1.38, эта опция отключена в этих браузерах [47] ).

Рекомендации

  1. ^ «WebRTC 1.0: связь между браузерами в реальном времени» . Консорциум Всемирной паутины . 27 сентября 2018 г. Архивировано из оригинала 7 апреля 2019 г. . Проверено 25 марта 2019 г.
  2. ^ «Src/webrtc — Git в Google» . Архивировано из оригинала 23 апреля 2018 г. Проверено 22 апреля 2018 г.
  3. ^ Как WebRTC совершает революцию в телефонии. Архивировано 7 апреля 2014 г. в Wayback Machine . Blogs.trilogy-lte.com (21 февраля 2014 г.). Проверено 11 апреля 2014 г.
  4. ^ ab «Веб-коммуникации в реальном времени (WebRTC) меняют коммуникационную среду, поскольку они становятся стандартами Рекомендации Консорциума Всемирной паутины (W3C) и Рабочей группы по проектированию Интернета (IETF)» . Консорциум Всемирной паутины . 26 января 2021 г. Архивировано из оригинала 27 июля 2022 г. Проверено 27 января 2021 г.
  5. ^ "Страницы состояния Rtcweb" . www.tools.ietf.org . Архивировано из оригинала 20 апреля 2020 г. Проверено 18 февраля 2021 г.
  6. Ссылки _ ВебРТК . Архивировано из оригинала 28 января 2018 года . Проверено 6 февраля 2018 г. .{{cite web}}: CS1 maint: bot: исходный статус URL неизвестен ( ссылка )
  7. ^ «Являются ли компоненты WebRTC результатом приобретения Google компании Global IP Solutions?». ВебРТК . Архивировано из оригинала 7 июня 2011 года . Проверено 6 февраля 2018 г. .
  8. Воутерс, Робин (18 мая 2010 г.). «Google делает предложение на сумму 68,2 миллиона долларов за Global IP Solutions». ТехКранч . Архивировано из оригинала 7 февраля 2018 года . Проверено 6 февраля 2018 г. .
  9. ^ Харальд Альвестранд (31 мая 2011 г.). «Выпуск исходного кода WebRTC от Google». [email protected]. Архивировано из оригинала 27 февраля 2013 г. Проверено 12 сентября 2012 г.
  10. ^ «Устав рабочей группы по коммуникации в реальном времени в WEB-браузерах (rtcweb)» . Архивировано из оригинала 11 ноября 2013 г. Проверено 11 ноября 2013 г.
  11. ^ «WebRTC 1.0: связь между браузерами в реальном времени» . W3.org. Архивировано из оригинала 5 сентября 2012 г. Проверено 12 сентября 2012 г.
  12. ^ ab «За пределами HTML5: одноранговое разговорное видео» . Блог Ericsson Research . Labs.ericsson.com. 25 января 2011 года. Архивировано из оригинала 25 февраля 2017 года . Проверено 21 марта 2021 г.
  13. ^ Стефан Хоканссон; Стефан Олунд (26 мая 2011 г.). «За пределами HTML5: экспериментируйте с общением в реальном времени в браузере». Блог Ericsson Research . Архивировано из оригинала 7 февраля 2018 года . Проверено 6 февраля 2018 г. .
  14. ^ «WebRTC 1.0: Связь между браузерами в реальном времени (рабочий проект W3C, 27 октября 2011 г.)» . Консорциум Всемирной паутины . 27 октября 2011 года. Архивировано из оригинала 29 октября 2011 года . Проверено 6 февраля 2018 г. .
  15. ^ Новак, Шимон. «WebRTC: гораздо больше, чем видеоконференции». Гитхаб . Архивировано из оригинала 7 февраля 2018 года . Проверено 6 февраля 2018 г. .
  16. ^ «Введение — Стандарт HTML». Whatwg.org. Архивировано из оригинала 16 августа 2014 г. Проверено 12 сентября 2012 г.
  17. ^ "Страницы состояния Rtcweb" . Tools.ietf.org. Архивировано из оригинала 5 сентября 2012 г. Проверено 12 сентября 2012 г.
  18. ^ SIP-транкинг, ОСАГО (18 июля 2023 г.). «SIP-транкинг VoIP с WebRTC SDK». Лунные Технолабы . Архивировано из оригинала 5 августа 2023 года . Проверено 18 июля 2023 г.
  19. ^ "draft-jesup-rtcweb-data-protocol-00 - Протокол канала данных WebRTC" . Tools.ietf.org. Архивировано из оригинала 31 октября 2012 г. Проверено 12 сентября 2012 г.
  20. ^ «WebRTC 1.0: связь между браузерами в реальном времени (кандидатская рекомендация W3C от 2 ноября 2017 г.)» . 2 ноября 2017 года. Архивировано из оригинала 2 ноября 2017 года . Проверено 25 марта 2019 г.
  21. ^ «Захват мультимедиа и потоки: getUserMedia» . W3C. 03 сентября 2013 г. Архивировано из оригинала 2 января 2014 г. Проверено 15 января 2014 г.
  22. ^ «WebRTC: Интерфейс RTCPeerConnection» . W3C. 10 сентября 2013 г. Архивировано из оригинала 5 сентября 2012 г. Проверено 15 января 2014 г.
  23. ^ «RFC 8831 - Каналы данных WebRTC» . datatracker.ietf.org . Архивировано из оригинала 10 марта 2022 г. Проверено 10 марта 2022 г.
  24. ^ "WebRTC: RTCDataChannel" . W3C. 10 сентября 2013 г. Архивировано из оригинала 5 сентября 2012 г. Проверено 15 января 2014 г.
  25. ^ «Идентификаторы API статистики WebRTC» . W3C. 29 сентября 2014 г. Архивировано из оригинала 15 июля 2017 г. Проверено 2 декабря 2017 г.
  26. Цахи Левент-Леви (13 апреля 2020 г.). «WebRTC-сервер: что это такое?». BlogGeek.me . Архивировано из оригинала 11 мая 2020 года . Проверено 10 июня 2020 г.
  27. Цахи Левент-Леви (13 ноября 2014 г.). «Matrix.org и WebRTC: интервью с Мэтью Ходжсоном». BlogGeek.me . Архивировано из оригинала 25 февраля 2021 года . Проверено 10 июня 2020 г.
  28. ^ «Группа сообщества W3C ORTC (Объектная связь в реальном времени)» . Архивировано из оригинала 29 октября 2014 г. Проверено 29 октября 2014 г.
  29. ^ «Часто задаваемые вопросы по WebTorrent» . webtorrent.io . Архивировано из оригинала 11 марта 2022 г. Проверено 10 марта 2022 г.
  30. ^ «Как передавать файлы между Linux, Android и iOS с помощью Snapdrop». МУО . 04.08.2021. Архивировано из оригинала 29 января 2022 г. Проверено 10 марта 2022 г.
  31. ^ Пинола, Мелани (7 апреля 2014 г.). «Самый простой и быстрый способ передачи файлов между устройствами в одной сети». Компьютерный мир . Архивировано из оригинала 28 июня 2022 г. Проверено 10 марта 2022 г.
  32. ^ «FilePizza: делитесь файлами без посредников в вашем браузере - gHacks Tech News» . Новости технологий gHacks . 12 мая 2015 г. Архивировано из оригинала 23 января 2022 г. Проверено 10 марта 2022 г.
  33. ^ Фоли, Мэри Джо. «Microsoft приобретает Peer5, чтобы дополнить потоковое видео Teams» . ЗДНет . Архивировано из оригинала 10 марта 2022 г. Проверено 10 марта 2022 г.
  34. ^ «Обзор — Документы Peer5 P2P» . docs.peer5.com . Архивировано из оригинала 16 марта 2022 г. Проверено 10 марта 2022 г.
  35. ^ «Поймай бабелфиша: ирландская телекоммуникационная компания разрабатывает новый вид облачного телефона» . Ноябрь 2017 г. Архивировано из оригинала 1 ноября 2017 г. Проверено 20 ноября 2017 г.
  36. ^ «ORTC API теперь доступен в Microsoft Edge». Майкрософт. 18 сентября 2015 г. Архивировано из оригинала 9 октября 2015 г. Проверено 20 сентября 2015 г.
  37. ^ Заметки Firefox — рабочий стол. Архивировано 21 августа 2014 г. на Wayback Machine . Mozilla.org (25 июня 2013 г.). Проверено 11 апреля 2014 г.
  38. ^ «Сафари 11.0». Apple Inc. Архивировано из оригинала 14 ноября 2017 года . Проверено 6 июня 2017 г.
  39. Opera News. Архивировано 7 сентября 2015 г. в Wayback Machine . blogs.opera.com (19 ноября 2013 г.). Проверено 17 сентября 2015 г.
  40. ^ Заметки Firefox — рабочий стол. Архивировано 1 апреля 2021 г. на Wayback Machine . Mozilla.org (17 сентября 2013 г.). Проверено 4 августа 2014 г.
  41. ^ «Примечания к выпуску GStreamer 1.14» . gstreamer.freedesktop.org . Архивировано из оригинала 20 марта 2018 г. Проверено 19 декабря 2019 г.начиная с версии 1.15
  42. ^ «Кодеки, используемые WebRTC - Технологии веб-медиа | MDN» . http://developer.mozilla.org . Архивировано из оригинала 27 июля 2021 г. Проверено 29 июля 2021 г.
  43. ^ Фаблет, Юэнн (12 марта 2019 г.). «На пути к WebRTC 1.0, включая VP8». Вебкит . Архивировано из оригинала 29 июля 2021 г. Проверено 29 июля 2021 г.
  44. ^ Огромная ошибка безопасности приводит к утечке реальных IP-адресов пользователей VPN. Архивировано 8 января 2021 г. на Wayback Machine TorrentFreak.com (30 января 2015 г.). Проверено 21 февраля 2015 г.
  45. ^ Запросы IP-адреса STUN для WebRTC. Архивировано 18 февраля 2015 г. на Wayback Machine. Получено 21 февраля 2015 г.
  46. Тиммерман, Кристал (28 февраля 2022 г.). «WebRTC сливает реальные IP-адреса (даже с VPN)». IPVanish . Архивировано из оригинала 13 августа 2022 года . Проверено 12 августа 2022 г.
  47. Рэймонд Хилл (17 сентября 2021 г.). «Предотвратить утечку локального IP-адреса через WebRTC». Документация uBlock Origin . Архивировано из оригинала 21 февраля 2016 года . Проверено 18 декабря 2021 г.

дальнейшее чтение

Внешние ссылки