关闭

缓存技术优化P2P流量

标签: p2p优化缓存系统网络服务器扩展
1633人阅读 评论(0) 收藏 举报

【流媒体网】摘要:随着P2P文件共享应用的泛滥,P2P应用大 量占用了基础网络运营商的核心带宽,并在影响运营商利润的同时影响了P2P技术的继续发展。本文介绍了一种P2P流量优化技术——P2P缓存系统。通过对 P2P流量进行缓存过滤,可使P2P流量占用的核心网络带宽大大降低,从而解决P2P文件共享同基础网络运营的矛盾。本文讨论了P2P缓存系统所面临的主 要问题,并提出了相关的解决方案。


    1、引言

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

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

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

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

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

    2、P2P缓存系统

    2.1 基本原理

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

图1 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%的字节命中率[3]。这意味着P2P缓存系统的使用可 以非常有效地缓解P2P流量对网络带宽的占用。同时,由于缓存系统靠近P2P用户,可以使用户访问不必穿过缺乏服务质量保证的核心网络,从而降低用户访问 响应时间,保证用户访问质量,提升用户体验并吸引用户,从而为P2P技术的进一步发展提供保障。

    2.2 系统架构和处理流程

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

图2 P2P缓存系统架构

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

    3、关键技术

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

    3.1 处理效率

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

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

3.2 扩展性

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

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

    3.3 版权保护

    版权问题长期以来是困扰P2P系统的一个难题。一方面,对版权缺乏保护造就了P2P文件共享网络上的丰富内容,推动了P2P文件共享的快速发展;另一方 面,对版权缺乏保护又使得P2P共享对版权内容缺乏吸引,从而阻碍了P2P建立成功的商业模式并推动其进一步发展。迄今为止,虽然业界不断提出P2P文件 共享系统的版权保护解决方案[7],但各种方案或多或少地存在一些问题。如何在保持P2P系统开放性的同时吸引版权内容的参与仍然是一个难题。

    P2P缓存系统是一个不负责内容发布的流量优化系统,在版权保护方面也需要有一定的考虑,具体地说就是要求在提供缓存内容的代理服务的同时不触犯任何版权 保护法例。需要注意的是,在中国至今仍然没有明确的相关法律法规,在全球范围内对相关问题有明确界定的也仅仅是美国的《千禧年数字版权法(DMCA)》 [8]。在该法案中对缓存类设备定义了“版权安全港”,这一定义对提供内容缓存系统做了如下界定:缓存是在本地服务器中为终端用户所做的自动、暂时的内容 存储,并对缓存系统提出了以下要求:

    ●缓存系统不能成为内容的原始提供者;
     ●缓存系统不能在缓存过程中改变被缓存内容;
     ●缓存系统的存在不能影响内容的原始访问方式(如口令认证过程等);
     ●缓存系统对内容更新的处理应当符合相应的行业标准;
     ●缓存系统必须在了解到所提供/缓存内容侵犯版权所有人权利后立即删除相应内容。

    为符合上述对“版权安全港”的要求,缓存系统在为peer访问提供缓存内容服务后需要保证peer访问流程符合原有P2P应用的要求,也就是要求缓存系统 具备将P2P应用的数据和信令消息分离的能力。所有的信令交互仍然由信令信道通过缓存设备向提供文件服务的源peer发送,仅对数据通信提供优化加速。这 可以通过在缓存系统将访问peer。到被访问peer的链接分割为两个链接实现。对访问peer和缓存设备之间的链接,缓存设备模拟正常的peer访问流 程,提供正常的数据通信;对缓存设备到被访问peer的链接,缓存设备在转发所有请求和控制信息的同时,将数据传输信息用占用带宽很少的P2P维持链接信 息替代(如BT中有效内容长度为0的消息),该信息同时还起到监测被访问peer状态的功能。当被访问peer停止提供服务时,缓存设备需要停止为其内容 提供分发服务。另外,缓存设备还需要提供手动删除缓存内容的能力,以保证在发现内容侵权的第一时间立即删除侵权内容。

    3.4 部署方式

    缓存系统的部署主要受流量捕捉方式的限制。最简单的部署方式显然是串联方式,如图3(a)所示,但串联方式存在一些问题。首先,串联方式通常会降低原有网 络的稳定性。串联方式所串接的缓存系统相对于原有网络是一个新的潜在故障点。虽然配置冗余系统可以弥补增加新故障点带来的危险,但冗余系统意味着更昂贵的 投资需求。其次,串联方式的实施可能会导致业务中断。串联系统的实施通常包括切断现有设备链接,接入缓存系统,恢复网络链接等过程,从切断原有连接开始, 原有的网络服务就会中断,直到成功恢复新的网络连接。虽然网络中断可以通过良好的备用网络设计和网络割接工程的细致规划实施得到解决,但这种解决方案通常 需要大量的资源和精力,而且割接过程本身也有造成网络中断的可能。

