CN102202228A - 视频资源存储、查找的方法及装置 - Google Patents
视频资源存储、查找的方法及装置 Download PDFInfo
- Publication number
- CN102202228A CN102202228A CN2011101354391A CN201110135439A CN102202228A CN 102202228 A CN102202228 A CN 102202228A CN 2011101354391 A CN2011101354391 A CN 2011101354391A CN 201110135439 A CN201110135439 A CN 201110135439A CN 102202228 A CN102202228 A CN 102202228A
- Authority
- CN
- China
- Prior art keywords
- node
- video
- frequency band
- grouping
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种视频资源存储、查找的方法及装置,属于移动通信网络领域。存储方法包括:将视频资源进行分段,得到N个视频段,N为大于等于1的整数;将节点进行分组;将第m个视频段开始的一或多个视频段存储到第m个节点分组内的各个节点中,m为大于等于1小于等于N的整数。通过本方案的实现使得视频资源均匀分布到各节点,更有利于节点间进行视频资源的查找,另外,每个节点所存储的视频资源保持不变,稳定性较高。
Description
技术领域
本发明涉及移动互联网视频应用领域,特别涉及一种视频资源存储、查找的方法及装置。
背景技术
随着无线通信技术的迅速发展,基于移动互联网的应用也越来越多样化,其中,视频播放在移动互联网中得到了广泛的应用。由于移动互联网自身特性的一些限制,如存储能力限制、能量限制和带宽限制等,使得在移动互联网上播放视频仍然是一个极大地挑战。
为了克服移动互联网自身特性的一些限制,现有技术中提出了P2P(Peer-to-Peer,对等)技术。P2P技术是将移动互联网络中所有的节点按照一定的结构组成一个P2P网络;在该P2P网络中,每个节点可以相互分享自己的带宽资源和存储资源,从而使网络中各节点的带宽和存储空间等资源得到了充分利用,极大地降低视频服务器及整个移动互联网的负载,那么如何将存储资源均匀的存储到P2P网络中的各节点中就显得很重要。
现有技术中,常采用Chord(带弦环拓扑)环来实现P2P网络中资源的存储。具体地,根据节点ID的长度构建一个Chord环,当节点ID的长度为L位时,则Chord环上的标识符的空间大小为2L,即该Chord环上的标识符可以在整数0到2L-1之间取值,将这些标识符首尾相连便构成一个Chord环;通过预定规则将资源和节点映射到该Chord环上,具体地,将资源分配到NID大于等于KID的节点上,其中,NID为节点ID,KID为资源ID;如图1,该Chord环上共有十个节点(字母N所标识)和5个资源(字母K所标识),那么按照上述规则,将KID为10的资源K10分配到NID为14的节点N14上,将KID为24和30的资源K24和K30分配到NID为32的N32上,将KID为38的资源分配到KID为38的节点N38上,将KID为54的资源K54分配到NID为56的N56上。
那么,由上述的资源分配方案可以知道,网络中各节点所存储的资源并不是均匀分布的,如NID为21的节点N21上并未分配有资源,而NID为38的节点N38上却分配有两个资源等,这样将会导致一些问题:如某一个存储大量资源的节点离开网络,网络中节点之间在分享资源时,由于该存储大量资源的节点的离开,使得节点在查找资源时效率变低,再如,网络中存储大量未存储任何资源的空闲节点,这也将使得节点在查找资源时的效率变低。
发明内容
为了解决上述技术问题,本发明实施例提供了一种视频资源存储、查找的方法及装置。所述技术方案如下:
一种视频资源存储的方法,所述方法包括:
将视频资源进行分段,得到N个视频段,N为大于等于1的整数;
将多个节点进行分组;
将第m个视频段开始的一或多个视频段存储到第m个节点分组内的各个节点中,m为大于等于1小于等于N的整数。
一种视频资源存储的装置,所述装置包括:分段模块、分组模块和存储模块;
所述分段模块,用于将所述视频资源进行分段,得到N个视频段,N为大于等于1的整数;
所述分组模块,用于将多个节点进行分组;
所述存储模块,用于将所述分段模块得到的第m个视频段开始的一或多个视频段分存储到所述分组模块得到的第m个节点分组内的各个节点中,m为大于等于1小于等于N的整数。
一种视频资源查找的方法,所述方法包括:
依次向第m个节点分组内的各个节点发送查询第m个视频段的请求,使得所述第m个节点分组内当前接收到所述请求的节点在自身存储有所述第m个视频段时,向请求节点返回确认信息;
在接收到所述确认信息后,根据所述确认信息从所述第m个节点分组内存储有所述第m个视频段的节点中选择一个目标节点建立连接,从所述目标节点中下载所述第m个视频段;
在未接收到所述确认信息后,依次向第m个节点分组的前一个节点分组内的各个节点发送查询第m个视频段的请求,直到下载得到所述第m个视频段;
m为大于等于1的整数。
一种视频资源查找的装置,所述装置包括:请求模块、第一下载模块和第二下载模块;
所述请求模块,用于依次向第m个节点分组内的各个节点发送查询第m个视频段的请求,使得所述第m个节点分组内当前接收到所述请求的节点在自身存储有所述第m个视频段时,向请求节点返回确认信息;
所述第一下载模块,用于在接收到所述确认信息后,根据所述确认信息从所述第m个节点分组内存储有所述第m个视频段的节点中选择一个目标节点建立连接,从所述目标节点中下载所述第m个视频段;
所述第二下载模块,用于在未接收到所述确认信息后,依次向第m个节点分组的前一个节点分组内的各个节点发送查询第m个视频段的请求,直到下载得到所述第m个视频段;
m为大于等于1的整数。
本发明实施例提供的技术方案带来的有益效果是:通过本发明实施例所提供的视频资源存储方法的实现使得视频资源均匀分布到各节点,更有利于节点间进行视频资源的查找,另外,每个节点所存储的视频资源保持不变,稳定性较高;通过本发明实施例所提供的视频资源查找方法的实现,根据维护的链接表进行视频资源的查找使得查找方法简单而快捷。
附图说明
图1是本发明背景技术提供的一种Chord环实例图;
图2是本发明实施例1提供的一种视频资源存储的方法流程图;
图3是本发明实施例2提供的一种移动网络结构示意图;
图4是本发明实施例2提供的一种视频资源存储的方法流程图;
图5是本发明实施例2提供的一种Chord环实例图;
图6是本发明实施例2提供的一种分段后的Chord环实例图;
图7是本发明实施例2提供的一种Chord环中节点的路由表的实例图;
图8是本发明实施例3提供的一种节点入网的方法流程图;
图9是本发明实施例4提供的一种视频资源查找的方法流程图;
图10是本发明实施例5提供的一种视频资源查找的方法流程图;
图11是本发明实施例5提供的一种Chord环上查找视频资源的实例图;
图12是本发明实施例6提供的一种视频资源查找的方法流程图;
图13是本发明实施例7提供的一种视频资源存储的装置框图;
图14是本发明实施例8提供的一种视频资源查找的装置框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图2,一种视频资源存储的方法,该方法包括如下步骤:
步骤101:将视频资源进行分段,得到N个视频段,N为大于等于1的整数;
步骤102:将多个节点进行分组;
步骤103:将第m个视频段开始的一或多个视频段存储到第m个节点分组内的各个节点中,m为大于等于1小于等于N的整数。
通过本发明实施例所提供的视频资源存储方法的实现使得视频资源均匀分布到各节点,更有利于节点间进行视频资源的查找,另外,每个节点所存储的视频资源保持不变,稳定性较高。
实施例2
本发明实施例所对应的网络系统架构如图3所示,包括移动设备11、节点管理服务器12和流媒体服务器13。具体地,大量的移动设备11之间通过点对点(Ad-Hoc)的方式互联,从而构成移动P2P(Peer-to-Peer,对等)网络;流媒体服务器13作为网络的发起者和备用视频资源的提供者,保存有网络中所有的视频文件;节点管理服务器12为流媒体服务器13中所存储的视频分配相应的视频ID,并在流媒体服务器13中所存储的视频发布到网络之前,将视频按照播放时间分成若干段,且按照播放时间顺序地为得到的每一视频段分配一个相应的视频段ID,并存储相关的视频信息,其中,视频信息包括视频名称、视频ID、视频简介及视频分段信息等内容,以便用户根据该视频信息搜索自己所需的视频段。
需要说明的是,当移动设备首次加入网络时,节点管理服务器12将为该首次加入的移动设备分配一个节点ID;
具体地,节点管理服务器12将移动设备的MAC(Media Access Control,媒体接入控制)地址按照预设的哈希算法进行哈希运算,运算结果即为该移动设备的节点ID。
更进一步地,为了避免节点ID发生冲突,即对不同移动设备的MAC进行哈希运算得到相同的运算结果,则在对移动设备的MAC进行哈希运算后,查找节点ID库,当运算结果已存在于节点ID库,则将运算结果按照预定规则进行处理,并将处理结果作为该移动设备的节点ID,其中,预设规则包括将运算结果进行移位处理等。
另外,还需要说明的是,本发明实施例中将位于P2P网络中的移动设备称为网络中的一个节点。
基于上述的网络系统架构,本发明实施例提供了一种将视频资源存储的方法,即上述网络系统架构中节点管理服务器12将视频资源分布式地存储到网络中的各节点内,参见图4,方法的执行主体为节点管理服务器12,具体步骤如下:
步骤201:将视频进行分段处理,得到N段视频段,并为每一段视频段分配一个视频段ID
具体地,视频在发布到P2P网络之前被管理服务器12按照播放时间分成了N段,并分别为该N段视频段按照播放时间顺序地分配了相应的视频ID;
例如,一个十分钟的视频按照播放时间顺序的被分成了5段,每一视频段播放两分钟的视频内容,即第一段视频段包含第1至2分钟的视频内容,第二视频段包含第3至4分钟的视频内容等等,并按照播放时间顺序地为这5段视频分配了相应的视频段ID,分别为1、2、3、4和5;
步骤202:将网络中的节点进行分组;
具体地,将网络中的节点进行分组包括:
确定节点分组的分组数及节点分组内节点的节点ID的取值范围;根据节点的节点ID及确定的节点分组内节点的节点ID的取值范围将节点进行分组;
具体包括如下步骤:
步骤202-1:根据视频段的段数来确定节点分组的分组数;
本发明实施例将网络中的节点分为N组,使节点分组的分组数与网络中视频的视频段总数相等;
步骤202-2:构建一个Chord(带弦环拓扑)环;
具体地,根据网络中节点的节点ID的长度构建一个Chord环,当节点ID的长度为L位时,则Chord环上的标识符的空间大小为2L,即该Chord环上的标识符可以在整数0到2L-1之间取值,也即可以容纳2L个节点,即该Chord环上可以分布节点ID从0到2L-1的节点,优选地,将这些标识符按照从小到大的顺序顺时针地首尾相连构成一个Chord环;
图5给出了一个Chord环的实例图,该Chord环是一个L=6的环,环上有10个节点,分别为节点ID为1的节点N1、节点ID为8的节点N8、节点ID为14的节点N14、节点ID为21的节点N21、节点ID为32的节点N32、节点ID为38的节点N38、节点ID为42的节点N42、节点ID为48的节点N48、节点ID为51的节点N51及节点ID为56的节点N56。
步骤202-3:按照Chord环的空间大小将Chord环进行分段,一Chord环段内标识符的取值范围即对应一节点分组内节点的节点ID的取值范围;
本发明实施例中,按照Chord环的空间大小及视频的视频段数将Chord分为N段,即Chord环段数与视频段数相等;
具体地,将区间大小为2L的Chord环分为N段,则第m个Chord环段内标识符的取值范围为[2L*(m-1)/N,2L*m/N],则相应地,第m个节点分组内节点的节点ID的取值范围为[2L*(m-1)/N,2L*m/N],其中,1≤m≤N;
例如,Chord环是一个L=6的环,该网络中所要存储的资源为属于同一视频的5个视频段文件,则Chord环被分为5段,第一段的空间大小为[0,26/5-1],第二段的空间大小为[26/5,26**2/5-1]等等,在则该Chord环上的第一个Chord环分段上可以分布节点ID在[0,26/5-1]之间的节点,第二个Chord环分段可以分布节点ID在[26/5,26**2/5-1]之间的节点等等;
步骤202-4:将节点按照节点ID及节点分组内节点的节点ID的取值范围进行分组,本发明实施例中节点在节点分组内按照节点ID的大小顺序进行排列;
具体地,将节点按照大小的顺序排列到Chord环上,优选地,将节点按照从小大小的顺序顺时针地排列在Chord环上,即节点分组内(Chord环段内)节点按照从小到大的顺序进行排列;
图6给出了节点在分段后Chord环上的分布情况,即节点在节点分组内的分布情况,其中,节点N1和节点N8位于Chord环的第一段上,节点N14和N21位于Chord环的第二段上,节点N32和N38位于Chord环的第三段上,节点N42、N48和N51位于Chord环的第四段上,而节点N56则位于Chord环的第五段上。
上述步骤201至步骤202给出了视频分段和节点分组的具体实现方式,例如,经过上述步骤的处理后,将视频按照播放时间顺序地分成了5段,节点按照给定的节点分组内节点的节点ID的取值范围被分成了5个节点分组,以下步骤203给出了将上述得到的N个视频段如何分配给各节点的实现:
步骤203:将第m个视频段开始的一个或多个视频段存储到第m个节点分组内的所有节点内;
下面以将第m个视频段开始的一个或多个视频段存储到第m个节点分组内的一个节点内为例来说明具体的存储过程,第m个视频段开始的一个或多个视频段存储到第m个节点分组内的其他节点内的存储过程与此相同,就不再赘述,具体实现过程如下:
步骤203-0:将第m个节点分组内的各个节点依次作为当前节点;
步骤203-1:计算第m个节点分组内的当前节点的剩余空间大小;
步骤203-2:判断步骤203计算得到的剩余空间大小是否不小于第m+j个视频段的大小,m+j小于等于N,
如果不小于,则执行步骤203-3;
如果小于,则操作结束;
其中,j的初始值为0,
步骤203-3:将第m+j个视频段存储到该当前节点内,并将j的取值加上1,返回步骤203-1;
需要说明的是,在上述的计算过程中还存在这样一种情况:当m大于等于2且第m个节点分组内的节点的空间足够大,即第m个节点分组内的节点在存储第m至第N个视频段后仍然有剩余空间可以存储视频段,则将第1个视频段开始的到第m-1个视频段存储到第m个节点分组内的节点内;
例如,将视频段ID为1开始的一个或多个视频段存储到第一个节点分组内的节点N1和N8内,计算节点N1的空间是否不小于ID为1的视频段,在节点N1的空间大小不小于ID为1的视频段时,将ID为1的视频段存储到节点N1内;再次计算节点N1的空间大小是否不小于ID为2的视频段,在节点N1的空间大小不小于ID为2的视频段时,将ID为2的视频段存储到节点N1内,再次计算节点N1的空间大小是否不小于ID为3的视频段,依次类推,直到将视频段ID为1、2、3、4和5的视频段均存储到节点N1中或者节点N1的空间大小不再能容纳下视频段为止;将视频段ID为1开始的一个或多个视频段存储到第一个节点分组内的节点N8的情况与上述一致,此处就不再赘述。
再例如,将视频段ID为3开始的一个或多个视频段存储到第3个节点分组内的节点N32和N38内,则计算节点N32的空间是否不小于ID为3的视频段,在节点N32的空间大小不小于ID为3的视频段时,将ID为3的视频段存储到节点N32内;再次计算节点N32的空间大小是否不小于ID为4的视频段,在节点N32的空间大小不小于ID为4的视频段时,将ID为4的视频段存储到节点N32内,再次计算节点N1的空间大小是否不小于ID为5的视频段,依次类推,直到节点N32的空间大小不再能容纳下视频段为止,当节点N32存储了ID为5的视频段后,计算节点N32的剩余空间是否能容纳下ID为1的视频段,如果能容纳下,则将ID为1的视频存储到节点N32内,计算节点N32的空间大小是否能容纳下ID为2的视频段,如果能,则将ID为2的视频段存储到节点N32内,操作结束;将视频段ID为3开始的一个或多个视频段存储到第一个节点分组内的节点N38的情况与上述一致,此处就不再赘述。
例如,经过本步骤的操作后,第一个节点分组内的节点N1存储有ID为1和2的视频段,节点N8存储有ID为1、2、3和4的视频段;第二个节点分组内的节点N14存储有ID为2和3的视频段,节点N21存储有ID为2的视频段;第三个节点分组内的节点N32存储有ID为3、4、5和1的视频段,节点N38存储有ID为3和4的视频段;第四个节点分组内的节点N42存储有ID为4和5的视频段,节点N51存储有ID为4、5、1和2的视频段;第五个节点分组内的节点N56存储有ID为5的视频段。
步骤204:建立各节点的Link Table(链接表),该链接表保存节点内所存储的最后一个视频段的下一个视频段所在节点的ID信息;
例如,节点N1所存储的最后一个视频段是ID为2的视频段,则它的下一个视频段为ID为3的视频段,那么,存储ID为3的视频段的节点的为N8、N14、N32和N38,上述节点的ID分别为8、14、32和38;
再例如,节点N32所存储的最后一视频段位ID为1的视频段,则它的下一个视频段为ID为2的视频段,那么,存储ID为2的视频段的节点的分别为N1、N8和N51,上述节点的ID分别为1、8和51。
步骤205:建立各节点的Finger Table(路由表),该Finger Table存储有本节点的后继节点的位置信息;
具体地,Finger Table表有m项,m与节点ID的位数L相等,Finger Table表的第k项是本节点的后继节点的位置,至少包含2k-1后的位置;
例如,Chord环是一个L=6的环,则Chord环上的任一个节点需维护一Finger Table,该Finger Table给出了本节点之后的6个节点的ID信息,图7中给出了节点N8的Finger Table的实例,N8的Finger Table的左栏包含了N8+1至N8+32的位置,右栏则给出了每个位置所实际对应的节点;
需要说明的是,步骤204和205是可选择执行的步骤,且没有先后顺序之分。
以上步骤201至步骤205给出了将网络中的视频资源分布式存储到网络中各节点的实现方法,使得网络中的节点均存储有一定量的视频资源,克服了现有存储方案中视频存储不均的情况,另外,为每一节点建立一个链接表,使得用户可以根据链接表中的信息进行资源的查找,再者,每个节点存储的视频资源保持不变使得网络系统具有较好的稳定性。
实施例3
基于以上所述的网络架构及视频资源的存储方法,步骤301至步骤306给出了一个新的节点接入到网络的方法,参见图8,具体步骤如下:
步骤301:登陆节点管理服务器12;
步骤302:节点管理服务器12根据历史记录判断该节点是否第一次登陆,
如果是,为节点分配一个节点ID,执行步骤303;
有关为节点分配节点ID的方法请参见以上在介绍节点管理服务器12的作用时所介绍的节点管理服务器12为节点分配节点ID的实现方法,此处就不再赘述。
例如,该节点为第一次登陆,且为该节点分配的节点ID为26,标记为N26;
如果不是,则执行步骤303;
步骤303:在节点管理服务器12中根据视频信息搜索自己所需的视频,其中,视频信息包括视频名称、视频简介、视频ID及视频分段信息等;
步骤304:向邻居节点发送广播信息,以获取邻居节点中存储有与自己所需视频相同的视频ID的节点信息,该存储有与自己所需视频相同的视频ID的节点所在的Chord环即为自己所要加入的Chord环,这是由于,存储同一视频ID的视频段信息的节点排列在同一个Chord环上;
例如,获取的存储有与自己所须视频相同的视频ID的节点为N21,则N21所在的Chord环即节点N26所要加入的Chord环;
步骤305:根据获取的节点ID按照Chord算法加入自身所在的Chord环;
按照Chord算法加入Chord环的过程为现有技术,此处就不再赘述。
步骤306:在所加入的Chord环上的节点中查找并下载相应的视频段,
当查找到的视频段用于播放时,播放所查找到的视频段;
当查找到的视频段用于存储时,存储所查找到的视频段;
实施例4
参见图9,一种视频资源查找的方法,该方法的执行主体为P2P网络节点,具体步骤如下:
步骤401:依次向第m个节点分组内的各个节点发送查询第m个视频段的请求,使得第m个节点分组内当前接收到请求的节点在自身存储有第m个视频段时,向请求节点返回确认信息;
步骤402:在接收到确认信息后,根据确认信息从第m个节点分组内存储有第m个视频段的节点中选择一个目标节点建立连接,从目标节点中下载第m个视频段;
步骤403:在未接收到确认信息后,依次向第m个节点分组的前一个节点分组内的各个节点发送查询第m个视频段的请求,直到下载得到第m个视频段;
m为大于等于1的整数。
通过上述资源查找方法的实现,提高了视频资源的查找效率并且降低了整个网络系统的通信成本。
实施例5
参见图10,下面结合具体情况详细介绍上述视频资源查找的方法,该方法的执行主体为P2P网络节点,具体步骤如下:
假设请求节点查找第m个至m+j个视频段,则查找过程为:
步骤501:请求节点依次向第m个节点分组内的各个节点发送查询第m个视频段的请求,使得第m个节点分组内当前接收到请求的节点在自身存储有第m个视频段时,向请求节点返回确认信息,执行步骤502;
本步骤具体包括如下操作:
步骤501-1:请求节点在Chord环上以2L*(m-1)/N为关键字查找第m个节点分组内的各个节点,其中,L为节点ID的长度;
本步骤的查找原理在于:由实施例2视频资源的存储方法可以知道,将网络中从第m个视频段开始的一个或多个视频段存储到第m个节点分组中的所有节点内,那么,在查找从第m个至m+j个视频段时,则第m个节点分组内的各个节点中存储有第m个至m+j个视频段的命中率相对最高,而第m个节点分组内节点的节点ID的取值范围为[2L*(m-1)/N,2L*m/N],从关键字2L*(m-1)/N查找第m个分组内的各个节点可以降低查找时间,提高查找效率;
步骤501-2:请求节点根据Chord算法找到大于等于该关键字的最小节点ID,则该最小节点ID对应第m个节点分组内的第一个节点;
步骤501-3:请求节点从第m个节点分组内的第一个节点开始,将查询第m个视频段的请求依次发送给第m个节点分组内的各个节点;
步骤501-4:第m个节点分组内当前接收到请求的节点,
当自身存储有第m个视频段时,向请求节点返回确认信息,执行步骤502;
当自身未存储有第m个视频段时,不向请求节点返回任何信息,执行步骤509;
具体地,在网络剩余带宽允许的情况下向请求节点发送确认信息;
步骤502:请求节点在门限时间T内接收第m个节点分组内存储有第m个视频段的节点所返回的确认信息;
步骤503:请求节点在门限时间到达时,根据所接收到的确定信息从第m个节点分组内存储有第m个视频段的节点中选择一个目标节点建立连接,该目标节点为到达请求节点的路径最短的节点;
步骤504:请求节点从建立连接的目标节点中下载得到第m个视频段;
步骤505:请求节点向目标节点发送查询第m+j个视频段请求,j的初始取值为1;
步骤506:目标节点在接收到查询第m+j个视频段的请求后,判断自身是否存储有第m+j个视频段,
当自身存储有第m+j个视频段后,向请求节点返回确认信息,执行步骤507;
当自身未存储有第m+j个视频段后,向请求节点返回自身的链接表,其中,该链接表存储有该目标节点所存储最后一个视频段的下一个视频段的节点ID信息,执行步骤508;
步骤507:请求节点在接收到目标节点返回的确认信息后,从目标节点下载第m+j个视频段,j+1,返回执行步骤505;
步骤508:请求节点接收目标节点发送的链接表,并根据该链接表获取第m+j个视频段;
具体地,根据该链接表获取第m+j个视频段包括:
从链接表中获取存储有第m+j个视频段的节点ID信息;
根据节点ID信息选择一个最优节点;
与最优节点建立连接,并从最优节点下载第m+j个视频段。
需要说明的是,本步骤还可以采用如下步骤进行替换:
步骤508’:向第m+j个节点分组内的各个节点发送查询第m+j个视频段的请求,重复上述步骤直到下载得到第m+j个视频段。
需要说明的是,当请求节点依次向第m个节点分组内的各个节点发送查询第m个视频段的请求,使得第m个节点分组内当前接收到请求的节点在自身自身未存储有第m个视频段时,不向请求节点返回任何信息,请求节点在门限时间内未收到任何确认信息后,依次向第m个节点分组的前一个节点分组内的各个节点发送查询第m个视频段的请求,重复上述步骤直到下载得到第m个视频段;
具体可以2L*(m-2)/N、2L*(m-3)/N、......、2L*(m-M)/N为关键字ID重复上述查找过程,如果以各个关键字开始查找视频资源都未找到,可到流媒体服务器13中下载目标视频资源。
图11给出了请求节点X查找视频段m的过程:
S401:请求节点X在Chord环上以2L*(m-1)/N为关键字ID查找该关键字ID所在节点;
S402:根据Chord算法找到大于等于该关键字ID的最小的节点ID,由图11所示,该最小节点ID对应的是节点a,若节点a未拥有资源片段m,则执行步骤S403,若节点a拥有资源片段m,则执行步骤S405;
S403:节点a将请求转发给后继节点b,若节点b未拥有资源片段m,则执行步骤S404,节点b拥有资源片段m,则执行步骤S405;
S404:节点b收到请求后将继续转发请求给后继节点c,若节点c拥有资源片段m,则执行步骤S405,若节点c没有视频片段m则丢弃请求;
S405:拥有视频皮片段m的节点收到请求后如有多余带宽则向请求节点X发送确认信息;
S406:请求节点X在门限时间T内收到若干确认信息,根据这些确认信息,请求节点X选择成本最低的节点建立连接,获取以视频段m开头的若干视频段。
基于上述的关键字的查找方法,提高了视频资源的查找效率并且降低了整个网络系统的通信成本。
实施例6
基于上述视频资源存储的方法,步骤601至步骤608给出了在Chord环上的节点中查找自己所需的视频段的过程,本方法主要是根据Chord环上的节点所维护的链接表来进行视频段的查找的方法,参见图12,具体步骤如下:
假设请求节点查找目标视频段资源,该目标视频段资源是从视频段m开始的一个或多个视频段,则查找过程为:
步骤601:请求节点在Chord环上以2L*(m-1)/N为关键字开始查找节点;
有关本步骤的详细说明参见步骤501中的相关说明,此处就不再赘述。
步骤602:请求节点根据Chord算法找到大于等于该关键字的最小节点ID;
步骤603:请求节点将查找请求发送给该最小节点ID所对应的节点;
步骤604:当前接收到请求命令的节点,判断自身是否存储有目标视频段,
如果没有,则执行步骤605;
如果有,则执行步骤606;
步骤605:根据维护的链接表确定下一节点的位置,与下一节点建立连接后将请求命令发给下一结点,返回步骤604;
其中,链接表存储有所述当前节点所存储的最后一个视频段的下一个视频段所在节点的节点ID信息;
步骤606:向请求节点返回确认信息;
步骤607:请求节点从返回确认信息的节点中下载目标视频段资源,若目标视频段资源用于播放,则播放目标视频段,并执行步骤608;
若目标视频段资源用于存储,则存储目标视频段,操作结束;
步骤608:判断目标视频段资源是否播放结束或跳转,若继续播放或跳转,则搜索跳转位置视频段;否则,退出网络。
需要说明的是,经过循环步骤604至605无法找到目标视频段资源时,从流媒体服务器13中获取目标视频段资源。
下面举例说明上述查找过程:
如图6所示,该Chord环是一个L=6的环,被分为了N=5段,假设请求节点查找视频段1、2和3的目标视频段资源,即m=1,则通过关键字2L*(m-1)/N=0根据Chord算法查找得到大于等于该关键字的节点ID的最小节点ID为1,则将请求命令发送给节点ID为1的节点N1,N1判断自身是否存储有目标视频段资源,由上边的举例可以知道,N1中存储有视频段1和2,未存储有视频段3,那么,查找N1维护的链接表来获取视频段3,该链接表给出了视频段2的下一个视频段所在节点的ID信息,N1的链接表给出了视频段3所在节点的ID信息为8、14、32和38,请求节点从该链接表中选择一个成本最低的节点建立连接,并从建立连接的节点中下载得到视频段3,这里成本最低是指请求节点在最短路径上达到拥有目标视频段资源所在节点的跳数。
上述采用链接表的查找方法提高了视频资源的查找效率并降低了整个系统网络的通信成本。
需要说明的是,网络中的节点并不是一成不变的,上述步骤602至步骤607给出了节点加入网络的过程,相应地,网络中的节点可能会由于网络断开、电源不足或主动退出等因素而离开网络;而在本发明方案中,由于所有的视频资源都是多次备份,即存在大量的节点存储有相同的视频资源,因此,单个节点的离开对系统所存储资源的影响并不大。
实施例7
参见图13,一种视频资源存储的装置,该装置具体与节点管理服务器12的结构相一致,包括:分段模块701、分组模块702和存储模块703;
分段模块701,用于将视频资源进行分段,得到N个视频段,N为大于等于1的整数;
分组模块702,用于将多个节点进行分组;
存储模块703,用于将分段模块702得到的第m个视频段开始的一或多个视频段存储到分组模块得到的第m个节点分组内的各个节点中,m为大于等于1小于等于N的整数;
其中,分组模块702包括:
确定单元,用于确定节点分组的分组数和每个节点分组内节点的节点ID的取值范围;
分组单元,用于根据节点ID及确定单元确定的节点分组内节点的节点ID的取值范围将每一个节点进行分组,其中,每个节点分组内的节点按节点ID的大小顺序排列。
存储模块703包括:
分配单元,用于将第m个节点分组内的各个节点依次作为当前节点;
计算单元,用于计算第m个节点分组内的节点的剩余空间大小;
判断单元,用于判断计算单元计算得到的剩余空间大小是否不小于第m+j个视频段的大小,j由0开始取值,m+j小于等于N;
第一执行单元,当判断单元的结果是剩余空间大小不小于第m+j个视频段的大小时,则将第m+j个视频段存储到节点内,并将j的取值加上1,通知计算单元执行计算第m个节点分组内的节点的剩余空间大小的操作。
需要说明的是,装置还包括:路由表建立模块704,用于为每一个节点建立一个路由表,路由表存储本节点的后继节点的节点ID信息;和/或
建表模块704,用于为每一个节点建立一个链接表,链接表保存本节点所存储的最后一个视频段的下一个视频段所在节点的节点ID信息。
装置还包括:补充存储模块706,用于当m大于等于2时,将第1个视频段开始到第m-1个视频段中的一个或多个视频段存储到第m个节点分组内的所有节点中。
通过本发明实施例所提供的视频资源存储方法的实现使得视频资源均匀分布到各节点,更有利于节点间进行视频资源的查找,另外,每个节点所存储的视频资源保持不变,稳定性较高。
实施例8
参见图14,一种视频资源查找的装置,该装置具体与网络中的节点的架构一致,包括:请求模块80、第一下载模块81和第二下载模块82;
请求模块80,用于依次向第m个节点分组内的各个节点发送查询第m个视频段的请求,使得第m个节点分组内当前接收到请求的节点在自身存储有第m个视频段时,向请求节点返回确认信息;
第一下载模块81,用于在接收到确认信息后,根据确认信息从第m个节点分组内存储有第m个视频段的节点中选择一个目标节点建立连接,从目标节点中下载第m个视频段;
第二下载模块82,用于在未接收到确认信息后,依次向第m个节点分组的前一个节点分组内的各个节点发送查询第m个视频段的请求,直到下载得到第m个视频段;
其中,m为大于等于1的整数。
具体地,装置还包括:
查询模块83,用于向目标节点发送查询第m+j个视频段请求,使得目标节点在存储有第m+j视频段时,向请求节点返回确认信息,j的初始值为1;
第三下载模块84,用于在接收到目标节点返回的确认信息后,从目标节点下载第m+j个视频段,j+1,通知查询模块执行向目标节点发送查询第m+j个视频段请求,使得目标节点在存储有第m+j视频段时,向请求节点返回确认信息的操作。
第四下载模块85,用于在未接收到目标节点返回的确认信息时,获取目标节点的链接表,并根据链接表获取第m+j个视频段;
第五下载模块86,用于在未接收到目标节点返回的确认信息时,向第m+j个节点分组内的各个节点发送查询第m+j个视频段的请求,直到接收到第m+j个节点分组内下载得到第m+j个视频段。
其中,第四下载模块85包括:
获取单元,用于从链接表中获取存储有第m+j个视频段的节点ID信息;
选择单元,用于根据节点ID信息选择一个最优节点;
下载单元,用于与最优节点建立连接,并从最优节点下载第m+j个视频段。
通过本发明实施例所提供的视频资源查找方法的实现,根据维护的链接表进行视频资源的查找使得查找方法简单而快捷。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种视频资源存储的方法,其特征在于,所述方法包括:
将视频进行分段,得到N个视频段,N为大于等于1的整数;
将多个节点进行分组;
将第m个视频段开始的一或多个视频段存储到第m个节点分组内的各个节点中,m为大于等于1小于等于N的整数。
2.根据权利要求1所述的方法,其特征在于,所述将多个节点进行分组包括:
确定节点分组的分组数和每个节点分组内节点的节点ID的取值范围;
根据节点ID及所述节点分组内节点的节点ID的取值范围将所述多个节点进行分组。
3.根据权利要求1至2任一项所述的方法,其特征在于,每个节点分组内的节点按节点ID的大小顺序排列。
4.根据权利要求1所述的方法,其特征在于,所述将第m个视频段开始的一或多个视频段存储到所述第m个节点分组内的各个节点中,包括:
将所述第m个节点分组内的各个节点依次作为当前节点,并执行如下操作:
计算所述第m个节点分组内的当前节点的剩余空间大小;
判断所述剩余空间大小是否不小于所述第m+j个视频段的大小,m+j小于等于N,
当所述剩余空间大小不小于所述第m+j个视频段的大小时,则将所述第m+j个视频段存储到所述当前节点内,并将j的取值加上1,返回执行计算所述第m个节点分组内的当前节点的空间大小的操作,直到所述剩余空间的大小小于所述第m+j个视频段的大小;
所述j的初始值为0。
5.根据权利要求1所述的方法,其特征在于,当m大于等于2时,所述方 法还包括:
将第1个视频段开始到第m-1个视频段中的一个或多个视频段存储到所述第m个节点分组内的各个节点中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为每一个节点建立一个路由表,所述路由表存储本节点的后继节点的位置信息;和/或
为每一个节点建立一个链接表,所述链接表保存本节点所存储的最后一个视频段的下一个视频段所在节点的节点ID信息。
7.一种视频资源存储的装置,其特征在于,所述装置包括:分段模块、分组模块和存储模块;
所述分段模块,用于将所述视频进行分段,得到N个视频段,N为大于等于1的整数;
所述分组模块,用于将多个节点进行分组;
所述存储模块,用于将所述分段模块得到的第m个视频段开始的一或多个视频段存储到所述分组模块得到的第m个节点分组内的各个节点中,m为大于等于1小于等于N的整数。
8.根据权利要求7所述的装置,其特征在于,所述分组模块包括:
确定单元,用于确定节点分组的分组数和每个节点分组内节点的节点ID的取值范围;
分组单元,用于根据节点ID及所述确定单元确定的节点分组内节点的节点ID的取值范围将所述多个节点进行分组。
9.根据权利要求7至8任一项所述的装置,其特征在于,每个节点分组内的节点按节点ID的大小顺序排列。
10.根据权利要求7所述的装置,其特征在于,所述存储模块包括:
分配单元,用于将所述第m个节点分组内的各个节点依次作为当前节点;
计算单元,用于计算所述第m个节点分组内的当前节点的剩余空间大小;
判断单元,用于判断所述计算单元计算得到的剩余空间大小是否不小于所述第m+j个视频段的大小,j的初始值为0,m+j小于等于N;
第一执行单元,当所述判断单元的结果是所述剩余空间大小不小于所述第m+j个视频段的大小时,则将所述第m+j个视频段存储到所述当前节点内,并将j的取值加上1,通知所述计算单元执行计算所述第m个节点分组内的当前节点的剩余空间大小的操作,直到所述剩余空间的大小小于所述第m+j个视频段的大小。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
补充存储模块,用于当m大于等于2时,将第1个视频段开始到第m个视频段中的一个或多个视频段存储到所述第m-1个节点分组内的所有节点中。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
路由表建立模块,用于为每一个节点建立一个路由表,所述路由表存储所述节点的后继节点的节点ID信息;和/或
链表建立模块,用于为每一个节点建立一个链接表,所述链接表保存本节点所存储的最后一个视频段的下一个视频段所在节点的节点ID信息。
13.一种视频资源查找的方法,其特征在于,所述方法包括:
依次向第m个节点分组内的各个节点发送查询第m个视频段的请求,使得所述第m个节点分组内当前接收到所述请求的节点在自身存储有所述第m个视频段时,向请求节点返回确认信息;
在接收到所述确认信息后,根据所述确认信息从所述第m个节点分组内存储有所述第m个视频段的节点中选择一个目标节点建立连接,从所述目标节点中下载所述第m个视频段;
在未接收到所述确认信息后,依次向第m个节点分组的前一个节点分组内的各个节点发送查询第m个视频段的请求,直到下载得到所述第m个视频段;
m为大于等于1的整数。
14.根据权利要求13所述的方法,其特征在于,所述从所述目标节点中下载所述第m个视频段之后,所述方法还包括:
向所述目标节点发送查询第m+j个视频段请求,使得所述目标节点在存储有所述第m+j视频段时,向所述请求节点返回确认信息;
在接收到所述目标节点返回的确认信息后,从所述目标节点下载所述第m+j个视频段,j+1,返回执行向所述目标节点发送查询第m+j个视频段请求,使得所述目标节点在存储有所述第m+j视频段时,向所述请求节点返回确认信息的操作;
j的初始值为1。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:在未接收到所述目标节点返回的确认信息时,获取所述目标节点的链接表,并根据所述链接表获取所述第m+j个视频段。
16.根据权利要求15所述的方法,其特征在于,所述根据所述链接表获取所述第m+j个视频段包括:
从所述链接表中获取存储有所述第m+j个视频段的节点ID信息;
根据所述节点ID信息选择一个最优节点;
与所述最优节点建立连接,并从所述最优节点下载所述第m+j个视频段。
17.根据权利要求14所述的方法,其特征在于,所述方法还包括:在未接收到所述目标节点返回的确认信息时,向第m+j个节点分组内的各个节点发送查询所述第m+j个视频段的请求,直到下载得到所述第m+j个视频段。
18.一种视频资源查找的装置,其特征在于,所述装置包括:请求模块、第一下载模块和第二下载模块;
所述请求模块,用于依次向第m个节点分组内的各个节点发送查询第m个视频段的请求,使得所述第m个节点分组内当前接收到所述请求的节点在自身存储有所述第m个视频段时,向请求节点返回确认信息;
所述第一下载模块,用于在接收到所述确认信息后,根据所述确认信息从 所述第m个节点分组内存储有所述第m个视频段的节点中选择一个目标节点建立连接,从所述目标节点中下载所述第m个视频段;
所述第二下载模块,用于在未接收到所述确认信息后,依次向第m个节点分组的前一个节点分组内的各个节点发送查询第m个视频段的请求,直到下载得到所述第m个视频段;
m为大于等于1的整数。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
查询模块,用于向所述目标节点发送查询第m+j个视频段请求,使得所述目标节点在存储有所述第m+j视频段时,向所述请求节点返回确认信息,j的初始值为1;
第三下载模块,用于在接收到所述目标节点返回的确认信息后,从所述目标节点下载所述第m+j个视频段,j+1,通知所述查询模块执行向所述目标节点发送查询第m+j个视频段请求,使得所述目标节点在存储有所述第m+j视频段时,向所述请求节点返回确认信息的操作。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:第四下载模块,用于在未接收到所述目标节点返回的确认信息时,获取所述目标节点的链接表,并根据所述链接表获取所述第m+j个视频段。
21.根据权利要求20所述的装置,其特征在于,第四下载模块包括:
获取单元,用于从所述链接表中获取存储有所述第m+j个视频段的节点ID信息;
选择单元,用于根据所述节点ID信息选择一个最优节点;
下载单元,用于与所述最优节点建立连接,并从所述最优节点下载所述第m+j个视频段。
22.根据权利要求19所述的装置,其特征在于,所述装置还包括第五下载模块,用于在未接收到所述目标节点返回的确认信息时,向第m+j个节点分组内的各个节点发送查询所述第m+j个视频段的请求,直到接收到所述第m+j个 节点分组内下载得到所述第m+j个视频段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101354391A CN102202228B (zh) | 2011-05-24 | 2011-05-24 | 视频资源存储、查找的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101354391A CN102202228B (zh) | 2011-05-24 | 2011-05-24 | 视频资源存储、查找的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102202228A true CN102202228A (zh) | 2011-09-28 |
CN102202228B CN102202228B (zh) | 2012-11-14 |
Family
ID=44662557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101354391A Expired - Fee Related CN102202228B (zh) | 2011-05-24 | 2011-05-24 | 视频资源存储、查找的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102202228B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932693A (zh) * | 2012-11-09 | 2013-02-13 | 北京邮电大学 | 一种预取视频段的方法和装置 |
CN105704042A (zh) * | 2015-12-31 | 2016-06-22 | 华为技术有限公司 | 报文处理方法、bng及bng集群系统 |
CN106658228A (zh) * | 2015-10-29 | 2017-05-10 | 北京国双科技有限公司 | 视频时长的划分方法及装置 |
CN110311953A (zh) * | 2019-05-24 | 2019-10-08 | 杭州网络传媒有限公司 | 一种媒体资料上传与存储系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1901495A (zh) * | 2006-06-28 | 2007-01-24 | 华中科技大学 | 对等网络点播系统中的环状节点组织方法 |
WO2008041173A2 (en) * | 2006-10-02 | 2008-04-10 | Nokia Corporation | Method system and devices for network sharing or searching of resources |
CN101217565A (zh) * | 2008-01-04 | 2008-07-09 | 华中科技大学 | 一种对等网络视频共享系统中分类检索的网络组织方法 |
CN101710902A (zh) * | 2009-12-10 | 2010-05-19 | 北京邮电大学 | 一种无结构p2p网络及其数据查询方法和索引更新方法 |
-
2011
- 2011-05-24 CN CN2011101354391A patent/CN102202228B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1901495A (zh) * | 2006-06-28 | 2007-01-24 | 华中科技大学 | 对等网络点播系统中的环状节点组织方法 |
WO2008041173A2 (en) * | 2006-10-02 | 2008-04-10 | Nokia Corporation | Method system and devices for network sharing or searching of resources |
CN101217565A (zh) * | 2008-01-04 | 2008-07-09 | 华中科技大学 | 一种对等网络视频共享系统中分类检索的网络组织方法 |
CN101710902A (zh) * | 2009-12-10 | 2010-05-19 | 北京邮电大学 | 一种无结构p2p网络及其数据查询方法和索引更新方法 |
Non-Patent Citations (2)
Title |
---|
FUHONG LIN ET AL: "Constructing a Churned Peer-to-Peer Network for Efficient Search", 《2009 WASE INTERNATIONAL CONFERENCE ON INFORMATION ENGINEERING》 * |
FUHONG LIN ET AL: "Constructing a Churned Peer-to-Peer Network for Efficient Search", 《2009 WASE INTERNATIONAL CONFERENCE ON INFORMATION ENGINEERING》, 31 December 2009 (2009-12-31), pages 271 - 274 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102932693A (zh) * | 2012-11-09 | 2013-02-13 | 北京邮电大学 | 一种预取视频段的方法和装置 |
CN102932693B (zh) * | 2012-11-09 | 2015-06-10 | 北京邮电大学 | 一种预取视频段的方法和装置 |
CN106658228A (zh) * | 2015-10-29 | 2017-05-10 | 北京国双科技有限公司 | 视频时长的划分方法及装置 |
CN105704042A (zh) * | 2015-12-31 | 2016-06-22 | 华为技术有限公司 | 报文处理方法、bng及bng集群系统 |
CN110311953A (zh) * | 2019-05-24 | 2019-10-08 | 杭州网络传媒有限公司 | 一种媒体资料上传与存储系统及方法 |
CN110311953B (zh) * | 2019-05-24 | 2022-08-09 | 杭州网络传媒有限公司 | 一种媒体资料上传与存储系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102202228B (zh) | 2012-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhuo et al. | Contact duration aware data replication in delay tolerant networks | |
US8000267B2 (en) | Network routing with path identifiers | |
Massoulie et al. | Randomized decentralized broadcasting algorithms | |
JP5058135B2 (ja) | 端末装置 | |
CN100518305C (zh) | 一种内容分发网络系统及其内容和服务调度方法 | |
CN103843297B (zh) | 用于为实时流服务提供和选择候选节点的方法、装置和系统 | |
CN107404530B (zh) | 基于用户兴趣相似度的社交网络协作缓存方法及装置 | |
CN105049359A (zh) | 用于分布式路由表查找的技术 | |
JP6366291B2 (ja) | 並列コンピューティング・システムにおける全対全メッセージ交換のための方法、システム、計算ノード、およびコンピュータ・プログラム(並列コンピューティング・システムにおける全対全メッセージ交換) | |
US20110208828A1 (en) | Node apparatus and computer-readable storage medium for computer program | |
CN102202228B (zh) | 视频资源存储、查找的方法及装置 | |
CN104734962B (zh) | 一种非结构化p2p网络的资源搜索方法 | |
US20120147749A1 (en) | Routing apparatus and method for mobile ad-hoc network | |
JP2009225445A (ja) | P2pモードで記憶されたコンテンツにアクセスするようにピア識別子を得る要求を管理する方法、それに関連する管理装置及びネットワーク装置 | |
Li et al. | Content popularity and node level matched based probability caching for content centric networks | |
CN102947821A (zh) | 索引服务器及其方法 | |
KR101334383B1 (ko) | 상황 인식 네트워크에서 서비스 경로를 구성하는 방법 및 장치 | |
CN103179191B (zh) | P2p网络管控装置及p2p网络管控系统 | |
CN106970965A (zh) | 一种新型互联网资源搜索方法 | |
Wang et al. | MixCo: Optimal cooperative caching for mobile edge computing in fiber-wireless access networks | |
CN112995032B (zh) | 一种基于受限最宽路径的段路由流量工程方法及装置 | |
US20140143274A1 (en) | Object placement apparatus, object placement method and program | |
Gan et al. | Unraveling the impact of users’ interest on information dissemination in wireless networks | |
CN102739550A (zh) | 基于随机副本分配的多存储器流水路由体系结构 | |
JP5595342B2 (ja) | 複数経路探索方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121114 Termination date: 20200524 |