一种无线网络中基于网络编码的缓存替换方法与流程

文档序号:21201339发布日期:2020-06-23 19:21阅读:277来源:国知局
一种无线网络中基于网络编码的缓存替换方法与流程

本发明涉及网络编码下的缓存管理技术领域,具体涉及一种无线网络中基于网络编码的缓存替换方法。



背景技术:

传统无线网络中节点仅对信息进行“存储-转发”,难以达到无线网络传输吞吐量上界和高带宽利用率。ahlswede等人在2000年首先提出网络编码(networkcoding,nc)的概念,它改变了传统通信网络中信息的处理和传输方式,允许网络中间节点对接收到的信息进行编码处理后再转发。基于网络编码的重传编码包的有效性很大程度上受参与编码的原始包数量(即编码程度)和编码机会的影响。因不同流之间的速率不匹配将大幅度减少网络编码机会,或因路由协议的特性,包丢失和路径延迟的差异等,可能导致中间节点没有足够的数据包参与编码。就下游端而言,由于编码包通常只在部分接收节点处可解,当下游接收到大量不可解编码包,传统方法大多将下游解码失败的编码包视为无用数据包直接丢弃,该方式降低了解码效率的同时浪费了潜在的解码机会。目前相关研究聚焦于合理的节点缓存机制和调度策略,均衡缓存开销和传输成本的同时,在中间节点尽可能的增加参与编码的数据包,获得更多的编码机会。而在下游节点缓存管理暂时不可解编码包,挖掘其潜在的解码机会,最大限度发挥网络编码的优势,有效地提高网络的吞吐量和数据包传输效率。这些缓存管理方案都将节点缓存空间视为无限大的,并没有对缓存的数据包进行有效的替换或者删除操作。造成节点缓存空间存储大量无用的缓存数据包,增加了节点的缓存开销,同时降低了真个缓存系统的缓存效率。

针对上诉问题,考虑结合lru缓存替换算法和网络编码本身的技术特点,合理的对网络节点缓存空间中的数据包进行有效的删除和替换。缓存时间和数据包命中率是lru算法所关注的指标,而缓存数据包在中间节点被编码生成编码包,在下游节点用来成功解码编码包则是网络编码的技术特点。将两者结合提出一种基于网络编码技术的缓存替换算法。

在实际的无线网络节点当中,缓存空间并不是无限大的,中间节点需要根据一定的缓存替换策略决定继续保留哪些数据包,并及时替换一些无用的缓存数据包。缓存替换策略与节点的编码机会和缓存效率有很大的关系,只有通过合理的缓存替换方法,才能充分发挥缓存数据包的作用,凸显网络编码的性能优势,提高无线网络的性能。对于下游节点而言,缓存数据包用于编码包的解码操作,缓存数据包的命中率随着缓存情况发生改变。因此合理的缓存替换策略对于缓存空间命中率的影响很大。



技术实现要素:

为了解决上述问题,本发明提供一种一种无线网络中基于网络编码的缓存替换方法。

一种无线网络中基于网络编码的缓存替换方法,包括以下步骤:

s1、源节点发送数据流时,先向中间节点和下游节点发送一个构建树的请求,成功构建树后,根据每棵树所遍历的节点来寻找编码节点,编码节点向下游节点发送自己的身份信息和将要流经的数据流数量信息;

s2、下游节点根据编码节点发送的信息监听源节点,从源节点发出的数据流中选择有解码价值的数据包进行缓存,给每个缓存的数据包设置一个缓存时间,并将缓存的数据包信息反馈给中间节点;

s3、中间节点根据下游节点的反馈信息,从源节点发出的数据流中选择有编码价值的数据包进行缓存,并给每个缓存的数据包设置一个缓存时间,当出现编码机会时,利用缓存的有编码价值的数据包通过xor运算生成编码包,并将编码包转发给下游节点;

s4、当下游节点收到编码包时,使用缓存的有解码价值的数据包对收到的编码包进行解码,当缓存数据包成功解码编码包时被存入队首;当缓存数据包未能成功解码编码包时,将该缓存数据包被存入队尾,监听到新的缓存数据包时将其删除并将新的数据包存入队首。

进一步的,中间节点时刻监控缓存空间使用情况,并判断自身缓存空间是否已满,当缓存空间未满时,则执行中间节点的缓存替换操作;当缓存空间已满时,则执行中间节点的缓存删除操作;

所述中间节点的缓存替换操作包括:中间节点将已经参与过编码且缓存时间最长的数据包替换为新的有价值数据包,如果没有替换对象则直接缓存新数据包。缓存数据包的作用是让中间节点能够就近的使用数据包,不用再去其他地方请求;缓存替换操作是为了保证缓存数据包的实时更新,提高节点请求时的命中率,减少其他不必要的开销,提高整个系统的效率;此外,中间节点的缓存替换操作考虑了网络编码的编码条件,在中间节点替换参与过编码的数据包,能够保证足够的编码机会并提高节点缓存效率;所述中间节点的缓存删除操作包括:删除部分参与过编码且缓存时间较长的数据包。进行中间节点的缓存删除操作的好处:由于节点的缓存空间是有限的,把一些已经过时不用的数据删除掉,给新的数据腾出缓存空间,保证中间节点有足够的缓存空间维持正常工作。

