问题标签 [nat-traversal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2302 浏览

java - 需要帮助进行 udp 打孔

嘿,我正在开发一个在 java 中创建 p2p 网络的项目。我已经为本地局域网使用 UDP 构建了 n/w,并且我正在努力通过互联网发送 UDP 数据报。我遇到了这个称为 UDP 打孔的概念,但似乎找不到任何相关的主题或库。有人可以帮忙吗?

0 投票
3 回答
360 浏览

flash - 是否可以在 NetConnection 上强制使用源端口?

我是 ActionScript 的新手,但我正在尝试破译一个预先存在的项目并进行一些修改。

我有一段代码从创建新的NetConnection开始,然后从外部源流式传输媒体文件。我在文档中看到您可以提供目标端口(通过 URL),但是是否可以强制 Flash 使用特定的源端口?我在文档中找不到明确的方法来做到这一点,但我很好奇其他人是否有替代方法或想法。

这样做的最终目标是我希望能够以可预测的方式使用源端口来进行NAT 打孔。感谢您的任何建议或答案!

0 投票
1 回答
905 浏览

actionscript-3 - Adobe AIR、URLRequest 和本地端口

我正在考虑用 Adob​​e AIR 编写一个应用程序,但我想先弄清楚这在平台上是否可行。(大多数是 Flash 和 AIR 的新手)

我想做的是提前知道a将使用哪个本地端口。URLRequest如果可能的话,我想保持连接打开,并继续使用同一个套接字。

我基本上想要完成的是提前进行一些 NAT 遍历和端口协商。一旦我已经协商好客户端和服务器,我希望它们连接并基本上以对等方式使用 HTTP 来流式传输媒体,例如这个示例:

问题是我看不到这种情况发生,除非我可以从 AIR 获得一些关于它计划使用哪些端口的信息。我可以创建自己的Socket与服务器的连接并使用它们,但我需要一种方法来利用 Sound 框架以相同的方式从套接字流式传输。

想法?想法?谢谢!

0 投票
1 回答
1381 浏览

.net - .Net WCF NAT 遍历的最佳实践

我正在为 .Net 中的点对点 NAT 遍历寻找建议或解决方案。假设我有一个聊天应用程序,两个客户端需要连接,但都在 NAT 后面:

对于家庭场景,uPNP 可能没问题,因为只涉及电缆调制解调器或消费者路由器。但是,无法实现 uPNP 的企业环境呢?

我熟悉 UDP 打孔,它可以用于握手,但我宁愿不依赖它来传输真实的应用程序数据。

我还研究了 IPv6 和 Teredo,但我不确定每个客户端都会有 IPv6 可用性,而且对于 Teredo 的所有要求(服务器、中继等)来说,这有点令人困惑。

现在是 2011 年,IM/Chat 客户端已经存在了 10 年,甚至还有一些——所以我相信这个问题已经解决了很多次。谁能推荐这个领域的最佳实践?提前致谢!

0 投票
1 回答
508 浏览

java - Java Stunt 和 URI 发现

我正在开发一个实时视频 Java 应用程序,并且遇到了 NAT 遍历的常见问题 - 两台计算机可以在本地网络上相互连接,但当它们位于 NAT 后面时则不能。我做了一些研究,最简单的选择是Cornell 的 JSTUNT 库

但是,似乎需要您使用 URI 将计算机连接在一起,我真的不知道该怎么做 - 有没有办法在 Java 中发现您自己的 URI?

他们的 STUNTServer 类似乎旨在执行此操作,但据我所知,仅返回 socket.getSocketAddress() - 这似乎与 URI 不同。

任何见解将不胜感激。

0 投票
3 回答
1527 浏览

browser - 无需外部服务器的 NAT 穿越

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

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

谢谢

0 投票
3 回答
1898 浏览

networking - 我想使用 P2P 构建一个去中心化的、类似 reddit 的系统。我应该基于什么现有的 p2p 库?

我想使用 P2P 构建一个去中心化的、类似 reddit 的系统。基本上,我想保留 reddit 的基本功能,但使其去中心化,使其更加健壮且不受审查。这也将允许人们开发不同的客户端来匹配他们想要浏览它的方式。

你能推荐好的 p2p 库来作为我工作的基础吗?它们应该是开源的、跨平台的、强大的和易于使用的。我不太在乎语言,我可以适应。

0 投票
2 回答
574 浏览

java - 如何在我的局域网上找到另一台不可公开访问的计算机的正确 IP 地址?

我正在编写一个分布式 Java 应用程序,但网络方面的事情让我很困惑。由于某种原因,它无法正常工作。我认为这是因为我通过 ipconfig /all 获得的 IP 地址无法从 LAN 外部访问。我感谢任何提示或建议。

0 投票
0 回答
334 浏览

upnp - UPnP 自动选择外部端口

如果需要打开端口,我正在尝试制作一个使用 UPnP 的应用程序,以便可以接收传入的传输。问题是,我不想指定外部端口(因为一,外部端口对于找到应用程序并不重要,二,我想确保同一路由器上的多个人可以使用该应用程序,并且共享端口显然不是一种选择)。我正在查看的所有 API 都没有说明开始无法指定端口,但会发送类似0-1导致它自己选择端口的内容,还是我必须选择一个随机数并希望最好?

另外,端口映射是否会过期,还是我必须强制取消所有映射?我想知道以防万一应用程序崩溃或计算机断电或其他情况。

0 投票
1 回答
1580 浏览

wcf - 在运行时使用 WCF 进行 NAT 遍历的点对点

正如标题所说,是否有可能在两个可以通过 NAT 的系统之间建立 P2P 连接。这两个程序连接到 WCF 服务,该服务将某些已连接的客户端标识为其他已连接的客户端。然后程序接收有关彼此的信息。这是我不确定的地方。这两个相互了解的程序如何直接相互连接,以便它们可以在不通过服务发送任何信息的情况下进行通信。我不确定您是否可以在 WCF 中执行此操作,但如果不能,是否还有其他解决方案。任何源代码都会很棒。