CN120301816A - 发送路由请求的方法及装置 - Google Patents
发送路由请求的方法及装置 Download PDFInfo
- Publication number
- CN120301816A CN120301816A CN202510404745.2A CN202510404745A CN120301816A CN 120301816 A CN120301816 A CN 120301816A CN 202510404745 A CN202510404745 A CN 202510404745A CN 120301816 A CN120301816 A CN 120301816A
- Authority
- CN
- China
- Prior art keywords
- target
- routing
- routing node
- node
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/036—Updating the topology between route computation elements, e.g. between OpenFlow controllers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种发送路由请求的方法及装置,其中,该方法包括:获取源终端和目标终端的编码;根据源终端和目标终端的编码在瘦化的胖树网络结构中确定最近的公共父节点所在的目标层;根据源终端和目标终端所在的目标子网络,以及第一路由节点集合和第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过目标子网络中的路由节点向上传输至目标层上的目标父节点,由目标父节点通过目标子网络中的路由节点将目标路由请求向下传输至目标终端。通过本申请,解决了相关技术中数据传输过程中子网络间互相打扰的问题,进而达到了子网络间互不打扰的效果。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种发送路由请求的方法及装置。
背景技术
双主机路由是指将网络划分成两个子网络,分别使用两台主机在各自的子网络中传输数据,可以通过路由器或交换机来实现,它可以提供更快速和可靠的数据传输,同时也可以提高网络的容错性和负载均衡能力。在双主机路由中,数据通常会经过多个网络设备和路径,以确保数据能够安全地传输。
传统的路由算法在选择的路由路径的时候,可能会占用相邻子网络的路由节点资源,从而无法满足两个子网络相互独立,互不打扰的需求。
针对上述问题,目前尚未存在有效解决方案。
发明内容
本申请实施例提供了一种发送路由请求的方法及装置,以至少解决相关技术中数据传输过程中子网络间互相打扰的问题。
根据本申请的一个实施例,提供了一种发送路由请求的方法,应用于瘦化的胖树网络结构,所述瘦化的胖树网络结构的总层数,与源节点总数量n之间的关系:l=(log2n)-1,第i层路由节点的数量ki与第i-1层路由节点的数量ki-1之间的关系:ki=kl-1/2,i∈{1,2,...l},l是大于或等于1的整数,所述瘦化的胖树网络结构被分成了第一子网络和第二子网络,第一路由节点集合包括所述第一子网络中的路由节点,第二路由节点集合包括所述第二子网络中的路由节点,所述方法还包括:获取源终端和目标终端的编码,其中,所述源终端、所述目标终端是所述瘦化的胖树网络结构中的源节点,所述源终端和所述目标终端在同一个子网络;根据所述源终端和所述目标终端的编码在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,其中,所述公共父节点是所述源终端和目标终端共同的父节点;根据所述源终端和所述目标终端所在的目标子网络,以及所述第一路由节点集合和所述第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,其中,所述目标子网络是所述第一子网络或所述第二子网络。
在一个示例性实施例中,根据所述源终端和所述目标终端的编码在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,包括:在所述源终端和所述目标终端的编码以X位二进制数表示的情况下,将所述源终端的编码与所述目标终端的编码进行二进制形式按位异或运算,得到异或结果,其中,X是大于2的整数;通过所述异或结果在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层。
在一个示例性实施例中,通过所述异或结果在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,包括:删除所述异或结果中的低两位,得到第一目标二进制数;按照从低到高的顺序在所述第一目标二进制数中确定第一个出现的非零值所在的比特位的位数;将所述比特位的位数确定为所述最近的公共父节点所在的目标层的层数。
在一个示例性实施例中,根据所述源终端和目标终端所在的目标子网络,以及所述第一路由节点集合和所述第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,包括:在所述目标路由请求向上传输至所述瘦化的胖树网络结构中第j层编码为dj的路由节点的情况下,确定第j+1层中与所述dj连接的两个路由节点的编码dj+1,0、dj+1,1,i∈{0,1,...m}所述目标层是第m层,m大于或等于1且小于或等于所述,;根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dj发送至所述dj+1,0或所述dj+1,1,其中,在所述目标子网络为所述第一子网络的情况下,所述目标路由节点集合是所述第一路由节点集合,在所述目标子网络为所述第二子网络的情况下,所述目标路由节点集合是所述第二路由节点集合。
在一个示例性实施例中,在所述目标路由请求传输至所述瘦化的胖树网络结构中第j层编码为dj的路由节点的情况下,确定第j+1层中与所述dj连接的两个路由节点的编码dj+1,0、dj+1,1,包括:通过以下公式得到所述dj+1,0、所述dj+1,1:
其中,bin是将整数转换成二进制数,^为二进制形式按位异或函数,是向下取整函数。
在一个示例性实施例中,根据所述源终端和目标终端所在的目标子网络,以及所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dj发送至所述dj+1,0或所述dj+1,1,包括:根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点;将所述目标路由请求从所述dj发送至所述第一目标路由节点。
在一个示例性实施例中,根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点,包括:在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,在所述dj+1,0、dj+1,1随机选择一个路由节点确定为所述第一目标路由节点;或者,在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,将所述dj+1,0、dj+1,1中与所述dj距离最短的路由节点确定为所述第一目标路由节点;或者,在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,将所述dj+1,0、dj+1,1中负载最小的路由节点确定为所述第一目标路由节点。
在一个示例性实施例中,根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点,还包括:在dj+1,0、dj+1,1中的一个路由节点位于所述目标路由节点集合的情况下,将dj+1,0、dj+1,1中位于所述目标路由节点集合的节点确定为所述第一目标路由节点。
在一个示例性实施例中,所述瘦化的胖树网络结构中每个所述路由节点,包括:两个上行端口和四个下行端口,两个上行端口分别为:第一上行端口和第二上行端口,所述第一上行端口的编码小于所述第二上行端口的编码;四个下行端口分别为:第一下行端口、第二下行端口、第三下行端口和第四下行端口,所述第一下行端口的编码、第二下行端口的编码、第三下行端口的编码和第四下行端口的编码依次增大;所述瘦化的胖树网络结构中第i层上的路由节点di的第一下行端口、第二下行端口、第三下行端口和第四下行端口分别与第i-1层的编码为di-1,0、di-1,1、di-1,2、di-1,3的四个路由节点的连接,所述di-1,0、di-1,1、di-1,2、di-1,3的编码依次增大;所述第i层上的路由节点di的第一上行端口和第二上行端口别与第i+1层的编码为di+1,0、di+1,1的两个路由节点连接,所述di+1,0、di+1,1的编码依次增大;所述瘦化的胖树网络结构中所述第一子网络的源节点的编码均小于所述第二子网络的源节点的标号。
在一个示例性实施例中,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,包括:在所述源终端和所述目标终端的编码以X位二进制数表示的情况下,将所述源终端的编码与所述目标终端的编码进行二进制形式按位异或运算,得到异或结果,其中,X是大于2的整数;通过所述异或结果得到m个有效位;根据所述m个有效位由所述目标父节点通过所述目标子网络中的路由节点的下行端口将所述目标路由请求向下传输至所述目标终端。
在一个示例性实施例中,通过所述异或结果得到m个有效位,包括:删除所述目标终端的编码中的低两位,得到第二目标二进制数;在所述最近的公共父节点所在的目标层的是第m层的情况下,将所述第二目标二进制数从低到高的m个比特位确定为所述m个有效位。
在一个示例性实施例中,所述根据所述m个有效位由所述目标父节点通过所述目标子网络中的路由节点的下行端口将所述目标路由请求向下传输至所述目标终端,包括:在所述目标路由请求向下传输至所述瘦化的胖树网络结构中第r层编码为dr的路由节点的情况下,确定第r-1层中与所述dr连接的四个路由节点的编码dr-1,0、dr-1,1、dr-1,2、dr-1,3r∈{0,1,...m}所述目标层是第m层,m大于或等于1且小于或等于所述l;根据所述m个有效位在所述dr-1,0、dr-1,1、dr-1,2、dr-1,3中确定第一路由节点和第二路由节点;根据所述第一路由节点和所述第二路由节点是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dr发送至所述第一路由节点或所述第二路由节点。
在一个示例性实施例中,确定第r-1层中与所述dr连接的四个路由节点的编码dr-1,0、dr-1,1、dr-1,2、dr-1,3,包括:通过以下公式得到所述dr-1,0、dr-1,1、dr-1,2、dr-1,3:
dr-1,0=bin(2*dr)^bin(0);
dr-1,1=bin(2*dr)^bin(1);
dr-1,2=bin(2*dr)^bin(2);
dr-1,3=bin(2*dr)^bin(3);
其中,bin是将整数转换成二进制数,^为二进制形式按位异或函数。
在一个示例性实施例中,根据所述m个有效位在所述dr-1,0、dr-1,1、dr-1,2、dr-1,3中确定第一路由节点和第二路由节点,包括:对所述dr-1,0、dr-1,1、dr-1,2、dr-1,3进行重新排序,得到d′r-1,0、d′r-1,1、d′r-1,2、d′r-1,3,其中,所述d′r-1,0、d′r-1,1、d′r-1,2、d′r-1,3的编码依次增大;在所述m个有效位中与所述第r层编码为对应的有效位是非零值的情况下,将与所述dr的第三下行端口连接的d′r-1,2确定为所述第一路由节点,将与所述第四下行端口连接的d′r-1,3确定为所述第二路由节点;在所述m个有效位中与所述第r层编码为对应的有效位是零的情况下,将与所述dr的第一下行端口连接的d′r-1,0确定为所述第一路由节点,将与所述dr第二下行端口连接的d′r-1,1确定为所述第二路由节点。
在一个示例性实施例中,所述根据所述第一路由节点和所述第二路由节点是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dr发送至所述第一路由节点或所述第二路由节点,包括:根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点;将所述目标路由请求从所述dr发送至所述第二目标路由节点。
在一个示例性实施例中,根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点,包括:在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,在所述第一路由节点、所述第二路由节点随机选择一个路由节点确定为所述第二目标路由节点;或者,在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,将所述第一路由节点、所述第二路由节点中与所述dr距离最短的路由节点确定为所述第二目标路由节点;或者,在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,将所述第一路由节点、所述第二路由节点中负载最小的路由节点确定为所述第二目标路由节点。
在一个示例性实施例中,根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点,还包括:在所述第一路由节点和所述第二路由节点中的一个路由节点位于所述目标路由节点集合的情况下,将第一路由节点和所述第二路由节点中位于所述目标路由节点集合的节点确定为所述第二目标路由节点。
在一个示例性实施例中,所述瘦化的胖树网络结构中所述第0层的编码为d0的路由节点与编码为s0、s1、s2、s3的四个源节点连接,所述d0与s0、s1、s2、s3之间的关系为:
s0=bin(2*d0)^bin(0);
s1=bin(2*d0)^bin(1);
s2=bin(2*d0)^bin(2);
s3=bin(2*d0)^bin(3);
其中,bin是将整数转换为二进制形式;^为二进制形式按位异或函数,所述源节点是与第0层中的路由节点连接的终端,所述源节点包括:源终端和目标终端;所述由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求发送至所述目标终端,包括:由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求发送至所述目标路由节点,其中,所述目标路由节点是目标终端所连接的节点;所述目标路由节点通过与所述目标终端连接的下行端口将目标路由请求发送至所述目标终端。
根据本申请的另一个实施例,提供了一种发送路由请求的装置,包括:获取模块,用于获取源终端和目标终端的编码,其中,所述源终端、所述目标终端是瘦化的胖树网络结构中的源节点,所述源终端和所述目标终端在同一个子网络;确定模块,用于根据所述源终端和所述目标终端的编码在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,其中,所述公共父节点是所述源终端和目标终端共同的父节点;发送模块,用于根据所述源终端和所述目标终端所在的目标子网络,以及第一路由节点集合和第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,其中,所述目标子网络是第一子网络或第二子网络,所述第一路由节点集合包括所述第一子网络中的路由节点,所述第二路由节点集合包括所述第二子网络中的路由节点。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
通过本申请,获取源终端和目标终端的编码,其中,源终端、目标终端是瘦化的胖树网络结构中的源节点,源终端和目标终端在同一个子网络;根据源终端和目标终端的编码在瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,其中,公共父节点是源终端和目标终端共同的父节点;根据源终端和目标终端所在的目标子网络,以及第一路由节点集合和第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过目标子网络中的路由节点向上传输至目标层上的目标父节点,由目标父节点通过目标子网络中的路由节点将目标路由请求向下传输至目标终端,其中,目标子网络是第一子网络或第二子网络。
由于对瘦化的胖树网路结构以及瘦化的胖树网络所包含的路由节点进行划分,根据源终端和目标终端所在的目标子网络以及划分的路由节点集合,确定中间路由节点,实现目标路由请求从源终端到目标父节点再到目标终端的传输。因此,可以解决相关技术中数据传输过程中子网络间互相打扰的问题,达到子网络间互不打扰的效果。
附图说明
图1是根据本申请实施例的四层瘦化的胖树网络结构示意图;
图2是根据本申请实施例的双主机的瘦化的胖树网络结构示意图;
图3是根据本申请实施例的发送路由请求的方法的服务器设备的硬件结构框图;
图4是根据本申请实施例的发送路由请求的方法的流程图;
图5是根据本申请实施例的路由节点上行端口连接示意图;
图6是根据本申请实施例的路由节点的端口连接示意图;
图7是根据本申请实施例的路由节点与源节点连接的结构示意图;
图8是根据本申请实施例的发送路由请求的装置的结构框图。
具体实施方式
瘦化的胖树网络来源于胖树网络,与传统的胖树网络相比这种瘦化的胖树网络结构有以下优点:
(1)路由节点的层数和节点数大大降低,从而降低了网络的复杂度,减少了高层链路的数量,降低了网络成本;
(2)提高了较高层链路的利用率;
(2)降低了处于较低层的路由节点的链路的负载,降低处于较低层的路由节点的链路的负载;
(4)与传统胖树网络相比,瘦化的胖树网络的网络直径更短,可以有效降低网络传输延时。
图1是根据本申请实施例的四层瘦化的胖树网络结构示意图,如图1所示,扑中结构中的圆圈代表路由节点,每个路由节点含有两进两出共四个链路端口,路由节点自己不产生网络流量,而是负责终端节点所生成流量的传输、路由和中继;拓扑中的方框代表终端节点,每个终端节点都有发出和接受流量的需求,具体拓扑结构如下:
1)第0层路由节点的数量k0与源节点数量n之间的关系:k0=n/2;
2)拓扑结构层数l与源节点数量n之间的关系:l=(log2n)-1;
3)第i层路由节点的数量ki与第i-1层路由节点的数量ki-1的关系:ki=ki-1/2,其中i∈{1,2,...l};
4)第i层的每一个路由节点都与第i-1层的四个路由节点连接,i∈{1,2,…l};
假设第i层的一个路由节点的编码为di,与其链接的第i-1层的编码为di-1,0、di-1,1、di-1,2、di-1,3的四个路由节点的连接,其关系式如下:
di-1,0=bin(2*di)^bin(0)
di-1,1=bin(2*di)^bin(1)
di-1,2=bin(2*di)^bin(2)
di-1,3=bin(2*di)^bin(3)
其中:bin将整数转换为二进制形式;^为二进制形式按位异或函数;
5)第0层的每一个路由节点都与四个源节点连接,假设第0层的一个路由节点的编码为di,与其链接的源节点的编码为s0、s1、s2、s3的四个源节点的连接,其关系式如下:
s0=bin(2*di)^bin(0)
s1=bin(2*di)^bin(1)
s2=bin(2*di)^bin(2)
s3=bin(2*di)^bin(3)
其中:bin将整数转换为二进制形式;^为二进制形式按位异或函数;
6)拓扑结构中每条线都是双向的。
双主机功能是指系统中有两个主机,即一个网络拓扑上链接两个主机,每个主机控制部分的源节点,将网络分成了两个子网,通过双主机共同工作,达到提高系统的可靠性、容错能力和性能的效果。
对于支持双主机的瘦化的胖树拓扑结构,存在两个主机所控制的两个子网路互不干扰的需求,然而,传统的路由算法在选择路由路径时,可能会出现借用相邻子网络的路由节点及路径,实现单个子网内部的源节点互传数据包的情况,例如,图2是根据本申请实施例的双主机的瘦化的胖树网络结构示意图,如图2所示,终端节点0-11及其所属的路由节点由第一个主机控制,属于第一个子网络,第一子网络中第i层包含的路由节点集合D0,i具体如下:
终端节点12-31及其所属的路由节点由第二个主机控制,属于第二个子网络第一子网络中第i层包含的路由节点集合D0,i具体如下:
当第二个子网路的源节点16向源节13传输数据包时,如果用传统的路由算法,其可能存在的一条路径是:
源节点16->路由节点9(第0层)->路由节点5(第1层)->路由节点2(第2层)->路由节点0(第3层)->路由节点0(第2层)->路由节点2(第1层)->路由节点6(第0层)->源节点13;
其中″路由节点0(第2层)->路由节点2(第1层)″的路径属于第一个子网络。也就是说第二个子网络内部传输数据时用到了第一个子网路的路由节点及路径,占用了第一个子网路的路由资源,从而导致两个子网络之间存在互相打扰的情况。
因此,基于上述问题,本申请提出一种适用于双主机控制的瘦化的胖树网络结构的自适应路由算法,根据子网络中各层包含的路由节点的集合,对双主机控制的子网络中各层路由节点集合动态监测,从而避免了数据传输时占用其他子网络路由资源的情况,保证了子网络间互不干扰,实现了数据传输时的自适应路由选择,提高了网络资源的高效利用和数据传输的快速响应。
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器设备或者类似的运算装置中执行。以运行在服务器设备上为例,图3是本申请实施例的发送路由请求的方法的服务器设备的硬件结构框图。如图3所示,服务器设备可以包括一个或多个(图3中仅示出一个)处理器302(处理器302可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器304,其中,上述服务器设备还可以包括用于通信功能的传输设备306以及输入输出设备308。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述服务器设备的结构造成限定。例如,服务器设备还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
存储器304可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的发送路由请求的方法对应的计算机程序,处理器302通过运行存储在存储器304内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器304可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器304可进一步包括相对于处理器302远程设置的存储器,这些远程存储器可以通过网络连接至服务器设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备306用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器设备的通信供应方提供的无线网络。在一个实例中,传输设备306包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种发送路由请求的方法,图4是根据本申请实施例的发送路由请求的方法的流程图,如图4所示,该流程包括如下步骤:
步骤S402,获取源终端和目标终端的编码,其中,所述源终端、所述目标终端是所述瘦化的胖树网络结构中的源节点,所述源终端和所述目标终端在同一个子网络;
上述源终端S可以是数据路由请求的发送节点终端,该终端的编码可以用一个二进制数表示,例如,在四层瘦化的胖树网络结构中,可以使用01100表示终端节点12,上述目标终端D可以是数据路由请求的接收终端,该终端的编码可以用一个二进制数表示,例如,在四层瘦化的胖树网络结构中,可以使用00111表示终端节点7,在需要进行路由时,分别获取源终端和目标终端的二进制表示。
步骤S404,根据所述源终端和所述目标终端的编码在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,其中,所述公共父节点是所述源终端和目标终端共同的父节点;
上述父节点可以是树状结构中当前路由节点所在层的上一层的路由节点中与当前路由节点直接连接的路由节点,上述公共父节点可以是两个路由节点在树状结构中的共同父节点,即两个节点的最低公共祖先节点,例如图1中,第0层节点4的父节点为第1层的节点2、节点3,第0层节点9的父节点为第1层的节点4、节点5,而第0层节点4和节点9的公共父节点为第3层的节点0及节点1。通过对源终端S的二进制表示和目标终端D的二进制表示,在瘦化的胖树网络结构中确定最近的公共父节点所在的层数。
具体地,在所述源终端和所述目标终端的编码以X位二进制数表示的情况下,将所述源终端的编码与所述目标终端的编码进行二进制形式按位异或运算,得到异或结果,其中,X是大于2的整数;通过所述异或结果在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层。
步骤S406,根据所述源终端和所述目标终端所在的目标子网络,以及所述第一路由节点集合和所述第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,其中,所述目标子网络是所述第一子网络或所述第二子网络。
上述目标子网络可以是源终端和目标终端所在的子网络,其中,源终端和目标终端同在一个子网络,该子网络可以是图2所示瘦化的胖树网络结构中的第一子网络或者第二子网络,上述第一路由节点集合包括所述第一子网络中的路由节点,第二路由节点集合包括所述第二子网络中的路由节点,上述目标父节点可以是最近的公共父亲节点所在的层数中任一公共父亲节点。
根据源终端和目标终端所在的目标子网络,以及各个子网络中所包括的路由节点,确定路由节点,并通过确定的路由节点将目标路由请求从源终端发送至目标父节点,再由目标父节点发送至目标终端。
通过上述步骤,获取源终端和目标终端的编码,其中,源终端、目标终端是瘦化的胖树网络结构中的源节点,源终端和目标终端在同一个子网络;根据源终端和目标终端的编码在瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,其中,公共父节点是源终端和目标终端共同的父节点;根据源终端和目标终端所在的目标子网络,以及第一路由节点集合和第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过目标子网络中的路由节点向上传输至目标层上的目标父节点,由目标父节点通过目标子网络中的路由节点将目标路由请求向下传输至目标终端,其中,目标子网络是第一子网络或第二子网络。解决了相关技术中数据传输过程中子网络间互相打扰的问题,达到子网络间互不打扰的效果,提高了网络资源的高效利用和数据传输的快速响应。
其中,上述步骤的执行主体可以为服务器、终端等,但不限于此。
作为一个可选的实施方式,通过所述异或结果在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,包括:删除所述异或结果中的低两位,得到第一目标二进制数;按照从低到高的顺序在所述第一目标二进制数中确定第一个出现的非零值所在的比特位的位数;将所述比特位的位数确定为所述最近的公共父节点所在的目标层的层数。
例如图2所示的瘦化的网络结构中,假设源终端节点S编码为15,目标终端节点D编码为27,其二进制表示分别为S=01111、D=11010,对S和D进行按位异或运算,并删除异或结果中的低两位,得到第一目标二进制数I,其中,第一目标二进制数I的具体计算方式如下:
I=011_^110_=101_
按照从高到低的顺序遍历目标二进制数I中的每一位,将第一个出现的取值为非零的比特位的位数确定为最近公共父节点所在的目标层的层数,其中,该比特位的位数应该从低到高确定,例如上述I=101,可以看出第一个出现的取值为1的bit位为第3位,则最近公共父节点所在的目标层的层数为第3层。
作为一个可选的实施方式,根据所述源终端和目标终端所在的目标子网络,以及所述第一路由节点集合和所述第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,包括:在所述目标路由请求向上传输至所述瘦化的胖树网络结构中第j层编码为dj的路由节点的情况下,确定第j+1层中与所述dj连接的两个路由节点的编码dj+1,0、dj+1,1,i∈{0,1,...m}所述目标层是第m层,m大于或等于1且小于或等于所述,;根据所述dk+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dj发送至所述dj+1,0或所述dj+1,1,其中,在所述目标子网络为所述第一子网络的情况下,所述目标路由节点集合是所述第一路由节点集合,在所述目标子网络为所述第二子网络的情况下,所述目标路由节点集合是所述第二路由节点集合。
上述目标路由节点集合包括目标子网络中的路由节点,该目标路由节点集合可以是第一路由节点集合,也可以是第二路由节点集合,目标路由节点集合中每个路由节点与均上一层的两个路由节点直接连接,图5是根据本申请实施例的路由节点上行端口连接示意图,如图5所示,每个圆圈代表一个路由节点,第j层的每个路由节点dj均与第j+1层的两个路由节点dj+1,0、dj+1,1连接,判断理由第j+1层的路由节点所在的子网络,在第j+1层的路由节点与源终端和目标终端同在目标子网络的情况下,则将目标路由请求从第j层的路由节点dj发送至第j+1层上目标路由节点集合中的路由节点,并重复执行上述步骤,直至将目标路由请求发送至目标父节点。
具体地,根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点;将所述目标路由请求从所述dj发送至所述第一目标路由节点。
例如源终端和目标终端在所在的目标子网络为第一子网络,第j+1层的路由节点di+1,0在第一路由节点集合,路由节点di+1,1在第二路由节点集合,则将路由节点di+1,0确定为第一目标路由节点,同时将目标路由请求从第j层的路由节点dj发送至第j+1层的第一目标路由节点di+1,0。根据源终端、目标终端以及路由节点所在的子网络确定传输的路由节点,有利于确保数据传输只在子网络内部进行,避免了占用相邻子网络的路由资源。
可选地,通过以下公式得到所述dj+1,0、所述dj+1,1:
其中,bin是将整数转换成二进制数,^为二进制形式按位异或函数,是向下取整函数。
作为一个可选的实施方式,根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点,包括:在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,在所述dj+1,0、dj+1,1随机选择一个路由节点确定为所述第一目标路由节点;或者,在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,将所述dj+1,0、dj+1,1中与所述dj距离最短的路由节点确定为所述第一目标路由节点;或者,在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,将所述dj+1,0、dj+1,1中负载最小的路由节点确定为所述第一目标路由节点。
上述选取第一目标路由节点的方式可以根据具体的应用场景和系统需求进行选择,例如,通过随机选择一个路由节点可以增加系统的随机性,降低节点负载不均衡的风险;通过选择距离最短的路由节点可以减少数据传输的延迟,提高系统的实时性;通过选择负载最小的路由节点可以有效平衡系统的负载,减少单个节点的压力,提高系统的稳定性和可靠性等。
作为一个可选的实施方式,根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点,还包括:在dj+1,0、dj+1,1中的一个路由节点位于所述目标路由节点集合的情况下,将dj+1,0、dj+1,1中位于所述目标路由节点集合的节点确定为所述第一目标路由节点。
作为一个可选的实施方式,所述瘦化的胖树网络结构中每个所述路由节点,包括:两个上行端口和四个下行端口,两个上行端口分别为:第一上行端口和第二上行端口,所述第一上行端口的编码小于所述第二上行端口的编码;四个下行端口分别为:第一下行端口、第二下行端口、第三下行端口和第四下行端口,所述第一下行端口的编码、第二下行端口的编码、第三下行端口的编码和第四下行端口的编码依次增大;所述瘦化的胖树网络结构中第i层上的路由节点di的第一下行端口、第二下行端口、第三下行端口和第四下行端口分别与第i-1层的编码为di-1,0、di-1,1、di-1,2、di-1,3的四个路由节点的连接,所述di-1,0、di-1,1、di-1,2、di-1,3的编码依次增大;所述第i层上的路由节点di的第一上行端口和第二上行端口别与第i+1层的编码为di+1,0、di+1,1的两个路由节点连接,所述di+1,0、di+1,1的编码依次增大;所述瘦化的胖树网络结构中所述第一子网络的源节点的编码均小于所述第二子网络的源节点的标号。
上述瘦化的胖树网络结构可以划分为多个子网络,例如2个、3个、4个等,每个子网络的所包含的源节点和路由节点的数量不设限制,只需要保证每个子网络中的源节点均是相邻的。以两个子网络为例,将瘦化的胖树网路结构划分为两个子网络一第一子网络和第二子网络,其中第一子网络和第二子网络可以随意划分,只要满足第一个子网络的源节点标号都比第二子网络的源节点标号小,即保证两个子网络中的源节点均为相邻的,两个子网络可以相互独立,互不干扰,例如图2所示,源节点0-11属于第一子网络,源节点12-31属于第二子网络。
上述瘦化的胖树网结构中,每个路由节点均与六个路由节点直接连接,例如,图6是根据本申请实施例的路由节点的端口连接示意图,如图6示,每个圆圈代表一个路由节点,第i层的每个路由节点均与第i+1层的两个理由节点以及第i-1层的四个路由节点相连,其中,第i+1层的路由节点di+1,0、di+1,1分别对应编码为1和2的第一上行端口和第二上行端口,第i-1层的路由节点di-1,0、di-1,1、di-1,2、di-1,3分别对应编码为1、2、3、4的第一下行端口、第二下行端口、第三下行端口、第四下行端口,每个路由节点通过与多个上行端口及多个下行端口连接,可以增强网络的灵活性和容错能力,提高数据传输的效率和可靠性。
作为一个可选的实施方式,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,包括:在所述源终端和所述目标终端的编码以X位二进制数表示的情况下,将所述源终端的编码与所述目标终端的编码进行二进制形式按位异或运算,得到异或结果,其中,X是大于2的整数;通过所述异或结果得到m个有效位;根据所述m个有效位由所述目标父节点通过所述目标子网络中的路由节点的下行端口将所述目标路由请求向下传输至所述目标终端。
上述m个有效位可以是根据源终端的编码S与目标终端的编码D进行二进制形式按位异或运算得到的异或结果确定,按照从高到低的顺序遍历m个有效位,根据每个有效位上的取值,确定与每个有效位对应的路由节点的下行端口,通过确定的下行端口将目标路由请求先下发送至目标终端。
具体地,删除所述目标终端的编码中的低两位,得到第二目标二进制数;在所述最近的公共父节点所在的目标层的是第m层的情况下,将所述第二目标二进制数从低到高的m个比特位确定为所述m个有效位。
例如,源终端节点S编码为9,目标终端节点D编码为1,其二进制表示分别为S=01001、D=00001,对S和D进行按位异或运算,并删除异或结果中的低两位,得到第一目标二进制数I,其中,第一目标二进制数I的具体计算方式如下:
I=010_^000_=010_
通过该第一目标二进制数I可以看出,最近的公共父节点所在的目标层的是第2层;截取目标终端二进制表示的低两位,得到第二目标二进制数,将第二目标二进制数中从低到高的两位确定为目标二进制数DI=_00__。
作为一个可选的实施方式,所述根据所述m个有效位由所述目标父节点通过所述目标子网络中的路由节点的下行端口将所述目标路由请求向下传输至所述目标终端,包括:在所述目标路由请求向下传输至所述瘦化的胖树网络结构中第r层编码为dr的路由节点的情况下,确定第r-1层中与所述dr连接的四个路由节点的编码dr-1,0、dr-1,1、dr-1,2、dr-1,3r∈{0,1,...m}所述目标层是第m层,m大于或等于1且小于或等于所述l;根据所述m个有效位在所述dr-1,0、dr-1,1、dr-1,2、dr-1,3中确定第一路由节点和第二路由节点;根据所述第一路由节点和所述第二路由节点是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dr发送至所述第一路由节点或所述第二路由节点。
如图6所示,每个路由节点均与下一层的四个路由节点连接,根据目标终端二进制表示的m个有效位DI上每个有效位的取值,确定每个有效位对应的路由节点dr的第一路由节点和第二路由节点,根据第一路由节点和第二路由节点所在的子网络,将所述目标路由请求从dr发送至所述第一路由节点或所述第二路由节点。
具体地,对所述dr-1,0、dr-1,1、dr-1,2、dr-1,3进行重新排序,得到d′r-1,0、d′r-1,1、d′r-1,2、d′r-1,3,其中,所述d′r-1,0、d′r-1,1、d′r-1,2、d′r-1,3的编码依次增大;在所述m个有效位中与所述第r层编码为对应的有效位是非零值的情况下,将与所述dr的第三下行端口连接的d′r-1,2确定为所述第一路由节点,将与所述第四下行端口连接的d′r-1,3确定为所述第二路由节点;在所述m个有效位中与所述第r层编码为对应的有效位是零的情况下,将与所述dr的第一下行端口连接的d′r-1,0确定为所述第一路由节点,将与所述dr第二下行端口连接的d′r-1,1确定为所述第二路由节点。
可选地,通过以下公式得到所述dr-1,0、dr-1,1、dr-1,2、dr-1,3:
dr-1,0=bin(2*dr)^bin(0);
dr-1,1=bin(2*dr)^bin(1);
dr-1,2=bin(2*dr)^bin(2);
dr-1,3=bin(2*dr)^bin(3);
其中,bin是将整数转换成二进制数,^为二进制形式按位异或函数。
作为一个可选的实施方式,所述根据所述第一路由节点和所述第二路由节点是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dr发送至所述第一路由节点或所述第二路由节点,包括:根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点;将所述目标路由请求从所述dr发送至所述第二目标路由节点。
例如源终端和目标终端在所在的目标子网络为第二子网络,第一路由节点在第一路由节点集合,第二路由节点在第二路由节点集合,则将第二路由节点确定为第二目标路由节点,同时将目标路由请求从dr发送至二目标路由节点。根据源终端、目标终端以及路由节点所在的子网络确定传输的路由节点,有利于确保数据传输只在子网络内部进行,避免了占用相邻子网络的路由资源。
具体地,在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,在所述第一路由节点、所述第二路由节点随机选择一个路由节点确定为所述第二目标路由节点;或者,在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,将所述第一路由节点、所述第二路由节点中与所述dr距离最短的路由节点确定为所述第二目标路由节点;或者,在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,将所述第一路由节点、所述第二路由节点中负载最小的路由节点确定为所述第二目标路由节点。
上述选取第二目标路由节点的方式可以根据具体的应用场景和系统需求进行选择,例如,通过随机选择一个路由节点可以增加系统的随机性,降低节点负载不均衡的风险;通过选择距离最短的路由节点可以减少数据传输的延迟,提高系统的实时性;通过选择负载最小的路由节点可以有效平衡系统的负载,减少单个节点的压力,提高系统的稳定性和可靠性等。
作为一个可选的实施方式,根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点,还包括:在所述第一路由节点和所述第二路由节点中的一个路由节点位于所述目标路由节点集合的情况下,将第一路由节点和所述第二路由节点中位于所述目标路由节点集合的节点确定为所述第二目标路由节点。
作为一个可选的实施方式,所述瘦化的胖树网络结构中所述第0层的编码为d0的路由节点与编码为s0、s1、s2、s3的四个源节点连接,所述d0与s0、s1、s2、s3之间的关系为:
s0=bin(2*d0)^bin(0);
s1=bin(2*d0)^bin(1);
s2=bin(2*d0)^bin(2);
s3=bin(2*d0)^bin(3);
其中,bin是将整数转换为二进制形式;^为二进制形式按位异或函数,所述源节点是与第0层中的路由节点连接的终端,所述源节点包括:源终端和目标终端;所述由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求发送至所述目标终端,包括:由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求发送至所述目标路由节点,其中,所述目标路由节点是目标终端所连接的节点;所述目标路由节点通过与所述目标终端连接的下行端口将目标路由请求发送至所述目标终端。
图7是根据本申请实施例的路由节点与源节点连接的结构示意图,如图7所示,圆圈表示路由节点,每个方块表示一个源节点,每个路由节点与四个源节点相连,根据目标终端二进制表示的后两位选择对应的端口,将目标路由请求从目标路由节点发送至目标终端,例如后两位为00,则选择S0端口;后两位为01,则选择S1端口;后两位为10,则选择S2端口;后两位为11,则选择S3端口。
作为一个可选的实施方式,以图2瘦化的胖树网络拓扑为例,假设位于第二子网络的源终端S=10000(编码16)向同样位于第一子网络的目标终端D=01101(编码13)发送目标路由请求,具体路由方法如下所示:
步骤S0,根据两个网络的划分路由节点集合:
计算第一子网络第i层包含的路由节点集合D0,i和第二子网络第i层包含的路由节点集合D1,i,如图2所示,第一子网络各层包含的路由节点集合为:
第二子网络各层包含的路由节点集合为:
步骤S1,对源终端S和目标终端D的二进制表示按位进行异或,异或结果去掉最低两位,结果记为I=100_^011_=111_。
步骤S2,确定源终端S和目标终端D最近的公共父节点所在的层数:
从高到低查看I中第一次出现取值为″1″的bit位,在第3位,则S和D最近的公共父节点在第3层。I的有效位m为从低到高的3位。
步骤S3,从S向上路由到S和D一个最近的公共父节点F:
S301,当前目标路由请求在S,计算与S连接的第0层的两个路由节点的编码d0,0、d′0,1,具体计算公式如下:
d0,0=bin(di/2)=1000
d0,1=bin(di/2)^bin(1)=1001
判断d0,0、d0,1是否位于第二子网络第0层的路由节点集合D1,0中:d0,0、d0,1都位于D1,0中,则可以通过S向上的两个端口的任意一个端口向上路由;假设通过S向上的端口2到达了d0,1=1001,但未到达最近的公共父节点F所在的第3层,继续向上路由;
S302,当前目标路由请求在d0,1=1001;计算与d0,1=1001连接的第1层的两个路由节点的编码d1,0、d1,1,具体计算公式如下:
d1,0=bin(d0,1/2)=0100
d1,1=bin(d0,1/2)^bin(1)=0101
判断d1,0、d1,1是否位于第二子网络第1层的路由节点集合D1,1中:d1,0、d1,1都位于D1,1中,则可以通过d0,1=1001向上的两个端口的任意一个端口向上路由;假设通过d0,1=1001向上的端口2到达了d1,1=0101,但未到达最近的公共父节点F所在的第3层,继续向上路由;
S303,当前目标路由请求在d1,1=0101;计算与d1,1=0101连接的第2层的两个路由节点的编码d2,0、d2,1,具体计算公式如下:
d2,0=bin(d1,1/2)=0010
d2,1=bin(d1,1/2)^bin(1)=0011
判断d2,0、d2,1是否位于第二子网络第2层的路由节点集合D1,2中:d2,0、d2,1都位于D1,2中,则可以通过d1,1=0101向上的两个端口的任意一个端口向上路由;假设通过d1,1=0101向上的端口1到达了d2,0=0010,但未到达最近的公共父节点F所在的第3层,继续向上路由;
S304,当前目标路由请求在d2,0=0010;计算与d2,0=0010连接的第3层的两个路由节点的编码d3,0、d3,1,具体计算公式如下:
d3,0=bin(d2,0/2)=0000
d3,1=bin(d2,0/2)^bin(1)=0001
判断d3,0、d3,1是否位于第二子网络第3层的路由节点集合D1,3中:d3,0、d3,1都位于D1,3中,则可以通过d2,0=0010向上的两个端口的任意一个端口向上路由;假设通过d2,0=0010向上的端口2到达了d3,1=0001,则到达了最近的公共父节点d3,1=0001,即到达了目标层第3层的目标父节点(最近的公共父节点F),开始向下路由。
步骤S4,由第三层的目标父节点0001向下路由至目标终端D=01101所连接的第0层的路由节点0110:
根据I的有效位,截取D对应的要有效位,得到DI=011__;从高到低查看DI的有效位,对于每位有效位执行以下步骤:
S101,DI从高到低的第一个有效位为0,此时已经路由到第3层的路由节点d3,1=0001;计算与d3,1=0001所连接的第2层的四个路由节点d2,0、d2,1、d2,2、d2,3,具体计算方式如下:
d2,0=bin(2*d3)^bin(0)=0010
d2,1=bin(2*d3)^bin(1)=0011
d2,2=bin(2*d3)^bin(2)=0000
d2,3=bin(2*d3)^bin(3)=0001
对四个路由节点按照从小到大进行排序,得到d′2,0=0000、d′2,1=0001、d′2,2=0010、d′2,3=0011;此时有效位则选择左侧标号为1和2的向下输出端口向下路由到下一层,此时只关注d′2,0=0000、d′2,1=0001;判断d′2,0=0000、d′2,1=0001所在的路由节点集合,由于只有d′2,1位于D1,2中,则选择标号为2的向下输出端口向下路由到下一层;此时到达第2层的d′2,1=0001;有效位没有遍历完成,继续向下路由;
S102,DI从高到低的第二个有效位为1,此时已经路由到第2层的路由节点d′2,1=0001;计算与d′2,1=0001所连接的第1层的四个路由节点d1,0、d1,1、d1,2、d1,3,具体计算方式如下:
d1,0=bin(2*d2,1)^bin(0)=0010
d1,1=bin(2*d2,1)^bin(1)=0011
d1,2=bin(2*d2,1)^bin(2)=0000
d1,3=bin(2*d2,1)^bin(3)=0001
对四个路由节点按照从小到大进行排序,得到d′1,0=0000、d′1,1=0001、d′1,2=0010、d′1,3=0011;此时有效位则选择右侧标号为3和4的向下输出端口向下路由到下一层,此时只关注d′1,2=0010、d′1,3=0011;判断d′1,2=0010、d′1,3=0011所在的路由节点集合,由于只有d′1,3=0011位于D1,1中,则选择标号为4的向下输出端口向下路由到下一层;此时到达第1层的d′1,3=0011;有效位没有遍历完成,继续向下路由;
S103,DI从高到低的第三个有效位为1,此时已经路由到第1层的路由节点d′1,3=0011;计算与d′1,3=0011所连接的第0层的四个路由节点d0,0、d0,1、d0,2、d0,3,具体计算方式如下:
d0,0=bin(2*d1,3)^bin(0)=0110
d0,1=bin(2*d1,3)^bin(1)=0111
d0,2=bin(2*d1,3)^bin(2)=0100
d0,3=bin(2*d1,3)^bin(3)=0101
对四个路由节点按照从小到大进行排序,得到d′0,0=0100、d′0,1=0101、d′0,2=0110、d′0,3=0111;此时有效位则选择右侧标号为3和4的向下输出端口向下路由到下一层,此时只关注d′0,2=0110、d′0,3=0111;判断d′0,2=0110、d′0,3=0111所在的路由节点集合,由于d′0,2=0110、d′0,3=0111都位于D1,0中,则选择标号为3或4的向下输出端口向下路由到下一层;假设选择来的标号为4的端口向下路由,此时到达第0层的d′0,3=0111;有效位遍历完成。
步骤S5,从目标终端D所连接的第0层的路由节点向目标终端D路由:查看D的最低两位取值为01,则从第0层与D连接的路由节点d′0,3=0111对应的输出端口S1路由到目标终端D即可,此时到达目标D=01101,路由结束。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在本实施例中还提供了一种装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的发送路由请求的装置的结构框图,如图8所示,该装置包括:获取模块802,用于获取源终端和目标终端的编码,其中,所述源终端、所述目标终端是瘦化的胖树网络结构中的源节点,所述源终端和所述目标终端在同一个子网络;确定模块804,用于根据所述源终端和所述目标终端的编码在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,其中,所述公共父节点是所述源终端和目标终端共同的父节点;发送模块806,用于根据所述源终端和所述目标终端所在的目标子网络,以及第一路由节点集合和第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,其中,所述目标子网络是第一子网络或第二子网络,所述第一路由节点集合包括所述第一子网络中的路由节点,所述第二路由节点集合包括所述第二子网络中的路由节点。
在一个示例性实施例中,所述装置还用于在所述源终端和所述目标终端的编码以X位二进制数表示的情况下,将所述源终端的编码与所述目标终端的编码进行二进制形式按位异或运算,得到异或结果,其中,X是大于2的整数;通过所述异或结果在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层。
在一个示例性实施例中,所述装置还用于删除所述异或结果中的低两位,得到第一目标二进制数;按照从低到高的顺序在所述第一目标二进制数中确定第一个出现的非零值所在的比特位的位数;将所述比特位的位数确定为所述最近的公共父节点所在的目标层的层数。
在一个示例性实施例中,所述装置还用于在所述目标路由请求向上传输至所述瘦化的胖树网络结构中第j层编码为dj的路由节点的情况下,确定第j+1层中与所述dj连接的两个路由节点的编码dj+1,0、dj+1,1,i∈{0,1,...m}所述目标层是第m层,m大于或等于1且小于或等于所述l;根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dj发送至所述dj+1,0或所述dj+1,1,其中,在所述目标子网络为所述第一子网络的情况下,所述目标路由节点集合是所述第一路由节点集合,在所述目标子网络为所述第二子网络的情况下,所述目标路由节点集合是所述第二路由节点集合。
在一个示例性实施例中,所述装置还用于通过以下公式得到所述dj+1,0、所述dj+1,1:
其中,bin是将整数转换成二进制数,^为二进制形式按位异或函数,是向下取整函数。
在一个示例性实施例中,所述装置还用于根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点;将所述目标路由请求从所述dj发送至所述第一目标路由节点。
在一个示例性实施例中,所述装置还用于在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,在所述dj+1,0、dj+1,1随机选择一个路由节点确定为所述第一目标路由节点;或者,在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,将所述dj+1,0、dj+1,1中与所述dj距离最短的路由节点确定为所述第一目标路由节点;或者,在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,将所述dj+1,0、dj+1,1中负载最小的路由节点确定为所述第一目标路由节点。
在一个示例性实施例中,所述装置还用于在dj+1,0、dj+1,1中的一个路由节点位于所述目标路由节点集合的情况下,将dj+1,0、dj+1,1中位于所述目标路由节点集合的节点确定为所述第一目标路由节点。
在一个示例性实施例中,所述瘦化的胖树网络结构中每个所述路由节点,包括:两个上行端口和四个下行端口,两个上行端口分别为:第一上行端口和第二上行端口,所述第一上行端口的编码小于所述第二上行端口的编码;四个下行端口分别为:第一下行端口、第二下行端口、第三下行端口和第四下行端口,所述第一下行端口的编码、第二下行端口的编码、第三下行端口的编码和第四下行端口的编码依次增大;所述瘦化的胖树网络结构中第i层上的路由节点di的第一下行端口、第二下行端口、第三下行端口和第四下行端口分别与第i-1层的编码为di-1,0、di-1,1、di-1,2、di-1,3的四个路由节点的连接,所述di-1,0、di-1,1、di-1,2、di-1,3的编码依次增大;所述第i层上的路由节点di的第一上行端口和第二上行端口别与第i+1层的编码为di+1,0、di+1,1的两个路由节点连接,所述di+1,0、di+1,1的编码依次增大;所述瘦化的胖树网络结构中所述第一子网络的源节点的编码均小于所述第二子网络的源节点的标号。
在一个示例性实施例中,所述装置还用于在所述源终端和所述目标终端的编码以X位二进制数表示的情况下,将所述源终端的编码与所述目标终端的编码进行二进制形式按位异或运算,得到异或结果,其中,X是大于2的整数;通过所述异或结果得到m个有效位;根据所述m个有效位由所述目标父节点通过所述目标子网络中的路由节点的下行端口将所述目标路由请求向下传输至所述目标终端。
在一个示例性实施例中,所述装置还用于删除所述目标终端的编码中的低两位,得到第二目标二进制数;在所述最近的公共父节点所在的目标层的是第m层的情况下,将所述第二目标二进制数从低到高的m个比特位确定为所述m个有效位。
在一个示例性实施例中,所述装置还用于在所述目标路由请求向下传输至所述瘦化的胖树网络结构中第r层编码为dr的路由节点的情况下,确定第r-1层中与所述dr连接的四个路由节点的编码dr-1,0、dr-1,1、dr-1,2、dr-1,3r∈{0,1,...m}所述目标层是第m层,m大于或等于1且小于或等于所述l;根据所述m个有效位在所述dr-1,0、dr-1,1、dr-1,2、dr-1,3中确定第一路由节点和第二路由节点;根据所述第一路由节点和所述第二路由节点是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dr发送至所述第一路由节点或所述第二路由节点。
在一个示例性实施例中,所述装置还用于通过以下公式得到所述dr-1,0、dr-1,1、dr-1,2、dr-1,3:
dr-1,0=bin(2*dr)^bin(0);
dr-1,1=bin(2*dr)^bin(1);
dr-1,2=bin(2*dr)^bin(2);
dr-1,3=bin(2*dr)^bin(3);
其中,bin是将整数转换成二进制数,^为二进制形式按位异或函数。
在一个示例性实施例中,所述装置还用于对所述dr-1,0、dr-1,1、dr-1,2、dr-1,3进行重新排序,得到d′r-1,0、d′r-1,1、d′r-1,2、d′r-1,3,其中,所述d′r-1,0、d′r-1,1、d′r-1,2、d′r-1,3的编码依次增大;在所述m个有效位中与所述第r层编码为对应的有效位是非零值的情况下,将与所述dr的第三下行端口连接的d′r-1,2确定为所述第一路由节点,将与所述第四下行端口连接的d′r-1,3确定为所述第二路由节点;在所述m个有效位中与所述第r层编码为对应的有效位是零的情况下,将与所述dr的第一下行端口连接的d′r-1,0确定为所述第一路由节点,将与所述dr第二下行端口连接的d′r-1,1确定为所述第二路由节点。
在一个示例性实施例中,所述装置还用于根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点;将所述目标路由请求从所述dr发送至所述第二目标路由节点。
在一个示例性实施例中,所述装置还用于在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,在所述第一路由节点、所述第二路由节点随机选择一个路由节点确定为所述第二目标路由节点;或者,在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,将所述第一路由节点、所述第二路由节点中与所述dr距离最短的路由节点确定为所述第二目标路由节点;或者,在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,将所述第一路由节点、所述第二路由节点中负载最小的路由节点确定为所述第二目标路由节点。
在一个示例性实施例中,所述装置还用于在所述第一路由节点和所述第二路由节点中的一个路由节点位于所述目标路由节点集合的情况下,将第一路由节点和所述第二路由节点中位于所述目标路由节点集合的节点确定为所述第二目标路由节点。
在一个示例性实施例中,所述装置还用于由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求发送至所述目标路由节点,其中,所述目标路由节点是目标终端所连接的节点;所述目标路由节点通过与所述目标终端连接的下行端口将目标路由请求发送至所述目标终端;所述瘦化的胖树网络结构中所述第0层的编码为d0的路由节点与编码为s0、s1、s2、s3的四个源节点连接,所述d0与s0、s1、s2、s3之间的关系为:
s0=bin(2*d0)^bin(0);
s1=bin(2*d0)^bin(1);
s2=bin(2*d0)^bin(2);
s3=bin(2*d0)^bin(3);
其中,bin是将整数转换为二进制形式;^为二进制形式按位异或函数,所述源节点是与第0层中的路由节点连接的终端,所述源节点包括:源终端和目标终端。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本申请的实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (22)
1.一种发送路由请求的方法,其特征在于,应用于瘦化的胖树网络结构,所述瘦化的胖树网络结构的总层数,与源节点总数量n之间的关系:l=(log2n)-1,第i层路由节点的数量ki与第i-1层路由节点的数量ki-1之间的关系:ki=ki-1/2,i∈{1,2,...l},l是大于或等于1的整数,所述瘦化的胖树网络结构被分成了第一子网络和第二子网络,第一路由节点集合包括所述第一子网络中的路由节点,第二路由节点集合包括所述第二子网络中的路由节点,所述方法还包括:
获取源终端和目标终端的编码,其中,所述源终端、所述目标终端是所述瘦化的胖树网络结构中的源节点,所述源终端和所述目标终端在同一个子网络;
根据所述源终端和所述目标终端的编码在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,其中,所述公共父节点是所述源终端和目标终端共同的父节点;根据所述源终端和所述目标终端所在的目标子网络,以及所述第一路由节点集合和所述第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,其中,所述目标子网络是所述第一子网络或所述第二子网络。
2.根据权利要求1所述的方法,其特征在于,根据所述源终端和所述目标终端的编码在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,包括:
在所述源终端和所述目标终端的编码以X位二进制数表示的情况下,将所述源终端的编码与所述目标终端的编码进行二进制形式按位异或运算,得到异或结果,其中,X是大于2的整数;
通过所述异或结果在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层。
3.根据权利要求2所述的方法,其特征在于,通过所述异或结果在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,包括:
删除所述异或结果中的低两位,得到第一目标二进制数;
按照从低到高的顺序在所述第一目标二进制数中确定第一个出现的非零值所在的比特位的位数;
将所述比特位的位数确定为所述最近的公共父节点所在的目标层的层数。
4.根据权利要求1所述的方法,其特征在于,根据所述源终端和目标终端所在的目标子网络,以及所述第一路由节点集合和所述第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,包括:
在所述目标路由请求向上传输至所述瘦化的胖树网络结构中第j层编码为dj的路由节点的情况下,确定第j+1层中与所述dj连接的两个路由节点的编码dj+1,0、dj+1,1,i∈{0,1,...m},所述目标层是第m层,m大于或等于1且小于或等于所述l;
根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dj发送至所述dj+1,0或所述dj+1,1,其中,在所述目标子网络为所述第一子网络的情况下,所述目标路由节点集合是所述第一路由节点集合,在所述目标子网络为所述第二子网络的情况下,所述目标路由节点集合是所述第二路由节点集合。
5.根据权利要求4所述的方法,其特征在于,在所述目标路由请求传输至所述瘦化的胖树网络结构中第j层编码为dj的路由节点的情况下,确定第j+1层中与所述dj连接的两个路由节点的编码dj+1,0、dj+1,1,包括:
通过以下公式得到所述dj+1,0、所述dj+1,1:
其中,bin是将整数转换成二进制数,∧为二进制形式按位异或函数,是向下取整函数。
6.根据权利要求4所述的方法,其特征在于,根据所述源终端和目标终端所在的目标子网络,以及所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dj发送至所述dj+1,0或所述dj+1,1,包括:
根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点;
将所述目标路由请求从所述dj发送至所述第一目标路由节点。
7.根据权利要求6所述的方法,其特征在于,根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点,包括:
在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,在所述dj+1,0、dj+1,1随机选择一个路由节点确定为所述第一目标路由节点;或者,
在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,将所述dj+1,0、dj+1,1中与所述dj距离最短的路由节点确定为所述第一目标路由节点;或者,
在所述dj+1,0、dj+1,1均位于所述目标路由节点集合的情况下,将所述dj+1,0、dj+1,1中负载最小的路由节点确定为所述第一目标路由节点。
8.根据权利要求6所述的方法,其特征在于,根据所述dj+1,0、dj+1,1是否位于所述目标子网络对应的目标路由节点集合,在所述dj+1,0、dj+1,1确定第一目标路由节点,还包括:
在dj+1,0、dj+1,1中的一个路由节点位于所述目标路由节点集合的情况下,将dj+1,0、dj+1,1中位于所述目标路由节点集合的节点确定为所述第一目标路由节点。
9.根据权利要求1所述的方法,其特征在于,所述瘦化的胖树网络结构中每个所述路由节点,包括:
两个上行端口和四个下行端口,两个上行端口分别为:第一上行端口和第二上行端口,所述第一上行端口的编码小于所述第二上行端口的编码;
四个下行端口分别为:第一下行端口、第二下行端口、第三下行端口和第四下行端口,所述第一下行端口的编码、第二下行端口的编码、第三下行端口的编码和第四下行端口的编码依次增大;
所述瘦化的胖树网络结构中第i层上的路由节点di的第一下行端口、第二下行端口、第三下行端口和第四下行端口分别与第i-1层的编码为di-1,0、di-1,1、di-1,2、di-1,3的四个路由节点的连接,所述di-1,0、di-1,1、di-1,2、di-1,3的编码依次增大;
所述第i层上的路由节点di的第一上行端口和第二上行端口别与第i+1层的编码为di+1,0、di+1,1的两个路由节点连接,所述di+1,0、di+1,1的编码依次增大;
所述瘦化的胖树网络结构中所述第一子网络的源节点的编码均小于所述第二子网络的源节点的标号。
10.根据权利要求9所述的方法,其特征在于,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,包括:
在所述源终端和所述目标终端的编码以X位二进制数表示的情况下,将所述源终端的编码与所述目标终端的编码进行二进制形式按位异或运算,得到异或结果,其中,X是大于2的整数;
通过所述异或结果得到m个有效位;
根据所述m个有效位由所述目标父节点通过所述目标子网络中的路由节点的下行端口将所述目标路由请求向下传输至所述目标终端。
11.根据权利要求10所述的方法,其特征在于,通过所述异或结果得到m个有效位,包括:
删除所述目标终端的编码中的低两位,得到第二目标二进制数;
在所述最近的公共父节点所在的目标层的是第m层的情况下,将所述第二目标二进制数从低到高的m个比特位确定为所述m个有效位。
12.根据权利要求10所述的方法,其特征在于,所述根据所述m个有效位由所述目标父节点通过所述目标子网络中的路由节点的下行端口将所述目标路由请求向下传输至所述目标终端,包括:
在所述目标路由请求向下传输至所述瘦化的胖树网络结构中第r层编码为dr的路由节点的情况下,确定第r-1层中与所述dr连接的四个路由节点的编码dr-1,0、dr-1,1、dr-1,2、dr-1,3r∈{0,1,...m},所述目标层是第m层,m大于或等于1且小于或等于所述l;
根据所述m个有效位在所述dr-1,0、dr-1,1、dr-1,2、dr-1,3中确定第一路由节点和第二路由节点;
根据所述第一路由节点和所述第二路由节点是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dr发送至所述第一路由节点或所述第二路由节点。
13.根据权利要求12所述的方法,其特征在于,确定第r-1层中与所述dr连接的四个路由节点的编码dr-1,0、dr-1,1、dr-1,2、dr-1,3,包括:
通过以下公式得到所述dr-1,0、dr-1,1、dr-1,2、dr-1,3:
dr-1,0=bin(2*dr)∧bin(0);
dr-1,1=bin2*dr)∧bin(1);
dr-1,2=bin(2*dr)∧bin(2);
dr-1,3=bin(2*dr)∧bin(3);
其中,bin是将整数转换成二进制数,∧为二进制形式按位异或函数。
14.根据权利要求12所述的方法,其特征在于,根据所述m个有效位在所述dr-1,0、dr-1,1、dr-1,2、dr-1,3中确定第一路由节点和第二路由节点,包括;
对所述dr-1,0、dr-1,1、dr-1,2、dr-1,3进行重新排序,得到d′r-1,0、d′r-1,1、d′r-1,2、d′r-1,3,其中,所述d′r-1,0、d′r-1,1、d′r-1,2、d′r-1,3的编码依次增大;
在所述m个有效位中与所述第r层编码为对应的有效位是非零值的情况下,将与所述dr的第三下行端口连接的d′r-1,2确定为所述第一路由节点,将与所述第四下行端口连接的d′r-1,3确定为所述第二路由节点;
在所述m个有效位中与所述第r层编码为对应的有效位是零的情况下,将与所述dr的第一下行端口连接的d′r-1,0确定为所述第一路由节点,将与所述dr第二下行端口连接的d′r-1,1确定为所述第二路由节点。
15.根据权利要求12所述的方法,其特征在于,所述根据所述第一路由节点和所述第二路由节点是否位于所述目标子网络对应的目标路由节点集合,将所述目标路由请求从所述dr发送至所述第一路由节点或所述第二路由节点,包括:
根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点;
将所述目标路由请求从所述dr发送至所述第二目标路由节点。
16.根据权利要求15所述的方法,其特征在于,根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点,包括:
在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,在所述第一路由节点、所述第二路由节点随机选择一个路由节点确定为所述第二目标路由节点;或者,
在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,将所述第一路由节点、所述第二路由节点中与所述dr距离最短的路由节点确定为所述第二目标路由节点;或者,
在所述第一路由节点、所述第二路由节点均位于所述目标路由节点集合的情况下,将所述第一路由节点、所述第二路由节点中负载最小的路由节点确定为所述第二目标路由节点。
17.根据权利要求15所述的方法,其特征在于,根据所述第一路由节点、所述第二路由节点是否位于所述目标路由节点集合,在所述第一路由节点、所述第二路由节点中确定第二目标路由节点,还包括:
在所述第一路由节点和所述第二路由节点中的一个路由节点位于所述目标路由节点集合的情况下,将第一路由节点和所述第二路由节点中位于所述目标路由节点集合的节点确定为所述第二目标路由节点。
18.根据权利要求1至17中任一项所述的方法,其特征在于,所述瘦化的胖树网络结构中第0层的编码为d0的路由节点与编码为s0、s1、s2、s3的四个源节点连接,所述d0与s0、s1、s2、s3之间的关系为:
s0=bin(2*d0)∧bin(0);
s1=bin(2*d0)∧bin(1);
s2=bin(2*d0)∧bin(2);
s3=bin(2*d0)∧bin(3);
其中,bin是将整数转换为二进制形式;∧为二进制形式按位异或函数,所述源节点是与第0层中的路由节点连接的终端,所述源节点包括:源终端和目标终端;
所述由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求发送至所述目标终端,包括:
由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求发送至所述目标路由节点,其中,所述目标路由节点是目标终端所连接的节点;
所述目标路由节点通过与所述目标终端连接的下行端口将目标路由请求发送至所述目标终端。
19.一种发送路由请求的装置,其特征在于,包括:
获取模块,用于获取源终端和目标终端的编码,其中,所述源终端、所述目标终端是瘦化的胖树网络结构中的源节点,所述源终端和所述目标终端在同一个子网络;
确定模块,用于根据所述源终端和所述目标终端的编码在所述瘦化的胖树网络结构中确定最近的公共父节点所在的目标层,其中,所述公共父节点是所述源终端和目标终端共同的父节点;
发送模块,用于根据所述源终端和所述目标终端所在的目标子网络,以及第一路由节点集合和第二路由节点集合中所包括的路由节点,将源终端发送的目标路由请求通过所述目标子网络中的路由节点向上传输至所述目标层上的目标父节点,由所述目标父节点通过所述目标子网络中的路由节点将所述目标路由请求向下传输至所述目标终端,其中,所述目标子网络是第一子网络或第二子网络,所述第一路由节点集合包括所述第一子网络中的路由节点,所述第二路由节点集合包括所述第二子网络中的路由节点。
20.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至18任一项中所述的方法的步骤。
21.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,
所述处理器执行所述计算机程序时实现权利要求1至18任一项中所述的方法的步骤。
22.一种计算机程序产品,包括计算机程序,其特征在于,
所述计算机程序被处理器执行时实现权利要求1至18任一项中所述的方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510404745.2A CN120301816A (zh) | 2025-04-01 | 2025-04-01 | 发送路由请求的方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202510404745.2A CN120301816A (zh) | 2025-04-01 | 2025-04-01 | 发送路由请求的方法及装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120301816A true CN120301816A (zh) | 2025-07-11 |
Family
ID=96283394
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202510404745.2A Pending CN120301816A (zh) | 2025-04-01 | 2025-04-01 | 发送路由请求的方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN120301816A (zh) |
-
2025
- 2025-04-01 CN CN202510404745.2A patent/CN120301816A/zh active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN114189474A (zh) | 数据传输方法和装置 | |
| US20170085463A1 (en) | Network Topology of Hierarchical Ring with Recursive Shortcuts | |
| JP2004208297A (ja) | ツリートポロジーネットワークのデバイスの高速選択システムおよび方法 | |
| EP2962428A1 (en) | Method, apparatus, and protocol for improving performance in a wireless network | |
| CN117155842B (zh) | 一种双主机路由的实现方法、系统、设备及介质 | |
| CN118282927B (zh) | 一种路由路径规划方法、装置、设备、介质 | |
| CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
| US11134129B2 (en) | System for determining whether to forward packet based on bit string within the packet | |
| US20150117224A1 (en) | Network Topology of Hierarchical Ring with Gray Code and Binary Code | |
| CN118869591B (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
| CN101651658B (zh) | 无线Mesh网络中跨层联合优化的方法、装置及系统 | |
| CN105224501B (zh) | 改进圆环面网络及其确定数据包传输路径的方法和装置 | |
| CN113872868A (zh) | 通知消息传输方法、装置及系统、存储介质 | |
| WO2025228008A1 (zh) | 多路径传输方法、装置、电子设备、计算机可读存储介质以及计算机程序产品 | |
| US20160173472A1 (en) | Method for exchanging numerical data frames and associated communication system | |
| CN120301816A (zh) | 发送路由请求的方法及装置 | |
| CN120301817A (zh) | 发送路由请求的方法及装置 | |
| CN119906662B (zh) | 瘦化的胖树网络拓扑结构及发送路由请求的方法 | |
| CN109120537B (zh) | 组播树计算方法和装置 | |
| CN118368230A (zh) | 转发网内计算报文的方法、转发节点及计算机存储介质 | |
| Qi et al. | An improved sierpinski fractal based network architecture for edge computing datacenters | |
| CN112787898B (zh) | 设备数据通信方法、装置、电子设备及存储介质 | |
| WO2022161379A1 (zh) | 一种最短路径的确定方法以及相关设备 | |
| CN120301819A (zh) | 发送路由请求的方法及装置 | |
| RU2789978C1 (ru) | Способ параллельной передачи данных в самоорганизующихся радиосетях групп робототехнических средств |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |