一种基于网络编码的D2D视频分发和预缓存方法与流程

文档序号:11693432阅读:526来源:国知局
一种基于网络编码的D2D视频分发和预缓存方法与流程

本发明属于多跳d2d网络的数据传输与缓存领域,尤其是一种无线移动多跳d2d网络中的视频数据分发和预缓存方法。



背景技术:

移动流媒体业务的快速发展使得传统基于纯基站接入的流媒体架构模式难以满足日益增长的流媒体带宽需求,制约着移动流媒体业务的大规模应用推广,并严重影响了移动流媒体业务的服务质量与可靠性。为此人们提出了利用d2d通信技术卸载蜂窝流量,通过在网内d2d方式分享视频数据的方法,来缓解基站的压力。

为了提高移动用户在附近的终端缓存中找到感兴趣的视频文件并成功传输的概率,一个好的预缓存策略对于这样的移动缓存网络来说是非常重要的,即根据网络的具体状态确定是否决定缓存某段经过设备的视频数据。

预缓存策略在提高本地缓存命中率方面研究,学术界和业界对此都非常关注,在p2p和ccn网络中已有不少研究,其中也不乏基于网络编码的预缓存策略。liuwai-xi,yus,qingh等人在multisourcedisseminationincontentcentricnetworking[c]中提出了一种ccn中基于网络编码的缓存策略,也就是ccn中的每个网络缓存节点缓存网络编码块,并在文章“网络编码改善ccn的缓存效率的研究[j]”中给出了数学分析和计算机仿真实验方式的验证,证明了网络编码其带来的增益。当该方法采用的是独立缓存的策略,所以对于缓存冗余度并没有很好的控制,在极端情况下有可能会大量换同类文件块的编码,从而大量浪费缓存空间导致缓存效果不太好。

目前针对d2d通信支持的预缓存策略已有研究,不过直接基于d2d的预缓存的研究较少。jiangj,zhangs,lib,等人在maximizedcellulartrafficoffloadingviadevice-to-devicecontentsharing[j]中提出了一种的d2d协作式预缓存策略,大概思想是每个设备维持一张邻居设备缓存表,用于记录邻居设备缓存的内容块信息,并采用流行度的方式对每个个消息块进行划分缓存优先级,优先缓存流行的视频消息块,在邻居设备组建的缓存空间内采用lfu替换方案。并且采用了传输干扰感知方法提高了缓存效果,但该方案只是针对于单跳的d2d网络,并没有考虑缓存冗余度的控制,且设备存储的数据块并没有经过编码,所以其在抗移动性方面并不是太好。

为了解决以上问题,本发明提出了一种具有抗移动性的多跳d2d场景下的分发和预缓存方法。可以有效的降低无线网络中缓存的冗余程度,并且拥有较好缓存命中率,同时适用于动态变化的实际场景。



技术实现要素:

本发明旨在解决以上现有技术的问题。提出了一种有效地降低无线网络中缓存的冗余程度,在满足网络qos下达到低内容中断概率的需求,提高网络的内容交付能力,同时适用于动态变化的实际场景的方法。本发明的技术方案如下:

一种基于网络编码的d2d视频分发和预缓存方法,其包括以下步骤:

1)首先设备终端组成多跳d2d网络,所述多跳d2d网络中每个设备终端节点维持一个邻居缓存信息表,并且每个设备终端节点在一定范围内周期性以洪泛的方式发送自身缓存信息消息到网络中,自身缓存信息消息,附近设备接收到该消息后根据这个消息更新邻居缓存信息表;

2)当用户节点欲获取某视频时,根据邻居缓存信息表向拥有该视频文件的所有种子节点发送视频索取请求,种子节点收到请求后向用户节点发送编码后的视频数据,并添加相关包头信息;

3)视频编码数据vddata在网络中进行多跳传输和缓存,中间节点对其进行再编码、转发和预缓存操作,直到视频编码数据到达目的用户节点。

进一步的,所述步骤1)每个设备终端节点在一定范围内周期性洪泛自身缓存信息消息为cacheinfo,该消息包含自身网络地址信息,自身缓存的视频数据信息。

进一步的,所述cacheinfo消息包至少包括如下字段:

[1]ipaddr:设备自身网络地址:

[2]cmlist:描述设备缓存了哪些id的编码块;

[3]cachenums:描述cmlist中缓存的每个id编码块对应的数目。

