2010-01-10 4 views
19

Мне нужно установить P2P UDP и TCP-соединение между двумя пользователями. Оба они за NAT.STUN, TURN, библиотека ICE для Java

Небольшое исследование приводит меня к STUN, TURN и ICE.

Есть ли какие-либо Java-решения (библиотека), кроме jSTUN, которые, похоже, работают только на UDP. И TURN, ICE намного лучше для симметричной проблемы NAT.

ответ

2

Вы можете попробовать jstunt - больше не поддерживается, но источник кажется доступным. Они предоставляют банку с библиотекой STUNT и пример java-сервера/клиентских приложений. Из моего чтения это не родная Java, поэтому это может работать только на некоторых архитектурах.

9

Не слишком сильно использовать свой собственный рожок, но я рекомендую попробовать IcedJava. (Это часть проекта SipTools). Он активно разрабатывается, имеет стабильную версию версии 0.9 и поддерживает использование таких случаев, как RTP-поток из коробки.

Что касается поддержки TCP, это планируется для более поздней версии, но вам будет сложно поддерживать TCP по сравнению с симметричным nat из-за блокировки трехстороннего рукопожатия. Даже расширения TCP в спецификации ICE отмечают, что соединения TCP гораздо менее вероятны, чем соединения UDP между natted peers.

При этом вы можете обойти это путем маршрутизации пакетов TCP по мосту UDP, включая все функции исправления ошибок и управления потоком. (Я забыл о RFC для этого, но это окончательная спецификация). Тем не менее, все это относительно новые спецификации, а спецификация ICE-TCP еще не окончательна. Даже в активном развитии им потребуется время для реализации.

+0

hmm ссылка мертва ... – goh

+0

Исправлена ​​ссылка. – SplinterReality

+0

Сохраняется ли этот проект? Или это было прекращено? – mateuscb

7

Существует также ice4j, который acording разработчиков:

реализации Java, в STUN и TURN и протоколы ICE. Этот проект является продолжением инициативы Stun4J. Целью проекта является предоставление разработчикам VoIP Java средств обработки NAT и брандмауэров.

был разработан разработчиками sipcommunicator.

+2

Остерегайтесь отсутствия документации для Ice4j – msj121