Разница между протоколами STUN, TURN и ICE заключается в их назначении и подходе к решению проблемы обхода NAT при установлении однорангового соединения: 8
- STUN (Session Traversal Utilities for NAT) помогает устройствам за NAT обнаружить свой публичный IP-адрес и номер порта. 7 Для этого устройства общаются с сервером STUN в интернете, и сервер предоставляет эту информацию клиентскому устройству. 7
- TURN (Traversal Using Relays around NAT) действует как ретранслятор, пересылая данные через сервер TURN, когда прямая связь между устройствами невозможна из-за ограничений NAT или брандмауэров. 17 TURN сервер действует как промежуточный узел, который получает видео и аудио данные от устройства, находящегося за NAT, и пересылает эти данные другому устройству. 1
- ICE (Interactive Connectivity Establishment) позволяет устанавливать соединение между двумя агентами. 2 Протокол последовательно собирает данные о возможности создания локального соединения между устройствами по TCP или UDP. 5 Если такой возможности нет, он проверяет возможность использования STUN во внешней сети, а если и такой возможности не обнаруживается, ICE проверяет возможность использовать TURN во внешней сети. 5
Выбор между этими протоколами зависит от ситуации и поставленной задачи. 5