Traversal Using Relay NAT

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Traversal Using Relay NAT (TURN) — это протокол, который позволяет узлу за NAT или брандмауэром получать входящие данные через TCP или UDP соединения. Такая возможность особенно актуальна для узлов позади симметричных NAT, или брандмауэров, которые собираются стать принимающей стороной в соединении с другим узлом (peer-ом).

TURN не позволяет пользователям запускать сервер на хорошо известных портах, если они находятся за NAT, он поддерживает подключение пользователей за NAT только одно соединение.

В этом отношении его роль должна обеспечить те же самые функции безопасности, обеспеченные симметричным NAT и брандмауэрами, но поворачивать таблицы так, чтобы адресатом соединения мог быть узел на внутренней стороне, а не на стороне инициатора соединения.

TURN в настоящее время является интернет-проектом.

Введение[править | править исходный текст]

NAT, обеспечивая множество преимуществ, также содержат в себе много недостатков. Самым неприятным из этих недостатков является то, что они нарушают многие существующие приложения IP, а также затрудняют развертывание новых. Были разработаны рекомендации, которые описывают, как разрабатывать дружественные с NAT протоколы, но многие протоколы просто не могут быть построены в соответствии с этими рекомендациями. В качестве примера таких протоколов служат мультимедийные приложения и совместное использование файлов.

Session Traversal Utilities for NAT (STUN) предусматривает одно средство для прохождения NAT. STUN позволяет клиенту получить транспортный адрес (IP адрес и порт), который может быть полезен для приема пакетов от peer-ов. Однако адреса, полученные через STUN, не могут быть доступны всем peer-ам. Эти адреса работают в зависимости от топологии сети. Таким образом, STUN сам по себе не может обеспечить комплексное решение для обхода NAT.

Законченное решение требует средств, с помощью которых клиент мог бы получить транспортный адрес, на который он мог бы получать поток данных от любого peer-а который может передавать пакеты данных в публичный интернет. Это может быть достигнуто лишь путем ретрансляции данных через сервер, который находится в общедоступном Интернете. Эта спецификация описывает Traversal Using Relay NAT (TURN), протокол, который позволяет клиенту получить IP-адреса и порты от таких peer-ов.

Хотя TURN будет почти всегда обеспечивать подключение к клиенту, он создает большую нагрузку на провайдера TURN-сервера. Поэтому рекомендуется использовать TURN только в крайнем случае, предпочитая другие механизмы (например, STUN или прямое подключение), когда это возможно. Для достижения этого может использоваться методология Interactive Connectivity Establishment (ICE), чтобы найти оптимальное средство связи.