ICE означает Интерактивное подключение .Это протокол для прохождения NAT (т.е. пробивки дырок), поддерживаемый IETF.Было несколько обзоров и изменений RFC.Некоторые могут посчитать, что спецификации являются излишними в целом или неясными, когда речь идет о выполнении TCP NAT.
UPnP - это технология, помогающая локальным устройствам находить друг друга и автоматически устанавливать связь.Он реализует IGD для обхода NAT, что позволяет удаленно конфигурировать NAT / Router (когда это возможно) для перенаправления трафика WAN на устройство.К сожалению, этот метод представляет огромную угрозу безопасности, так как любое приложение может перехватить NAT / маршрутизаторы, чтобы пропустить любой нежелательный трафик.
Teredo на самом деле не имеет отношения к P2P или перемещению NAT.Если у вас есть устройство A IPv6 в локальной сети ipv4 (например), оно не сможет подключиться через ipv6 к удаленному устройству B с поддержкой ipv6, расположенному в глобальной сети.Teredo позволяет A взаимодействовать с B с ipv6, передавая ipv6 через ipv4.Так сказать, Teredo наращивает трения между ipv4 и ipv6.
На данный момент ни одна из этих технологий не является "доминирующей" в P2P.Это все еще кипящая среда.