一种面向p2p视频点播系统的跳播实现方法

文档序号:6739010阅读:194来源:国知局
专利名称:一种面向p2p视频点播系统的跳播实现方法
技术领域
本发明属于计算机网络领域,涉及流媒体点播技术应用,特别涉及一种面向P2P视频点播系统的跳播实现方法。
背景技术
随着网络技术和多媒体编码技术的发展,越来越多的实时流媒体应用进入了我们的生活。点对点网络电视(Peer-to-Peer Internet Protocol Television, P2P IPTV)作为最成功的实时流媒体应用之一,正以其显著的优势赢得越来越多的用户,给传统的电话和电视业务带来了很大的冲击。一方面,P2PIPTV应用的出现打破了传统的网络视频分享方式。在传统方式下,用户首先要对整个视频文件进行下载,然后才能观看。由于视频文件一般较大,所以用户需要忍受很长的下载等待时间。而P2P IPTV应用使用户可以一边下载视频内容一边观看视频内容,从而使用户免去了漫长的下载等待。另一方面,这些P2P IPTV应用不仅可以像传统电视一样向用户提供视频直播服务,而且还可以与用户交互,提供传统电视很难实现的视频点播业务。与直播领域相比,在视频点播领域,P2P技术的发展速度相对较为缓慢。主要是因为点播当中的高度交互性需求,使得实现的复杂程度较高。对于用户来说,视频点播系统比视频直播系统增加了更多的能动性,其中最重要的功能之一就是支持跳播,即任意选择视频的某一时间点开始播放。当前存在各种P2P视频点播系统,这些系统各有各自的优势,其中P2VoD系统是较为出色的系统。P2VoD是佛罗里达大学提出来的一个基于树状拓扑的P2P视频点播系统。系统中提出“代”的概念,进行数据分发和失效恢复。不足之处是系统无法顺利处理跳播的行为,这是该系统的一大缺陷。

发明内容
本发明针对现有系统的上述不足,提出一种能够减少用户的等待时间、适合推广到大规模的IPTV VoD覆盖网络之中的面向P2P视频点播系统的跳播实现方法,实现对跳播行为的处理。本发明的技术方案如下—种面向P2P视频点播系统的跳播实现方法,将服务器中源视频的内容分块,顺次标号为1,2,3,……,称为数据块标号;P2P视频点播系统中每个用户都相当于一个对等体,每个对等体都开辟有缓存用以存放播放的数据块,每隔一定时间就会删除缓存中标号最小的数据块;规定缓存中最小数据块标号相同的对等体称为一代,同一代中各对等体采用可变缓存机制,后加入代的对等体的缓存要小于先加入的,二者的差等于加入时间的差;所有代的全体对等体组成一个会话,同一会话中,代的标号从I开始递增;每个对等体选择从3个父对等体处获取数据,规定第i代中的对等体的父对等体都来自第(i-Ι)代,第I代的对等体的父对等体是源服务器;当用户需要跳转到视频的某一位置观看时,即当前对等体发生跳播行为,首先在本会话内部搜寻合适的对等体来作为父对等体,使用短距离跳播算法;当发生跳播的对等体无法在其所在的会话中找到合适的新父对等体时,将按照长距离跳播算法处理。作为优选实施方式,对于短距离跳播算法,设发生跳播行为的对等体为X,跳播到的位置为视频的Tpx位置,发生跳播的时间是T,则设置X的加入时间Tjx = T-Tpx,最小标号数据块用N表示,最小标号数据块删除时间用Te表示,根据用户的选择,分向前跳播和向后跳播两种情况,(I)向前跳播X递推的获取父代Gl、Gl的子代G2、G2的子代乃至更下一代的信息,直到找到一代Gn,其最小标号数据块删除时间Ten晚于X的加入时间Tjx,则X成为Gn的子代的成员,若一直找到当前会话的最后一代仍未找到,则按照长距离跳播算法进行处理;(2)向后跳播X递推的获取父代Gl、Gl的父代G2’、G2’的父代乃至更上一代的信息,直到找到一代Gn’,其最小标号数据块的标号Nn’早于X跳播到的数据块,X成为Gn’的子代的成员,若一直找到当前会话的第一代仍未找到,则按照长距离跳播算法进行处理。对于长距离跳播算法,仍然设发生跳播的对等体为X,跳播到的数据块为Nx,换算后的加入时间是Tjx,步骤如下首先连接服务器,索取当前各会话的信息,获取各会话中最年轻一代的成员的信息,包括当前最小标号数据块N和最小标号数据块删除时间Te ;根据用户的选择,分向前跳播和向后跳播两种情况,(I)向前跳播按照会话的创建顺序,顺序向后找到第一个Te > Tjx的会话,若找不到,则直接连接服务器,若找得到,从该会话的最年轻一代开始向上,依次获取每一代的成员信息,找到第一个不能同时满足Tjx < Te和Nx > N的代,选取其子代作为X的父代,若所有代都不同时满足上述条件,则直接连接服务器;(2)向后跳播按照会话的创建顺序,逆序向前找到第一个Te < Tjx的会话,选择晚于该会话创建时间的最早会话进行处理,若找不到,选择最早的会话进行处理,从选中的会话的最年轻一代开始向上,依次获取每一代的成员信息,找到第一个不同时满足Tjx < Te和Nx > N的代,选取其子代作为X的父代,若所有代都不同时满足上述条件,则直接连接服务器。本发明的有益效果如下应用本发明的方法可以快速实现跳播,即快速跳转到视频的任意时间点开始播放,能减少用户的等待时间,适合推广到大规模的IPTV VoD覆盖网络之中。


