P2P在流媒体中的应用摘要:随着现代网络技术的不断发展,流媒体服务得到了广泛的应用,目前主要有两种方式可以实现提供流媒体音视频的服务,即客户端/服务器模式和对等网络模式。其中对等网络作为一种传输技术,使得大范围的音视频在线直播和点播成为可能,成为当前大规模并发流媒体服务的主要技术。虽然对等网络技术推进了流媒体服务的应用,但是仍然存在着许多问题和挑战,限制了流媒体服务性能的提高。本文介绍了P2P模式的流媒体服务技术,它采用智能节点弹性重叠网络流媒体分发模型来合理利用服务器性能和服务端的网络资源,以及用户计算机的空闲能力和用户端的空闲带宽,突破了现有流媒体系统面临的障碍,同时使得流媒体系统以更低的成本提供更高质量和更大容量的流媒体服务。最后对引入P2P技术的升级版P4P,保证了流媒体的高速通信,让现有的网络变得越来越畅通。关键词:对等网络;流媒体;P4P;用户端;服务器TheApplicationofP2PinStreamingMediaAbstract:Withthedevelopmentofnetworktechnologies,streamingserviceshavebeenwidelyapplied.Nowadaystherearetwobasicandeffectivemethodstoimplementthisapplication:Client/Server(C/S)andPeer-Peer(P2P).Asonekindoftransmissiontechnology,P2Pmakesstreamingservicesonalargescalepossibleandbecomesthepopularstreamingtechnology.However,thereexistsomeproblemsandchallengesforP2Pstreamingframeworktoimpactthedevelopmentofstreaming.Inthispaper,weintroducetheP2Pmodeofstreamingmediaservicestechnology,itadoptstheintelligentnodeflexibilityoverlapnetworktorationallyusetheserver-sideperformanceandservicenetworkresources,aswellastheuser'scomputerandthesparecapacityofidleclientbandwidth,breakthroughstheobstaclesintheexistingstreamingmediasystems,atthesametimeallowsstreamingmediasystemstolowerthecostofprovidinghigherqualityandgreatercapacityofthestreamingmediaservice.Finally,weintroduceanupgradedversionP4PofP2Ptechnology,toensureahigh-speedcommunicationsinstreamingmediaandmakesuretheexistingnetworkisbecomingclearbetterandbetter.Keywords:peer-to-peer,streamingsystem,P4P,client,server1概述基于单播C/S结构的媒体服务器容易成为系统瓶颈,其扩展性不高,不适合流媒体大规模数据的分发。相应的IP组播[1]技术存在固有限制难以部署、CDN[2]分发网络成本过高、只是将瓶颈转移而非消除等问题。因此,P2P流媒体技术成为研究热点。P2P网络是一个动态构建的自主网,节点会随时加入或离开网络,节点间的处理能力、存储能力和带宽存在异构性。且流媒体本身具有其独特性质,如数据存储量大、传输持续时间长、带宽占用高以及高QoS要求等。可见,在P2P流媒体技术中,需要解决如何充分利用节点资源并减少节点启动延时,保证播放的连续性并有利于系统的扩展性、稳定性等问题。文献[3]提出单树结构的P2P流媒体服务体系,采用单发送者方式进行媒体分发。文献[4]与文献[5]都提出了构造多棵组播树(multicasttree)来传输流媒体文件,但系统只适用于小规模网络。文献[6]提出建立多个分发树来传输流媒体文件,类似于Napster,搜索效率比较高,但存在单点失效问题。引起以上问题的原因是多方面的:首先,P2P技术自身发展就有很多问题(如安全、版权、隐私保护、网络带宽吞噬)需要解决,随着P2P技术的其他方面应用日趋广泛,在提高系统效率的同时,势必将这些问题引入其他系统;更重要的是,P2P技术在给Internet用户带来方便的同时,也给网络运营商和内容提供商带来了棘手的问题。各类P2P应用的日渐增多,加剧了网络性能的恶化,降低了其他合法用户的服务质量。另外,P2P网络流通的内容缺乏有效的管理,大量的影音、文件被非法传播,给内容提供商带来了巨大的经济损失。因此,如何提出一个安全、可控、可管理、可运营的P2P应用模型,为Internet用户、网络运营商和内容提供商三方提供共赢的解决方案,是P2P技术长期发展要解决的头等大事。2P2P智能节点弹性重叠网络模型本文采用基于移动CDN与P2P网络融合方案的智能节点弹性重叠网络流媒体传输模型如图1所示。系统总体上分为3层:用户层,管理层,控制层。为实现系统规模可扩展的目的,系统采取按域划分的思想,根据地域、机构、用户规模等准则在不同地域设置管理域主节点,通过各管理域主节点管理本域内的各终端(Peer),各域主节点之间交换管理信息,使系统内各Peer节点按一致策略在系统内最优的路线上进行通信,提高系统的通信效率,监测并对网络中出现的各类异常作出反应;控制层根据用户终端的节点属性、用户属性等信息配置用户到相应的管理域,并监控管理域内各节点,用户Peer端所实现的各项业务则在管理域的控制下完成。图1基于移动CDN与P2P的智能弹性重叠网络3P2P流媒体的数据传输策略一个好的数据调度算法可以有效节约网络资源。目前,典型数据调度算法有2种模式:推模式和拉模式。在推模式中,节点收到数据后不考虑其他节点的动态行为而直接转发。在拉模式中,数据的调度先由邻居节点请求驱动,然后节点根据一定算法响应用户请求。P2P是一种动态异构网络,它需要更智能的调度算法。在已有P2P流媒体服务体系中,较常用的媒体传输策略为补丁流算法和DONet中基于数据驱动的拉模式调度。3.1补丁流调度算法补丁流调度算法系统中的节目流一般分为2类:(1)包含完整节目信息的数据流,称为Regular流;(2)只包含节目开始部分很短的一个片断,称为Patching流。图2显示了补丁算法的基本调度策略,具体如下:在t0时刻,系统为用户请求r0生成Regular流,其长度为V。设用户可缓存长度为B的数据,新用户请求r在t时刻到达。如果(t–t0)≤B,则系统生成一个包含媒体开始部分[0,t–t0]的Patching流,长度为t–t0。用户同时接收Regular流和Patching流数据,并立即播放Patching流数据,而将Regular流的数据暂存到缓冲区。当用户播放完Patching流后,播放缓存的Regular流数据,并将接收到的Regular流数据不断加入缓冲区。只要生成一个长度很小的Patching流,就可以让2个用户共享一个Regular流。图2补丁流调度文献[7]提出的P2Cast采用上述算法。在P2Cast中,节点加入后,从父节点处获得基本流,采用推模式。补丁流从服务器或之前加入的任何节点处获取,采用拉模式。P2Cast补丁流应用实例如图3所示,其中,阴影部分表示Client1已经缓存的内容。Client2在t2到达时,可以从Client1处获取补丁流。该类用户利用本地缓存同时接收2条或多条媒体流的补丁流策略,实现了无延迟的服务。系统尽可能用组播流合并用户,以维持较高效率。但上述方法较适用于树状结构的P2P媒体服务模型,难以应用于DONet无结构覆盖网络。图3P2Cast补丁流应用实例3.2DONet中的数据传输策略DONet采用基于数据驱动的拉模式调度策略,节点用一个缓存映射(BufferMap,BM)表示自己的缓存状况,并周期性与邻居节点交换BM了解彼此缓存情况,节点根据自己想要的数据和BM来选择邻居节点,并向这些节点请求缺失的数据,属于数据驱动模式。调度受以下2个条件约束:(1)每个数据片段应该在播放的Deadline之前到达,使错过Deadline的片断尽可能地少;(2)每个节点的带宽情况不同。某个片段的提供者越少,就越难满足Deadline请求。因此,DONet统计每个片段的提供者数量,并采用稀少数据优先算法,先获取只有一个提供者的数据片段,然后获取有2个提供者的数据片段,依此类推。获取有多个提供者的片断时,在保证Deadline的前提下,选择带宽最大的提供者。DONet同时采用了拉模式,因此,数据传输过程需要经过3个步骤:(1)节点A向节点B发送BM消息;(2)节点B根据节点A的BM消息发送数据请求;(3)节点A根据收到的请求给节点B发送相应数据。假设A,B间的传输延迟为TAB,发送BM和请求的周期为T,交换BM和请求等待的平均时间为0.5T,数据发送的平均时间也为0.5T,则完成整个传输的时间如下公式所示:ABABABABwhole3T1.5TT0.5TT0.5TT0.5TTDONet是第1个成功运行的大规模直播系统,但这种基于拉策略的调度算法相对推传输策略(Twhole=TAB)增大了视频传输延迟和系统控制开销。文献[8]在指出上述策略使网络流量中的控制信息比重较高,导致系统控制开销增大时,提出了一种推拉结合的策略,节点将时间分成连续的时间片,在不同时间片内分别采用拉模式或推模式进行调度。在有新邻居节点加入或有邻居节点退出后的下一个时间片内,节点通常工作在拉模式下,在其他时间片内,节点一般工作在推模式下,因此,有效减少了传输延迟和控制开销。4P2P多媒体内容分发策略在P2P的网络中,所有节点都是对等的,除非某些网络中设置一些超级节点负责管理局部网络的事务。另外,每个节点都对网络中的某些内容具有兴趣,或者其所拥有的某些内容其它节点会感兴趣。内容分发算法的目标是建立起从源到目标接收节点的最小延迟和满足音视频等播放质量的分发网络。由于网络中资源的存放方式不同,分发策略可以分为单源和多源的策略。另外,根据分发过程中数据的传输途径不同,又可以分为单路径和多路径策略。还有的策略对不同的节点进行了分代或分组,根据内容,分发策略可以分为以下四类:单源单路径、单源多路径、单源分代和多源多路径。单源与多源策略如图4,图5所示图4单源的P2P流媒体传输图5多源的P2P流媒体传输本文主要从多源多路径策略分析P2P在流媒体中的应用。在网络高速发展的信息时代,网络资源的来源之广,这就代表资源拥有的节点是非常多的,因此我们可以充分利用这种资源,建立多源多路径结构,在这种结构中,没有相对的中心节点,内容可能已经实现分布在不同的节点上,所有节点都可以成为发布者和接收者。如图6所示,假设节点A,B,C分别拥有一部视频的第①,②,③段,为了正常播放,A需要到B和C获取第②,③部分;同理,B要到A,C获得第①,③部分,C要到A,B获得第①,②部分,D要到A,B,C获得第①,②,③部分。采用多源多路径结构的主要策略有GnuStream[9]和PROMISE[10]等.5P2P流媒体中的节点选择优化算法图6网状结构当一个节点有多个节点可以为它提供资源时,选择哪些节点为这个节点服务是P2P流媒体服务体系需要解决的问题之一。一般的解决方案采用随机选取原则,该做法不能保证服务质量且选择的节点可能使构造的逻辑网络与实际物理网络不匹配