JXTA网络中的P2P通信

2015-04-29 17:46刘班
工业设计 2015年10期
关键词:广告防火墙节点

刘班

摘 要:JXTA网络中节点之间的通信问题是开发基于JXTA协议的应用程序必须要解决的技术难题,本文针对JXTA网络中的发现广告和节点、穿越防火墙和NAT以及在节点之间路由消息等问题进行了比较详细的论述。

关键词:JXTA;P2P;广告;节点;防火墙;NAT

在P2P网络中要解决的基本问题是在联网设备之间如何交换服务,而解决这个问题首先需要找到两个问题的答案:一个联网设备如何才能找到P2P网络中的节点和服务;在内部网络中的一个联网设备如何才能加入到P2P网络中。第一个问题是非常重要的,因为如果不能知道网络中一个节点或一个服务的存在,对于一个设备而言就不可能使用那个服务。第二个问题也是重要的,因为P2P网络中的很多设备都被一些专门设计用来阻止来自两个不同内部网络的设备进行直接连接的网络装置隔离。

1 发现广告

在基于JXTA构建的P2P网络中,几乎任何一个JXTA网络资源都可以表示为广告,这个特性大大简化了发现P2P网络中的节点、节点组、管道以及端点的问题,只需找到表示那些资源的广告,就相当于找到了对应的资源。

P2P网络中的一个节点能使用三种技术发现一个广告:即,本地发现技术、直接发现技术以及间接发现技术。第一种发现技术不需要联网,可以将其看作一种消极被动的发现技术。后两种发现技术需连接网络后才能执行查询操作,可将其看作是一种积极主动的发现技术。

1.1 本地发现

对于节点而言,最简单的发现广告技术是在本地缓存中发现广告。尽管这种技术看起来很简单,但该技术可以有效地减少由节点产生的网络流量,同时也可以使节点瞬间获得结果。

在最简单的情况下,节点本地缓存只包含一个文本文件,该文件中列出了该节点以前发现的集合节点的IP地址和端口号,以此提供一个积极发现的起点。而在较复杂的情况下,节点缓存中有一个包含了该节点以前发现的所有广告的数据库。节点缓存甚至可能是被硬编码到P2P应用中,尽管这会限制P2P应用的灵活性。

使用节点本地广告缓存的一个缺点是缓存中的广告可能已经过期,这种过期的广告所描述的资源是不可用的,这时如果一个节点试图去使用一个过期广告对应的资源就会出问题。尽管使用缓存发现广告可能减少网络的流量,但如果节点使用一个过期的广告,反而会增加网络的流量,这是因为当一个节点试图去使用一个网络上的资源,但发现那个资源不再可用,这个节点就会使用积极发现的方法,在这种情况下,这个节点就相当于访问了两次网络,而节点如果单纯用积极发现的方法,则只需访问一次网络。

为了减少广告过期的可能,缓存可以采用使广告失效的方法将过期广告从其中删除。一种使广告失效的方法是在每个广告中加入一个时间标记。当一个广告被发现后,就在其中加入时间标记,同时设置广告的最长有效期,这样在使用一个广告之前,缓存会检查广告的时间标记,如果认为其不再有效,就将其删除。缓存会周期性地检查其中过期的广告,以此减少存储消耗和提高响应速度。缓存可能使用的另一种使广告失效的技术是先进先出的广告栈技术,这种技术将广告缓存看作是一个栈,当该缓存装满了广告之后,如果这时又有新发现的广告要存入,则缓存会先删除其中最老的广告,然后再执行新广告存入操作。

1.2 直接发现

在同一个局域网中的节点,能够不依靠中间的集合节点的帮助而直接发现对方。直接发现技术需要节点使用网络传输的广播或多播能力。当其他节点通过直接发现机制被发现后,节点就可以通过直接和这些被发现的节点通信的方式来发现其他的广告,而不需要使用广播或多播的能力。但是,这种发现技术要求节点必须限制在本地局域网内,而且一般不能用于发现本地网络外的其它节点。发现本地网络外的其它节点和广告,需要使用基于集合节点的间接发现技术。

1.3 间接发现

