p2p流媒体技术及原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 P2P流媒体系统
1.1P2P流媒体系统播送方式
P2P流媒体系统按照其播送方式可分为直播系统和点播系统,此外近期还出现了一些既可以提供直播服务也可以提供点播服务的P2P流媒体系统。
1.1.1直播
在流媒体直播服务中,用户只能按照节目列表收看当前正在播放的节目。在直播领域,交互性较少,技术实现相对简单,因此P2P技术在直播服务中发展迅速。2004年,香港科技大学开发的CoolStreaming原型系统将高可扩展和高可靠性的网状多播协议应用在P2P直播系统当中,被誉为流媒体直播方面的里程碑,后期出现的PPLive和PPStream 等系统都沿用了其网状多播模式。
P2P直播是最能体现P2P价值的表现,用户观看同一个节目,内容趋同,因此可以充分利用P2P的传递能力,理论上,在上/下行带宽对等的基础上,在线用户数可以无限扩展。
1.1.2点播
与直播领域相对应,在P2P流媒体点播服务中,用户可以选择节目列表中的任意节目观看。在点播领域,P2P技术的发展速度相对缓慢,一方面是因为点播当中的高度交互性实现的复杂程度较高;另一方面是节目源版权因素对P2P 点播技术的阻碍。目前,P2P的点播技术主要朝着适用于点播的应用层传输协议技术、底层编码技术、以及数字版权技术等方面发展。
与P2P流媒体直播不同,P2P流媒体点播终端必须拥有硬盘,其成本高于直播终端。目前P2P点播系统还需在技术上进一步探索,期望大规模分布式数字版权保护(DRM)系统的研究,以及底层编码技术的发展能为P2P点播系统的实施铺平道路。
1.2P2P流媒体系统网络结构
目前存在很多P2P流媒体的研究成果及实际系统,它们在其覆盖网络的组织结构上可以被大体分成两大类,即基于树(Tree-based)的覆盖网络结构和数据驱动随机化的覆盖网络结构[1]。
(1)基于树的方法
大部分系统都可以归类为基于树的方法。在这种方法中,节点被组织成某种传输数据的拓扑(通常是树,如图1所示),每个数据分组都在同一拓扑上被传输。拓扑结构上的节点有明确定义的关系,例如,树结构中的“父节点-子节点”关系。这一方法是典型的推送方法,即:当节点收到数据包,它就把该数据包的拷贝转发到它的每一个子节点。既然所有的数据包都遵循这一结构,那么保证这一结构在给所有接受节点提供高性能时是最优的。更进一步,当节点随意加入和离开时,该结构必须得以维持。特别地,如果某节点突然崩溃或者其性能显著下降,它在该树结构上所有的后代节点都停止接收数据,且该树结构必须被修复。最后,当组建基于树的结构时,避免出现环是一个必须要解决的重要问题。基于树的方法可能是最自然的方法,不需要复杂的视频编码算法。然而,其中需要重点考虑的一个问题是节点失效,特别地,靠近树根的节点失效将中断大量用户的数据传输,潜在地带来瞬时低性能的结果。此外,在该结构中大多数节点都是叶子节点,他们的上行带宽没有被使用到。为了解决这些问题,已有研究提出了一些带有弹性的结构,如基于多重树的方法[2-3]。
作者:王洪波马轶慧
(2)数据驱动方法
近年来,人们又提出用于P2P的数据驱动的方法。数据驱动的覆盖网络与基于树结构的最大不同在于它不组建和维护一个传输数据的明显拓扑结构,它用数据的可用性去引导数据流,而并不是在高度动态的P2P环境下不断地修复拓扑结构。
一个不用明确维护拓扑结构的数据分发方法是使用Gossip协议。在典型的Gossip协议中,节点给一组随机选择的节点发送最近生成的消息;这些节点在下一次做同样的动作,其他节点也做同样的动作,直到该消息传送到所有节点。对Gossip目标节点进行随机选择可以在存在随机失效的情况下使系统获得较好的健壮性,另外还可以避免中心化操作。然而,Gossip不能直接用作视频广播,因为其随机推送可能导致高带宽视频的大量冗余。此外,在没有明确的
拓扑结构支持下,最小化启动和传输时延成为主要问题。为了解决这些问题,一些解决方案,例如Chainsaw[4]、Cool-Streaming[5]采用拉取技术,即:节点维持一组伙伴并周期性地同伙伴交换数据可用性信息,接着节点可以从一个或多个伙伴找回没有获得的数据,或着提供可用数据给伙伴。由于节点只在没有数据时去主动获取,所以避免了冗余。此外,由于任一数据块可能在多个伙伴上可用,所以覆盖网络对时效是健壮的。最后,随机化的伙伴关系意味着节点间的潜在的可用带宽可以被完全利用。
2 P2P流媒体中的关键技术
由于P2P流媒体系统中节点存在不稳定性,P2P流媒体系统需要解决如下几个关键技术[6]:文件定位、节点选择、容错以及安全机制等。
2.1文件定位技术
流媒体服务实时性强,快速准确的文件定位是流媒体系统要解决的基本问题之一。在P2P流媒体系统中,新加入的客户在覆盖网络中以P2P的文件查找方式,找到可提供所需媒体内容的节点并建立连接,接受这些节点提供的媒体内容。
P2P方式的文件查找研究是近年来P2P计算的一个研究热点。在P2P网络结构中常用的文件定位方式是通过分布式哈希表(DHT)算法[7]来实现,每个文件经哈希运算后得到一个唯一的标识符,每个节点也对应一个标识符,文件存储到与其标识符相近的节点中。查找文件时,首先哈希运算文件名得到该文件的标识符,通过不同的路由算法找到存放该文件的节点。虽然DHT方式查找文件快速有效,但是也存在一些固有的问题,如DHT是将文件均匀分布在各个节点上,不能反映媒体文件的热门度,导致负载的不均衡;其次DHT不能提供关键字的搜索,如同时包含媒体文件名、媒体类型等丰富信息的文件的查询。
文献[8]在泛洪机制基础上做了改进,在无结构的P2P网络中采用了或然性的泛洪技术,通过或然性的分析选取优化的分支进行泛洪操作,从而使其伸缩性比正常泛洪机制提高99%。DirectStream[9]是一个基于目录的P2P流媒体点播系统,其媒体文件的查找方式是通过目录服务器来维护所有媒体服务器信息和客户信息(包括IP地址、缓冲大小等)。当新客户的请求到达时,在目录中查找请求的媒体文件,快速返回侯选节点,侯选节点可以是媒体服务器,也可以是可提供该影片片段的客户,从而具有P2P的特性。但是由于其目录服务器的集中式管理,DirectStream系统的规模受到了限制。
2.2节点的选择