6

我对网络编程的知识有限,所以,所有的评论都非常受欢迎。基本上我的问题归结为以下问题:

Q1。真的有去中心化异步跨平台点对点通信这样的东西吗?

让我自己解释一下。

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

  • 更进一步,如果其中一个(或两者)位于路由器后面,那么通过端口转发仍然可以建立通信。但是,这里问题开始了,因为如果有人想在后台运行这样的服务器,比如在手机中,依赖这个服务器的应用程序在一个人在家时确实可以工作(我们不能真的期望请求端口转发无论我们去哪里)。

  • 但除此之外,

  • Q2。当有人不使用 wi-fi 时,手机是否会从电信公司获取实际的 IP 地址?

  • 如果这是真的,那么显然可以通过在智能手机上运行 http 服务器,以不使用 wi-fi 为代价进行跨平台异步点对点通信。(我知道这不方便,但肯定是可行的。)

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

根据对 Skype 的回答,它说:如果被调用者之一或两者都没有公共 IP,则它们通过 UDP 或 TCP 将语音流量发送到另一个在线 Skype 节点。 因此,Skype 中似乎没有直接通信,因为在这种情况下,他们必须使用中间人。

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

我想 Viber 的答案确实是推送通知,但据我所知,推送通知的所有变体都依赖于打开的连接,然后应用程序的服务器通过此类连接将通知发送给客户端。所以,这种方法给我们的感觉是它是异步的,但本质上它不是。我们在作弊,因为与服务器的连接不断打开,而且据我所知,应用程序服务器必须通过该服务器推送通知。示意图:

A > Central App Server > Central Server w/ open connection to my phone > me

因此,这似乎又是一种集中式方法。

老实说,我能想到的唯一一种既分散又异步的方法(在手机上也是如此)是在每个平台/设备上运行一个 http 服务器,但这是以不使用 Wi-Fi 和假设为代价的一家电信公司真的为每部手机分配了一个物理IP地址(我不知道是不是真的,你呢?)。

WASTE、暗网、F2F 等呢?它们是否提供了一些利益相关方之间更直接的异步通信的优势?是否存在使用此类通信方法的实际应用程序(也包括移动电话)。

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

我提前感谢您所有的时间和精力。

4

1 回答 1

2

你问了很多问题,这里是答案的开始:

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

Q2:是的!在您的手机上访问 www.whatismyip.com,您将看到您分配的 IP。但是,您可能会被过滤得很厉害(例如:端口 80 上的传入流量可能会被阻止)。

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

Q4:我不知道。

于 2014-03-03T14:27:49.697 回答