基于2Dmesh网络的路由多播方法及系统与流程

文档序号:18125552发布日期:2019-07-10 09:53阅读:159来源:国知局
基于2D mesh网络的路由多播方法及系统与流程

本发明涉及片上网络领域,特别是涉及一种基于2D mesh网络的路由多播方法及系统。



背景技术:

2D mesh网络是片上网络中应用最为广泛的一种网络结构,其优点在于网络具有很强的对称性和可扩展能力,路由算法简单易于分析和实现。

2D mesh网络的路由包多播是一个广受关注的问题,寻找一种实现简单、硬件开销小,对网络带宽占用少(高效)的路由多播方法是片上网络设计者的目标。常见的传统路由多播方法主要有基于源节点的多路由包并发式多播和基于包匹配的传输路径上的多播。

但上述两种路由多播方法在应用过程中存在各自的限制和缺点:基于源节点的多路由包并发式多播需要在源节点处产生等同于目标节点个数的多个路由包,由于这些路由包中含有大量相同信息,因此会出现网络资源有效利用率低的问题,且在多播路由包较多时尤为明显;基于包匹配的传输路径上的多播需要路由节点具有包过滤功能,同时传输路径需要包含所有目标节点,此过程对于路由算法的制定有较高的要求。



技术实现要素:

鉴于此,有必要针对传统路由多播方法存在网络资源利用率低及路由算法要求高的问题,提供一种提高路由多播效率,降低多播过程对网络资源占用的基于2D mesh网络的路由多播方法及系统。

为达到发明目的,提供一种基于2D mesh网络的路由多播方法,所述方法包括:

在2D mesh网络的源节点生成路由包时,在所述路由包中分配储存多播使能信息、多播方向信息和多播步长信息的多播控制区段;

由所述路由包中提取目标节点地址,并根据所述目标节点地址将所述路由包通过路由网络传输至目标节点;

由所述多播路由区段中提取所述多播使能信息、所述多播方向信息和所述多播步长信息,并根据所述多播使能信息、所述多播方向信息和所述多播步长信息控制所述路由包进行多播路由。

在其中一个实施例中,所述由所述多播路由区段中提取所述多播使能信息,所述多播方向信息和所述多播步长信息,并根据所述多播使能信息、所述多播方向信息和所述多播步长信息控制所述路由包进行多播路由的步骤包括:

判断所述多播控制区段中的所述多播使能信息是否有效;

若是,则根据所述多播方向信息和所述多播步长信息控制所述路由包进行多播路由;

若否,则控制所述路由包结束路由。

在其中一个实施例中,所述根据所述多播方向信息和所述多播步长信息控制所述路由包进行多播路由的步骤包括:

判断所述多播步长信息中是否存在有效的多播步长;

若是,则根据所述多播方向信息和所述路由包当前所在的目标节点地址更新所述路由包中的目标节点地址,并返回所述由所述路由包中提取目标节点地址,并根据所述目标节点地址将所述路由包通过路由网络传输至目标节点的步骤;

若否,则控制所述路由包结束路由。

在其中一个实施例中,在执行所述根据所述多播方向信息和所述路由包当前所在的目标节点地址更新所述路由包中的目标节点地址的步骤的同时,还包括:

更新所述多播控制区段中的多播步长信息。

在其中一个实施例中,在将所述路由包输送至目标节点之后,还包括:

由所述路由包中提取有效负载数据,并将所述有效负载数据发送给所述目标节点连接的本地处理单元。

本发明还提供一种基于2D mesh网络的路由多播系统,所述系统包括:

分配模块,用于当在2D mesh网络的源节点生成路由包时,在所述路由包中分配储存多播使能信息、多播方向信息和多播步长信息的多播控制区段;

路由传输模块,用于由所述路由包中提取目标节点地址,并根据所述目标节点地址将所述路由包通过路由网络传输至目标节点;

多播控制模块,用于由所述多播路由区段中提取所述多播使能信息、所述多播方向信息和所述多播步长信息,并根据所述多播使能信息、所述多播方向信息和所述多播步长信息控制所述路由包进行多播路由。

在其中一个实施例中,所述多播控制模块包括:

使能判断单元,用于判断所述多播控制区段中的所述多播使能信息是否有效;若是,则进入多播路由单元;若否,则进入路由结束单元;

所述多播路由单元,用于根据所述多播方向信息和所述多播步长信息控制所述路由包进行多播路由;