间接发现技术需要借助集合节点代替节点执行发现操作。本地局域网中的节点可以用该技术找到其它节点,而不需用广播或多播能力,同时本地网络中的节点也可用该技术去发现本地网络外的节点。

集合节点为节点提供了两种可能的方式执行发现操作:传播方式:集合节点发送发现请求给网络上它知道的那些节点,其中包括其它的集合节点和一般的节点;缓存广告方式:和一般节点利用缓存广告的机制来减少网络流量一样,集合节点也能够利用缓存广告机制响应其它节点的发现请求。这两种技术为集合节点缓存大量的广告以及服务大量的一般节点提供了一种有效的解决方案。集合节点能够将来自一般节点或其它集合节点的响应广告缓存起来方便以后使用,从而更进一步减少了网络流量、提高了网络性能。

尽管缓存广告机制减少了发现资源所需的网络流量,但如果没有任何限制地传播发现请求给其它集合节点,那么就会导致P2P网络中出现严重的网络堵塞。为了防止发现请求的无限制地传播,发现请求所在消息通常会包含一个TTL属性,该属性的含义是一个发现请求可在网络节点间传播的最大次数。当一个集合节点接收到一个包含发现请求的消息后,这个集合节点会将该消息的TTL原值减1,如果减1后TTL值为0,则这个集合节点会将该消息丢弃,否则这个集合节点会将该消息继续传播到其它节点。

2 发现集合节点和转发节点

对于大多数内网节点而言,找到集合节点和路由节点对于其能否加入P2P网络至关重要。由于内部网络中防火墙的限制,一个内网节点没有能力利用直接发现机制发现位于内部网络之外的其它节点,然而该节点仍然能够利用内部网络中的集合节点和路由节点执行间接发现操作。

在大多数P2P应用中,最容易使一个节点找到集合节点和路由节点的方法是在该节点中植入固定的一套集合点和路由节点的地址,这些集合节点和转发节点通常都具有静态的或可解析的IP地址,并且被其它节点用作进入P2P网络的入口。一个位于防火墙后的内网节点可以使这些静态的集合节点作为发现其它节点和服务的起点,同时能够使用一系列转发节点穿越防火墙连接其它节点。

3 穿越防火墙/NAT

NAT和防火墙的联合使用将导致节点P2P通信的不便。如果连接不是由内网节点主动发起的,那么外网节点就无法和内网节点连接通信,而且防火墙也可以基于连接使用的协议或目标节点IP及端口号阻止该连接。

内网节点可以用来解决这个问题的工具是其自身拥有的与防火墙/NAT外部的外网节点主动建立连接的能力。内网节点可以使用防火墙允许的协议穿越防火墙,建立和外部网络的连接。通过从内部网络建立初始连接,在NAT路由表中必要的内外网节点IP地址及端口号的映射关系就会建立起来,从而使一个外网节点可以将数据传送到内网节点。然而,如果防火墙被配置成阻止所有的对外连接,那么内外网节点间的通信就完全不能进行了。

在大多数公司的内部网络中,几乎所有的防火墙都允许内网节点基于HTTP协议对外部网络发送连接请求,但HTTP协议并没有为外网节点提供穿越防火墙去主动连接内网节点的功能。为了解决这个问题,防火墙后的内网节点利用位于防火墙外部或防火墙外部可见的转发节点实现穿越防火墙的功能。一个试图和防火墙后的内网节点主动连接的外网节点可以先与转发节点连接,防火墙后的内网节点再周期性地连接转发节点,并从中取出外网节点传入的消息。该技术必须使用防火墙和转发节点可以都可以理解的协议进行消息的传输。转发节点可以有效地在用于P2P通信的网络传输协议和用于穿越防火墙的网络传输协议间进行转换。

4 在节点间路由消息

在防火墙或NAT位于两个节点之间的情况下,转发节点就必须用于在外网节点和位于防火墙后的内网节点之间代理一个连接。在只有一个防火墙分隔源节点和目标节点的简单情况下,只需要一个转发节点。而在源节点和目标节点各有一个防火墙或NAT保护的复杂情况下,就需要使用多个转发节点实现穿越双方的防火墙/NAT的功能。

4.1 穿越单一防火墙/NAT

