掌桥专利:专业的专利平台
掌桥专利
首页

一种双主机路由的实现方法、系统、设备及介质

文献发布时间:2024-04-18 19:58:26


一种双主机路由的实现方法、系统、设备及介质

技术领域

本发明涉及通信技术领域,尤其涉及一种双主机路由的实现方法、系统、设备及介质。

背景技术

随着互联网的快速普及与发展以及卫星互联网星座计划的不断部署、更多的用户终端接入网络,衍生出包含人们生产和生活各个领域的互联网应用。针对片上系统在时延、时钟同步、能耗和可重用性等方面的缺陷提出了一种片上网络,能够用于克服片上系统存在的上述缺陷。而片上网络从诞生至今不过数十年,国内外尚且处于对片上网络的理论研究阶段,但遵循着由单机到现今网络的发展趋势,相信片上网络也将会成为一种关键的技术并被广泛的进行应用。为了提升片上网络的性能,满足不断涌现的新型应用与业务需求,需要对更好性能的片上网络和与之适配的高性能调度算法进行研究。

因此,亟需一种有效方法来解决上述问题。

发明内容

有鉴于此,有必要针对以上技术问题,提供一种双主机路由的实现方法、系统、设备及介质。

根据本发明的第一方面,提供了一种双主机路由的实现方法,所述双主机路由的实现方法包括:

响应于接收到路由请求且所述路由请求所通过的源路由节点和目的路由节点位于同一主机管理的同一子网络,分别获取所述源路由节点和所述目的路由节点的编号对应的二进制编码,以得到第一路由编码和第二路由编码;

对所述第一路由编码和所述第二路由编码进行按位异或运算以生成第一路径编码;

响应于所述第一路径编码中至少一位等于一,确定所述第一路径编码中等于一的最高位,并基于所述等于一的最高位对应的第一位数确定目标父路由节点层;

在所述目标父路由节点层的所有路由节点中确定目标父路由节点;

根据所述源路由节点、所述目的路由节点以及所述目标父路由节点生成路由路径,由所述路由路径执行所述路由请求。

在一些实施例中,所述在所述目标父路由节点层的所有路由节点中确定目标父路由节点的步骤,包括:

将所述目标父路由节点层中所有路由节点编号对应的二进制编码与所述第一路由编码分别进行按位异或运算,以生成多个第二路径编码;

响应于所述目标父路由节点层中存在路由节点对应的所述第二路径编码满足第一预设条件、且所述路由节点满足第二预设条件和第三预设条件,将满足所述预设条件的所述目标父路由节点层的各路由节点作为初步父路由节点;

在全部所述初步父路由节点中选择一个作为目标父路由节点。

在一些实施例中,所述根据所述源路由节点、所述目的路由节点以及所述目标父路由节点生成路由路径的步骤,包括:

根据所述源路由节点与所述目标父路由节点确定第一路径,根据所述目的路由节点与所述目标父路由节点确定第二路径,将所述第一路径和所述第二路径作为路由路径。

在一些实施例中,所述根据所述源路由节点与所述目标父路由节点确定第一路径的步骤,包括:

若所述第一位数大于一,获取所述目标父路由节点的编号对应的二进制编码作为第三路由编码;

对所述第一路由编码和所述第三路由编码进行按位异或运算以生成第三路径编码,并基于所述第三路径编码确定第一中间路由节点;

对源终端节点、所述源路由节点、所述第一中间路由节点和所述目标父路由节点进行组合,以得到第一路径。

在一些实施例中,所述基于所述第三路径编码确定第一中间路由节点的步骤,包括:

将所述第三路径编码的最低有效位作为第一当前位,将所述源路由节点对应的路由节点层作为第一当前路由节点层,将所述第一路由编码作为第一当前路由编码;

判断所述第一当前位是否等于一;

若所述第一当前位等于一,将所述第一当前路由编码中与所述第一当前位对应位数上的位取反,将取反后的结果作为所述第一当前路由节点层的上一层中的第一中间路由节点对应的二进制编码;

若所述第一当前位不等于一,将所述第一当前路由编码作为所述第一当前路由节点层的上一层中的第一中间路由节点对应的二进制编码;

响应于所述第一当前位的位数未达到所述第三路径编码的最高有效位数,将所述第一当前位向左移动一位得到新的第一当前位,将所述第一当前路由节点层的上一层作为新的第一当前路由节点层,将所述上一层中的第一中间路由节点对应的二进制编码作为新的第一当前路由编码,并返回判断所述第一当前位是否等于一的步骤,直至所述第一当前位达到所述第三路径编码的最高有效位数。

在一些实施例中,所述对源终端节点、所述源路由节点、所述第一中间路由节点和所述目标父路由节点进行组合,以得到第一路径的步骤,包括:

将源终端节点和所述目标父路由节点分别作为第一路径的第一起始点和第一终止点;

