毕业设计P2P视频直播中数据调度算法理论研究和设计终稿.docx
《毕业设计P2P视频直播中数据调度算法理论研究和设计终稿.docx》由会员分享,可在线阅读,更多相关《毕业设计P2P视频直播中数据调度算法理论研究和设计终稿.docx(27页珍藏版)》请在冰豆网上搜索。
毕业设计P2P视频直播中数据调度算法理论研究和设计终稿
摘要
最近几年来,基于P2P视频直播技术的研究愈来愈受到重视,其目的是通过P2P技术减轻效劳器的压力,同时支持更大的用户规模和提供更好的用户体验。
传统的C/S模式下,效劳器带宽和处置能力通常会随着系统规模的增加而成为系统的瓶颈。
P2P技术的显现有效地解决了这一问题。
可是,P2P技术也带来了大量的待研究问题,例如P2P应用层拓扑和底层物理拓扑的匹配问题,高效的P2P数据调度算法问题。
不合理的P2P拓扑和数据调度算法一方面会降低用户的体验,另一方面会无谓地消耗网络的带宽资源,给网络的正常运转增添压力。
本文要紧对P2P视频直播中数据调度算法理论进行了研究和设计。
关键词:
P2P、流媒体、直播、数据调度
ABSTRACT
Inrecentyears,peoplehavepaidmoreandmoreattentiontovideo-on-demandsystemsbasedonP2Ptechnology.Theyaimatreducingthestressoftheservers,supportinglargeruserpopulationandprovidingbetterusertraditionalC/Ssolutions,withtheincreaseofusers,theserver-sidebandwidthortheprocessingcapabilitywilleasilybecomethebottleneckofthesystem.TheemergenceofP2Ptechnologychangesthissituation.However,P2Ptechnologyalsointroducesnewproblemstobeaddressed,forexample,thetopologymatchproblembetweentheP2Poverlayandtheunderlyingphysicaltopology,andthedataschedulingalgorithm.InappropriateP2Ptopologyandineffectivedataschedulingalgorithmwillononehand,leadtobaduserexperience,andontheotherhand,consumelargeamountofbandwidthandplaceheavyburdenonthenetwork’snormalfunctioning.ThispaperfocusesondiscussingP2Plivestreamingrelateddataschedulingalgorithmtheories,anddescribeshowtodesignaP2Plivestreamingsystem.
Keywords:
P2P,streaming,livebroadcast,dataschedulingalgorithm
第一章前言
P2P流媒体的研究背景及意义
近几年来,随着网络技术和流媒体技术的进展,远程教学治理、视频谈天室、IPTV、视频会议等流媒体系统正在兴起或被普遍应用,而且网络流媒体视频直播有着良好的进展前景和商业价值。
但是,在当前的Internet上传输媒体并无任何效劳质量(QoS)的保证,而且实时媒体的传输有带宽,时延和丢包等问题的显现。
另外,网络和终端的异构性使得带宽效率和效劳的适应能力也有所下降。
可是,随着P2P技术愈来愈被普遍研究和运用,这些问题都取得了解决。
而且P2P已经在散布式计算、网络游戏、文件共享、深度搜索、协同工作方面取得了普遍的应用。
因此,利用P2P技术进行实时的分发传输,便能充分利用客户端闲置的CPU、存储器、网络带宽等资源,减轻效劳器和网络带宽负担,构建出一个本钱低、扩展性好、并有必然QoS保证的流媒体直播系统。
本文以P2P直播系统中的数据调度为线索,对基于P2P的直播的大体概念、已有技术方案及原理进行分析,以此为基础总结和提出了基于邻居节点能力与节点拓扑关系的数据请求调度算法。
流媒体技术
音/视频(A/V)等多媒体信息是在时刻上展开的数据流,具有数据量大和实时等特点。
要在多媒体终端(如PC)上再现或回放多媒体信息,取得滑腻的多媒体数据流超级重要。
当用户通过下载方式将网络中效劳器的数据保留至本地终端DSM(数字存储媒质,如运算机硬盘)后,通过数据总线在DSM和内存之间进行传输不难实现。
但采纳下载方式,用户必需考虑两个因素:
对客户端的存储需求和播放启动延时。
因为A/V文件一样都较大,需要专门大的存储容量;而且由于网络带宽的限制,下载需要花费较长的时刻。
1.2.1流媒体技术概述
流媒体技术,确实是将完整的影像和声音数据通过紧缩处置后保留在网站效劳器上,用户能够边下载边获取信息,从而无需将整个紧缩文件下载以后再观看的网络传输技术。
即采纳流式传输方式直接从网络上取得滑腻的数据流,不必第一把多媒体数据下载到本地终端在采纳流式传输的系统中,声音、影像、动画等信息从网络中音视频效劳器向用户终端(如PC、PDA等)持续、实时传送,用户没必要象下载方式那样等到整个文件全数下载完毕,只需通太短暂的启动延时(缓冲)即可在用户的运算机上通过解压设备(硬件或软件)解压后进行回放,数据的剩余部份在后台继续从效劳器下载。
这种对多媒体数据边下载边回放的方式不仅使启动延时缩短,而且不需要本地终端有太大的存储容量。
在网络上传输视频信息,最简单直接的方式,确实是把视频内容按某一格式搜集、编码,寄存在文件中,然后把文件通过一样的网络传输协议传输到接收端,再在接收端的机械上解码并播放。
可是这种方式有它的缺点:
1.必需等整个视频文件全数传输完毕,才能开始播放文件。
由于视频文件一样都较大,在网络带宽还很有限的情形下,下载整个文件往往需要很长的时刻;2.不适合现场直播的形式;3.占用专门大的存储空间。
流媒体技术显现正好解决了上述的缺点,因此,流媒体技术取得快速进展,流媒体业务也被以为是以后高速宽带网的主流业务。
1.2.2流媒体的传输方式
(1)顺序流式传输
即在给按时刻,用户只能观看已下载的部份,而不能跳过还未下载的部份,它不像实时流式传输那样在传输期间依照用户连接的速度进行调整。
由于文件在播放前观看的部份是无损下载的,顺序流式传输方式适合高质量的短片段,如片头、片尾和广告,不适合长片段和有随机访问要求的视频、讲座、演说与演示,也不支持现场广播。
严格说来,它是一种点播技术。
(2)实时流式传输
是指媒体传输时信息带宽能自动动态适应网络带宽,保证媒体信号带宽与网络连接相匹配,使媒体可被实时观看到。
它与顺序流式传输不同,需要专用的流媒体效劳器与传输协议。
实时流式传输适合现场事件,也支持随机访问,用户可快进或后退观看前面或后面的内容。
理论上,实时流一经播放就可不断地收看,但事实上,可能会发生周期暂停。
(3)二者的比较
1.从视频质量上讲,实时流式传输必需匹配连接带宽,由于犯错丢失的信息被忽略掉,网络拥堵或显现问题时,视频质量会下降;如欲保证视频质量,顺序流式传输更好。
2.实时流式传输需要特定的效劳器,如QuickTimeStreamingServer、RealServer与WindowsMediaServer,这些效劳器许诺对媒体发送进行更多级别的操纵,因此系统设置、治理比标HTTP效劳器更复杂。
3.实时流式传输还需要特殊的网络协议,如:
RTSP(RealtimeStreamingProtocol)或MMS(MicrosoftMediaServer),这些协议在有防火墙时有时会显现问题,致使用户不能看到一些地址的实时内容,而顺序流式传输与防火墙无关。
P2P网络技术
随着因特网规模的不断扩大和网络用户的急剧增加,流媒体应用以其特有的娱乐性和交互性正在成为推动以后宽带应用的主动力。
基于客户机/效劳器(Client/Server,C/S)模式的流媒体直播系统,由于效劳器性能和网络带宽两个方面的大体限制,无法用于大规模用户网络环境。
组播技术尽管能够有效解决流媒体直播系统中的效劳器和网络负载问题,但由于其可扩展性、靠得住传输、拥塞操纵和部署复杂性等方面的问题,目前还难以普遍部署。
将对等(PeertoPeer,P2P)网络技术引入流媒体直播系统,能够显著地减少效劳器负载和网络带宽的消耗,具有组播技术的优势,但无需升级路由节点,部署简单方便。
相关研究已提出多种P2P流媒体直播技术方案,各类直播技术方案都是以解决P2P直播系统面临的节点动态性,启动延时长等问题,减少节点动态行为对系统的阻碍,以保证视频播放的可用性和持续性为目标。
P2P概念
P2P是PeertoPeer的简写,中文翻译为对等互联或点对点技术,P2P网络一样也称为对等网络。
在P2P网络中,节点之间没有效劳器与客户机之分,各节点之间是平等的关系,能够直接彼此通信,共享计算和存贮能力。
P2P是一种散布式网络,网络的参与者共享他们所拥有的一部份硬件资源,包括处置能力,存储能力,网络连接,打印机等,这些共享资源需要由网络提供效劳,能被其它对等节点直接访问而无需通过中间实体.在此网络中的参与者既是资源提供者,又是资源获取者。
P2P打破了客户机/效劳器(C/S)模式,在网络中每一个节点的地位平等,每一个节点既充当客户,共享其他节点提供的效劳,又充当效劳器,为其他节点提供效劳和内容。
P2P网络结构
1.集中式P2P网络:
代表是Napster、QQ
有一个中心效劳器负责记录共享信息(索引信息)并应答对这些信息的查询。
与C/S模式的不同是在C/S结构中,客户端之间没有数据流,通过中心效劳器互换数据。
而P2P登录与信息查询都与中心效劳器连接,但查询到数据后,就与寄存数据的客户端直接成立连接。
图1-1集中式P2P网络架构(Napster)
2.散布式非结构化P2P网络:
代表是Gnutella
采纳了随机图的组织方式来形成松散的网络,没有中心效劳器,采纳洪泛式搜索(Flooding)和随机转发机制(TTL转发机制),每一个节点功能相同,兼作效劳器和客户机。
节点的治理有些像路由的治理,信息在网络中像水的波纹一样传播,直到“能量”耗尽。
图1-2典型的散布式非结构化P2P网络(Gnutella)
3.散布式结构化P2P网络:
代表Pastry、Tapestry、Chord、CAN
结构化是对网络解决的治理方式,是一种逻辑上能够结构化查询,而不是物理连接的变更,结构化是为了搜索算法的快捷,一样相当于折半查找。
DHT(DistributedHashTable散布式散列表)路由算法是通过散布式散列函数将输入的关键字唯一映射到某个节点上,然后通过特定路由算法和该节点成立连接。
网络节点被分派唯一节点标识符(NodeID),资源对象通过散列运算产生唯一资源标识符(ObjectID),且该资源存储在NID与之相等或相近的节点上,查询时,一样的方式定位到存储该资源的节点。
4.混合式(半散布式)P2P网络:
第三代P2P,代表Skype
在散布式模式基础上,将用户节点按能力进行分类,使某些节点担任特殊的任务。
用户节点:
能够从索引节点处取得相临的搜索节点地址。
搜索节点:
处置搜索请求,要有128k以上的速度,从子节点中搜索文件列表。
索引节点:
速度快、内存大的节点,保留能够利用的搜索节点信息、搜集状态信息,并保护网络结构。
索引节点也能够同时是搜索节点。
用户节点能够选择三个搜索节点为父节点,并提交它的共享列表。
一个父节点能够保护500个小孩节点。
第一索引节点的引入不直接连接有版权的资料,摆脱了版权问题。
第二引入搜索节点,查询时,用户节点直接连接搜索节点,假设搜索的结果不足100个,就向相临的搜索节点再发请求,假设还不足,再继续扩散请求,直到所有的搜索节点都访问过。
图1-3混合式(半散布式)P2P网络(Skype)
P2P与流媒体技术的结合
P2P技术引入到流媒体传输中从而形成了P2P流媒体技术,该方式有两方面的优势。
第一,这种技术并非需要复杂的互联网路由器和网络基础设施的支持,因此性价比高且易于部署;第二,在这种技术中,利用了P2P网络的优势,用户彼此共享各自拥有的视频数据,既是播放者,又是视频数据提供者,一起参与系统的效劳,整个系统的效劳能力随着用户数量的增加而增加,具有可扩展性。
基于P2P技术的流媒体系统能够加倍有效地利用每一个节点的能力,同时每一个节点能够从多个节点获取数据,因此采纳该技术的视频直播系统能有更强的扩展性和更靠得住的质量保证。
在流媒体直播效劳中,用户只能依照节目列表收看当前正在播放的节目。
在直播领域,交互性较少,技术实现相对简单,因此P2P技术在直播效劳中进展迅速。
第二章P2P直播系统研究现状
基于树状的P2P直播系统
在基于树状模型的P2P流媒体直播系统中,节点被组织成一个树状逻辑覆盖网络,称为多播树。
基于树状拓扑协议及扩展的模型把参与多播的节点组织成一棵应用层多播树,树的父节点负责为子节点传送数据。
这种模型第一构建一个数据的分发树,接着节点会发觉那些树状拓扑中与其不相邻的节点,进而与它们成立操纵信息通道,形成操纵拓扑结构。
在基于树状拓扑协议及扩展的模型的P2P流媒体直播系统中,关键的问题是多播树的构造。
要紧有两个问题:
1.树的高度问题。
若是树的高度太高,某些节点离根节点太远,数据的延必将会增加,从而阻碍播放成效。
但树的高度也不能太低,太低延时尽管小了,但根节点的负担加重了,很明显,当树的高度为1时,系统事实上退化为一个C/S系统,所有的负荷都加到了根节点上。
2.树的快速修复问题。
由于P2P系统具有高度动态性,节点的行为是不可预知的,可能随时加入系统,也可能随时退出,专门是当一个非叶子节点退出时,其所有的子节点都将受到阻碍。
因此构建的多播树还需具有快速修复能力。
目前,基于树状模型的P2P流媒体直播系统要紧有PeerCast、Zig-Zag、SplitStream、CoopNet等。
PeerCast是美国Stanford大学Peer-to-Peer研究小组的研究功效。
它采纳一个简单的单根树结构,是树状组播模型中最简单的模型。
PeerCast采纳简单的单树根结构将节点组织起来,其中树的父节点给子节点提供效劳。
为了优化节点间的传输延时,在PeerCast中通过限定父节点所能效劳的节点个数来实现。
在PeerCast中,节点的加入和离开采纳简单的重定向技术,易于实现,可是如此也易造成树的不平稳,使得距离根节点越远的节点,数据的时延就越大,因此,就要求构建的组播树的深度应该尽可能的短。
另一方面,每一个节点的有限输出带宽限定了节点的宽度,因此,构建的组播树应该使树的深度与宽度达到有效的平稳。
针对单树结构的P2P系统中叶子节点的带宽被浪费的问题,人们提出了基于多树的P2P视频直播技术。
在SplitStream系统中,所有参与直播的节点都能够向其他节点传输数据,每一个节点能够加入多棵应用层组播树,在实现上,SplitStream将要分发的媒体分成几块,然后再在不同的应用层组播树上分发不同的数据块。
基于多树结构的P2P视频直播系统中,每一个节点位于不同的组播树中,当节点加入退出系统时,就需要保护多棵树的拓扑结构,那个调整进程十分复杂,而且容易犯错。
基于Gossip协议的P2P直播系统
基于Gossip协议模型的大体思想是:
一个节点随机地选择一组节点发送新产生的消息,收到消息的那些节点利用一样的方式把消息发送出去,直到所有的节点收到消息为止。
基于树状拓扑协议及扩展的模型概念了节点与节点之间的关系,子节点从父节点获取数据。
在基于Gossip协议的系统模型中,节点之间不需要构造复杂的拓扑关系,也没有确信的父节点。
在这种模型中,每一个节点通过Gossip协议来保护系统中其它部份节点的视图,通过必然的调度算法在节点之间实现数据互换。
数据的传输采纳拉模式,即节点第一贯另一个节点发出请求,另一节点再依照请求发送数据,在这种系统中,通常需要比较大的缓存,系统的启动延迟相对照较大。
可是,因为每一个节点的数据来源并非依托于某个特定的父节点,因此系统有更强的健壮性。
DONet(Data-drivenOverlayNetwork)是一个典型的基于Gossip协议的模型。
DONet的核心思想超级简单:
每一个节点周期性的会跟其伙伴节点互换数据信息,它能够从一个或更多的伙伴节点处取得需要的数据,也能够向其他伙伴节点提供已有的数据信息。
这种模型有三个显著特点:
1.易于实现:
DONet模型不需要构建和保护更为复杂的网络结构;
2.高效性:
数据转发是动态进程,数据的传输方向并非固定,因此每一个节点动态地和其他节点互换缓存信息,并依照缓存信息互换节点之闻的媒体数据;
3.鲁棒性和容错性:
DONet构造的伙伴关系能够在多个提供者之间适时调整和快速转化。
第三章基于不同拓扑结构的P2P直播系统数据分发
基于单树状结构的P2P视频分发技术
基于树状结构的P2P视频直播系统的典型例子是OverCast。
在基于树状结构的视频直播系统中,所有的参与者被加入到一棵应用层组播树中,不同的系统采纳的建树策略是不同的,可是应用层拓扑结构都是一棵树。
如图3-1所示。
图3-1单树状直播系统结构图
效劳器节点将数据发送给第一级节点,第一级的节点接收到数据后,发送给第二级节点,第二级节点再继续向下发送。
基于单树的P2P视频直播系统中,由于数据分发的策略是逐级发送,因此越下级的节点接收到数据的时刻越靠后。
若是在参与者必然的情形下,减少树的级数,那么每层节点的数量就要增加,对父节点的带宽和处置能力也会提出更高的要求。
在基于单树的P2P视频直播系统中,一个节点的退出,将阻碍其所有子树上节点的视频成效,如图3-2所示,一个子树的根节点退出网络时,其子节点都将临时收不到数据。
而且,节点退出后,新节点的选取也比较复杂,节点拓扑结构保护代价较高。
图3-2单树状直播系统树枝截断图
另外,在基于单树的P2P视频直播系统中,叶子节点只能接收上层节点的数据,而不发送数据给其他节点,因此,叶子节点的上传带宽得不到充分的利用。
基于多树状结构的P2P视频分发技术
针对单树结构的P2P系统中叶子节点的带宽被浪费的问题,人们提出了基于多树的P2P视频直播技术。
在SplitStream系统中,所有参与直播的节点都能够向其他节点传输数据,每一个节点能够加入多棵应用层组播树,在实现上,SplitStream将要分发的媒体分成几块,然后再在不同的应用层组播树上分发不同的数据块。
图3-3是一个简单的示用意。
系统中成立了两棵组播树,效劳器将要分发的数据分成2组,一组是单号的数据块,一组是双号的数据块,效劳器在一棵树上分发单号的数据块,在另一棵树上分发双号的数据块。
基于多树结构的P2P视频直播系统中,每一个节点位于不同的组播树中,当节点加入退出系统时,就需要保护多棵树的拓扑结构,那个调整进程十分复杂,而且容易犯错。
图3-3Splitstream网络拓扑与数据分发示用意
基于Mesh结构的P2P视频分发技术
最先的基于Mesh结构的P2P视频直播系统是由香港科技大学张欣研博士开发的CoolStreaming原型系统,2004年5月欧洲杯期间,这套系统在Planetlab网上试用取得成功。
这套系统利用Gossip协议在用户之间传播操纵信令,利用类似于BT的多点对多点的数据传播协议在用户之间传送媒体数据包。
CoolStreaming系统是第一次真正将可扩展和高靠得住性的Mesh结构多播协议应用在P2P直播系统当中,标志P2P直播技术进入准商业运作时期。
目前,比较成功的几个P2P视频直播系统如PPLive,PPStream等,采纳的都是Mesh结构。
基于Mesh结构的P2P视频直播系统与基于树状结构的系统的最大的区别在于节点之间的关系是对等的,没有树状结构中的父节点和子节点的概念。
所有的节点都能够向自己的邻居节点发送数据,也能够向自己的邻居节点请求数据。
相关研究说明,基于Mesh结构的P2P视频直播系统比基于树状结构的视频直播系统有更好的性能。
第四章P2P视频直播系统的数据请求调度技术
P2P视频直播系统数据请求调度研究现状
由于P2P环境的高度动态性和异构性,为了实现高质量的媒体流,如何选择最优的数据发送节点是一个很重要的问题,也是设计实现流媒体系统最大的挑战之一。
在动态环境中保护和选择出知足流媒体播放质量要求的邻居节点的基础上,还要设计合理的算法在多个数据发送节点间优化数据发送的选择,来取得最小的数据传输延迟。
在数据调度算法方面,尽管请求数据块的划分有以秒为单位的,也有以数据包为单位的,可是调度算法的研究要紧集中在两个方面,一个是数据的传输方式,一个是具体的调度策略。
数据调度是P2P流媒体研究领域中的核心问题。
由于流媒体应用的数据量大、效劳时刻长,且对数据的播放有较为严格的时限和顺序要求,而作为Internet上一般主机节点的Peer节点,与传统的效劳器节点相较,其效劳能力不仅有限,不同Peer节点的效劳能力也具有不同性。
另外,Peer节点还可能随时退出系统,从而造成部份节点流传输的中断。
因此在P2P系统架构前提下,如何通过合理的数据调度来为用户提供高质量的流媒体效劳,也面临诸多困难和挑战。
从数据分发的拓扑结构来看,现有研究可划分为基于单组播树的数据分发调度、基于多组播树的数据分发调度和基于随机拓扑的数据调度这三种类型。
另外,由于P2P流媒体系统中Peer节点数量众多且状态不稳固,因此该领域研究中的另外一个核心问题是Peer节点的搜索定位,即如何能够快速高效地定位到可提供目标数据效劳的Peer节点。
下面介绍该领域具有代表性的功效及其特点。
4.1.1基于单组播树的数据调度研究
在P2P流媒体研究的初期时期,研究人员借鉴了传统IP组播的思想,把参与效劳的Peer节点在应用层组织成组播树,树的根节点为流媒体效劳器。
每棵组播树上的Peer节点共享从效劳器一个频道所流出的数据,每一个Peer节点只参与到一棵组播树。
随后,为减少组播树构造进程中对部份节点(如根节点)的协议负载,相关研究人员提出了多种基于分层簇思想的组播树构建协议;为减缓组播树中间节点退出行为对其他节点播放质量的阻碍,研究人员提出了一系列优化改良方法,包括候选父节点机制、补丁流机制和联合随机数据转发机制等。
但从整体上来讲,在基于单组播树的各类数据分发机制中,一样都假设中间节点可同时向多个子节点提供节目数据,但事实上现有大部份主机节点的带宽资源有限,往往不能知足该假设条件;而组播树上中间节点的离开或失效往往会对其下游所有节点的数据接收造成阻碍,节点的效劳质量也难以取得保证;另外该类方案逐存在如下矛盾:
一方面组播树的中间节点负载过重,另一方面大量组播树叶节点的带宽资源却得不到有效的利用等。
因此,这种研究要紧体此刻理论方面,还不能为P2P流媒体应用系统的构建提供直接的技术支持。
4.1.2基于多组播树的数据调度研究
基于多组播树的数据分发调度要紧原理是:
在