Оригинальный автор (ы) | Джастин Уберти Питер Тэтчер |
---|---|
изначальный выпуск | 2011 |
Стабильный выпуск | 1.0 [1] / 4 мая 2018 г . |
Репозиторий | webrtc |
Написано в | C ++ , [2] JavaScript |
Лицензия | Лицензия BSD |
Интернет сайт | webrtc |
WebRTC ( Web Real-Time Communication ) является свободным, открытым исходным кодом проекта предоставления веб - браузеров и мобильных приложений с в режиме реального времени связи (RTC) с помощью простых интерфейсов прикладного программирования (API). Он позволяет аудио- и видеосвязи работать внутри веб-страниц, обеспечивая прямую одноранговую связь, избавляя от необходимости устанавливать плагины или загружать собственные приложения. [3] Поддерживается Apple , Google , Microsoft , Mozilla и Opera.WebRTC был стандартизирован Консорциумом World Wide Web (W3C) и Инженерной группой Интернета (IETF). [4]
Его миссия состоит в том, чтобы «позволить разрабатывать богатые, высококачественные приложения RTC для браузеров, мобильных платформ и устройств IoT , и позволить им всем обмениваться данными через общий набор протоколов ». [5]
История [ править ]
В мае 2010 года Google купила Global IP Solutions или GIPS, компанию по разработке программного обеспечения для VoIP и видеоконференцсвязи, которая разработала многие компоненты, необходимые для RTC, такие как кодеки и методы эхоподавления. Google предоставил открытый исходный код технологии GIPS и сотрудничал с соответствующими органами по стандартизации в IETF и W3C для обеспечения консенсуса в отрасли. [6] [7] В мае 2011 года Google выпустила проект с открытым исходным кодом для связи в реальном времени через браузер, известный как WebRTC. [8] За этим последовала постоянная работа по стандартизации соответствующих протоколов в IETF [9]и API браузера в W3C. [10]
В мае 2011 года Ericsson Labs построила первую реализацию WebRTC с использованием модифицированной библиотеки WebKit . [11] В октябре 2011 года W3C опубликовал свой первый проект спецификации. [12] Основные вехи WebRTC включают первый кроссбраузерный видеозвонок (февраль 2013 года), первую кроссбраузерную передачу данных (февраль 2014 года), а по состоянию на июль 2014 года Google Hangouts был «своего рода» использованием WebRTC. [13]
Проект API W3C был основан на предварительной работе, проделанной WHATWG . [14] Он назывался ConnectionPeer API, и в Ericsson Labs была создана предварительная реализация концепции . [15] Рабочая группа WebRTC ожидает, что эта спецификация будет существенно развиваться на основе:
- Результаты текущих обменов в группе-компаньоне RTCWEB в IETF [16] для определения набора протоколов, которые вместе с этим документом определяют связь в реальном времени в веб-браузерах. Хотя ни один протокол сигнализации не требуется, SIP через WebSockets ( RFC 7118 ) часто используется частично из-за применимости SIP к большинству предполагаемых сценариев связи, а также из-за доступности программного обеспечения с открытым исходным кодом, такого как JsSIP .
- Проблемы конфиденциальности , возникающие при раскрытии локальных возможностей и локальных потоков
- Технические обсуждения в группе, в частности, по реализации каналов передачи данных [17]
- Опыт, полученный в результате ранних экспериментов
- Отзывы других групп и отдельных лиц
В ноябре 2017 года спецификация WebRTC 1.0 перешла из рабочего проекта в статус кандидата в рекомендации. [18]
В январе 2021 года спецификация WebRTC 1.0 перешла с статуса кандидата в рекомендацию . [4]
Обзор [ править ]
Дизайн [ править ]
Основные компоненты WebRTC включают несколько JavaScript API :
getUserMedia
получает аудио- и видеоматериалы (например, путем доступа к камере и микрофону устройства). [19]RTCPeerConnection
обеспечивает аудио- и видеосвязь между одноранговыми узлами. Он выполняет обработку сигнала , кодек обработку, равный-равному связи, безопасности и пропускной способности управления. [20]RTCDataChannel
позволяет двунаправленную передачу произвольных данных между одноранговыми узлами. Он использует тот же API, что и WebSockets, и имеет очень низкую задержку . [21]
API WebRTC также включает функцию статистики:
getStats
позволяет веб-приложению получать набор статистических данных о сеансах WebRTC. Эти статистические данные описаны в отдельном документе W3C. [22]
В API WebRTC нет положений для сигнализации , то есть обнаружения одноранговых узлов для подключения и определения способов установления соединений между ними. Приложения используют интерактивное установление подключения для подключений и каким-то образом управляют сеансами, возможно, полагаясь на любой из протоколов инициации сеанса , расширяемого обмена сообщениями и протокола присутствия , транспорта телеметрии очереди сообщений , матрицы (протокола) или другого протокола. Сигнализация может зависеть от одного или нескольких серверов. [23] [24]
RFC 7874 требует реализации , чтобы обеспечить PCMA / PCMU ( RFC 3551 ), Telephone событие как DTMF ( RFC 4733 ) и Opus ( RFC 6716 ) аудиокодеки как минимум возможностей. API-интерфейсы PeerConnection, канала данных и браузера для захвата мультимедиа подробно описаны в W3C.
W3C разрабатывает ORTC (Object Real-Time Communications) для WebRTC. [25]
Примеры [ править ]
Хотя изначально WebRTC был разработан для веб-браузеров, в нем есть приложения для небраузерных устройств, включая мобильные платформы и устройства IoT . Примеры включают VoIP- телефонию на основе браузера , также называемую облачными телефонами или веб-телефонами, которые позволяют совершать и принимать звонки из веб-браузера, заменяя требование загрузки и установки программного телефона. [26]
Поддержка [ править ]
WebRTC поддерживают следующие браузеры:
- Настольный ПК
- Microsoft Edge 12+ [27]
- Google Chrome 28+
- Mozilla Firefox 22+ [28]
- Safari 11+ [29]
- Opera 18+ [30]
- Вивальди 1.9+
- Храбрый
- Android
- Google Chrome 28+ (включен по умолчанию с 29)
- Mozilla Firefox 24+ [31]
- Opera Mobile 12+
- Chrome OS
- ОС Firefox
- BlackBerry 10
- iOS
- MobileSafari / WebKit ( iOS 11 +)
- Tizen 3.0
GStreamer напрямую предоставляет бесплатную реализацию WebRTC. [32]
Проблемы [ править ]
В январе 2015 года TorrentFreak сообщил о серьезном недостатке безопасности в браузерах, поддерживающих WebRTC, заявив, что он поставил под угрозу безопасность VPN- туннелей, раскрывая истинный IP-адрес пользователя. [33] Запросы на чтение IP-адреса не видны в консоли разработчика браузера, и они не блокируются большинством надстроек для блокировки рекламы / конфиденциальности / безопасности , что позволяет рекламодателям и другим организациям отслеживать онлайн, несмотря на меры предосторожности [34] (однако uBlock Originнадстройка может решить эту проблему). По состоянию на сентябрь 2019 года этот недостаток WebRTC все еще проявляется в Firefox 69.x и по-прежнему по умолчанию предоставляет доступ к внутреннему IP-адресу пользователя в Интернете. [35]
См. Также [ править ]
- Глобальные IP-решения (GIPS)
- Транспортный протокол в реальном времени (RTP)
- Протокол описания сеанса (SDP)
- WebRTC шлюз
Ссылки [ править ]
- ^ «WebRTC 1.0: обмен данными между браузерами в реальном времени» . Консорциум World Wide Web . 27 сентября 2018 . Проверено 25 марта 2019 .
- ^ "Src / webrtc - Git в Google" .
- ^ Как WebRTC революционизирует телефонию . Blogs.trilogy-lte.com (21.02.2014). Проверено 11 апреля 2014.
- ^ a b «Веб-коммуникация в реальном времени (WebRTC) преобразует коммуникационный ландшафт, поскольку он становится рекомендацией Консорциума всемирной паутины (W3C) и стандартами Инженерной группы Интернета (IETF)» . Консорциум World Wide Web . 26 января 2021 . Дата обращения 27 января 2021 .
- ^ "WebRTC" . WebRTC . Архивировано из оригинала 9 января 2018 года . Проверено 6 февраля 2018 .
- ^ "Являются ли компоненты WebRTC результатом приобретения Google Global IP Solutions?" . WebRTC . Проверено 6 февраля 2018 .
- ^ Wauters, Робин (18 мая 2010). «Google предлагает $ 68,2 млн наличными для Global IP Solutions» . TechCrunch . Проверено 6 февраля 2018 .
- ^ Харальд Альвестранд (2011-05-31). «Выпуск Google исходного кода WebRTC» . [email protected] . Проверено 12 сентября 2012 .
- ^ Хартия рабочей группы по общению в веб-браузерах в реальном времени (rtcweb)
- ^ «WebRTC 1.0: обмен данными между браузерами в реальном времени» . W3.org . Проверено 12 сентября 2012 .
- ^ Стефан Хоканссон; Стефан Алунд (26 мая 2011 г.). «За пределами HTML5: поэкспериментируйте с коммуникацией в реальном времени в браузере» . Блог Ericsson Research . Проверено 6 февраля 2018 .
- ^ «WebRTC 1.0: обмен данными между браузерами в реальном времени (рабочий проект W3C, 27 октября 2011 г.)» . Консорциум World Wide Web . 27 октября 2011 . Проверено 6 февраля 2018 .
- ^ Новак, Шимон. «WebRTC: гораздо больше, чем видеоконференцсвязь» . GitHub . Проверено 6 февраля 2018 .
- ^ «Введение - Стандарт HTML» . Whatwg.org . Проверено 12 сентября 2012 .
- ^ «За пределами HTML5: одноранговое разговорное видео» . Labs.ericsson.com . Проверено 12 сентября 2012 .
- ^ «Страницы состояния Rtcweb» . Tools.ietf.org . Проверено 12 сентября 2012 .
- ^ "draft-jesup-rtcweb-data-protocol-00 - протокол канала данных WebRTC" . Tools.ietf.org . Проверено 12 сентября 2012 .
- ^ «WebRTC 1.0: обмен данными между браузерами в реальном времени (рекомендация кандидата W3C 2 ноября 2017 г.)» . 2 ноября 2017.
- ^ «Захват мультимедиа и потоки: getUserMedia» . W3C. 2013-09-03 . Проверено 15 января 2014 .
- ^ «WebRTC: интерфейс RTCPeerConnection» . W3C. 2013-09-10 . Проверено 15 января 2014 .
- ^ "WebRTC: RTCDataChannel" . W3C. 2013-09-10 . Проверено 15 января 2014 .
- ^ "Идентификаторы API статистики WebRTC" . W3C. 2014-09-29.
- ^ Tsahi Левент-Леви (13 апреля 2020). «Сервер WebRTC: что это такое?» . BlogGeek.me .
- ^ Tsahi Левент-Леви (13 ноября 2014). «Matrix.org и WebRTC: интервью с Мэтью Ходжсоном» . BlogGeek.me .
- ^ "Группа сообщества W3C ORTC (Object Real-time Communications)" .
- ^ «Поймай рыбу-вавилонку: ирландская телекоммуникационная компания разрабатывает новый вид облачного телефона» . Ноябрь 2017 г.
- ^ «ORTC API теперь доступен в Microsoft Edge» . Microsoft. 2015-09-18.
- ^ Примечания к Firefox - Рабочий стол . Mozilla.org (25 июня 2013 г.). Проверено 11 апреля 2014.
- ^ "Safari 11.0" . Apple , Inc . Проверено 6 июня +2017 .
- ^ Opera News . blogs.opera.com (2013-11-19). Проверено 17 сентября 2015.
- ^ Примечания к Firefox - Рабочий стол . Mozilla.org (17 сентября 2013 г.). Проверено 4 августа 2014.
- ^ «Примечания к выпуску GStreamer 1.14» . gstreamer.freedesktop.org . Проверено 19 декабря 2019 . с версии 1.14
- ^ Огромная утечка брешей в безопасности Реальные IP-адреса пользователей VPN TorrentFreak.com (30.01.2015). Проверено 21 февраля 2015.
- ^ Запросы IP-адреса STUN для WebRTC, получено 21 февраля 2015 г.
- ↑ Raymond Hill (26 марта 2016 г.). «Предотвратить утечку через WebRTC локального IP-адреса» . Документация по uBlock Origin . Дата обращения 1 сентября 2016 .
Дальнейшее чтение [ править ]
- Пруст, С., изд. (Май 2016). Дополнительные аудиокодеки WebRTC для взаимодействия . IETF . DOI : 10,17487 / RFC7875 . RFC 7875 . Проверено 12 октября 2016 .
- Валин, JM; Бран, К. (май 2016 г.). Аудиокодек WebRTC и требования к обработке . IETF . DOI : 10,17487 / RFC7874 . RFC 7874 . Проверено 12 октября 2016 .
- Роуч, AB (март 2016 г.). Требования к обработке видео и кодекам WebRTC . IETF . DOI : 10,17487 / RFC7742 . RFC 7742 . Проверено 12 октября 2016 .
- Perumal, M .; Крыло, Д .; Ravindranath, R .; Редди, Т .; Томсон, М. (октябрь 2015 г.). Утилиты обхода сеанса для использования NAT (STUN) для обеспечения свежести согласия . IETF . DOI : 10,17487 / RFC7675 . RFC 7675 . Проверено 12 октября 2016 .
- Holmberg, C .; Hakansson, S .; Эрикссон, Г. (март 2015 г.). Сценарии и требования для использования веб-коммуникаций в реальном времени . IETF . DOI : 10,17487 / RFC7478 . RFC 7478 . Проверено 12 октября 2016 .
Внешние ссылки [ править ]
- Официальный веб-сайт
- Рабочая группа W3C по веб-коммуникациям в реальном времени
- Рабочая группа IETF в режиме реального времени в веб-браузерах (rtcweb)
- Демо-приложение для видеочата на базе WebRTC
- Автономная реализация каналов данных WebRTC с открытым исходным кодом