真实的跨平台分散式异步对等通信

Mig*_*use 6 p2p asynchronous communication-protocol httpserver push-notification

我对网络编程的了解有限,因此,所有评论都非常受欢迎.基本上我的问题归结为以下问题:

Q1.是否存在分散的异步跨平台点对点通信

让我解释一下自己.

  • 如果我们在具有实际IP地址的计算机上运行两个http服务器,那么显然答案是肯定的,假设有人为交互编写协议.

  • 更进一步,如果它们中的一个(或两者)在路由器后面,那么,通过端口转发,仍然可以建立通信.然而,这里的问题开始是因为如果有人想在后台运行这样的服务器,比如说在手机中,依赖这个服务器的应用程序真的可以在家里工作时(我们真的不能指望请求端口转发)到处都是).

  • 但即便如此,

  • Q2.当有人不使用Wi-Fi时,移动电话是否从电信公司获得实际的IP地址?

  • 如果这是真的,那么显然可以通过在智能手机上运行http服务器而不使用Wi-Fi来实现跨平台的异步对等通信.(我知道这不方便,但肯定是可行的.)

最后,我能想到的两个(也许还有更多)相关问题是:

根据Skype的答案,它说:如果其中一个被叫方或两个都没有公共IP,那么它们会通过UDP或TCP将语音流量发送到另一个在线Skype节点. 因此,似乎Skype中没有直接通信,因为他们必须使用中间人进行这种情况.

关于Viber,我找不到这个特定问题的完整答案.人们通过Viber中央服务器互相交谈,还是建立直接连接?当然,如果他们确实建立了直接连接,那么我真的想知道他们如何管理这样的事情,因为手机可能有也可能没有物理地址.即使Viber没有运行而且我在路由器后面,Viber消息如何从我的朋友那里发送到我的手机?

我猜Viber的答案实际上是推送通知,但据我所知,推送通知的所有变体都依赖于开放连接,然后应用程序的服务器通过这样的连接将通知发送给客户端.所以,这种方法让我们觉得它是异步的,但实际上并非如此.我们在欺骗,因为与服务器之间存在持续开放的连接,此外,据我所知,应用程序服务器必须通过该服务器推送通知.示意图:

A>中央应用服务器>中央服务器w /打开连接到我的手机>我

所以,这似乎又是一种集中的方法.

老实说,我能想到的唯一方法是分散和异步(在移动电话上)是在每个平台/设备上运行http服务器,但这是以不使用Wi-Fi为代价而假设一家电信公司真的为每部手机分配一个物理IP地址(我不知道它是否属实,是吗?).

WASTE,暗网,F2F等怎么样?它们是否在某些相关方之间更直接的异步通信意义上提供了优势?是否存在使用此类通信方法的实际应用程序(也包括移动电话).

真的,这不是我想要解决的实际问题,但我想知道最先进的技术是什么,以便我可以弄清楚如何从那里开始.所以,所有评论都非常受欢迎.如果您有关于最新技术的参考资料我也想了解它们,但简短的描述也会很好.

我提前感谢你所有的时间和精力.

gsk*_*gsk 2

您问了很多问题,以下是答案的开始:

问1:是的。以 BitTorrent 非常成功的 1000 万+节点网络为例。除了引导过程之外,该协议是完全去中心化和异步的。请参阅此处了解更多信息。

问题2:是的!用手机访问www.whatismyip.com,您将看到您分配的IP。但是,您可能会被严格过滤(例如:端口 80 上的传入流量可能会被阻止)。

Q3:它具有 P2P 元素和巧妙的技巧来解决 NAT 问题 - 请参阅此处了解更多信息。

问4:我不知道。