一种对等网络视频点播系统中多频道重叠网络组织方法

文档序号:6555108阅读:166来源:国知局
专利名称:一种对等网络视频点播系统中多频道重叠网络组织方法
技术领域
本发明属于计算机应用领域,涉及对等网络与流媒体点播技术相结合的交叉领域,具体为一种对等网络视频点播系统中多频道重叠网络组织方法。
背景技术
在互联网流媒体领域,针对传统Client-Server模式服务能力有限的问题,对等网络技术因其可扩展性强、对服务器依赖性小和系统成本低等特点而迅速发展,它为流媒体服务的普及提供了一种良好的技术基础。基于对等网络的流媒体点播方法使得节点P能够互相分享已有的数据而不用全部集中到视频服务器端获取数据,从而大大减轻了视频服务器和网络的负担。
目前存在的基于对等网络的流媒体系统的设计上,都是将观看相同节目的节点组织起来构建对等网络,例如P2VOD(T.Do,K.A.Hua,and M.Tantaoui.“P2VoDproviding fault tolerant video-on-demandstreaming in peer-to-peer environment”,in Proc.of IEEE ICC’04,Paris,France,Jun.2004.)和P2Cast(Y.Guo,K.Suh,J.Kurose,andD.Towsley.“P2CastPeer-to-peer Patching Scheme for VoD Service”,in Proc.of the 12th World Wide Web Conference (WWW’03),Budapest,Hungary,May 2003.)。但根据系统测试数据发现,用户的点播行为是有倾向性的,大多数的用户集中在少数的热门节目上,在这些节目的对等网络上缓存了大量的节目数据,相对于数据需求,节目缓存有大量的冗余。而另一方面,存在着一些观看人数相对较少的冷门节目,其对等网络没有缓存全部的节目数据,正是这些节目造成了大部分服务器压力。

发明内容
本发明的目的在于针对现有对等网络视频点播系统中因为节点分布不均衡造成的频道间缓存分布不均衡,提供了一种对等网络视频点播系统中多频道重叠网络的组织方法,该方法所构建的多频道重叠网具有可扩展性强、高缓存利用率、节点负载均衡和低成本的特点。
本发明提供的一种对等网络视频点播系统中多频道重叠网络组织方法,系统中的任一节点A均进行以下步骤(1)节点A启动视频点播程序,初始化空闲缓存N和空闲连接数P,并根据用户点播请求初始化节目频道的缓存信息和频道类型;其中设缓存中节目数据所在频道的标识符为Cn、缓存中数据的起始节目播放时间为T、缓存数据大小为Nc,节目频道的Nc初始值为N,用户点播的视频节目对应的标识符为C,令Cn=C;(2)节点A根据频道的缓存信息加入频道C,其具体步骤如下(2.1)节点A根据频道的缓存信息和频道类型向索引服务器发送数据请求;(2.3)节点A设置频道C的缓存数据大小Nc为最小缓存数Nmin,与临近节点列表中的节点建立连接,并从频道上获取节目数据;(3)节点A更新空闲缓存N和空闲连接数P,如果N和P均大于0,进入步骤(4);否则,进入步骤(6);(4)节点A计算缓存分配表,其步骤如下(4.1)节点A向索引服务器发送分配缓存请求,包括节点标识符、空闲缓存大小N和空闲连接数P;(4.2)索引服务器根据分配缓存请求计算数据请求表,并将其传送给节点A;每项数据请求记录包括节目数据所在频道的标识符Cq、数据的起始节目播放时间Tq、数据大小Nq和该块数据的请求次数Rq;(4.3)节点A根据数据请求表建立缓存分配表;(5)节点A根据缓存分配表中的数据请求记录,依次初始化相应的服务频道及其缓存信息,并进入步骤(2);(6)节点A维护缓存中的数据;
(7)判断节点A的节目频道是否播放结束,如果是,节点关闭视频点播程序,退出系统;否则,进入步骤(6)。
本发明方法使用缓存优化机制优化热门频道上的缓存利用率,并将热门频道上缓存空闲的节点作为重叠节点分布在不同的节目频道中,将热门节目频道的冗余缓存提供出来存储其它节目的数据。本发明方法减小了单频道网络上的缓存冗余,并让有空闲缓存的节点加入到缓存需求量大的频道中来组织多频道重叠网,通过多频道重叠网在全局上优化系统整体的缓存。相对于单频道网络结构,这种具有通过缓存优化机制的多频道重叠网能大大降低服务器的数据请求,从而提高系统负载能力,具有很强的实用价值。具体而言,本发明具有以下特点(1)可扩展性强本发明通过在播放不同节目的频道间共享缓存,可以在保证热门频道的缓存服务能力的情况下,提高节目数据服务器请求多的频道的缓存服务能力,极大地提高了整个视频点播系统的服务能力,在节目总量和用户总量均提高的情况下也能保证良好的系统服务能力,具有很强的可扩张性。
(2)高缓存利用率本发明通过有效控制单频道上的节点缓存大小,并合理分配节点空闲的缓存,提高了对等网络上的缓存利用率。
(3)节点负载均衡本发明在分配节点的空闲缓存的同时,考虑到单个节点的服务能力有限,通过控制节点的对外连接数,将单个节点的负载控制在一个合理的范围。
(4)低成本本发明通过观看不同频道的共享缓存,可以极大地提高单服务器的负载能力,使用本发明所构建的对等网络视频点播系统,能在相同的硬件条件下,达到比传统的点播系统更高的用户规模,可以大大减低视频点播系统的部署成本。


