发明内容
有鉴于此,本发明的目的在于提供一种路由方法,尤其涉及一种基于背压策略的编码感知路由方法,以解决所述动态时变网络中的路由问题。
为达到上述目的,本发明提供如下技术方案:
一种基于背压策略的编码感知路由方法,其特征在于:节点接收来自一个或多个数据流的数据包,更新各数据流的积压时间;根据第一预定义规则,从一个或多个数据流中寻找编码组合,并基于编码组合编码数据包;根据第二预定义规则,发送所述经编码的数据包。
优选地,所述节点接收来自一个或多个数据流的数据包还包括判断数据包类型,若是未编码数据,直接缓存入队列中;若是经编码的数据,则先解码后再缓存如队列中。
优选地,所述数据流的积压时间是指数据包从入队开始到更新时间点的时间长度。
优选地,所述第一预定义规则为分别以多个数据流中的每一个数据流作为主发送流,其他数据流作为次发送流,从编码机会矩阵中获得最佳编码组合。
优选地,所述从编码机会矩阵中获得最佳编码组合包括使得形成最大团的组合为最佳组合。
优选地,所述第二预定义规则包括以节点中编码率、节点间队列积压差和数据最大积压时间为参数,计算链路权值。
优选地,所述计算链路权值包括计算节点间主发送流c在任意ab节点间的权值:
其中,i∈M表示数据流i属于数据流集合M,j∈N表示j属于数据流i的下一跳节点集合N,
表示在节点a以c为主流,f
i为次流的编码率,
表示数据流c在t时刻ab节点间的队列积压差,
表示链路(a,b)中数据流c的最长积压时间。
优选地,所述第二规则为,选择权重最大的链路发送所述最佳编码组合的编码数据,权重为:
其中,a∈N,b∈N分别表示节点a和b属于节点集合N,μ
ab(t)表示t时刻链路ab间的传输速率,
优选地,所述链路ab上数据流c在t时刻的积压差
其中
为数据流c在节点a中缓存的数据包的数量,
为数据流c在节点b中缓存的数据包的数量。
优选地,所述链路ab上数据流c在t时刻的最大积压时间
其中
表示数据流c的最大积压时间。
本公开中的方法利用中继节点实时计算最佳编码组合和最大路由权值方法,圆满地解决了动态时变网络中的编码感知路由技术问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
下面结合说明书附图对本发明进行进一步的说明。
图1是本发明的网络模型。图1中,包括多个节点组成的无线网络100。无线网络100中包括节点s、a、b、c、d、e。一般情况下,节点之间可以通过空中接口或其他通信链路进行单向、双向通信。比如图1中所示,节点b,节点c,节点d,节点e,节点s均可与节点a进行双向通信,未示出的还可以包括节点b,节点c,节点d,节点e,节点s相互之间,或者与其他节点之间的通信链路。任一节点也可以具有中继转发功能,使得不相邻的节点也可以经由多跳节点的辅助进行通信。节点也可以具有侦听的能力,即可以从网络中接收目的节点不是自己的数据。
在图1中,节点通常包括至少三类。在一次通信过程中,发送数据的节点可以被称为源节点,该数据的目标节点可以被称为目的节点,通信过程中,数据所流经的除源节点和目的节点以外的节点可以被称为中继节点/转发节点。从源节点发起数据开始,到目的节点接收数据为止,数据所经历的节点及节点的连线可以串接为一路径,在路径上传输的数据可以被称为数据流。
仍参考图1,举例示意数据流通信的整体概念。在任意时刻t-1,节点s向目的节点b发送数据流f1。在时刻t,该数据流到达节点a,节点a接收该数据。此时,如节点a还接收到或者缓存有其他数据流的数据包,为了增加传输效率,可以将其他数据流与t时刻接收到的数据流f1一起进行编码,并通过预定义的规则、算法等条件,选择最符合条件的链路,在t+n(n>0)时刻节点a将编码后的数据包发送至目的节点b(或下一跳中继节点)及其他节点c、d、e。
图2描述了本发明一优选实施例的方法流程。如图中所示,在步骤201中,节点接收各个数据流发送过来的数据包,对数据包进行入队处理,更新数据包的积压时间。随后,在步骤203,节点根据第一预定义规则,从数据流中根据编码机会确定最佳编码组合,并对最佳编码组合中的数据进行编码。应当注意的是,编码的时间点可在多个位置进行,比如在后续步骤205中也可以进行。在步骤205中,节点需要根据第二预定义规则,选取最佳的路径,发送编码后的数据包。
借助图1所示的系统,参考图3所述又一实施例的流程框图。在数据流处理过程中,每个节点都有对应各个数据流的缓存队列。假定节点s在t-1时刻向一或多个目的节点发送数据包,形成多个数据流f
i(i=1,2,...,m)。在步骤301中,节点a在t时刻接收所述的节点s发送的数据包。步骤303中,对于节点a而言,接收到数据包后,需要判断该所接收到的数据包类型,比如,确定该数据包是否是经过编码的数据包P
coded,若是P
coded,则如步骤305所示,将该接收到的数据包先行解码,从中恢复出数据流f
i的数据包,然后将其存入对应的缓存中;若确定该数据包是未经编码的数据包P
native,则直接将其存入对应的缓存中。步骤307,节点a将接收到的数据包缓存后,更新缓存中每个数据流f
i中数据包的最大积压时间
所述最大积压时间为每个数据流队首数据包从入队开始至t时刻的积压时间。
在步骤309中,节点a还需要确定自身是否是数据包的目的节点,若节点a是目的节点,则直接接收并处理缓存中的该数据包,结束流程。若节点a不是数据包的目的节点,则可以将其与其他目的节点的数据包按照数据流进行标记或分类等类似处理,以便于按照数据流的方式进行后续处理。
在节点a处,将如图中步骤311所示,循环地以每个数据流作为主流,其他数据流作为次流,获取多个数据流的编码机会。编码机会可以根据现有技术和定义进行判断,在此发明中不再赘述。在具有编码机会的数据流组合中,依照形成最大团的集合,选定最佳编码组合,并且在此基础之上,进行多个数据流的编码,如步骤313所示。
步骤315,计算节点a与相邻节点(如节点b,节点c,节点d,节点e)之间链路的权重,然后选取符合预定义条件的链路作为该最佳编码组合数据包的发送路由。最后,步骤317,根据最佳编码组合将该最佳编码组合所对应的所有数据包进行编码,并在选择的链路上发送该编码后的数据包,并在步骤319中处理数据包,将数据包发送至链路上。
更具体地,结合图1的网络模型,根据本发明的优选实施例,假定节点s向节点a发送数据包,形成数据流f1。在节点a处,接收到数据流f1的数据包后,判断数据包的类型,解码编码包后将数据入队或者直接将原始包入队,并更新各个数据流的最大积压时间。随后,节点a对于链路ab、ac、ad和ae上对应的数据流f1、f2、f3和f4,按照顺序依次/循环地将各链路的数据流作为主发送流,其余数据流为次发送流,分别判断主发送流与其他次发送流之间是否存在编码机会,并寻找最大化编码增益的最佳编码组合。
根据本发明的又一优选实施例,假定节点s节点向节点a发送数据包,形成数据流f1。在节点a,接收到数据流f1的数据包,判断数据包的类型,解码编码包后将数据入队或者直接将原始包入队,并更新各个数据流的最大积压时间。随后,节点a对于链路ab、ac、ad和ae上对应的数据流f1、f2、f3和f4,按照顺序依次/循环地将各链路的数据流作为主发送流,其余数据流为次发送流,分别判断主发送流与其他次发送流之间是否存在编码机会。其中,节点a根据侦听节点b、c、d和e缓存数据包的情况分别判断主发送流与次发送流之间是否存在编码机会,若存在,说明主发送流的数据包和次发送流的数据包可以进行异或(XOR)操作,然后节点a根据各数据流之间编码机会情况寻找最大化编码增益的最佳编码组合,流程如图4所示。
参考图5a,图中所示为根据各数据流判断编码机会的示例,因判断编码机会是现有技术,在此略过。在图5a中,矩阵中的值1代表不同数据流之间存在编码机会,可以将其数据包编码在一起,值0代表不同数据流之间不存在编码机会,无法将其数据包一起编码。矩阵中的f
1、f
2、f
3、f
4分别对应于节点b,节点c,节点d和节点e要接收的数据流。从图中可以看出,矩阵为对称矩阵,数据流f
1与数据流f
2、数据流f
3和数据流f
4存在编码机会,数据流f
2与数据流f
4存在编码机会。将存在编码机会的节点连线,转换为图5b中所示的编码图。根据图5a或图5b,可以罗列出至少以下几种编码组合:
得出编码组合以后,将数据流按照符合图5b中最大团的编码组合进行编码,即要寻找的最佳编码组合,如图中所示的
进一步地,在本发明的又一优选实施例中,如图1所示,对于节点a的任一主发送流,在t时刻,节点a将本节点与邻居节点b之间的队列积压差Q
ab(t)、编码增益B
ab(t)和各流的积压时间
作为权重参数,计算该节点与各邻居节点的权重值,以便选取最佳传输链路。
继续参考图1,示例本发明的最佳链路选择方案。具体地,在t时刻,若存在数据流f
1、f
2、f
4的最佳编码组合,在节点a处,先选定为主流,f
2和f
4为次流进行组合。首先,定义节点a与节点b在t时刻的队列积压差为
其次,定义f
2和f
4分别与f
1组合编码的编码增益分别为
和
分别表示,在ac链路上,f
1与f
2组合编码所带来的编码增益和在ae链路上,f
1与f
4组合编码所带来的编码增益。它实际上可以表示,数据流f
1能够搭载f
2和f
4的数据量;基于此得出各自的编码率为
和
分别表示不同数据流的可搭载数据量与节点a与节点b之间队列积压差值的比值。于是,以f
1为主流,其他流为次流的系统总编码增益为
其中,i∈M表示数据流i属于次流集合M,j∈N表示j属于数据流i的下一跳节点集合N。
考虑到某些数据流积压时间过长而导致系统时延增加,因此将每个数据流的积压时间Ti作为参数,来衡量每条数据流的优先级。
例如,在t时刻,链路(a,b)中流f1的最长积压时间为:
其中,t是当前时刻,
表示缓存数据流f
1的队列中首个数据包的入队时间,根据队列的FIFO原则,队首数据包的积压时间最长。
则计算t时刻链路(a,b)中数据流c的权重为
其中,i∈M表示数据流i属于数据流集合M,j∈N表示j属于数据流i的下一跳节点集合N,为
表示在节点a,以c为主流,f
i为次流的编码率,
表示数据流c在t时刻ab节点间的队列积压差,
表示链路(a,b)中数据流c的最长积压时间。
进一步地,在节点a中,分别计算以各数据流作为主发送流,其他流作为次发送流的最佳编码组合的权重。链路(a,b)中权重最大的数据流组合如下表示:
其中,c∈M表示数据流c属于数据流集合M。
综上,节点在最佳编码组合范围内,计算出分别以其中一个数据流为主流,其他数据流为次流下各种数据流组合的权重值。基于此权重值,再通过t时刻链路传输速率μab(t)进一步筛选,选择权重最大的链路Lmax发送数据包。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。