将所述源路由节点和所有所述第一中间路由节点按生成顺序放入所述第一起始点和所述第一终止点之间,以生成第一路径。

在一些实施例中,所述根据所述目的路由节点与所述目标父路由节点确定第二路径的步骤,包括:

若所述第一位数大于一,获取所述目标父路由节点的编号对应的二进制编码作为第三路由编码;

对所述第二路由编码和第三路由编码进行按位异或运算以生成第四路径编码,并基于所述第四路径编码确定第二中间路由节点;

对目的终端节点、所述目的路由节点、所述第二中间路由节点和所述目标父路由节点进行组合,以得到第二路径。

在一些实施例中,所述基于所述第四路径编码确定第二中间路由节点的步骤,包括:

将所述第四路径编码的最高有效位作为第二当前位,将所述目标父路由节点层作为第二当前路由节点层,将所述第三路由编码作为第二当前路由编码;

判断所述第二当前位是否等于一;

若所述第二当前位等于一,将所述第二当前路由编码中与所述第二当前位对应位数上的位取反,将取反后的结果作为所述第二当前路由节点层的下一层中的第二中间路由节点对应的二进制编码;

若所述第二当前位不等于一,将所述第二当前路由编码作为所述第二当前路由节点层的下一层中的第二中间路由节点对应的二进制编码;

响应于所述第二当前位的位数未达到所述第四路径编码的最低有效位数,将所述第二当前位向右移动一位得到新的第二当前位,将所述第二当前路由节点层的下一层作为新的第二当前路由节点层,将所述下一层中的第二中间路由节点对应的二进制编码作为新的第二当前路由编码,并返回判断所述第二当前位是否等于一的步骤,直至所述第二当前位的位数达到所述第四路径编码的最低有效位数。

在一些实施例中,所述对目的终端节点、所述目的路由节点、所述第二中间路由节点和所述目标父路由节点进行组合,以得到第二路径的步骤,包括:

将所述目标父路由节点和所述目的终端节点分别作为第二路径的第二起始点和第二终止点;

按生成顺序将所有所述第二中间路由节点和所述目的路由节点放入所述第二起始点和所述第二终止点之间,以生成第二路径。

在一些实施例中,所述目标父路由节点层中存在路由节点对应的所述第二路径编码满足第一预设条件的步骤,包括:

响应于所述第二路径编码中等于一的最高位对应的位数小于等于所述第一位数或所述第二路径编码中所有位均等于零,确定所述第二路径编码满足第一预设条件。

在一些实施例中,所述路由节点满足第二预设条件的步骤,包括:

响应于存在所述目标父路由节点层的路由节点与所述源路由节点位于同一子网络,确定所述目标父路由节点层的所述路由节点满足第二预设条件。

在一些实施例中,所述路由节点满足第三预设条件的步骤,包括:

响应于存在所述目标父路由节点层的路由节点所连接的下一层路由节点均与所述源路由节点位于同一子网络,确定所述目标父路由节点层的所述路由节点满足第三预设条件。

在一些实施例中,所述双主机路由的实现方法还包括:

若所述第一位数等于一,对所述源终端节点、所述源路由节点和所述目标父路由节点进行组合,以得到第一路径。

在一些实施例中,所述双主机路由的实现方法还包括:

若所述第一位数等于一,对所述目的终端节点、所述目的路由节点和所述目标父路由节点进行组合,以得到第二路径。

在一些实施例中,所述基于所述等于一的最高位对应的第一位数确定目标父路由节点层的步骤,包括:

将所述第一位数加一的结果作为目标层数,并将所述目标层数对应的路由节点层作为目标父路由节点层。

在一些实施例中,所述双主机路由的实现方法还包括:

响应于所述第一路径编码中所有位均等于零,则确认所述源路由节点和所述目的路由节点为同一路由节点,并在所述同一路由节点内部执行所述路由请求。

在一些实施例中,所述双主机路由的实现方法还包括:

将所述路由请求中的源终端节点所连接的路由节点作为源路由节点;

将所述路由请求中的目的终端节点所连接的路由节点作为目的路由节点。

在一些实施例中,所述第三路径编码或所述第四路径编码的最高有效位数与第一位数对应。

根据本发明的第二方面,提供了一种双主机路由的实现系统,所述系统包括:

获取单元,用于响应于接收到路由请求且所述路由请求所通过的源路由节点和目的路由节点位于同一主机管理的同一子网络,分别获取所述源路由节点和所述目的路由节点的编号对应的二进制编码,以得到第一路由编码和第二路由编码;

生成单元,用于对所述第一路由编码和所述第二路由编码进行按位异或运算以生成第一路径编码;

目标父路由节点层确定单元,用于响应于所述第一路径编码中至少一位等于一,确定所述第一路径编码中等于一的最高位,并基于所述等于一的最高位对应的第一位数确定目标父路由节点层;

目标父路由节点确定单元,用于在所述目标父路由节点层的所有路由节点中确定目标父路由节点;

