网络拓扑结构映射方法及装置、终端、存储介质
技术领域
本申请涉及网络技术领域,特别涉及一种网络拓扑结构映射方法及装置、终端、存储介质。
背景技术
软件定义网络(英文:Software Defined Network;简称:SDN)包括SDN控制器和由SDN控制器控制的多个交换机,多个交换机之间相互连接形成网络拓扑(英文:topo)结构,每个交换机可以称为一个节点,相互连接的两个节点之间形成链路,SDN控制器通过最短路径算法调用、网络拓扑结构更新等方式为经过SDN的业务数据计算最短路径,并控制位于最短路径上的交换机实现业务数据的转发,以均衡网络负载。其中,SDN控制器以应用程序的形式运行在终端上,终端的中央处理器(英文:Central Processing Unit;简称:CPU)在执行该应用程序时,实现以串行运算的方式计算最短路径的功能。但是,随着网络规模的扩大,SDN中的交换机越来越多,这使得基于串行运算的方式进行处理的CPU计算最短路径的时间复杂度(时间复杂度是用于衡量算法优劣的一个函数,它定量描述了算法的运行时间,时间复杂度越高,算法的运行时间越长)也越来越高,计算最短路径的耗时较长。
相关技术中,可以采用网络拓扑结构映射方法将网络拓扑结构映射到现场可编程门阵列(英文:Field-Frogrammable Gate Array;简称:FPGA)中,由FPGA为业务数据计算最短路径,由于FPGA以并行运算的方式进行数据处理,因此其计算最短路径的时间复杂度较低,计算最短路径的耗时较短。其中,相关技术中的网络拓扑结构映射方法具体包括:确定网络拓扑结构,根据网络拓扑结构编写FPGA代码,将编写的FPGA代码写入FPGA,并控制FPGA运行该FPGA代码,以在FPGA中构建网络拓扑结构,使得将网络拓扑结构映射到FPGA中。
在实现本申请的过程中,发明人发现相关技术至少存在以下问题:由于相关技术中的网络拓扑结构映射方法需要根据网络拓扑结构编写FPGA代码,因此需要为不同的网络拓扑结构编写不同的FPGA代码,该网络拓扑结构映射方法的通用性较低。
发明内容
为了解决网络拓扑结构映射方法的通用性较低,本申请提供了一种网络拓扑结构映射方法及装置、终端、存储介质。本申请的技术方案如下:
第一方面,提供一种网络拓扑结构映射方法,该网络拓扑结构映射方法可以由CPU来执行,该方法包括:
从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,全网状网络结构集合包括至少一个全网状网络结构,每个全网状网络结构与至少两个不同的网络拓扑结构对应,待处理的网络拓扑结构包括m个节点,目标全网状网络结构包括n个节点,n≥m>1,且m和n均为整数;
根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射,得到第一映射拓扑结构;
将目标全网状网络结构的代码写入可编程器件中,并根据第一映射拓扑结构的信息配置可编程器件中的目标全网状网络结构的各个节点以及各个链路的权值,其中,可编程器件包括FPGA。
本申请提供的网络拓扑结构映射方法,由于目标全网状网络结构与至少两个不同的网络拓扑结构对应,且可以将目标全网状网络结构的代码写入可编程器件中,因此可以针对不同的网络拓扑结构编写相同的代码,有助于提高网络拓扑结构映射方法的通用性。
可选地,当从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,包括:
对待处理的网络拓扑结构进行网络分域,得到i个子网拓扑结构,第一子网拓扑结构包括j个节点,i>1,j>1,且i和j均为整数,第一子网拓扑结构为i个子网拓扑结构中节点数最多的子网拓扑结构;其中,i个子网拓扑结构满足第一预设条件、第二预设条件和第三预设条件中的至少一项,第一预设条件包括i个子网拓扑结构中任意两个子网拓扑结构的节点数的差值的绝对值小于预设阈值,第二预设条件包括i个子网拓扑结构中跨子网链路的数量小于预设数量,第三预设条件包括i个子网拓扑结构中跨子网链路的权值大于预设权值;
根据i个子网拓扑结构,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,目标全网状网络结构包括p个全网状子网结构,每个全网状子网结构包括q个节点,p≥i,q≥j+1,且p和q均为整数。
本申请提供的网络拓扑结构映射方法,通过对待处理的网络拓扑结构进行网络分域,分域得到的子网拓扑结构满足第一预设条件、第二预设条件和第三预设条件,并根据分域得到的子网拓扑结构获取待处理的网络拓扑结构对应的目标全网状网络结构,可以便于获取目标全网状网络结构。
可选地,根据i个子网拓扑结构,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,包括:
确定i个子网拓扑结构的数量和第一子网拓扑结构的节点数;
根据i个子网拓扑结构的数量和第一子网拓扑结构的节点数,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构。
本申请提供的网络拓扑结构映射方法,通过确定i个子网拓扑结构的数量和第一子网拓扑结构的节点数,有助于获取目标全网状网络结构。
可选地,p=i,q=j+1,根据i个子网拓扑结构的数量和第一子网拓扑结构的节点数,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,包括:
从预设的全网状网络结构集合中,选择全网状子网结构的数量等于i,全网状子网结构的节点数等于j+1的全网状网络结构;
将选择的全网状网络结构,确定为与待处理的网络拓扑结构对应的目标全网状网络结构;
获取目标全网状网络结构。
可选地,每个全网状子网结构包括一子网节点,根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射,得到第一映射拓扑结构,包括:
在目标全网状网络结构的节点中,确定待处理的网络拓扑结构的每个节点对应的映射节点,其中,待处理的网络拓扑结构的同一子网拓扑结构的节点对应的映射节点位于目标全网状网络结构的同一全网状子网结构中;
根据待处理的网络拓扑结构的各个节点之间的链路,在对应的映射节点之间建立映射链路,其中,待处理的网络拓扑结构中的每个子网拓扑结构的跨子网节点对应的映射节点与每个子网拓扑结构对应的全网状子网结构的子网节点建立有映射链路,目标全网状网络结构的任意两个全网状子网结构的子网节点之间的映射链路的数量等于任意两个全网状子网结构对应的子网拓扑结构之间的链路的数量;
根据所有的映射节点和所有的映射链路得到第一映射拓扑结构。
本申请提供的网络拓扑结构映射方法,通过在目标全网状网络结构的节点中确定待处理的网络拓扑结构的每个节点对应的映射节点,并在映射节点之间建立映射链路,根据所有的映射节点和所有的映射链路得到第一映射拓扑结构,便于后续通过可编程器件的输入输出接口根据第一映射拓扑结构的信息配置目标全网状网络结构的各个节点以及各个链路的权值得到第二映射拓扑结构。
可选地,在从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构之前,该方法还包括:
建立全网状网络结构集合,全网状网络结构集合包括至少一个全网状网络结构,至少一个全网状网络结构中的每个全网状网络结构包括至少两个全网状子网结构,每个全网状网络结构包括的至少两个全网状子网结构的节点数相等,当两个全网状网络结构包括的全网状子网结构的数目相等时,两个全网状网络结构包括的全网状子网结构的节点数不相等。
本申请提供的网络拓扑结构映射方法,通过建立全网状网络结构集合,可以便于获取待处理的网络拓扑结构对应的目标全网状网络结构。
可选地,将目标全网状网络结构的代码写入可编程器件中,并根据第一映射拓扑结构的信息配置可编程器件中的目标全网状网络结构的各个节点以及各个链路的权值,包括:
将目标全网状网络结构的代码文件加载到可编程器件中,并控制可编程器件运行代码文件;
根据第一映射拓扑结构的信息,通过可编程器件的输入输出接口配置目标全网状网络结构的各个节点以及各个链路的权值。
本申请提供的网络拓扑结构映射方法,通过将目标全网状网络结构的代码文件加载到可编程器件中,并控制可编程器件运行代码文件,可以便于在可编程器件中建立目标全网状网络结构;通过可编程器件的输入输出接口配置目标全网状网络结构的各个节点以及各个链路的权值,得到第二映射拓扑结构,可以提高网络拓扑结构映射方法的通用性。
第二方面,提供一种网络拓扑结构映射装置,该网络拓扑结构映射装置包括至少一个模块,该至少一个模块用于实现上述第一方面或第一方面的任一可选方式所提供的网络拓扑结构映射方法。
第三方面,提供一种终端,该终端包括:处理器、网络接口、存储器以及总线,该存储器与该网络接口分别通过该总线和该处理器相连,该处理器被配置为执行该存储器中存储的指令,该处理器通过执行指令来实现上述第一方面或第一方面的任一可选方式所提供的网络拓扑结构映射方法。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行第一方面或第一方面的任一可选方式所提供的网络拓扑结构映射方法。
第五方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任一可选方式所提供的网络拓扑结构映射方法。
本申请提供的技术方案的有益效果是:
本申请提供的网络拓扑结构映射方法及装置、终端、存储介质,首先从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,全网状网络结构集合包括至少一个全网状网络结构,每个全网状网络结构与至少两个不同的网络拓扑结构对应,然后根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射得到第一映射拓扑结构,最后将目标全网状网络结构的代码写入可编程器件中,并根据第一映射拓扑结构的信息配置可编程器件中的目标全网状网络结构的各个节点以及各个链路的权值。由于目标全网状网络结构与至少两个不同的网络拓扑结构对应,且可以将目标全网状网络结构的代码写入可编程器件中,因此可以针对不同的网络拓扑结构编写相同的代码,解决了相关技术中的网络拓扑结构映射方法的通用性较低的问题,有助于提高网络拓扑结构映射方法的通用性。
附图说明
图1-1是相关技术提供的一种网络拓扑结构的示意图;
图1-2是将图1-1所示的网络拓扑结构映射到FPGA内部后的示意图;
图2-1是本申请实施例提供的一种网络拓扑结构映射方法的方法流程图;
图2-2是本申请实施例提供的一种全网状网络结构的示意图;
图2-3是本申请实施例提供的一种待处理的网络拓扑结构的示意图;
图2-4是本申请实施例提供的另一种待处理的网络拓扑结构的示意图;
图2-5是本申请实施例提供的一种获取目标全网状网络结构的方法流程图;
图2-6是本申请实施例提供的一种对图2-3所示的待处理的网络拓扑结构进行网络分域后的示意图;
图2-7是本申请实施例提供的一种对图2-4所示的待处理的网络拓扑结构进行网络分域后的示意图;
图2-8是本申请实施例提供的一种获取目标全网状网络结构的方法流程图;
图2-9是本申请实施例提供的一种根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射的方法流程图;
图2-10是本申请实施例提供的一种将图2-6所示的待处理的网络拓扑结构的节点映射到目标全网状网络结构后的结构示意图;
图2-11是本申请实施例提供的一种将图2-7所示的待处理的网络拓扑结构的节点映射到目标全网状网络结构后的结构示意图;
图2-12是本申请实施例提供的一种第一映射拓扑结构的示意图;
图2-13是本申请实施例提供的另一种第一映射拓扑结构的示意图;
图3-1是本申请实施例提供的一种网络拓扑结构映射装置的框图;
图3-2是本申请实施例提供的一种获取模块的框图;
图3-3是本申请实施例提供的一种获取子模块的框图;
图3-4是本申请实施例提供的另一种网络拓扑结构映射装置的框图;
图4是本申请实施例提供的一种终端的结构示意图。
具体实施方式
SDN像通用软件一样易于更新。SDN网络架构的核心是在网络中引入SDN控制器,SDN控制器就像网络的大脑一样,能够对网络中的所有设备(例如交换机)进行控制,并且能够为业务数据计算最短路径、优化网络负载均衡。SDN控制器的核心功能包括优化网络负载均衡功能、为业务数据计算并下发最短路径功能等,这些核心功能都是由SDN控制器通过几千几万次最短路径算法调用、网络拓扑结构更新等实现的。SDN控制器以应用程序的形式运行在终端上,终端的CPU在执行该应用程序时实现以串行运算的方式计算最短路径的功能,CPU计算最短路径的时间复杂度为t=k*k(k为网络中的节点数)。随着网络规模逐渐扩大,网络中的节点数不断增加,这在很大程度上增加了CPU计算最短路径的时间复杂度,增加了SDN控制器的响应时延,而响应时延是SDN控制器的重要技术指标,从而,计算最短路径的耗时将是SDN控制器的性能瓶颈。
为了解决CPU计算最短路径的时间复杂度的难题,业界考虑采用FPGA为业务数据计算最短路径。在业界采用的方法中,需要针对网络拓扑结构编写FPGA代码,然后将FPGA代码写入FPGA并控制FPGA运行FPGA代码,以在FPGA中构建网络拓扑结构,使得将网络拓扑结构映射到FPGA中。之后,FPGA可以根据广度优先搜索(英文:Breadth-First-Search;简称:BFS)算法,从业务数据的源节点向下游节点发出电信号,电信号最终到达目的节点完成最短路径的计算,之后FPGA将计算得到的最短路径的路径信息上报给CPU。由于FPGA计算最短路径的时间t与网络中的节点数k的数学关系为t=log(k),相比于t=k*k,采用FPGA计算最短路径在很大程度上降低了计算最短路径的时间复杂度。但是由于需要针对不同的网络拓扑结构编写FPGA代码,因此该方法通用性较低。
示例地,请参考图1-1,其示出了相关技术提供的一种网络拓扑结构的示意图,该网络拓扑结构包括节点A、节点B、节点C和节点D共4个节点,链路AB、链路AC、链路BD和链路CD共4条链路,链路AB的权值为4,链路AC的权值为3,链路BD和链路CD的权值均为5。其中,链路的权值表示经过相应链路需要付出的代价(例如带宽、速率等),从而链路的权值可以采用英文cost来表示。可以针对该图1-1所示的网络拓扑结构编写FPGA代码,然后将FPGA代码写入FPGA并控制FPGA运行FPGA代码,以将图1-1所示的网络拓扑结构映射到FPGA中。其中,FPGA内部包括逻辑块和内部连线、逻辑块中包括移位寄存器(英文:register;简称:reg)、逻辑算法器(例如加法器、比较器等)等,运行FPGA代码的过程中,可以将网络拓扑结构的节点映射到FPGA的逻辑块上,将网络拓扑结构的链路的权值存储在移位寄存器中,并通过内部连线将表示网络拓扑结构的节点的逻辑块中的移位寄存器相连。示例地,请参考图1-2,其示出的是将图1-1所示的网络拓扑结构映射到FPGA内部后的示意图,逻辑块A、逻辑块B、逻辑块C、逻辑块D依次表示图1-1所示的网络拓扑结构的节点A、节点B、节点C、节点D,每个逻辑块中除了逻辑算法器之外的矩形框都表示移位寄存器,链路AB的权值存储在移位寄存器AB cost中,链路AC的权值存储在移位寄存器AC cost中,链路BD的权值存储在移位寄存器BD cost中,链路CD的权值存储在移位寄存器CD cost中,移位寄存器AB cost与移位寄存器AB in_reg相连,移位寄存器AC cost与移位寄存器AC in_reg相连,移位寄存器BD cost与移位寄存器BD in_reg相连,移位寄存器CD cost与移位寄存器CD in_reg相连。当需要计算节点A到节点D的最短路径时,FPGA可以根据BFS算法,从节点A分别向节点B和节点C发出电信号,在此过程中,FPGA将链路AB以及链路AB的上游链路的权值的总和写入移位寄存器AB in_reg,将链路AC以及链路AC的上游链路的权值的总和写入移位寄存器AC in_reg(由于图1-1所示的链路AB和链路AC均没有上游链路,因此FPGA将链路AB的权值写入移位寄存器AB in_reg,将链路AC的权值写入移位寄存器AC in_reg);然后,FPGA通过逻辑块B中的加法器将移位寄存器AB in_reg中存储的权值的总和与移位寄存器BD cost中存储的链路BD的权值相加,通过逻辑块C中的加法器将移位寄存器AC in_reg中存储的权值的总和与移位寄存器CD cost中存储的链路CD的权值相加;之后,FPGA分别从节点B和节点C向节点D发出电信号,在此过程中,FPGA将链路BD以及链路BD的上游链路的权值的总和(也即是链路AB的权值与链路BD的权值的总和)写入移位寄存器BD in_reg,将链路CD以及链路CD的上游链路的权值的总和(也即是链路AC的权值与链路CD的权值的总和)写入移位寄存器CD in_reg;最后,FPGA通过逻辑块D中的比较器将移位寄存器BD in_reg中存储的权值的总和与移位寄存器CD in_reg中存储的权值的总和进行比较,将权值总和较小者对应的路径作为最短路径。由于链路AB的权值为4,链路AC的权值为3,链路BD和链路CD的权值均为5,因此,移位寄存器BD in_reg中存储的权值的总和为9,移位寄存器CD in_reg中存储的权值的总和为8,所以节点A到节点D的最短路径为A->C->D,FPGA将路径A->C->D的路径信息上报给CPU。
请参考图2-1,其示出了本申请实施例提供的一种网络拓扑结构映射方法的方法流程图,该网络拓扑结构映射方法可以由终端的CPU来执行,或者还可以由其他器件来执行,本发明实施例以该网络拓扑结构映射方法由CPU执行为例进行说明。参见图2-1,该方法包括:
步骤201、建立至少一个全网状网络结构,每个全网状网络结构与至少两个不同的网络拓扑结构对应。
在本申请实施例中,CPU可以建立至少一个全网状(英文:full mesh)网络结构,至少一个全网状网络结构中的每个全网状网络结构与至少两个不同的网络拓扑结构对应。其中,全网状网络结构是一种类型的网络拓扑结构,全网状网络结构中的每个节点之间都是直线连接的,且每个节点与其他所有节点连接。其中,至少一个全网状网络结构中的每个全网状网络结构包括至少两个全网状子网结构,每个全网状网络结构中的至少两个全网状子网结构的节点数相等,当两个全网状网络结构的全网状子网结构数相等时,该两个全网状网络结构中的全网状子网结构的节点数不相等,并且每个全网状网络结构可以包括至少两层网络。
示例地,假设至少一个全网状网络结构包括全网状网络结构W1和全网状网络结构W2,全网状网络结构W1和全网状网络结构W2均包括两层网络,且全网状网络结构W1包括全网状子网结构W11和全网状子网结构W12(全网状网络结构W1为一层网络,全网状子网结构W11和全网状子网结构W12为一层网络),全网状网络结构W2包括全网状子网结构W21和全网状子网结构W22(全网状网络结构W2为一层网络,全网状子网结构W21和全网状子网结构W22为一层网络),则全网状子网结构W11的节点数与全网状子网结构W12的节点数相等,全网状子网结构W21的节点数与全网状子网结构W22的节点数相等,全网状子网结构W21的节点数与全网状子网结构W11的节点数不相等。或者,假设至少一个全网状网络结构包括全网状网络结构W3和全网状网络结构W4,全网状网络结构W3和全网状网络结构W4均包括两层网络,且全网状网络结构W3包括全网状子网结构W31和全网状子网结构W32(全网状网络结构W3为一层网络,全网状子网结构W31和全网状子网结构W32为一层网络),全网状网络结构W4包括全网状子网结构W41、全网状子网结构W42和全网状子网结构W43(全网状网络结构W4为一层网络,全网状子网结构W41、全网状子网结构W42和网状子网结构W43为一层网络),则全网状子网结构W31的节点数与全网状子网结构W32的节点数相等,全网状子网结构W41的节点数、全网状子网结构W42的节点数和全网状子网结构W43的节点数相等,由于全网状网络结构W3的全网状子网结构数与全网状网络结构W4的全网状子网结构数不相等,因此全网状子网结构W31的节点数与全网状子网结构W41的节点数可以相等。
示例地,假设至少一个全网状网络结构包括全网状网络结构W5,全网状网络结构W5包括全网状子网结构W51和全网状子网结构W52,全网状子网结构W51包括全网状子网结构W511和全网状子网结构W512,全网状子网结构W52包括全网状子网结构W521和全网状子网结构W522,则该全网状网络结构W5包括三层网络,第一层网络可以为全网状网络结构W5,第二层网络可以包括全网状子网结构W51和全网状子网结构W52,第三层网络可以包括全网状子网结构W511、全网状子网结构W512、全网状子网结构W521和全网状子网结构W522,本申请实施例在此不再赘述。
在本申请实施例中,每个全网状网络结构包括至少两个全网状子网结构,且每个全网状子网结构中还包括一个子网节点,每个全网状网络结构对应的网络拓扑结构的节点数可以小于或等于该每个全网状网络结构的总节点数与该每个全网状网络结构的子网节点数的差值。示例地,请参考图2-2,其示出了本申请实施例提供的一种全网状网络结构的示意图,参见图2-2,该全网状网络结构包括全网状子网结构net1和全网状子网结构net2这两个全网状子网结构,且该全网状网络结构包括两层网络,该全网状网络结构的每个全网状子网结构包括4个节点,且每个全网状子网结构中的4个节点还包括一个子网节点。如图2-2所示,全网状子网结构net1包括节点A、节点B、节点C以及子网节点net1,全网状子网结构net2包括节点D、节点E、节点F以及子网节点net2。该如图2-2所示的全网状网络结构可以与所有节点数小于或等于6的网络拓扑结构对应。
在本申请实施例中,工作人员可以建立至少一个全网状网络结构,然后将至少一个全网状网络结构的信息输入CPU,CPU根据工作人员输入的信息建立至少一个全网状网络结构。需要说明的是,工作人员还可以为每一个全网状网络结构编写代码(例如FPGA代码),并将全网状网络结构的代码输入CPU,CPU可以根据各个全网状网络结构的代码创建全网状网络结构的代码文件,然后将各个全网状网络结构与该全网状网络结构的代码文件进行对应存储,本申请实施例对此不作限定。
步骤202、根据至少一个全网状网络结构,得到全网状网络结构集合。
CPU建立至少一个全网状网络结构后,可以根据至少一个全网状网络结构建立全网状网络结构集合,该全网状网络结构集合中的每个全网状网络结构与至少两个不同的网络拓扑结构对应。其中,该全网状网络结构集合可以包括如图2-2所示的全网状网络结构。
步骤203、获取待处理的网络拓扑结构,待处理的网络拓扑结构包括m个节点。
CPU可以获取待处理的网络拓扑结构,该待处理的网络拓扑结构可以包括m个节点,m>1,且m为整数。可选地,工作人员可以向CPU输入待处理的网络拓扑结构的信息,CPU根据工作人员输入的信息建立待处理的网络拓扑结构以实现对该待处理的网络拓扑结构的获取。或者,待处理的网络拓扑结构可以对应一个配置文件,CPU可以存储待处理的网络拓扑结构的配置文件,CPU通过加载待处理的网络拓扑结构对应的配置文件来获取该待处理的网络拓扑结构。当然,CPU还可以采用其他方式获取待处理的网络拓扑结构,本申请实施例在此不再赘述。需要说明的是,在本申请实施例中,待处理的网络拓扑结构包括节点、链路以及链路的权值,从而CPU获取到的待处理的网络拓扑结构包括该待处理的网络拓扑结构中的各个节点、各个链路以及各个链路的权值,本申请实施例对此不作限定。
在本申请实施例中,CPU获取到的待处理的网络拓扑结构可以如图2-3或图2-4所示。当待处理的网络拓扑结构为图2-3所示的网络拓扑结构时,参见图2-3,该待处理的网络拓扑结构的节点包括节点1、节点2、节点3、节点4、节点5和节点6共6个节点;该待处理的网络拓扑结构的链路包括链路14、链路21、链路23、链路24、链路31、链路36、链路45、链路46、链路56和链路64共10条链路;链路14的权值为c14,链路21的权值为c21、链路23的权值为c23,链路24的权值为c24,链路31的权值为c31,链路36的权值为c36,链路45的权值为c45,链路46的权值为c46,链路56的权值为c56,链路64的权值为c64。当待处理的网络拓扑结构为图2-4所示的网络拓扑结构时,参见图2-4,该待处理的网络拓扑结构的节点包括节点1、节点2、节点3、节点4和节点6共5个节点;该待处理的网络拓扑结构的链路包括链路14、链路21、链路23、链路24、链路31、链路36、链路46和链路64共8条链路;链路14的权值为c14,链路21的权值为c21、链路23的权值为c23,链路24的权值为c24,链路31的权值为c31,链路36的权值为c36,链路46的权值为c46,链路64的权值为c64。需要说明的是,图2-3和图2-4所示的待处理的网络拓扑结构仅仅是示例性的,实际应用中,待处理的网络拓扑结构还可以是其他网络拓扑结构,本申请实施例对此不作限定。
步骤204、从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,目标全网状网络结构包括n个节点。
CPU获取到待处理的网络拓扑结构后,可以在全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,该全网状网络结构集合包括至少一个全网状网络结构,每个全网状网络结构与至少两个不同的网络拓扑结构对应,n≥m,且n为整数。
可选地,请参考图2-5,其示出了本申请实施例提供的一种从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构的方法流程图,参见图2-5,该方法包括:
子步骤2041、对待处理的网络拓扑结构进行网络分域,得到i个子网拓扑结构,第一子网拓扑结构包括j个节点,第一子网拓扑结构为i个子网拓扑结构中节点数最多的子网拓扑结构。
在本申请实施例中,CPU可以对待处理的网络拓扑结构进行网络分域得到i个子网拓扑结构,使第一子网拓扑结构包括j个节点,该第一子网拓扑结构为i个子网拓扑结构中节点数最多的子网拓扑结构,i>1,j>1,且i和j均为整数。
具体地,CPU可以采用网络分域算法对待处理的网络拓扑结构进行网络分域得到i个子网拓扑结构,该i个子网拓扑结构满足第一预设条件、第二预设条件和第三预设条件中的至少一项。其中,第一预设条件包括:i个子网拓扑结构中任意两个子网拓扑结构的节点数的差值的绝对值小于预设阈值,第二预设条件包括:i个子网拓扑结构中跨子网链路的数量小于预设数量,第三预设条件包括:i个子网拓扑结构中跨子网链路的权值大于预设权值。其中,预设阈值、预设数量以及预设权值均可以根据实际情况设置,例如,预设阈值可以为1,预设数量可以为4,预设权值可以为5等。
示例地,请参考图2-6,其示出的是本申请实施例提供的一种对图2-3所示的待处理的网络拓扑结构进行网络分域后的示意图,参见图2-6,分域之后待处理的网络拓扑结构形成子网net1和子网net2这两个子网,子网net1包括节点1、节点2和节点3,子网net2包括节点4、节点5和节点6,链路14、链路24和链路36为跨子网链路。再示例地,请参考图2-7,其示出的是本申请实施例提供的一种对图2-4所示的待处理的网络拓扑结构进行网络分域后的示意图,参见图2-7,分域之后待处理的网络拓扑结构形成子网net1和子网net2这两个子网,子网net1包括节点1、节点2和节点3,子网net2包括节点4和节点6,链路14、链路24和链路36为跨子网链路。需要说明的是,网络分域算法以及CPU采用网络分域算法进行网络分域的过程可以参考相关技术,本申请实施例在此不再赘述。
子步骤2042、根据i个子网拓扑结构,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,目标全网状网络结构包括p个全网状子网结构,每个全网状子网结构包括q个节点。
CPU对待处理的网络拓扑结构进行网络分域得到i个子网拓扑结构之后,可以根据待处理的网络拓扑结构的i个子网拓扑结构,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,目标全网状网络结构可以包括p个全网状子网结构,每个全网状子网结构可以包括q个节点,p≥i,q≥j+1,且p和q均为整数。
可选地,请参考图2-8,其示出了本申请实施例提供的一种根据i个子网拓扑结构,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构的方法流程图,参见图2-8,该方法包括:
子步骤20421、确定i个子网拓扑结构的数量和第一子网拓扑结构的节点数。
CPU可以确定待处理的网络拓扑结构的i个子网拓扑结构的数量以及第一子网拓扑结构的节点数,也即是,CPU确定i的取值和j的取值。示例地,当待处理的网络拓扑结构为图2-3所示的网络拓扑结构,且对待处理的网络拓扑结构分域之后的示意图如图2-6所示时,CPU可以确定待处理的网络拓扑结构的i个子网拓扑结构的数量为2,在如图2-6所示的网拓扑结构中,子网net1和子网net2的节点数相等,因此第一子网拓扑结构可以为子网net1或子网net2,第一子网拓扑结构的节点数为3。再示例地,当待处理的网络拓扑结构为图2-4所示的网络拓扑结构,且对待处理的网络拓扑结构分域之后的示意图如图2-7所示时,CPU可以确定待处理的网络拓扑结构的i个子网拓扑结构的数量为2,在如图2-7所示的网拓扑结构中,子网net1的节点数为3,子网net2的节点数为2,因此第一子网拓扑结构为子网net1,第一子网拓扑结构的节点数为3。需要说明的是,CPU确定i个子网拓扑结构的数量和第一子网拓扑结构的节点数的过程可以参考相关技术,本申请实施例在此不再赘述。
子步骤20422、根据i个子网拓扑结构的数量和第一子网拓扑结构的节点数,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构。
可选地,CPU可以采用特征匹配算法,根据待处理的网络拓扑结构的i个子网拓扑结构的数量和第一子网拓扑结构的节点数,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构。具体地,CPU可以采用特征匹配算法,从预设的全网状网络结构集合中选择全网状子网结构的数量与待处理的网络拓扑结构的i个子网拓扑结构的数量最接近,且全网状子网结构的节点数与第一子网拓扑结构的节点数最接近的全网状网络结构作为目标全网状网络结构,并获取该目标全网状网络结构。
可选地,在本申请实施例中,p=i,q=j+1,此时,CPU根据i个子网拓扑结构的数量和第一子网拓扑结构的节点数,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,可以包括:CPU从预设的全网状网络结构集合中,选择全网状子网结构的数量等于i,全网状子网结构的节点数等于j+1的全网状网络结构,将选择的全网状网络结构,确定为与待处理的网络拓扑结构对应的目标全网状网络结构,然后获取目标全网状网络结构。
示例地,当待处理的网络拓扑结构为图2-3所示的网络拓扑结构,且对待处理的网络拓扑结构分域之后的示意图如图2-6所示时,或者,当待处理的网络拓扑结构为图2-4所示的网络拓扑结构,且对待处理的网络拓扑结构分域之后的示意图如图2-7所示时,i=2,j=3,p=i=2,q=j+1=4,因此,CPU从预设的全网状网络结构集合中选择全网状子网结构的数量等于2,且全网状子网结构的节点数等于4的全网状网络结构作为目标全网状网络结构,该目标全网状网络结构的示意图可以如图2-2所示。需要说明的是,本申请实施例是以对待处理的网络拓扑结构进行一层网络分域,并以目标全网状网络结构包括两层网络为例进行说明的,实际应用中,可以对待处理的网络拓扑结构进行多层网络分域(例如待处理的网络拓扑结构进行网络分域得到子网拓扑结构之后,可以对子网拓扑结构继续进行网络分域),目标全网状网络结构也可以包括多层网络,此时,在获取目标全网状网络结构时,还可以使获取到的目标全网状网络结构网络层数与分域后的待处理的网络拓扑结构的网络层数相等,本申请实施例在此不再赘述。
步骤205、根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射,得到第一映射拓扑结构。
CPU获取到待处理的网络拓扑结构对应的目标全网状网络结构后,可以根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射,得到第一映射拓扑结构。在本申请实施例中,如步骤201所述,任一全网状网络结构中的每个全网状子网结构包括一子网节点,因此目标全网状网络结构的每个全网状子网结构包括一子网节点。在此基础上,请参考图2-9,其示出了本申请实施例提供的一种根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射的方法流程图,参见图2-9,该方法包括:
子步骤2051、在目标全网状网络结构的节点中,确定待处理的网络拓扑结构的每个节点对应的映射节点,其中,待处理的网络拓扑结构的同一子网拓扑结构的节点对应的映射节点位于目标全网状网络结构的同一全网状子网结构中。
CPU可以在目标全网状网络结构的节点中确定待处理的网络拓扑结构的每个节点对应的映射节点,该待处理的网络拓扑结构的同一子网拓扑结构的节点对应的映射节点可以位于目标全网状网络结构的同一全网状子网结构中。
示例地,当待处理的网络拓扑结构为图2-3所示的网络拓扑结构,且对待处理的网络拓扑结构分域之后的示意图如图2-6所示时,CPU可以在如图2-2所示的目标全网状网络结构的节点A、节点B、节点C、节点D、节点E和节点F中,确定待处理的网络拓扑结构的节点1、节点2、节点3、节点4、节点5和节点6的每个节点的映射节点,且待处理的网络拓扑结构的节点1、节点2、节点3在目标全网状网络结构中对应的映射节点位于同一全网状子网结构中,待处理的网络拓扑结构的节点4、节点5、节点6在目标全网状网络结构中对应的映射节点位于同一全网状子网结构中。示例地,图2-6所示的待处理的网络拓扑结构的节点1在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点A,节点2在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点B,节点3在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点C,节点4在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点D,节点5在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点E,节点6在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点F。映射之后的示意图可以如图2-10所示。
示例地,当待处理的网络拓扑结构为图2-4所示的网络拓扑结构,且对待处理的网络拓扑结构分域之后的示意图如图2-7所示时,CPU可以在如图2-2所示的目标全网状网络结构的节点A、节点B、节点C、节点D、节点E和节点F中,确定待处理的网络拓扑结构的节点1、节点2、节点3、节点4和节点6的每个节点的映射节点,且待处理的网络拓扑结构的节点1、节点2、节点3在目标全网状网络结构中对应的映射节点位于同一全网状子网结构中,待处理的网络拓扑结构的节点4、节点6在目标全网状网络结构中对应的映射节点位于同一全网状子网结构中。示例地,图2-7所示的待处理的网络拓扑结构的节点1在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点A,节点2在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点B,节点3在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点C,节点4在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点D,节点6在图2-2所示的目标全网状网络结构中对应的映射节点可以为节点E。映射之后的示意图可以如图2-11所示。
需要说明的是,本申请实施例所描述的在目标全网状网络结构的节点中确定待处理的网络拓扑结构的每个节点对应的映射节点仅仅是示例性的,实际应用中,还可以采用其他方式在目标全网状网络结构的节点中确定待处理的网络拓扑结构的每个节点对应的映射节点,只要保证待处理的网络拓扑结构的同一子网拓扑结构的节点对应的映射节点位于目标全网状网络结构的同一全网状子网结构中即可,本申请实施例对此不作限定。
子步骤2052、根据待处理的网络拓扑结构的各个节点之间的链路,在对应的映射节点之间建立映射链路,其中,待处理的网络拓扑结构中的每个子网拓扑结构的跨子网节点对应的映射节点与每个子网拓扑结构对应的全网状子网结构的子网节点建立有映射链路,目标全网状网络结构的任意两个全网状子网结构的子网节点之间的映射链路的数量等于任意两个全网状子网结构对应的子网拓扑结构之间的链路的数量。
可选地,在本申请实施例中,目标全网状网络结构的各个节点之间是存在链路的,在该步骤2052中CPU可以先删除目标全网状网络结构的多余节点(除映射节点之外的节点)以及目标全网状网络结构的各个链路,然后根据待处理的网络拓扑结构的各个节点之间的链路,在对应的映射节点之间建立映射链路。其中,待处理的网络拓扑结构中的每个子网拓扑结构的跨子网节点对应的映射节点与每个子网拓扑结构对应的全网状子网结构的子网节点建立有映射链路,目标全网状网络结构的任意两个全网状子网结构的子网节点之间的映射链路的数量等于任意两个全网状子网结构对应的子网拓扑结构之间的链路的数量。
示例地,以图2-10为例,该图2-10中不存在多余节点,因此CPU可以删除图2-10中的各个链路,然后根据图2-6所示的待处理的网络拓扑结构的各个节点之间的链路,在图2-10中对应的映射节点之间建立映射链路。再示例地,以图2-11为例,CPU可以删除图2-11中的节点F以及各个链路,然后根据图2-7所示的待处理的网络拓扑结构的各个节点之间的链路。
子步骤2053、根据所有的映射节点和所有的映射链路得到第一映射拓扑结构。
CPU确定待处理的网络拓扑结构的每个节点对应的映射节点,以及在映射节点之间建立映射链路之后,可以根据所有的映射节点和所有的映射链路得到第一映射拓扑结构。具体地,CPU建立映射链路之后,还可以根据待处理的网络拓扑结构的各个链路的权值,配置相应的映射链路的权值,根据所有的映射节点和所有的映射链路,以及各个映射链路的权值得到第一映射拓扑结构。
示例地,CPU根据映射节点1、映射节点2、映射节点3、映射节点4、映射节点5和映射节点6,以及,映射节点1、映射节点2、映射节点3、映射节点4、映射节点5和映射节点6之间的映射链路,和各个映射链路的权值,得到如图2-12所示的第一映射拓扑结构;或者,CPU根据映射节点1、映射节点2、映射节点3、映射节点4和映射节点6,以及,映射节点1、映射节点2、映射节点3、映射节点4和映射节点6之间的映射链路,和各个映射链路的权值,得到如图2-13所示的第一映射拓扑结构。
需要说明的是,CPU得到第一映射拓扑结构后,还可以生成第一映射拓扑结构的信息,该第一映射拓扑结构的信息包括该第一映射拓扑结构的节点信息、链路信息以及链路的权值等等。示例地,以第一映射拓扑结构的信息包括链路信息为例,则图2-12所示的第一映射拓扑结构的链路信息可以如下表1所示,图2-13所示的第一映射拓扑结构的链路信息可以如下表2所示:
表1
表2
链路权值 |
FPGA内部链路 |
c14 |
1->net1->net2->4 |
c21 |
2->1 |
c23 |
2->3 |
c24 |
2->net1->net2->4 |
c31 |
3->1 |
c36 |
3->net1->net2->6 |
c46 |
4->6 |
c64 |
6->4 |
步骤206、将目标全网状网络结构的代码写入可编程器件中。
其中,可编程器件可以为任意能够实现物理硬连接关系的芯片,例如,可编程器件可以为专用集成电路(英文:Application Specific Integrated Circuit;简称:ASIC)、FPGA等。在本申请实施例中,可选地,如步骤201所述,CPU可以存储各个全网状网络结构的代码文件,因此,CPU可以将目标全网状网络结构的代码文件加载到可编程器件中,并控制可编程器件运行目标全网状网络结构的代码文件,以将目标全网状网络结构的代码写入可编程器件中。或者,工作人员可以针对目标全网状网络结构编写代码并向CPU输入该代码,CPU接收该代码之后将该代码写入可编程器件中。或者,CPU还可以采用其他方式将目标全网状网络结构的代码写入可编程器件中,本申请实施例对此不作限定。
CPU将目标全网状网络结构的代码写入可编程器件中之后,可以控制可编程器件运行目标全网状网络结构的代码,以在可编程器件中建立目标全网状网络结构,使得将目标全网状网络结构映射到可编程器件中,目标全网状网络结构的每个节点可以在可编程器件对应一个逻辑块。
步骤207、根据第一映射拓扑结构的信息配置可编程器件中的目标全网状网络结构的各个节点以及各个链路的权值,得到第二映射拓扑结构,第二映射拓扑结构为待处理的网络拓扑结构在可编程器件中的映射拓扑结构。
CPU将目标全网状网络结构映射到可编程器件中之后,可以根据第一映射拓扑结构的信息通过可编程器件的输入输出(英文:Input Output;简称:IO)接口配置目标全网状网络结构的各个节点以及各个链路的权值,得到第二映射拓扑结构,该第二映射拓扑结构为待处理的网络拓扑结构在可编程器件中的映射拓扑结构。可选地,CPU可以通过可编程器件的IO接口向可编程器件输入第一映射拓扑结构的信息,第一映射拓扑结构的信息可以如表1所示,或者第一映射拓扑结构的信息可以如表2所示,第一映射拓扑结构的信息可以包括第一映射拓扑结构的链路信息、节点信息以及链路的权值等等,可编程器件接收第一映射拓扑结构的信息之后,根据第一映射拓扑结构的信息,在目标全网状网络结构的各个节点对应的逻辑块中配置第一映射拓扑结构的各个节点信息,然后将第一映射拓扑结构的各个链路的权值存储在相应的移位寄存器中,并将目标全网状网络结构对应的剩余移位寄存器(目标全网状网络结构对应的移位寄存器中除存储第一映射拓扑结构的链路的权值之外的移位寄存器)的值设置为空值,以将目标全网状网络结构中除与第一映射拓扑结构的链路对应的链路之外的链路的权值配置为无穷大,本申请实施例在此不再赘述。
步骤208、控制可编程器件根据第二映射拓扑结构,以并行运算的方式为业务数据计算最短路径。
CPU可以控制可编程器件根据第二映射拓扑结构,以并行运算的方式为业务数据计算最短路径。可选地,CPU可以向可编程器件发送携带源节点的节点信息和目的节点的节点信息的控制指令,可编程器件接收到该控制指令后,采用最短路径算法,根据源节点的节点信息和目的节点的节点信息,以及第二映射拓扑结构,从源节点向下游节点发出电信号,电信号最终到达目的节点,完成最短路径的计算,进而得到最短路径的路径信息,可编程器件可以将最短路径的信息上报给CPU,以便于CPU根据最短路径的信息,通过SDN控制器控制网络中的交换机实现业务数据的转发,本申请实施例在此不再赘述。
需要说明的是,目标全网状网络结构对应至少两个网络拓扑结构,目标全网状网络结构可以实现对至少两个网络拓扑结构中的任一网络拓扑结构进行映射。其中,若对该至少两个网络拓扑结构中的任一网络拓扑结构进行映射之后,需要对其他的网络拓扑结构进行映射,则无需重新编写并向可编程器件写入目标全网状网络结构的代码,而直接采用之前写入可编程器件的目标全网状网络结构的代码,此时,只需要重新执行上述步骤207对目标全网状网络结构对应的各个移位寄存器中存储的值进行更新即可。例如,若对图2-3所示的待处理的网络拓扑结构进行映射之后,需要对图2-4所示的网络拓扑结构进行映射,则无需重新编写并向可编程器件写入图2-2所示的目标全网状网络结构的代码,只需要执行上述步骤207对目标全网状网络结构对应的各个移位寄存器中存储的值进行更新。因此,该方法的通用性较高。
本申请实施例提供的网络拓扑结构映射方法中,当待处理的网络拓扑结构的节点数小于或等于500时,通常采用具有两层网络的全网状网络结构进行网络拓扑结构映射,当待处理的网络拓扑结构的节点数大于500且小于或等于8000时,通常采用具有三层网络的全网状网络结构进行网络拓扑结构映射,当待处理的网络拓扑结构的节点数大于8000且小于或等于10000时,通常采用具有四层网络的全网状网络结构进行网络拓扑结构映射。例如,图2-2示出的是具有两层网络的全网状网络结构,该两层网络分别为图2-2所示的网络整体,以及该网络整体内部的两个子网。
本申请实施例提供的网络拓扑结构映射方法,可以提高可编程器件内部的逻辑资源的利用率,避免可编程器件内部的逻辑资源不足。示例地,针对不同节点的网络拓扑结构,采用本申请方案进行映射以及业界方案进行映射占用的逻辑资源可以如下表3所示。
表3
参见表3,对于100节点的网络拓扑结构,采用本申请方案的具有两层网络的全网状网络结构进行映射占用的可编程器件内部的逻辑资源为35200bit(比特),而采用业界方案进行映射占用的可编程器件内部的逻辑资源为3232000bit;对于500节点的网络拓扑结构,采用本申请方案的具有两层网络的全网状网络结构进行映射占用的可编程器件内部的逻辑资源为340000bit,而采用业界方案进行映射占用的可编程器件内部的逻辑资源为4008000000bit,依次类推。由表1可以看出,本申请方案可以在很大程度上避免可编程器件内部的逻辑资源不足,提高可编程器件内部的逻辑资源利用率。
需要说明的是,本申请实施例提供的网络拓扑结构映射方法步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本申请实施例提供的网络拓扑结构映射方法,由于目标全网状网络结构与至少两个不同的网络拓扑结构对应,且可以将目标全网状网络结构的代码写入可编程器件中,因此可以针对不同的网络拓扑结构编写相同的代码,解决了相关技术中的网络拓扑结构映射方法的通用性较低的问题,有助于提高网络拓扑结构映射方法的通用性。
下述为本申请的装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图3-1,其示出了本申请实施例提供的一种网络拓扑结构映射装置300的框图。该网络拓扑结构映射装置300可以通过软件、硬件或者两者的结合实现成为终端的CPU的部分或者全部。参见图3-1,该网络拓扑结构映射装置300可以包括但不限于:
获取模块310,用于从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,全网状网络结构集合包括至少一个全网状网络结构,每个全网状网络结构与至少两个不同的网络拓扑结构对应,待处理的网络拓扑结构包括m个节点,目标全网状网络结构包括n个节点,n≥m>1,且m和n均为整数;
映射模块320,用于根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射,得到第一映射拓扑结构;
写入模块330,用于将目标全网状网络结构的代码写入可编程器件中;
配置模块340,用于根据第一映射拓扑结构的信息配置可编程器件中的目标全网状网络结构的各个节点以及各个链路的权值,得到第二映射拓扑结构,第二映射拓扑结构为待处理的网络拓扑结构在可编程器件中的映射拓扑结构。
综上所述,本申请实施例提供的网络拓扑结构映射装置,由于目标全网状网络结构与至少两个不同的网络拓扑结构对应,且可以将目标全网状网络结构的代码写入可编程器件中,因此可以针对不同的网络拓扑结构编写相同的代码,解决了相关技术中的网络拓扑结构映射方法的通用性较低的问题,有助于提高网络拓扑结构映射方法的通用性。
可选地,请参考图3-2,其示出了本申请实施例提供的一种获取模块310的框图,参见图3-2,该获取模块310包括:
分域子模块311,用于对待处理的网络拓扑结构进行网络分域,得到i个子网拓扑结构,第一子网拓扑结构包括j个节点,i>1,j>1,且i和j均为整数,第一子网拓扑结构为i个子网拓扑结构中节点数最多的子网拓扑结构;
获取子模块312,用于根据i个子网拓扑结构,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,目标全网状网络结构包括p个全网状子网结构,每个全网状子网结构包括q个节点,p≥i,q≥j+1,且p和q均为整数。
可选地,分域子模块311,用于对待处理的网络拓扑结构进行网络分域,得到i个子网拓扑结构,i个子网拓扑结构满足第一预设条件、第二预设条件和第三预设条件中的至少一项;
其中,第一预设条件包括:i个子网拓扑结构中任意两个子网拓扑结构的节点数的差值的绝对值小于预设阈值,第二预设条件包括:i个子网拓扑结构中跨子网链路的数量小于预设数量,第三预设条件包括:i个子网拓扑结构中跨子网链路的权值大于预设权值。
可选地,请参考图3-3,其示出了本申请实施例提供的一种获取子模块312的框图,参见图3-3,该获取子模块312包括:
确定单元3121,用于确定i个子网拓扑结构的数量和第一子网拓扑结构的节点数;
获取单元3122,用于根据i个子网拓扑结构的数量和第一子网拓扑结构的节点数,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构。
可选地,p=i,q=j+1,获取单元,用于:
从预设的全网状网络结构集合中,选择全网状子网结构的数量等于i,全网状子网结构的节点数等于j+1的全网状网络结构;
将选择的全网状网络结构,确定为与待处理的网络拓扑结构对应的目标全网状网络结构;
获取目标全网状网络结构。
可选地,每个全网状子网结构包括一子网节点,映射模块320,用于:
在目标全网状网络结构的节点中,确定待处理的网络拓扑结构的每个节点对应的映射节点,其中,待处理的网络拓扑结构的同一子网拓扑结构的节点对应的映射节点位于目标全网状网络结构的同一全网状子网结构中;
根据待处理的网络拓扑结构的各个节点之间的链路,在对应的映射节点之间建立映射链路,其中,待处理的网络拓扑结构中的每个子网拓扑结构的跨子网节点对应的映射节点与每个子网拓扑结构对应的全网状子网结构的子网节点建立有映射链路,目标全网状网络结构的任意两个全网状子网结构的子网节点之间的映射链路的数量等于任意两个全网状子网结构对应的子网拓扑结构之间的链路的数量;
根据所有的映射节点和所有的映射链路得到第一映射拓扑结构。
可选地,请参考图3-4,其示出了本申请实施例提供的另一种网络拓扑结构映射装置300的框图,参见图3-4,在图3-1的基础上,该网络拓扑结构映射装置300还包括:
建立模块350,用于建立全网状网络结构集合,全网状网络结构集合包括至少一个全网状网络结构,至少一个全网状网络结构中的每个全网状网络结构包括至少两个全网状子网结构,每个全网状网络结构中的至少两个全网状子网结构的节点数相等,当两个全网状网络结构的全网状子网结构数相等时,两个全网状网络结构中全网状子网结构的节点数不相等。
可选地,写入模块330,用于将目标全网状网络结构的代码文件加载到可编程器件中,并控制可编程器件运行代码文件;
配置模块340,用于根据第一映射拓扑结构,通过可编程器件的输入输出接口配置目标全网状网络结构的各个节点以及各个链路的权值。
可选地,可编程器件包括FPGA。
综上所述,本申请实施例提供的网络拓扑结构映射装置,由于目标全网状网络结构与至少两个不同的网络拓扑结构对应,且可以将目标全网状网络结构的代码写入可编程器件中,因此可以针对不同的网络拓扑结构编写相同的代码,解决了相关技术中的网络拓扑结构映射方法的通用性较低的问题,有助于提高网络拓扑结构映射方法的通用性。
请参考图4,其示出了本申请实施例提供的一种终端400的框图。该终端400可以手机、电脑等终端。参见图4,该终端400包括:处理器(例如CPU)410、网络接口420、存储器430以及总线440,存储器430与网络接口420分别通过总线440和处理器410相连。
处理器410包括一个或者一个以上处理核心。处理器410通过运行软件程序以及单元,从而执行各种功能应用以及数据处理。网络接口420可以为多个,该网络接口420用于终端400与其它存储设备或者网络设备进行通信。存储器430可用于存储软件程序以及单元。
可选地,该终端400还包括:发射机450、接收机460和可编程器件(例如FPGA)470,发射机450、接收机460和可编程器件470分别通过总线440与处理器410、网络接口420以及存储器430连接。
在本申请实施例中,处理器410被配置为执行存储器430中存储的指令,处理器430通过执行指令来实现图3-1实施实施例提供的网络拓扑结构映射方法。
其中,处理器410用于:
从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,全网状网络结构集合包括至少一个全网状网络结构,每个全网状网络结构与至少两个不同的网络拓扑结构对应,待处理的网络拓扑结构包括m个节点,目标全网状网络结构包括n个节点,n≥m>1,且m和n均为整数;
根据目标全网状网络结构对待处理的网络拓扑结构进行拓扑映射,得到第一映射拓扑结构;
将目标全网状网络结构的代码写入可编程器件中,并根据第一映射拓扑结构的信息配置可编程器件中的目标全网状网络结构的各个节点以及各个链路的权值,得到第二映射拓扑结构,第二映射拓扑结构为待处理的网络拓扑结构在可编程器件中的映射拓扑结构。
可选地,处理器410具体用于:
对待处理的网络拓扑结构进行网络分域,得到i个子网拓扑结构,第一子网拓扑结构包括j个节点,i>1,j>1,且i和j均为整数,第一子网拓扑结构为i个子网拓扑结构中节点数最多的子网拓扑结构;
根据i个子网拓扑结构,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构,目标全网状网络结构包括p个全网状子网结构,每个全网状子网结构包括q个节点,p≥i,q≥j+1,且p和q均为整数。
可选地,处理器410还具体用于:
对待处理的网络拓扑结构进行网络分域,得到i个子网拓扑结构,i个子网拓扑结构满足第一预设条件、第二预设条件和第三预设条件中的至少一项;其中,第一预设条件包括:i个子网拓扑结构中任意两个子网拓扑结构的节点数的差值的绝对值小于预设阈值,第二预设条件包括:i个子网拓扑结构中跨子网链路的数量小于预设数量,第三预设条件包括:i个子网拓扑结构中跨子网链路的权值大于预设权值。
可选地,处理器410还具体用于:
确定i个子网拓扑结构的数量和第一子网拓扑结构的节点数;
根据i个子网拓扑结构的数量和第一子网拓扑结构的节点数,从预设的全网状网络结构集合中获取待处理的网络拓扑结构对应的目标全网状网络结构。
可选地,p=i,q=j+1,处理器410还具体用于:
从预设的全网状网络结构集合中,选择全网状子网结构的数量等于i,全网状子网结构的节点数等于j+1的全网状网络结构;
将选择的全网状网络结构,确定为与待处理的网络拓扑结构对应的目标全网状网络结构;
获取目标全网状网络结构。
可选地,每个全网状子网结构包括一子网节点,处理器410还具体用于:
在目标全网状网络结构的节点中,确定待处理的网络拓扑结构的每个节点对应的映射节点,其中,待处理的网络拓扑结构的同一子网拓扑结构的节点对应的映射节点位于目标全网状网络结构的同一全网状子网结构中;
根据待处理的网络拓扑结构的各个节点之间的链路,在对应的映射节点之间建立映射链路,其中,待处理的网络拓扑结构中的每个子网拓扑结构的跨子网节点对应的映射节点与每个子网拓扑结构对应的全网状子网结构的子网节点建立有映射链路,目标全网状网络结构的任意两个全网状子网结构的子网节点之间的映射链路的数量等于任意两个全网状子网结构对应的子网拓扑结构之间的链路的数量;
根据所有的映射节点和所有的映射链路得到第一映射拓扑结构。
可选地,处理器410还用于:
建立全网状网络结构集合,全网状网络结构集合包括至少一个全网状网络结构,至少一个全网状网络结构中的每个全网状网络结构包括至少两个全网状子网结构,每个全网状网络结构中的至少两个全网状子网结构的节点数相等,当两个全网状网络结构的全网状子网结构数相等时,两个全网状网络结构中的全网状子网结构的节点数不相等。
可选地,处理器410还具体用于:
将目标全网状网络结构的代码文件加载到可编程器件中,并控制可编程器件运行代码文件;
根据第一映射拓扑结构的信息,通过可编程器件的输入输出接口配置目标全网状网络结构的各个节点以及各个链路的权值,得到第二映射拓扑结构。
综上所述,本申请实施例提供的终端,由于目标全网状网络结构与至少两个不同的网络拓扑结构对应,且可以将目标全网状网络结构的代码写入可编程器件中,因此可以针对不同的网络拓扑结构编写相同的代码,解决了相关技术中的网络拓扑结构映射方法的通用性较低的问题,有助于提高网络拓扑结构映射方法的通用性。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行图3-1所示实施例提供的网络拓扑结构映射方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行图3-1所示实施例提供的网络拓扑结构映射方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。