1、P2P技术的特点
P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源需要由网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。在此网络中的参与者既是资源(服务和内容)提供者(Server),又是资源(服务和内容)获取者(Client)。
1.1 P2P技术的特点
(1)非集中式。网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,避免了可能的瓶颈。
(2)可扩展性。在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能较容易地满足用户的需要。理论上,整个体系是全分布的,不存在瓶颈。
(3)健壮性。P2P架构天生具有耐攻击、高容错的优点。由于服务是分散在各个节点之间进行的,部分节点或网络遭到破坏对其它部分的影响很小。P2P网络一般在部分节点失效时能够自动调整整体拓扑,保持其它节点的连通性。P2P网络通常都是以自组织的方式建立起来的,允许节点自由地加入和离开。P2P网络还能够根据网络带宽、节点数、负载等变化不断地做自适应式的调整。
(4)高性能/价格比。性能优势是P2P被广泛关注的一个重要原因。采用P2P架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。通过利用网络中的大量空闲资源,可以用更低的成本提供更高的计算和存储能力。
(5)隐私保护。在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性大大缩小。
(6)负载均衡。P2P网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好地实现了整个网络的负载均衡。
1.2 P2P的应用类型
P2P的应用类型主要包括提供文件和其它内容共享的P2P网络,挖掘P2P对等计算能力和存储共享能力,基于P2P方式的协同处理与服务共享平台,即时通讯交流(包括ICQ,QQ,MSN等),安全的P2P通讯与信息共享(例如Skype)等。
2、P2P的网络结构
P2P模式的变化经历了三个阶段:集中式、分布式和混合式。
2.1 集中式P2P
集中式P2P模式中有一个中心服务器负责记录共享信息以及回答对这些信息的查询。每一个对等实体对它将要共享的信息以及进行的通信负责,根据需要下载它所需要的其它对等实体上的信息。这种形式具有中心化的特点,但是它不同于传统意义上的Client/Server模式:传统意义上的Client/Server模式采用的是一种垄断的手段,所有资料都存放在服务器上,客户机只能被动地从服务器上读取信息,并且客户机之间不具有交互能力;而集中式P2P模式则是所有网上提供的资料都分别存放在提供该资料的客户机上,服务器上只保留索引信息,此外服务器与对等实体以及对等实体之间都具有交互能力。
集中式P2P模式最大的优点是维护简单、发现效率高。由于资源的发现依赖中心化的目录系统,发现算法灵活高效并能够实现复杂查询。最大的问题与传统客户机/服务器结构类似,容易造成单点故障,可靠性和安全性较低。
2.2 分布式P2P
在分布式对等网中,对等机通过与相邻对等机之间的连接遍历整个网络体系。每个对等机在功能上都是相似的,并没有专门的服务器,而对等机必须依靠它们所在的分布网络来查找文件和定位其它对等机。
根据节点的拓扑关系,分布式P2P网络可归类为结构化和非结构化二种。非结构化P2P网络采用随机图的组织方式,从而能够较快发现目的节点,具有较好的可用性,容易维护,并支持复杂的查寻,但不能保证查询的结果完全。为了保证查询结果,有些P2P网络维护一个中心目录,但如此就大大限制了网络的可扩展性,而且在很多情况下也不可行。在结构化P2P网络中,网络的节点拓扑关系有严格定义,节点之间通过一定的协议来维护叠加网的拓扑结构。由于采用了确定性的拓扑结构,该种网络提供高效并具确定性的查询。只要目的节点存在于网络中,发现的准确性就会得到保证,但维持网络的拓扑结构将消耗一定的网络资源。
由于使用散列表进行查询的效率最高,采用分布式散列表(Distributed Hash Table)显然是构造结构化P2P叠加网络的理想方案。分布式散列表(DHT)是由叠加网上的节点共同维护的一张大的散列表,散列表被分割成不同的小部分表由各节点维护管理。每个DHT节点按一定方式分配一个一定长度的惟一标识符(ID),资源对象通过散列运算也产生一个相同长度的惟一资源标识符(Object ID),且该资源将存储在节点ID与之相等或者相近的节点上,每个DHT节点在其维护的散列表内包含了一部分其他节点位置信息,当收到查询或节点定位要求时,如果该节点没有符合关键字(Key)的ID,请求就被转发到节点ID与关键字ID更相近的节点直到查询收敛。
分布式P2P模型也存在很多弊端,主要表现在以下方面:
(1)搜索请求要经过整个网络或者至少是一个很大的范围才能得到结果,正因为如此,这种模式占用很多带宽,而且需要花费很长时间才能有返回结果。
(2)随着网络规模的扩大,通过扩散方式定位对等点及查询信息的方法将造成网络流量急剧增加,从而导致网络拥塞。
(3)DHT类结构最大的问题是维护机制较为复杂,尤其是节点频繁加入退出造成的网络波动,会极大增加DHT的维护代价。另一方面,DHT仅支持精确关键词匹配查询,无法支持内容/语义等复杂查询。
2.3 混合式P2P网络
集中式P2P形式有利于网络资源的快速检索,以及只要服务器能力足够强大就可以无限扩展,但是其中心化的模式容易遭到直接的攻击;分布式P2P形式解决了抗攻击问题,但是又缺乏快速搜索和可扩展性。混合式结构吸取了中心化结构和全分布式非结构化拓扑的优点,选择性能较高(处理、存储、带宽等方面性能)的节点作为超级节点。在各个超级节点上存储了系统中其他部分节点的信息,发现算法仅在超级节点之间转发,超级节点再将查询请求转发给适当的叶子节点。混合式结构也是一个层次式结构。超级点之间构成一个高速转发层,超级点和所负责的普通节点构成若干层次。
3、P2P对网络模型的影响
3.1 P2P对网络模型的影响
P2P技术将带来一个业务“全分布”式的网络。流量将呈现出更大的任意性,用户之间直接的数据交换将更加频繁。P2P技术在应用层的组网,在为网络应用的运营者带来更大的灵活性的同时,也造成基础承载网络资源紧张,网络设备长时间处于满负荷工作状态。P2P对网络模型的影响主要体现在以下几个方面:
(1)由于P2P对称特点和P2P流量比例增加,城域网的流量模型逐渐从不对称迁移到对称,与接入网xDSL不对称网络形成明显的矛盾。
(2) P2P的流向处于一种无序的状态,造成网络性能质量劣化和拥塞,带宽大量消耗而收益为零。当前大多数P2P工具为了保证传输质量,往往创建大量连接,大量连接并未传输数据,消耗了网络资源。
(3)跨省流量大于省内、市内的流量,造成省干出口扩容压力不断增大。
3.2 运营商引导P2P业务的方式
单纯封堵P2P并不能完全解决问题,需要运营商引导P2P业务的合理应用。从目前国内几大运营商对于P2P的理念来看,他们正在经历一种痛苦的转变过程,即从堵截到疏导到自己介入运营。
(1)运营商的介入能促使带宽资源的合理配置,运营商建立的视频业务平台必定是可运营、可管理、可计费的。这种平台的存在就能扭转目前P2P市场的混乱局面。即改变现在绝大部分的P2P公司只考虑保证自己下载速度高、改善用户体验,而不顾电信带宽资源,疯狂占用,被运营商视为洪水猛兽的现象。
(2)促使原有的P2P运营商更多的去思考运营商的利益,不仅是将更多的数据交换放到BRAS层,而是更多的从运营商的带宽去考虑。
(3)促进P2P注重用户体验,改造使用流程。
(4)加速P2P运营商的分化,P2P公司最好的选择就是成为运营商的战略合作伙伴,这也就要求P2P公司要有符合运营商网络特点的技术。
目前,多数运营商都把P2P作为重要问题进行研究,正视P2P的优点,同时也想方设法抑制它的缺点。因此,运营商一方面需要对网络架构进行调整,在网络边缘部署P2P监控设备和管理,通过数据报文应用层特征检测识别P2P应用,提供基于总量、分协议总量和逐个用户的P2P流量管理,帮助运营商限制网间P2P流量,减轻网络扩容压力,降低网间结算额。另一方面还要引导用户合理使用P2P。使其不会无节制地消耗网络的资源,例如通过构建网络服务质量的差异化,在不同的服务级别上使用不同的计费体系;提供对用户进行分级管理,对总量和用户的分时段管理,从而构建可运营的P2P控制。
随着网络的逐渐完善,相信P2P的发展也将趋于成熟。现阶段P2P在技术上还不甚成熟,希望在未来的发展中能有所突破。
4、P2P对网络安全的影响
P2P网络采用的分布式结构在提供扩展性和灵活性的同时,也使它面临着巨大的安全挑战:它需要在没有中心节点的情况下,提供身份验证、授权、数据信息的安全传输、数字签名、加密等机制。但目前的P2P技术距离实现这一目标尚有一定的距离,它本身存在的一些安全缺陷阻碍其得到进一步应用。
4.1 恶意软件
当使用P2P时,验证共享文件来源是否安全是非常困难的。P2P应用因此常被攻击者选择作为传递恶意代码的载体,导致P2P应用可能包含SpyWare、病毒、特洛伊木马或者Worm。由于在P2P网络中,每个节点防御病毒的能力是不同的,因此只要有一个节点感染病毒,就可以通过内部共享和通信机制将病毒扩散到附近的邻居节点,在短时间内可以造成网络拥塞甚至瘫痪,甚至通过网络病毒可以完全控制整个网络。
随着P2P技术的发展,将来会出现各种专门针对P2P系统的网络病毒。利用系统漏洞,达到迅速破坏、瓦解、控制系统的目的。因此,网络病毒的潜在危机对P2P系统安全性和健壮性提出了更高的要求,需要对P2P应用来源和P2P用户进行授权控制。
4.2 敏感信息的泄漏
当使用P2P时,可能在不知不觉中给其他用户以访问个人或敏感信息的访问权限,这样可能造成有意图的人入侵访问例如个人文档、账户等敏感信息,因此需要考虑如何保护用户的安全策略。
4.3 安全控制
许多P2P应用需要在防火墙上打开特定的端口来允许接受共享文件,当前许多P2P支持防火墙穿越,通过Http80端口来承载P2P报文,因此需要考虑防火墙具备深度报文检测(DPI)能力,通过DPI扫描分类出流的应用层协议,标识出具体的P2P业务类型,并利用三层Shaping技术实施流量控制。早期的P2P应用都是固定的端口号,容易检测便于管理,后来逐渐发展到动态随机端口号,一些传统的检测方法失去了作用。近期涌现的新型P2P应用越来越具有反侦察的意识,采用一些加密的手法,伪装Http协议,传输分块等来逃避识别和检测。如何针对快速演化的P2P应用,提出新的检测方法是一个需要深入研究的问题。
4.4 大量P2P应用充斥网络
大量P2P应用充斥网络,将导致电信级业务得不到保证,因此需要考虑网络边缘设备具有识别业务和业务感知能力,并具有强大的QoS功能。在IP层通过统计流量特征的方式识别P2P流,从而可以提取出经过编译码的或者是未知的新型P2P流,阻断未经授权的P2P流。
5、结束语
经过多年的发展和演进,P2P应用已经得到大量应用,正吸引越来越多的企业投入到这方面的研究。单纯封堵P2P并不能完全解决问题,需要引导P2P业务的合理应用,如何解决P2P发展面临的例如版权、标准、安全和管理等问题,依然值得进一步的研究和探讨。 (作者:石友康 )