所述路由结束单元,用于控制所述路由包结束路由。

在其中一个实施例中,所述多播路由单元包括:

步长判断子单元,用于判断所述多播步长信息中是否存在有效的多播步长;若是,则进入目标地址更新子单元,并返回所述路由传输模块;若否,则进入所述路由结束单元;

所述目标地址更新子单元,用于根据所述多播方向信息和所述路由包当前所在的目标节点地址更新所述路由包中的目标节点地址。

在其中一个实施例中,所述多播路由单元还包括:

步长更新子单元,用于在根据所述多播方向信息和所述路由包当前所在的目标节点地址更新所述路由包中的目标节点地址的同时,更新所述多播控制区段中的多播步长信息。

在其中一个实施例中,还包括:

发送模块,用于在将所述路由包输送至目标节点之后,由所述路由包中提取有效负载数据,并将所述有效负载数据发送给所述目标节点连接的本地处理单元。

本发明的有益效果包括:

上述基于2D mesh网络的路由多播方法及系统,在2D mesh网络的源节点处生成的路由包包括多播使能信息、多播方向信息和多播步长信息,该路由包在未开始多播的这段网络路径中只需一个路由包来完成路由包的传输,在路由包进行多播时,再在目标节点上根据多播使能信息、多播方向信息以及多播步长信息控制路由包进行多播路由,因此相比传统的在源节点处就生成多个路由包进行多播路由的方式,其对网络带宽占用较小,多播效率更加高效,并且其实现简单、占用逻辑资源少,无需对路由节点和路由路径制定特殊的算法能力,对路由算法的要求较低。

附图说明

图1为一个实施例中路由包格式的结构示意图;

图2为一个实施例中的基于2D mesh网络的路由多播方法的流程示意图;

图3为另一个实施例中的基于2D mesh网络的路由多播方法的流程示意图;

图4为又一个实施例中的基于2D mesh网络的路由多播方法的流程示意图;

图5为实施例一中的基于2D mesh网络的路由多播的过程示意图;

图6为实施例一中的路由包格式的结构示意图;

图7为实施例二中的基于2D mesh网络的路由多播的过程示意图;

图8为实施例二中的路由包格式的结构示意图;

图9为实施例三中的基于2D mesh网络的路由多播的过程示意图;

图10为实施例三中的路由包格式的结构示意图;

图11为一个实施例中基于2D mesh网络的路由多播系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明基于2D mesh网络的路由多播方法及系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

在一个实施例中,如图1、图2所示,提供了一种基于2D mesh网络的路由多播方法,该方法包括以下步骤:

S100,在2D mesh网络的源节点生成路由包时,在路由包中分配储存多播控制区段1001、多播方向信息1002和多播步长信息1003的多播控制区段1000。

S200,由路由包中提取目标节点地址2000,并根据目标节点地址2000将路由包通过路由网络传输至目标节点。

S300,由多播路由区段中提取多播使能信息1001、多播方向信息1002和多播步长信息1003,并根据多播使能信息1001、多播方向信息1002和多播步长信息1003控制路由包进行多播路由。

本实施例中,参见图1,2D mesh网络在源节点生成的路由包中包括多播使能信息1001、多播方向信息1002、多播步长信息1003,以及路由包将要传送至的目标节点地址2000和路由包自身携带的有效负载数据3000,将路由包多播路由至相应的目标节点的目的即是将有效负载数据3000输送至相应的目标节点,供目标节点分析处理。在生成路由包时,在路由包中预留一定的区间来储存多播控制区段1001、多播方向信息1002和多播步长信息1003等与路由多播相关的信息。首先根据路由包中的目标节点地址2000将路由包通过路由网络传输至目标节点,在将路由包输送至目标节点后,根据路由包中的多播使能信息1001、多播方向信息1002和多播步长信息1003控制该路由包进行多播路由。由于该路由包中包含有多播控制区段1000,因此不必在源节点处就生成与多播路由节点相应的多个路由包,路由包从源节点输送至目标节点这段网络传输过程中只需一个路由包,在此网络传输过程中路由包采用的是点到点的网络传输方式,即在未开始多播的这段网络路径中只需一个路由包来完成路由包的传输,在路由包进行多播时,再在目标节点上根据多播控制区段1001、多播方向信息1002以及多播步长信息1003生成新的路由包,将新的路由包进行多播路由,因此相比传统的在源节点处就生成多个路由包进行多播路由的方式,其对网络带宽占用较小,多播效率更加高效,尤其在连续多播过程时效果更为明显。并且本实施例中的路由多播方法实现简单、占用逻辑资源少,无需对路由节点和路由路径制定特殊的算法能力,其采用传统的路由算法,例如:XY维序路由算法、YX维序路由算法等,便能实现路由包的传输,对路由算法的要求较低。

