3

我正在构建一个系统,该系统依赖于中央服务器将第一个用户(在移动或桌面应用程序上)的 IP 地址和端口发送给第二个用户(在移动或桌面应用程序上)。第二个用户与第一个用户建立P2P加密连接,使用中心服务器发送的IP地址和端口,直接发送一个大文件(理想情况下,实际文件不经过中心服务器)。

即使用户在不同的防火墙/NATs 和移动或桌面设备上,该系统也需要工作,而不需要用户手动打开端口。

我一直在研究 NAT Traversal Protocol (Teredo IPv6)、libjingle(Google 的开源套件)、STUN、直接套接字连接和用户之间的直接 VPN。

如果我正确地接近这个,我很困惑。所有这些选项都会独立解决这个问题吗?还是我接近这个错误?即使在 IPv4 路由器后面,直接 IPv6 连接会直接出来吗?

4

1 回答 1

1

P2P 连接不能保证总是成功。它可能因以下原因而失败: 1) 两个对等点位于对称 NAT 后面。(尽管如果一个对等点在对称 nat 之后,Teredo 可以工作。) 2)UDP 被阻止 3)如果对等点在代理之后。4)双NAT场景。ipv6 地址分为三种类型 - 链接本地、私有地址和全​​局。如果两个对等点具有全局地址,则它们可以直接通过 Internet 连接。全局地址前缀是 (200:....)。如果您构建 P2P 系统,您应该有回退机制,在这种情况下,中央服务器应该在对等点之间中继数据。通过这种方式,您可以使您的应用程序当时可靠,从而使大多数使用 p2p 的对等点的连接速度更快。

于 2014-05-27T05:49:25.213 回答