• 1.摘要
  • 2.引言
  • 3.P2P缓存系统
  • 3.1.基本原理
  • 3.2.系统架构和处理流程
  • 3.3.关键技术

P2P缓存

引言

随着BT、eMule、 Skype等P2P应用的流行,P2P技术已经成为 互联网的重要组成部分,甚至很多人已经认为P2P技术将成为未来互联网的发展方向。作为一种与 服务器/客户端模式完全不同的技术,P2P技术的突出特点就是“去中心化”。在P2P网络中,网络资源和服务散布于整个网络中,每个节点逻辑地位相等,都具备客户端和 服务器双重特性,可以同时作为服务使用者和服务提供者。

P2P应用的流行源于P2P技术所提供的无限服务能力、低廉的成本和良好的服务稳定性。P2P系统的服务能力随着 用户数量的增加而增加,在理论上并不存在瓶颈,相反,传统的 服务器/客户端系统存在着无法突破的服务器性能瓶颈。在打破了 服务器瓶颈后利用P2P技术可以在非常便宜的设备上架设服务,从而带来了成本优势。而且在P2P系统中各个peer端都分担了服务能力,单一peer故障不会造成系统崩溃,解决了传统 服务器/客户端系统中服务器故障可能造成服务崩溃的问题。服务能力的优势还为P2P系统提供了新业务模式,例如,在P2P文件共享系统中,内容发布功能被开放给每一个peer端,极大地丰富了系统的内容,从而吸引了大量新用户。对于传统的 服务器/客户端系统,开放内容发布能力将给 服务器系统带来无法支撑的压力。近几年,P2P应用的用户数和流量都呈现爆炸式增长的趋势,截至2005年年底,中国P2P 流媒体业务的用户数已经达到235万,比年初增长176%。

另一方面,随着P2P技术的快速发展,P2P技术和基础网络运营商之间的利益冲突日益明显,这种矛盾可能阻碍P2P技术的进一步发展。当前,网络使用时间通常是基础网络运营商和用户的结算依据,而支撑这种结算方式的是传统的网络业务访问模型,也就是用户在其访问时段内仅有部分时间活跃,用户占用的带宽随其访问的活跃程度而变化,使用的上下行带宽不对等。但是P2P技术的普及破坏了传统的网络业务访问模型,用户访问开始在其访问时段内永久活跃、带宽占用稳定并且上下行带宽基本相等。为此,基础网络运营商不得不为应付飞速上升的网络带宽需求而大规模地扩容。更要命的是此时的带宽投入已经无法带来合理的收入。当基础网络运营商无法通过改变结算方式解决带宽需求和业务收入的矛盾时,就只好转向用各种方式限制P2P技术在其网络上的应用,从而对P2P技术的继续发展设置了障碍。

下面介绍一种P2P流量优化技术—— P2P 缓存系统。通过在 网络边缘缓存P2P内容,过滤掉传输重复的P2P内容,可以减轻P2P应用对核心带 宽带来的压力。P2P缓存系统需要完成捕捉 网络流量、P2P 协议分析以及内容缓存等操作,并且还需要为后续P2P访问提供缓存内容的 代理服务。

通过部署P2P缓存系统,基础网络运营商可以利用有限的投入支撑增长的P2P业务需求,从而解决当前P2P技术带来的带宽冲击。另外,P2P缓存系统的使用还可以改善P2P应用的用户体验,从而吸引更多P2P客户,并可能为基础网络运营商带来更多客户。也就是说,P2P缓存系统的部署不仅可能缓和P2P技术和基础网络运营商的矛盾,而且可能引导二者协同发展,创造出双赢局面。

P2P缓存系统

基本原理

P2P缓存系统将传统的缓存原理应用到P2P内容上,其基本思想就是在 网络边缘缓存P2P内容,用缓存内容服务后续的P2P请求,过滤掉重复的P2P内容。图1描述了P2P缓存系统的工作原理。如图1所示,在使用了P2P缓存系统后,P2P访问的流程如下。

首先,peer A请求下载内容片断X,下载请求由peer A所归属的Intranet路由转发给P2P缓存设备。由于是初次下载,缓存设备发现请求的内容并没有被缓存过,于是将下载请求转发给 互联网上的peer C,peer A最终通过访问peer C获得片断X。注意X在被发送给peer A的同时会通过缓存设备并被缓存。当peer B再次发起下载片断X的请求时,下载请求将同样被引导到缓存设备,此时缓存设备已经缓存了X,于是peer B对X的下载直接由缓存设备提供。