在一个实施例中,在路由包中分配储存多播使能信息、多播方向信息和多播步长信息的多播控制区段的步骤包括:

获取路由包进行多播路由的多播目标节点信息,根据多播目标节点信息查询预设的多播信息表,在预设的多播信息表中查询得到与多播目标节点信息相匹配的多播使能信息、多播方向信息和多播步长信息,并储存在路由包的多播控制区段;或者获取路由包中的有效负载数据,根据有效负载数据的索引信息查询预设的多播信息表,在预设的多播信息表中查询得到与索引信息相匹配的的多播使能信息、多播方向信息和多播步长信息,并储存在路由包的多播控制区段。

其中,多播目标节点信息包括多播目标节点的数量、多播目标节点地址以及多播目标节点之间的连接关系。索引信息指的是根据有效负载数据的大小、类型等属性信息为有效负载数据制定的索引号等信息,属性相同或相近的有效负载数据具有相同的索引信息,每个索引信息在预设的多播信息表中对应唯一的多播信息。

需要说明的是,多播控制区段的区间大小可根据查询得到的多播信息的大小进行调整,也可根据经验预先设定。预设的多播信息表可根据经验预先设定。

在一个实施例中,在根据目标节点地址2000将路由包通过路由网络传输至目标节点的步骤之前包括:

判断路由包是否到达目标节点,即判断路由包当前所在的路由节点地址与目标节点地址2000是否一致;若是,则判定路由包到达目标节点;若否,则判定路由包未到达目标节点。其中,每个路由节点对应唯一的地址信息。

根据目标节点地址2000将路由包通过路由网络传输至目标节点的步骤包括:

将路由包通过源节点和目标节点之间的路由节点及输入输出通道传输至目标节点。

具体地,若源节点地址为(0,0),目标节点地址2000为(1,1),若路由包在2Dmesh网络上输送是采用XY维序路由算法,则路由包优先在X方向上路由,因此该路由包从源节点右侧的输出通道输出,(1,0)节点从左侧输入通道接收该路由包,(1,0)节点接收到该路由包后,从(1,0)节点的下侧输出通道输出,(1,1)节点从上侧的输入通道接收该路由包,从而完成该路由包的路由。其中,连接两个路由节点之间的路由通道既可作为输出通道,也可作为输入通道,具体根据使用时的功能而定。

在一个实施例中,在判定路由包未到达目标节点时,控制路由包继续通过路由包当前所在路由节点和目标节点之间的路由网络输送,直至将路由包输送至目标节点。

在一个实施例中,参见图2,步骤S300包括:

S310,判断多播控制区段1000中的多播使能信息1001是否有效;若是,则执行步骤S311;若否,则执行步骤S312。

S311,根据多播方向信息1002和多播步长信息1003控制路由包进行多播路由;

S312,控制路由包结束路由。

在2D mesh网络的源节点处生成路由包时,会在路由包的多播控制区段1000中分配一个储存多播使能信息1001的空间,该空间大小通常设置为1bit(比特),若该多播使能信息1001用E表示,在一个实施例中,设置E=0时表示不多播,设置E=1时表示多播,此时表示当前路由包为多播路由包,该当前路由包需要进行多播,否则表示当前路由包已传输至相应的目标节点,结束该当前路由包的路由,这样可以避免不必要的路由多播,降低非必要的网络资源占用。

在一个实施例中,判断多播使能信息1001是否有效的步骤进一步包括:

判断表示多播使能信息1001的使能标识符E是否为0;若为0,则判定多播使能信息1001无效;若为1,则判定多播使能信息1001有效。

在一个实施例中,参见图3,步骤S311进一步包括:

S311′,判断多播步长信息1003中是否存在有效的多播步长;若是,则执行步骤S311a;若否,则执行步骤S312。

S311a,则根据多播方向信息1002和路由包当前所在的目标节点地址2000更新路由包中的目标节点地址2000,并返回步骤S200。

