Разработка WebRTC и peer-to-peer
Мы создаём системы реального времени и peer-to-peer: соединяем две машины напрямую через враждебные сети, удерживаем задержку достаточно низкой для живого взаимодействия и переходим на аутентифицированный ретранслятор, когда прямой путь невозможен.
Что здесь означает реальное время, peer-to-peer
Соединить два устройства напрямую сложнее, чем кажется: большинство из них находится за NAT и файрволами, которые не пропускают незапрошенный трафик. Мы строим весь путь: обход NAT, координацию, которая его устанавливает, и аутентифицированный ретранслятор на случай, когда прямое соединение невозможно.
- Прямые peer-to-peer соединения через NAT и файрволы
- Координация сессий: кто, к кому и когда подключается
- Запасной аутентифицированный ретранслятор для ограничивающих сетей
- Шифрованный транспорт между узлами с проверкой подлинности сторон
- Аудио, видео и каналы данных с низкой задержкой
- Адаптивный битрейт, реагирующий на живые сетевые условия
Как мы строим системы реального времени
Мы проектируем под ту сеть, которая у вас есть на самом деле, а не под схему на слайде. В реальной сети теряются пакеты, каналы несимметричны, а на пути стоят промежуточные узлы. Каждый уровень мы проверяем в реальных условиях.
- 1
Модель связности
Изучаем реальные условия вашей сети (классы NAT, файрволы, долю пользователей, которым понадобится ретранслятор) и строим стратегию соединения исходя из них.
- 2
Координация и транспорт
Сервис сигнализации координирует узлы; транспорт зашифрован, подлинность сторон проверяется, а запасным путём служит аутентифицированный ретранслятор.
- 3
Медиа-конвейер
Если есть живое медиа, кодирование и декодирование подстраивают качество под пропускную способность и задержку канала.
- 4
Тестирование устойчивости
Мы тестируем по распространённым классам NAT и на деградировавших каналах, подтверждая, что запасной ретранслятор включается чисто, когда прямой путь не удаётся.
- 5
Эксплуатация и наблюдение
Метрики по успешности соединений, частоте перехода на ретранслятор и качеству потока, чтобы вы видели, как система ведёт себя в реальности, а не только в лаборатории.
Что вы получаете
Уровень связности, работающий через реальный интернет, с наблюдаемостью, чтобы это доказать, и документацией, чтобы им владеть.
- Уровень peer-to-peer соединения с NAT-traversal и запасным ретранслятором
- Сервис сигнализации для координации сессий и узлов
- Шифрованный транспорт между узлами с проверкой подлинности сторон
- Медиа-путь с адаптивным битрейтом, где нужны живые аудио/видео
- Подключённые метрики успешности соединений и частоты перехода на ретранслятор
- Документация по архитектуре и передача для вашей команды
Как мы строим уровень связности
Мы проектируем уровень связности под вашу сетевую реальность: напрямую везде, где позволяет сеть, через аутентифицированный ретранслятор, где не позволяет, и каждая сессия зашифрована, а подлинность сторон проверяется.
Вопросы по реальному времени и P2P
Все ли соединения идут peer-to-peer?
Большинство, но не все: некоторые сети не допускают прямого пути. Надёжная архитектура соединяет напрямую везде, где позволяет сеть, а в остальных случаях через аутентифицированный ретранслятор. Так связь сохраняется, даже когда настоящий peer-to-peer невозможен.
Это то же самое, что использовать хостируемый WebRTC-сервис?
WebRTC даёт набор строительных блоков, а облачный сервис добавляет к ним чужую сигнализацию, ретрансляторы и цены. Мы можем строить на WebRTC, где он подходит, или реализовать уровень связи самостоятельно, если вам нужен контроль над транспортом, ретранслятором и маршрутом данных. Порекомендуем то, что лучше отвечает вашим требованиям к задержке, стоимости и месту хранения данных.
Как вы обеспечиваете безопасность соединений между узлами?
Транспорт шифруется, а подлинность сторон проверяется, поэтому узлы точно знают, с кем соединяются, ещё до передачи данных, и атакующий посередине не сможет незаметно вклиниться. Если используется ретранслятор, он тоже аутентифицирован и не работает как открытая труба.
Можете ли вы удерживать медиа плавным на плохом соединении?
Да. Мы строим адаптивную лестницу битрейта, реагирующую на живую пропускную способность и время кругового обхода, жертвуя детализацией ради плавности только когда это необходимо. Поток выбирает правильный кодек и битрейт для канала в реальном времени.