没有端口转发可以完成P2P吗?

时间:2011-01-14 14:59:31

标签: networking p2p irc file-transfer portforwarding

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

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

2 个答案:

答案 0 :(得分:3)

是 - 如果您可以让外部服务器为您转发连接请求,则可以使用所谓的打孔技术来设置直接连接。 This technical paper有更详细的解释。

请注意,这些不一定适用于所有 NAT - 但它们确实可以在很多

NAT上运行。

答案 1 :(得分:1)

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