作 者:王洪波 马轶慧
摘要:基于P2P的流媒体技术是一项非常有前途的技术,该技术有两方面的优点:不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;流媒体用户不只是下载媒体流,而且还把媒体流上载给其他用户,因此,这种方法可以扩大用户组的规模,且由更多的需求带来更多的资源。由于P2P流媒体系统中节点存在不稳定性,因此P2P流媒体系统需要在文件定位技术、节点选择技术、容错以及安全机制方面有所突破。此外在如何管理节点并建立发布树、如何应付不可预知的节点失效、如何适应网络状态变化方面也面临着一些挑战。
关键词:对等网络;流媒体;可扩展性;数据驱动
Abstract:TheP2P-basedstreamingmedia technology is very promising and has two advantages. First, because P2P-based streaming media network can distribute media data without the support of routers and specific network infrastructure, it is cost-effective and easy to deploy. Second, a streaming media user can not only download streaming media, but also supply streaming media to other users. Therefore, the user groups' scale can be expanded, and the more the demands increase, the more the available resources increase. As the peers in the P2P-based streaming media network are not stable, the P2P streaming media system needs improvement in the fields of file location technology, peer selection technology, fault-tolerance and security mechanism. Moreover, challenges such as managing the nodes, constructing a distribution tree, coping with the unpredictable failure of nodes, and adapting to changes in the network, also exist.
Keywords:P2Pnetwork;streaming media; scalability; data-driven
随着互联网的日趋普及和新技术的迅速发展,一大批新兴的网络多媒体应用开始涌现并成为人们工作、生活中重要的组成部分,例如:网络电视、体育赛事广播、在线游戏、远程教育等。而这些多媒体应用需要流媒体技术的支持。
流媒体是指在数据网络上按时间先后次序传输和播放的连续音、视频数据流。流媒体数据流具有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]。