图3 缓存系统的部署方式

    当网络的稳定性和业务持续性是用户非常关注的事情时,P2P缓存系统的部署就必须考虑旁路方式,如图3(b)所示。在旁路方式中,缓存系统不需要串接入网 络路径,缓存系统的流量捕捉依赖网络路径中相关设备的配合实现。一种旁路部署方案是利用路由器的策略路由功能,将所有需要监测的流量转发给P2P缓存系 统。策略设置可以是将到目标网络的所有通信报文转发,但是这同时也将大量非P2P流量交给了缓存系统处理。另一种策略设置是仅将部分可能是P2P流量的报 文转发给缓存系统,例如所有源和目的端口号都高于1024的TCP报文,这样可以在路由转发阶段就过滤掉部分流量,从而减轻缓存系统的处理压力。不过,有 一些P2P应用会利用通用业务接口做伪装,例如Skype在无法利用其他UDP或TCP端口通信时会利用端口80(HTTP)或443(HTTPS)通信 [9]。因此,采用后一种策略可能会无法对该类P2P协议缓存。

    4、结束语

    本文介绍了P2P缓存系统的原理,系统架构和处理流程并讨论了现网应用对P2P缓存系统在处理效率、可扩展性、版权保护以及系统部署等多方面的要求,提出 了解决相关需求的技术方案。通过部署P2P缓存系统,基础网络运营商可以利用有限的投入支撑增长的P2P业务需求,从而解决当前P2P技术带来的带宽冲 击。

参考文献

1、明叔亮,陈玉鹏,徐龙建等.P2P:新媒体革命——P2P:革命已经开始.互联网周刊.2006(7):24~26
    2、李志明.用netfilter/iptables限制P2P流.开放系统世界,2004(6):33~36
    3、Wierzbicki A,Leibowitz N,Ripeanu M,et a1.Cache replacement policies revisited:the case of P2P traffic.In:Fourth International Workshop on Global and Peer-to-Peer Computing(GP2P’04),Chicago,IL,USA,April 2004
    4、金一,陆建德.P2P环境下防火墙的研究与开发.计算机应用,2005,25(S1):128~130。
    5、柴智,李萌.群集系统的设计与实现.天津通信技术,2004(3):19~26
    6、Zhang J,Yang J,An C,et al.Traffic measurement and analysis of TUNET.In:2005 International Conference on Cyberworlds(CW’05),Singapore,November 2005
    7、Lemley M A,Reese R A.Reducing digital copyright infringement without restricting innovation.UC Berkeley Public Law Research Paper No 525662;U of Texas Law,Public Law Research Paper No 63;U of Texas Law and Econ Research Paper No 025,2006
    8、The Digital Millennium Copyright Act,1998
    9、Baser S A,Schulzrinne H.An analysis of the Skype peer-to-peer Internet telephony protocol.In:The Conference on Computer Communicaitons the Twenty-fifth Annulal Joint Conference of the IEEE Communications Society(INFOCOM’06),Barcelona,Spain,March,2006

 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:221251次
    • 积分:2925
    • 等级:
    • 排名:第12086名
    • 原创:47篇
    • 转载:86篇
    • 译文:0篇
    • 评论:43条
    最新评论
    技术类