天天看点

JXTA理论篇

Peers之间的路由消息

  Router Peers作为代理连接防火墙或NAT分隔的两个Peer。在防火墙保护下的peer周期连接Router peer以查看是否有新的消息。注意:在防火墙保护下的peer必须使用能穿透防火墙或NAT的协议(防火墙根据端口号过滤协议,一般不会过滤HTTP协议)。一旦消息从source peer发到destination peer,连接就关闭。接下来的消息可以重复该操作,但是消息可能使用不同的router peer,因此,可能使用不同的路由器到destination peer。

    同样,公网上的peer想要给防火墙内部的peer发送消息,source peer必须知道router peer能够发送信息给destination peer的路由信息。 路由信息可能通过早期P2P的发现协议获得。也同样需要source peer周期连接destination peer, 连接一次就关闭。所以可能下次连接的router peer就换了。

双防火墙和NAT穿透 

一些在边缘网络上的peer,通常需要两次穿透防火墙和NAT的界限,具体情况如下图:

JXTA理论篇

具体过程与单穿透NAT类似

假如source peer和destination peer有一个共同的router peer。双穿透NAT可以只使用那个公共的router peer。 然而,使用router peer除了用作穿透防火墙边界还有其他作用。多个router peers可以作为解决网络瓶颈提供更高性能的一种手段,或者作为两个不兼容网络的翻译者。在这种情况下,当一个peer连接到source router peer的时候,它提供一些列的router peers供选择。

比较业界的P2P解决方案

Napster

Napster 混合了P2P模式和c/s模式,有一台中央服务器提供搜索。这种架构可以标记为单汇聚点和多个simple peers,所有的网络传输用TCP协议。汇聚点提供simple peers查找MP3文件通告的能力,这些通告包括文件名,IP地址和端口信息。 Simple peers 使用这些信息链接宿主peer(文件的所有者)然后下载文件。 Napster不提供全面穿透防火墙的能力,它只能穿透一层防火墙。每个peer充当简单的路由器,通过使用HTTP发送能力给防火墙后面的peer。 Napster也不提供消息路由能力,这意味着在网络中的简单peer不能作为router peer从而达到穿透双防火墙的能力。

Gnutella

   在Gnutella网络中,每个peer充当simple peer,rendezvous peer,和router peer,使用TCP和HTTP协议作为文件传输。在网络中搜索都会被peer转发到它所知道的邻居中。在Gnutella网络中通告内容包括IP地址,端口号,一个序号标记宿主peer的文件和文件的一些详细信息,如文件名字和大小。Gnutella也不同工全路由peer的能力,这也就意味着Naster,Gnutella都只能穿透一层防火墙。

Client/Server

即使是简单的C/S架构也可以解释为P2P架构。如client作为一个simple peer,服务端作为rendezvous peer,根据不用的应用提供通告。不提供穿透防火墙的能力,网络传输协议根据不同的应用而不同。

下一篇: jxta