Peer-to-peer та архітектура

Що таке peer-to-peer голосовий чат?

Peer-to-peer голосовий чат передає звук напряму між пристроями, без медіасервера. Дізнайтеся, як він працює, що змінює для приватності та які має обмеження.

  • Автор: Voxal
  • Оновлено
  • 4 хв читання
Двоє людей у навушниках за ноутбуками, між ними намальований глобус і з'єднані звукові хвилі.

Peer-to-peer (P2P) голосовий чат надсилає ваш голос просто на пристрої інших учасників, а не через центральний медіасервер. Сервер усе ще може допомагати пристроям знайти один одного, а релей може підключитися, коли прямий шлях заблоковано, але немає сервера, чиє завдання — приймати, мікшувати й розсилати звук усіх учасників.

Ця стаття — пояснення простою мовою: що це означає, як установлюється з'єднання, що це змінює для приватності та які в нього є обмеження. Технічні подробиці (кодеки, SFU і групове відео) дивіться в посібнику про WebRTC, SFU і кодеки.

Що означає peer-to-peer?

Peer-to-peer, часто скорочено P2P, означає, що пристрої-учасники спілкуються безпосередньо один з одним, а не надсилають голосовий звук через центральний медіасервер.

Уявіть двох друзів, які розмовляють в інтернеті. За прямого з'єднання пристрій однієї людини надсилає звук на пристрій другої, а та може відповісти через власне з'єднання.

Немає центрального аудіосервера, який мав би приймати, обробляти й розсилати кожен голосовий потік.

На практиці для встановлення прямого з'єднання може знадобитися додаткова інфраструктура. Пристрої можуть бути за роутерами, брандмауерами або NAT операторського рівня, тож технології на кшталт ICE і STUN допомагають знайти придатне з'єднання. Якщо прямий шлях установити не вдається, TURN-релей може пересилати зашифрований трафік, не декодуючи звук.

Отже, peer-to-peer не означає, що застосунок узагалі не використовує сервери. Це означає, що медіашлях може залишатися прямим, а релеї застосовуються лише за потреби.

Як працює peer-to-peer голосовий чат?

Сучасні голосові застосунки в браузері зазвичай використовують WebRTC — набір технологій для зв'язку в реальному часі.

Спрощений процес з'єднання виглядає так:

  1. Знайти учасників. Застосунок використовує механізм сигналізації, щоб обмінятися інформацією про з'єднання.
  2. Знайти мережевий шлях. ICE збирає й перевіряє можливі адреси для з'єднання, за потреби використовуючи STUN.
  3. Встановити з'єднання. Пристрої домовляються про відповідний шлях: напряму, якщо можливо, або через релей, якщо потрібно.
  4. Передати звук. Сигнал мікрофона кодується, передається як медіа в реальному часі й декодується на пристрої-отримувачі.
  5. Зберегти відгук розмови. З'єднання пристосовується до змін мережевих умов і керує синхронізацією, джитером та втратою пакетів.

WebRTC використовує медіатранспорт на основі RTP і містить механізми захищеного зв'язку в реальному часі. Точний шлях з'єднання залежить від мереж учасників і конфігурації застосунку.

Peer-to-peer проти голосового чату на основі сервера

Обидві архітектури можуть забезпечити чудовий голосовий зв'язок. Просто вони йдуть на різні компроміси.

Схема, що порівнює звук, надісланий напряму між двома учасниками, зі звуком, надісланим через центральний медіасервер.
Спрощені шляхи звуку: пряме з'єднання між учасниками ліворуч і розсилання через медіасервер праворуч. Peer-з'єднання за потреби все ще можуть використовувати TURN-релей.

Peer-to-peer голос

В архітектурі peer-to-peer кожен учасник може надсилати звук безпосередньо іншим учасникам.

Потенційні переваги:

  • Не потрібен центральний медіасервер для обробки чи розсилання голосу.
  • Прямий медіашлях, який може зменшити зайву маршрутизацію.
  • Менша залежність від центрального аудіосервісу.
  • Чітке розмежування між координацією з'єднання та передачею звуку.

