P2P流媒体技术原理及应用
作者:王洪波,马轶慧
英文关键字:P2P network; streaming media; scalability; data-driven
关键字:对等网络;流媒体;可扩展性;数据驱动
摘要:基于P2P的流媒体技术是一项非常有前途的技术,该技术有两方面的优点:不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;流媒体用户不只是下载媒体流,而且还把媒体流上载给其他用户,因此,这种方法可以扩大用户组的规模,且由更多的需求带来更多的资源。由于P2P流媒体系统中节点存在不稳定性,因此P2P流媒体系统需要在文件定位技术、节点选择技术、容错以及安全机制方面有所突破。此外在如何管理节点并建立发布树、如何应付不可预知的节点失效、如何适应网络状态变化方面也面临着一些挑战。
英文摘要:The P2P-based streaming media 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.
基金项目:国家自然科学基金资助项目(863计划)(No.90604019、60502037、60603060) 随着互联网的日趋普及和新技术的迅速发展,一大批新兴的网络多媒体应用开始涌现并成为人们工作、生活中重要的组成部分,例如:网络电视、体育赛事广播、在线游戏、远程教育等。而这些多媒体应用需要流媒体技术的支持。 流媒体是指在数据网络上按时间先后次序传输和播放的连续音、视频数据流。流媒体数据流具有3个特点:连续性、实时性、时序性,即其数据流具有严格的前后时序关系。由于流媒体的这些特点,它已经成为在互联网上实时传输音、视频的主要方式。本质上,流媒体技术是一种在数据网络上传递多媒体信息的技术。目前数据网络具有无连接、无确定路径、无质量保证的特点,给多媒体实时数据在数据网络上的传输带来了极大的困难,流媒体技术的主要目标就是:通过一定的技术手段实现在数据网络上有效地传递多媒体信息流。 传统的流媒体服务大都是客户/ 服务器(C/S)模式,即用户从流媒体服务器点击观看节目,然后流媒体服务器以单播方式把媒体流推送给用户。当流媒体业务发展到一定阶段后,用户总数大幅度增加,这种C/S模式加单播方式来推送媒体流的缺陷便明显地显现出来(如流媒体服务器带宽占用大、流媒体服务器处理能力要求高等),带宽、服务器等常常成为系统瓶颈,系统的可扩展性差。 近年来,人们把P2P技术引入到流媒体传输中而形成了P2P流媒体技术,该方法有两方面的优点。首先,这种技术并不需要互联网路由器和网络基础设施的支持,因此性价比高且易于部署;第二,在这种技术中,流媒体用户不只是下载媒体流,而且还把媒体流上载给其他用户,因此,这种方法可以扩大用户组的规模,且更多的需求也带来了更多的资源。 1 P2P流媒体系统 1.1 P2P流媒体系统播送方式 1.1.1 直播 P2P直播是最能体现P2P价值的表现,用户观看同一个节目,内容趋同,因此可以充分利用P2P的传递能力,理论上,在上/下行带宽对等的基础上,在线用户数可以无限扩展。 1.1.2 点播 与P2P流媒体直播不同,P2P流媒体点播终端必须拥有硬盘,其成本高于直播终端。目前P2P点播系统还需在技术上进一步探索,期望大规模分布式数字版权保护(DRM)系统的研究,以及底层编码技术的发展能为P2P点播系统的实施铺平道路。 1.2 P2P流媒体系统网络结构 (1)基于树的方法 (2)数据驱动方法 一个不用明确维护拓扑结构的数据分发方法是使用Gossip协议。在典型的Gossip协议中,节点给一组随机选择的节点发送最近生成的消息;这些节点在下一次做同样的动作,其他节点也做同样的动作,直到该消息传送到所有节点。对Gossip目标节点进行随机选择可以在存在随机失效的情况下使系统获得较好的健壮性,另外还可以避免中心化操作。然而,Gossip不能直接用作视频广播,因为其随机推送可能导致高带宽视频的大量冗余。此外,在没有明确的拓扑结构支持下,最小化启动和传输时延成为主要问题。为了解决这些问题,一些解决方案,例如Chainsaw[4]、Cool-Streaming[5]采用拉取技术,即:节点维持一组伙伴并周期性地同伙伴交换数据可用性信息,接着节点可以从一个或多个伙伴找回没有获得的数据,或着提供可用数据给伙伴。由于节点只在没有数据时去主动获取,所以避免了冗余。此外,由于任一数据块可能在多个伙伴上可用,所以覆盖网络对时效是健壮的。最后,随机化的伙伴关系意味着节点间的潜在的可用带宽可以被完全利用。 2 P2P流媒体中的关键技术 2.1文件定位技术 P2P方式的文件查找研究是近年来P2P计算的一个研究热点。在P2P网络结构中常用的文件定位方式是通过分布式哈希表(DHT)算法[7]来实现,每个文件经哈希运算后得到一个唯一的标识符,每个节点也对应一个标识符,文件存储到与其标识符相近的节点中。查找文件时,首先哈希运算文件名得到该文件的标识符,通过不同的路由算法找到存放该文件的节点。虽然DHT方式查找文件快速有效,但是也存在一些固有的问题,如DHT是将文件均匀分布在各个节点上,不能反映媒体文件的热门度,导致负载的不均衡;其次DHT不能提供关键字的搜索,如同时包含媒体文件名、媒体类型等丰富信息的文件的查询。 文献[8]在泛洪机制基础上做了改进,在无结构的P2P网络中采用了或然性的泛洪技术,通过或然性的分析选取优化的分支进行泛洪操作,从而使其伸缩性比正常泛洪机制提高99%。DirectStream[9]是一个基于目录的P2P流媒体点播系统,其媒体文件的查找方式是通过目录服务器来维护所有媒体服务器信息和客户信息(包括IP地址、缓冲大小等)。当新客户的请求到达时,在目录中查找请求的媒体文件,快速返回侯选节点,侯选节点可以是媒体服务器,也可以是可提供该影片片段的客户,从而具有P2P的特性。但是由于其目录服务器的集中式管理,DirectStream系统的规模受到了限制。 2.2 节点的选择 节点的选择可以根据不同的 QoS需求采取不同的选择策略。若希望服务延迟小,可以选择邻近的节点快速建立会话,如在局域网内有提供服务的节点,就不选择互联网上的节点,这也可以避免互联网上的带宽波动和拥塞;若希望高质量服务,则可选择能够提供高带宽、CPU能力强的节点,如在宽带接入的PC机和不对称数字用户线(ADSL)接入的终端之间选择前者;若希望得到较稳定的服务,应选择相对稳定的节点,如在系统中停留时间较长,不会频繁加入或退出系统的或正在接受服务的节点。通常选择的策略是上述几种需求的折衷。具有代表性的节点选择机制有:PROMISE体系中的端到端的选择机制和感知拓扑的选择机制、P2Cast系统的“最合适” (Best Fit,简称BF)节点选择算法等。 2.3 容错机制 对于节点失效的问题,可以采取主备用节点的方式容错。在选择发送节点时,应选择多个服务节点,其中某个节点(集)作为活动节点(集),其余节点则作为备用节点。当活动节点失效时则由备用节点继续提供服务。值得研究的问题是如何快速有效地检测节点的失效,以及如何保证在主备用节点切换的过程中流媒体服务的连续性。流媒体服务的实时性较强,因此节点的故障检测时间应尽可能短,才能保证服务不中断。目前有大量关于如何缩短故障检测时间的研究,大都是采用软状态协议询问节点的存在,需要考虑询问频度与询问消息开销之间的折衷。 数据的编码技术也可以提供系统的容错性,如前向错误编码(FEC)和多描述编码(MDC)。FEC通过给压缩后的媒体码流加上一定的冗余信息来有效地提高系统的容错性,而MDC的基本思想是对同一媒体流的内容采用多种方式进行描述,每一种描述都可以单独解码并获得可以接受的解码质量,多个描述方式结合起来可以使解码质量得到增强。这两种编码都能适应客户异构性的特点,客户可以根据自己的能力选择收取多少数据进行解码。此外,将FEC和MDC结合,能取得更好的容错效果。 2.4 安全机制 3 P2P流媒体的应用 (1)视频点播(VOD):这是最常见、最流行的流媒体应用类型。 (2)视频广播:视频广播可以看作是视频点播的扩展,它把节目源组织成频道,以广播的方式提供。 (3)交互式网络电视(IPTV):IPTV利用流媒体技术通过宽带网络传输数字电视信号给用户,这种应用有效地将电视、电信和计算机3个领域结合在一起,具有很好的发展前景。 (4)远程教学:远程教学目前应用也比较广泛,而且具有很好的市场应用前景。远程教学可以看作是前面多种应用类型的综合,在远程教学中,可以采用多种模式,甚至混合的方式实现。远程教学以应用对象明确、内容丰富实用、运营模式成熟,成为目前商业上较为成功的流媒体应用. (5)交互游戏:需要通过流媒体的方式传递游戏场景的交互游戏近年来得到了迅速的发展。 4 结束语 (1)管理节点并建立发布树 (2)应付不可预知的节点失效 (3)适应网络状态变化 尽管P2P流媒体系统的设计方面仍存在一些需要解决的问题,但其优越性仍然引起了许多大学、研究机构以及商业机构的重视,随着运营商的加入,P2P流媒体的研究势必取得更大的进展并将更加广泛地应用于商业领域。 5 参考文献 收稿日期:2007-09-27 |
P2P流媒体技术原理及应用相关推荐
- java视频教程enet网络,流媒体技术原理及播放方式(浅显易懂)
一.流媒体技术原理 流式传输的实现需要缓存.因为Internet以包传输为基础进行断续的异步传输,对一个实时A/V源或存储 的A/V文件,在传输中它们要被分解为许多包,由于网络 是 动态变化的,各个包 ...
- 流媒体技术原理与应用
流媒体技术原理与应用 南京邮电学院纪其进等 摘要:流媒体是网络环境中的一种新的媒体形式,有着广阔的应用前景.本文初步探讨了流媒体技术的原理及实现流媒体技术的协议,介绍了流媒体技术当前和未来可能 ...
- P2P流媒体技术方案
P2P流媒体技术方案 1.P2P流媒体系统层次化体系结构: P2P只是负责底层网络层数据的传输,中间层是核心 2.几种P2P流媒体架构方案,明显第四种与我们的需求相符: 3服务器辅助的P2P视频点播系 ...
- 基于P2P的流媒体技术概述
摘 要:P2P流媒体技术已成为网络应用中热门的技术之一,本文主要介绍流媒体,P2P的相关概念,并着重对P2P流媒体的关键技术进行了研究,最后又提出了P2P流媒体技术应该面对的挑战. 关键词:P2P ...
- 音视频即时通讯中P2P的流媒体技术
摘 要:P2P流媒体技术已成为网络应用中热门的技术之一,本文主要介绍流媒体,P2P的相关概念,并着重对P2P流媒体的关键技术进行了研究,最后又提出了P2P流媒体技术应该面对的挑战. 1 引言 随 ...
- rtmp协议在p2p流媒体系统中的应用(论文转载)
ZHANG Chong, YANG Can, YANG Ze-quan, HUANG Hui -ze (South China University of Technology, Guangzhou ...
- 初识流媒体与流媒体技术
一. 流媒体 流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网络上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送:如果不使用此 ...
- 【P2P】【转载】P2P流媒体开源项目介绍
大神的整理 P2P流媒体开源项目介绍 前言: 最近在做一个网站,发现p2p流媒体技术对于解决高流量高带宽问题真的很不错. 据说现在一些视频和直播公司在研究p2p+cdn,证明了p2p永不过时. 先记录 ...
- p2p 文件服务器集群,基于云计算P2P流媒体服务器集群部署算法.doc
基于云计算P2P流媒体服务器集群部署算法 基于云计算P2P流媒体服务器集群部署算法 摘 要: 针对云计算数据中心网络(DCN)环境下,P2P流媒体服务器集群部署引起的较高带宽占用问题,提出了一种基于云 ...
最新文章
- SpeedTree导入到虚幻UE4的注意事项
- Unity -----一些可能存在的错误
- mysql relay log时间_如何得到Slave应用relay-log的时间
- Apache2 部署flask项目
- 大数据_MapperReduce_Hbase_批处理batchMutate源码分析_数据的写入流程源码分析---Hbase工作笔记0032
- 5个让IT开发效率提高200%的工具,最后一个很实用,你用过几个
- java(22) - 异常详解
- UE4之windows.h冲突
- 关于for in和for循环的遍历
- jsp足球俱乐部管理系统Myeclipse开发sqlserver数据库web结构c#编程计算机网页项目
- sqLite数据库读C#
- itunes更新失败卸载失败(AppleMobileDeviceSupport6464安装时回滚的解决办法)
- 失业登记对养老保险是否有影响
- java 图形化编程_java图形化编程
- java计算机毕业设计我图你秀图片素材交易平台源代码+数据库+系统+lw文档
- dcc-garch matlab,dcc-garch原理简介和模型实现
- 有关stm32单片机外部低速晶振LSE32.768k注意事项;RTC_WaitForSynchro()卡死;
- 2022年全球市场预混鸡尾酒总体规模、主要生产商、主要地区、产品和应用细分研究报告
- 英特尔至强E7 v2处理器:2倍性能提升,3倍内存容量,4倍I/O带宽
- 快速入门Unity机器学习:一:
热门文章
- SurfaceLaptop2_BMR_46_13.1.7_2.zip恢复镜像网盘满速下载地址
- wow转服服务器不显示,魔兽世界怀旧服13日第二批免费转服详情 可以转服到哪些服务器?...
- 使用gitbash创建一个翻译词典
- Android 时间更新机制之网络更新时间
- 清华大学海洋大数据分析管理平台解读
- 西方经济学【微观】名词缩写整理
- 推荐系统与深度学习(九)——NCF模型原理
- 《计算方法》笔记之(二)线性代数方程组之Gauss消去法
- 网站优化---页面静态化技术
- 你可以这样学习C语言