注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

P2P缓存系统原理  

2013-11-22 18:01:27|  分类: p2p应用 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
P2P缓存系统原理

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

    

P2P缓存系统原理 - itoedr - itoedr的it学苑
 

      如图2所示,在使用了P2P缓存系统后,P2P访问的流程如下:

P2P缓存系统原理 - itoedr - itoedr的it学苑
 

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

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

系统架构和处理流程

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

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

关键技术

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

处理效率

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

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

扩展性

P2P缓存系统的可扩展性要求包含两方面的内容:系统处理能力的可扩展性和可缓存处理的协议数量的可扩展性。系统处理能力的可扩展性是要求系统的处理能力仅仅受系统中硬件处理能力限制,如处理器的运算能力、存储器的存储能力、网络带宽的通信能力。如果需要,系统可以通过购买新的硬件来满足更多处理能力需求。对于系统处理能力的可扩展性,现在有很多相关的解决方案,如群集(clustering)系统。

可缓存处理的P2P协议的可扩展性是要求缓存新的P2P协议内容应当仅仅需要在现有系统上安装相关的分析模块,而不 需要对现有缓存系统的软件或硬件结构做整体修改,甚至是将现有系统替换掉。就当前P2P应用的发展状况来看,P2P应用和协议缺乏统一标准,P2P应用间 信息难以共享。同时,P2P应用在最近几年获得了迅猛的发展,现在已经有了数百种,其中BTeMule等少数应用已经占用了超过50%的网络流量,对网 络性能有严重影响。虽然只要分析和缓存BT等少数几个协议就可以在现阶段对P2P流量达到很好的优化效果,但随着P2P技术的发展,必然会产生对新协议分析和缓存的需求,从而要求系统可以扩展其能够分析处理的协议。对于系统处理协议的扩展,可以通过系统良好的模块化并在协议处理和缓存检查模块之间定义灵活可扩展的接口来得到保证。

P2P缓存系统原理 - itoedr - itoedr的it学苑
p2p加速网络体验原理
  评论这张
 
阅读(125)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017