2011-03-23 84 views
2

我一直在阅读关于TURN和STUN服务器,因为我想开发一个浏览器到浏览器的应用程序,以便BrowserA(位于NAT后面)可以与BrowserB(位于NAT后面)通信。在这种情况下,我认为我应该使用TURN协议。没有外部服务器的NAT穿越

我的问题:有没有其他解决方案不需要外部物理服务器?一个正义的软件解决方案将是完美的。

谢谢

回答

4

答案是否定的。

说明:NAT代表网络地址转换。这意味着将只在局域网(局域网)上有效的设备的“私人”IP转换为在广域网上有效的“公共”IP地址(即互联网的野外通用部分你的NAT的另一面)。

问题是转换后的地址只能从局域网外部看到。因此,您需要一个可到达的设备读取它并将其发回给您(或其他同行)。

您将始终需要一个服务器/中央对等端来帮助建立位于不同NAT后面的两个对等端之间的连接,因为它们都具有私有IP地址。

1

谢谢。我们假设BrowserA(开始通信的人)知道BrowserB的公有IP,但不是相反。这个问题的答案是一样的吗?

+1

请记住,每个连接者B到WAN上的设备,可以使用不同的公网地址。这取决于NAT的翻译策略。你的问题的子问题是A如何知道B的公有IP?它是a)通过与A的连接B还是b)来自另一个C的同行,他们看到了B的公开译文?你的新问题的答案是'在大多数情况下'是。该主题在实用JXTA II书籍中进行了讨论,该书籍可在线阅读Scribd。 NAT穿越是一个复杂的课题。 – JVerstry 2011-03-24 23:16:11