基于P2P技术平台的流媒体怎么写作系统架构的

更新时间:2024-03-10 作者:用户投稿原创标记本站原创 点赞:32098 浏览:145961

摘 要 :近期以来,对等网络(Peer-to-Peer,简称P2P)已经从一种新的通信形式渐渐发展、成熟,并被使用在构建应用系统.针对P2PStreaming这个热点进行了讨论.在P2P网络拓扑构建进程中吸取非结构化P2P中Gnutella组网策略的优点并对其进行重新的改进设计,系统同时使用了合理的数据分派算法来提高系统性能.

关 键 词 :P2P;流媒体;系统架构;实现

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)34-7869-04

近几年来,随着高性能工作站、大规模存储以及宽带网络等技术的飞速发展,多媒体通信可以集视频、图像、文本及音频为一体,为用户提供更为丰富多彩的使用体验,得到了越来越广泛的应用[1].特别是流媒体技术的出现和普及,使得影像、声音或动画等多媒体内容可以通过多媒体怎么写作器连续、实时得传送向用户计算机,用户不必等到整个文件全部下载完毕就可观看到媒体内容,从而满足了用户之间实时交互的需要.

1.流媒体技术综述

1.1 P2P概念

P2P基础设施是P2P结点得以相互合作的基础,一般指结点互联的拓扑结构和结点在与相邻结点保持连接时的行为规范 [2].基础设施与路由算法一般是一一对应的,特定的基础设施决定了其上的路由特性和搜索性能.我们将P2P平台分为结构化P2P平台和非结构化P2P平台.结构化P2P平台是基于DHT(分布式哈希表)构建的,该平台中的结点具有确定的拓扑结构,但维护系统拓扑结构的开销比较大;非结构化P2P平台与结构化P2P平台相比有着更好的容错性,结点频繁加入和退出操作对系统的影响相对较小,贴近于现实生活中的网络情况,而且相对结构化的算法较为简单、容易实现.

对于P2P流媒体系统而言,P2P基础设施决定了结点间互联的基本规则,进而决定了搜索媒体数据和数据发送结点的方式和性能,对于P2P流媒体系统有着至关重要的作用.

1.2 流媒体概念

流媒体是一种可以使视频、音频和其它多媒体能在Inter及Intra上以实时的、无需下载等待的方式进行播放的技术.流媒体文件格式是支持采用流式传输及播放的媒体格式.流式传输方式是将动画、视音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由视频怎么写作器向用户计算机实时、连续传送.在采用流式传输方式的系统中,用户不必像非流式播放那样等到整个文件全部下载完毕后才能看到当中内容,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上利用相应的或其它的硬件、软件对压缩的动画、视音频等流式多媒体文件解压后进行播放和观看,多媒体文件的剩余部分将在后台的怎么写作器内继续下载[3].

1.3 流媒体组成

流媒体系统包括以下5个方面的内容:

1) 编码工具:用于创建、捕捉和编辑多媒体数据,形成流媒体格式;

2) 流媒体数据;

3) 怎么写作器:存放和控制流媒体的数据;

4) 网络:适合多媒体传输协议甚至是实时传输协议的网络;

5) :供客户端浏览流媒体文件.

这五个部分共同构成了流媒体系统.其中有些是站点怎么写作器需要的,有些是客户端需要的,而且不同的流媒体标准和不同公司的解决方案会在某些方面有所不同[4].

在Inter上所传输的多媒体格式中,基本上只有文本、图形可以照原格式在网上传输.动画、音频、视频等虽然可以直接播放在网上播放,但文件偏大,即使使用专线上网,也要等完全下载后才能观看,这三种类型的媒体均要采用流式技术来进行处理以便于在网上传输.另外,还有一些如PowerPoint文件、多媒体课件等内容也需要用流式技术进行传输.

流(Stream)媒体格式是将一个资料(动画、影音等)分段传送,用户不必等待整个内容传送完毕,就可以观看到即时的连续的内容,甚至可以随时的暂停、快进、快倒.由于不同的公司发展的文件格式不同,传送的方式也有所差异.常用流媒体文件一般是以下几种:RealVideo的.rm视频影像格式和.ra的音频格式、Microsoft Media technology的.a格式、QuickTim的.qt格式、Flash的.swf格式、Metastream 的.mts格式、Authorware的.aam多媒体教学课件格式等.

2.系统设计

2.1 怎么写作器设计

怎么写作器端是指数据的初始发布者,即数据源.它的主要任务及设计目标:

1)通过视频捕获或者从文件系统中读取并转换成流媒体格式的流式数据,作为整个系统的数据源,对外提供怎么写作.本次设计采用读取文件的方式;

2)对等结点的管理,这里的对等结点是指系统中的强结点,怎么写作器端维护一个强结点的列表.当强结点列表中的数量到达一个阀值的时候,怎么写作器会将结点能力小的强结点重定位到结点能力强的强结点处.

怎么写作器端结构图如下:

2.2 PEER端设计

PEER端的主要任务及设计目标:

1)PEER结点维护一个邻居列表,如果是强结点的话,还多一个强结点邻居列表;

2)根据邻居列表,强结点从比它能力强的强结点和怎么写作器处接收数据;

3)普通结点在自治域系统中通过强结点的组播来接收数据;

4)产生一个数据缓冲区来存放数据,并创建一个数组来记录缓存的使用情况;

