Термин

Mesh-топология (WebRTC)

Короткое определение

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

Mesh – простейшая WebRTC-топология: каждый участник устанавливает peer-соединение с каждым другим, и каждый передаёт по N−1 копий своего видео (по одной на каждого участника). На двоих – одна копия, всё просто. На четверых – по три копии, что легко укладывается в пропускную способность типичного домашнего интернета. На восьмерых – по семь копий, и канал передачи данных оказывается перегружен, качество видео падает. Практический предел для mesh-топологии – около 4 участников на потребительских соединениях.

Плюс mesh – отсутствие затрат на сервер и минимальная задержка (благодаря peer-to-peer маршрутизации). Главный минус – резкий рост нагрузки на канал загрузки. Вторичный минус – сложность сигнализации: при N участниках образуется N×(N−1)/2 peer-соединений, каждое из которых требует обмена ICE и SDP. Современные WebRTC-библиотеки эффективно справляются с этим, но основная нагрузка приходится на dataplane.

Mesh – оптимальный выбор для двусторонних звонков, небольших встроенных видеочат-виджетов и обмена данными напрямую между двумя браузерами. Всё, что предполагает более четырёх участников, требует SFU. Большинство видеоприложений в продакшене (Zoom, Google Meet, Microsoft Teams) вообще не используют mesh и применяют SFU даже для парных звонков, соглашаясь на незначительные серверные расходы ради единообразия кода и возможности масштабирования при увеличении числа участников.

Считаете параметры для своего продукта?

Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.