Почему использование более двух серверов STUN / TURN замедляет обнаружение? - PullRequest
1 голос
/ 03 октября 2019

Я передаю несколько серверов STUN и TURN для моего приложения WebRTC (построенного поверх mediasoup). Когда я делаю это, в консоли появляется сообщение: «Использование более двух серверов STUN / TURN замедляет обнаружение»

Я могу сократить количество серверов до 2 ... но ... почемубольше болит? Разве я не хочу, чтобы большинство вариантов было доступно для подключения?

1 Ответ

4 голосов
/ 04 октября 2019

Потому что, как работает ICE, первоначально браузер смотрит, какие сетевые интерфейсы на основе IP он может найти на вашем компьютере.

Затем он берет количество сетевых интерфейсов и объединяет его с одним сервером STUN и каждым сервером TURN, предоставляемым службой. Затем необходимо отправить запрос каждой из этих комбинаций и отслеживать ответы. В случае STUN это всего лишь один ответ, а в случае TURN это обычно несколько циклов. Таким образом, чем больше у вас серверов STUN и TURN, тем больше времени требуется для получения ответов от всех из них.

Теперь, если сервер STUN # 1 сообщает ваш внешний IP-адрес как A, с портом 1, скорее всего, сервер STUN #2 также скажет вам, что видит A как ваш внешний IP-адрес, с той лишь разницей, что он сообщает о порте 2. Почти во всех случаях все серверы STUN будут сообщать точно такой же внешний IP-адрес A. Но сообщать об одном и том же внешнемСнова и снова IP-адрес агента ICE на другом конце не увеличивает шансов на установление соединения, поскольку все его запросы будут попадать в один и тот же маршрутизатор / NAT / межсетевой экран.

С серверами TURNМожно утверждать, что больше серверов TURN может помочь больше, поскольку каждый сервер TURN должен предоставлять браузеру свой IP-адрес для ретрансляции. Но было бы весьма необычно, если данный браузер может подключаться к одному серверу TURN, а не к другому.

В конце концов, все эти серверы приводят к тому, что браузер испускает больше кандидатов ICE. И поэтому все больше кандидатов в ICE необходимо отправить другому браузеру или агенту ICE. В результате таблица проверки ICE, в которой проверяются все возможные варианты локальных и удаленных кандидатов в ICE, становится все больше и больше с каждым кандидатом в ICE. И поэтому он генерирует намного больший сетевой трафик, но не сильно увеличивает шансы на установление соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...