Є й компроміси. Кожному учаснику може доводитися надсилати звук кільком іншим, тому вимоги до пропускної здатності зростають разом з розміром кімнати. Мережеві обмеження також можуть унеможливлювати прямі з'єднання, і тоді потрібен релей.

Голос на основі сервера

В архітектурі на основі сервера учасники надсилають звук на медіасервер, який розсилає його іншим слухачам.

Це може спростити розсилання для груп і централізувати деякі операційні завдання. Однак потрібна медіаінфраструктура, а сервер стає частиною шляху доставки звуку.

Жодна з архітектур не є кращою за всіх умов. Правильний вибір залежить від розміру кімнати, мережевих умов, вимог до надійності, очікувань щодо приватності та експлуатаційних витрат.

Як Voxal використовує peer-to-peer звук

Voxal створений для легкого, спонтанного спілкування. Ви можете створити голосову кімнату або приєднатися до неї без облікового запису, а потім користуватися режимом push-to-talk (натисни, щоб говорити) або hands-free — як вам зручніше.

Голосовий звук у Voxal завжди залишається peer-to-peer. Він ніколи не проходить через необов'язковий відео-SFU, навіть коли кімната використовує цю інфраструктуру для медіа з камери чи демонстрації екрана.

Voxal використовує сигналізацію, щоб координувати учасників і встановлювати з'єднання. Шлях сигналізації та шлях звуку розділені: координація з'єднання через сервер не означає, що сервер приймає сам звук.

Якщо прямого з'єднання встановити не вдається, може використовуватися TURN-релей. Цей релей пересилає зашифрований трафік і не декодує звук. Документація про TURN та ICE описує, як Voxal обирає шлях.

Двоє учасників обмінюються зашифрованим медіа через TURN-релей, який пересилає трафік, не декодуючи звук.
TURN-релей надає запасний мережевий шлях для зашифрованого голосового трафіку, коли прямого з'єднання встановити не вдається.

Voxal також підтримує відео та демонстрацію екрана, які мають інші вимоги до маршрутизації у великих кімнатах. Ці функції можуть використовувати необов'язковий Selective Forwarding Unit (SFU) залежно від налаштованого параметра маршрутизації відео. Голос залишається peer-to-peer за будь-яких умов.

Чи приватніший peer-to-peer голосовий чат?

Peer-to-peer зв'язок може зменшити кількість систем, залучених до доставки голосу, але сам термін не гарантує приватності.

Повна оцінка приватності має також ураховувати шифрування, метадані сигналізації, журнали з'єднань, використання релеїв і те, як застосунок поводиться з даними мікрофона.

У Voxal голос передається за допомогою захищених медіамеханізмів WebRTC, а TURN-релей пересилає зашифроване медіа, а не декодує його. Це відрізняється від SFU, який технічно може отримати доступ до відеомедіа, що надходить до нього, щоб вибірково його пересилати.

Важлива відмінність — до чого має доступ кожен компонент, а не просто те, чи існує сервер.

Коли peer-to-peer голосовий чат корисний?

Peer-to-peer голос може добре підійти для:

  • Розмов у малих групах.
  • Ігор і спільної діяльності.
  • Тимчасових голосових кімнат.
  • Легкого командного спілкування.
  • Застосунків, що прагнуть уникнути централізованої обробки голосового медіа.

Більші кімнати створюють додаткові труднощі з пропускною здатністю та керуванням з'єднаннями. Це одна з причин, чому голос, відео та демонстрацію екрана не слід автоматично вважати однією й тією самою мережевою задачею.

Спробуйте Voxal

Voxal поєднує peer-to-peer голосовий звук із push-to-talk, hands-free спілкуванням, шумозаглушенням і необов'язковим відео та демонстрацією екрана.

Якщо хочете спробувати голосову кімнату без облікового запису, відкрийте Voxal у браузері.

Щоб глибше зазирнути в мережеву основу зв'язку в реальному часі, продовжте нашим посібником про WebRTC, SFU і голосові кодеки.

Читайте також: Що таке push-to-talk? Практичний посібник · WebRTC, SFU і голосові кодеки: пояснення

Додаткове читання

Назад до блогу