为了进一步提高多播路由的效率,在判定多播使能信息1001有效之后,进一步判断多播步长信息1003是否为有效的多播步长;如果存在有效的多播步长,则说明该路由包需要进行多播路由,在将路由包进行多播之前,先根据路由包的当前所在目标节点地址2000和路由方向信息更新该路由包将要传输至的新的目标节点地址2000,从而根据新的目标节点地址将路由包通过路由网络传输至新的目标节点,待路由包到达新的目标节点后,重新执行判断多播使能信息是否有效及多播步长信息是否为有效的多播步长的步骤,直至多播步长信息无效,这样能够实时判定该路由包是否需要进行多播路由;如果为无效的多播步长,则说明该路由包已多播完毕,此时只需控制路由包结束路由即可。

值得说明的是,路由包在进行多播路由时,默认每次只进行一个多播步长的路由,这里每一个多播步长可表示一个路由节点间的距离,也可表示多个路由节点间的距离,每一个多播步长表示的距离可预先根据需要设定,因此,可以在获知多播方向信息1002和路由包当前所在的目标节点地址2000后便能得到路由包的下一个目标节点地址。

其中,需要说明的是,路由方向信息D储存在路由包的多播控制区段1000内,在路由包的多播控制区段1000中为多播方向信息D分配一个储存空间,该空间大小通常设置为1bit(比特),也可根据需要设置为多个比特。例如:如果向X、Y方向进行多播路由时,可设置储存多播方向信息的空间大小为2bit,多播方向信息D=01时表示多播方向沿X方向,D=10时表示多播方向沿Y方向,D=11时表示多播方向同时沿X、Y两个方向,D=00表示无效。

在一个实施例中,步骤S311′包括:

获取表示多播步长信息1003的标识符L,判断多播步长L是否为零;若为零,则判定该多播步长信息1003为无效的多播步长,否则,则判定该多播步长为有效的多播步长。

值得说明的是,此处的多播步长L的值可以为正值,也可以为负值。正值和负值均为有效的多播步长。正值表示多播路由方向朝向预先设定的正方向进行路由;负值表示多播路由方向朝向预先设定的正方向相反的方向进行路由。例如:设定水平方向为X方向,沿X方向向右为正方向,正值则表示沿X方向向右路由,负值则表示沿X方向向左路由。

具体地,在路由包的多播控制区段1000中分配一个储存多播步长信息1003的空间,该空间大小通常设置为3bit,优选的,储存多播步长信息1003的空间大小根据多播步长的最大值进行设置,例如:多播步长的最大值为7,则将该最大值转换为二进制码为111,此时设置储存多播步长信息1003的空间大小为3bit,这样既能满足多播步长的存储,又不浪费存储空间。当然,多播步长信息1003的空间大小也可根据多播目标节点个数进行设置。更进一步地,为了更精确地表示多播步长,在满足多播步长存储的基础上,还分配一个表示该多播步长正负的符号位,这样如果多播步长的最大值为7,则存储该多播步长的空间设置为4bit。最大位上0表示正值,1表示负值。

在一个实施例中,在执行步骤S311a时还包括:

S311b,更新多播控制区段1000中的多播步长信息1003。

在更新路由包的目标节点地址2000的同时,也更新路由包多播控制区段1000中的多播步长信息1003,从而在当前路由节点上生成新的路由包,该路由包中包含有新的目标节点地址,新的多播步长信息1003,多播使能信息1001和多播方向信息1002,根据新的路由包中的新的目标节点地址,新的多播步长信息,多播使能信息1001和多播方向信息1002确定路由包是否继续进行多播路由并控制多播流程。

具体地,更新多播控制区段1000中的多播步长信息1003的步骤包括:

若多播步长信息1003为正值时,将多播步长信息1003中表示多播步长的值进行减1操作。若多播步长信息1003为负值时,则将多播步长信息1003中表示多播步长的值进行加1操作。即路由包每进行一步多播过程,该路由包中的多播步长信息1003就更新一次,直至多播步长信息1003中表示多播步长的值更新为0,此时表示该路由包已多播完成,停止对路由包进行多播路由。多播步长信息1003实时反映路由包的多播流程,方便对路由包进行多播控制,也避免进行非必要的多播过程浪费网络资源。

在一个实时例中,在将所述路由包输送至目标节点之后,还包括:

S400,由路由包中提取有效负载数据3000,并将有效负载数据3000发送给目标节点连接的本地处理单元。

