基于P2P网络的流媒体点播技术研究
——以流媒体数据缓存与管理机制为视角
2018-03-08陈晶
陈 晶
(江苏城乡建设职业学院,江苏 常州 213000)
一、流媒体技术概念
流媒体是一项由多种网络技术整合而成的新技术,其包括数据的采集、传输、压缩、存储等基础技术。
流媒体是可以使其他的多媒体、音频和视频文件能够在互联网上可以直接下载,不需要过多的等待、实时的进行自由播放。简而言之,把相互连续的声音和影像信息经过压缩而分化成不同的压缩包,然后储存在服务器上,让用户能一边观看一边下载,而且不需等整个的压缩文件都下载到自己机器后才能收看。为了消除网络的连接速率的抖动,而一般会先在使用端电脑上创建一个缓冲区,然后在播放之前预先下载一段,播放程序取这一段缓冲区内数据进行播放。在播放时,多媒体文件的剩余部分则在后台继续下载,之后在缓冲区内进行填充。流媒体是很多网络技术在经过整合以后所产生的新技术。它涉及流媒体的数据采集、传输、压缩、存储等。
二、P2P在流媒体中的应用
对等网络是现阶段的非常热门应用,它在不同的计算机的用户之间,数据可以直接进行交换。这种方式改变了以往的客户/服务器的模式。在P2P流媒体的网络里面,每一个节点地位是相同的,可作服务的使用者,同时也可作服务的提供者。P2P Streaming(Peer to Peer Streaming Media)也就是“点对点的流媒体的技术”。从技术的角度看,P2P流媒体是流媒体技术和P2P技术结合。
三、视频点播系统技术难点
(一)流媒体数据存储和内容分发
1.流媒体的数据存储在点播视频的技术中,数据存储是其中的一个主要的技术,在点播系统中数据存储设计主要是从存储空间和数据的读取速度两个方面进行考虑。而现在对于数据读取方式结构可以分为三种:分布式、集中式和分段协作存储。
(1)集中式的存储方式。也称完全共享的存储方式,是典型集群式视频点播系统采用的数据存储方式,这种数据存储方式的每一个视频服务器节点可通过网络的直接访问,所有数据不经过其他节点,这种方式最大的特点在于视频服务的任务的迁移和调度比较容易实现;可以把节点从数据存储管理中释放出来,以实现数据处理和数据存储相互分离,与此同时对于节点之间的内部通信的宽带不能够占用。
(2)分布式的存储方式。关于分布式的存储方式一共有两种,一种是完整的存储方式,这种方式主要是把数据独立完整的存储在某台视频的服务器上,但是同样的一个节目可能在不同的服务器中,但是这样一个服务器上的同一个节目的信息也不会互相影响。另一种是分段协作的存储方式,主要采用了条纹化的技术把视频上的数据分布在各个不同视频的服务器上,这样所有的服务器都能够参与到服务中。
(3)分段协作的存储方式。采用分段协作的存储方式是常用的存储方式,有很多的服务策略是把视频的文件分成不同的阶段进行服务的。对于这种方式而言,存在着两个方面的问题。分段协作的方式,能够实现节目数据的简单化,并且使用服务策略能够使服务器的荷载均衡,在这种情况下,存在一定的缺点,因为节目分片存储在不同的服务器里面,如果任何服务器不能工作,将会影响系统。在服务器的数量不断增多的情况下,系统可能存在的故障将会不断增加。要想实现节目数据的分段管理和分段存储都需要新的文件系统系统进行支撑,而且这种方式的服务策略非常的复杂,实现这些工作量是非常大的。
2.流媒体数据分发在P2P流媒体的系统中,媒体流可以分成不同的数据阶段。随着播放进度的前移,请求节点邻居节点可能不能提供它需要媒体的数据段,这是由于可供服务的Peer节点服务能力不足,不同的Peer节点服务能力也不相同,Peer节点还能随时的退出系统,而造成其它的部分的节点流的传输中断。从而导致了请求的节点播放暂停,也就影响了用户的播放体验。另外P2P流媒体技术本身也是特别的,如果有媒体的数据传输持续时间长,带宽占用的资源就高。所以在内容分发的研究过程里,面临着非常严峻的挑战。
(二)流媒体数据缓存
P2P流媒体分发系统中,每一个Peer节点将收到媒体的数据所拥有的缓存供其邻居节点取得。对直播的系统来说Peer节点播放的时候通常采用的是视频源播出的时序决定的。虽在某个时刻,收到视频的数据相对于视频源已经落后了,但是在后续的播放里和相邻Peer节点播放的时间比较相近,而缓存分片的内容相似度较高,缓存的处理比较简单。而对点播的系统,针对某视频文件的初始播放时间和顺序,由每一个节点的加入系统时进行确定。在Peer的节点加入到系统时间点的离散情况下时,系统存储的数量是非常大的,进行视频的点播系统设计时,不仅是系统结构设计、服务策略选择非常重要,系统数据的缓存策略同样非常重要,数据布局不能影响系统服务的性能,同时和服务策略也紧密相关。各节点的播放是不同时间点上面的视频内容,造成节点间的缓存数据段的重合度比较低。若系统里媒体数据的缓存机制性能低,节点从系统里其他的Peer节点中下载得到相应的数据是比较困难的。而且会不断的向服务器发送请求,从而加重了服务器的承载量,因此对高效媒体的数据段的缓存机制是必须的,通过增加Peer节点本身的缓存服务能力,降低了服务器负载压力。
缓存策略是确定媒体的对象如何在缓存节点里,使每一个节点都可高效访问媒体对象。这“高效”往往用指标描述,例如访问的时间和访问的安全性。但是优化和目标往往是互相冲突的,若将网络看为整体,在网络上使用一种缓存策略是很难满足相互冲突的各种需求的,如访问的延时和访问的可靠性彼此冲突。所以人们把对等的网层次化,不同层次也有不相同的需求起主导作用,并且根据需要对相关的缓存算法进行设计。对网络里面的节点分层是P2P系统节点有效的分组思想,将整个对等网分为两层:由若干个相邻节点构成的组;由所有的组构成的网络,并且分别设计了用于各组之间的缓存技术。具体来说把彼此的访问时间要小于某阈值节点为一个组,这样组内的媒体分发关键是大幅度提高了访问的可操作性,相应组内缓存策略是优化这指标;组间媒体的分发关键是降低访问的时间,相邻组间的缓存策略的目标是对指标进行优化。
四、缓存替换策略
在本文策略里,任何请求相同节目频道节点都处在一个会话的过程里。整个缓存策略分两部分:正在播放缓存和基于分段的紧迫度和供需差的硬盘预测缓存。
服务概率的大小决定了一个段价值的高低,为其它节点提供服务的概率大价值就高,提高了P2P的利用率,就是降低了边缘服务器的压力。作者通过分段的紧迫度和供需差的计算,优先缓存供需差和紧迫度高的流行度分段,第一可以减少服务器的压力,第二能提前将用户需要的的文件缓存到硬盘中,这样播放的缓冲区需这个分段的时候,可以直接放到缓冲区当中,最大限度的降低视频播放的延时。如图1所示。
图1 播放缓存置换策略流程图
五、对缓存策略的影响
在缓存策略里面,系统的性能由客户端采用的大空间所影响,在以往传统的缓存策略里面,存储的空间设置一般较小。例如:按照数据分段30M的大小来计算,通常可以播放5分钟,但是这个方案存在的问题是,缓存的空间不那么充分的时侯,在缓存空间频繁的调入调出,就发生“颠簸”现象,观众的直观视觉就是卡顿。但是如果开辟的存储空间过大,虽然命中率相对的增加了,但是内存的空间就相对的减少了,从而使得存储数据不完整和空间的浪费;另一个方面,缓存数据会由于文件不完整而不能提供服务,降低系统里能服务的节点数,仍然将影响到系统的性能。本文根据路由搜索算法及节点的性能决定了具体存储的空间设置方案,在满足节点需求的同时也能够最优性能上的要求。
六、结语
缓存技术是流媒体系统里面的关键技术,缓存技术能够有效降低服务器的压力,提高系统的性能,以往缓存策略采取的是客户端的缓存策略和代理的缓存策略,通过利用客户端强大的存储能力,根据影片热度的分布特点,把流媒体的分段缓存在客户端节点里,从而会大大的提高系统服务能力、明显提高用户体验、能有效减轻服务器负载。
[1]孙名松,唐 亮,等.P2P点播系统的客户端磁盘缓存策略[J].计算机工程,2008,(20):71-73.
[2]DABEK F,KAASHOEK M F,KARGER D.Wide-Area Cooperative Storage with CFS [C].Proceedings of the ACM Symposium on Operating System Principles,New York,2001:202-215.
[3]吴 琼.基于P2P网络的分布式存储系统缓存策略研究[D].大连:大连理工大学,2006:27-29.
[4]SHIM J,SCHEDERMANN P,VINGRALEK R.Proxy Cache Design:Algorithms,Implementation and Performance[J].IEEE Trans Knowledge and Data Engineering,1999,11(4):549-562.
[5]马 杰,樊建平.LittleDuck流媒体缓存模拟器[J].计算机工程,2006,(14):208-210.
[6]魏苏林,乐红冰.基于P2P模式的新型视频点播系统[J].微计算机信息(管控一体化),2005,(26):7-9.