2

我正在通过 IRC 制作一个简单的文件传输程序,当我阅读时,我看到 IRC 在共享文件时创建了独立于服务器的两个用户之间的直接连接(DCC,直接客户端连接)。搜索了一段时间后,我发现了这个:Direct ConnectAdvanced Direct Connect

这些页面都没有回答这个我无法摆脱的问题:如果没有任何用户进行特殊的端口转发,P2P 数据传输是否可行? 允许使用帮助建立连接的中间服务器(如 IRC 示例中所示)。数据传输本身必须独立于服务器。

4

2 回答 2

4

是的 - 如果您可以让外部服务器为您转发连接请求,则可以使用所谓的打孔技术来建立直接连接。这篇技术论文有更详细的解释。

请注意,这些不一定适用于所有NAT - 但它们确实适用于其中很多。

于 2011-01-14T15:03:02.390 回答
1

Practical JXTA II(可在 Scribd 上阅读)有一章解释执行 NAT 遍历的技术。打孔是执行 NAT 遍历的技术子集。

于 2011-02-10T04:20:09.287 回答