2010-01-10 10 views
19

Necesito establecer una conexión P2P UDP y TCP entre dos usuarios. Ambos están detrás de un NAT.Biblioteca STUN, TURN, ICE para Java

Un poco de investigación me lleva a STUN, TURN y ICE.

¿Hay alguna solución Java (biblioteca) excepto jSTUN que parece funcionar solo en UDP. Y TURN, ICE es mucho mejor para el problema NAT simétrico.

Respuesta

2

Puede intentar jstunt - ya no se mantiene, pero la fuente parece estar disponible. Proporcionan un archivo jar con la biblioteca STUNT y aplicaciones java servidor/cliente de ejemplo. Según mi lectura, no es Java nativo, por lo que esto solo puede funcionar en ciertas arquitecturas.

9

No tocar demasiado mi propio claxon, pero podría recomendar IcedJava. (Forma parte del proyecto SipTools) Se está desarrollando activamente, tiene una versión estable versión 0.9 y admite casos de uso como RTP de manera inmediata.

En cuanto al soporte de TCP, está programado para una versión posterior, pero tendrá dificultades para soportar TCP sobre nat simétrico debido al bloqueo de tres vías. Incluso las extensiones TCP de la especificación ICE indican que las conexiones TCP tienen muchas menos probabilidades de tener éxito que las conexiones UDP entre pares nativas.

Dicho esto, puede solucionar esto enrutando paquetes TCP a través de un puente UDP, incluidas todas las funciones de corrección de errores y control de flujo. (Olvidé la RFC para esto, pero es una especificación final). Sin embargo, todas estas son especificaciones relativamente nuevas, y la especificación ICE-TCP aún no es definitiva. Incluso en el desarrollo activo, llevará tiempo implementarlos.

+0

hmm el enlace está muerto ... – goh

+0

Se corrigió el enlace. – SplinterReality

+0

¿Este proyecto aún se mantiene? ¿O ha sido descontinuado? – mateuscb

7

Existe también ice4j, que según los desarrolladores:

aplicación Java de la STUN y vuelta y protocolos ICE. Este proyecto es una continuación de la iniciativa Stun4J. El objetivo del proyecto es proporcionar a los desarrolladores de VoIP Java una forma de manejar NAT y firewalls.

ha sido desarrollado por los desarrolladores de sipcommunicator.

+2

Cuidado con la falta de documentación para Ice4j – msj121