Назначение сервера WebRTC STUN - PullRequest
       42

Назначение сервера WebRTC STUN

0 голосов
/ 18 февраля 2019

Я понимаю назначение серверов STUN и TURN и их использование в WebRTC, но я не до конца понимаю:

Если я, как клиент WebRTC, уже вошел в систему, чтобы использовать службу WebRTC, не смог быу этой службы уже есть мой публичный IP-адрес?Почему сервер STUN должен найти его второй раз?

1 Ответ

0 голосов
/ 19 февраля 2019

Краткий ответ: Потому что прокси и NAT.

Множество причин:

  1. Веб-сервер знает ваш общедоступный IP-адрес для установленного соединения TCP, но дляпоследующие P2P-соединения по UDP, он не знает, как ваш локальный NAT отобразит порт (или какой порт он использует).

  2. Вы можете быть в сети, в которой все HTTP /HTTPS-трафик проходит через прокси.Следовательно, сервис WebRTC знает только адрес вашего прокси.

  3. Сам сервис WebRTC может иметь внешний балансировщик нагрузки.Следовательно, он знает только IP-адрес балансировщика нагрузки.

  4. Две конечные точки, пытающиеся выполнить сеанс WebRTC, могут фактически находиться за одним и тем же NAT.Следовательно, общедоступный IP-адрес не так полезен.

Но основная причина заключается в прогнозировании порта, как обсуждалось в # 1 выше.Обмен адресами через ICE или WebRTC включает в себя не только обмен IP-адресами, но также и UDP-порты.Даже если веб-сервер знает фактический IP-адрес клиента, веб-сервер не может определить, какой порт UDP он будет использовать для трафика мультимедиа.

...