图1为本发明方法流程示意图;图2为本发明步骤(2)的节点加入频道的流程图;图3为本发明步骤(2.2)的计算最小缓存数的流程图;图4为本发明步骤(E)的计算服务频道缓存的滑动长度Ns的流程图;图5为实例的缓存分布图。
具体实施例方式
本发明根据对等网络中流媒体点播系统的需要建立了一种多频道重叠网络,下面结合附图和实例对本发明作详细的说明。
所述的多频道重叠网络是指节点在加入节目频道时,如果缓存空闲则同时加入服务频道共享缓存,通过这种节点加入多个频道所构建的对等网络。
节点即用户进行视频点播的计算机。频道是指所有缓存相同节目的节目数据的节点通过相互间建立网络连接所构成的对等网络,频道包括节目频道和服务频道。节目频道是指节点加入的这类频道存储的节目数据就是节点要点播的节目数据,服务频道是指节点加入这类频道存储的节目数据并不是节点要点播的节目数据。
如图1所示,视频点播系统中的任一节点A均按以下步骤进行,以组织多频道重叠网络(1)节点A启动视频点播程序,初始化空闲缓存N和空闲连接数P,并根据用户点播请求初始化节目频道的缓存信息和频道类型;空闲缓存N的大小和空闲连接数P的数量根据节点A的计算机配置设定。为了防止视频点播系统过多占用系统资源,通常将空闲缓存N设定为计算机内存大小的30%以下,空闲连接数P设定为10到50。缓存信息包括缓存中节目数据所在频道的标识符Cn、缓存中数据的起始节目播放时间T、缓存数据大小Nc,节目频道的Nc初始化为N,频道类型分为节目频道和服务频道。视频点播系统中为每个视频节目分配一个全局唯一的标识符,并用此标识符标识缓存有该视频节目的频道。若用户点播的视频节目对应的标识符为C,初始化时,令Cn=C,下文将频道标识符为C的频道简称为频道C。
(2)节点A根据频道的缓存信息加入频道C,参见图2,其具体步骤如下(2.1)节点A根据频道的缓存信息和频道类型向索引服务器发送数据请求;请求的内容包括请求节点的节点信息和频道的缓存信息。节点信息包括节点标识符、节点的IP地址和端口、节点网关的IP地址和端口。频道类型可以为节目频道或者服务频道,用户点播的频道为节目频道,视频点播系统分配的为服务频道。
(2.2)索引服务器根据数据请求查询节点信息表,计算最小缓存数和临近节点列表,并将计算结果传送给节点A;节点信息表由对等网络上所有节点的节点信息及其缓存的数据信息构成。最小缓存数计算方法参见图3,步骤如下(A1)索引服务器根据节点A的数据请求初始化最小缓存数Nmin为分配的缓存数据大小Nc;(A2)如果节点请求的频道类型是节目频道,则进入步骤(A3),否则计算结束,并进入步骤(2.3);(A3)索引服务器查询节点信息表,查找缓存中存有播放时间为T的节点,计算该类节点的个数ST;(A4)索引服务器查找缓存中存有播放时间为T+Nmin的节点,计算该类节点的个数S;(A5)如果S大于ST,进入步骤(A6);否则进入步骤(2.3),此时的Nmin即为所求的最小缓存数;(A6)令Nmin=Nmin-1,进入步骤(A4)。
(2.3)节点A设置频道C的缓存数据大小Nc为最小缓存数Nmin,与临近节点列表中的节点建立连接,并从频道上获取节目数据;(3)节点A更新空闲缓存N和空闲连接数P,如果N和P均大于0,进入步骤(4);否则,进入步骤(6);
(4)节点A计算缓存分配表,其步骤如下(4.1)节点A向索引服务器发送分配缓存请求,包括节点标识符、空闲缓存大小N和空闲连接数P;(4.2)索引服务器根据分配缓存请求计算数据请求表,并将其传送给节点A;数据请求表是记录视频点播系统中所有节点向节目源服务器的数据请求情况的表,由一组数据请求记录所构成。每项数据请求记录包括节目数据所在频道的标识符Cq、数据的起始节目播放时间Tq、数据大小Nq和该块数据的请求次数Rq。数据请求表的计算步骤如下(B1)初始化数据请求表为空;(B2)索引服务器统计当前时间所有的对节目源服务器的数据请求,将其中数据节目时间临近的数据请求合并成数据请求记录;(B3)索引服务器按照Rq/Nq的大小对数据请求记录从大到小排序;(B4)索引服务器选择Rq/Nq值最大的数据请求记录;(B5)若Rq/Nq<P/N,则进入步骤(B6),否则进入步骤(B7),其中P为分配缓存请求中的空闲连接数,N为分配缓存请求中的空闲缓存;(B6)选择该数据请求记录,放入数据请求表,并删除该数据请求记录,进入步骤(B4);(B7)计算结束,将所求数据请求表返回给节点A,并进入步骤(4.3);(4.3)节点A根据数据请求表建立缓存分配表;缓存分配表是节点A根据数据请求表,按照特定方法选择一组数据请求记录所构成的表,其建立步骤如下(C1)节点A初始化缓存分配表为空;(C2)节点A选择数据请求表首部的数据请求记录为候选数据请求记录,并从数据请求表中删除该数据请求记录。
(C3)节点A按照概率a选择候选数据请求记录,如果候选数据请求记录被选中则进入步骤(C4),否则进入步骤(C5),其中a为一个正小数,用来随机选择候选数据请求记录,一般取值为0.3至0.8。
(C4)令P=P-Rq,N=N-Nq。
(C5)如果节点空闲连接数P和节空闲缓存大小N均大于0,则进入(C2),否则直接进入步骤(5);(5)节点A根据缓存分配表中的数据请求记录,依次初始化相应的服务频道及其缓存信息,并进入步骤(2);(6)节点A维护缓存中的数据;数据维护方法和频道类型相关,如果是节目频道,按照方法(D)维护缓存中的数据;如果是服务频道,按照方法(E)或(F)维护缓存中的数据。
(D)节点A随着在节目频道视频的播放,不断丢弃已播放的节目数据,并请求未播放的节目数据,以维护缓存中的数据,具体步骤如下(D1)节点A计算要丢弃的数据长度L为Tp-T,其中T为缓存中数据的起始节目播放时间,Tp为当前节目播放时间;(D2)节点A丢弃时间T至时间Tp的节目数据,并向视频点播系统请求时间T+Nc至T+Nc+L的节目数据,其中Nc为缓存数据大小;(D3)节点A接收所请求的节目数据,保持在频道缓存中,并更新T为Tp;(E)节点A设置一个虚拟视频播放器,模拟用户的播放行为,节点A按照方法(D)同样的步骤维护缓存中的数据。
虚拟视频播放器由一个记时器和一个定时器构成,记时器模拟视频播放器的播放时间Tp,定时器按定时启动,设置定时器启动的时间间隔为一分钟能够满足节点维护数据的要求。
(F)节点A和与其连接的节点交换自身缓存的数据信息,根据交换所得的其他节点缓存的数据信息计算数据滑动长度Ns,并以此维护缓存中的数据。参见图4,其具体步骤如下(F1)初始化滑动长度Ns为0;(F2)节点A计算频道上存储有播放位置T+Ns的数据的节点个数S1和存储有播放位置T+Nc-Ns的数据的节点个数S2,其中T为缓存中数据的起始节目播放时间;(F3)如果S1>S2,进入步骤(F4);否则转步骤(F5);
(F4)令Ns=Ns+1,进入步骤(F2);(F5)节点A丢弃时间T至时间T+Ns的节目数据,并向视频点播系统请求时间T+Nc至T+Nc+Ns的节目数据,其中Nc为缓存数据大小;(F6)节点A接收请求的节目数据,并保持在频道缓存中,并更新T为T+Ns;上述方法(E)实现简单,但没有考虑到其他节点的数据需求,会出现节点丢弃的数据恰好是其他节点需要的数据的情况,造成其他节点重复请求节目数据,浪费节目源服务器资源。方法(F)可以很好的满足系统整体的数据需求,但是实现比较复杂,需要不断交换缓存信息,节点的系统开销较大。
(7)判断节点A的节目频道是否播放结束,如果是,节点关闭视频点播程序,退出系统;否则,进入步骤(6)。
至此,视频点播系统就完成了多频道重叠网的组织。
实例利用本发明所阐述的多频道重叠网络组织方法,实验室提供了1个节目源服务器,1个索引服务器以及9台普通PC机。PC机的硬件配置如下