执行单元,用于根据所述源路由节点、所述目的路由节点以及所述目标父路由节点生成路由路径,由所述路由路径执行所述路由请求。

本发明实施例的第三方面,还提供了一种交换设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。

本发明实施例的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。

上述一种双主机路由的实现方法,若接收到的用于同一子网络下执行的路由请求,分别根据路由请求所通过的源路由节点编号和目的路由节点编号位对应的二进制编码进行按位异或运算生成第一路径编码,并由第一路径编码中各位置上的数值确定目标父路由节点层的层数以获取目标父路由节点,最后依据源路由节点、目的路由节点以及目标父路由节点生成用以执行同一个子网络内部路由请求对应的路由路径,所得到的路由路径保证了双主机所各自控制的子网络在进行内部源终端节点互传数据包时互不干扰对方路由、独立传输数据包,该路由的实现方法简单,易于硬件实现,避免子网络内部传输数据时路由路径通过另一子网络而导致另一子网络内正在进行的路由暂停,维护了整体网络路由的稳定性,各子网络内部路由独立进行的方式极大的提升了整体网络的通信效率。

此外,本发明还提供了一种双主机路由的实现系统、一种交换设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明提供的一种片上网络的拓扑结构的一实施例的示意图;

图2为本发明提供的一种支持双主机的胖树网络拓扑结构的一实施例的示意图;

图3为本发明提供的一种双主机路由的实现方法的一实施例的示意图;

图4为本发明提供的双主机路由的实现系统的一实施例的示意图;

图5为本发明提供的交换设备的一实施例的结构示意图;

图6为本发明提供的计算机可读存储介质的一实施例的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

如上所述,片上网络具有较好的发展前景,其优势体现在:

(1)片上网络借鉴了计算机网络的网络结构,片上网络的整体由多条点到点的线路连接,且线路相互之间不会产生干扰,较好地满足多个用户通信的要求。

(2)片上网络采用全局异步及局部同步的方式来解决时钟同步的问题,即片上网络中局部的网络工作在自身时振频率下,避免了时针的全局同步问题,解决了时针偏移问题,有效降低网络功耗。

(3)片上网络支持多点并行进行数据传输,即同一时刻下可以完成多种线路的数据传输,并结合片上网络的寻址是在局部网络内完成的,避免了网络规模的扩展对寻址造成影响,提高了带宽的利用率。

(4)片上网络使用随机仲裁机制,避免了总线结构中使用中央判决单元对线路使用权进行统一管理所造成的较大时延问题。

(5)片上网络采用局部判决策略,分布式地完成线路中一个独立的功能单元,且片上网络中路由设备也可以在多种环境中使用,具有较好的重用性,并具有高内聚低耦合的特点,可扩展性和可移植性好,有效缩短了系统开发时间,提升系统开发效率。

本发明只旨在解决支持双主机的片上网络拓扑结构中在同一主机所控制的同一子网络的源终端节点之间通信时存在互相干扰对方子网络导致通信效率降低的问题。

图1为本发明提供的一种片上网络的拓扑结构的一实施例的示意图。如图1所示的片上网络为胖树网络,其中终端节点与路由节点之间的每个链路端口都是双向的,路由节点与路由节点之间的链路端口也都是双向的。图1中的每条链路也都为双向数据传输,图1中的方框为终端节点,圆圈为路由节点,共有16个终端节点和3层的8个路由节点,最底层路由节点上挂两个终端节点。终端节点负责数据包的发送和收集,相互之间可以互发数据包,并由路由节点转发数据包。

下面以支持双主机的胖树网络为例对片上支持双主机的片上网络拓扑结构进行说明,但该片上网络不限制于胖树网络。

上述支持双主机指一个网络拓扑上链接两个主机,每个主机控制部分的终端节点以将一个片上网络分成两个不同的子网络。一实例中,在图1所示的胖树网络拓扑结构的基础上,提出一种支持双主机的胖树网络拓扑结构。如图2所示,路由节点0、路由节点1和路由节点2及其所链接的终端节点0、终端节点1、终端节点2、终端节点3、终端节点4和终端节点5由第一个主机控制,均属于第一个子网络。路由节点3、路由节点4、路由节点5、路由节点6和路由节点7及其所链接的终端节点6、终端节点7、终端节点8、终端节点9、终端节点10、终端节点11、终端节点12、终端节点13、终端节点14和终端节点15由第二个主机控制,均属于第二个子网络。

传统的最短路由的实现方法为:随机的选择一个终端节点s和终端节点d最近的父亲路由节点F,先从s到F,再从F到d。

在片上网络链接的两个主机之间进行互传数据包的情况下,仍旧可以采用上述传统的最短路由的实现方法。但事实上,片上网络链接的两个主机各自内部的源终端节点进行互传数据包的情况相较而言更为频繁,这时候就存在两个主机各自所控制的子网路需要互不干扰的需求,而上述传统的最短路由的实现方法并无法满足需求。

