我正在开发一个移动应用程序,我想在其中通过全局互联网将数据发送到其他设备而无需服务器。
假设全局互联网上有2个IP地址为 X Y 的移动设备。他们俩都知道彼此的地址,并且希望在没有远程服务器的情况下彼此通信。他们决定为此使用端口 A1 。如果 X 将数据发送到端口 A1 上的 Y ,它将在没有ISP阻止的情况下传递吗?
我不太熟悉网络,只了解一些基础知识。从理论上讲,只要IP的端口是开放的并且它们通过某些网络连接,它就可以毫无问题地交付它。我问这个问题的原因是,我对洪流如何在没有服务器和静态IP的情况下在全局Internet上相互发送数据感兴趣,而且我不确定ISP是否可以放置任何标准块,例如,每个ISP仅允许来自A1-A100的端口。我知道大多数规则可能取决于ISP,但是在此示例中,我们考虑一些典型的常规ISP。任何解释将不胜感激。

最佳答案

它被称为打洞,可用于TCPUDP。这个概念实际上很简单:

  • 客户端在中间服务器
  • 之间提供套接字信息
  • 服务器更新套接字信息(如果客户端和服务器之间存在NAT或Proxy)
  • 服务器将套接字信息共享给目标客户端
  • 客户端通过对等连接
  • 通过其他套接字信息相互连接

    其中许多已经在Github中。核实。

    10-07 12:15