gpt4 book ai didi

sockets - 在多种设备类型上在防火墙和 NAT 后面进行 p2p 传输的方法

转载 作者:行者123 更新时间:2023-12-02 03:37:27 24 4
gpt4 key购买 nike

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

即使用户位于不同的防火墙/NAT 后面并且在移动或桌面设备上,该系统也需要工作,无需要求用户手动打开端口。

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

如果我正确地处理这个问题,我会感到困惑。所有这些选项都能独立解决这个问题吗?或者我接近这个错误?直接 IPv6 连接是否会直接连接,甚至在 IPv4 路由器后面?

最佳答案

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

关于sockets - 在多种设备类型上在防火墙和 NAT 后面进行 p2p 传输的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22491423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com