进一步的,所述邻居设备收到cacheinfo消息后更新邻居缓存信息表,邻居

信息表包含邻居网络ip地址、缓存记录表和跳数信息。

进一步的,所述步骤2)根据邻居缓存信息表向拥有该视频文件的所有种子节点发送视频索取请求,种子节点收到请求后向用户节点发送编码后的视频数据,并添加相关包头信息具体包括:

21)某个设备想要请求某个视频文件,该设备首先查看自身内存和自己的邻居信息分布表,对于本地内存和邻居设备中没有或者不足的视频编码块,设备向基站获取,对于存于邻居设备的编码块,通过查询邻居缓存信息表,获取设备ip,向该设备发送数据请求req;

22)视频数据持有者设备受到请求后将vddata视频编码片数据上传至d2d网络,请求者设备从d2d网络下载编码数据,当收到足够的编码块后,即可恢复出对应消息id编码块的原始数据,当恢复出所有消息id原始数据块后,即可同过拼接恢复出原始视频文件。

进一步的,所述vddata视频编码片消息至少包含如下字段:

[1]dataid:所传输的视频缓存数据所在文件名和数据分组号的组合;

[2]dst_addr:目标节点ip地址;

[3]coef:所传输的视频缓存数据网络编码系数;

[4]ncdata:id为dataid数据块编码后的数据。

进一步的,所述步骤3)视频编码数据vddata在网络中进行多跳传输和缓存,中间节点对其进行再编码,转发和预缓存操作,直到视频编码数据到达目的用户节点具体包括步骤:

31)中继节点收到视频数据编码包后首先对编码块实行再编码操作,具体操作为:将收到的网络编码包与缓存中该dataid的编码包进行网络编码加运算,并生成一个临时网络编码数据包,并作为待转发的数据包;

32)数据经过中间节点的再编码操作后,执行转发处理操作,既根据一定的自身的路由标记信息决定是否继续转发,直到视频编码数据到达目的用户节点:

33)中继节点收到视频数据编码包后,根据一定的自身的缓存系数决和设备的邻居缓存信息表依照vddata消息缓存判定处理流程进行预缓存;

34)直到视频数据消息到达到达目的用户节点,一次分发缓存过程结束。

进一步的,所述步骤32)具体包括以下步骤:

321)中间转发节点收到视频数据包后,判断自己的ip是否与dstaddr相同。如果相同则说明数据包成功到达源节点,则对数据包进行缓存;如果不同则说明没有到达源节点,进入步骤322)完成中间节点对数据包的下一步转发操作;

322)解析编码包的目的ip地址,查询转发到下一跳节点。

进一步的,所述步骤33)vddata消息预缓存具体包括步骤:

331)中间节点收到vddata数据包后先解析出数据包包头信息中包含的视频编码块编号dataid;

332)根据视频编码块编号dataid查询邻居缓存信息表,取得该dataid编码数据包的权重w,如果该w=0,说明邻居节点和自身都没有缓存该数据编码块,若是w>w,其中w表示网络预设的缓存权重阀值,说明附近设备缓存的该编码快已经足够多,不需再缓存该编码块,否则若w<w,说明包括自己的附近设备缓存的该编码块没有达到稳定该编码块原文件恢复的条件,可以继续缓存,进而根据本地内存占用情况作如下判定:

3331)若内存缓存未满,则取出数据包中的视频缓存数据,将其保存到内存缓存,并进入步骤334);

3332)若内存缓存已满,使用lru替换算法替换缓存,将内存缓存中最旧的视频数据块删除,然后将新的编码数据包存入缓存,并进入步骤314);

334)重新计算该dataid的编码块的权重,重新更新邻居缓存信息表。

本发明的优点及有益效果如下:

本发明提高了缓存命中率:将本专利所提的网络编码分片缓存和普通直接分块缓存情况的对比,由于网络编码恢复文件的无序性导致在有缓存冗余的情况下,即使部分节点电量耗尽或者是由于移动,移出了用户的通信可到达范围,节点只需利用剩余节点缓存的部分编码数据即可恢复出原始视频数据。例如这样的情形,假如一个文件由2个文件块组成,一个设备周围有5个邻居设备(n=5),每个设备的缓存空间为1,且每个设备各缓存了一块数据,这样的存储方式看起来比较有效,而事实上这5各设备可能都存储的是两个文件块中的同一个数据块,即使拥有5份缓存数据,也无法恢复出源文件,网络编码的情况下,由于每个设备存储的都是这两个文件块的线性组合,设备只需从这些设备中的任意2的设备通信即可进行解码,恢复出原始视频数据,也就是说任意3个设备离开设备通信可达范围,用户均可恢复出该视频数据,相比分块情况下而言,恢复成功的概率更高,这样提高了文件恢复成功率,在另一种角度上,也相当于提高了本地缓存命中率,减轻了基站负载。

