Интернет магазин китайских планшетных компьютеров



Компьютеры - STUN

27 мая 2011





STUN — это сетевой протокол, который позволяет клиенту, находящемуся за сервером трансляции адресов, определить свой внешний IP-адрес, способ трансляции адреса и порт во внешней сети, связанный с определенным внутренним номером порта. Эта информация используется для установления соединения UDP между двумя хостами в случае, если они оба находятся за маршрутизатором NAT. Протокол определен в рекомендации RFC 5389.

Обзор протокола

Такие протоколы, как SIP, используют пакеты UDP для передачи голоса, изображения или текста по IP-сетям. К сожалению, если обе общающиеся стороны находятся за NAT’ом, соединение не может быть установлено обычным способом. Именно здесь STUN и оказывается полезным.

STUN — это клиент-серверный протокол. VoIP-клиент может включать в себя реализацию клиента STUN, который отправляет запрос серверу STUN. Затем сервер STUN отправляет клиенту обратно информацию о том, каков внешний адрес маршрутизатора NAT, и какой порт открыт на NAT для приема входящих запросов обратно во внутреннюю сеть.

Ответ также позволяет клиенту STUN определить, какой тип трансляции адреса используется, поскольку различные типы маршрутизаторов NAT обрабатывают входящие UDP пакеты по-разному. STUN работает с тремя из четырех основных типов: Full Cone NAT, Symmetric NAT, Address Restricted NAT и Port Restricted NAT. В случае ограничивающего NAT клиент должен отправить пакет на удаленный узел, прежде чем NAT начнет пропускать пакеты от удаленного узла к клиенту. STUN не будет работать с симметричным NAT’ом, который часто встречается в сетях больших компаний. При симметричном NAT IP-адрес сервера STUN отличается от конечного адреса, и из-за этого адрес NAT, который видит STUN-сервер, отличается от конечного адреса, который будет использоваться для отправки пакетов клиенту. Более подробная информация о типах NAT здесь.

Как только клиент обнаружил свой внешний адрес, он может передать его узлу, с которым проходит соединение. Если на пути встречаются трансляторы типа «полный конус», любая из двух сторон может начать общение. Если же выполняется трансляция типа «ограниченный конус» или «порт ограниченного конуса», обе стороны должны начать передачу данных совместно.

Нужно отметить, что методы, описываемые в рекомендации RFC 3489, не обязательно требуют использования протокола STUN; они могут использовать в рамках любого протокола, основанного на UDP.

Соединение с STUN-сервером устанавливается через UDP-порт 3478, однако сервер предлагает клиентам выполнить проверку также и альтернативного IP-адреса и номера порта. RFC устанавливает, что выбор порта и IP является произвольным.



Просмотров: 1895


<<< STP
Syslog >>>