Я понимаю, что STUN не работает с "симметричными" NAT. Они назначают (т.е. заменяют адрес на сетевом уровне и сохраняют информацию в таблице переадресации) разные порты для каждого соединения / сервера. Поэтому, когда компьютер за NAT знает общедоступный IP-адрес / порт, который он использовал для сервера STUN, он будет бесполезен для связи с другим сервером, потому что тогда NAT назначит новый порт.
В книге о WebRTC, которую я сейчас читаю, говорится, что есть и другие случаи, когда STUN не работает и необходим сервер TURN (сервер ретрансляции с общеизвестным статическим IP-адресом).
Какие это случаи?
РЕДАКТИРОВАТЬ: я могу думать только о случае, когда маршрутизатор переназначает порт через некоторое время, и в этом случае серверу STUN придется снова связаться, и в течение небольшого промежутка времени между ними не будет известно, почему пакеты не возвращаются из другой сервер, вызывая задержку в режиме реального времени