Допустим, у нас есть два одноранговых узла - A и B - которые пытаются установить одноранговое соединение WebRTC через симметричный NAT. Они обменялись кандидатами ICE через сигнализацию.
Общий адрес A: IP_A: Port_A
Общий адрес B: IP_B: Port_B
Сначала A пытается подключиться к B
IP_A: Port_A --- ›IP_B: Port_B
Однако запрос отклоняется NAT Б. Только STUN-сервер B может подключиться к B по этому адресу.
Теперь очередь B.
IP_B: Port_B --- ›IP_A: Port_A
Но здесь, разве не следует устанавливать связь? Потому что в таблице NAT узла A должен быть зарегистрирован адрес узла B, когда A первый раз отправил запрос B. Таким образом, любой ответ от B должен быть принят. Но, конечно, похоже, что это не работает. Итак, в чем я ошибаюсь?