Введение

Установление интерактивной связи (ICE) — это технология, используемая в компьютерных сетях для поиска оптимальных способов организации прямого взаимодействия между двумя компьютерами в одноранговых сетях. Она наиболее часто применяется для интерактивных медиа, таких как Voice over Internet Protocol (VoIP), одноранговая связь, видео и мгновенный обмен сообщениями. В подобных приложениях передача данных через центральный сервер была бы медленной и дорогостоящей, однако прямое взаимодействие между клиентскими приложениями в интернете затруднено из-за сетевых трансляторов адресов (NAT), межсетевых экранов и других сетевых ограничений. ICE разработана рабочей группой MMUSIC организации Internet Engineering Task Force и опубликована в виде RFC 8445 (август 2018 г.), заменяя RFC 5245 и RFC 4091.

Обзор

Перевод сетевых адресов (NAT) стал эффективным способом замедлить исчерпание доступного пула адресов версии 4 протокола Интернет, который изначально ограничен примерно четырьмя миллиардами уникальных адресов. Шлюзы NAT отслеживают исходящие запросы из частной сети и поддерживают состояние каждого установленного соединения, чтобы впоследствии направлять ответы от удаленной стороны в общедоступной сети соответствующему участнику в частной сети, который в противном случае был бы недоступен по сети. VoIP, сети типа "один-к-одному" и многие другие приложения требуют адресной информации взаимодействующих участников в потоках данных соединения, а не только в заголовках пакетов протокола Интернет. Например, протокол инициирования сеанса (SIP) передает IP-адрес сетевых клиентов для регистрации в службе определения местоположения, чтобы телефонные вызовы могли направляться зарегистрированным клиентам. ICE предоставляет механизм, с помощью которого взаимодействующий участник может обнаружить и сообщить свой публичный IP-адрес, чтобы другие участники могли до него обратиться. Session Traversal Utilities for NAT (STUN) — это стандартизированный протокол для такого обнаружения адресов, включая классификацию NAT. Traversal Using Relays around NAT (TURN) использует сторонний сервер для ретрансляции сообщений между двумя клиентами, когда прямой обмен медиаданными между участниками запрещен межсетевым экраном.