在路由包进行多播路由及路由传输过程中,路由包中的有效负载数据3000是不变的,因此才能实现路由包中有效负载数据3000在不同路由节点上的多播。各个目标路由节点对应的本地处理单元对有效负载数据3000进行分析处理,从而实现相应的功能。

以下结合几个具体的实施例来对上述基于2D mesh网络的路由多播方法进行详细说明。在以下实施例中,路由节点按2D mesh网络结构排列,每个路由节点通过四对输入输出通道与相邻的路由节点相连构成2D mesh网络。每个路由节点和一个本地处理单元相连。其中,本地处理单元可以为处理器核或其他资源模块。预先设定水平向右为X轴正方向,垂直向下为Y轴正方向,左上处路由节点的路由坐标为(0,0)。

实施例一

参见图5、图6,在该实施例中采用XY维序路由算法,路由包格式如图5所示:该路由包多播控制区段1000共占用空间5bit,其中多播使能信息E分配1bit,多播方向信息D分配1bit,多播步长信息1003用L表示,占用3bit。X[3..0]用于存放目标节点X地址,Y[3..0]用于存放目标节点Y地址,Data[7..0]为8bit有效负载数据。其中,预设E=0时表示不多播,此路由包为点对点的普通路由包,E=1表示多播,此路由包为多播路由包;D=0表示多播方向沿X方向,D=1表示多播方向沿Y方向;多播步长信息L最大值为7,每一个步长表示一个路由节点的距离。如图6所示,图6示出了路由包从源节点(0,0)向路由节点(2,1)、(2,2)、(2,3)多播过程。源节点(0,0)处生成路由包{11010 0010 0001 xxxxxxxx},即多播使能信息的位置为1,多播方向信息的位置为1,表示多播方向沿Y方向,多播步长信息位置为2,表示连续多播2个步长,目标节点地址为(2,1),有效负载数据用x表示。

根据XY维序路由算法,路由包优先在X方向上路由,因此该多播路由包从源节点右侧输出通道发出,(1,0)节点从左侧输入通道接收到此路由包。(1,0)节点收到路由包后由路由算法单元检测该路由包节点地址信息,确定出路由包需从(1,0)节点右侧输出通道发出,类似地,直至该多播路由包输送至目标节点(2,1),该多播路由包经历路径(0,0)->(1,0)->(2,0)->(2,1)到达目标节点。路由包到达目标节点(2,1)后,将路由包中的有效负载数据发送给本地处理单元,同时进行多播过程。

该多播过程主要包括以下几个步骤:检测该路由包的多播使能信息是否为1,若为1则进行多播过程,否则不进行多播过程(该路由包此次路由结束);若多播使能信息为1,检测路由包多播控制区段1000中的多播方向信息和多播步长信息,如果多播步长信息为0,则结束该路由包的路由,否则则根据多播步长信息和多播方向信息确定路由包下一步将要路由至的目标节点地址,由于该路由包中多播控制区段为{11010},每个步长表示一个路由节点距离,因此可确定该路由包下一步将要路由至的目标节点地址为(2,2),同时更新多播步长信息,由于该多播步长信息为正值,因此对该多播步长信息的正值进行减1操作,将多播步长正值更新为001,最终在该目标节点生成新的路由包{11001 0010 0010 xxxxxxxx}。新生成的路由包达到节点(2,2)后,继续检测该路由包中的多播步长信息,如果此时多播步长信息为0,则该路由包结束多播路由过程,否则则继续多播过程,由于此路由包中的多播步长信息为1,因此根据多播方向信息(此时多播方向为沿Y轴方向)和该路由包当前所在的目标节点地址确定路由包下一步将要路由至的目标节点地址为(2,3),同时更新该路由包中的多播步长信息为000,最终在目标节点(2,2)处生成新的路由包{11000 0010 0011 xxxxxxxx},并将该新的路由包输送至新确定的目标节点(2,3)。新的路由包{11000 0010 0011 xxxxxxxx}到达节点(2,3)后,由于此时路由包中的多播步长信息的值为0,因此该路由包多播过程结束,此次路由结束。该路由包完整多播路由路径如图6所示。

实施例二