进一步的,下游节点时刻监控缓存空间使用情况,当缓存空间未满时,则执行下游节点的缓存替换操作;当缓存空间已满时,则执行下游节点的缓存删除操作;

所述下游节点的缓存替换操作包括:将未能成功解码且缓存时间最长的数据包替换为新的有价值数据包,如果没有替换对象则直接缓存新数据包。缓存数据包的作用是让下游节点能够就近使用数据包,不用再去其他地方请求,提高效率;缓存替换操作在下游节点替换未能成功解码的数据包,是为了保证缓存数据包的实时更新,提高节点请求时的命中率,减少其他不必要的开销,保证节点的解码效率,提高整个系统的效率;所述下游节点的缓存删除操作包括:下游节点将部分未能成功解码且缓存时间较长的数据包直接删除。进行下游节点的缓存删除操作的好处:由于下游节点的缓存空间是有限的,把已经过时不用的数据包删除掉,给新的数据包腾出缓存空间,保证下游节点有足够的缓存空间维持正常工作。

进一步的,一个下游节点缓存的有解码价值的数据包包括两类:一类是该下游节点邻域内节点发送的数据包,如果监听到的数据包中存在经过编码节点的流中的数据包,那么该数据包就是有解码价值的数据包将被缓存,其他监听到的数据包为无效数据包;另一类是该下游节点本身发送的数据包,如果该下游节点发送的数据包和经过编码节点的数据流反向,则该类数据包就是有解码价值的数据包,将被缓存;反之为无效数据包。

进一步的,中间节点和下游节点判断自身缓存空间是否已满包括:中间节点和下游节点的缓存空间容量为m,节点缓存的数据包容量为u=∑pi,当u<m时,即∑pi<m,缓存空间未满,当u=m时,即∑pi==m,缓存空间判断为已满,其中,u表示所有缓存数据包所占的容量,pi表示单个缓存数据包的大小。

本发明的有益效果:

1.本发明方法考虑到节点缓存空间是有限大的,根据缓存空间的实际情况执行替换操作,保证节点正常工作,减少缓存开销。

2.本发明方法基于网络编码的应用场景,替换策略考虑了网络编码的编解码条件,在中间节点替换参与过编码的数据包,保证足够的编码机会并提高节点缓存效率;在下游节点替换未能成功解码的数据包,保证节点的解码效率。

3.本发明考虑每个缓存数据包的缓存时间,结合网络编码本身特点,提高缓存数据包的命中率。

附图说明

下面结合附图和具体实施方式对本发明做进一步详细的说明。

图1为本发明实施例的网络模型;

图2为本发明实施例的流程图;

图3为本发明实施例的数据流遍历生成树示意图;

图4为本发明实施例的缓存数据包判断示例;

图5为本发明实施例的中间节点缓存替换操作示意图;

图6为本发明实施例的下游节点缓存替换操作示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的技术思路:源节点通过中间节点向下游节点发送数据包,中间节点利用缓存数据包提供编码机会,下游节点利用缓存数据包提供解码机会。替换策略针对缓存的数据包进行合理的替换或者删除操作,保证节点缓存空间正常工作并提高缓存效率。如图1所示,多流网络场景包括多个源节点s、多个中间节点d和多个下游节点r,本发明不对节点的数量进行限制,其中,源节点表示为s={si|i∈{1,2,...,n}},si表示源节点,n表示源节点个数,n≥1。并有如下假设:

(1)源节点在下游节点的监听范围之内;

(2)节点能时刻监控缓存空间使用情况。

图2为本发明提出的基于缓存的网络编码重传方法的流程图,具体包括以下步骤:

源节点发送数据流时,先向网络中的中间节点和下游节点发送一个构建树的请求,成功构建树后,根据每棵树所遍历的节点来寻找编码节点,编码节点向下游节点发送自己的身份信息和将要流经的数据流数量信息。

构建树的具体实现方式包括:源节点发送数据流时,每个源节点向网络中的中间节点和下游节点发送构建树请求,将所有出度为零的节点当做叶子节点,从每棵树的叶子节点开始,向自己的上一节点发送包含自身身份信息和跳数信息的反馈信息,收到反馈信息的节点将自身信息加入到反馈信息后发送给自身的上一跳节点,直到反馈信息到达源节点,生成树就构造完成。

根据每棵树所遍历的节点寻找编码节点具体包括:同时出现在两个及以上树中的非叶子节点为编码节点。如图3所示,源节点1和4发送构建树请求,生成生成树a和生成树b,其中节点3和7分别出现在树a和树b中且都不是叶子节点,所以节点3和7被判断为编码节点。