5)因为采用UDP来传输数据,如果数据块丢失,通过定期交换的缓存映射表,结点从别的富余结点获取.强结点优先选择其他强结点,后选择怎么写作器;普通结点优先选择自治域内的普通结点,后选择自治域内的强结点;

6)当数据缓存到一个阀值后开始调用播放. PEER端的结构图如图2所示.

3.系统实现

在原始的C/S模式下,所有的客户机都是直接向怎么写作器索取数据,这样的结构必然存在这诸多问题:如怎么写作器的可连接数为50,则只有前五十个客户机可以接连到怎么写作器索取怎么写作,而且怎么写作器出现单点故障,所有的客户机都会访问失效.之后出现了P2P的概念有效的部分解决和缓解了C/S模式的弊端,基于P2P的应用层组播能够将怎么写作器的负载分担到系统中的对等节点,从而扩充了系统的怎么写作能力并提高了系统的稳定性和容错性.

本次系统的设计在研究了前人的基础上,考虑到“近邻怎么写作原则是保证系统QoS的核心”,提出基于自治域划分的应用层组播,设计了一个怎么写作器、强节点层、自治域内组播的三层系统结构框架.

通过这个系统结构,我们将怎么写作器的怎么写作能力进行成指数倍的扩大.还是如上例的怎么写作能力为50的怎么写作器,在C/S模型中可能会因为超过50个连接而毁坏;但将其放到本系统中则可供给怎么写作的节点数量将远远超过50个,甚至500个.

与此同时,由于系统中的节点不再是仅仅只有一个父节点,所以系统的容错性和稳定性有了很大的提升.一个父节点的失效,可以使得节点通过别的邻居节点继续更新信息,从而减缓和避免了独立单点失效的问题,如图5所示.

P2P对等网络已经渐渐发展、成熟,并被广泛应用在构建系统应用.在文件共享领域P2P相对来说比较成熟,而基于P2P的流媒体系统现在则是百花齐放,百家争鸣.问题的根本在于前边说到的上层数据分派算法与底层网络的构建的优化.针对不同的应用需求,比如说热点的现场直播这种单源对多用户的模式与针对VOD点播的多源对单用户模式就不同.

4.研究总结

一个P2P流媒体系统的构建主要面临两大难题:一是构建一个性能好的P2P平台;二是对数据分派算法进行优化.

一个好的P2P平台应该是充分考虑到现实中的实际情况的、健壮的、可扩展的、容错的、鲁棒性好的.这就需要对等结点首先充分了解邻居结点的信息,在结合考虑上层的应用来设计和实现.在针对流媒体系统的设计中需要在网络带宽效率、延迟和系统可靠性等方面作出某种权衡,找个折中,目前存在的P2P流媒体系统都体现这这种思想.

数据分派算法的好坏决定着用户对系统的评价.从系统角度看,整个网络系统中,所有结点的下载的数据的大小等于所有结点的上载数据的大小.在C/S模型中,就退化为所有客户的下载量之和等于怎么写作器的上载量.在P2P的模型中,上载和下载都分布在所有的结点上,所以一个好的数据分派算法首先要建立在一个好的P2P平台之上,同时考虑到结点的能力不同,而且一般来说结点的上传和下载速度是不相等的,所以可能会需要几个结点来为一个结点怎么写作.

本文在基于P2P平台之上设计、实现了一个流媒体的模型.为了更好的解决上述问题,本次设计主要在系统中引入了自治域和多播等概念.自治域系统根据网络的现实情况将网络进行划分,自治域系统内通过多播有效的降低了网络负载,节约了网络带宽资源.

5.下一步的研究展望

P2P对等网络已经逐渐发展、成熟,并被广泛采用于构建系统应用.在文件共享领域P2P相对已经比较成熟,而基于P2P的流媒体系统现在则是百花齐放,百家争鸣.问题的根本在于前边说到的底层网络的构建与上层数据分派算法的优化.针对不同的应用,比如说热点的现场直播这种单源对多用户的模式与针对VOD点播的多源对单用户模式就不同.

本次设计是针对单源多用户模式设计的.针对本系统,进一步的工作还有:

1) 对自治域的进一步研究.自治域的大小是不一样的,所以他们地位应该会有不同;若干个小的自治域系统可以考虑合并.同时作为P2P直播的营运商,可以考虑在不同的网段中多设几台P2P种子怎么写作器,比如:北方网通设一台(组),南方电信设一台(组),种子的内容是一样的.种子怎么写作器多了,可以降低优化算法的难度.

2) 数据分派算法的优化.我们甚至可以考虑根据不同观众群的需要给他们不同的图像质量、不同的QoS,这部分设计到流分层技术,可以考虑设计将其以一种合理的方式引入系统中,从而提供不同的怎么写作质量.

3) 系统实现是通过JA完成的,其中对流媒体的支持使用的是JA中的JMF实现,但它对媒体格式的支持还有待扩展,比如它不支持播放Windows Media格式的文件,需要另行封装来解决;或者通过本地化接口(JNI)调用DirectShow组件来扩展JMF对媒体格式的支持.

4) 加强系统的开放性.在系统的设计实现中,应在指令消息的传送、共享资源的公告等方面可以通过引入XML的应用,使系统的具备更好的开放性.同时,XML的应用也会增加系统的跨平台特性.