一实例中,假设图2中第二个子网络的终端节点12向终端节点6传输数据包时,如果用传统的最短路由的实现方法,其可能存在的一条路由路径为:终端节点12→路由节点6(第一层)→路由节点6(第二层)→路由节点6(第三层)→路由节点6(第四层)→路由节点2(第三层)→路由节点2(第二层)→路由节点3(第四层)→终端节点6。

其中,上述“路由节点2(第三层)→路由节点2(第二层)”的路由路径属于第一个子网络,也就是说上述实例的第二个子网络内部传输数据时用到了第一个子网络的路由节点及路径,占用了第一个子网络的路由资源,对第一个子网络造成了干扰。

基于上述目的,本发明实施例的第一个方面,提出了一种双主机路由的实现方法的实施例。如图3所示,上述双主机路由的实现方法包括如下步骤:

步骤101,响应于接收到路由请求且路由请求所通过的源路由节点和目的路由节点位于同一主机管理的同一子网络,分别获取源路由节点和目的路由节点的编号对应的二进制编码,以得到第一路由编码和第二路由编码。

在一些实施例中,上述双主机路由的实现方法还包括:将路由请求中的源终端节点所连接的路由节点作为源路由节点;将路由请求中的目的终端节点所连接的路由节点作为目的路由节点。

在一些实施例中,路由请求是指两个终端节点的通信请求,比如不妨假设某场景下终端节点0需要向终端节点3发送数据时,此时会产请求以规划终端节点0到终端节点3所经过的路由节点,需要说明的是路由请求是具有方向性的,发送数据包的终端节点即为源终端节点,接收数据包的终端节点即为目的终端节点,而与源终端节点所连接的路由节点即为源路由节点,与目的终端节点最近的路由节点所连接的路由节点即为目的路由节点。同理终端节点3也可以向终端节点0发送数据包,此时会产生请求以规划终端节点3到终端节点0所经过的路由节点。需要说明的是本实施例中说涉及的路由请求中终端节点编号仅用于举例说明,不应理解为对本发明方案的限制,在具体实施过程中源终端节点和目的终端节点的需要依据具体业务场景可进行灵活变化。

在一些具体实施过程中,网络拓扑可以是胖树网络拓扑,但不仅局限于胖树网络拓扑,只要网络拓扑满足以下约定即可通过本发明提出的双主机路由的实现方法实现支持双主机的片上网络拓扑结构中在同一主机所控制的同一子网络的源终端节点之间通信时互不干扰:双主机中各自所控制的终端节点均为相邻终端节点,且被双主机划分后的片上网络拓扑结构中编号小的终端节点为第一主机所控制的第一子网络中的终端节点,即第一子网络的终端节点编号均比第二子网络的终端节点编号小,如图2所示。

在一些实施例中,网络拓扑中各个路由节点、终端节点具有各自对应的编号。

步骤102,对第一路由编码和第二路由编码进行按位异或运算以生成第一路径编码。

在一些实施例中,终端节点对应二进制编码的位数等于网络拓扑中最大终端节点编号的二进制位数,例如包含16个终端节点,最大终端节点编号等于16,而16需要4个二进制位表示各个终端节点编号,不妨假设源终端节点终端编号等于2,目的终端节点编号等于15,此外第一路由编码表示为“0010”,第二路由编码表示为“1111”。需要说明的是,终端节点对应二进制编码的位数是根据网络拓扑中所包含节点数量设置的,例如某个网络拓扑如果只包含32个终端节点,此时采用五位二进制即可表示第一路由编码和第二路由编码,此时不必使用4位二进制数表示。

在一些实施例中,路由节点的数量根据终端节点的个数而定,且满足2的指数幂次的关系,即如果是32个终端节点,则需要16个路由节点,如果是31个终端节点同样需要16个路由节点,每两个终端节点挂载到一个路由节点之上,并且路由节点之间建立的是双向双路的数据连接通道。

在一些实施例中,对于图4一共有14个终端节点,我们用4bit来表示每个终端节点,如:0000表示终端节点0,0001表示终端节点1,……,1110表示终端节点14。图4一共8个路由节点,用终端节点对应二进制编码中除最低位外的其他位作为路由节点对应的二进制编码,最低位指的二进制编码中最右侧的一位,例如用4bit的前3个bit表示路由节点,如000_表示路由节点0,001_表示路由节点1,……, 110_表示路由节点6,111_表示路由节点7。进行第一路径编码计算时最右侧的一位不参与运算,继续举例来说,此时路由节点1参与运算的部分表示为“001”,路由节点2参与运算的部分表示为“010”。按位进异或运算是指,第一路由编码和第二路由编码的对应位的数值进行异或规则如:如果对应位的数值相同则生成第一路径编码中对应位数值记为0,如果对应位的数值不相同则生成第一路径编码上对应位数值记作1,遵循此计算规则对“001”和“010”按位异或所生成的第一路径编码表示为“011”。

