Введение
Установление интерактивной связи (ICE) — это технология, используемая в компьютерных сетях для поиска оптимальных способов организации прямого взаимодействия между двумя компьютерами в одноранговых сетях. Она наиболее часто применяется для интерактивных медиа, таких как Voice over Internet Protocol (VoIP), одноранговая связь, видео и мгновенный обмен сообщениями. В подобных приложениях передача данных через центральный сервер была бы медленной и дорогостоящей, однако прямое взаимодействие между клиентскими приложениями в интернете затруднено из-за сетевых трансляторов адресов (NAT), межсетевых экранов и других сетевых ограничений. ICE разработана рабочей группой MMUSIC организации Internet Engineering Task Force и опубликована в виде RFC 8445 (август 2018 г.), заменяя RFC 5245 и RFC 4091.
Interactive Connectivity Establishment (ICE) is a technique used in computer networking to find ways for two computers to talk to each other as directly as possible in peer to peer networking. This is most commonly used for interactive media such as Voice over Internet Protocol (VoIP), peer to peer communications, video, and instant messaging. In such applications, communicating through a central server would be slow and expensive, but direct communication between client applications on the Internet is very tricky due to network address translators (NATs), firewalls, and other network barriers. ICE is developed by the Internet Engineering Task Force MMUSIC working group and is published as RFC 8445, as of August 2018, and has obsolesced both RFC 5245 and RFC 4091.
Обзор
Перевод сетевых адресов (NAT) стал эффективным способом замедлить исчерпание доступного пула адресов версии 4 протокола Интернет, который изначально ограничен примерно четырьмя миллиардами уникальных адресов. Шлюзы NAT отслеживают исходящие запросы из частной сети и поддерживают состояние каждого установленного соединения, чтобы впоследствии направлять ответы от удаленной стороны в общедоступной сети соответствующему участнику в частной сети, который в противном случае был бы недоступен по сети. VoIP, сети типа "один-к-одному" и многие другие приложения требуют адресной информации взаимодействующих участников в потоках данных соединения, а не только в заголовках пакетов протокола Интернет. Например, протокол инициирования сеанса (SIP) передает IP-адрес сетевых клиентов для регистрации в службе определения местоположения, чтобы телефонные вызовы могли направляться зарегистрированным клиентам. ICE предоставляет механизм, с помощью которого взаимодействующий участник может обнаружить и сообщить свой публичный IP-адрес, чтобы другие участники могли до него обратиться. Session Traversal Utilities for NAT (STUN) — это стандартизированный протокол для такого обнаружения адресов, включая классификацию NAT. Traversal Using Relays around NAT (TURN) использует сторонний сервер для ретрансляции сообщений между двумя клиентами, когда прямой обмен медиаданными между участниками запрещен межсетевым экраном.