图I为短距离跳播算法示意图,(a)为向前跳播情况(b)为向后跳播情况。图2为长距离跳播算法示意图,(a)为向前跳播情况(b)为向后跳播情况。图3为跳播延迟的对比图。
具体实施例方式下面结合附图和实施例对本发明进行详述。
通过以下系统对本发明进行实施。系统中,每个对等体中都开辟了一段固定大小的空间作为缓存,实际使用的缓存大小依据不同对等体加入系统的时间不同而不同。将源视频的内容分块,顺次标号为1,2,3,……,称为数据块标号。缓存中,最小的数据块标号相同的对等体称为一代,代的标号从I开始。所有代的全体对等体组成一个会话。同一会话中,代的标号从I开始递增。当新的对等体加入系统时,它或者属于编号最大的代,或者成为新一代的第一个成员。我们规定,第i代中的对等体的父对等体都来自第(i-1)代,其中i > I。第I代的对等体的父对等体是源服务器。为了减小特定两个对等体之间的依赖性,从而增强网络的稳定性,该系统中,每个对等体选择3个父对等体。同时为了尽可能的减小对等体加入网络后的初始延迟,以及简化各对等体间的控制信息内容,选父规则为系统按照最小延迟方法选择父对等体,即直接在候选队伍中选择最靠前的对等体。缓存规则为同一代中各对等体采用可变缓存机制,后加入代的对等体的缓存要小于早加入的,二者的差应该等于二者加入时间的差。这样设置的缓存策略保证了不同时间加入系统的对等体,在观看同一视频的不同位置时,缓存中的最小数据块标号仍然相同。对于网络中的任一对等体,都需要保存三类信息,包括IP地址和端口号a.自己所处的代中全部兄弟对等体的信息;b.自己的父对等体所处的代中所有对等体的信息;c.自己的子对等体的信息。设发生跳播行为的对等体为X,跳播到的位置为视频的Tpx位置,发生跳播的时间是T,则设置X的加入时间Tjx = T-Tpx,将X作为一个加入时间为Tjx的对等体。由于80%的跳播行为都是近距离跳播,所以当发生跳播行为时,首先在本会话内部搜寻合适的对等体来作为父对等体,使用短距离跳播算法。算法的示意图如图I所示,具体步骤如下情况一向前跳播。(I)获取X的父代Gl中对等体最小标号数据块删除时间Tel,若X的加入时间Tjx早于Tel,则当前的父代对等体仍然可以作为X的父代为其提供数据。X以加入时间Tjx作为新加入的对等体重新向当前父对等体索取数据。新的缓存根据缓存规则重新设置。否则转⑵。(2) X获取Gl的子代,即自己所在代G2中对等体最小标号数据块删除时间Te2。若X的加入时间Tjx早于Te2,则转(3)。否则,继续递推的向下获取G2的子代乃至更下一代的信息,直到找到一代Gn,其最小标号数据块删除时间Ten晚于X的加入时间,转(3)进行处理。若一直找到当前会话的最后一代仍未找到,则按照长距离跳播算法进行处理。(3)X根据选父规则,从Gn中选择3个对等体作父亲。之后X成为Gn的子代的成员,从父对等体处接受数据。X的实际可用缓存大小根据缓存规则以加入时间Tjx为基准重新设置。情况二 向后跳播。(I)获取X的父代Gl中对等体最小标号数据块的标号NI,若X跳播到的数据块乂晚于NI,则当前的父代对等体仍然可以作为X的父代为其提供数据。X以加入时间Tjx作为新加入的对等体重新向当前父对等体索取数据。新的缓存根据缓存规则重新设置。否则转⑵。
(2)X获取Gl的父代G2’中对等体最小标号数据块的标号N2。若X跳播到的数据块乂晚于吧,则转(3)。否则,继续递推的获取G2’的父代乃至更上一代的信息,直到找到一代Gn’,其最小标号数据块的标号Nn’早于X跳播到的数据块,转(3)进行处理。若一直找到当前会话的第一代仍未找到,则按照长距离跳播算法进行处理。
(3)X根据选父规则,从Gn’中选择3个对等体作父亲。之后X成为Gn’的子代的成员,从父对等体处接收数据。X的实际可用缓存大小根据缓存规则以加入时间Tjx为基准重新设置。当发生跳播的对等体无法在其所在的会话中找到合适的新父对等体时,将按照长距离跳播算法处理。仍然设发生跳播的对等体为X,跳播到的数据块为Nx,换算后的加入时间是Tjx。算法的示意图如图2所示,具体步骤如下情况一向前跳播。(I)连接服务器。索取当前各会话的信息,获取各会话中最年轻一代的成员的信息,包括当前最小标号数据块N,和最小标号数据块删除时间Te,注意,因为最小标号未必为1,所以Te并不是当前最小标号数据块N的删除时间,而是删除标号为I的数据块的时间。(2)按照会话的创建顺序,顺序向后找到第一个Te > Tjx的会话。若找不到,则转
(5)。(3)从该会话的最年轻一代开始向上,依次获取每一代的成员信息。找到第一代不满足(Tjx < TeMNx > N)的代,选取其子代作为X的父代。若所有代都不满足条件(Tjx< TeMNx > N),转(5)。(4)X根据选父规则,从父代中选择3个对等体作父亲接收数据。X的实际可用缓存大小根据缓存规则以加入时间Tjx为基准重新设置。(5)直接连接服务器。若服务器带宽不足,则新对等体被拒绝;否则创建一个新会话,新对等体称为该会话第一代的第一个成员,从服务器开始下载数据。情况二 向后跳播。(I)连接服务器。索取当前各会话的信息,获取各会话中最年轻一代的成员的信息,包括当前最小标号数据块N,和最小标号数据块删除时间Te。(2)按照会话的创建顺序,逆序向前找到第一个Te < Tjx的会话,选择晚于该会话创建时间的最早会话进行处理。若找不到,选择最早的会话进行处理。(3)从选中的会话的最年轻一代开始向上,依次获取每一代的成员信息。找到第一个不满足(Tjx < TeMNx > N)的代,选取其子代作为X的父代。若所有代都不满足条件(Tjx < TeMNx > N),转(5)。(4)X根据选父规则,从父代中选择3个对等体作父亲接收数据。X的实际可用缓存大小根据缓存规则以加入时间Tjx为基准重新设置。(5)直接连接服务器。若服务器带宽不足,则新对等体被拒绝;否则创建一个新会话,新对等体称为该会话第一代的第一个成员,从服务器开始下载数据。本系统与P2VoD相比最大的差别就是支持用户的跳播行为。当用户离开当前播放位置,转到另一播放位置继续观看视频时,对等体需要逐代去寻找适合自己新的播放位置的代。过长的延迟是用户所不能接受的,故需对延迟性能进行仿真评价。
图3给出了在不同的用户规模下,用户跳播到距离当前播放位置分别为I分钟、5分钟、10分钟和30分钟情况下的平均连接结点的次数,用以间接反映跳播延迟。
从图中可以看出,跳播到的位置与当前播放位置距离越长,需要连接其他结点的次数就越多,直接导致等待时间越长。如果跳播距离不超过10分钟,连接次数都在10次以内,基本规模在初始加入连接次数的一半以下,用户基本可以接受。连接的次数与网络中用户的规模数没有直接的单调关系。用户规模很小(100以内)的时候,连接次数简单递增。但是当用户规模大幅增大之后,跳播需要的平均连接次数十分稳定。这是因为,用户规模很小的时候,所有用户几乎都在一个会话中,处于不同的代,跳播后逐层寻找新的父对等体,导致连接次数单调递增。随着用户规模的增大,网络中会话数增多,网络变得扁平,查找次数就基本稳定下来了。
权利要求
1.一种面向P2P视频点播系统的跳播实现方法,其特征在于,将服务器中源视频的内容分块,顺次标号为1,2,3,……,称为数据块标号;P2P视频点播系统中每个用户都相当于一个对等体,每个对等体都开辟有缓存用以存放播放的数据块,每隔一定时间就会删除缓存中标号最小的数据块;规定缓存中最小数据块标号相同的对等体称为一代,同一代中各对等体采用可变缓存机制,后加入代的对等体的缓存要小于先加入的,二者的差等于加入时间的差;所有代的全体对等体组成一个会话,同一会话中,代的标号从I开始递增;每个对等体选择从3个父对等体处获取数据,规定第i代中的对等体的父对等体都来自第(i-1)代,第I代的对等体的父对等体是源服务器;当用户需要跳转到视频的某一位置观看时,即当前对等体发生跳播行为,首先在本会话内部搜寻合适的对等体来作为父对等体,使用短距离跳播算法;当发生跳播的对等体无法在其所在的会话中找到合适的新父对等体时,将按照长距离跳播算法处理。
2.根据权利要求I所述的一种面向P2P视频点播系统的跳播实现方法,其特征在于,对于短距离跳播算法,设发生跳播行为的对等体为X,跳播到的位置为视频的Tpx位置,发生跳播的时间是T,则设置X的加入时间Tjx = T-Tpx,最小标号数据块用N表示,最小标号数据块删除时间用Te表示,根据用户的选择,分向前跳播和向后跳播两种情况, (1)向前跳播X递推的获取父代G1、G1的子代G2、G2的子代乃至更下一代的信息,直到找到一代Gn,其最小标号数据块删除时间Ten晚于X的加入时间Tjx,则X成为Gn的子代的成员,若一直找到当前会话的最后一代仍未找到,则按照长距离跳播算法进行处理; (2)向后跳播X递推的获取父代G1、G1的父代G2’、G2’的父代乃至更上一代的信息,直到找到一代Gn’,其最小标号数据块的标号Nn’早于X跳播到的数据块,X成为Gn’的子代的成员,若一直找到当前会话的第一代仍未找到,则按照长距离跳播算法进行处理。
3.根据权利要求I所述的一种面向P2P视频点播系统的跳播实现方法,其特征在于,对于长距离跳播算法,仍然设发生跳播的对等体为X,跳播到的数据块为Nx,换算后的加入时间是Tjx,步骤如下 首先连接服务器,索取当前各会话的信息,获取各会话中最年轻一代的成员的信息,包括当前最小标号数据块N和最小标号数据块删除时间Te ;根据用户的选择,分向前跳播和向后跳播两种情况, (1)向前跳播按照会话的创建顺序,顺序向后找到第一个Te>Tjx的会话,若找不到,则直接连接服务器,若找得到,从该会话的最年轻一代开始向上,依次获取每一代的成员信息,找到第一个不能同时满足Tjx < Te和Nx > N的代,选取其子代作为X的父代,若所有代都不同时满足上述条件,则直接连接服务器; (2)向后跳播按照会话的创建顺序,逆序向前找到第一个Te< Tjx的会话,选择晚于该会话创建时间的最早会话进行处理,若找不到,选择最早的会话进行处理,从选中的会话的最年轻一代开始向上,依次获取每一代的成员信息,找到第一个不同时满足Tjx < Te和Nx > N的代,选取其子代作为X的父代,若所有代都不同时满足上述条件,则直接连接服务器。
全文摘要
本发明属于计算机网络领域,涉及流媒体点播技术应用,特别涉及一种面向P2P视频点播系统的跳播实现方法,该方法将服务器中源视频的内容分块并顺次标号,为每个对等体都开辟有缓存用以存放播放的数据块;当用户需要跳转到视频的某一位置观看时,即当前对等体发生跳播行为,首先在本会话内部搜寻合适的对等体来作为父对等体,使用短距离跳播算法;当发生跳播的对等体无法在其所在的会话中找到合适的新父对等体时,将按照长距离跳播算法处理。该方法包括短距离跳播算法和长距离跳播算法,并分别实现了对向前跳播和向后跳播的支持。本发明即快速跳转到视频的任意时间点开始播放,能减少用户的等待时间,适合推广到大规模的IPTV VoD覆盖网络之中。
文档编号G11B27/10GK102625141SQ20121008070
公开日2012年8月1日 申请日期2012年3月23日 优先权日2012年3月23日
发明者刘晓辉, 杜磊, 金志刚 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1