研究表明,由于在P2P网络中同样存在热点内容,因而在P2P网络中部署缓存设备可能获得高达90%的字节命中率。这意味着P2P缓存系统的使用可以非常有效地缓解P2P流量对 网络带宽的占用。同时,由于缓存系统靠近P2P用户,可以使用户访问不必穿过缺乏服务质量保证的核心网络,从而降低用户访问响应时间,保证用户访问质量,提升用户体验并吸引用户,从而为P2P技术的进一步发展提供保障。

系统架构和处理流程

P2P缓存系统需要完成的主要工作有:P2P 协议分析、内容缓存、内容分发和代理。P2P缓存系统通常由流量捕捉、协议处理、缓存检查、内容存储、转发器等单元构成,如图2所示。

其中,流量捕捉完成对受监测流量的捕捉。最简单的实现方式是将缓存系统串联到需要使用的 路径上,不过也可以采用 策略路由或其他方式完成流量捕捉。捕捉到的流量 报文被发送到协议处理单元完成对协议的分析处理,注意此时的报文不仅仅包括P2P通信的。转发器是系统中的发送单元,接收从其他单元发送来的 报文,并根据报文中的信息(如目的地址和端口)将报文发送给其他网络设备。在P2P缓存系统中, 协议分析单元仅对捕捉到的P2P传输 报文做深度报文分析,对其他报文,协议分析单元将直接转发给转发器。一旦 协议分析单元发现某 报文是P2P内容请求,该报文所属的应用会话(包括后续访问直到会话结束)的状态就会被监视。一旦能够确认该会话所访问的内容(P2P系统中内容通常由其HashID标识), 协议分析单元就会访问缓存检查单元以判断该内容是否已经被缓存,如果该内容已经被缓存,该会话的后续请求就会被直接交给内容缓存模块处理。内容缓存模块根据 协议分析单元的请求,从缓存中获得相应的缓存内容或将协议分析单元发送的内容做缓存处理。为实现缓存内容的发送, 协议分析单元在通过内容缓存模块获得内容数据后需要按P2P协议要求封装获得的内容,模拟源P2P响应,然后交给转发器发送给应用请求者。如果P2P会话所访问的内容并没有被缓存,后续访问的内容就会被缓存到内容 存储单元中。图2中标记了不同流量在P2P缓存系统中的处理流程。

关键技术

图2的缓存系统结构虽然能够完成基本的缓存处理操作,但实际网络对P2P缓存系统还有更多的要求。要使P2P缓存系统 融合到现实网络中,P2P缓存系统还需要在处理效率、可扩展性、版权保护以及系统部署等多方面进行优化。

处理效率

首先, 网络设备必须满足一定的处理效率要求,对于缓存设备,并发流量处理能力是一个关键性能指标,而流量处理能力的需求直接与系统所服务的终端用户量相关。对于P2P缓存系统,一定数量的重复内容访问和 缓存命中率是发挥缓存系统优势的基础,而重复请求的数量依赖于用户群体的规模和用户访问特征。在流行的P2P共享系统中,共享的文件通常较大并且内容繁多,这些特征要求缓存系统能够服务较多的用户和较高的流量,以保证适当的访问命中率。另外,对 带宽的需求也会受到网络物理端口的带宽限制。P2P内容的分析和缓存要求设备做7层 协议分析和处理,庞大的运算量使得P2P缓存系统不得不采用较好的硬件设备,同时也要求系统充分优化流量处理过程。

高层 协议分析的处理效率通常远低于低层协议,为解决对处理效率的要求, 系统设计要尽可能在低层协议分析过程中过滤掉非P2P流量。虽然P2P应用的协议五花八门,没有统一的标准,并且在通信端口上也各不相同,但对P2P 协议分析显示,各种P2P应用的 报文在 传输层协议上存在一定的特征,如KaZaa使用的FastTrack协议在报文中存在“GET.\hash”字段,eDonkev报文中存在“E30C5”字段,BT报文中存在“BitTorrent protocol”字段。因此,利用 协议分析,在第四层的分析中过滤掉不具备P2P特征的流量,系统就可以保证尽可能多的处理能力被用于7层的P2P协议分析,从而提供高流量的处理性能。