本实施例在上述2D mesh网络中,采用YX维序路由算法,即路由包先在Y方向路由,再在X方向上进行路由。路由包格式如图7所示:在该路由包中,多播控制区段1000共占用4bit,其中多播使能信息E分配1bit,多播方向信息D分配1bit,多播步长信息L分配2bit。X[3..0]用于存放目标节点X地址,Y[3..0]用于存放目标节点Y地址,Data[7..0]和Extra[7..0]为16bit有效负载数据。其中,预设E=0时表示不多播,此路由包为点对点的普通路由包,E=1表示多播,此路由包为多播路由包;D=0表示多播方向沿X方向,D=1表示多播方向沿Y方向;多播步长信息L最大值为4,每一个步长表示两个路由节点的距离。如图8所示,图8示出了路由包从源节点(0,0)向路由节点(3,1)、(3,3)、(3,5)多播过程。源节点(0,0)处生成路由包{1110 0011 0001 xxxxxxxx xxxxxxxx},即多播使能信息的位置为1,多播方向信息的位置为1,表示多播方向沿Y方向,多播步长信息位置为2,表示连续多播2个步长,目标节点地址为(3,1),有效负载数据用x表示。

根据YX维序路由算法,该路由包在2D mesh网络上经历路径(0,0)->(0,1)->(1,1)->(2,1)->(3,1)到达目标节点,在目标节点(3,1)上检测多播使能信息E=1,表示该路由包进行多播路由,再检测多播步长信息L=2,表示该路由包需要连续多播2个步长,该路由包需要进行多播路由,且该路由包的路由方向为Y方向,由于每个步长表示两个路由节点距离,因此根据路由包当前所在的目标节点(3,1)及路由方向确定该路由包下一步将要路由至的目标节点为(3,3),同时更新多播步长信息,将多播步长的值进行减1操作,多播步长信息更新为01,最终在节点(3,1)生成新的路由包{1101 0011 0011 xxxxxxxx xxxxxxxx},并根据目标节点(3,3)的地址将新生成的路由包输送至节点(3,3)。类似地,在节点(3,3)检测路由包的多播路径信息L=1,多播路径信息有效,该路由包需要进一步进行多播,在节点(3,3)上生成新的路由包{1100 0011 0101 xxxxxxxx xxxxxxxx},并将新的路由包{1100 0011 0101 xxxxxxxx xxxxxxxx}传送至新的目标节点(3,5)。在目标节点(3,5)上检测多播路径信息L=0,该多播路径信息无效,此时该路由包的多播路由结束。该路由包完整多播路由路径如图8所示。

实施例三

本实施例在上述2D mesh网络中,采用XY维序路由算法。路由包格式如图9所示:在该路由包中,多播控制区段1000共占用6bit,其中多播使能信息E分配1bit,多播方向信息D分配2bit,多播步长信息L分配3bit。X[3..0]用于存放目标节点X地址,Y[3..0]用于存放目标节点Y地址,Data[7..0]和Extra[7..0]为16bit有效负载数据。其中,预设E=0时表示不多播,此路由包为点对点的普通路由包,E=1表示多播,此路由包为多播路由包;D=01表示多播方向沿X方向,D=10表示多播方向沿Y方向,D=11表示多播方向同时沿X、Y两个方向,D=00表示无效;多播步长信息L最大值为4,每一个步长表示一个路由节点的距离。如图10所示,图10示出了路由包从源节点(0,0)向路由节点(1,1)、(1,2)、(1,3)、(2,1)、(3,1)、(2,2)多播过程。源节点(0,0)处生成路由包{111010 0001 0001 xxxxxxxx xxxxxxxx},即多播使能信息的位置为1,多播方向信息的位置为11,表示多播方向同时沿X、Y两个方向,多播步长信息位置为2,表示连续多播2个步长,目标节点地址为(1,1),有效负载数据用x表示。

