论文部分内容阅读
摘要: P2P网络是一种全新的第三代网络拓扑结构,是一种分散式的网络架构,采用的是点对点的方式,这种网络结构在文件共享,对等计算,搜索引擎等方面都拥有很多的优点,本系统是在P2P网络的基础上,应用JXTA架构来完成的一个平台,JXTA结构是一种混合P2P搜索模式的网络协议,平台优势在与对于内容分发性能和下载软件的设计操作简单,系统稳定,所以在软件的设计中,经常会运用该类型的架构和性能分析。
关键词: 网络编码;P2P;分发性能
1 基于网络编码的P2P发展概述
近年来,随着Napster、KaZaa、BT、eMule这样的基于P2P技术的文件共享软件在Internet上迅速传播,P2P技术在国际国内都引发了研究的新热潮。P2P工作组(P2PWG)、全球网格论坛(Global Grid Forum,GGF)是国外兴起的研究P2P技术的机构,它们主要致力于P2P计算基础设施和标准化的完善。P2PWG主要的贡献是统一了P2P计算的术语,但在标准化工作上进展缓慢。其后,P2PWG与GGF合并,又新组织负责P2P技术相关工作,GGF主要负责P2P技术的标准化工作。
随着P2P技术的发展,国外公司对P2P技术的投入比较也开始加大,如Microsoft公司、Sun公司和Intel公司。微软公司发布了基于Pastry的软件包。在2000年8月,英特尔公司开始研究P2P技术,于2002年推出了基于.NET架构之上的Accelerator Kit软件包。2002年月,IBM公司进军网格计算,并与Globus合作,着手制定网格计算的各种标准。Sun公司依托Java技术,开展了JXTA项目。
在国外,P2P技术一般应用在两个方面:运算群组和数据传输。在国内,由于各科研机构缺少核心CPU的研发能力,所以很难对运算群组进行研究。数据传输有很广的应用领域,从技术角度也比群组运算低得多,大家普遍见到的是文件传输和资源共享。可以分为以下三类:Gnutella,KazaA,Groove。
1.1 Gnutella
Gnutella是一个开放的系统,它是由一个非功利的机构开发的。Gnutella不必使用中央服务器,利用自身的协议,使用完全分布式的模式。由于Gnutella系统是完全开放的系统,所有它没有任何商业价值,只能为人们提供资源共享。国内的Openext就是根据Gnutella开发的。
1.2 KazaA
KazaA是混合P2P模式的典型代表。它兼有Napster和Gnutella的共同优点,使得它成为当今流行的P2P软件之一。在结构上,它与Gnutella类似,采用全分布式结构。在系统上,它与Napster类似,采用中央服务器进行管理,但是传输数据不通过服务器。目前,国内的PP点点通和Realink都采用了类似于KazaA的模式。
1.3 Groove
Groove利用雄厚的技术实力,外加微软的资金支持,它在商业化程度是发展的最好的。Groove的目的很明确,主要是针对企业和商务应用。所以,Groove的功能比较少,只构建了一个P2P平台,很多功能都是外包给第三方开发的。
2 基于网络编码的P2P内容分发性能分析
P2P是英文Peep-to-Peer的简称,Peer在英文里有“对等着”的意思。因此,从字面上理解,P2P可以理解为对等互联网的意思。在国内,大部分媒体都把P2P称为“点到点”或者“端到端”,但用专业计算机术语,它称为对等计算。P2P是一种网络模型,在这个模型中所有的节点都是对等的,各个节点在网络中既是资源的提供者,又是资源的获取者,同时各节点具有相同的职责和能力去协同完成任务。对等点之间只需通过互连就可以实现共享信息资源、CPU资源和存储器资源,而不需要通过服务器的中间过渡环节。随着像Napster的各种P2P软件的流行,P2P技术受到了广泛的关注。
系统对等体管理模块主要负责管理对等体的一些行为,包括对等体的启动、对等体身份的转换、对等体的离线和一些其他的行为。
2.1 对等体的启动
用户开启软件时,对等体登入JXTA网络,并且找到一个SuperPeer进行连接,连接上后开始上传用户共享资源的索引。对等体和SuperPeer创建了虚拟的通信管道,所有的共享资源索引都是通过它进行传输的。
具体描述如下:
用户开启软件,软件启动JXTA平台,互用对等体加入网络对等组NetPeerGroup,然后初始化对等组,将对等组的类型设置为未知类型。然后寻找用户对等组PPMusicPeerGroup,找到响应组则加入进去,未找到则直接创建新用户对等组,通过使用makeGrouplD0方法和预定义的字符串,来生成定义对等组lD的URL,这样就保证了每个用户对等体所生成的对等组ID都相同。拥有用户对等组后就开启一个线程,创建输入管道inputPipe_PP
Music。以未知类型在网络中寻找MainSuperPeer。
如果找到至少一个MainSuperPeer,就执行下一步,看是否有ViaSuperPeer,有则上传本地资源列表给MainSuperPeer,没则转化自身为MainSuperPeer;如果没找到,就将自身转化为MainSuperPeer,同时开启一个新的线程,创建输入inputPipe
_PPMusic,更新本地资源,然后启动结束。
2.2 对等体身份的转换
在P2P网络中,对等体的加入和退出是很平常的事,但在混合P2P网络中,SuperPeer的退出会对虚拟子网造成一定影响,所以需要转换对等体的身份,来消除这种影响,使系统正常运行。
对等体之间有三种身份可以切换NormalPeer、MainSuper
Peer、ViaSuperPeer,身份的切换过程有如下几种情况。 1)NormalPeer转换成MainSuperPeer。2)NormalPeer将自己转换为ViaSuperPeer。首先由于定点数学计算量要求非常高和扩展的数学指令集只能在32位上运行所以代码编译也需要32位环境下进行编译同时需要使用到USB存储器RAM和及其堆栈分配。USB RAM一般情况下不运行在LPC214X环境下,但Rowley CrossStudio IDE已经提供的此硬件设备的初始化。Philips_
LPC2148_startup.s创建并放置在MP3播放器项目目录,以支持USB RAM设备,但是,但我们还需要在代码中加入堆栈分配代码到USB DMA RAM的内存部分。通过“项目选项”选择“编译器选项”。
然后创建一个子Peer列表sonPeerList,将Peer的adv_Ma
InSuperPeer设置为正确值,再从子Peer中提升一个NormalPeer
为ViaSuperPeer。
对等体的离线主要分为两种情况:主动离线和被动离线
1)NormalPeer离线
① 主动离线
NormalPeer主动离线的流程图具体描述如下:
NormalPeer调用方法createOutputPipe(adv_MainSuper
Peer)连接MainSuperPeer。如果连接成功,就给父MainSuper
Peer发送离线消息;如果不成功,就连接ViaSuperPeer,然后给ViaSuperPeer发送离线消息,并告之MainSuperPeer已经离线。MainSuperPeer在收到NormalPeer后,将NormalPeer的资料从本地资源索引列表中删除,然后连接ViaSuperPeer。连接成功就复制资源索引列表给ViaSuperPeer,不成功的话就提升一个NormalPeer作为ViaSuperPeer。当ViaSuperPeer收到NormalPeer的离线消息,并得知MainSuperPeer已经离线时,将NormalPeer的资料从本地资源索引列表删除,ViaSuperPeer
将自己转换成MainSuperPeer,同时提升一个NormalPeer作为ViaSuperPeer,最后更新本地资源索引列表。
② 被动离线
NormalPeer离线不会对整个网络结构产生任何影响,所以可以不予理会。
2)MainSuperPeer离线
① 主动离线
② 被动离线
按照“ViaSuperPeer将自己转换为MainSuperPeer”的规则操作。
3 结论
P2P让网络的资源从“中心”走到了“边缘”,也就是说这些资源不将存在于服务器上,而存在于各个PC机上。P2P让PC机的功能更丰富起来,既是服务器又是客户端。混合P2P则会依靠一些中心服务器来执行一些功能。P2P拓扑结构是指分布式系统中各计算机之间的物理连接关系,网络的拓扑类型是由节点间的拓扑结构来决定的。
参考文献:
[1]李含草、张宏、徐永晋,使用JXTA实现P2P通信[J].微计算机信息,2004,4:46.
[2]李祖鹏、黄道顺、庄雷、黄建华,Peer-to-Peer网络模型研究[J].计算机工程,2004,6:12.
[3] Henrik N,Gudrun F.Search and browse services for heterogeneous collections with the peer-to-peer network Pepper[.Information Processing and Management,2007,3:625-640.
[4]陈建华,计算机对等网络P2P技术[J].计算机工程与应用,2003,33:-21.
[5]胡放明、李俊兵、贺贵明、丁健,对P2P网中发现机制的研究[J].计算机应用,2004:649-50.
关键词: 网络编码;P2P;分发性能
1 基于网络编码的P2P发展概述
近年来,随着Napster、KaZaa、BT、eMule这样的基于P2P技术的文件共享软件在Internet上迅速传播,P2P技术在国际国内都引发了研究的新热潮。P2P工作组(P2PWG)、全球网格论坛(Global Grid Forum,GGF)是国外兴起的研究P2P技术的机构,它们主要致力于P2P计算基础设施和标准化的完善。P2PWG主要的贡献是统一了P2P计算的术语,但在标准化工作上进展缓慢。其后,P2PWG与GGF合并,又新组织负责P2P技术相关工作,GGF主要负责P2P技术的标准化工作。
随着P2P技术的发展,国外公司对P2P技术的投入比较也开始加大,如Microsoft公司、Sun公司和Intel公司。微软公司发布了基于Pastry的软件包。在2000年8月,英特尔公司开始研究P2P技术,于2002年推出了基于.NET架构之上的Accelerator Kit软件包。2002年月,IBM公司进军网格计算,并与Globus合作,着手制定网格计算的各种标准。Sun公司依托Java技术,开展了JXTA项目。
在国外,P2P技术一般应用在两个方面:运算群组和数据传输。在国内,由于各科研机构缺少核心CPU的研发能力,所以很难对运算群组进行研究。数据传输有很广的应用领域,从技术角度也比群组运算低得多,大家普遍见到的是文件传输和资源共享。可以分为以下三类:Gnutella,KazaA,Groove。
1.1 Gnutella
Gnutella是一个开放的系统,它是由一个非功利的机构开发的。Gnutella不必使用中央服务器,利用自身的协议,使用完全分布式的模式。由于Gnutella系统是完全开放的系统,所有它没有任何商业价值,只能为人们提供资源共享。国内的Openext就是根据Gnutella开发的。
1.2 KazaA
KazaA是混合P2P模式的典型代表。它兼有Napster和Gnutella的共同优点,使得它成为当今流行的P2P软件之一。在结构上,它与Gnutella类似,采用全分布式结构。在系统上,它与Napster类似,采用中央服务器进行管理,但是传输数据不通过服务器。目前,国内的PP点点通和Realink都采用了类似于KazaA的模式。
1.3 Groove
Groove利用雄厚的技术实力,外加微软的资金支持,它在商业化程度是发展的最好的。Groove的目的很明确,主要是针对企业和商务应用。所以,Groove的功能比较少,只构建了一个P2P平台,很多功能都是外包给第三方开发的。
2 基于网络编码的P2P内容分发性能分析
P2P是英文Peep-to-Peer的简称,Peer在英文里有“对等着”的意思。因此,从字面上理解,P2P可以理解为对等互联网的意思。在国内,大部分媒体都把P2P称为“点到点”或者“端到端”,但用专业计算机术语,它称为对等计算。P2P是一种网络模型,在这个模型中所有的节点都是对等的,各个节点在网络中既是资源的提供者,又是资源的获取者,同时各节点具有相同的职责和能力去协同完成任务。对等点之间只需通过互连就可以实现共享信息资源、CPU资源和存储器资源,而不需要通过服务器的中间过渡环节。随着像Napster的各种P2P软件的流行,P2P技术受到了广泛的关注。
系统对等体管理模块主要负责管理对等体的一些行为,包括对等体的启动、对等体身份的转换、对等体的离线和一些其他的行为。
2.1 对等体的启动
用户开启软件时,对等体登入JXTA网络,并且找到一个SuperPeer进行连接,连接上后开始上传用户共享资源的索引。对等体和SuperPeer创建了虚拟的通信管道,所有的共享资源索引都是通过它进行传输的。
具体描述如下:
用户开启软件,软件启动JXTA平台,互用对等体加入网络对等组NetPeerGroup,然后初始化对等组,将对等组的类型设置为未知类型。然后寻找用户对等组PPMusicPeerGroup,找到响应组则加入进去,未找到则直接创建新用户对等组,通过使用makeGrouplD0方法和预定义的字符串,来生成定义对等组lD的URL,这样就保证了每个用户对等体所生成的对等组ID都相同。拥有用户对等组后就开启一个线程,创建输入管道inputPipe_PP
Music。以未知类型在网络中寻找MainSuperPeer。
如果找到至少一个MainSuperPeer,就执行下一步,看是否有ViaSuperPeer,有则上传本地资源列表给MainSuperPeer,没则转化自身为MainSuperPeer;如果没找到,就将自身转化为MainSuperPeer,同时开启一个新的线程,创建输入inputPipe
_PPMusic,更新本地资源,然后启动结束。
2.2 对等体身份的转换
在P2P网络中,对等体的加入和退出是很平常的事,但在混合P2P网络中,SuperPeer的退出会对虚拟子网造成一定影响,所以需要转换对等体的身份,来消除这种影响,使系统正常运行。
对等体之间有三种身份可以切换NormalPeer、MainSuper
Peer、ViaSuperPeer,身份的切换过程有如下几种情况。 1)NormalPeer转换成MainSuperPeer。2)NormalPeer将自己转换为ViaSuperPeer。首先由于定点数学计算量要求非常高和扩展的数学指令集只能在32位上运行所以代码编译也需要32位环境下进行编译同时需要使用到USB存储器RAM和及其堆栈分配。USB RAM一般情况下不运行在LPC214X环境下,但Rowley CrossStudio IDE已经提供的此硬件设备的初始化。Philips_
LPC2148_startup.s创建并放置在MP3播放器项目目录,以支持USB RAM设备,但是,但我们还需要在代码中加入堆栈分配代码到USB DMA RAM的内存部分。通过“项目选项”选择“编译器选项”。
然后创建一个子Peer列表sonPeerList,将Peer的adv_Ma
InSuperPeer设置为正确值,再从子Peer中提升一个NormalPeer
为ViaSuperPeer。
对等体的离线主要分为两种情况:主动离线和被动离线
1)NormalPeer离线
① 主动离线
NormalPeer主动离线的流程图具体描述如下:
NormalPeer调用方法createOutputPipe(adv_MainSuper
Peer)连接MainSuperPeer。如果连接成功,就给父MainSuper
Peer发送离线消息;如果不成功,就连接ViaSuperPeer,然后给ViaSuperPeer发送离线消息,并告之MainSuperPeer已经离线。MainSuperPeer在收到NormalPeer后,将NormalPeer的资料从本地资源索引列表中删除,然后连接ViaSuperPeer。连接成功就复制资源索引列表给ViaSuperPeer,不成功的话就提升一个NormalPeer作为ViaSuperPeer。当ViaSuperPeer收到NormalPeer的离线消息,并得知MainSuperPeer已经离线时,将NormalPeer的资料从本地资源索引列表删除,ViaSuperPeer
将自己转换成MainSuperPeer,同时提升一个NormalPeer作为ViaSuperPeer,最后更新本地资源索引列表。
② 被动离线
NormalPeer离线不会对整个网络结构产生任何影响,所以可以不予理会。
2)MainSuperPeer离线
① 主动离线
② 被动离线
按照“ViaSuperPeer将自己转换为MainSuperPeer”的规则操作。
3 结论
P2P让网络的资源从“中心”走到了“边缘”,也就是说这些资源不将存在于服务器上,而存在于各个PC机上。P2P让PC机的功能更丰富起来,既是服务器又是客户端。混合P2P则会依靠一些中心服务器来执行一些功能。P2P拓扑结构是指分布式系统中各计算机之间的物理连接关系,网络的拓扑类型是由节点间的拓扑结构来决定的。
参考文献:
[1]李含草、张宏、徐永晋,使用JXTA实现P2P通信[J].微计算机信息,2004,4:46.
[2]李祖鹏、黄道顺、庄雷、黄建华,Peer-to-Peer网络模型研究[J].计算机工程,2004,6:12.
[3] Henrik N,Gudrun F.Search and browse services for heterogeneous collections with the peer-to-peer network Pepper[.Information Processing and Management,2007,3:625-640.
[4]陈建华,计算机对等网络P2P技术[J].计算机工程与应用,2003,33:-21.
[5]胡放明、李俊兵、贺贵明、丁健,对P2P网中发现机制的研究[J].计算机应用,2004:649-50.