步骤103,响应于第一路径编码中至少一位等于一,确定第一路径编码中等于一的最高位,并基于等于一的最高位对应的第一位数确定目标父路由节点层。

在一些实施例中,第一路径编码中等于一的最高位为第一路径编码为1且位于最左侧的一位,第一位数为第一路径编码中逐位从低到高数时该等于一的最高位所在的位置序号,例如第一路径编码表示为“011”时,等于一的最高位为“_1_”,此时的第一位数为2。

在一些实施例中,目标父路由节点层为最近的可用父亲路由节点所在的路由节点层。

步骤104,在目标父路由节点层的所有路由节点中确定目标父路由节点。

在一些实施例中,在同一目标父亲路由节点层中可以确定至少一个可用父亲路由节点,在若干可用父亲路由节点中任意选择一个作为目标父亲路由节点。

步骤105,根据源路由节点、目的路由节点以及目标父路由节点生成路由路径,由路由路径执行路由请求。

本发明的一种双主机路由的实现方法,根据接收到的用于同一子网络下执行的路由请求,分别根据路由请求所通过的源路由节点编号和目的路由节点编号位对应的二进制编码进行按位异或运算生成第一路径编码,并由第一路径编码中各位置上的数值确定目标父路由节点层的层数以获取目标父路由节点,最后依据源路由节点、目的路由节点以及目标父路由节点生成用以执行同一个子网络内部路由请求对应的路由路径,所得到的路由路径保证了双主机所各自控制的子网络在进行内部源终端节点互传数据包时互不干扰对方路由、独立传输数据包,该路由的实现方法简单,不需要硬件对路由端口和路由路径进行额外的操作(如废弃某些路由端口或者切断某些路径等),易于硬件实现,避免子网络内部传输数据时路由路径通过另一子网络而导致另一子网络内正在进行的路由暂停,维护了整体网络路由的稳定性,各子网络内部路由独立进行的方式极大的提升整体网络的稳定性和通信效率。

在一些实施例中,前述步骤104,在目标父路由节点层的所有路由节点中确定目标父路由节点的步骤,包括:

将目标父路由节点层中所有路由节点编号对应的二进制编码与第一路由编码分别进行按位异或运算,以生成多个第二路径编码;

响应于目标父路由节点层中存在路由节点对应的第二路径编码满足第一预设条件、且该路由节点满足第二预设条件和第三预设条件,将满足预设条件的目标父路由节点层的各路由节点作为初步父路由节点;

在全部初步父路由节点中选择一个作为目标父路由节点,例如选择任意一个。

在一些实施例中,初步父路由节点为目标父亲路由节点层中的可用父亲路由节点。

在一些实施例中,目标父亲路由节点层中各路由节点需满足以下三个预设条件后才能够作为可用父亲路由节点:

条件1、该路由节点对应的二进制编码与源路由节点对应的二进制编码进行异或的结果中每个等于1的位的位数均小于等于第一位数,或者异或的结果中每个位均等于0;

条件2、该路由节点与源路由节点为同一子网络下的路由节点;

条件3、该路由节点下一层连接的路由节点中没有另一个子网络下的路由节点。

在一些实施例中,目标父路由节点层中存在路由节点对应的第二路径编码满足第一预设条件的步骤,包括:响应于第二路径编码中等于一的最高位对应的位数小于等于第一位数或第二路径编码中所有位均等于零,确定第二路径编码满足第一预设条件。

在一些实施例中,该路由节点满足第二预设条件的步骤,包括:响应于存在目标父路由节点层的路由节点与源路由节点位于同一子网络,确定目标父路由节点层的路由节点满足第二预设条件。

在一些实施例中,该路由节点满足第三预设条件的步骤,包括:响应于存在目标父路由节点层的路由节点所连接的下一层路由节点均与源路由节点位于同一子网络,确定目标父路由节点层的路由节点满足第三预设条件。

本实施例的一种双主机路由的实现方法,利用第二路径编码结合预设条件筛选目标父路由节点层中的可用父路由节点,能够保证选择的目标父路由节点与源路由节点和目的路由节点均为同一子网络下,基于此得到的路由路径能够避免通过另一子网络导致另一子网络中正在进行的路由暂停的问题,且路由的实现简单有利于快速得到路由路径。

在一些实施例中,前述步骤105,根据源路由节点、目的路由节点以及目标父路由节点生成路由路径的步骤,包括:

根据源路由节点与目标父路由节点确定第一路径,根据目的路由节点与目标父路由节点确定第二路径,将第一路径和第二路径作为路由路径。

本实施例的一种双主机路由的实现方法,由于所得到的目标父路由节点、源路由节点和目的路由节点均确定位于同一子网络,能够保证第一路径和第二路径均在同一子网络内,解决了路由路径通过另一子网络而干扰对方路由的问题。

在一些实施例中,根据源路由节点与目标父路由节点确定第一路径的步骤,包括:

