真实世界的跨平台的异步分散的对等网络通信 [英] Real-world cross-platform decentralized asynchronous peer-to-peer communication

查看:159
本文介绍了真实世界的跨平台的异步分散的对等网络通信的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对网络编程知识是有限的,所以,所有的意见都无任欢迎。基本上我的问题可以归结为以下问题:

My knowledge about network programming is limited, so, all the comments are more than welcome. Essentially my question boils down to the following question:

Q1。是否真的有这样的事的分散异步跨平台的对等网络通信的?

Q1. Is there really such a thing as decentralized asynchronous cross-platform peer-to-peer communication?

让我解释一下。


  • 如果我们有实际的IP地址的计算机上运行的两个HTTP服务器,则显然答案是肯定的,假定一个用于相互作用写的协议。

  • If we have two http servers running on computers with actual IP addresses, then clearly the answer is yes, assuming one writes a protocol for the interaction.

要多走一步,如果他们中的一个(或两个)是(是)在路由器后面,那么,端口转发通信仍然可以成立。然而,这里的问题开始,因为如果有人想在后台运行这样的服务器,在一个手机说,这是依靠该服务器上的应用程序真正起作用当一个人在家里(我们真的不能指望请求端口转发我们到处走)。

To go one step further, if one of them (or both) is (are) behind a router, then, with port forwarding the communication can still be established. However, here the problems start because if someone wants to run such a server on the background, say in a mobile phone, the app that is relying on this server really works when one is at home (we can not really expect to request port forwarding everywhere we go).

但即使除此之外,

Q2。做手机,当有人未使用的Wi-Fi获得电信公司的实际IP地址?

Q2. do mobile phones obtain an actual IP address from telecommunication companies when someone is not using a wi-fi?

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

Concluding, the two (perhaps there are more) relevant questions that I can think of are:

,它说:如果被叫方的一个或两个人没有一个公网IP,那么他们发送语音流量通过UDP或TCP另一个在线的Skype节点
因此,它似乎有Skype中没有直接的沟通,因为他们必须使用一个人在这方面的中间人对于这样的情况。

Based on the answer for Skype, it says: If one of the callee or both of them do not have a public IP, then they send voice traffic to another online Skype node over UDP or TCP. So, it appears that there is no direct communication in Skype, because they have to use a man-in-the-middle for such a scenario.

关于Viber的,我无法找到一个很好的,全面的回答此问题的讨论。人们是否通过Viber的中央服务器互相交谈,或者,他们是否建立直接连接?当然,如果他们建立直接的连接,那么我真的想知道他们是如何处理这样的事情,因为手机可能会或可能不会有一个物理地址。如何即使Viber的不运行从我的一个朋友发送到我的手机一Viber的消息,我在路由器后面?

Regarding Viber, I could not find a good-thorough answer to this particular question. Do people talk to each other through a Viber centralized server, or, do they establish a direct connection? Of course if they do establish a direct connection, then I really want to know how they manage such a thing since a mobile phone may or may not have a physical address. How is a Viber message routed to my cell phone from a friend of mine even when Viber is not running and I am behind a router?

我猜的答案,Viber的是真正推送通知,但据我可以理解,推送通知所有的变化都依赖于开放的连接,然后将应用程序的服务器,通过这种连接发送通知给客户( S)。因此,这种方法的给我们的感觉,这是的异步的,但本质上的不是的。我们是欺骗,在这个意义上,有一个不断开放的连接到服务器,而且,据我可以理解,应用服务器必须通过该服务器推通知。示意图:

I guess the answer to Viber is really push notifications, but as far as I can understand, all the variations of push notifications rely on open connections, and then the servers of the applications send the notifications to the clients through such connection(s). So, this approach gives us the feeling that it is asynchronous, but essentially it is not. We are cheating, in the sense that there is a constantly open connection to a server, and moreover, as far as I can understand, the application server has to push the notification through that server. Schematically:

A>中央应用程序服务器>中央服务器瓦特/打开连接到我的手机>我

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

所以,这似乎再次成为一个集中式的方法。

So, this seems to be once again a centralized approach.

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

Honestly, the only approach that I can think of that is both decentralized and asynchronous (on mobile phones as well) is to run an http server on every platform/device, but this comes at the expense of not using Wi-Fi and assuming that a telecommunication company really assigns a physical IP address to every mobile phone (which I do not know if it is true, do you?).

有关废弃物,这些地下,F2Fs等什么?难道他们提供了优势,在一些利益相关方之间更直接的异步通信的意义吗?是否有实际的应用程序进行通信使用这种方法(包括移动电话)。

What about WASTE, darknets, F2Fs, etc? Do they offer advantages in the sense of a more direct asynchronous communication between some interested parties? Are there real-world applications (also including mobile phones) using such approaches for communication.

真的,这不是我想工作的实际问题,但我想知道艺术的状态是什么,这样我可以计算出如何从那里继续。因此,所有的评论都是真的欢迎。如果您对艺术的状况引用我想知道他们为好,但简要说明也将是不错的。

Really, this is not the actual problem that I would like to work on, but I would like to know what the state of the art is so that I can figure out how I can proceed from there. So, all comments are really more than welcome. If you have references for the state of the art I would like to know about them as well, but a brief description would also be nice.

我AP preciate所有的时间和精力在前进。

I appreciate all your time and effort in advance.

推荐答案

您问了很多问题,这里是答案的开头:

You asked many questions, here is the beginning of the answers:

Q1:是。例如,以BitTorrent的非常成功的千万+节点的网络。除了引导过程中,该协议是完全分散的,异步的。 http://www.diva-portal.org/smash/get /diva2:436670/FULLTEXT01.pdf
Q2:是!转到www.whatismyip.com在您的移动电话,你会看到你分配的IP。但是,你很可能会非常过滤(例如:80端口上的传入流量很可能会被阻止)。
Q3:它拥有P2P和聪明的把戏元素来解决NAT问题:的 http://arxiv.org/ftp/cs/papers/0412/0412017.pdf
Q4:我不知道

Q1: Yes. For example, take BitTorrent's very successful 10 million+ node network. Aside from the bootstrapping process, the protocol is entirely decentralized and asynchronous. http://www.diva-portal.org/smash/get/diva2:436670/FULLTEXT01.pdf Q2: Yes! Go to www.whatismyip.com on your mobile telephone, and you will see your assigned IP. However, you are likely to be very filtered (e.g: incoming traffic on port 80 is likely to be blocked). Q3: It has elements of P2P and clever tricks to get around NAT issues: http://arxiv.org/ftp/cs/papers/0412/0412017.pdf Q4: I don't know.

这篇关于真实世界的跨平台的异步分散的对等网络通信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