根据XY维序路由算法,该路由包在2D mesh网络上经历路径(0,0)->(1,0)->(1,1)到达目标节点,在目标节点(1,1)上检测多播使能信息E=1,表示该路由包为多播路由包,检测多播方向信息D=11,表示同时向X、Y两个方向多播,检测多播路径信息L=2,表示需要连续多播2个步长,由于每个步长表示一个路由节点距离,因此在目标节点上最终生成{111001 0001 0010 xxxxxxxx xxxxxxxx}和{111001 0010 0001 xxxxxxxx xxxxxxxx}两个新的路由包,将路由包{111001 0001 0010 xxxxxxxx xxxxxxxx}输送至新的目标节点(1,2),路由包括{111001 0010 0001 xxxxxxxx xxxxxxxx}输送至新的目标节点(2,1)。在目标节点(1,2)上,根据检测得到的多播方向信息及多播步长信息生成新的路由包{111000 0001 0011 xxxxxxxx xxxxxxxx}和{111000 0010 0010 xxxxxxxx xxxxxxxx},并分别把路由包{111000 0001 0011 xxxxxxxx xxxxxxxx}和和{111000 0010 0010 xxxxxxxx xxxxxxxx}输送至目标节点(1,3)和(2,2)上,在目标节点(1,3)和(2,2)上,检测得到多播步长信息为0,此时该路由包结束路由。在目标节点(2,1)上,根据检测得到的多播方向信息及多播步长信息生成新的路由包{111000 0011 0001 xxxxxxxx xxxxxxxx}和{111000 0010 0010 xxxxxxxx xxxxxxxx},并分别把路由包{111000 0011 0001 xxxxxxxx xxxxxxxx}和{111000 0010 0010 xxxxxxxx xxxxxxxx}输送至目标节点(3,1)和(2,2)上,在目标节点(3,1)和(2,2)上,检测得到多播步长信息为0,此时该路由包结束路由。该路由完成多播路由路径如图10所示。

值得说明的是,在该实施例中,多播步长信息的最大值4,即用2bit的空间便能表示该多播步长信息,而本实施例中多播步长信息却占用3bit,这个3bit的空间最高位用来表示多播步长二进制的符号,0表示正值,1表示负值,另外2bit用来表示多播步长的大小。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

在一个实施例中,如图11所示,还提供了一种基于2D mesh网络的路由多播系统,该系统包括:分配模块100,用于当在2D mesh网络的源节点生成路由包时,在所述路由包中分配储存多播使能信息1001、多播方向信息1002和多播步长信息1003的多播控制区段1000。路由传输模块200,用于由所述路由包中提取目标节点地址2000,并根据目标节点地址2000将路由包通过路由网络传输至目标节点。多播控制模块300,用于由多播路由区段中提取多播使能信息1001、多播方向信息1002和多播步长信息1003,并根据多播使能信息1001、多播方向信息1002和多播步长信息1003控制路由包进行多播路由。

本实施例中的路由多播系统,在2D mesh网络的源节点处生成的路由包包括多播使能信息1001、多播方向信息1002、多播步长信息1003,以及路由包将要传送至的目标节点地址2000和路由包自身携带的有效负载数据,该路由包在未开始多播的这段网络路径中只需一个路由包来完成路由包的传输,在路由包进行多播时,再在目标节点上根据多播使能信息1001、多播方向信息1002以及多播步长信息1003控制路由包进行多播路由,因此相比传统的在源节点处就生成多个路由包进行多播路由的方式,其对网络带宽占用较小,多播效率更加高效,尤其在连续多播过程时效果更为明显。并且本实施例中的路由多播方法实现简单、占用逻辑资源少,无需对路由节点和路由路径制定特殊的算法能力,其采用传统的路由算法便能实现路由包的传输,对路由算法的要求较低。

在一个实施例中,多播控制模块300包括:使能判断单元310,用于判断多播控制区段1000中的多播使能信息1001是否有效;若是,则进入多播路由单元311;若否,则进入路由结束单元312。多播路由单元311,用于根据多播方向信息1002和多播步长信息1003控制路由包进行多播路由。路由结束单元312,用于控制路由包结束路由。

在一个实施例中,多播路由单元311包括:步长判断子单元311′,用于判断多播步长信息1003中是否存在有效的多播步长;若是,则进入目标地址更新子单元311a,并返回路由传输模块200;若否,则进入路由结束单元312。目标地址更新子单元311a,用于根据多播方向信息1002和路由包当前所在的目标节点地址2000更新路由包中的目标节点地址2000。

在一个实施例中,多播路由单元311还包括:

步长更新子单元311b,用于在根据多播方向信息1002和路由包当前所在的目标节点地址2000更新所述路由包中的目标节点地址2000同时,更新多播控制区段1000中的多播步长信息1003。

在一个实施例中,还包括:发送模块400,用于在将路由包输送至目标节点之后,由路由包中提取有效负载数据3000,并将有效负载数据3000发送给目标节点连接的本地处理单元。

由于此系统解决问题的原理与前述一种基于2D mesh网络的路由多播方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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