《P2P关键技术及其对网络的影响——烽火.doc》由会员分享,可在线阅读,更多相关《P2P关键技术及其对网络的影响——烽火.doc(34页珍藏版)》请在三一办公上搜索。
1、P2P关键技术及其对网络的影响摘 要本研究报告根据P2P的市场发展动向以及相关技术的应用和研究现状,深入探讨了P2P的关键技术及其特点,阐述了P2P技术在业务系统的应用,重点对P2P技术和业务对网络的影响进行了分析和预测。目录摘 要3目录4图项5表 项51.0P2P技术发展现状61.1概述61.2P2P技术的起源61.3P2P技术的发展61.4P2P技术的应用现状71.5P2P技术的研究现状71.5.1国际研究现状71.5.2国内研究现状82.0P2P关键技术及其特点92.1P2P关键技术92.1.1P2P系统特点92.1.2P2P通信102.1.3P2P平台的安全机制122.1.4P2P平台
2、的性能改善技术132.2P2P技术特点143.0P2P技术在业务系统的应用163.1文件下载163.2Skype的应用173.3网络电视193.4P2P应用分析204.0P2P技术和业务对网络的影响224.1P2P对互联网的影响224.2P2P对IMS的影响234.3P2P对IPTV的影响244.4P2P与IPv6254.5P2P业务对移动网的影响264.6P2P对IP承载网的影响264.7运营商对待P2P的策略分析285.0参考文献306.0缩略语31 图项图 1 客户端与服务器端TCP 连接过程(数据来源:信息产业部电信研究院)17图 2 Skype 网络结构图(数据来源:信息产业部电信研
3、究院)18图 3 采用DPI识别并做策略处理前后带宽的利用率(数据来源:Sandvine公司)23图 4 移动网络中的核心网架构(数据来源:通信技术与标准)26图 5 某城域网P2P流量检测结果(数据来源:中国电信)27表 项表 1 互联网中带宽的消耗(数据来源:Sandvine公司)221.0 P2P技术发展现状1.1 概述最近几年,对等计算( Peer-to-Peer,简称P2P) 迅速成为计算机界关注的热门话题之一,财富杂志更将P2P 列为影响Internet 未来的四项科技之一。目前,业界对于P2P还没有一个统一的定义,下面列举几种常用的定义供参考:定义1、Peer-to-peer i
4、s a type of Internet network allowing a group of computer users with the same networking program to connect with each other for the purposes of directly accessing files from one anothers hard drives.定义2、Peer-to-peer networking (P2P) is an application that runs on a personal computer and shares files
5、 with other users across the Internet. P2P networks work by connecting individual computers together to share files instead of having to go through a central server.定义3、P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Ser
6、ver),又是资源(服务和内容)获取者(Client)。虽然上述定义稍有不同,但共同点都是P2P 打破了传统的Client/Server(C/S)模式,在网络中的每个结点的地位都是对等的。每个结点既充当服务器,为其他结点提供服务,同时也享用其他结点提供的服务。1.2 P2P技术的起源P2P起源于最初的联网通信方式,如在建筑物内PC 通过局域网互联,不同建筑物间通过Modem 远程拨号互联。其中建立在TCP/IP 协议之上的通信模式构成了今日互联网的基础,所以从基础技术角度看,P2P 不是新技术,而是新的应用技术模式。P2P 其实是互联网刚出现时应用最广泛的一种技术。那时并没有中心服务器、门户站
7、点这样的概念,实际上每一个网络用户都同时担当了服务器和客户机的角色。后来随着互联网的普及,每一个网络用户同时担当服务器和客户机的角色也带来了一些问题:信息遍布网络各处,没有一个集中的存放之处,这样使得在网络上寻找信息就好像大海捞针一样。同时由于服务器的角色也是由网络用户担当这样就使得网络上面提供的各种信息和服务不稳定。以上种种原因使得各类门户网站和搜索引擎开始出现并大行其道,而互联网的元老P2P 则逐渐的被人们遗忘。1.3 P2P技术的发展在互联网以客户机/服务器的模式稳定发展并深入人心之时,Napster 让P2P 又回到了人们的视野之中。Napster 是一个音乐共享软件,开创性地在互联网
8、上推出了音乐交换服务。利用它,用户可以搜索、下载彼此计算机里存储的MP3 文件。Napster 因为版权问题而面临倒闭,但P2P 这种网络应用模式已经引起互联网界的重视,在Napster 之后各种各样的P2P 应用软件开始层出不穷:eMule,KaZaA,ezPeer,Shareaza,eDonkey,BT 等文件交换软件;ICQ,QQ,MSN Messenger,Yahoo 通等即时通信软件还有以Skype 为代表的语音通信软件。P2P 技术也经历了从集中式到分布式,又到混合式直至结构化等不断合理化的发展过程。1.4 P2P技术的应用现状尽管P2P 还是一个新鲜事物,尽管大家对P2P 还缺乏
9、赢利的信心,尽管很多人担心P2P可能会步B2C、C2C 等各种商务模式的后尘。但是,国际上已经有很多公司开始踏上了P2P之路。总的来看,国际上的P2P 应用重点在下面几个方面体现:1文件下载非常典型的P2P 文件下载有BT 和Emule/Edonkey,它们采用P2P 技术大大加快了文件下载的速率,因此吸引了全球大量的用户。2分布式计算英特尔公司一直是P2P 技术的狂热鼓吹者。在过去的十年中,英特尔公司的芯片开发人员充分利用分布在世界各地的工作站上的1 万台PC 的闲置硬盘空间和计算能力,从而省去了一大笔购买高档计算机的费用。据说,使用P2P 计算技术使公司节约了超过5 亿美元的经费。在英特尔
10、的P2P 工作组的成员中有IBM、惠普等公司。3网络存储那些没有加入英特尔P2P 阵营的IT 巨头,也开始了P2P 的尝试。美国电报电话公司开发了一种叫做Publius 的网络印刷系统,可以让匿名用户在P2P 网络上保存加密的文档。4通信业务Skype 基于P2P 技术开发的网络电话业务引起了传统电信运营商不小的惊恐,它提供的网络电话业务以非常好的语音质量和低廉的价格吸引了全球上亿的用户,抢走了电信运营商大量的VoIP 市场,据估计,使用Skype 技术呼叫的分钟数已经占到美国VoIP 分钟数的46.2%,这部分用户基本是“免费”享用电话业务的。另外像MSN、QQ 等即时通信业务也都是基于P2
11、P 技术的应用。1.5 P2P技术的研究现状1.5.1 国际研究现状国外开展P2P 研究的学术团体主要包括P2P 工作组(P2PWG) 、全球网格论坛(Global GridForum ,GGF) 。P2P 工作组成立的主要目的是希望加速P2P 计算基础设施的建立和相应的标准化工作。P2PWG 成立之后,对P2P 计算中的术语进行了统一,也形成相关的草案,但是在标准化工作方面工作进展缓慢。目前P2PWG 已经和GGF 合并,由该论坛管理P2P 计算相关的工作。GGF 负责网格计算和P2P 计算等相关的标准化工作。从国外公司对P2P 计算的支持力度来看,Microsoft 公司、Sun 公司和I
12、ntel 公司投入较大。Microsoft 公司成立了Pastry 项目组,主要负责P2P 计算技术的研究和开发工作。目前Microsoft 公司已经发布了基于Pastry 的软件包SimPastry/ VisPastry。Rice 大学也在Pastry 的基础之上发布了FreePastry 软件包。在2000 年8 月,Intel 公司宣布成立P2P 工作组,正式开展P2P 的研究。工作组成立以后,积极与应用开发商合作,开发P2P 应用平台。2002 年Intel 发布了. Net 基础架构之上的Accelerator Kit (P2P 加速工具包) 和P2P 安全API 软件包,从而使得微
13、软. NET 开发人员能够迅速地建立P2P 安全Web 应用程序。Sun 公司以Java 技术为背景,开展了JXTA 项目。JXTA 是基于Java 的开源P2P 平台,任何个人和组织均可以加入该项目。因此,该项目不仅吸引了大批P2P 研究人员和开发人员,而且已经发布了基于JXTA 的即时聊天软件包。JXTA 定义了一组核心业务:认证、资源发现和管理。在安全方面,JXTA 加入了加密软件包,允许使用该加密包进行数据加密,从而保证消息的隐私、可认证性和完整性。在JXTA 核心之上,还定义了包括内容管理、信息搜索以及服务管理在内的各种其它可选JXTA 服务。在核心服务和可选服务基础上,用户可以开发
14、各种JXTA 平台上的P2P 应用。1.5.2 国内研究现状 北京大学MazeMaze 是北京大学网络实验室开发的一个中心控制与对等连接相融合的对等计算文件共享系统,在结构上类似Napster,对等计算搜索方法类似于Gnutella。网络上的一台计算机,不论是在内网还是外网,可以通过安装运行Maze 的客户端软件自由加入和退出Maze系统。每个节点可以将自己的一个或多个目录下的文件共享给系统的其他成员,也可以分享其他成员的资源。Maze 支持基于关键字的资源检索,也可以通过好友关系直接获得。 清华大学GranaryGranary 是清华大学自主开发的对等计算存储服务系统。它以对象格式存储数据。
15、另外,Granary 设计了专门的结点信息收集算法PeerWindow 的结构化覆盖网络路由协议Tourist。 华中科技大学AnySeeAnySee 是华中科大设计研发的视频直播系统。它采用了一对多的服务模式,支持部分NAT 和防火墙的穿越,提高了视频直播系统的可扩展性;同时,它利用近播原则、分域调度的思想,使用Landmark 路标算法直接建树的方式构建应用层上的组播树,克服了ESM 等一对多模式系统由联接图的构造和维护带来的负载影响。2.0 P2P关键技术及其特点一般的P2P系统都有强烈的应用背景,系统实现也与应用类型紧密相关。为了深入分析P2P系统的关键技术,我们将P2P系统划分为P2
16、P平台层和应用层,P2P平台包含支撑P2P应用所需的基础组件,例如,发现机制、通信、安全、资源集成等组件。P2P应用层利用P2P平台提供的功能,向用户提供专门的服务。这种区分可界定P2P的关键技术,帮助我们设计和实现更多种类的P2P应用。2.1 P2P关键技术2.1.1 P2P系统特点在P2P系统中,每一个Peer都是平等的参与者,承担服务使用者和服务提供者两个角色。资源的所有权和控制权被分散到网络的每一个节点中。服务使用者和服务提供者之间进行直接通信,可充分利用网络带宽,减少网络的拥塞状况,使得资源的有效利用率大大提高(包括各种计算资源和存储资源)。同时由于没有中央节点的集中控制,系统的伸缩
17、性较强,也能避免单点故障,提高系统的容错性能。但由于P2P网络的分散性、自治性、动态性等特点,造成了某些情况下Peer的访问结果是不可预见的。例如,一个请求可能得不到任何应答消息的反馈。P2P系统的匿名性等特点可能会带来系统的安全漏洞。P2P系统的这些特点也决定了P2P 应用主要包括资源共享和协作。资源共享主要是文件共享系统、文件分发系统(File Distribution System)。通过P2P网络实现文件共享和文件分发,能够应付爆发式访问,系统的可伸缩性好,可靠性好。此类典型系统有Napster1,Gnutella2,FreeNet3,Chord-based System,BitTor
18、rent4。P2P协作应用的种类很多,包括即时消息系统、在线游戏、共享企业应用(在提供即时消息之外,还可共享内容和进行共同的活动如组内共同开发和编辑)、文件搜索、pub/sub系统等。其中,即时消息系统5有AOL AIM、Yahoo Messenger、MSN Messenger、Jabber6,7等;在线游戏有星际争霸、Net-Z和DOOM;共享企业应用有Groove8、Magi9;文件搜索有YouSearch10, OpenCola等;视频播放有 PPLive,PPMate等;pub/sub系统有Scribe、Herms等;还有基于P2P网络构造的email系统。而从P2P系统的典型特点来
19、分析,常常被引证为P2P应用的科学计算系统SetiHome11应该属于P2P的非典型应用。各种P2P系统由于应用背景的差异,彼此互不兼容,导致不同的P2P网络无法通信,难以有效地利用网络资源提供服务。Sun公司组织开发的JXTA项目,希望通过提供一个简单通用的P2P平台来解决这个问题。从上述应用可以看出,P2P系统并不能替代客户/服务器系统,它们两者是相辅相成的关系。从P2P系统的基本特点和应用情况分析,我们认为P2P平台中的Peer的通信、平台的安全和平台的性能优化这三项技术是P2P系统的成功与否的关键所在。2.1.2 P2P通信P2P通信时需要解决的最基本的问题即是如何连接其它的终端获得信
20、息、资源和服务。该问题可细分为以下一些问题:l P2P网络的拓扑结构和Peer节点的功能角色划分l 资源和服务如何标识l 进行资源查找时如何进行Peer定位l P2P网络中Peer节点的动态变化的处理l 如何穿越NAT(Network Address Translation)和防火墙进行Peer节点之间的直接通信1、P2P网络的拓扑结构和Peer节点的角色划分在P2P网络中,有两种典型的拓扑结构,即纯P2P网络和混杂的P2P网络。在纯P2P网络中,每个Peer都具有同等的责任和地位,不存在中间节点的协调。FreeNet、Gnutella都属于纯P2P网络。而在混杂的P2P网络中,存在着充当服务
21、器角色的Peer节点或提供特殊功能的Super-Peer节点,这些节点保存其它Peer节点的基本状态和存储内容源信息,协助完成对其它节点的记录、查询等工作。Napster, Groove, Magi等系统均是典型的混杂型P2P系统。每一个Peer根据其提供的角色功能可以划分为三种类型,即简单类型Peer节点,super-peer节点和服务器型的peer节点。简单类型Peer节点仅仅是一个简单的终端用户,它可以请求获得服务并为网络中的其它Peer提供服务。Super-peer节点除了具有和简单Peer节点类似的功能外,还提供某些特殊功能。如JXTA系统中就存在路由器Peer节点和会聚点Peer节
22、点12,前者作为一个桥梁,使得被防火墙或NAT隔离的Peer可以相互通信;后者为简单节点提供查询定位信息的功能。服务器型的Peer节点主要提供类似与客户/服务器模型下的服务器功能,如提供一个全局统一的目录查询。在Napster这种混杂型的P2P系统中,有若干个简单Peer节点相互提供文件下载功能的服务,还有一个目录服务器节点提供文件条目的注册管理。Groove和Magi系统中也均存在这样的服务器型节点。而在纯P2P网络中,每一个Peer节点均充当了上述的三种角色。2、资源的标识为了在P2P网络中准确地查找资源进行Peer定位,还需要确定Peer中存贮资源的标识(这里我们将在P2P网络中需要进行
23、查找的对象统称为资源)。不同的应用场景均有适合自身特点的资源标识方式。在以文件共享为主的应用中,资源主要以文件的名称、关键字、源数据等进行标识。而即时消息通讯系统往往采用类似于电子邮件的命名方式,如在Jabber系统中,Jabber的用户ID以nodedomain/resource的形式进行地址标识7,提供一个全局统一的地址空间。其中,Domain是主要的ID标识,是与多个用户连接进行消息转发的Jabber Server;Node为用户姓名或昵称,Resource属于一个Node,标识属于一个用户的多个资源。一个用户可以同时与同一服务器建立多次连接。以用户之间协作为主的P2P应用如Groove
24、系统和Magi系统,由于在协作中对即时消息通讯和文件共享的要求兼而有之,用户一般以用户名进行标识,而文件则以源数据标识。JXTA作为一个解决不同P2P应用彼此不兼容的底层平台,提出了一个统一的资源标识定义,即广告(advertisement)。广告是一个XML结构的文档,由Peer或相互协作共同完成一种应用Peer 组进行发布,用来描述现有的资源、服务或实体Peer。Peer节点通过查询广告以获得各种资源的消息,进行Peer定位。3、Peer的定位方式在查找资源的过程中,可采用直接或间接方式定位Peer。直接定位Peer的方式比较简单,即利用广播或多播的形式发出查询请求,符合查询要求的Peer
25、节点进行应答,然后建立直接的通信连接。由于这种方式只能在局域网中使用,所以应用范围有限。当然这种方式可以和其它的定位方式结合使用以获得良好的查询效率。间接方式包括三种模型:服务器模型、洪流模型、和路由模型。服务器模型:该模型是基于混杂型的P2P拓扑结构。充当服务器的peer节点提供资源查询。peer将请求发送至服务器获得查询结果,随后,直接与目标节点通信获取所需服务。但这种方式存在单点失败问题,同时,也存在伸缩性问题。但因为peer节点仅在启动、停止及查询的时候才与服务器交互,所以此时的伸缩性还是强于客户/服务器模式。典型系统有Napster,Magi,Groove和Jabber。Napste
26、r系统采用一个目录服务器记录资源索引,Groove系统和Magi系统均是采用动态DNS查找用户的IP地址。Jabber系统由于其资源标识类似于Email地址,所以,利用DNS的MX记录进行IP地址的查询。洪流模型:该模型基于纯P2P拓扑结构。Peer节点采用洪流法将查询请求不断地转发至邻居节点,直到到达目标节点,获得查询结果。同时为了避免消息无限制的转发,查询请求中设定有TTL(Time to Live)或HTL(Hops to Live)进行转发控制。Gnutella是采用此类模型的典型系统。路由模型:该模型也是基于纯P2P网络结构。首先为网络中的每一个peer赋予一个ID,同时,每个Pee
27、r存储的资源和服务也有类似的ID。Peer节点的路由表中登记一定数量的邻居节点。Peer的请求被转发至与所请求的资源或服务的ID 最接近的Peer,直到发现这个资源或服务15。插入一个新资源/服务的过程与查询过程类似,也是通过查找该资源/服务ID来确定存储的正确位置。此类模型主要用在文件共享系统中,如FreeNet,Chord,CAN,Tapestry,Pastry等。路由模型又可细分为非结构化路由模型和结构化路由模型。FreeNet系统属于典型的非结构化路由模型。在查找到所需资源后,为了提高搜索性能,系统沿搜索路径复制资源。这样,由于资源的存储位置不固定,其行为不易观察,不确定因素较大。所以
28、相对于结构化路由模型来说,其资源分布的规律性不强,难以从全局上把握整个系统的资源分布状况。而结构化路由模型如Chord, CAN, Tapestry, Pastry均采用了DHT(Distributed Hash Table)作为主要的存储算法。DHT的主要思想是将资源定位用的索引(索引结构通常是两元组(文件名,实际的存储位置)分散存储到整个P2P网络上,这样,哈希表的存储和查询操作就会涉及到P2P网络中的多个节点。以DHT思想进行路由模型的设计时,首先需要确定通过Hash函数进行虚拟地址空间映射的规则。虚拟地址空间的设计有多种方式, Chord采用的虚拟地址空间为m-位的循环地址空间,CAN
29、系统采用的是多维的地址空间。Peer节点的IP地址和端口号经过哈希函数映射到地址空间,再将映射空间进行划分,每个节点负责存储属于自己空间的值对(key,value)。其次需要确定路由表项的存储内容,即邻居节点的规模,以适应于不同的网络需求。这里需要对路由表项的规模与网络搜索跳转数进行综合考虑。在动态性较强的网络中,节点频繁加入和退出网络会使得规模较大的路由表更新频率过高,操作费时。但规模较小的路由表在进行资源定位时,又使得查找时间过长。再次是确定在接收到一个资源的查询请求时,从路由表中选择转发的邻居节点的规则。最后要确定新节点的插入和删除操作后,虚拟的地址空间如何进行分裂和合并。4、P2P网络
30、中节点的登录和退出在服务器模型的P2P网络中,由于Peer节点的状态信息和管理的资源信息直接记录在服务器中,Peer节点的登录和退出仅需和服务器进行交互,由服务器进行协调处理。如在Napster系统中,Peer节点登录系统后,向服务器发送当前的网络状态和所有的文件列表信息,由服务器更新目录索引。在Jabber等即时消息通讯系统中,Peer节点往往是与用户绑定的。服务器接收到用户的登录消息或退出消息后,通知订阅该用户在线状态的所有在线用户。非结构化路由模型FreeNet中,新节点首先需要获知网络中的若干可连接节点的信息,通过执行搜索操作向整个网络宣布自己的存在。在结构化路由模型的P2P网络中,节
31、点的登录和退出,将导致虚拟地址空间的分裂和合并。Peer节点登录网络的操作,类似于一个资源的查找过程。Peer节点定位到所属的地址空间后,将地址空间以一定规则进行分裂。负责管理该地址空间资源的原节点将所属资源按分裂的规则,部分转移到新节点。同时两个节点的路由表项和其它相关节点的路由表项均要进行修改。而Peer节点退出网络的过程,则是登录网络的逆过程,资源需要转移合并,相关节点的路由表项同样需要更新。5、防火墙和NAT的穿越在实际的网络通信中,Peer节点往往是一个私有网络中的节点,位于防火墙之后。这样,Peer与Peer之间直接通信需要解决的一个关键问题是穿越防火墙和NAT。由于防火墙会对IP
32、进行过滤,限制了墙内外的连接,而NAT技术虽然可以使得内部网络地址映射到外部网络地址,但要求内部网络首先发起对外连接,否则外部网络机器无法达到内部网络12。穿越防火墙和NAT的策略有两个基本点:(1) 需要使用在一般情况下可以通过防火墙的协议,如基于请求/应答方式的HTTP协议。(2) Peer之间进行通信时,必须由内部网络的机器首先发起连接请求,如果通信双方均处于防火墙之后,则需要有防火墙外的转发节点进行消息转发。在Napster系统中当Peer节点请求下载的资源位于一个防火墙之后的节点上,请求节点向服务器端发送需要进行转换下载的请求 (Alternate download request)
33、,由服务器通知被请求节点首先发起文件下载的连接请求。而Gnutella是在将查询的详细信息返回给请求者的同时发送资源文件,以此方式解决文件提供者位于防火墙之后的情况。JXTA平台中,其super-peer节点中的路由节点是提供防火墙和NAT穿越功能的特殊节点。若通信一方在防火墙之后,那么单向穿越的过程由试图与防火墙后的peer A连接的peer节点B发起,节点B首先与路由Peer连接,同时peer A周期性地连接路由 Peer,由于路由 Peer对Peer A是可见的,且不在防火墙后,连接请求消息可作为http的应答内容返回至peer A。若通信的双方都在防火墙之后,那么需要两个路由 peer
34、。Peer1 通过路由节点1 转发消息,路由节点1将消息转发至路由节点 2,Peer2周期性地向路由节点2发送http请求,获得消息后断开连接。JXTA平台中路由节点的使用不仅可以穿越防火墙,还可以解决瓶颈问题,解决网络传输的不兼容性12。2.1.3 P2P平台的安全机制与安全有紧密关系的是P2P平台提供的匿名性。为了进行自由的交互,避免引起不必要的法律纠纷,所以,P2P系统允许匿名方式的信息交换。匿名性可分为以下三种类型:l 发布者匿名:发布者匿名地发布服务或资源l 请求者匿名:请求方匿名地请求服务或资源l 服务提供者匿名:P2P网络中的资源拥有者匿名地提供资源或服务提供匿名性的基本方法有六
35、种: 组播:采用IP组播方法进行资源发送可以达到请求者匿名的目的。但是这种方法需要底层网络如以太网的支持。 地址欺骗:使用面向无连接协议如UDP,可以更改地址,达到地址欺骗的目的。 身份欺骗:网络中的文件可能拥有多个备份,所以应答者往往并不是文件的提供者,如FreeNet就使用了这种方法提供匿名性。 隐藏路径:Peer之间并不是进行直接的消息通信,而是通过若干的中间节点,这样可以达到发送者匿名的要求。 别名:每一个Peer在网络中均有一个别名,Peer之间通过别名进行消息传递,这种方法需要一个P
36、roxy Server保存所有的Peer实体与别名的对应关系。 强制存放:一个文件存放的位置是由文件本身确定的,发布者无法选择,从而实现发布者匿名,如基于Chord的系统。上述方法可以组合应用,例如,FreeNet采用纯P2P网络中的非结构化文档路由模型,同时在发布文件和查找文件的过程中,沿搜索路径复制文件。通过隐藏路径和身份欺骗的方法达到服务提供者匿名的目的,通过隐藏路径的方法形成请求者匿名,同时由于文件的发布是一个根据文件名强制存放的过程,所以也完成了发布者匿名的功能。P2P平台所具有的上述特性可能会带来下列安全隐患: 拒绝服务攻击:P2P应用会消耗
37、网络带宽,占用磁盘空间,使得系统性能降低甚至完全瘫痪。如果被大量恶意地使用,就会出现正常服务请求得不到服务的现象。处理这种攻击的难点在于如何将恶意节点和真正负载过重的节点区分开。从根本上说,限制网络服务请求的数量是解决拒绝服务攻击的根本方法。合理选择网络底层的拓扑结构,均衡系统中的负载和资源,加入流量控制策略,这三种措施综合使用可使恶意节点根本无法占用过多的资源,降低其对系统的影响。 恶意软件分发:P2P无中央服务器控制,允许匿名分发资源,对软件的分发缺乏控制,如果P2P系统被恶意使用,会给系统用户带来安全隐患。通常的名誉评估系统可以用来跟踪和处理Peer的状态,并根据得到
38、的信息选择资源的提供者。但是这种方法比较消耗网络资源。 信息泄露和篡改:例如,有些P2P系统在路由表中保存了一批网络地址,这些信息可能会被泄露和篡改;有些P2P系统例如Napster、Gnutella允许直接访问用户硬盘,恶意用户可利用这个特性察看和篡改磁盘信息。这些都需要有相应的策略加以解决,例如,设计安全路由策略,可解决路由表信息泄露问题。2.1.4 P2P平台的性能改善技术P2P平台的性能指标包括请求响应时间、公平性等。请求响应时间与P2P平台的拓扑结构有很大关系。对于有中央服务器的P2P系统如Napster系统和SetiHome系统,Peer之间由服务器进行协调,服
39、务器变成了系统的瓶颈,影响系统性能。为了改善性能,可采用层次性的混杂式结构,由每一个协调者负责一个Peer组,形成一个层次的管理结构。在非集中式的P2P网络中,主要通过消息转发来获取和查询数据,消息转发的次数影响带宽的消耗,因此要尽量减少消息的转发次数15。采用复制的方法可提供多个资源备份,提高容错性,也减少了请求节点到服务节点的距离,减少了请求响应时间。但复制会带来数据一致性的问题;另一种减少消息转发次数的方法是建立智能路由和网络组织,寻找目标文件到请求节点的最小路径。该类方法包括:在基于DHT的结构化路由模型中设计合乎应用背景要求的路由表存储结构,以减少网络中的消息跳转数;采用一些反馈机制
40、,智能地选择曾经命中过的Peer节点进行消息转发;监测网络中的运行状态,绕过一些负载较重的Peer节点。这些方法都可以根据不同的使用背景获得较好的性能提升。除了通过复制改善系统的响应时间之外,缓存的替换策略对响应时间改善也有很大影响。SmallWorld模型刻画了网络通信中的一个有趣的特征:在规则网络中随机地添加少量通路,能很好减短通信距离,减少请求的响应时间,它被用来改进FreeNet中的缓存替换策略,也获得了较好的性能改善。P2P体系结构使得P2P系统中会出现“无政府主义”行为,例如,过量下载或有意让下载的文件中包含广告等,这些行为导致P2P信息交换的不公平性。在P2P网络中,为避免每一个
41、Peer享受服务而不提供服务的现象,需要实行一定的管理机制。在P2P网络中引入经济学中买卖交易的原理,可以促进资源的共享和交互。Stanford大学的P2P研究小组提出了RTR(right-to-respond)协议19,用以解决在洪流模型中,中间节点不愿消耗资源转发请求的问题。RTR是指对查询请求的响应权,Peer节点可以购买和出售系统中每个查询请求的RTR。当某一Peer节点转发请求时,其它Peer节点可以向其购买RTR。购买了RTR的Peer节点可以执行两个操作,一是响应该请求,如果被请求的发出者选中,就可以为其提供服务并收取费用;二是再将RTR售出给其它节点。通过这种方法,Peer节点
42、在经济利益的驱使下会不断转发请求,扩大搜索范围。同时可以促进拥有类似资源或服务的Peer节点频繁联系,形成Peer Group,提高搜索效率。另一个利用经济学原理的实例是数据交易(data trading)方法的引入20。P2P系统经常采用数据备份的机制来增强资源可用性,提高系统性能。而用户往往不愿无偿提供存储资源备份其它数据。这时利用数据交易的方法提供相互备份,即获得对方存储空间或数据资源是以向对方提供存储空间为前提的。系统中Peer节点之间建立了良好的相互备份关系,将会减少搜索和访问的开销。以上这些实例均表明,采用经济学中以交易为基础的资源管理机制,可以提高P2P系统的资源使用率。2.2
43、P2P技术特点P2P技术的特点体现在以下几个方面。1、 非中心化(Decentralization):网络中的资源和服务分散在所有结点上,信息的传输和服务的实现都直接在结点之间进行,可以无需中间环节和服务器的介入,避免了可能的瓶颈。P2P的非中心化基本特点,带来了其在可扩展性、健壮性等方面的优势。 2、 可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。整个体系是全分布的,不存在瓶颈。理论上其可扩展性几乎可以认为是无限的。 3、 健壮性:P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个结点之间进行的
44、,部分结点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分结点失效时能够自动调整整体拓扑,保持其它结点的连通性。P2P网络通常都是以自组织的方式建立起来的,并允许结点自由地加入和离开。P2P网络还能够根据网络带宽、结点数、负载等变化不断地做自适应式的调整。 4、 高性能/价格比:性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通结点,将计算任务或存储资料分布到所有结点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量空闲
45、资源,可以用更低的成本提供更高的计算和存储能力。 5、 隐私保护: 在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。 6、 负载均衡: P2P 网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力
46、的要求,同时因为资源分布在多个节点,更好的实现了整个网络的负载均衡。概括而言,P2P技术的精髓就是“面对面交流+资源聚合”。P2P通过互联网直接将人们联系起来而消除了中间商。也就是人们可以直接连接到其他用户的计算机交换文件,而不是像过去那样连接到服务器去浏览与下载。另外,P2P技术通过提供对等用户Peers间基本的交互来聚合其系统上可用资源,并以非集中方式使用这些分布式资源来完成一系列应用系统的关键任务。同时还能将P2P技术中的一部分下放到客户端用户手中,让用户有第一手的体验。3.0 P2P技术在业务系统的应用目前来看P2P 的应用主要有下面几类:1、 提供文件或其它内容共享的P2P 网络,例
47、如Napster、Gnutella、eDonkey、emule、BitTorrent 等;2、 挖掘P2P 对等计算能力和存储共享能力,例如SETIhome、Avaki、Popular Power等;3、 基于P2P 方式的协同处理与服务共享平台,例如JXTA、Magi、Groove、.NET MyService 等;4、 即时通讯交流,包括ICQ、OICQ、Yahoo Messenger 等;5、 安全的P2P 通讯与信息共享,例如Skype、Crowds、Onion Routing 等。下面以文件下载等P2P 应用为例,分析P2P 在不同应用中的使用方式以及如何配合其他技术来实现不同的应用
48、。3.1 文件下载目前国内最常见的P2P 下载应用有两种,一个是BT,一个是Emule/Edonkey。这两种都是P2P 的互联网应用,可以最大限度的利用Internet 网络资源下载网络文件。这种业务提供模式已经引起了电信业务提供者的广泛关注。BT 应用连接分为两个阶段,第一阶段从服务器处得到Peer 的相关信息,第二个阶段是与Peer 建立连接。在BT 的第一个阶段,客户端下载*.torrent 文件,从文件中提取服务器URL,通过HTTP协议里的GET 命令访问相应的服务器。服务器收到这个URL 后,会在响应的URL 中给出相关的Peer 的地址与端口列表,及有关Peer 的数目等信息,BT 端收到这些信息后会尝试与列表中的地区建立连接。在与对端建立连接时,BT 的客户端会发送建立连接的信息,同时也会侦听客户