Java 的 STUN、TURN、ICE 库

问题描述 投票:0回答:3

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

一些研究让我发现了STUNTURNICE

除了 jSTUN 之外,是否还有任何 Java 解决方案(库),它似乎仅适用于 UDP?

还有TURN,ICE对于对称NAT问题要好得多。

java nat stun turn
3个回答
9
投票

不要太自吹自擂,但我可以建议尝试IcedJava。 (它是 SipTools 项目的一部分)它正在积极开发中,具有稳定的 0.9 版本,并且支持开箱即用的 RTP 流式传输等用例。

就 TCP 支持而言,预计将在以后的版本中发布,但由于三向握手被阻止,您将很难通过对称 nat 支持 TCP。即使 ICE 规范的 TCP 扩展也指出,TCP 连接成功的可能性比 natted 对等点之间的 UDP 连接要小得多。

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


8
投票

还有 ice4j,根据开发者的说法:

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

它是由 sipcommunicator 开发者开发的。


2
投票

您可以尝试jstunt - 不再维护,但源代码似乎可用。 他们提供了一个带有 STUNT 库的 jar 和示例 java 服务器/客户端应用程序。 根据我的阅读,它不是原生 java,所以这可能只适用于某些架构。

© www.soinside.com 2019 - 2024. All rights reserved.