若第一位数大于一,获取目标父路由节点的编号对应的二进制编码作为第三路由编码;

对第一路由编码和第三路由编码进行按位异或运算以生成第三路径编码,并基于第三路径编码确定第一中间路由节点;

对源终端节点、源路由节点、第一中间路由节点和目标父路由节点进行组合,以得到第一路径。

本实施例的一种双主机路由的实现方法,基于第一位数确定得到最短第一路径的不同方法,在第一路径存在中间路由节点的情况下,通过第三路径编码能够指示出经过中间路由节点数量最少的第一路径,能够保证第一路径为最短路径,降低长路由路径带来的时耗。

在一些实施例中,基于第三路径编码确定第一中间路由节点的步骤,包括:

将第三路径编码的最低有效位作为第一当前位,将源路由节点对应的路由节点层作为第一当前路由节点层,将第一路由编码作为第一当前路由编码;

判断第一当前位是否等于一;

若第一当前位等于一,将第一当前路由编码中与第一当前位对应位数上的位取反,将取反后的结果作为第一当前路由节点层的上一层中的第一中间路由节点对应的二进制编码;

若第一当前位不等于一,将第一当前路由编码作为第一当前路由节点层的上一层中的第一中间路由节点对应的二进制编码;

响应于第一当前位的位数未达到第三路径编码的最高有效位数,将第一当前位向左移动一位得到新的第一当前位,将第一当前路由节点层的上一层作为新的第一当前路由节点层,将上一层中的第一中间路由节点对应的二进制编码作为新的第一当前路由编码,并返回判断第一当前位是否等于一的步骤,直至第一当前位达到第三路径编码的最高有效位数。

本实施例的一种双主机路由的实现方法,通过对第三路径编码中有效位逐位从低至高依次进行获取数值,并根据每个位上的数值对相应路由节点的二进制编码进行处理找到带有顺序的若干第一中间节点,根据源路由节点和目标父路由节点所计算得到的第三路径编码来确定第一路径中通过的各第一中间路由节点,保证了所确定的第一中间路由节点均在与源路由节点相同的子网络内,且每个第一中间路由节点为所在中间路由节点层中唯一确定的,具有较高的准确度。

在一些实施例中,对源终端节点、源路由节点、第一中间路由节点和目标父路由节点进行组合,以得到第一路径的步骤,包括:

将源终端节点和目标父路由节点分别作为第一路径的第一起始点和第一终止点;

将源路由节点和所有第一中间路由节点按生成顺序放入第一起始点和第一终止点之间,以生成第一路径。

本实施例的一种双主机路由的实现方法,针对所确定所有路由节点给定了特定的组合顺序,具体来说是将源终端节点作为起始点,将目标父路由节点作为终止点,然后依据所确定的中间路由节点的生成顺序插入到起始点和终止点之间,与传统路由的实现方法相比此种方式简单易行,获取第一路径时不需要硬件废弃某些路由端口和切断某些已建立的路由路径,具有极高的通用性,保证了网络中其他路由的稳定性。

在一些实施例中,根据目的路由节点与目标父路由节点确定第二路径的步骤,包括:

若第一位数大于一,获取目标父路由节点的编号对应的二进制编码作为第三路由编码;

对第二路由编码和第三路由编码进行按位异或运算以生成第四路径编码,并基于第四路径编码确定第二中间路由节点;

对目的终端节点、目的路由节点、第二中间路由节点和目标父路由节点进行组合,以得到第二路径。

本实施例的一种双主机路由的实现方法,基于第一位数确定得到最短第二路径的不同方法,当第一位数大于一时,第一路径中存在中间路由节点,此时第二路径也存在中间路由节点,通过第四路径编码能够指示出经过中间路由节点数量最少且路径唯一的第二路径,能够保证第二路径为最短路径,降低长路由路径带来的时耗。

在一些实施例中,基于第四路径编码确定第二中间路由节点的步骤,包括:

将第四路径编码的最高有效位作为第二当前位,将目标父路由节点层作为第二当前路由节点层,将第三路由编码作为第二当前路由编码;

判断第二当前位是否等于一;

若第二当前位等于一,将第二当前路由编码中与第二当前位对应位数上的位取反,将取反后的结果作为第二当前路由节点层的下一层中的第二中间路由节点对应的二进制编码;

若第二当前位不等于一,将第二当前路由编码作为第二当前路由节点层的下一层中的第二中间路由节点对应的二进制编码;

响应于第二当前位的位数未达到第四路径编码的最低有效位数,将第二当前位向右移动一位得到新的第二当前位,将第二当前路由节点层的下一层作为新的第二当前路由节点层,将下一层中的第二中间路由节点对应的二进制编码作为新的第二当前路由编码,并返回判断第二当前位是否等于一的步骤,直至第二当前位达到第四路径编码的最低有效位数。

