Почему WebRTC|Прошлое и настоящее

алгоритм
Почему WebRTC|Прошлое и настоящее

предисловие

В последние годы приложения для аудио- и видеосвязи в реальном времени продемонстрировали тенденцию к взрывному росту. За этими технологиями связи в реальном времени стоит упомянуть технологию WebRTC.

В январе этого года WebRTC был опубликован в качестве официального стандарта W3C и IETF. Согласно отчету исследовательской компании GrandViewReseach, ожидается, что мировой рынок WebRTC достигнет 21,023 млрд долларов США в 2025 году, а совокупный годовой темп роста за 5 лет составит 43,6% по сравнению с рынком в 2,3 млрд долларов США в 2019 году.

В этой серии материалов мы обсудим с вами, почему разработчики и предприятия предпочитают WebRTC? Как будет развиваться WebRTC в будущем? А как Агора ведет вторичную разработку на базе WebRTC, и как будет поддерживать версию WebRTC NV?

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

Если мы вернемся на 10 лет назад, то есть когда 4G вот-вот коммерциализируется, почти все СМИ и технологии подчеркивают, что 4G позволяет смотреть видео высокой четкости, но большинство из них сосредоточено на обсуждении того, насколько удобно смотреть видео на мобильные телефоны.Люди предсказывали полный взрыв коротких видеороликов;большинство людей знали, что скорость загрузки 4G может быть использована для живого видео, но идея в то время была больше применима к профессиональной новостной сфере.Идея видеоконференцсвязи также в основном остается на потребностях многонационального офиса, но я не ожидал, что только в прошлом году онлайн-офис стал повседневной жизнью почти каждого офисного работника.

Как шаг за шагом реализовывалась повседневность интерактивных сцен в реальном времени за последние десять лет?

Примерно с 2010 года общение в режиме реального времени стало возможным только с использованием проприетарного программного обеспечения, плагинов или Adobe Flash; в 2013 году состоялся первый кросс-браузерный видеозвонок между Chrome и Firefox; в 2014 году состоялась первая кросс-браузерная передача данных. чтобы это произошло, общение в режиме реального времени через клиента открыло новую тенденцию... и сегодня это называется WebRTC, и мы каждый день в режиме реального времени в Chrome, Mozilla Firefox, Opera, Safari, Edge, iOS и Android Используйте его в интерактивных сценариях.

image.png

WebRTC — это проект с открытым исходным кодом, инициированный Google, Mozilla, Opera и т. д. Название происходит от аббревиатуры Web Real-Time Communication. Поэтому нетрудно заметить, что первоначальная цель этой технологии — подготовиться к реализации бесплатной передачи аудио и видео в реальном времени в браузере.

«На самом деле WebRTC имеет разное значение в разных сценариях. Он может представлять собой проект Google WebRTC с открытым исходным кодом, стандарт WebRTC, сформулированный рабочей группой W3C (Консорциум World Wide Web — Консорциум World Wide Web), и WebRTC в браузерах. , мы все вместе называем их технологией WebRTC". [1] В большинстве случаев для разработчиков WebRTC представляет собой набор API-интерфейсов W3C Javascript, которые поддерживают веб-браузеры для аудио- и видеоразговоров в реальном времени. Он включает сбор аудио- и видеофайлов, кодирование и декодирование., передача по сети, отображение и другие функции.

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

image.png

image.png«Миссия WebRTC состоит в том, чтобы позволить разрабатывать многофункциональные высококачественные приложения RTC для браузеров, мобильных платформ и устройств IoT, а также позволить всем общаться по общему набору протоколов».

Какую проблему решает WebRTC?

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

1, Интернет-сеть сложная

Различные NAT и брандмауэры создают большие проблемы для создания мультимедиа P2P. Появление WebRTC обеспечивает прямую сквозную связь для браузеров, упрощая разработчикам реализацию этого соединения. В то же время есть проект с открытым исходным кодом libjingle для пробивки отверстий P2P в WebRTC, который поддерживает STUN, TURN и другие протоколы.

