Понимание SFU, TURN серверов в WebRTC - PullRequest
1 голос
/ 18 апреля 2020

Если я создаю приложение WebRT C и использую медиа-сервер Selective Forwarding Unit, означает ли это, что мне не понадобятся серверы STUN / TURN?

Насколько я понимаю, серверы STUN используются клиентами для обнаружения их publi c IP / порта, а серверы TURN используются для передачи данных между клиентами, когда они не могут напрямую подключиться друг к другу через STUN.

Мой вопрос: развернуть мой коммуникационный сервер SFU с публичным адресом c, устраняет ли это необходимость в серверах STUN и TURN? Поскольку данные всегда будут передаваться через SFU, а клиенты / партнеры никогда не будут напрямую общаться друг с другом?

Однако я заметил, что руководство по установке Kurento (популярного медиа-сервера с функциональностью SFU) содержит раздел о настройке серверов STUN или TURN . Зачем нужны серверы STUN или TURN?

1 Ответ

0 голосов
/ 19 апреля 2020

Вы все равно должны использовать сервер TURN при работе SFU. Понять погружение в ЛЕД немного поможет. Все SFU работают немного по-разному, но это верно для большинства.

  • Для каждого PeerConnection SFU будет прослушивать случайный UDP (и иногда TCP-порт)
  • Этот IP / порт комбинация дает каждому пиру, который затем пытается связаться с SFU.
  • Затем SFU проверяет входящие пакеты, если они содержат действительный ha sh (определяется upwd). Это гарантирует, что злоумышленник не подключится к этому порту.

Сервер TURN работает по

  • Предоставляет один порт распределения, к которому могут подключаться одноранговые узлы. Вы можете использовать UDP, DTLS, TCP или TLS. Вам нужно действительное имя пользователя / пароль.
  • После аутентификации вы отправляете пакеты через это соединение, и сервер TURN передает их вам.
  • Затем сервер TURN прослушивает случайный порт, чтобы другие затем можно отправить материал обратно на Peer.

Таким образом, у сервера TURN есть несколько приятных вещей, которых нет у SFU

  • Вы должны слушать только один публичный c порт. Если вы общаетесь со службой, не входящей в inte rnet, ваши клиенты могут подключаться только к выделению
  • . Вы также можете сделать свою службу доступной через UDP, DTLS, TCP и TLS. Большинство реализаций ICE поддерживают только UDP.

Эти два фактора действительно важны в ситуациях правительства / больницы. У вас есть сети, которые разрешают только трафик TLS c через порт 443. Таким образом, сервер TURN - это ваше единственное решение (вы выполняете выделение на TLS 443)

Поэтому вам необходимо спроектировать свою систему в соответствии с вашими потребностями. Но IMO, вы всегда должны запускать хорошо настроенный сервер TURN в реальных условиях.

...