PC 1-9分别称为节点1、节点2……节点9。所有的节点进入点播系统时,可以选择点播2个不同节目A和B,每个节目播放总时间为60分钟,视频编码率为480kbps,每分钟节目数据量为3.5M。选择点播A节目的用户数为2个,分别为节点1和节点2,每间隔15分钟有一个节点进入系统,选择点播B节目的用户数为7个,为节点3到节点9,每间隔5分钟有一个节点进入系统。选择缓存A节目的数据的节点间构建网络连接组成频道A,选择缓存B节目的数据的节点间构建网络连接组成频道B。每个节点设置空闲缓存N初始化为内存大小的10%,即25M。
节点9加入时,此时多频道重叠网络上的缓存分布状态如图5所示。用户选择播放节目B,初始化空闲缓存N为7分钟(即大小为25M的节目数据),初始化空闲连接数P为30。频道类型设为节目频道,初始化缓存中节目数据所在频道的标识符Cn为B、缓存中数据的起始节目播放时间T为0、缓存数据大小Nc为7。
节点9向索引服务器发送加入频道B的请求,索引服务器根据节点9的请求和节点信息表计算出节点9在频道B上的最小缓存数为5,并查询出节点9的临近节点为节点8和节点7。索引服务器将最小缓存数和临近节点列表发送给节点9。
节点9分配频道B上的缓存数据大小为5,并和节点8和节点7建立连接,加入频道B。节点9加入频道B后,将空闲缓存数减去5,可连接数减去2。
节点9更新空闲缓存数为2分钟,可连接数为28,即还可以提供缓存。于是向索引服务器发送分配缓存请求。索引服务器查询数据请求计算出数据请求块为频道A上的第28分钟到29分钟,索引服务器将这个数据请求块发送回节点9。节点9初始化服务频道,设置服务频道的标识符Cn为A,缓存中数据的起始节目播放时间T为28,缓存数据大小为2。
节点9向索引服务器发送加入频道A的请求,因为节点9要加入的是服务频道,索引服务器直接得出节点9的最小缓存数为2,并得到其临近节点为节点2和节点8。
节点9分配频道A上的缓存大小为2分钟,并和节点1和节点8建立连接,加入频道A。节点9加入频道B后,将空闲缓存数减去2,可连接数减去2。
节点9发现空闲缓存数为0分钟,可连接数为26,无法提供缓存,进入节点运行状态。在节点运行时,节点9根据节目B的播放数据,不断向节点8请求数据,并丢弃播放过的节目数据。同时节点9根据节点1和节点8在频道A上的缓存的数据,不断计算滑动长度Ns,并维护服务频道缓存中的数据。
经多次测试,采用本发明所论述的对等网络视频点播系统中多频道重叠网络组织方法,点播系统中的节点都能够非常流畅地观看节目,整个系统能够稳定地工作。
权利要求
1.一种对等网络视频点播系统中多频道重叠网络组织方法,系统中的任一节点A均进行以下步骤(1)节点A启动视频点播程序,初始化空闲缓存N和空闲连接数P,并根据用户点播请求初始化节目频道的缓存信息和频道类型;其中设缓存中节目数据所在频道的标识符为Cn、缓存中数据的起始节目播放时间为T、缓存数据大小为Nc,节目频道的Nc初始值为N,用户点播的视频节目对应的标识符为C,令Cn=C;(2)节点A根据频道的缓存信息加入频道C,其具体步骤如下(2.1)节点A根据频道的缓存信息和频道类型向索引服务器发送数据请求;(2.3)节点A设置频道C的缓存数据大小Nc为最小缓存数Nmin,与临近节点列表中的节点建立连接,并从频道上获取节目数据;(3)节点A更新空闲缓存N和空闲连接数P,如果N和P均大于0,进入步骤(4);否则,进入步骤(6);(4)节点A计算缓存分配表,其步骤如下(4.1)节点A向索引服务器发送分配缓存请求,包括节点标识符、空闲缓存大小N和空闲连接数P;(4.2)索引服务器根据分配缓存请求计算数据请求表,并将其传送给节点A;每项数据请求记录包括节目数据所在频道的标识符Cq、数据的起始节目播放时间Tq、数据大小Nq和该块数据的请求次数Rq;(4.3)节点A根据数据请求表建立缓存分配表;(5)节点A根据缓存分配表中的数据请求记录,依次初始化相应的服务频道及其缓存信息,并进入步骤(2);(6)节点A维护缓存中的数据;(7)判断节点A的节目频道是否播放结束,如果是,节点关闭视频点播程序,退出系统;否则,进入步骤(6)。
2.根据权利要求1所述的方法,其特征在于步骤(2.2)中最小缓存数计算方法为(A1)索引服务器根据节点A的数据请求初始化最小缓存数Nmin为分配的缓存数据大小Nc;(A2)如果节点请求的频道类型是节目频道,则进入步骤(A3),否则计算结束,并进入步骤(2.3);(A3)索引服务器查询节点信息表,查找缓存中存有播放时间为T的节点,计算该类节点的个数ST;(A4)索引服务器查找缓存中存有播放时间为T+Nmin的节点,计算该类节点的个数S;(A5)如果S大于ST,进入步骤(A6);否则进入步骤(2.3),Nmin即为所求的最小缓存数;(A6)令Nmin=Nmin-1,进入步骤(A4)。
3.根据权利要求1或2所述的方法,其特征在于步骤(4.2)中数据请求表的计算步骤为(B1)初始化数据请求表为空;(B2)索引服务器统计当前时间所有的对节目源服务器的数据请求,将其中数据节目时间临近的数据请求合并成数据请求记录;(B3)索引服务器按照Rq/Nq的大小对数据请求记录从大到小排序;(B4)索引服务器选择Rq/Nq值最大的数据请求记录;(B5)若Rq/Nq<P/N,则进入步骤(B6),否则进入步骤(B7),其中P为分配缓存请求中的空闲连接数,N为分配缓存请求中的空闲缓存;(B6)选择该数据请求记录,放入数据请求表,并删除该数据请求记录,进入步骤(B4);(B7)计算结束,将所求数据请求表返回给节点A,并进入步骤(4.3)。
4.根据权利要求3所述的方法,其特征在于步骤(4.3)中,节点A按照下述步骤建立缓存分配表(C1)节点A初始化缓存分配表为空;(C2)节点A选择数据请求表首部的数据请求记录为候选数据请求记录,并从数据请求表中删除该数据请求记录。(C3)节点A按照概率a选择候选数据请求记录,如果候选数据请求记录被选中则进入步骤(C4),否则进入步骤(C5),其中a为0.3-0.8;(C4)令P=P-Rq,N=N-Nq;(C5)如果节点空闲连接数P和节空闲缓存大小N均大于0,则进入(C2),否则直接进入步骤(5)。
5.根据权利要求1或2所述的方法,其特征在于步骤(6)中,如果是节目频道,节点A按照步骤(D1)-(D3)维护缓存中的数据;如果是服务频道,节点A按照步骤(E)或步骤(F1)-(F6)维护缓存中的数据(D1)节点A计算要丢弃的数据长度L为Tp-T,其中T为缓存中数据的起始节目播放时间,Tp为当前节目播放时间;(D2)节点A丢弃时间T至时间Tp的节目数据,并向视频点播系统请求时间T+Nc至T+Nc+L的节目数据,其中Nc为缓存数据大小;(D3)节点A,接收所请求的节目数据,保持在频道缓存中,并更新T为Tp;(E)节点A设置一个虚拟视频播放器,模拟用户的播放行为,节点A按照方法(D)同样的步骤维护缓存中的数据;(F1)初始化滑动长度Ns为0;(F2)节点A计算频道上存储有播放位置T+Ns的数据的节点个数S1和存储有播放位置T+Nc-Ns的数据的节点个数S2,其中T为缓存中数据的起始节目播放时间;(F3)如果S1>S2,进入步骤(F4);否则转步骤(F5);(F4)令Ns=Ns+1,进入步骤(F2);(F5)节点A丢弃时间T至时间T+Ns的节目数据,并向视频点播系统请求时间T+Nc至T+Nc+Ns的节目数据,其中Nc为缓存数据大小;(F6)节点A接收请求的节目数据,并保持在频道缓存中,并更新T为T+Ns。(1)节点A启动视频点播程序,初始化空闲缓存N和空闲连接数P,并根据用户点播请求初始化节目频道的缓存信息和频道类型;(2)节点A根据频道的缓存信息加入频道C,其具体过程为(2.1)节点A根据频道的缓存信息和频道类型向索引服务器发送数据请求;(2.2)索引服务器根据数据请求查询节点信息表,计算最小缓存数和临近节点列表,并将计算结果传送给节点A;(2.3)节点A设置频道C的缓存数据大小Nc为最小缓存数Nmin,与临近节点列表中的节点建立连接加入频道,并从频道上获取节目数据;(3)节点A更新空闲缓存N和空闲连接数P,如果N和P均大于0,进入步骤(4);否则,进入步骤(6);(4)节点A计算缓存分配表,其步骤如下(4.1)节点A向索引服务器发送分配缓存请求,包括节点标识符、空闲缓存大小N和空闲连接数P;(4.2)索引服务器根据分配缓存请求请求数据请求表,并将其传送给节点A;(4.3)节点A根据数据请求表建立缓存分配表;(5)节点A根据缓存分配表中的数据请求记录,依次初始化相应的服务频道及其缓存信息,并进入步骤(2);(6)节点A维护缓存中的数据;(7)判断节点A的节目频道是否播放结束,如果是,节点关闭视频点播程序,退出系统,否则,进入步骤(6)。
全文摘要
本发明公开了一种对等网络视频点播系统中多频道重叠网络组织方法,各节点执行以下步骤①初始化节目频道及其缓存信息;②根据频道的缓存信息加入频道;③更新空闲缓存和空闲连接数;④计算缓存分配表;⑤根据缓存分配表初始化相应的服务频道及其缓存信息;⑥维护缓存中的数据;⑦判断播放是否结束。本发明在节点加入节目频道后,根据其空闲缓存和空闲连接数加入服务频道,并在节点运行时维护缓存中的数据。本发明增强了系统的可扩展性,提高了系统的缓存利用率,确保节点的负载均衡,并降低了系统的部署成本。
文档编号G06F17/30GK1874489SQ200610019500
公开日2006年12月6日 申请日期2006年6月28日 优先权日2006年6月28日
发明者金海 , 廖小飞, 王浩, 程斌 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1