2. Чувствительность к задержке

В ранней технологии RTC TCP (протокол управления передачей) может использовать только передачу UDP из-за дефектов собственного механизма, но это требует от разработчиков решения таких проблем, как повторная передача и беспорядок. WebRTC, с другой стороны, предоставляет технологию NACK, FEC, которую больше не нужно маршрутизировать через сервер, что снижает задержку и потребление полосы пропускания. Прямое общение увеличивает скорость передачи данных и обмена файлами.

3. Беглость

Интернет-сеть нестабильна, особенно некоторые мелкие операторы, часто не могут гарантировать достаточную пропускную способность во время пикового использования трафика. Набор адаптивных алгоритмов необходим для решения таких проблем, как перегрузка сети и бесперебойная передача. Техническая поддержка TCC + SVC + PACER + JitterBuffer осуществляется в WebRTC.

4. Чистый голос

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

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

В настоящее время основные браузеры, такие как Microsoft Edge, Google Chrome, Mozilla Firefox, Safari, Safari, Opera, Vivaldi и т. д., уже поддерживают WebRTC.

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

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

Будьте уверены, WebRTC также оптимизирован для обеспечения безопасности: все мультимедийные данные WebRTC должны быть зашифрованы.

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

WEBRTC использует два стандартизированных протокола шифрования:

Безопасность транспортного уровня дейтаграмм (DTLS) Стандартизированные протоколы, встроенные в браузеры. Это шифрование потока данных на основе протокола транспортного уровня (TLP); Поскольку DTLS использует протокол пользовательских данных (UDP), семантика транспорта сохраняется; Это расширение для Secure Sockets Layer (SSL), любой протокол SSL может использоваться для защиты данных WebRTC, обеспечивая сквозное шифрование. Безопасный транспортный протокол реального времени (SRTP) для шифрования медиапотока; Это расширение транспортного протокола реального времени (RTP), которое не имеет встроенных механизмов безопасности; Обеспечивает шифрование, проверку целостности и проверку подлинности сообщений для транспортного протокола реального времени (RTP). (* Но протокол SRTP также имеет некоторые недостатки, например, хотя он и обеспечивает шифрование пакетов RTP, он не шифрует заголовки.)

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

image.png

WebRTC — это далеко идущая разработка в интернет-индустрии в области связи в реальном времени, которая значительно снижает порог реализации разработчиками функций аудио- и видеосвязи в реальном времени. Итак, есть ли у меня хорошая идея и могу ли я использовать WebRTC напрямую для разработки и коммерческого использования? (потирая руки ?...) К сожалению, нет.

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

*Подробнее о преимуществах и недостатках WebRTC см.: Статус WebRTC, преимущества и недостатки, обязательный к просмотру проект с открытым исходным кодом для аудио- и видеосвязи.

Поэтому можно сказать, что если использовать WebRTC напрямую для коммерческого использования, то это практически невозможно.Текущее распространенное решение — это самостоятельная разработка, вторичная заказная разработка по собственным бизнес-сценариям или более простое использование сторонних SDK. (Agora WebSDK — это набор API, основанный на инкапсуляции WebRTC. Он чрезвычайно прост и более удобен для разработчиков. Он может выполнить простую демонстрацию за десять строк и перейти в онлайн. Нажмите [Читать исходный текст], чтобы просмотреть подробности.)

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

Использованная литература:

【1】Мао Юйцзе, 2018. Атака на WebRTC: зачем это нужно? -InfoQ. [онлайн] Infoq.cn Доступно по адресу:Woohoo.info Q.Can/статья/почему…[По состоянию на 28 апреля 2021 г.]. 【2】Grandviewresearch.com, 2021 г. Отчет о рынке веб-коммуникаций в реальном времени, 2020–2027 гг. [онлайн] Доступно по адресу:woohoo.grand просмотреть research.com/industry-press… [Accessed 18 May 2021].