Перейти к основному содержимому
Реальное время и peer-to-peer

Разработка WebRTC и peer-to-peer

Мы создаём системы реального времени и peer-to-peer: соединяем две машины напрямую через враждебные сети, удерживаем задержку достаточно низкой для живого взаимодействия и переходим на аутентифицированный ретранслятор, когда прямой путь невозможен.

Что входит

Что здесь означает реальное время, peer-to-peer

Соединить два устройства напрямую сложнее, чем кажется: большинство из них находится за NAT и файрволами, которые не пропускают незапрошенный трафик. Мы строим весь путь: обход NAT, координацию, которая его устанавливает, и аутентифицированный ретранслятор на случай, когда прямое соединение невозможно.

В объёме
  • Прямые peer-to-peer соединения через NAT и файрволы
  • Координация сессий: кто, к кому и когда подключается
  • Запасной аутентифицированный ретранслятор для ограничивающих сетей
  • Шифрованный транспорт между узлами с проверкой подлинности сторон
  • Аудио, видео и каналы данных с низкой задержкой
  • Адаптивный битрейт, реагирующий на живые сетевые условия
Как мы работаем

Как мы строим системы реального времени

Мы проектируем под ту сеть, которая у вас есть на самом деле, а не под схему на слайде. В реальной сети теряются пакеты, каналы несимметричны, а на пути стоят промежуточные узлы. Каждый уровень мы проверяем в реальных условиях.

  1. 1

    Модель связности

    Изучаем реальные условия вашей сети (классы NAT, файрволы, долю пользователей, которым понадобится ретранслятор) и строим стратегию соединения исходя из них.

  2. 2

    Координация и транспорт

    Сервис сигнализации координирует узлы; транспорт зашифрован, подлинность сторон проверяется, а запасным путём служит аутентифицированный ретранслятор.

  3. 3

    Медиа-конвейер

    Если есть живое медиа, кодирование и декодирование подстраивают качество под пропускную способность и задержку канала.

  4. 4

    Тестирование устойчивости

    Мы тестируем по распространённым классам NAT и на деградировавших каналах, подтверждая, что запасной ретранслятор включается чисто, когда прямой путь не удаётся.

  5. 5

    Эксплуатация и наблюдение

    Метрики по успешности соединений, частоте перехода на ретранслятор и качеству потока, чтобы вы видели, как система ведёт себя в реальности, а не только в лаборатории.

Результаты

Что вы получаете

Уровень связности, работающий через реальный интернет, с наблюдаемостью, чтобы это доказать, и документацией, чтобы им владеть.

Что вы получаете
  • Уровень peer-to-peer соединения с NAT-traversal и запасным ретранслятором
  • Сервис сигнализации для координации сессий и узлов
  • Шифрованный транспорт между узлами с проверкой подлинности сторон
  • Медиа-путь с адаптивным битрейтом, где нужны живые аудио/видео
  • Подключённые метрики успешности соединений и частоты перехода на ретранслятор
  • Документация по архитектуре и передача для вашей команды
Стек и подход

Как мы строим уровень связности

RustNAT-traversalСигнализацияАутентифицированный ретрансляторШифрованный транспортМедиа с адаптивным битрейтом

Мы проектируем уровень связности под вашу сетевую реальность: напрямую везде, где позволяет сеть, через аутентифицированный ретранслятор, где не позволяет, и каждая сессия зашифрована, а подлинность сторон проверяется.

Вопросы

Вопросы по реальному времени и P2P

Все ли соединения идут peer-to-peer?

Большинство, но не все: некоторые сети не допускают прямого пути. Надёжная архитектура соединяет напрямую везде, где позволяет сеть, а в остальных случаях через аутентифицированный ретранслятор. Так связь сохраняется, даже когда настоящий peer-to-peer невозможен.

Это то же самое, что использовать хостируемый WebRTC-сервис?

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

Как вы обеспечиваете безопасность соединений между узлами?

Транспорт шифруется, а подлинность сторон проверяется, поэтому узлы точно знают, с кем соединяются, ещё до передачи данных, и атакующий посередине не сможет незаметно вклиниться. Если используется ретранслятор, он тоже аутентифицирован и не работает как открытая труба.

Можете ли вы удерживать медиа плавным на плохом соединении?

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

Изучить другие услуги

Соединять устройства мы умеем лучше всего.

Расскажите, что с чем должно связываться и через какие сети. Мы спроектируем соединение, которое выдержит.