Автор: Гафуров Айрат Ильфатович
Должность: автор
Учебное заведение: Казанский Национальный Исследовательский Технологический Университет
Населённый пункт: Казань
Наименование материала: Web. Протокол WebRTC
Тема: Web. Протокол WebRTC
Раздел: высшее образование
Web. Протокол WebRTC
Автор:
Гафуров Айрат Ильфатович
Студент, Казанский Национальный Исследовательский Технологический
Университет
Россия, г. Казань
Научный Руководитель:
Галимянов Фанис Анисович
Старший преподаватель, кафедра «Информатика и прикладная
математика», Казанский национальный исследовательский технологический
университет, Россия, г. Казань
Казань, 2023
Аннотация:
в приведённой статье рассматривается протокол WebRTC и то,
как он работает.
Что такое WebRTC?
WebRTC (Web Real
Time Communications)
— это стандарт,
который
описывает передачу потоковых аудиоданных, видеоданных и контента между
браузерами (без
установки плагинов или иных расширений)
или другими
поддерживающими его приложениями в режиме реального времени.
Данная
технология
позволяет
превратить
браузер
в
оконечный
терминал
видеоконференцсвязи.
Чтобы начать общение,
достаточно просто открыть
веб-страницу конференции.
Где используется WebRTC?
WebRTC часто используется в видеочатах,
подобных Skype,
Zoom и
Google Meet.
Как работает WebRTC?
1.
Пользователь открывает страницу, содержащую WebRTC контент.
2.
Браузер запрашивает
доступ к
веб-камере
и микрофону,
если это
необходимо. Пока пользователь не разрешит доступ к устройству,
оно
не будет использоваться. В случаях, когда это необязательно (например,
при просмотре трансляций),
никаких дополнительных разрешений не
требуется.
3.
В браузере,
инициирующем соединение,
формируется SDP-пакет.
По
сути это текстовый файл,
содержащий всю необходимую информацию
о параметрах соединения.
Например,
что будет
передаваться (звук,
видео,
данные),
с
помощью каких
кодеков,
какие
параметры
поддерживаются браузером и т. д.
4.
В зависимости
от
реализации
технологии,
инициатор
соединения
передаёт
этот
пакет
другим
участникам.
Зачастую для
этого
используется сигнальный сервер и WebSocket протокол.
5.
На
принимающей
стороне
браузер
получает
SDP-пакет,
а
затем
генерирует подобный,
но с учетом информации из
первого.
Второй
пакет
отправляется
назад,
к
инициирующей стороне.
Теперь
оба
клиента уже имеют минимальное представление друг о друге.
6.
В зависимости от реализации,
параллельно с предыдущими шагами
происходит
анализ
состояния
подключения
к
сети.
Клиентам
передаётся адрес STUN-сервера,
который используется,
чтобы узнать
внешний
IP-адрес
устройства.
Он
сравнивается
с
внутренним
IP-адресом для того,
чтобы определить используется ли NAT в данном
подключении и,
если да,
то как маршрутизируются UDP-пакеты.
В
более сложных случаях (например,
когда используется двойной NAT),
применяются TURN-сервера. Они, по сути, являются ретрансляторами,
превращая соединение клиент-клиент (P2P) в клиент-сервер-клиент.
7.
Если все шаги пройдены успешно,
то соединение устанавливается.
Периодически вызывается
событие onicecandidate,
которое передаёт
информацию об IP-адресах,
настройках NAT,
попытках подключения
между клиентами.
Преимущества стандарта
1.
Высокое качество связи.
2.
Безопасность.
3.
Открытый исходный код.
4.
Кросс-платформенность.
WebRTC
будет
хорошо
работать
на
компьютерах и мобильных устройствах,
достаточно иметь хороший
интернет.
Недостатки стандарта
1.
Отсутствие приватности.
Перспективы
Данный стандарт передачи потоковых данных стремительно набирает
популярность ввиду своей относительной простоты и открытости.