我对网络编程的了解有限,因此,所有评论都非常受欢迎。基本上我的问题归结为以下问题:
Q1。是否存在分散式异步跨平台点对点通信这样的事情?
让我解释一下自己。
如果我们在具有实际IP地址的计算机上运行两个http服务器,那么显然答案是肯定的,假设有人为交互编写协议。
更进一步,如果其中一个(或两个)都在路由器后面,那么,通过端口转发,仍然可以建立通信。然而,这里的问题开始是因为如果有人想在后台运行这样的服务器,比如在移动电话中,那么依赖这个服务器的应用程序在家里就真的有效(我们真的不能指望请求端口转发)到处都是)。
但即便如此,
Q2。当有人不使用Wi-Fi时,移动电话是否从电信公司获得实际的IP地址?
结论,我能想到的两个(也许还有更多)相关问题是:
根据Skype的答案,它说:如果其中一个被叫方或两个都没有公共IP,那么他们会通过UDP或TCP将语音流量发送到另一个在线Skype节点。 因此,似乎Skype中没有直接通信,因为他们必须使用中间人进行这种情况。
关于Viber,我找不到这个特定问题的全面答案。人们通过Viber中央服务器互相交谈,还是建立直接连接?当然,如果他们确实建立了直接连接,那么我真的想知道他们如何管理这样的事情,因为手机可能有也可能没有物理地址。即使Viber没有运行而且我在路由器后面,Viber消息如何从我的朋友那里发送到我的手机?
我认为Viber的答案实际上是推送通知,但据我所知,推送通知的所有变体都依赖于开放连接,然后应用程序的服务器通过这种连接将通知发送给客户端( S)。所以,这种方法让我们感觉它是异步的,但实质上它不是。我们在欺骗,因为与服务器之间存在持续开放的连接,此外,据我所知,应用程序服务器必须通过该服务器推送通知。示意性地:
A>中央应用服务器>中央服务器与我的手机打开连接>我
所以,这似乎又是一种集中的方法。
老实说,我能想到的唯一方法是分散和异步(在移动电话上)是在每个平台/设备上运行http服务器,但这是以不使用Wi-Fi为代价的假设一家电信公司真的为每部手机分配了一个物理IP地址(我不知道它是否属实,是吗?)。
WASTE,暗网,F2F等怎么样?它们是否在某些相关方之间更直接的异步通信意义上提供了优势?是否存在使用此类通信方法的实际应用程序(也包括移动电话)。
真的,这不是我想要解决的实际问题,但我想知道最先进的技术是什么,以便我可以弄清楚如何从那里开始。所以,所有评论都非常受欢迎。如果您有关于最新技术的参考资料,我也想了解它们,但简短的描述也会很好。
我提前感谢你所有的时间和精力。