本实施例的一种双主机路由的实现方法,通过对第四路径编码中有效位逐位从高至低依次进行获取数值,并根据每个位上的数值对相应路由节点的二进制编码进行处理找到带有顺序的若干第二中间节点,根据目的路由节点和目标父路由节点所计算得到的第四路径编码来确定第二路径中通过的各第二中间路由节点,保证了所确定的第二中间路由节点均在与目的路由节点相同的子网络内,且每个第二中间路由节点为所在中间路由节点层中唯一确定的,具有较高的准确度。

在一些实施例中,对目的终端节点、目的路由节点、第二中间路由节点和目标父路由节点进行组合,以得到第二路径的步骤,包括:

将目标父路由节点和目的终端节点分别作为第二路径的第二起始点和第二终止点;

按生成顺序将所有第二中间路由节点和目的路由节点放入第二起始点和第二终止点之间,以生成第二路径。

本实施例的一种双主机路由的实现方法,针对所确定所有路由节点给定了特定的组合顺序,具体来说是将父路由节点作为起始点,将目的路由节点作为终止点,然后依据所确定的中间路由节点的生成顺序插入到起始点和终止点之间,与传统路由的实现方法相比此种方式简单易行,获取第一路径时不需要硬件废弃某些路由端口和切断某些已建立的路由路径,具有极高的通用性,保证了网络中其他路由的稳定进行。

在一些实施例中,上述双主机路由的实现方法还包括:若第一位数等于一,对源终端节点、源路由节点和目标父路由节点进行组合,以得到第一路径。

在一些实施例中,上述双主机路由的实现方法还包括:若第一位数等于一,对目的终端节点、目的路由节点和目标父路由节点进行组合,以得到第二路径。

在一些实施例中,前述步骤103,基于等于一的最高位对应的第一位数确定目标父路由节点层的步骤,包括:将第一位数加一的结果作为目标层数,并将目标层数对应的路由节点层作为目标父路由节点层。

在一些实施例中,上述双主机路由的实现方法还包括:响应于第一路径编码中所有位均等于零,则确认源路由节点和目的路由节点为同一路由节点,并在同一路由节点内部执行路由请求。

在一些实施例中,第三路径编码或第四路径编码的最高有效位数与第一位数对应。

为便于理解本发明的方案,下面以应用于支持双主机的胖树网络为例,详细说明本发明的双主机路由的实现方法,其实现原理是胖树网络的拓扑结构,提出了避免同一子网络内部源终端节点之间通信时两个子网络互相干扰的路由的实现方式,具体实施过程如下:

以图2为例,假设源路由节点为S,目的路由节点为D,下面对双主机路由的实现方法进行说明:

第一步:源路由节点S和目的路由节点D进行异或,异或结果记为I;从低到高看I中“1”的最高bit位的位置在第k位,则I的有效位为低k位。举例说明,假设S为“001_”,D为“010_”,按位异或之后I为“011”,从低位到高位看I中“1”的最高bit位的位置,在第2位,即第一位数为2,I的有效位为低2位;

第二步:查看I的每个bit,如果I的每个bit都是0,则证明源终端节点和目标终端节点在同一个路由节点,直接在路由节点内部进行路由即可,路由结束;如果I的每个bit不都是0,进入第三步;

第三步:确定最近的父亲路由节点所在的层数。从低位到高位查看I中“1”的最高bit位的位置,在第k位,则最近的父亲路由节点在第k+1层;举例说明,I为“011”,从低位到高位看I中“1”的最高bit位在第2位,则最近的父亲路由节点在第3层;

第四步:确定最近的父亲路由节点层中可用的父亲路由节点。第三步已知最近的父亲路由节点在第k+1层,那么第k+1层所有的路由节点中,需满足以下三个条件:

条件1:与S按位进行按位异或的结果中“1”所在的bit位都在低k位内,或者按位异或的结果全为“0”;

条件2:属于S相同的子网络的路由节点;

条件3:下一层所连接的路由节点中,没有另外一个子网络的路由节点;

同时满足以上三个条件就是该S同一子网络路由可用的父亲节点;

举例说明,对于第一个子网络的路由请求,假设S为“001_”,D为“010_”,按位异或之后I为“011”,I中“1”的最高bit位在第2位,则I有效位为低2位,I可更新为“_11”,则S和D最近的父亲路由节点在第三层,而第三层中满足条件一的路由节点是0/1/2/3,满足条件二的路由节点是0/1/2,满足条件3的是0/2,那么0/2就是可用的父亲路由节点;

第五步:S向满足第四步的一个可用的父亲节点F路由;继续第四步中的举例说明,S向0/2中的一个可用的父亲节点F路由,假设F为“010_”;

5.1:路由节点S和父亲节点F按位进行异或,结果记为I1;则I1的有效位为低k位;继续第四步中的举例说明,I1为“011”,I1的低2位为有效位,I1更新为“_11”

5.2:I1中有效位从低位开始,在I1为“1”的位置将S对应的bit进行取反,得到向上一层路由的路由节点,在I1为“0”的位置直接向上一层跳跃即可;例如:

