Browser 无需外部服务器的NAT遍历

Browser 无需外部服务器的NAT遍历,browser,p2p,nat,nat-traversal,Browser,P2p,Nat,Nat Traversal,我一直在阅读有关TURN和STUN服务器的文章,因为我想开发一个浏览器到浏览器的应用程序,以便BrowserA(在NAT后面)可以与BrowserB(在NAT后面)通信。在这种情况下,我想我应该使用TURN协议 我的问题:还有其他不需要外部物理服务器的解决方案吗?一个简单的软件解决方案就是完美的 谢谢答案是否定的 说明:NAT代表网络地址转换。这意味着将设备的“专用”IP(仅在LAN(局域网)上有效)转换为在WAN上有效的“公用”IP地址(即,位于NAT另一端的Internet的野生部分) 问题

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

我的问题:还有其他不需要外部物理服务器的解决方案吗?一个简单的软件解决方案就是完美的

谢谢

答案是否定的

说明:NAT代表网络地址转换。这意味着将设备的“专用”IP(仅在LAN(局域网)上有效)转换为在WAN上有效的“公用”IP地址(即,位于NAT另一端的Internet的野生部分)

问题是转换后的地址只能从LAN外部看到。因此,您需要一个可访问的设备来读取它并将其发送回您(或其他对等方)


当位于不同NAT后面的两个对等点都有专用IP地址时,您将始终需要一个服务器/中心对等点来帮助建立它们之间的连接。

谢谢。让我们想象一下,BrowserA(开始通信的人)知道BrowserB的公共IP,而不是相反。对于这个问题,答案是相同的?

在没有中间层的情况下工作,但将这个问题移动到serverfault可能会有所帮助:)

请记住,对于B与WAN上的设备的每次连接,可能会使用不同的公共地址。这取决于NAT的翻译政策。你问题的子问题是A如何知道B的公共IP?是a)通过B与a的连接,还是B)从另一个看到B的公开翻译的C同行那里?你的新问题的答案是“在大多数情况下是的”。这一主题在Scribd网上提供的实用JXTA II书中进行了讨论。NAT遍历是一个复杂的主题。