P2P协议
发布日期:2023-11-08 来源: 浏览次数: 作者:NIC


一、绪言

1.1 Peer-to-Peer介绍

定义:

1Peer-to-peer 是一类允许一组用户互相连接并直接从用户硬盘上获取文件的网络。

2Peer-to-peer网络是一个运行于个人电脑上的应用,通过网络在用户间分享文件。P2P网络通过连接个人电脑分享文件而不是通过中央服务器。

3P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(server),又是资源(服务和内容)获取者(client)。

P2P的特点:1)无中央服务器,打破了C/S模式;2)用户之间互联并分享文件。

非中心化(Decentralization

可扩展:全分布系统

健壮性:耐攻击、高容错

高性价比

隐私保护

负载均衡

P2P的分类:

提供文件和其他内容共享的P2P网络,如NapsterGnutellaeDonkeyemuleBitTorrent等;

挖掘P2P对等计算能力和存储共享能力,如SETI@homeAvakiPopular Power等;

基于P2P方式的协同处理与服务共享平台,如JXTAMagiGroove.NET My Service等;

即时通讯交流,包括ICQQICQYahoo Messenger等;

安全的P2P通讯与信息共享,如SkypeCrowdsOnion Routing等。

二、国内的P2P研究现状

学术结构研发

北京大学-Maze

Maze是北京大学网络实验室开发的一个中心控制与对等连接相融合的对等计算文件共享系统,在结构上类似Napster,对等计算搜索方法类似于Gnutella。网络上的一台计算机,不论是在内网还是外网,可以通过安装运行Maze的客户端软件自由加入和退出Maze系统。每个节点可以将自己的一个或多个目录下的文件共享给系统的其他成员,也可以分享其他成员的资源。Maze支持基于关键字的资源检索,也可以通过友好关系直接获得。

清华大学-Granary

Granry是清华大学自主开发的对等计算存储服务系统。它以对象格式存储数据。另外,Granary设计了专门的结点信息收集算法PeerWindow的结构化覆盖网络路由协议Tourist

华中科技大学-AnySee

AnySee是华中科大设计研发的视频直播系统。它采用了一对多的服务模式,支持部分NAT和防火墙的穿越,提高了视频直播系统的可扩展性;同时,它利用近播原则、分域调度的思想,使用Landmark路标算法直接建树的方式构建应用层上的组播树,克服了ESM等一对多模式系统由联接图的构造和维护代来的负载影响。

企业研发产品

广州数联软件技术有限公司-Poco

POCO是中国最大的P2P用户分享平台,是有安全、流量控制里的,无中心服务器的第三代P2P资源交换平台,也是世界范围内少有的盈利的P2P平台。目前已经形成了2600万海量用户,平均在线58.5万,在线峰值突破71万,并且完全是带宽用户的用户群。

深圳市点石软件有限公司-OP

OP又称为Openext Media Desktop,一个网络娱乐内容平台,Napster的后继者,它可以最直接的方式找到您想要的音乐、影视、软件、游戏、突破、书籍以及各种文档,随时在线共享文件容量数以亿计“十万影视、百万音乐、千万图片”。

基于P2P的在线电视直播-PPLive

PPLive是一款用于互联网上大规模视频直播的共享软件。它使用网状模型,有效解决了当前网络视频点播服务带宽和负载有限问题,实现用户越多,播放越流畅的特性,整体服务质量大大提高。

三、 P2P技术的应用研究

国外开展P2P研究的学术团体主要包括P2P工作组(P2PWG)、全球网格论坛(Global Grid Forum, GGF)。P2P工作组成立的主要目的是希望加速P2P计算基础设施的建立和相应的标准化工作。P2PWG成立之后,对P2P计算中的术语进行了统一,也形成相关的草案,但是在标准化工作方面进展缓慢。目前P2PWG已经和GGF合并,由该论坛管理P2P计算的相关工作。GGF负责网格计算和P2P计算等相关的标准化工作。

从国外公司对P2P计算的支持力度来看,Microsoft公司、Sun公司和Intel公司投入较大。Microsoft公司成立了Pastry项目组,主要负责P2P计算技术的研究和开发工作。目前Microsoft公司已经发布了基于Pastry的软件包SimPastry/VisPastryRice大学也在Pastry的基础上发布了FreePastry软件包。

20008月,Intel公司宣布成立P2P工作组,正式开展P2P的研究。工作组成立以后,积极与应用开发商合作,开发P2P应用平台。2002Intel发布了.NET基础架构之上的Accelerator KitP2P加速工具包)和P2P安全API软件包,从而使得微软.NET开发人员能够迅速地建立P2P安全Web应用程序。

Sun公司以JAVA技术为背景,开展了JXTA项目。JXTA是基于JAVA的开源P2P平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P研究人员和开发人员,而且已经发布了基于JXTA的即时聊天软件包。JXTA定义了一组核心业务:认证、资源发现和管理。在安全方面,JXTA加入了加密软件包,允许使用该加密软件包进行数据加密,从而保证消息的隐私、可认证性和完整性。在JXTA核心之上,还定义了包括内容管理、信息搜索以及服务管理之内的各种其他可选JXTA服务。在核心服务和可选服务基础上,用户可以开发各种JXTA平台上的P2P应用。

P2P实际的应用主要体现的以下几个方面:

P2P分布式存储:P2P分布式存储系统是一个用于对等网络的数据存储系统,它可以提供高效率的、鲁棒的和负载平衡的文件存取功能。这些研究包括:OseanStoreFarisite等。其中,基于超级节点结构的半分布式P2P应用如KazzaEdonkeyMorpheusBitTorrent等也是属于分布式存储的范畴,并且用户数量急剧增加。

计算能力的共享:加入对等网络的节点除了可以共享存储能力之外,还可以共享CPU处理能力。目前已经有了一些基于对等网络的计算能力共享系统。比如SETI@home。目前SETI@home采用的仍然是类似于Napster的集中式目录策略。

P2P应用层组播:应用层组播,就是在应用层实现组播功能而不需要网络层的支持。这样就可以避免出现网络层迟迟不能部署对组播的支持而使组播应用难以进行的情况。应用层组播需要在参加的应用节点之间实现一个可扩展的,支持容错能力的重叠网络,而基于DHT的发现机制正好为应用层组播的实现提供了良好的基础平台。