STUN, TURN, ICE library for Java

2022-09-02 04:29:03

我需要在两个用户之间建立P2P UDP和TCP连接。他们俩都在NAT后面。

一些研究将我引向STUNTURNICE

除了jSTUN之外,是否有任何Java解决方案(库),它似乎只适用于UDP。反过来,ICE对于对称NAT问题要好得多。


答案 1

不要过多地吹嘘我自己的喇叭,但我是否可以推荐尝试IcedJava。(这是SipTools项目的一部分)它正在积极开发中,具有稳定的0.9版本,并支持开箱即用的RTP流等用例。

就TCP支持而言,这将在以后的版本中发布,但由于三路握手被阻止,您将很难支持TCP而不是对称nat。甚至对ICE规范的TCP扩展也指出,TCP连接比 nated 对等体之间的UDP连接成功的可能性要小得多。

也就是说,您可以通过 UDP 网桥路由 TCP 数据包来解决此问题,包括所有纠错和流控制功能。(我忘记了RFC,但它是最终规范)尽管如此,所有这些都是相对较新的规范,ICE-TCP规范尚未最终确定。即使在积极开发中,这些也需要时间来实施。


答案 2

还有ice4j,它符合开发人员的要求:

STUN、TURN 和 ICE 协议的 Java 实现。该项目是Stun4J计划的延续。该项目的目标是为VoIP Java开发人员提供一种处理NAT和防火墙的方法。

它是由sipcommunicator开发人员开发的。


推荐