第一层的001(_11)→第二层的000(_1_)→第三层的010(___)

5.3:到达可用的父亲节点F,进入第六步;

第六步:父亲路由节点F向目的路由节点D路由;

6.1:父亲路由节点F与路由节点D按位进行异或,结果记为I2; I2的有效位为低k位;继续第四步中的举例说明,I2为“000”,I1的低2位为有效位,I2更新为“_00”

6.2:I2中有效位从高位开始,在I2为“1”的位置将S对应的bit进行取反,得到向下一层路由的路由节点,在I2为“0”的位置直接向下一层跳跃即可;然后进入第七步;继续第6.2步中的举例说明,I2=_00则直接向下跳跃两次,到达第一层的010即可;例如:

第三层的001(_00)→第二层的010(__0)→第一层的010(___)

第七步:根据D的最后一个bit将路由信息路由到目的终端节点。

在上述实例中,直接向上跳跃指路由节点直接向上跳跃到高一层编号相同的路由节点;直接向下跳跃指路由节点直接向下跳跃到低一层编号相同的路由节点;向上路由指路由节点根据本发明双主机路由实现的方法路由到高一层编号不同的路由节点;向下路由:指路由节点根据本发明双主机路由实现的方法路由到低一层编号不同的路由节点。

本实施例的应用于支持双主机的胖树网络的路由的实现方法,提出了避免同一子网络内部源终端节点之间通信时两个子网络互相干扰的路由方式,该双主机路由的实现方法对路由路径进行了限制,保证所得到的路由路径仅通过一个子网络,避免子网络内部传输数据时路由路径通过另一子网络而导致另一子网络内正在进行的路由暂停,维护了整体网络路由的稳定性,各子网络内部路由独立进行的方式极大的提升整体网络的稳定性和通信效率。

在一些实施例中,请参照图4所示,本发明还提供了一种双主机路由的实现系统,双主机路由的实现系统包括:

获取单元110,用于响应于接收到路由请求且路由请求所通过的源路由节点和目的路由节点位于同一主机管理的同一子网络,分别获取源路由节点和目的路由节点的编号对应的二进制编码,以得到第一路由编码和第二路由编码;

生成单元120,用于对第一路由编码和第二路由编码进行按位异或运算以生成第一路径编码;

目标父路由节点层确定单元130,用于响应于第一路径编码中至少一位等于一,确定第一路径编码中等于一的最高位,并基于等于一的最高位对应的第一位数确定目标父路由节点层;

目标父路由节点确定单元140,用于在目标父路由节点层的所有路由节点中确定目标父路由节点;

执行单元150,用于根据源路由节点、目的路由节点以及目标父路由节点生成路由路径,由路由路径执行路由请求。

本发明的一种双主机路由的实现系统,根据接收到的用于同一子网络下执行的路由请求,分别根据路由请求所通过的源路由节点编号和目的路由节点编号位对应的二进制编码进行按位异或运算生成第一路径编码,并由第一路径编码中各位置上的数值确定目标父路由节点层的层数以获取目标父路由节点,最后依据源路由节点、目的路由节点以及目标父路由节点生成用以执行同一个子网络内部路由请求对应的路由路径,所得到的路由路径保证了双主机所各自控制的子网络在进行内部源终端节点互传数据包时互不干扰对方路由、独立传输数据包,该路由的实现系统简单,不需要硬件对路由端口和路由路径进行额外的操作(如废弃某些路由端口或者切断某些路径等),易于硬件实现,避免子网络内部传输数据时路由路径通过另一子网络而导致另一子网络内正在进行的路由暂停,维护了整体网络路由的稳定性,各子网络内部路由独立进行的方式极大的提升整体网络的稳定性和通信效率。

需要说明的是,关于双主机路由的实现系统的具体限定可以参见上文中对双主机路由的实现方法的限定,在此不再赘述。上述双主机路由的实现系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种交换设备30,在该交换设备30中包括处理器310以及存储器320,存储器320存储有可在处理器上运行的计算机程序321,处理器310执行程序时执行如上的方法的步骤。

基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机可读存储介质40,计算机可读存储介质40存储有被处理器执行时执行如上方法的计算机程序410。

本发明实施例还可以包括相应的计算机设备。计算机设备包括存储器、至少一个处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时执行上述任意一种方法。

其中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的所述网络资源协同方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行装置的各种功能应用以及数据处理,即实现上述方法实施例的网络资源协同方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。

以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。

应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

相关技术
  • 一种服务器主机名修改方法、装置、设备及可读存储介质
  • 一种主机管理特性测试方法、装置、设备及存储介质
  • 一种宿主机的更新方法、装置、设备及介质
  • 一种业务功能实现方法、系统、设备及计算机存储介质
  • 一种CAN路由功能实现方法、系统、设备及存储介质
  • 一种分布式路由的实现方法、系统、设备及介质
技术分类

06120116488823