提高了抗移动干扰性:如图5所示,用户周围有5个节点,用户获取的数据由4块组成,前4块分别存储于1,2,3,4四个节点中,节点5存储了4块中的任意一块,当节点1,2,3,4中任意一个节点离开用户的通信范围,若这个离开的用户缓存的数据与5的不同,用户都无法成功恢复出原始数据。这样的分块缓存方法显然效率不够高,但如果采用网络编码缓存的方式,5个设备存储的是者4块数据的线性组合。任意一个节点离开用户都能从剩余4个节点恢复出源文件。这样明显的系统的抗移动干扰性增强。

本文所提的基于网络编码的协作缓存策略主要包含以下几个创新点:

(1)考虑到传统的基于独立缓存的缓存策略缓存效果的高内容冗余和缓存低效性。本文所提缓存策略结合了局部节点协作缓存的想法,当一个新的数据需要缓存时,综合邻居设备内存空间的缓存情况决定是否缓存该数据,这样提高设备局部通信范围内设备缓存空间的利用率。

(2)考虑到移动网络环境下设备的移动性对于缓存策略带来的干扰,将网络编码和协作缓存巧妙的结合起来,也就是每个设备所缓存的数据是视频数据分块后的线性编码块,由于网络编码的容灾特性,用户能够从采用缓存网络编码块的方法减弱了设备移动对于缓存效果带来的影响。

(3)结合距离越远的设备,越容易离开设备通信范围,缓存的内容对于用户而言越不稳定的想法,提出了缓存权重的概念。也即是距离自己越近(跳数越小)的设备缓存的内容缓存权重系数越大,反之距离自己越远的设备缓存的内容权重系数越小。采用这种策略提高了缓存内容的稳定性。

附图说明

图1是本发明提供优选实施例实施例中设备接收cacheinfo消息的处理流程示意图;

图2是实施例中设备接收视频编码块的处理流程示意图;

图3是实施例中设备接收视频编码块的缓存判定处理流程示意图;

图4为实施例中具体节点分布图;

图5表示网络编码提高缓存效率的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。

本发明解决上述技术问题的技术方案是:

首先介绍以下含义:

缓存权重表达式

w=n0+α1n1+α2n2+α3n3;

注:0<α3<α2<α1<1;

(1)w表示缓存权重,表示网络中缓存的有效缓存编码块数量,缓存权重越大,表示网络中已经缓存的该类编码块块越多,而缓存的可能性越小。n0表示本地内存缓存指定视频编码块的数目,n1表示一跳邻居节点缓存指定编码块的数目,n2表示两跳邻居节点缓存指定段编码块的数目,n3为三跳邻居节点缓存指定编码块的数目。

缓存权重表达式的含义:

距离自己越近的设备缓存的编码块越可靠,所其权重系数越大,既α1>α2>α3。η=w/k缓存冗余度;η表示缓存的冗余度,k为编码窗口。

下面结合附图和实施例对本发明作更进一步的说明。

如图1所示,为本发明的设备广告通知邻居节点自身缓存信息的流程图。cacheinfo缓存信息消息处理流程图。

网络中的每一个节点在一定范围内周期性地洪泛自身缓存信息消息cacheinfo至周围的邻居节点。

缓存信息cacheinfo至少包含以下字段:

设备自身网络地址:

描述设备缓存了哪些id的编码块

描述cmlist中缓存的每个id编码块对应的数目。

设备收到一个cacheinfo消息之后,首先提取消息中的缓存信息,更新本地邻居缓存信息表。

邻居信息表包含邻居网络ip地址和缓存记录表和跳数信息,既包含了信息哪个源文件设备,距离自己几跳,缓存了哪些编码块,如网络地址ip1的设备距离自己2跳,缓存了2.avi_35编码块10块,2.avi_36编码块20块。

