При устранении неполадок в моем веб-приложении я обнаружил draft-mdns-ice-кандидата , который касается запутывания адресов в кандидатах на хост с помощью mDNS.
И я обнаружил, что когда два одноранговый узел (агент L, агент R) находится в топологии, показанной на рисунке 7 ниже, одноранговое соединение WebRT C терпит неудачу, потому что адрес узла агента R запутан, а адрес srflx агента R отбрасывается, поскольку агент R не за NAT. Ниже приведены соответствующие выражения в rfc8445 об отбрасывании srflx-адреса агента R.
5.1.3. Устранение избыточных кандидатов
Затем агенты ICE (инициирующие и отвечающие) удаляют избыточных кандидатов. Два кандидата могут иметь один и тот же транспортный адрес, но разные базы, и они не будут считаться избыточными. Часто кандидат, рефлексивный к серверу, и кандидат хоста будут избыточными, если агент не находится за NAT. Кандидат является избыточным тогда и только тогда, когда его транспортный адрес и база совпадают с адресами другого кандидата. Агент ДОЛЖЕН исключить избыточного кандидата с более низким приоритетом. - раздел 5.1.3 rfc8445
(Рисунок 7 взят из раздела 15.1 RFC8445 )
И в разделе 5 файла draft-mdns-ice-possible я не нашел объяснений относительно случая, показанного на рисунке 7. Когда я тестировал последнюю версию Chrome, Firefox и Safari, одноранговое соединение WebRT C не удалось во всех браузерах в случае, показанном на рисунке 7, по причине, о которой я писал выше: адрес хоста агента R был скрыт, а адрес srflx агента R.
При отключении обфускации локальных адресов путем изменения настроек браузера (обфускация выполняется по умолчанию), одноранговое соединение WebRT C успешно устанавливается. (Я тестировал это успешное соединение на Chrome и FireFox. В Chrome, отключив Anonymize local IPs exposed by WebRTC
на странице «about: flags». В Firefox, установив false
media.peerconnection.ice.obfuscate_host_addresses
in «about : config ».)
Это проблема IETF WebRT C spe c? (Может быть, коллизия draft-mdns-ice-кандидата и rfc8445 ?) Или проблема реализаций современных браузеров? Есть ли способ установить sh WebRT C одноранговое соединение в случае, показанном на рисунке 7, без отключения обфускации адреса хоста? Я хочу знать.