一个位于防火墙或NAT后面的内网节点可以通过三个步骤向另一个外网节点发送消息:位于防火墙/NAT后的内网源节点使用可以穿越防火墙的协议(比如HTTP协议)连接转发节点,并请求转发节点转发一个消息到外网目标节点;转发节点接受来自位于防火墙后的内网源节点的连接,并代表该节点初始化和外网目标节点的连接,这个连接使用转发节点和外网目标节点共同使用的协议;消息从内网源节点经由转发节点发送到外网目标节点。此时转发节点充当了内网源节点的代理。

为了让一个外网节点可以发送消息到位于防火墙/NAT后的内网节点,外网源节点必须知道描述了能将消息路由到内网目标节点的一个转发节点的路由信息,该路由信息可以通过向P2P网络发送发现请求获得。

4.2 穿越两个防火墙/NAT

大多数位于Internet边缘的节点很可能被防火墙/NAT保护起来。因此,任何从源节点发送到目标节点的消息可能需要穿越两个防火墙/NAT边界。穿越两个防火墙的过程与穿越一个防火墙的过程非常相似,基本上就是两个方向的单防火墙穿越方案的结合。

5 结语

在JXTA网络中,发现广告和各类节点是进行P2P通信的基础,而穿越防火墙和NAT在节点间路由消息是P2P通信过程中必须解决的技术难题,本文在原理上针对这些问题进行了比较详细的分析,为基于JXTA协议的P2P应用程序开发提供了理论依据。

参考文献:

[1] 胡放明,李俊兵,贺贵明,等.对P2P网中发现机制的研究[J].计算机应用.2004(06):46-47.

[2] 李志晋,段富.基于语义的Web服务发现机制的研究[J].太原理工大学学报.2006(S1):82-84.

[3] 欧阳晔,姜浩,潘顺.移动Agent域间发现机制研究[J].现代计算机: 专业版.2003(01):10-12.

[4] 冯百明,刘兴武,李伟.一种面向消费者的服务发现机制[J].计算机研究与发展.2003(12):1787-1790.

[5] 马秀琴,冯百明,秦红武.一种面向服务提供者的服务发现机制[J].甘肃广播电视大学学报.2005(01):60-63.

[6] 秦志光,杨毅,杨磊,等.P2P网络中利用推拉模式实现的信誉系统[J].计算机工程与应用.2013(05):88-92.

[7] 汪胡青,孙知信.P2P网络中恶意节点控制算法的研究[J].计算机工程.2012(17):142-144.

[8] 谭振华,王兴伟,程维,等.基于多维历史向量的P2P分布式信任评价模型[J].计算机学报.2010(09):1725-1735.

[9] 陈爱国,徐国爱,杨义先.评价离散度敏感的P2P交易系统信任模型[J].电子科技大学学报.2010(03):425-429.

[10] 谭振华,王贺,程维,等.基于通信历史相关性的P2P网络分布式信任模型[J].东北大学学报: 自然科学版.2009(09):1245-1248.

[11] 苗光胜,冯登国,苏璞睿.P2P信任模型中基于行为相似度的共谋团体识别模型[J].通信学报.2009(08):9-20.

[12] 姜守旭,李建中.一种P2P电子商务系统中基于声誉的信任机制[J].软件学报.2007(10):2551-2563.

[13] 宋芳.P2P技术的研究与应用[J].湘潭师范学院学报: 自然科学版.

2009(04):70-72.

[14] 宫丽华,李登道,李克峰.P2P技术的研究与应用现状[J].电脑知识与技术.2009(36):10556-10558.

[15] 潘国浩.因特网中P2P技术的研究与应用[J].电脑知识与技术: 学术交流.2007(07):57-59.

[16] 陈姝,方滨兴,周勇林.P2P技术的研究与应用[J].计算机工程与应用.2002(13):20-23.

猜你喜欢
广告防火墙节点
CM节点控制在船舶上的应用
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的门窗节点图快速构建
构建防控金融风险“防火墙”
省级党报广告品位提升与影响力拓展
媒介自建:湖南媒介型广告公司发展新路径探究
广告语对广告效果的影响初探
在舌尖上筑牢抵御“僵尸肉”的防火墙
抓住人才培养的关键节点
下一代防火墙要做的十件事