论文部分内容阅读
摘 要:随着国际互联网的发展和普及,互联网用户数和网络数据量急剧增加,当前网络的主流C/S模式的服务器端负担越来越重。为此,一种基于端的无中心的P2P网络计算模式成为当前研究的热点。而P2P文件共享技术无疑是其中的最重要的研究问题之一。
关键词:对等计算;网络;文件共享
中图分类号:TP393.09文献标识码:A
Based on Web Digital Picture Sharing and Retrieval System Discussion
LIUMing1,2
(1. Tongji University, Shanghai 200092;2.Huanghuai Institute,HenanZhumadian463000)
Key words: P2P;network;file sharing
1 系统开发的背景
随着Internet的广泛普及和网络应用规模的不断扩大,当前网络中占主导地位的客户机/服务器模式,由于数据集中存储在各种服务器上,用户通过连接服务器获取所需的数据,服务器端传输到客户端的数据量很大,而反向的数据量却非常小,这造成了服务器端不堪重负,成为整个系统的瓶颈。一旦用户数量增加,整个系统的性能将明显下降;而且一旦服务器发生故障,整个系统将陷于瘫痪。为此人们提出了一种计算模式-基于目录的分布式模式(Directory-basedDistributed Model)。该模式中,网络资源是分的,客户机向目录服务器提出服务请求,目录服务器决定哪个网络资源提供服务,然后客户机独立地与网络资源提供者联系,获取其想要的服务,系统通过目录服务器均衡客户机流量,让多个网络资源提供者分担客户机的请求。“相对于传统的客户机/服务器模式和浏览器/服务器模式而言,该计算模式中,服务器性能和带宽瓶颈问题得到了缓和,但是目录服务器仍然是系统访问的热点。”[1]
与此同时,计算机硬件以类摩尔定律的速度发展,Internet端系统计算及存储能力得到了迅速的增强;并且这些端系统的上载带宽、计算资源和存储资源很多时间都处于低负荷甚至闲置状态,造成了资源的浪费。于是,人们开始考虑利用这些原先被忽视的上载带宽、计算资源和存储资源,基于端的无中心模式(Peer-based Decentralized Model)也就应运而生,该模式也称为对等计算模式(Peer-to-Peer Model),即P2P计算模式。在P2P计算模式中所有节点是对等的,这些节点既是客户机同时又是服务器,称为对等机(SERVer-cliENT,SERVENT),节点之间通过协作互利的原则共享彼此的资源,其中的每一个节点(peer)大都同时具有信息消费者、信息提供者和信息通讯等三方面的功能。随着各类数字终端、服务器资源、网络带宽等资源持续保持类摩尔定律式的高速增长,通过更直接的共享方式来提高沟通效率、减少资源浪费并保障信息服务安全将为信息社会带来新一轮的发展高潮。而P2P技术恰好能为服务共享、分布式计算和信息交流提供更灵活高效的模式,也为信息安
全带来新的安全保障手段。
2 课题研究的意义
随着P2P技术的发展,人们尝试着使用P2P的方法解决各种问题,越来越多的P2P应用系统被提出并得到实践的检验,其中主要的包括:
2.1文件共享
P2P技术使在Internet上的任意两台计算机之间直接共享文档、多媒体和其它文件成为了可能。而传统的Web方式中,要实现文件交换需要服务器的全程参与,发布者将文件上传到某个特定的网站,接收者再到该网站搜索需要的文件,然后下载,这种方式对用户而言非常不方便。电子邮件虽然方便地解决了个人间文件传递问题,却没法解决大范围的交换,这就是Web的重要缺陷。“利用P2P技术,网上计算机之间可以进行直接交互,而不需要使用任何一台中央服务器。可以说,对文件交换的需求直接引发了P2P技术热潮。”[2]
2.2P2P分布式存储
分布式存储系统一直是分布式系统的一个重要领域,传统的局域网范围内的分布式文件系统、分布式对象存储系统、分布式数据库都有着良好的研究基础。P2P技术出现后,人们试图把这些分布式存储系统向更大范围拓展,提出了在广域网中构建的分布式文件系统、对象存储系统和数据库系统。P2P分布式存储系统是一个用于对等网络的数据存储系统,它可以提供高效率的、鲁棒的和负载平衡的文件存取功能。
2.3计算能力的共享
加入对等网络的节点除了可以共享存储能力之外,还可以共享CPU处理能力。目前已经有了一些基于对等网络的计算能力共享系统。比如SETI@home。目前SETI@home采用的仍然是类似于Napster的集中式目录策略。Xenoservers向真正的对等应用又迈进了一步。这种计算能力共享系统可以用于进行基因数据库检索和密码破解等需要大规模计算能力的应用。
3 国内外研究现状
“自从1999年最早的P2P系统Napster出现以来,P2P计算模式得到了蓬勃发展。按照节点集中程度(节点集中程度是指节点之间相互通信时是否需要中央服务器,对服务器的依赖程度如何)可划分为三种类型:集中式对等网络、分布式对等网络、混合式对等网络。”[3]
集中式P2P模式由一个中心服务器来负责记录共享信息以及反馈对这些信息的查询;每一个对等实体要对它所需共享的信息以及进行的通信负责,根据需要下载它所需要的其他对等实体上的信息。这种形式具有中心化的特点,但是它不同于传统意义上的Client/Server模式。因为传统意义上的Client/Server模式采用的是一种垄断的手段,所有资料都存放在服务器上,客户机只能被动地从服务器上读取信息,并且客户机之间不具有交互能力;而集中式P2P模式则是所有网上提供的资料都存放在提供该资料的客户机上,服务器上只保留索引信息,此外服务器与对等实体以及对等实体之间都具有交互能力。集中式对等网络典型代表有Napster。Napster通过一个中央服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。当某个用户需要某个音乐文件时,首先连接到Napster服务器,在服务器进行检索,并由服务器返回存有该文件的用户信息;再由请求者直接连到文件的所有者传输文件。
“Napster首先实现了文件查询与文件传输的分离,有效地节省了中央服务器的带宽消耗,减少了系统的文件传输延时。这种方式最大的隐患在中央服务器上,如果该服务器失效,整个系统都会瘫痪。当用户增加到一定数量时,Napster的系统性能会大大下降。另一个问题在于安全性上,Napster并没有提供有效的安全机制。”[4]
在Napster模型中,一群高性能的中央服务器保存着网络中所有活动对等计算机共享资源的目录信息。当需要查询某个文件时,对等机会向一台中央服务器发出文件查询请求。中央服务器进行相应的检索和查询后,会返回符合查询要求的对等机地址信息列表。查询发起对等机接收到应答后,会根据网络流量和延迟等信息进行选择,和合适的对等机建立连接,并开始文件传输。
在分布式P2P中,对等机通过与相邻对等机之间的连接遍历整个网络体系。每个对等机在功能上都是相似的,并没有专门的服务器,而对等机必须依靠它们所在的分布网络来查找文件和定位其他对等机。分布式对等网络典型代表有Gnutella。Gnutella是一个P2P文件共享系统,它和Napster最大的区别在于Gnutella是纯粹的P2P系统,没有索引服务器,它采用基于完全随机图的洪泛(Flooding)发现和随机转发(Random Walker)机制。为了控制搜索消息的传输,通过TTL(TimeTo Live)的减值来实现。在Gnutella分布式对等网络模型中,每一个联网计算机在功能上都是对等的,既是客户机同时又是服务器,所以被称为对等机(Servent,Server+Client的组合)。
随着联网节点的不断增多,网络规模不断扩大,通过这种洪泛方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。所以在初期的Gnutella网络中,存在比较严重的分区,断链现象。也就是说,一个查询访问只能在网络的很小一部分进行,因此网络的可扩展性不好。所以,解决Gnutella网络的可扩展性对该网络的进一步发展至关重要。
集中式P2P有利于网络资源的快速检索,并且只要服务器能力足够强大就可以无限扩展,但是其中心化的模式容易遭到直接的攻击;分布式P2P解决了抗攻击问题,但是又缺乏快速搜索和可扩展性。混合式P2P结合了集中式和分布式P2P的优点,在设计思想和处理能力上都得到了进一步的优化。它在分布式模式的基础上,将用户节点按能力进行分类,使某些节点担任特殊的任务。这些节点共分为3种:
⑴户节点:普通节点,它不具有任何特殊的功能。
⑵索节点:处理搜索请求,从它们的“孩子”节点中搜索文件列表,这些节点必须有128kbit/s的网络连接速度,应使用高性能的处理器。
⑶引节点:连接速度快、内存充足的节点可以作为索引节点。索引节点用于保存可以利用的搜索节点信息,并搜集状态信息,维护网络结构信息。一个节点可以既是搜索节点又是索引节点。用户节点可以选择3个搜索节点。
作为它的“父”节点,如果“父”节点接受该用户节点作为它的“孩子”节点的话,那么该用户节点就可以提交其所要共享的列表给它的“父”节点。在缺省的情况下,搜索节点可以最多维护500个“孩子”节点。在第三代P2P的软件体系结构中,采用了混合式P2P。这种模式的关键之一是引入了索引节点,索引节点不会直接连接到有版权的资料上,它就像搜索引擎一样,只是搜索和所需资料相关的地址,至于用户到底连接下载了什么内容则和它无关。这种模式的关键之二是引入搜索节点,搜索节点管理着所属用户的文件列表。用户节点通过索引节点获得搜索节点信息,之后用户节点就与获得的搜索节点相连,每一次查询都通过该搜索节点进行。当用户发出搜索请求后,如果和用户节点直接相连的搜索节点查询结果达到100个(这里的100个搜索结果,可以由用户自己来设定)就停止;如果不足100个,就向相邻的搜索节点发出请求,如果查询结果还不够,就继续向外快速发散,直到所有的搜索节点都被搜索到为止。若所有的搜索节点都被访问过,就意味着整个网络上的节点都被搜索到了,其速度要比纯P2P模式快得多。混合式对等网络典型代表有BitTorrent。
BitTorrent将中心目录服务器的稳定性同优化的分布式文件管理结合起来,从而在效率上远远超出了e-Donkey这类产品。它要求提供一个或多个统一的Web发布服务器,以供发布和搜寻资料。在客户端,它通过一个IE插件提供下载、上传管理。BT把一份大文件切割成碎片,为每一个碎片标上特殊标识,用户无须到一个固定地点(例如传统网络的中心服务器)上下载完整的文件,系统会自动寻找、随机下载具有相同标识的文件碎片,将其加以整合成为完整的文件。
参考文献:
[1]胡进锋,黎明,郑纬民.宽自适应的P2P网络路由协议[J].软件学报,2005,(10):35-41.
[2]杨再晗,陈建二,王建新.P2P计算研究现状及关键技术[J].现代电子技术,2004,(1):83-86.
[3]周文莉,吴晓非.P技术综述[J].计算机工程与设计,2006,(1):76-79
[4]关峪,胡绍海.文件传输算法的研究与实现[J].电脑开发与应用,2006,(2):18-21.
关键词:对等计算;网络;文件共享
中图分类号:TP393.09文献标识码:A
Based on Web Digital Picture Sharing and Retrieval System Discussion
LIUMing1,2
(1. Tongji University, Shanghai 200092;2.Huanghuai Institute,HenanZhumadian463000)
Key words: P2P;network;file sharing
1 系统开发的背景
随着Internet的广泛普及和网络应用规模的不断扩大,当前网络中占主导地位的客户机/服务器模式,由于数据集中存储在各种服务器上,用户通过连接服务器获取所需的数据,服务器端传输到客户端的数据量很大,而反向的数据量却非常小,这造成了服务器端不堪重负,成为整个系统的瓶颈。一旦用户数量增加,整个系统的性能将明显下降;而且一旦服务器发生故障,整个系统将陷于瘫痪。为此人们提出了一种计算模式-基于目录的分布式模式(Directory-basedDistributed Model)。该模式中,网络资源是分的,客户机向目录服务器提出服务请求,目录服务器决定哪个网络资源提供服务,然后客户机独立地与网络资源提供者联系,获取其想要的服务,系统通过目录服务器均衡客户机流量,让多个网络资源提供者分担客户机的请求。“相对于传统的客户机/服务器模式和浏览器/服务器模式而言,该计算模式中,服务器性能和带宽瓶颈问题得到了缓和,但是目录服务器仍然是系统访问的热点。”[1]
与此同时,计算机硬件以类摩尔定律的速度发展,Internet端系统计算及存储能力得到了迅速的增强;并且这些端系统的上载带宽、计算资源和存储资源很多时间都处于低负荷甚至闲置状态,造成了资源的浪费。于是,人们开始考虑利用这些原先被忽视的上载带宽、计算资源和存储资源,基于端的无中心模式(Peer-based Decentralized Model)也就应运而生,该模式也称为对等计算模式(Peer-to-Peer Model),即P2P计算模式。在P2P计算模式中所有节点是对等的,这些节点既是客户机同时又是服务器,称为对等机(SERVer-cliENT,SERVENT),节点之间通过协作互利的原则共享彼此的资源,其中的每一个节点(peer)大都同时具有信息消费者、信息提供者和信息通讯等三方面的功能。随着各类数字终端、服务器资源、网络带宽等资源持续保持类摩尔定律式的高速增长,通过更直接的共享方式来提高沟通效率、减少资源浪费并保障信息服务安全将为信息社会带来新一轮的发展高潮。而P2P技术恰好能为服务共享、分布式计算和信息交流提供更灵活高效的模式,也为信息安
全带来新的安全保障手段。
2 课题研究的意义
随着P2P技术的发展,人们尝试着使用P2P的方法解决各种问题,越来越多的P2P应用系统被提出并得到实践的检验,其中主要的包括:
2.1文件共享
P2P技术使在Internet上的任意两台计算机之间直接共享文档、多媒体和其它文件成为了可能。而传统的Web方式中,要实现文件交换需要服务器的全程参与,发布者将文件上传到某个特定的网站,接收者再到该网站搜索需要的文件,然后下载,这种方式对用户而言非常不方便。电子邮件虽然方便地解决了个人间文件传递问题,却没法解决大范围的交换,这就是Web的重要缺陷。“利用P2P技术,网上计算机之间可以进行直接交互,而不需要使用任何一台中央服务器。可以说,对文件交换的需求直接引发了P2P技术热潮。”[2]
2.2P2P分布式存储
分布式存储系统一直是分布式系统的一个重要领域,传统的局域网范围内的分布式文件系统、分布式对象存储系统、分布式数据库都有着良好的研究基础。P2P技术出现后,人们试图把这些分布式存储系统向更大范围拓展,提出了在广域网中构建的分布式文件系统、对象存储系统和数据库系统。P2P分布式存储系统是一个用于对等网络的数据存储系统,它可以提供高效率的、鲁棒的和负载平衡的文件存取功能。
2.3计算能力的共享
加入对等网络的节点除了可以共享存储能力之外,还可以共享CPU处理能力。目前已经有了一些基于对等网络的计算能力共享系统。比如SETI@home。目前SETI@home采用的仍然是类似于Napster的集中式目录策略。Xenoservers向真正的对等应用又迈进了一步。这种计算能力共享系统可以用于进行基因数据库检索和密码破解等需要大规模计算能力的应用。
3 国内外研究现状
“自从1999年最早的P2P系统Napster出现以来,P2P计算模式得到了蓬勃发展。按照节点集中程度(节点集中程度是指节点之间相互通信时是否需要中央服务器,对服务器的依赖程度如何)可划分为三种类型:集中式对等网络、分布式对等网络、混合式对等网络。”[3]
集中式P2P模式由一个中心服务器来负责记录共享信息以及反馈对这些信息的查询;每一个对等实体要对它所需共享的信息以及进行的通信负责,根据需要下载它所需要的其他对等实体上的信息。这种形式具有中心化的特点,但是它不同于传统意义上的Client/Server模式。因为传统意义上的Client/Server模式采用的是一种垄断的手段,所有资料都存放在服务器上,客户机只能被动地从服务器上读取信息,并且客户机之间不具有交互能力;而集中式P2P模式则是所有网上提供的资料都存放在提供该资料的客户机上,服务器上只保留索引信息,此外服务器与对等实体以及对等实体之间都具有交互能力。集中式对等网络典型代表有Napster。Napster通过一个中央服务器保存所有Napster用户上传的音乐文件索引和存放位置的信息。当某个用户需要某个音乐文件时,首先连接到Napster服务器,在服务器进行检索,并由服务器返回存有该文件的用户信息;再由请求者直接连到文件的所有者传输文件。
“Napster首先实现了文件查询与文件传输的分离,有效地节省了中央服务器的带宽消耗,减少了系统的文件传输延时。这种方式最大的隐患在中央服务器上,如果该服务器失效,整个系统都会瘫痪。当用户增加到一定数量时,Napster的系统性能会大大下降。另一个问题在于安全性上,Napster并没有提供有效的安全机制。”[4]
在Napster模型中,一群高性能的中央服务器保存着网络中所有活动对等计算机共享资源的目录信息。当需要查询某个文件时,对等机会向一台中央服务器发出文件查询请求。中央服务器进行相应的检索和查询后,会返回符合查询要求的对等机地址信息列表。查询发起对等机接收到应答后,会根据网络流量和延迟等信息进行选择,和合适的对等机建立连接,并开始文件传输。
在分布式P2P中,对等机通过与相邻对等机之间的连接遍历整个网络体系。每个对等机在功能上都是相似的,并没有专门的服务器,而对等机必须依靠它们所在的分布网络来查找文件和定位其他对等机。分布式对等网络典型代表有Gnutella。Gnutella是一个P2P文件共享系统,它和Napster最大的区别在于Gnutella是纯粹的P2P系统,没有索引服务器,它采用基于完全随机图的洪泛(Flooding)发现和随机转发(Random Walker)机制。为了控制搜索消息的传输,通过TTL(TimeTo Live)的减值来实现。在Gnutella分布式对等网络模型中,每一个联网计算机在功能上都是对等的,既是客户机同时又是服务器,所以被称为对等机(Servent,Server+Client的组合)。
随着联网节点的不断增多,网络规模不断扩大,通过这种洪泛方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。所以在初期的Gnutella网络中,存在比较严重的分区,断链现象。也就是说,一个查询访问只能在网络的很小一部分进行,因此网络的可扩展性不好。所以,解决Gnutella网络的可扩展性对该网络的进一步发展至关重要。
集中式P2P有利于网络资源的快速检索,并且只要服务器能力足够强大就可以无限扩展,但是其中心化的模式容易遭到直接的攻击;分布式P2P解决了抗攻击问题,但是又缺乏快速搜索和可扩展性。混合式P2P结合了集中式和分布式P2P的优点,在设计思想和处理能力上都得到了进一步的优化。它在分布式模式的基础上,将用户节点按能力进行分类,使某些节点担任特殊的任务。这些节点共分为3种:
⑴户节点:普通节点,它不具有任何特殊的功能。
⑵索节点:处理搜索请求,从它们的“孩子”节点中搜索文件列表,这些节点必须有128kbit/s的网络连接速度,应使用高性能的处理器。
⑶引节点:连接速度快、内存充足的节点可以作为索引节点。索引节点用于保存可以利用的搜索节点信息,并搜集状态信息,维护网络结构信息。一个节点可以既是搜索节点又是索引节点。用户节点可以选择3个搜索节点。
作为它的“父”节点,如果“父”节点接受该用户节点作为它的“孩子”节点的话,那么该用户节点就可以提交其所要共享的列表给它的“父”节点。在缺省的情况下,搜索节点可以最多维护500个“孩子”节点。在第三代P2P的软件体系结构中,采用了混合式P2P。这种模式的关键之一是引入了索引节点,索引节点不会直接连接到有版权的资料上,它就像搜索引擎一样,只是搜索和所需资料相关的地址,至于用户到底连接下载了什么内容则和它无关。这种模式的关键之二是引入搜索节点,搜索节点管理着所属用户的文件列表。用户节点通过索引节点获得搜索节点信息,之后用户节点就与获得的搜索节点相连,每一次查询都通过该搜索节点进行。当用户发出搜索请求后,如果和用户节点直接相连的搜索节点查询结果达到100个(这里的100个搜索结果,可以由用户自己来设定)就停止;如果不足100个,就向相邻的搜索节点发出请求,如果查询结果还不够,就继续向外快速发散,直到所有的搜索节点都被搜索到为止。若所有的搜索节点都被访问过,就意味着整个网络上的节点都被搜索到了,其速度要比纯P2P模式快得多。混合式对等网络典型代表有BitTorrent。
BitTorrent将中心目录服务器的稳定性同优化的分布式文件管理结合起来,从而在效率上远远超出了e-Donkey这类产品。它要求提供一个或多个统一的Web发布服务器,以供发布和搜寻资料。在客户端,它通过一个IE插件提供下载、上传管理。BT把一份大文件切割成碎片,为每一个碎片标上特殊标识,用户无须到一个固定地点(例如传统网络的中心服务器)上下载完整的文件,系统会自动寻找、随机下载具有相同标识的文件碎片,将其加以整合成为完整的文件。
参考文献:
[1]胡进锋,黎明,郑纬民.宽自适应的P2P网络路由协议[J].软件学报,2005,(10):35-41.
[2]杨再晗,陈建二,王建新.P2P计算研究现状及关键技术[J].现代电子技术,2004,(1):83-86.
[3]周文莉,吴晓非.P技术综述[J].计算机工程与设计,2006,(1):76-79
[4]关峪,胡绍海.文件传输算法的研究与实现[J].电脑开发与应用,2006,(2):18-21.