缓存信息表更新之后,继续设备对cacheinfo消息的处理。包括检查消息的ttl判断cacheinfo消息的生命周期是否结束。如果ttl0=0,表明cacheinfo信息生命周期结束,终止转发,否则如果ttl>0,继续如下步骤,对cacheinfo消息继续洪泛转发。

将cachinfo消息的ttl字段取出,并将消息该字段重新赋值为ttl-1。

将cacheinfo消息洪泛到上一跳节点除外的所有邻居节点。

下一跳收到cacheinfo消息的邻居节点继续执行以上操作。

如图2为本发明视频数据消息vddata消息传输过程中设备对该消息的处理流程图。消息处理过程包括再编码,转发和预缓存操作,具体过程如下:

31)中继节点收到视频数据编码包后首先对编码块实行再编码操作,具体操作为:

将收到的网络编码包与缓存中该dataid的编码包进行网络编码加运算,并生成一个临时网络编码数据包,并作为待转发的数据包。

32)数据经过中间节点的在编码操作后,执行转发处理操作,既根据一定的自身的路由标记信息决定是否继续转发,具体步骤如下:

321)中间转发节点收到视频数据包后,判断自己的ip是否与dstaddr相同。如果相同则说明数据包成功到达源节点。则进入步骤33),对数据包进行缓存。如果不同则说明没有到达源节点,进入步骤322)完成中间节点对数据包的下一步转发操作。

322)解析编码包的目的ip地址,查询转发路由表,转发给下一跳节点。直到到达目的节点。

33)中继节点收到视频数据编码包后,根据一定的自身的缓存系数和设备的邻居缓存信息表依照如图3所示的vddata消息缓存判定处理流程图进行预缓存,包含如下步骤:

331)中间节点收到vddata数据包后先解析出数据包包头信息中包含的视频编码块编号dataid;

332)根据视频编码块编号dataid查询邻居缓存信息表,取得该dataid编码数据包的权重w(权重表达式w=n0+a1*n1+a2*n2+a3*n3),如果该w=0,说明邻居节点和自身都没有缓存该数据编码块,若是w>w说明附近设备缓存的该编码快已经足够多,不需再缓存该编码块。否则若w<w,说明包括自己的附近设备缓存的该编码块没有达到稳定该编码块原文件恢复的条件,可以继续缓存,进而根据本地内存占用情况作如下判定:

3331)若内存缓存未满,则取出数据包中的视频缓存数据,将其保存到内存缓存,并进入步骤334);

3332)若内存缓存已满,使用lru替换算法替换缓存,将内存缓存中最旧的视频数据块替换掉,并进入步骤314);

334)依据公式1重新计算该dataid的编码块的权重,重新更新邻居缓存信息表。

实施例1

如图4所示,图中有7个网络节点,矩形节点的为user用户节点,6个圆形节点网络中的其他设备节点,圆内的号码为节点标识,圆上方的数字为该节点缓存的user用户欲获取的某数据段的网络编码块数目。

假设预设网络编码窗口k=12,缓存权重表达式w=n0+0.8*n1+0.5n2;缓存阀值w0=12;

由于网络中的每个节点会周期性地交换自身的缓存信息,假设缓存信息洪泛的范围为两跳;所以对于网络中的每个节点,两跳范围内节点的缓存信息对该用户都是已知的。所以n0=0,n1=2+2+2=6,n2=4+4+4=12;

根据预设缓存权重公式目标内容分段数据的缓存权重为w=n0+0.8*n1+0.5n2=4.8+6=10.8<w0,说明局部网络缓存的网络编码数据还没有达到稳定状态,user用户接收到该段数据后还会缓存该段数据的编码块。直到用户user缓存的网络编码块的缓存权重达到w0的标准。

同样对于中继节点4,5,6。其对应的目标数据段的缓存权重w4,w5,w6也均小于缓存权重阀值w0;所以缓存过程中中继节点4,5,6也会缓存该分段的缓存编码数据块。

如图5所示,用户周围有5个节点,用户获取的数据由4块组成,前4块分别存储于1,2,3,4四个节点中,节点5存储了4块中的任意一块,当节点1,2,3,4中任意一个节点离开用户的通信范围,若这个离开的用户缓存的数据与5的不同,用户都无法成功恢复出原始数据。这样的分块缓存方法显然效率不够高,但如果采用网络编码缓存的方式,5个设备存储的是者4块数据的线性组合。任意一个节点用户都能从剩余4个节点恢复出源文件。这样明显的系统的抗移动干扰性增强。

以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1