2010-01-10 4 views
19

Je dois établir une connexion P2P UDP et TCP entre deux utilisateurs. Les deux sont derrière un NAT.Bibliothèque STUN, TURN, ICE pour Java

Un peu de recherche me mène à STUN, TURN et ICE.

Existe-t-il une solution Java (bibliothèque) à l'exception de jSTUN qui semble fonctionner uniquement avec UDP. Et TURN, ICE est beaucoup mieux pour le problème NAT symétrique.

Répondre

2

Vous pouvez essayer jstunt - n'est plus géré, mais la source semble être disponible. Ils fournissent un pot avec la bibliothèque STUNT et des exemples d'applications serveur/client Java. De ma lecture, ce n'est pas Java natif, donc cela ne peut fonctionner que sur certaines architectures.

9

Ne pas trop taper mon propre cor, mais je pourrais recommander d'essayer IcedJava. (Il fait partie du projet SipTools) Il est activement développé, possède une version stable de la version 0.9 et supporte des cas d'utilisation comme le streaming RTP.

En ce qui concerne le support TCP, c'est prévu pour une version ultérieure, mais vous allez avoir du mal à supporter TCP sur nat symétrique en raison de la poignée de main à trois voies étant bloquée. Même les extensions TCP à la spécification ICE notent que les connexions TCP ont beaucoup moins de chances de réussir que les connexions UDP entre pairs homologues. Cela dit, vous pouvez contourner ce problème en acheminant les paquets TCP sur un pont UDP, y compris toutes les fonctions de correction d'erreur et de contrôle de flux. (J'oublie le RFC pour cela, mais c'est une spécification finale) Cependant, tout ceci est des spécifications relativement nouvelles, et la spécification ICE-TCP n'est pas encore définitive. Même en développement actif, il faudra du temps pour les mettre en œuvre.

+0

hmm le lien est mort ... – goh

+0

Correction du lien. – SplinterReality

+0

Ce projet est-il toujours maintenu? Ou a-t-il été interrompu? – mateuscb

7

Il est également ice4j, qui acording aux développeurs:

Une implémentation Java du STUN et TURN et des protocoles ICE. Ce projet s'inscrit dans la continuité de l'initiative Stun4J. Le but du projet est de fournir aux développeurs Java VoIP un moyen de gérer les NAT et les pare-feu.

il a été développé par les développeurs de sipcommunicator.

+2

Méfiez-vous du manque de documentation pour Ice4j – msj121