下游节点根据编码节点发送的信息监听源节点,从源节点发出的数据流中选择有解码价值的数据包进行缓存,给每个缓存的数据包设置一个缓存时间,并将缓存的数据包信息反馈给中间节点。

其中,一个下游节点缓存的有解码价值的数据包包括两类:一类是该下游节点邻域内节点发送的数据包,如果监听到的数据包中存在经过编码节点的流中的数据包,那么该数据包将被缓存,其他监听到的数据包被视为无效数据包。另一类是该下游节点本身发送的数据包,如果该下游节点发送的数据包和经过编码节点的数据流反向,则该类数据包被缓存;反之为无效数据包。

根据图3中的生成树可得如图4所示网络拓扑图,如图4所示,有a、b、c三条数据流经过编码节点3,节点1向编码节点3发送数据流a和b,节点4向编码节点3发送数据流c,节点1和4同时又有来自编码节点3的相反流,节点1和4发送的数据包将被判断为有解码价值的数据包被节点1和4自身缓存起来。因编码节点3将b和c两条数据流进行编码转发,节点1和4可利用自身发送的数据包进行有效的解码操作。

下游节点如何对数据流进行监听、处理,并反馈给中间节点:节点在网络中移动时,可能会进入其他节点通信范围重叠的区域,这样的节点在收、发控制信息或数据包时,邻居节点可以对其进行监听,进而发现有利于编解码的信息。下游节点在收到源节点的构建树请求后就将源节点纳入监听范围,对源节点发送的数据流进行持续的监听,并根据编码节点所给数据流信息,对监听到的从源节点发出的数据流中选择有解码价值的数据进行缓存。

中间节点根据下游节点的反馈信息,从源节点发出的数据流中选择有编码价值的数据包进行缓存,并给每个缓存的数据包设置一个缓存时间t={ti|i∈{1,2,...,n}},ti表示每个缓存数据包的缓存时间,n表示缓存数据包的数量,当出现编码机会时,中间节点利用xor运算将这些有编码价值的缓存数据包生成编码包,并将编码包转发给下游节点。

所述缓存时间t用于判断数据包的缓存时间长短,设置缓存时间的具体描述如下:下游节点每成功监听一个数据包时,先判断是否为有解码价值的数据包,若为有解码价值的数据包就将其缓存,并将此数据包的缓存时间t置为零并存入缓存队列,将之前缓存的数据包的缓存时间t=t+1。

中间节点时刻监控缓存空间使用情况,并判断自身缓存空间是否已满,当缓存空间未满时,则执行中间节点的缓存替换操作;当缓存空间已满时,则执行中间节点的缓存删除操作。

所述中间节点的缓存替换操作包括:中间节点继续根据下游节点反馈信息缓存有编码价值的数据包,中间节点将已经参与过编码且缓存时间最长的数据包替换为新的有编码价值的数据包。中间节点的缓存替换操作考虑了网络编码的编码条件,在中间节点替换参与过编码的数据包,能够保证足够的编码机会并提高节点缓存效率。如图5所示,数据包3编码包传输后被存入队列末尾,当有新的数据包被缓存时,将队列末尾的数据包3删除并将新的数据包6存入队首;如果没有替换对象则直接缓存新数据包。

所述中间节点的缓存删除操作包括:按缓存时间长短删除部分参与过编码且缓存时间最长的数据包,保证中间节点有足够的缓存空间维持正常工作。

当下游节点收到编码包时,使用缓存的有解码价值的数据包对收到的编码包进行解码。如图6所示,当缓存数据包成功解码编码包时将该缓存数据包存入队首;当缓存数据包未能成功解码编码包时,将该缓存数据包存入队尾,监听到新的缓存数据包时将队尾的缓存数据包删除并将新的缓存数据包存入队首。

下游节点时刻监控缓存空间使用情况,当缓存空间未满时,则执行下游节点的缓存替换操作;当缓存空间已满时,则执行下游节点的缓存删除操作。

所述下游节点的缓存替换操作包括:将未能成功解码且缓存时间最长的数据包替换为新的有价值数据包,如果没有替换对象则直接缓存新数据包,在下游节点替换未能成功解码的数据包,保证节点的解码效率;所述下游节点的缓存删除操作包括:下游节点将部分未能成功解码且缓存时间最长的数据包直接删除,保证下游节点有足够的缓存空间维持正常工作。

中间节点和下游节点判断自身缓存空间是否已满的具体实现方式包括:中间节点和下游节点的缓存空间容量均为m,节点缓存的数据包容量为u=∑pi,当u<m时,即∑pi<m,缓存空间未满,当u=m时,即∑pi==m,缓存空间判断为已满,其中,u表示所有缓存数据包所占的容量,pi表示单个缓存数据包的大小。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

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