流媒体是指在数据网络上按时间先后次序传输和播放的连续音、视频数据流。流媒体数据流具有3个特点:连续性、实时性、时序性,即其数据流具有严格的前后时序关系。由于流媒体的这些特点,它已经成为在互联网上实时传输音、视频的主要方式。本质上,流媒体技术是一种在数据网络上传递多媒体信息的技术。目前数据网络具有无连接、无确定路径、无质量保证的特点,给多媒体实时数据在数据网络上的传输带来了极大的困难,流媒体技术的主要目标就是:通过一定的技术手段实现在数据网络上有效地传递多媒体信息流。
传统的流媒体服务大都是客户/服务器(C/S)模式,即用户从流媒体服务器点击观看节目,然后流媒体服务器以单播方式把媒体流推送给用户。当流媒体业务发展到一定阶段后,用户总数大幅度增加,这种C/S模式加单播方式来推送媒体流的缺陷便明显地显现出来(如流媒体服务器带宽占用大、流媒体服务器处理能力要求高等),带宽、服务器等常常成为系统瓶颈,系统的可扩展性差。
近年来,人们把P2P技术引入到流媒体传输中而形成了P2P流媒体技术,该方法有两方面的优点。首先,这种技术并不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;第二,在这种技术中,流媒体用户不只是媒体流,而且还把媒体流上载给其他用户,因此,这种方法可以扩大用户组的规模,且更多的需求也带来了更多的资源。
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节点的选择
在一个典型的P2P覆盖网络中,网络中的节点来自各个不同自治域,节点可以在任一时间自由地加入或离开覆盖网络,导致覆盖网络具有很大的动态性和不可控性。因此,如何在服务会话初始时,确定一个相对稳定的可提供一定服务质量(QoS)保证的服务节点或节点集合是P2P流媒体系统迫切需要解决的问题。
节点的选择可以根据不同的QoS需求采取不同的选择策略。若希望服务延迟小,可以选择邻近的节点快速建立会话,如在局域网内有提供服务的节点,就不选择互联网上的节点,这也可以避免互联网上的带宽波动和拥塞;若希望高质量服务,则可选择能够提供高带宽、CPU能力强的节点,如在宽带接入的PC机和不对称数字用户线(ADSL)接入的终端之间选择前者;若希望得到较稳定的服务,应选择相对稳定的节点,如在系统中停留时间较长,不会频繁加入或退出系统的或正在接受服务的节点。通常选择的策略是上述几种需求的折衷。具有代表性的节点选择机制有:PROMISE体系中的端到端的选择机制和感知拓扑的选择机制、P2Cast系统的“合适”(Best Fit,简称BF)节点选择算法等。
2.3容错机制
由于P2P流媒体系统中节点的动态性,正在提供服务的节点可能会离开系统,传输链路也可能因拥塞而失效。为了保证接受服务的连续性,必须采取一些容错机制使系统的服务能力不受影响或尽快恢复。
对于节点失效的问题,可以采取主备用节点的方式容错。在选择发送节点时,应选择多个服务节点,其中某个节点(集)作为活动节点(集),其余节点则作为备用节点。当活动节点失效时则由备用节点继续提供服务。值得研究的问题是如何快速有效地检测节点的失效,以及如何保证在主备用节点切换的过程中流媒体服务的连续性。流媒体服务的实时性较强,因此节点的故障检测时间应尽可能短,才能保证服务不中断。目前有大量关于如何缩短故障检测时间的研究,大都是采用软状态协议询问节点的存在,需要考虑询问频度与询问消息开销之间的折衷。
数据的编码技术也可以提供系统的容错性,如前向错误编码(FEC)和多描述编码(MDC)。FEC通过给压缩后的媒体码流加上一定的冗余信息来有效地提高系统的容错性,而MDC的基本思想是对同一媒体流的内容采用多种方式进行描述,每一种描述都可以单独解码并获得可以接受的解码质量,多个描述方式结合起来可以使解码质量得到增强。这两种编码都能适应客户异构性的特点,客户可以根据自己的能力选择收取多少数据进行解码。此外,将FEC和MDC结合,能取得更好的容错效果。
2.4安全机制
网络安全是P2P流媒体系统的基本要求,必须通过安全领域的身份识别、授权、数据完整性、保密性和不可否认性等技术,对P2P信息进行安全控制。对产权的控制,现阶段可采用DRM技术控制;对于基于企业级的P2P流媒体播出系统可以安装防火墙阻止非法用户访问;因特网上的P2P流媒体系统可以通过数据包加密方式保证安全。在P2P流媒体系统内,可采用用户分级授权的办法,阻止非法访问。
3 P2P流媒体的应用
网络的迅猛发展和普及为P2P流媒体业务发展提供了强大市场动力,P2P流媒体技术的应用将为网络信息交流带来革命性变化。目前常见的P2P流媒体的应用主要有:
(1)视频点播(VOD):这是常见、的流媒体应用类型。
(2)视频广播:视频广播可以看作是视频点播的扩展,它把节目源组织成频道,以广播的方式提供。
(3)交互式网络电视(IPTV):IPTV利用流媒体技术通过宽带网络传输数字电视信号给用户,这种应用有效地将电视、电信和计算机3个领域结合在一起,具有很好的发展前景。
(4)远程教学:远程教学目前应用也比较广泛,而且具有很好的市场应用前景。远程教学可以看作是前面多种应用类型的综合,在远程教学中,可以采用多种模式,甚至混合的方式实现。远程教学以应用对象明确、内容丰富实用、运营模式成熟,成为目前商业上较为成功的流媒体应用.
(5)交互游戏:需要通过流媒体的方式传递游戏场景的交互游戏近年来得到了迅速的发展。
其他流媒体系统的一些新的应用和服务,例如虚拟现实漫游、无线流媒体、个人数字助理(PDA)等也在迅速地变革和发展。
4 结束语
P2P流媒体发展如此迅速,目前,诸如CoolStreaming、PPLive等P2P流媒体软件吸引了大量的用户,显示出了巨大的生命力,但是另一方面构建一个有效的P2P流媒体系统还面临着许多挑战:
(1)管理节点并建立发布树
为了给大量的接收者提供媒体内容,构建应用级多播树的方法应用较广,但建立有效的多播树,并在节点不断加入和退出时维护多播树存在一定难度。
(2)应付不可预知的节点失效
在P2P网络中,由于节点行为的不可预知性,为了快速地恢复系统的正常工作,要求系统具有很好的可靠性,否则服务中断将时常发生。
(3)适应网络状态变化
在一个媒体流会话期间网络状态可能改变,如拥塞或丢包率上升,因此流媒体系统的适应性是必需的。
尽管P2P流媒体系统的设计方面仍存在一些需要解决的问题,但其优越性仍然引起了许多大学、研究机构以及商业机构的重视,随着运营商的加入,P2P流媒体的研究势必取得更大的进展并将更加广泛地应用于商业领域。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。