CN105634974B - 软件定义网络中的路由确定方法和装置 - Google Patents
软件定义网络中的路由确定方法和装置 Download PDFInfo
- Publication number
- CN105634974B CN105634974B CN201511033267.1A CN201511033267A CN105634974B CN 105634974 B CN105634974 B CN 105634974B CN 201511033267 A CN201511033267 A CN 201511033267A CN 105634974 B CN105634974 B CN 105634974B
- Authority
- CN
- China
- Prior art keywords
- allocated
- business
- path
- weight
- paths
- 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.)
- Active
Links
Classifications
-
- 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
-
- 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/12—Shortest path evaluation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种软件定义网络中的路由确定方法和装置,包括:根据多个待分配业务中每个待分配业务的初始路径,确定软件定义网络中多条边的权值,根据权值,对多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得多个待分配业务的最短路径集合,从多个待分配业务的最短路径集合中确定多个待分配业务的最优路径集合。根据每条边的权值更新多个待分配业务的最短路径集合,从而可以根据更新后的多个待分配业务的最短路径集合获取多个待分配业务的最优路径集合,依照该最优路径集合对该待分配业务进行路由分配可以均衡软件自定义网络中各个边的负载,从而提升了软件自定义网络的资源利用率。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种软件定义网络中的路由确定方法和装置。
背景技术
软件定义网络(Software Defined Network,简称:SDN)是一种新型的计算机网络架构,其特点是将路由器和交换机中的控制功能和数据转发功能分离开来,前者组成控制平面,后者组成转发平面,控制平面由软件和服务器来实现,转发平面由网络设备实现。
SDN的控制平面集中管理路由,其集中路由算法是整个SDN的大脑,决定了网络资源的利用率和可靠程度,还避免了传统路由算法计算最短路使得数据流集中于同一路径进行转发,造成网络拥塞的不足。SDN的集中路由算法尤其适用于大规模饱和网络,均衡网络负载,优化网络资源,降低运营成本。
但是,SDN中大量业务对应不同的起点和终点,是一个典型的不可分流的多商品网络流(Multi-Commodity network Flow,简称:MCF)问题,即有多个业务的数据流在网络中从不同的起点流向不同的终点,SDN的集中路由算法对多个业务如何在软件定义网络中确定出符合业务需求且负载均衡的路由是SDN中最重要的问题。
发明内容
本发明实施例提供一种软件定义网络中的路由确定方法和装置,以克服现有技术中在软件定义网络中对多个业务确定出符合业务需求路由的负载均衡率较低的问题。
第一方面,本发明实施例提供一种软件定义网络中的路由确定方法,其中,软件定义网络用于承载多个业务,且包括多条路径,每条路径包括至少一条边,边表示软件定义网络对应的网络拓扑中直接通信的两个路由节点间的连接关系,上述方法包括:根据多个待分配业务中每个待分配业务的初始路径,确定软件定义网络中多条边的权值,其中,权值表示多个待分配业务使用各自的初始路径的情况下一条边的负荷程度;根据权值,对多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得多个待分配业务的最短路径集合,最短路径集合中的每条最短路径表示最短路径对应的待分配业务在一轮迭代计算中得到的资源占用量最少且满足业务需求的路径,最短路径集合包括多个待分配业务中每个待分配业务的所有最短路径,最短路径集合还包括多个待分配业务中每个待分配业务的初始路径;从多个待分配业务的最短路径集合中确定多个待分配业务的最优路径集合,最优路径集合中的路径与多个待分配业务一一对应,最优路径集合中的路径满足对应的待分配业务的业务需求,以及最优路径集合中所有路径的资源占用总量最小,资源占用总量是根据最优路径集合中每条路径的资源占用量确定的。
在本实施例中,首先,根据多个待分配业务中每个待分配业务的初始路径,确定软件定义网络中多条边的权值,进而,根据权值,对多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得多个待分配业务的最短路径集合,最后从多个待分配业务的最短路径集合中确定多个待分配业务的最优路径集合。其中,由于随着软件自定义网络中业务的增多,软件自定义网络中各个边的负荷程度也在改变,也即各个边的权值也在改变,通过更新每条边的权值,且根据每条边的权值更新多个待分配业务的最短路径集合,从而可以根据更新后的多个待分配业务的最短路径集合获取多个待分配业务的最优路径集合,依照该最优路径集合对该待分配业务进行路由分配可以均衡软件自定义网络中各个边的负载,从而提升了软件自定义网络的资源利用率。
在本发明的一些实施例中,根据权值,对多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得每个待分配业务的最短路径集合包括:根据权值,对多个待分配业务中的每个待分配业务进行第一轮迭代计算,以获得第一轮迭代计算对应的多个待分配业务的第一最短路径集合,其中,多个待分配业务的第一最短路径集合包括多个待分配业务的初始路径和多个待分配业务的至少一条其他路径,每条其他路径与对应相同待分配业务的初始路径不同,至少一条其他路径是根据第一轮迭代计算得到的多个待分配业务中至少一个待分配业务的最短路径;根据多个待分配业务的第一最短路径集合,确定第二轮迭代计算的实时权值;根据第二轮迭代计算的实时权值,对至少一个待分配业务进行至少一轮迭代计算,以获得至少一轮迭代计算中最后一轮迭代计算对应的多个待分配业务的最短路径集合,其中,最后一轮迭代计算对应的多个待分配业务的最短路径集合所包括的路径与最后一轮迭代计算的前一轮迭代计算获得的最短路径集合相同。
其中第一轮和第二轮的迭代计算过程为:根据所述权值,获取所述待分配业务的第一轮迭代对应的最短路径,所述待分配业务的第一轮迭代对应的最短路径为不包括在所述待分配业务的初始路径中的最短路径。根据所述待分配业务的第一轮迭代对应的最短路径确定用于所述待分配业务的第二轮迭代对应的实时权值,并根据所述待分配业务的第二轮迭代对应的实时权值获取所述待分配业务的第二轮迭代对应的最短路径,所述待分配业务的第二轮迭代对应的最短路径为未包含在第一轮迭代所得到的所述待分配业务的最短路径集合中的最短路径。其中,如果第二轮迭代没有得到所述待分配业务的第二轮迭代对应的最短路径,则迭代过程结束。
进一步的,至少一轮迭代计算的中每轮迭代计算的过程与第一轮迭代计算计算方法类似,判断迭代过程结束的条件与第二轮迭代计算方法类似。
在本实施例中,通过根据上一轮迭代计算得到的最短路径集合,确定下一轮迭代计算的实时权值,从而根据该实时权值确定未包含在上一轮迭代计算中得到的最短路径集合中的最短路径,直到确定出所有的最短路径,从而在确定多个待分配业务的最优路径集合时,可以结合多个待分配业务的所有最短路径,从而可以均衡软件自定义网络中各个边的负载,提升了软件自定义网络的资源利用率。
在本发明的一些实施例中,根据第一最短路径集合,确定第二轮迭代计算的实时权值,包括:根据第一最短路径集合构造业务矩阵和业务约束向量;根据第一最短路径集合、软件定义网络的拓扑结构以及多个待分配业务的需求带宽构造边矩阵;根据至少一条边的带宽信息构造边约束向量;根据业务矩阵和边矩阵构造路由矩阵,并根据业务约束向量和边约束向量构造约束向量;根据路由矩阵和约束向量采用预设权值算法确定第二轮迭代计算的实时权值。
在本实施例中,通过构造路由矩阵和约束向量,可有效提升更新至少一条边的实时权值的效率和准确性,进而有效提升最优路径计算效率,并且提高业务的放入率,最终提升全网的资源利用率。
在本发明的一些实施例中,根据第一最短路径集合构造业务矩阵和业务约束向量,包括:
根据公式(1)构造业务矩阵A1:
A1=(ai,j)N×P (1)
其中,N=|Ω|,Ω表示所有业务的集合,N表示所有业务的总个数;Pi表示业务i的最短路径,P表示所有最短路径的总条数;ai,j表示最短路径j是否为业务i的最短路径,当最短路径j是业务i的最短路径时,ai,j为1,否则ai,j为0;
根据公式(2)构造业务约束向量b1:
b1=(1)N×1 (2)
根据所述第一最短路径集合、所述软件定义网络的拓扑结构以及所述多个待分配业务的需求带宽构造边矩阵,包括:
根据公式(3)构造边矩阵A2:
其中,L表示所有边的总个数;表示业务i的第j个最短路径ij是否经过边k,当业务i的第j个最短路径ij经过边k时,否则Vi表示业务i的需求带宽;
根据所述至少一条边的带宽信息构造边约束向量,包括:
根据公式(4)构造边约束向量b2:
b2=(ck)L×1 (4)
其中,ck表示边k的总带宽;
根据所述业务矩阵和所述边矩阵构造路由矩阵,并根据所述业务约束向量和所述边约束向量构造约束向量,包括:
根据公式(5)构造路由矩阵A:
根据公式(6)构造约束向量b:
根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,包括:
获取预设迭代轮数T,并且初始t=0;
重复执行以下步骤:
根据公式(7)计算获取所述至少一条边的实时权值:
yt+1=yt+γ(yt-Yt) (7)
其中,B=Axt-b;表示向量yt中的第i个元素;Bi表示向量B中的第i个元素;γ表示预设步长整体收缩系数;s表示边的权值更新步长;
xt+1=xt+γ(xt-Xt),
其中, 表示向量zt中的第i个元素;Wi表示向量W中的第i个元素,表示所有业务的所有最短路径的权重系数组成的路径权重向量,表示最短路径的权重系数,LINK表示边的集合,λ=1/(VmaxR)为权重压缩系数,Vmax=max{Vi|i∈Ω},wk表示边k的初始权值;表示所有边是权值总和;r表示候选边的权值更新步长;
直到t=T时,确定第二轮迭代计算的实时权值yT。
本实施例中,通过上述公式确定第二轮迭代计算的实时权值,有效提升最优路径计算效率,并且提高业务的放入率,最终提升全网的资源利用率。
进一步的,根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值包括:
根据公式(8)判断所述至少一个待分配业务的最短路径是否满足对偶问题约束条件:
yA≤W (8)
其中,A为所述路由矩阵,W为所述路径权重向量,y为计算第一轮迭代对应的第一最短路径集合的权值;
若不满足所述公式(8)的对偶问题约束条件,则停止根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,且所述至少一条边的实时权值为所述权值;
若满足所述公式(8)的对偶问题约束条件,则根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
本实施例中,通过判断是否至少一个待分配业务的最短路径满足对偶问题约束条件,若满足则确定第二轮迭代计算的实时权值,不满足则停止更新,从而提高对至少一条边的实时权值更新的准确性以及效率,进而提升全网的资源利用率。
进一步的,所述多轮迭代计算中的每一轮迭代计算都采用迪杰斯特拉算法或贝尔曼-福特算法。
本实施例中,通过上述两种算法可以更加准确且更加快速的确定出至少一个待分配业务在本轮迭代时对应的最短路径,进而提升全网的资源利用率。
在本发明的一些实施例中,获取本轮迭代得到的其他路径之后,将本轮迭代得到的其他路径添加至对应的待分配业务上一轮迭代得到的最短路径集合中。
进一步的,从多个待分配业务的最短路径集合中确定多个待分配业务的最优路径集合,包括:根据所有待分配业务的最短路径集合中的路径和初始路径的边的跳数对最短路径集合中的路径按照升序进行排序得到第一序列,最短路径集合中的路径包括多个待分配业务中每个待分配业务的所有最短路径和多个待分配业务中每个待分配业务的初始路径;对第一序列中边的数量相同的最短路径集合中的路径,根据边的数量相同的最短路径集合中的路径分别包含的边的业务流量之和按升序进行排序得到第二序列;对第二序列中边的业务流量之和相同的最短路径集合中的路径,根据边的业务流量之和相同的最短路径集合中的路径按照边的权值之和的大小升序排列得到第三序列;根据每个待分配业务的业务需求以及第三序列中最短路径集合中的路径的顺序确定多个待分配业务的最优路径。
本实施例中,通过对所有待分配业务的最短路径集合的各条路径执行上述多轮排序,从而可有效确定出多个待分配业务的最优路径,进而有效提升最优路径计算效率,并且提高业务的放入率,最终提升全网的资源利用率。
第二方面,本发明提供一种软件定义网络中的路由确定装置,所述软件定义网络用于承载多个业务,所述软件定义网络包括多条路径,每条所述路径包括至少一条边,所述边表示所述软件定义网络对应的网络拓扑中直接通信的两个路由节点间的连接关系,所述装置包括:权值确定模块,用于根据多个待分配业务中每个待分配业务的初始路径,确定所述软件定义网络中多条边的权值,所述权值表示所述多个待分配业务使用各自的初始路径的情况下一条边的负荷程度;最短路径集合获取模块,用于根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述多个待分配业务的最短路径集合,所述最短路径集合中的每条最短路径表示所述最短路径对应的待分配业务在一轮迭代计算中得到的资源占用量最少且满足业务需求的路径,所述最短路径集合包括所述多个待分配业务中每个待分配业务的所有最短路径,所述最短路径集合还包括所述多个待分配业务中每个待分配业务的初始路径;最优路径集合确定模块,用于从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,所述最优路径集合中的路径与所述多个待分配业务一一对应,所述最优路径集合中的路径满足对应的待分配业务的业务需求,以及所述最优路径集合中所有路径的资源占用总量最小,所述资源占用总量是根据所述最优路径集合中每条路径的资源占用量确定的。
进一步的,所述最短路径集合获取模块具体用于:根据所述权值,对所述多个待分配业务中的每个待分配业务进行第一轮迭代计算,以获得所述第一轮迭代计算对应的所述多个待分配业务的第一最短路径集合,其中,所述多个待分配业务的第一最短路径集合包括所述多个待分配业务的初始路径和所述多个待分配业务的至少一条其他路径,每条所述其他路径与对应相同待分配业务的初始路径不同,所述至少一条其他路径是根据所述第一轮迭代计算得到的所述多个待分配业务中至少一个待分配业务的最短路径;根据所述多个待分配业务的第一最短路径集合,确定第二轮迭代计算的实时权值;根据所述第二轮迭代计算的实时权值,对所述至少一个待分配业务进行至少一轮迭代计算,以获得所述至少一轮迭代计算中最后一轮迭代计算对应的所述多个待分配业务的最短路径集合,其中,所述最后一轮迭代计算对应的所述多个待分配业务的最短路径集合所包括的路径与所述最后一轮迭代计算的前一轮迭代计算获得的最短路径集合相同。
进一步的,在所述根据所述第一最短路径集合,确定第二轮迭代计算的实时权值的方面,所述最短路径集合获取模块具体用于:根据所述第一最短路径集合构造业务矩阵和业务约束向量;根据所述第一最短路径集合、所述软件定义网络的拓扑结构以及所述多个待分配业务的需求带宽构造边矩阵;根据所述至少一条边的带宽信息构造边约束向量;根据所述业务矩阵和所述边矩阵构造路由矩阵,并根据所述业务约束向量和所述边约束向量构造约束向量;根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
进一步的,在所述根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值的方面,所述最短路径集合获取模块具体用于:
获取预设迭代轮数T,并且初始t=0;
重复执行以下步骤:
根据公式yt+1=yt+γ(yt-Yt)和xt+1=xt+γ(xt-Xt)计算获取所述至少一条边的实时权值:
其中,所述所述B=Axt-b;所述表示向量yt中的第i个元素;所述Bi表示向量B中的第i个元素;所述γ表示预设步长整体收缩系数;所述s表示边的权值更新步长;所述A为所述路由矩阵,所述b为所述约束向量;
其中, 表示向量zt中的第i个元素;Wi表示向量W中的第i个元素,表示所有待分配业务的所有最短路径的权重系数组成的路径权重向量,表示最短路径的权重系数,LINK表示边的集合,λ=1/(VmaxR)为权重压缩系数,Vmax=max{Vi|i∈Ω},wk表示边k的初始权值;表示所有边权值总和;r表示候选边的权值更新步长;
直到t=T时,确定所述第二轮迭代计算的实时权值为yT。
进一步的,所述装置还包括:判断模块,所述判断模块用于根据公式yA≤W判断所述至少一个待分配业务的最短路径是否满足对偶问题约束条件;其中,A为所述路由矩阵,W为所述路径权重向量,y为所述权值;若不满足所述对偶问题约束条件,则向所述最短路径集合获取模块发送第一指令,所述第一指令用于指示所述最短路径集合获取模块停止根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,且所述至少一条边的实时权值为所述权值;若满足所述对偶问题约束条件,则向所述最短路径集合获取模块发送第二指令,所述第二指令用于指示所述最短路径集合获取模块根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
进一步的,所述最短路径集合获取模块还用于在所述多轮迭代计算中的每一轮迭代计算都采用迪杰斯特拉算法或贝尔曼-福特算法。
进一步的,所述最优路径集合确定模块,具体用于:根据所有所述待分配业务的最短路径集合中的路径和所述初始路径的边的跳数对所述最短路径集合中的路径按照升序进行排序得到第一序列,所述最短路径集合中的路径包括所述多个待分配业务中每个待分配业务的所有最短路径和所述多个待分配业务中每个待分配业务的初始路径;对所述第一序列中边的数量相同的所述最短路径集合中的路径,根据所述边的数量相同的所述最短路径集合中的路径分别包含的所述边的业务流量之和按升序进行排序得到第二序列;对所述第二序列中边的业务流量之和相同的所述最短路径集合中的路径,根据所述边的业务流量之和相同的所述最短路径集合中的路径按照所述边的权值之和的大小升序排列得到第三序列;根据所述每个待分配业务的业务需求以及所述第三序列中所述最短路径集合中的路径的顺序确定所述多个待分配业务的最优路径。
本发明第三方面提供一种软件定义网络中的路由确定装置,包括:处理器、存储器和通信接口;所述存储器,用于存储程序代码;所述处理器、所述存储器和所述通信接口通过总线相互通信;所述处理器,用于读取所述存储器中存储的程序代码,执行上述第一方面和第一方面对应的实施例中的软件定义网络的路由确定方法。
在本发明中,首先,根据多个待分配业务中每个待分配业务的初始路径,确定软件定义网络中多条边的权值,进而,根据权值,对多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得多个待分配业务的最短路径集合,最后从多个待分配业务的最短路径集合中确定多个待分配业务的最优路径集合。其中,由于随着软件自定义网络中业务的增多,软件自定义网络中各个边的负荷程度也在改变,也即各个边的权值也在改变,通过更新每条边的权值,且根据每条边的权值更新多个待分配业务的最短路径集合,从而可以根据更新后的多个待分配业务的最短路径集合获取多个待分配业务的最优路径集合,依照该最优路径集合对该待分配业务进行路由分配可以均衡软件自定义网络中各个边的负载,从而提升了软件自定义网络的资源利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明实施例中SDN的架构示意图;
图2所示为本发明实施例中SDN的分层示意图;
图3所示为本发明软件定义网络中的路由确定方法的一个实施例的流程图;
图4所示为可以应用的本申请方法一个网络拓扑的示例性网络拓扑结构示意图;
图5为3个待分配业务的最优路径示意图;
图6所示为本发明实施例提供的软件定义网络中的路由确定装置的结构示意图;
图7所示为本发明另一实施例提供的软件定义网络中的路由确定装置的结构示意图;
图8所示为本发明又一实施例提供的软件定义网络中的路由确定装置的结构示意图;
图9所示为本发明再一实施例提供的软件定义网络中的路由确定装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中相关的技术名词的解释:
初始路径:根据网络的实际情况和待分配业务的业务需求提前预置的,也可以是根据所述网络中多条边的初始权值确定的,本领域技术人员应理解实际情况包括例如相邻节点之间的距离和各边的带宽等等,本发明不做限定。且在本发明中,初始路径为在执行本发明的方法之前,分配给每个待分配业务的路径。
初始权值:在未放入待分配业务的情况下,用于表示边的负荷程度的量,且该边的初始权值越大表明该边的负荷越大。本领域技术人员应理解实际情况中考虑到例如个节点的物理距离、未放入待分配业务的情况下各边的带宽等,本发明不做限定。
资源占用量:传输业务时该业务所需的资源量。本领域技术人员应理解可以是包括带宽、流量、资费等中的至少一种。
负荷程度:传输业务时,边承载的业务对该边所能分配的最大资源量的占用程度。
图1所示为本发明实施例中SDN的架构示意图。如图1所示,SDN网络包括控制器和多个转发设备,转发设备只负责数据的转发,控制器负责为每个业务配置路由路径,并更新路由表,将更新的路由表下发给各转发设备,各转发设备在接收到业务数据时,根据路由表进行转发。控制器可以是远程的服务器也可以是安装在远程服务器上的软件,其中包括SDN控制软件(如网络操作***),提供各种网络服务。控制器集中管理网络中的所有设备,虚拟整个网络为资源池,根据用户不同的需求以及全局网络拓扑,灵活动态地分配资源,SDN控制器具有网络的全局视图,负责管理整个网络,对下层,通过标准的协议与基础网络进行通信;对上层,通过开放接口向应用层提供对网络资源的控制能力。需要说明的是,工作在基础设施层的SDN交换机等硬件设备虽然不在需要对逻辑控制进行过多考虑,但作为SDN网络中负责具体数据转发处理的设备,为了完成高速数据转发,还是要遵循交换机工作原理。本质上看,传统设备中无论是交换机还是路由器,其工作原理都是在收到数据包时,将数据包中的某些特征域与设备自身存储的一些表项进行比对,当发现匹配时则按照表项的要求进行相应处理。SDN交换机也是类似的原理,但是与传统设备存在差异的是,设备中的各个表项并非是由设备自身根据周边的网络环境在本地自行生成的,而是由远程控制器统一下发的,因此各种复杂的控制逻辑(例如链路发现、地址学习、路由计算等等)都无需在SDN交换机中实现。
本发明实施例提供的用于SDN网络架构的路由计算方法和装置部署在控制层。需要说明的是,控制层和基础设施层不一定会在物理上分离,也就是说,应用层、控制层可能就设置在基础设施层的某一台甚至几台SDN网络设备上(如SDN交换机等)而无需专门的SDN硬件控制设备,也可能控制器是独立于基础设施层负责数据转发网络设备的服务器(可称之为控制服务器)或者以软件形式安装在控制服务器上,甚至以软件形式安装在控制服务器的虚拟机上。目前,多个厂家的SDN控制器的实现方式和协议均有不同,SDN控制器的主流实现方法是纯软件,纯软的SDN控制器已经在网络虚拟化领域的市场落地,比如VMware的NSX控制器,与物理网络分开,VMware声称NSX是一款完全虚拟化的产品,与任何网络硬件兼容。而硬件SDN目前都与流量牵引有关,如交通工程,视频监控,安全领域等,具有硬件网络设备实体的SDN控制器(即控制服务器)与SDN网络中的一台或者多台SDN交换机连接,具体的连接方式视具体的SDN网络的规模和需求而定,需要理解,由于性能限制,控制服务器有最大连接交换机数量,控制服务器如何与交换机连接,SDN网络如何组网不在本发明实施例的研究范围内,为了便于理解,请参阅图1,图1是SDN网络中SDN控制器具有对应的独立的硬件设备(如一台服务器)的情况下的一种组网示意图。本发明实施例对控制层的实现方式不作限制,如可以是纯软件(如网络操作***)实现的,还可以是在独立的网络设备实体硬件实现的(实现于独立于基础设施层网络节点的控制服务器或者计算机集群上)等等。
图2所示为本发明实施例中SDN的分层示意图。如图2所示,SDN的典型架构共分三层,最上层为应用层(Application Layer),包括各种不同的应用、网络仿真、网络规划等。中间的控制层(Control Layer)主要负责数据平面资源的编排,网络拓扑和状态信息的维护等,物理上,该层次可以放置在一台单独的物理服务器上,也可以分布式放置在多台物理服务器上。最底层的网络设备层(Infrastructure Layer)主要负责基于流表的数据处理、转发和状态收集,包括路由器、交换机等。
本发明通过根据上一轮迭代计算得到的最短路径集合,确定下一轮迭代计算的实时权值,从而根据该实时权值确定未包含在上一轮迭代计算中得到的最短路径集合中的最短路径,直到确定出所有的最短路径,从而在确定多个待分配业务的最优路径集合时,可以结合多个待分配业务的所有最短路径,从而可以均衡软件自定义网络中各个边的负载,提升了软件自定义网络的资源利用率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图3所示为本发明软件定义网络中的路由确定方法的一个实施例的流程图,软件定义网络用于承载多个业务,软件定义网络包括多条路径,每条路径包括至少一条边,边表示软件定义网络对应的网络拓扑中直接通信的两个路由节点间的连接关系,上述方法包括:
步骤101、根据多个待分配业务中每个待分配业务的初始路径,确定所述软件定义网络中多条边的权值,所述权值表示所述多个待分配业务使用各自的初始路径的情况下一条边的负荷程度。
具体的,在实际应用中,可根据现有技术中的路径计算方法获取多个待分配业务中每个待分配业务的初始路径,进而根据确定的每个待分配业务的初始路径确定软件定义网络中多条边的权值,以在步骤102中根据该多条变的权值确定多个待分配业务中每个待分配业务的最短路径集合。
步骤102、根据权值,对多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得多个待分配业务的最短路径集合,最短路径集合中的每条最短路径表示最短路径对应的待分配业务在一轮迭代计算中得到的资源占用量最少且满足业务需求的路径,最短路径集合包括多个待分配业务中每个待分配业务的所有最短路径,最短路径集合还包括多个待分配业务中每个待分配业务的初始路径。
其中,步骤102中根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述每个待分配业务的最短路径集合具体包括:
根据权值,对多个待分配业务中的每个待分配业务进行第一轮迭代计算,以获得第一轮迭代计算对应的多个待分配业务的第一最短路径集合,其中,多个待分配业务的第一最短路径集合包括多个待分配业务的初始路径和多个待分配业务的至少一条其他路径,每条其他路径与对应相同待分配业务的初始路径不同,至少一条其他路径是根据第一轮迭代计算得到的多个待分配业务中至少一个待分配业务的最短路径;
根据多个待分配业务的第一最短路径集合,确定第二轮迭代计算的实时权值;
根据第二轮迭代计算的实时权值,对至少一个待分配业务进行至少一轮迭代计算,以获得至少一轮迭代计算中最后一轮迭代计算对应的多个待分配业务的最短路径集合,其中,最后一轮迭代计算对应的多个待分配业务的最短路径集合所包括的路径与最后一轮迭代计算的前一轮迭代计算获得的最短路径集合相同。
进一步的,上述根据第一最短路径集合,确定第二轮迭代计算的实时权值,包括:
根据第一最短路径集合构造业务矩阵和业务约束向量;
根据第一最短路径集合、软件定义网络的拓扑结构以及多个待分配业务的需求带宽构造边矩阵;
根据至少一条边的带宽信息构造边约束向量;
根据业务矩阵和边矩阵构造路由矩阵,并根据业务约束向量和边约束向量构造约束向量;
根据路由矩阵和约束向量采用预设权值算法确定第二轮迭代计算的实时权值。
具体的,根据第一最短路径集合构造业务矩阵和业务约束向量,包括:
根据公式(1)构造业务矩阵A1:
A1=(ai,j)N×P (1)
其中,N=|Ω|,Ω表示所有待分配业务的集合,N表示所有待分配业务的总个数;Pi表示待分配业务i的最短路径,P表示所有最短路径的总条数;ai,j表示最短路径j是否为待分配业务i的最短路径,当最短路径j是待分配业务i的最短路径时,ai,j为1,否则ai,j为0;
根据公式(2)构造业务约束向量b1:
b1=(1)N×1 (2)
根据第一最短路径集合、软件定义网络的拓扑结构以及多个待分配业务的需求带宽构造边矩阵,包括:
根据公式(3)构造边矩阵A2:
其中,L表示所有边的总个数;表示待分配业务i的第j个最短路径ij是否经过边k,当待分配业务i的第j个最短路径ij经过边k时,否则Vi表示待分配业务i的需求带宽;
根据至少一条边的带宽信息构造边约束向量,包括:
根据公式(4)构造边约束向量b2:
b2=(ck)L×1 (4)
其中,ck表示边k的总带宽;
根据业务矩阵和边矩阵构造路由矩阵,并根据业务约束向量和边约束向量构造约束向量,包括:
根据公式(5)构造路由矩阵A:
根据公式(6)构造约束向量b:
根据路由矩阵和约束向量采用预设权值算法确定第二轮迭代计算的实时权值,包括:
获取预设迭代轮数T,并且初始t=0;
重复执行以下步骤:
根据公式(7)计算获取至少一条边的实时权值:
yt+1=yt+γ(yt-Yt) (7)
其中,B=Axt-b;表示向量yt中的第i个元素;Bi表示向量B中的第i个元素;γ表示预设步长整体收缩系数;s表示边的权值更新步长;
xt+1=xt+γ(xt-Xt),
其中, 表示向量zt中的第i个元素;Wi表示向量W中的第i个元素,表示所有待分配业务的所有最短路径的权重系数组成的路径权重向量,表示最短路径的权重系数,LINK表示边的集合,λ=1/(VmaxR)为权重压缩系数,Vmax=max{Vi|i∈Ω},wk表示边k的初始权值;表示所有边是权值总和;r表示候选边的权值更新步长;
直到t=T时,确定第二轮迭代计算的实时权值yT。
上述根据公式(7)计算获取至少一条边的实时权值之前,还包括:
根据公式yA≤W判断至少一个待分配业务的最短路径是否满足对偶问题约束条件;
其中,A为路由矩阵,W为路径权值向量,y为权值;
若不满足对偶问题约束条件,则停止根据路由矩阵和约束向量采用预设权值算法确定第二轮迭代计算的实时权值,且至少一条边的实时权值为权值;
若满足对偶问题约束条件,则根据路由矩阵和约束向量采用预设权值算法确定第二轮迭代计算的实时权值。
其中,所述多轮迭代计算中的每一轮迭代计算都采用迪杰斯特拉算法或贝尔曼-福特算法。
值得注意的是,上述仅仅说明了第一轮迭代计算和第二轮迭代计算的实现方式,在实际应用中,其他轮迭代计算的实现方式与第一轮迭代计算和第二轮迭代计算相同,具体参考上述描述,此处不再赘述。
步骤103、从多个待分配业务的最短路径集合中确定多个待分配业务的最优路径集合,最优路径集合中的路径与多个待分配业务一一对应,最优路径集合中的路径满足对应的待分配业务的业务需求,以及最优路径集合中所有路径的资源占用总量最小,资源占用总量是根据最优路径集合中每条路径的资源占用量确定的。
具体的,从多个待分配业务的最短路径集合中确定多个待分配业务的最优路径集合,包括:
根据所有待分配业务的最短路径集合中的路径和初始路径的边的跳数对最短路径集合中的路径按照升序进行排序得到第一序列,最短路径集合中的路径包括多个待分配业务中每个待分配业务的所有最短路径和多个待分配业务中每个待分配业务的初始路径;
对第一序列中边的数量相同的最短路径集合中的路径,根据边的数量相同的最短路径集合中的路径分别包含的边的业务流量之和按升序进行排序得到第二序列;
对第二序列中边的业务流量之和相同的最短路径集合中的路径,根据边的业务流量之和相同的最短路径集合中的路径按照边的权值之和的大小升序排列得到第三序列;
根据每个待分配业务的业务需求以及第三序列中最短路径集合中的路径的顺序确定多个待分配业务的最优路径。
在本实施例中,首先,根据多个待分配业务中每个待分配业务的初始路径,确定软件定义网络中多条边的权值,进而,根据权值,对多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得多个待分配业务的最短路径集合,最后从多个待分配业务的最短路径集合中确定多个待分配业务的最优路径集合。其中,由于随着软件自定义网络中业务的增多,软件自定义网络中各个边的负荷程度也在改变,也即各个边的权值也在改变,通过更新每条边的权值,且根据每条边的权值更新多个待分配业务的最短路径集合,从而可以根据更新后的多个待分配业务的最短路径集合获取多个待分配业务的最优路径集合,依照该最优路径集合对该待分配业务进行路由分配可以均衡软件自定义网络中各个边的负载,s从而提升了软件自定义网络的资源利用率。
为了便于理解,下面采用一个具体的实施例,对图3所示方法实施例的技术方案进行详细说明。
图4所示为可以应用的本申请方法一个网络拓扑的示例性网络拓扑结构示意图,如图4所示,该网络共有8个节点,13条边,每一条边的总带宽和初始权值如图4中各边上的标注(总带宽,初始权值)所示。
本实施例中共有3个待分配业务,待分配业务1的起点是A,终点是H,需求带宽是4,待分配业务2的起点是A,终点是E,需求带宽是4,待分配业务3的起点是A,终点是G,需求带宽是4。
表1是各边的编号,则边的集合LINK={k|k=1,2,...,13},所有边的总个数L=|LINK|=13。
表1
编号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
边 | A-B | A-D | A-F | B-C | B-D | C-E | C-H |
编号 | 8 | 9 | 10 | 11 | 12 | 13 | |
边 | D-E | D-F | E-G | E-H | F-G | G-H |
各边的初始权值即编号为1、4、7的边的初始权值为2,其余边的初始权值为1。所有边权值总和各边的总带宽ck=4(k∈Link)。所有待分配业务的集合Ω={1,2,3},其编号分别是1、2、3。所有待分配业务的总个数N=|Ω|=3。待分配业务i的需求带宽Vi=4(i∈Ω)。所有待分配业务的最大需求带宽Vmax=max{Vi|i∈Ω}=4。权重压缩系数
其中初始权值可以是根据多个待分配业务中每个待分配业务的初始路径确定的,也可以是网络中预设的,其具体得到初始权值的方法此处不再赘述。
根据所述权值,对所述多个待分配业务中的每个待分配业务进行第一轮迭代计算,包括:
第一轮确定3个待分配业务的最短路径:
假设初始状态下全部边的权值为初始权值,y0=0,x0=0,为了便于描述在本实施例中假设在第一轮迭代计算之前各个待分配业务的最短路径集合为空集。
根据全部边的实时权值采用迪杰斯特拉算法或贝尔曼-福特算法确定出待分配业务1的最短路径为A-D-E-H,待分配业务2的最短路径为A-D-E,待分配业务3的最短路径为A-F-G。由于待分配业务1、待分配业务2和待分配业务3在本步骤之前的最短路径集合为空集,因此此时可以将该三条路径添加至待分配业务1、待分配业务2和待分配业务3的最短路径集合中,得到第一最短路径集合。
进而执行,根据所述第一最短路径集合构造业务矩阵和业务约束向量,也即,根据公式(1)构造业务矩阵:
A1=(ai,j)N×P (1)
其中,N=3,P=3,最短路径1是待分配业务1的最短路径,最短路径2是待分配业务2的最短路径,最短路径3是待分配业务3的最短路径,ai,j表示最短路径j是否为待分配业务i的最短路径,当最短路径j是待分配业务i的最短路径时,ai,j为1,否则ai,j为0。因此,可以得到业务矩阵:
根据公式(2)构造业务约束向量:
b1=(1)N×1 (2)。因此,可以得到业务约束向量:
根据公式(3)构造边矩阵:
其中,L=13,表示待分配业务i的第j个最短路径ij是否经过边k,当待分配业务i的第j个最短路径ij经过边k时,否则
进而,根据所述第一最短路径集合、所述软件定义网络的拓扑结构以及所述多个待分配业务的需求带宽构造边矩阵,具体的:
待分配业务1的第一条最短路径P11经过A-D、D-E、E-H这3条边,对应的编号分别是2、8、11,则待分配业务1的第一条最短路径P11的第2、8、11个元素为4,其余元素为0;待分配业务2的第一条最短路径P21经过A-D、D-E这2条边,对应的编号分别是2、8,则待分配业务2的第一条最短路径P21的第2、8个元素为4,其余元素为0;待分配业务3的第一条最短路径P31经过A-F、F-G这2条边,对应的编号分别是3、12,则待分配业务3的第一条最短路径P31的第3、12个元素为4,其余元素为0。因此可以得到边矩阵:
进而,根据所述至少一条边的带宽信息构造边约束向量,具体的:
根据公式(4)构造边约束向量:
b2=(ck)L×1 (4)
进一步的,根据所述业务矩阵和所述边矩阵构造路由矩阵,并根据所述业务约束向量和所述边约束向量构造约束向量,具体的:
其中,ck=4(k∈Link)。因此可以得到边约束向量:
根据公式(5)构造路由矩阵:
根据公式(6)构造约束向量:
最后,根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
具体的,根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值之前,还包括:
根据公式yA≤W判断所述至少一个待分配业务的最短路径是否满足对偶问题约束条件;
其中,A为所述路由矩阵,W为所述路径权重向量,y为所述权值;
若不满足所述对偶问题约束条件,则停止根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,且所述至少一条边的实时权值为所述权值;
若满足所述对偶问题约束条件,则根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
具体的:先判断3个待分配业务的上述最短路径是否满足对偶问题约束条件,即是否满足公式(8):
yA≤W,y=[0 0 0] (8)
计算这三条最短路径对应的路径权重向量:
待分配业务1的第一条最短路径的权重系数
待分配业务2的第一条最短路径的权重系数
待分配业务3的第一条最短路径的权重系数
则路径权重向量:
W=[W11 W21 W31]=[13 14 14]
可见,yA=[0 0 0]≤[13 14 14]=W,由于满足对偶问题约束条件,表示存在新的候选路径,可以继续向下计算,也即采用预设权值算法确定所述第二轮迭代计算的实时权值。
进一步的,根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,包括:
获取预设迭代轮数T,并且初始t=0,假设T为1000,每轮t加1,重复执行以下步骤,直到t=T=1000:
根据公式(7)计算获取13条边的实时权值:
yt+1=yt+γ(yt-Yt) (7)
其中,B=Axt-b,表示向量yt中的第i个元素,Bi表示向量B中的第i个元素,γ假设为1.5,s表示边的权值更新步长,本轮迭代s=0.205475;
xt+1=xt+γ(xt-Xt),
其中, 表示向量zt中的第i个元素,λ=0.0156为权重压缩系数,R=16,r为168.714652。
由于y0=0,x0=0,因此基于上述公式和参数可以计算出t=1时的y1和x1。
由于此时t<T,所以还需要通过上述公式和参数进行迭代计算,获取t=2时的y2和x2。
直到t=T=1000时,表示迭代轮数已满足,则确定更新后的实时权值为yT。
此时,y=yt=[0,0.0149,0.4242,0,1.6845,1.6970,0,0,0,0,1.6845,0,0,0,1.6970,0]
x=xt=[0,1,1]
将y中的后13个元素与各边的初始权值分别相加,得到各边的最终的更新后的实时权值。
进而执行第二轮迭代过程,也即执行第二轮确定3个待分配业务的最短路径的过程:
此时基于上一轮最短路径的计算,全部边的实时权值y,x为上一轮的计算结果。根据全部边的实时权值采用迪杰斯特拉算法或贝尔曼-福特算法确定出待分配业务1的最短路径为A-B-C-H,待分配业务2的最短路径为A-B-C-E,待分配业务3的最短路径为A-B-C-E-G。这三条最短路径未包含在待分配业务1、待分配业务2、待分配业务3的第一最短路径集合中,因此分别将这三条最短路径加入待分配业务1、待分配业务2、待分配业务3的第一最短路径集合中得到第二最短路径集合。
根据公式(1)构造业务矩阵:
A1=(ai,j)N×P (1)
其中,N=3,加上第一轮的三条最短路径P=6,新增最短路径1是待分配业务1的最短路径,新增最短路径2是待分配业务2的最短路径,新增最短路径3是待分配业务3的最短路径,ai,j表示最短路径j是否为待分配业务i的最短路径,当最短路径j是待分配业务i的最短路径时,ai,j为1,否则ai,j为0。因此,可以得到业务矩阵:
根据公式(2)构造业务约束向量:
b1=(1)N×1 (2)。因此,可以得到业务约束向量:
根据公式(3)构造边矩阵:
其中,L=13,表示待分配业务i的第j个最短路径ij是否经过边k,当待分配业务i的第j个最短路径ij经过边k时,否则
待分配业务1的第二条最短路径P12经过A-B、B-C、C-H这3条边,对应的编号分别是1、4、7,则待分配业务1的第二条最短路径P12的第1、4、7个元素为4,其余元素为0;待分配业务2的第二条最短路径P22经过A-B、B-C、C-E这3条边,对应的编号分别是1、4、6,则待分配业务2的第二条最短路径P22的第1、4、6个元素为4,其余元素为0;待分配业务3的第二条最短路径P32经过A-B、B-C、C-E、E-G这4条边,对应的编号分别是1、4、6、10,则待分配业务3的第二条最短路径P32的第1、4、6、10个元素为4,其余元素为0。因此可以得到边矩阵:
根据公式(4)构造边约束向量:
b2=(ck)L×1 (4)
其中,ck=4(k∈Link)。因此可以得到边约束向量:
根据公式(5)构造路由矩阵:
根据公式(6)构造约束向量:
至此,先判断3个待分配业务的上述最短路径是否满足对偶问题约束条件,即是否满足公式(8):
ytA≤W (8)
计算这三条最短路径对应的路径权重向量:
待分配业务1的第二条最短路径的权重系数
待分配业务2的第二条最短路径的权重系数
待分配业务3的第二条最短路径的权重系数
则路径权重向量:
W=[W11 W21 W31 W12 W22 W32]=[13 14 14 10 11 10]
可见,满足对偶问题约束条件,表示存在新的候选路径,可以继续向下计算,更新各边的实时权值。
获取预设迭代轮数T,并且初始t=0,假设T为1000,每轮t加1,重复执行以下步骤,直到t=T=1000:
根据公式(7)计算获取13条边的实时权值:
yt+1=yt+γ(yt-Yt) (7)
其中,B=Axt-b,表示向量yt中的第i个元素,Bi表示向量B中的第i个元素,γ假设为1.5,s表示边权值更新步长,本轮迭代s=0.183499;
xt+1=xt+γ(xt-Xt),
其中, 表示向量zt中的第i个元素,λ=0.0156为权重压缩系数,R=16,r表示候选链路权值更新步长,本轮迭代r=370.574950。
因此基于上述公式和参数可以计算出t=1时的y1和x1。
由于此时t<T=1000,所以还需要通过上述公式和参数进行迭代计算,获取t=2时的y2和x2。
当t=T=1000时,表示迭代轮数已满足,则确定更新后的实时权值为yT。
y=yT=[1.0532,2.0504,10.4251,1.1183,1.4933,0.3357,1.1183,0,0,0,1.4933,0,0,0,0.3357,0]x=xT=[0.2507,0.7495,1.0000,0.7485,0.2517,0]
将y中的后13个元素与各边的初始权值分别相加,得到各边最终的更新后的实时权值。
进而执行第三轮迭代过程,也即执行第三轮确定3个待分配业务的最短路径的过程:
此时基于第二轮最短路径的计算,全部边的实时权值y,x为上一轮的计算结果。根据全部边的实时权值采用迪杰斯特拉算法或贝尔曼-福特算法确定出待分配业务1的最短路径为A-F-G-H,待分配业务2的最短路径为A-F-G-E,待分配业务3没有对应的最短路径。这两条最短路径未包含在待分配业务1和待分配业务2的第二最短路径集合中,因此分别将这两条最短路径加入待分配业务1和待分配业务2的第二最短路径集合中以得到第三最短路径集合。
根据公式(1)构造业务矩阵:
A1=(ai,j)N×P (1)
其中,N=3,加上前两轮的六条最短路径P=8,新增最短路径1是待分配业务1的最短路径,新增最短路径2是待分配业务2的最短路径,ai,j表示最短路径j是否为待分配业务i的最短路径,当最短路径j是待分配业务i的最短路径时,ai,j为1,否则ai,j为0。因此,可以得到业务矩阵:
根据公式(2)构造业务约束向量:
b1=(1)N×1 (2)。因此,可以得到业务约束向量:
根据公式(3)构造边矩阵:
其中,L=13,表示待分配业务i的第j个最短路径ij是否经过边k,当待分配业务i的第j个最短路径ij经过边k时,否则
待分配业务1的第三条最短路径P13经过A-F、F-G、G-H这3条边,对应的编号分别是3、12、13,则待分配业务1的第三条最短路径P13的第3、12、13个元素为4,其余元素为0;待分配业务2的第三条最短路径P23经过A-F、F-G、G-E这3条边,对应的编号分别是3、12、10,则待分配业务2的第三条最短路径P23的第3、12、10个元素为4,其余元素为0。因此可以得到边矩阵:
根据公式(4)构造边约束向量:
b2=(ck)L×1 (4)
其中,ck=4(k∈Link)。因此可以得到边约束向量:
根据公式(5)构造路由矩阵:
根据公式(6)构造约束向量:
至此,先判断3个待分配业务的上述最短路径是否满足对偶问题约束条件,即是否满足公式(8):
ytA≤W (8)
计算这三条最短路径对应的路径权重向量:
待分配业务1的第二条最短路径的权重系数
待分配业务2的第二条最短路径的权重系数
则路径权重向量:
W=[W11 W21 W31 W12 W22 W32 W13 W23]
=[13 14 14 10 11 10 13 13]
可见,
yA=[12.9996,13.9968,13.1105,9.9996,10.9968,19.3715,3.7386,4.7358],
≤[13 14 14 10 11 10 13 13]=W
满足对偶问题约束条件,表示存在新的候选路径,可以继续向下计算,更新各边的实时权值。
获取预设迭代轮数T,并且初始t=0,假设T为1000,每轮t加1,重复执行以下步骤,直到t=T=1000:
根据公式(7)计算获取13条边的实时权值:
yt+1=yt+γ(yt-Yt) (7)
其中,B=Axt-b,表示向量yt中的第i个元素,Bi表示向量B中的第i个元素,γ假设为1.5,s表示边权值更新步长,本轮迭代s=0.169204;
xt+1=xt+γ(xt-Xt),
其中, 表示向量zt中的第i个元素,λ=0.0156为权重压缩系数,R=16,r表示候选链路权值更新步长,本轮迭代r=401.882292。
因此基于上述公式和参数可以计算出t=1时的y1和x1。
由于此时t<T,所以还需要通过上述公式和参数进行迭代计算,获取t=2时的y2和x2。
当t=T=1000时,表示迭代轮数已满足,则确定更新后的实时权值为yT。
y=yT=[3.9437,4.9450,4.6615,0.7570,1.1320,1.1440,0.7570,0,0,0,1.1320,0,0,0,1.1440,0]
x=xT=[0.2512,0.7487,1.0000,0.7490,0.2509,0,0,0]
将y中的后13个元素与各边的初始权值分别相加,得到各边最终的更新后的实时权值。
进而执行第四轮迭代过程,也即执行第四轮确定3个待分配业务的最短路径的过程,全部边的实时权值y,x为上一轮的计算结果。由于在第四轮执行上述迭代过程中,根据全部边的实时权值采用迪杰斯特拉算法或贝尔曼-福特算法确定出待分配业务1的最短路径,待分配业务2的最短路径以及待分配业务3的最短路径均包含在这三个待分配业务对应的第三最短路径集合中,也即,至此,3个待分配业务再没有未包含在第三最短路径集合中的新的最短路径,因此停止上述重复执行的步骤。然后根据确定出来的待分配业务1、待分配业务2、待分配业务3的第三最短路径集合确定各待分配业务的最优路径。
具体来讲,根据上述过程选出来的8条最短路径的边的数量对所有最短路径按照升序进行排序形成第一序列;然后第一序列中边的数量相同的两条以上最短路径,根据这两条以上最短路径分别包含的边的待分配业务流量之和按升序进行排序形成第二序列;再对第二序列边的待分配业务流量之相同的两条以上最短路径,根据这两条以上最短路径包含的边的权值之和按升序进行排序形成第三序列。表2是8条最短路径的第三序列。
表2
根据表2所示的顺序,结合3个待分配业务的需求带宽确定3个待分配业务的最优路径,从而确定出待分配业务1的最优路径为A-B-C-H,待分配业务2的最优路径为A-D-E,待分配业务3的最优路径为A-F-G,图5为3个待分配业务的最优路径示意图。
进一步的,在按照上述方法确定出3个待分配业务的最优路径之后,还可以采用基于置换操作的禁忌搜索方法对最优路径进行优化。具体过程如下:
初始化可行解M={mi=-1|i∈Ω},其中待分配业务集合为Ω;初始化禁忌表N={ni=0|i∈Ω},针对待分配业务i,在迭代轮数小于等于ni时,不允许对待分配业务i的最优路径进行变更。
判断所有待分配业务是否均已确定出最优路径,若待分配业务i已确定最优路径为该待分配业务i的第j个最短路径,则置待分配业务i对应的可行解为mi=j;
根据待分配业务集合顺序,依次判断所述待分配业务是否可以变更路径;
4.1)若所述待分配业务i对应的解为mi=j,并且所述待分配业务的禁忌值ni小于当前迭代轮数iter,则将所述待分配业务从已确定所述最优路径集合中取出,记录取出的是待分配业务i的第j个最短路径,并根据所述待分配业务需求带宽恢复所述拓扑中边的带宽信息,同时置所述待分配业务对应的解mi=-1,其中,根据所述待分配业务需求带宽恢复所述拓扑中边的带宽信息包括:若放入待分配业务,则在拓扑中减去待分配业务占用的带宽;相反,如取出待分配业务则需要加上待分配业务占用的带宽。
4.2)在所述待分配业务的所述最短路径集合中按要求8中添加的顺序,
判断除刚取出的所述待分配业务i的第j个最短路径外,确定所述可以放入所述拓扑中网络剩余带宽信息的最短路径k为所述待分配业务的最优路径,并记ni=iter+Tabu,其中Tabu可以为固定值,亦可为随机值,同时记录mi=k;
若所述待分配业务,除刚取出的所述待分配业务i的第j个最短路径外的最短路径都不能重新放入拓扑中,则重新放入刚取出待分配业务i的第j个最短路径,并记ni=iter+Tabu+1,同时记录mi=j;
4.3)直到所有待分配业务均执行完,判断当前的可行解是否优于循环开始时的可行解,若所述可行解优于所述循环开始时的可行解,则更新可行解为当前迭代完成的可行解。
判断当前迭代轮数iter是否小于最大迭代轮数,若小于所述最大迭代轮数,则返回4),否则执行6),若所述所有待分配业务均已找到最优路径则可提前执行6);
结束循环,可以得到当前的可行解M={mi|i∈Ω}为所述问题的最优解。
图6所示为本发明实施例提供的软件定义网络中的路由确定装置的结构示意图,所述软件定义网络用于承载多个业务,所述软件定义网络包括多条路径,每条所述路径包括至少一条边,所述边表示所述软件定义网络对应的网络拓扑中直接通信的两个路由节点间的连接关系,如图6所示,本实施例的装置可以包括:
权值确定模块11,用于根据多个待分配业务中每个待分配业务的初始路径,确定所述软件定义网络中多条边的权值,所述权值表示所述多个待分配业务使用各自的初始路径的情况下一条边的负荷程度;
最短路径集合获取模块12,用于根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述多个待分配业务的最短路径集合,所述最短路径集合中的每条最短路径表示所述最短路径对应的待分配业务在一轮迭代计算中得到的资源占用量最少且满足业务需求的路径,所述最短路径集合包括所述多个待分配业务中每个待分配业务的所有最短路径,所述最短路径集合还包括所述多个待分配业务中每个待分配业务的初始路径;
最优路径集合确定模块13,用于从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,所述最优路径集合中的路径与所述多个待分配业务一一对应,所述最优路径集合中的路径满足对应的待分配业务的业务需求,以及所述最优路径集合中所有路径的资源占用总量最小,所述资源占用总量是根据所述最优路径集合中每条路径的资源占用量确定的。
进一步的,所述最短路径集合获取模块12具体用于:
根据所述权值,对所述多个待分配业务中的每个待分配业务进行第一轮迭代计算,以获得所述第一轮迭代计算对应的所述多个待分配业务的第一最短路径集合,其中,所述多个待分配业务的第一最短路径集合包括所述多个待分配业务的初始路径和所述多个待分配业务的至少一条其他路径,每条所述其他路径与对应相同待分配业务的初始路径不同,所述至少一条其他路径是根据所述第一轮迭代计算得到的所述多个待分配业务中至少一个待分配业务的最短路径;
根据所述多个待分配业务的第一最短路径集合,确定第二轮迭代计算的实时权值;
根据所述第二轮迭代计算的实时权值,对所述至少一个待分配业务进行至少一轮迭代计算,以获得所述至少一轮迭代计算中最后一轮迭代计算对应的所述多个待分配业务的最短路径集合,其中,所述最后一轮迭代计算对应的所述多个待分配业务的最短路径集合所包括的路径与所述最后一轮迭代计算的前一轮迭代计算获得的最短路径集合相同。
进一步的,在所述根据所述第一最短路径集合,确定第二轮迭代计算的实时权值的方面,所述最短路径集合获取模块12具体用于:
根据所述第一最短路径集合构造业务矩阵和业务约束向量;
根据所述第一最短路径集合、所述软件定义网络的拓扑结构以及所述多个待分配业务的需求带宽构造边矩阵;
根据所述至少一条边的带宽信息构造边约束向量;
根据所述业务矩阵和所述边矩阵构造路由矩阵,并根据所述业务约束向量和所述边约束向量构造约束向量;
根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
进一步的,在所述根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值的方面,所述最短路径集合获取模块12具体用于:
获取预设迭代轮数T,并且初始t=0;
重复执行以下步骤:
根据公式yt+1=yt+γ(yt-Yt)和xt+1=xt+γ(xt-Xt)计算获取所述至少一条边的实时权值:
其中,所述所述B=Axt-b;所述表示向量yt中的第i个元素;所述Bi表示向量B中的第i个元素;所述γ表示预设步长整体收缩系数;所述s表示边的权值更新步长;所述A为所述路由矩阵,所述b为所述约束向量;
其中, 表示向量zt中的第i个元素;Wi表示向量W中的第i个元素,表示所有待分配业务的所有最短路径的权重系数组成的路径权重向量,表示最短路径的权重系数,LINK表示边的集合,λ=1/(VmaxR)为权重压缩系数,Vmax=max{Vi|i∈Ω},wk表示边k的初始权值;表示所有边权值总和;r表示候选边的权值更新步长;
直到t=T时,确定所述第二轮迭代计算的实时权值为yT。
进一步的,如图7所示,上述的装置还包括:判断模块14,所述判断模块14用于根据公式yA≤W判断所述至少一个待分配业务的最短路径是否满足对偶问题约束条件;
其中,A为所述路由矩阵,W为所述路径权重向量,y为所述权值;
若不满足所述对偶问题约束条件,则向所述最短路径集合获取模块12发送第一指令,所述第一指令用于指示所述最短路径集合获取模块12停止根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,且所述至少一条边的实时权值为所述权值;
若满足所述对偶问题约束条件,则向所述最短路径集合获取模块12发送第二指令,所述第二指令用于指示所述最短路径集合获取模块12根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
进一步的,所述最短路径集合获取模块12还用于在所述多轮迭代计算中的每一轮迭代计算都采用迪杰斯特拉算法或贝尔曼-福特算法。
进一步的,所述最优路径集合确定模块13,具体用于:
根据所有所述待分配业务的最短路径集合中的路径和所述初始路径的边的跳数对所述最短路径集合中的路径按照升序进行排序得到第一序列,所述最短路径集合中的路径包括所述多个待分配业务中每个待分配业务的所有最短路径和所述多个待分配业务中每个待分配业务的初始路径;
对所述第一序列中边的数量相同的所述最短路径集合中的路径,根据所述边的数量相同的所述最短路径集合中的路径分别包含的所述边的业务流量之和按升序进行排序得到第二序列;
对所述第二序列中边的业务流量之和相同的所述最短路径集合中的路径,根据所述边的业务流量之和相同的所述最短路径集合中的路径按照所述边的权值之和的大小升序排列得到第三序列;
根据所述每个待分配业务的业务需求以及所述第三序列中所述最短路径集合中的路径的顺序确定所述多个待分配业务的最优路径。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8所示为本发明又一实施例提供的软件定义网络中的路由确定装置的结构示意图,参见图8,该装置包括:
收发器件、软件器件以及硬件器件三部分;
收发器件为用于完成包收发的硬件电路;
硬件器件也可称“硬件处理模块”,或者更简单的,也可简称为“硬件”,硬件器件主要包括基于FPGA、ASIC之类专用硬件电路(也会配合其他配套器件,如存储器)来实现某些特定功能的硬件电路,其处理速度相比通用处理器往往要快很多,但功能一经定制,便很难更改,因此,实现起来并不灵活,通常用来处理一些固定的功能。需要说明的是,硬件器件在实际应用中,也可以包括MCU(微处理器,如单片机)、或者CPU等处理器,但这些处理器的主要功能并不是完成大数据的处理,而主要用于进行一些控制,在这种应用场景下,由这些器件搭配的***为硬件器件。
软件器件(或者也简单“软件”)主要包括通用的处理器(例如CPU)及其一些配套的器件(如内存、硬盘等存储设备),可以通过编程来让处理器具备相应的处理功能,用软件来实现时,可以根据业务灵活配置,但往往速度相比硬件器件来说要慢。软件处理完后,可以通过硬件器件将处理完的数据通过收发器件进行发送,也可以通过一个与收发器件相连的接口向收发器件发送处理完的数据。
其中,处理器具体用于执行以下操作:
根据多个待分配业务中每个待分配业务的初始路径,确定所述软件定义网络中多条边的权值,所述权值表示所述多个待分配业务使用各自的初始路径的情况下一条边的负荷程度;
根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述多个待分配业务的最短路径集合,所述最短路径集合中的每条最短路径表示所述最短路径对应的待分配业务在一轮迭代计算中得到的资源占用量最少且满足业务需求的路径,所述最短路径集合包括所述多个待分配业务中每个待分配业务的所有最短路径,所述最短路径集合还包括所述多个待分配业务中每个待分配业务的初始路径;
从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,所述最优路径集合中的路径与所述多个待分配业务一一对应,所述最优路径集合中的路径满足对应的待分配业务的业务需求,以及所述最优路径集合中所有路径的资源占用总量最小,所述资源占用总量是根据所述最优路径集合中每条路径的资源占用量确定的。
可选的,所述根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述每个待分配业务的最短路径集合包括:
根据所述权值,对所述多个待分配业务中的每个待分配业务进行第一轮迭代计算,以获得所述第一轮迭代计算对应的所述多个待分配业务的第一最短路径集合,其中,所述多个待分配业务的第一最短路径集合包括所述多个待分配业务的初始路径和所述多个待分配业务的至少一条其他路径,每条所述其他路径与对应相同待分配业务的初始路径不同,所述至少一条其他路径是根据所述第一轮迭代计算得到的所述多个待分配业务中至少一个待分配业务的最短路径;
根据所述多个待分配业务的第一最短路径集合,确定第二轮迭代计算的实时权值;
根据所述第二轮迭代计算的实时权值,对所述至少一个待分配业务进行至少一轮迭代计算,以获得所述至少一轮迭代计算中最后一轮迭代计算对应的所述多个待分配业务的最短路径集合,其中,所述最后一轮迭代计算对应的所述多个待分配业务的最短路径集合所包括的路径与所述最后一轮迭代计算的前一轮迭代计算获得的最短路径集合相同。
可选的,所述根据所述第一最短路径集合,确定第二轮迭代计算的实时权值,包括:
根据所述第一最短路径集合构造业务矩阵和业务约束向量;
根据所述第一最短路径集合、所述软件定义网络的拓扑结构以及所述多个待分配业务的需求带宽构造边矩阵;
根据所述至少一条边的带宽信息构造边约束向量;
根据所述业务矩阵和所述边矩阵构造路由矩阵,并根据所述业务约束向量和所述边约束向量构造约束向量;
根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
可选的,所述根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,包括:
获取预设迭代轮数T,并且初始t=0;
重复执行以下步骤:
根据公式yt+1=yt+γ(yt-Yt)和xt+1=xt+γ(xt-Xt)计算获取所述至少一条边的实时权值:
其中,所述所述B=Axt-b;所述表示向量yt中的第i个元素;所述Bi表示向量B中的第i个元素;所述γ表示预设步长整体收缩系数;所述s表示边的权值更新步长;所述A为所述路由矩阵,所述b为所述约束向量;
其中, 表示向量zt中的第i个元素;Wi表示向量W中的第i个元素,表示所有待分配业务的所有最短路径的权重系数组成的路径权重向量,表示最短路径的权重系数,LINK表示边的集合,λ=1/(VmaxR)为权重压缩系数,Vmax=max{Vi|i∈Ω},wk表示边k的初始权值;表示所有边权值总和;r表示候选边的权值更新步长;
直到t=T时,确定所述第二轮迭代计算的实时权值为yT。
可选的,根据公式yA≤W判断所述至少一个待分配业务的最短路径是否满足对偶问题约束条件;
其中,A为所述路由矩阵,W为所述路径权重向量,y为所述权值;
若不满足所述对偶问题约束条件,则停止根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,且所述至少一条边的实时权值为所述权值;
若满足所述对偶问题约束条件,则根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
可选的,在多轮迭代计算中的每一轮迭代计算都采用迪杰斯特拉算法或贝尔曼-福特算法。
可选的,所述从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,包括:
根据所有所述待分配业务的最短路径集合中的路径和所述初始路径的边的跳数对所述最短路径集合中的路径按照升序进行排序得到第一序列,所述最短路径集合中的路径包括所述多个待分配业务中每个待分配业务的所有最短路径和所述多个待分配业务中每个待分配业务的初始路径;
对所述第一序列中边的数量相同的所述最短路径集合中的路径,根据所述边的数量相同的所述最短路径集合中的路径分别包含的所述边的业务流量之和按升序进行排序得到第二序列;
对所述第二序列中边的业务流量之和相同的所述最短路径集合中的路径,根据所述边的业务流量之和相同的所述最短路径集合中的路径按照所述边的权值之和的大小升序排列得到第三序列;
根据所述每个待分配业务的业务需求以及所述第三序列中所述最短路径集合中的路径的顺序确定所述多个待分配业务的最优路径。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
下面结合附图就获取模块可以是由输入/输出I/O设备(比如网卡)来实现,权值确定模块、最短路径集合获取模块、最优路径集合确定模块和判断模块可以是由处理器执行存储器中的程序或指令来实现的技术方案来做详细的介绍:
图9所示为本发明再一实施例提供的软件定义网络中的路由确定装置的结构示意图。软件定义网络中的路由确定装置20应用于软件定义网络SDN,所述软件定义网络中的路由确定装置20包括处理器210、存储器250和输入/输出I/O设备230,存储器250可以包括只读存储器和随机存取存储器,并向处理器210提供操作指令和数据。存储器250的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器250存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,处理器210通过调用存储器250存储的操作指令(该操作指令可存储在操作***中),
处理器210控制软件定义网络中的路由确定装置20的操作,处理器210还可以称为CPU(Central Processing Unit,中央处理单元)。存储器250可以包括只读存储器和随机存取存储器,并向处理器210提供指令和数据。存储器250的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中软件定义网络中的路由确定装置20的各个组件通过总线***220耦合在一起,其中总线***220除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***220。
上述本发明实施例揭示的方法可以应用于处理器210中,或者由处理器210实现。处理器210可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器210中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器210可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器250,处理器210读取存储器250中的指令并执行以下操作:
根据多个待分配业务中每个待分配业务的初始路径,确定所述软件定义网络中多条边的权值,所述权值表示所述多个待分配业务使用各自的初始路径的情况下一条边的负荷程度;
根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述多个待分配业务的最短路径集合,所述最短路径集合中的每条最短路径表示所述最短路径对应的待分配业务在一轮迭代计算中得到的资源占用量最少且满足业务需求的路径,所述最短路径集合包括所述多个待分配业务中每个待分配业务的所有最短路径,所述最短路径集合还包括所述多个待分配业务中每个待分配业务的初始路径;
从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,所述最优路径集合中的路径与所述多个待分配业务一一对应,所述最优路径集合中的路径满足对应的待分配业务的业务需求,以及所述最优路径集合中所有路径的资源占用总量最小,所述资源占用总量是根据所述最优路径集合中每条路径的资源占用量确定的。
可选的,所述根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述每个待分配业务的最短路径集合包括:
根据所述权值,对所述多个待分配业务中的每个待分配业务进行第一轮迭代计算,以获得所述第一轮迭代计算对应的所述多个待分配业务的第一最短路径集合,其中,所述多个待分配业务的第一最短路径集合包括所述多个待分配业务的初始路径和所述多个待分配业务的至少一条其他路径,每条所述其他路径与对应相同待分配业务的初始路径不同,所述至少一条其他路径是根据所述第一轮迭代计算得到的所述多个待分配业务中至少一个待分配业务的最短路径;
根据所述多个待分配业务的第一最短路径集合,确定第二轮迭代计算的实时权值;
根据所述第二轮迭代计算的实时权值,对所述至少一个待分配业务进行至少一轮迭代计算,以获得所述至少一轮迭代计算中最后一轮迭代计算对应的所述多个待分配业务的最短路径集合,其中,所述最后一轮迭代计算对应的所述多个待分配业务的最短路径集合所包括的路径与所述最后一轮迭代计算的前一轮迭代计算获得的最短路径集合相同。
可选的,所述根据所述第一最短路径集合,确定第二轮迭代计算的实时权值,包括:
根据所述第一最短路径集合构造业务矩阵和业务约束向量;
根据所述第一最短路径集合、所述软件定义网络的拓扑结构以及所述多个待分配业务的需求带宽构造边矩阵;
根据所述至少一条边的带宽信息构造边约束向量;
根据所述业务矩阵和所述边矩阵构造路由矩阵,并根据所述业务约束向量和所述边约束向量构造约束向量;
根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
可选的,所述根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,包括:
获取预设迭代轮数T,并且初始t=0;
重复执行以下步骤:
根据公式yt+1=yt+γ(yt-Yt)和xt+1=xt+γ(xt-Xt)计算获取所述至少一条边的实时权值:
其中,所述所述B=Axt-b;所述表示向量yt中的第i个元素;所述Bi表示向量B中的第i个元素;所述γ表示预设步长整体收缩系数;所述s表示边的权值更新步长;所述A为所述路由矩阵,所述b为所述约束向量;
其中, 表示向量zt中的第i个元素;Wi表示向量W中的第i个元素,表示所有待分配业务的所有最短路径的权重系数组成的路径权重向量,表示最短路径的权重系数,LINK表示边的集合,λ=1/(VmaxR)为权重压缩系数,Vmax=max{Vi|i∈Ω},wk表示边k的初始权值;表示所有边权值总和;r表示候选边的权值更新步长;
直到t=T时,确定所述第二轮迭代计算的实时权值为yT。
可选的,根据公式yA≤W判断所述至少一个待分配业务的最短路径是否满足对偶问题约束条件;
其中,A为所述路由矩阵,W为所述路径权重向量,y为所述权值;
若不满足所述对偶问题约束条件,则停止根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,且所述至少一条边的实时权值为所述权值;
若满足所述对偶问题约束条件,则根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
可选的,在多轮迭代计算中的每一轮迭代计算都采用迪杰斯特拉算法或贝尔曼-福特算法。
可选的,所述从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,包括:
根据所有所述待分配业务的最短路径集合中的路径和所述初始路径的边的跳数对所述最短路径集合中的路径按照升序进行排序得到第一序列,所述最短路径集合中的路径包括所述多个待分配业务中每个待分配业务的所有最短路径和所述多个待分配业务中每个待分配业务的初始路径;
对所述第一序列中边的数量相同的所述最短路径集合中的路径,根据所述边的数量相同的所述最短路径集合中的路径分别包含的所述边的业务流量之和按升序进行排序得到第二序列;
对所述第二序列中边的业务流量之和相同的所述最短路径集合中的路径,根据所述边的业务流量之和相同的所述最短路径集合中的路径按照所述边的权值之和的大小升序排列得到第三序列;
根据所述每个待分配业务的业务需求以及所述第三序列中所述最短路径集合中的路径的顺序确定所述多个待分配业务的最优路径。
本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种软件定义网络中的路由确定方法,其特征在于,所述软件定义网络用于承载多个业务,所述软件定义网络包括多条路径,每条所述路径包括至少一条边,所述边表示所述软件定义网络对应的网络拓扑中直接通信的两个路由节点间的连接关系,所述方法包括:
根据多个待分配业务中每个待分配业务的初始路径,确定所述软件定义网络中多条边的权值,所述权值表示所述多个待分配业务使用各自的初始路径的情况下一条边的负荷程度;
根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述多个待分配业务的最短路径集合,所述最短路径集合中的每条最短路径表示所述最短路径对应的待分配业务在一轮迭代计算中得到的资源占用量最少且满足业务需求的路径,所述最短路径集合包括所述多个待分配业务中每个待分配业务的所有最短路径,所述最短路径集合还包括所述多个待分配业务中每个待分配业务的初始路径;
从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,所述最优路径集合中的路径与所述多个待分配业务一一对应,所述最优路径集合中的路径满足对应的待分配业务的业务需求,以及所述最优路径集合中所有路径的资源占用总量最小,所述资源占用总量是根据所述最优路径集合中每条路径的资源占用量确定的。
2.根据权利要求1所述的方法,其特征在于,所述根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述每个待分配业务的最短路径集合包括:
根据所述权值,对所述多个待分配业务中的每个待分配业务进行第一轮迭代计算,以获得所述第一轮迭代计算对应的所述多个待分配业务的第一最短路径集合,其中,所述多个待分配业务的第一最短路径集合包括所述多个待分配业务的初始路径和所述多个待分配业务的至少一条其他路径,每条所述其他路径与对应相同待分配业务的初始路径不同,所述至少一条其他路径是根据所述第一轮迭代计算得到的所述多个待分配业务中至少一个待分配业务的最短路径;
根据所述多个待分配业务的第一最短路径集合,确定第二轮迭代计算的实时权值;
根据所述第二轮迭代计算的实时权值,对所述至少一个待分配业务进行至少一轮迭代计算,以获得所述至少一轮迭代计算中最后一轮迭代计算对应的所述多个待分配业务的最短路径集合,其中,所述最后一轮迭代计算对应的所述多个待分配业务的最短路径集合所包括的路径与所述最后一轮迭代计算的前一轮迭代计算获得的最短路径集合相同。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一最短路径集合,确定第二轮迭代计算的实时权值,包括:
根据所述第一最短路径集合构造业务矩阵和业务约束向量;
根据所述第一最短路径集合、所述软件定义网络的拓扑结构以及所述多个待分配业务的需求带宽构造边矩阵;
根据所述至少一条边的带宽信息构造边约束向量;
根据所述业务矩阵和所述边矩阵构造路由矩阵,并根据所述业务约束向量和所述边约束向量构造约束向量;
根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,包括:
获取预设迭代轮数T,并且初始t=0;
重复执行以下步骤:
根据公式yt+1=yt+γ(yt-Yt)和xt+1=xt+γ(xt-Xt)计算获取所述至少一条边的实时权值:
其中,所述所述B=Axt-b;所述表示向量yt中的第i个元素;所述Bi表示向量B中的第i个元素;所述γ表示预设步长整体收缩系数;所述s表示边的权值更新步长;所述A为所述路由矩阵,所述b为所述约束向量;所述t表示迭代次数,所述xt表示路径权值向量,所述yt表示边的权值向量;
其中, 表示向量zt中的第i个元素;Wi表示向量W中的第i个元素,表示所有待分配业务的所有最短路径的权重系数组成的路径权重向量,表示最短路径的权重系数,LINK表示边的集合,λ=1/(VmaxR)为权重压缩系数,Vmax=max{Vi|i∈Ω},wk表示边k的初始权值;表示所有边权值总和;r表示候选边的权值更新步长;AT表示A的转置;
直到t=T时,确定所述第二轮迭代计算的实时权值为yT。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据公式yA≤W判断所述至少一个待分配业务的最短路径是否满足对偶问题约束条件;
其中,A为所述路由矩阵,W为所述路径权重向量,y为所述权值;
若不满足所述对偶问题约束条件,则停止根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,且所述至少一条边的实时权值为所述权值;
若满足所述对偶问题约束条件,则根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
6.根据权利要求2~5中任一项所述的方法,其特征在于,所述多轮迭代计算中的每一轮迭代计算都采用迪杰斯特拉算法或贝尔曼-福特算法。
7.根据权利要求1~5中任一项所述的方法,其特征在于,所述从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,包括:
根据所有所述待分配业务的最短路径集合中的路径和所述初始路径的边的跳数对所述最短路径集合中的路径按照升序进行排序得到第一序列,所述最短路径集合中的路径包括所述多个待分配业务中每个待分配业务的所有最短路径和所述多个待分配业务中每个待分配业务的初始路径;
对所述第一序列中边的数量相同的所述最短路径集合中的路径,根据所述边的数量相同的所述最短路径集合中的路径分别包含的所述边的业务流量之和按升序进行排序得到第二序列;
对所述第二序列中边的业务流量之和相同的所述最短路径集合中的路径,根据所述边的业务流量之和相同的所述最短路径集合中的路径按照所述边的权值之和的大小升序排列得到第三序列;
根据所述每个待分配业务的业务需求以及所述第三序列中所述最短路径集合中的路径的顺序确定所述多个待分配业务的最优路径。
8.一种软件定义网络中的路由确定装置,其特征在于,所述软件定义网络用于承载多个业务,所述软件定义网络包括多条路径,每条所述路径包括至少一条边,所述边表示所述软件定义网络对应的网络拓扑中直接通信的两个路由节点间的连接关系,所述装置包括:
权值确定模块,用于根据多个待分配业务中每个待分配业务的初始路径,确定所述软件定义网络中多条边的权值,所述权值表示所述多个待分配业务使用各自的初始路径的情况下一条边的负荷程度;
最短路径集合获取模块,用于根据所述权值,对所述多个待分配业务中的每个待分配业务分别进行多轮迭代计算,以获得所述多个待分配业务的最短路径集合,所述最短路径集合中的每条最短路径表示所述最短路径对应的待分配业务在一轮迭代计算中得到的资源占用量最少且满足业务需求的路径,所述最短路径集合包括所述多个待分配业务中每个待分配业务的所有最短路径,所述最短路径集合还包括所述多个待分配业务中每个待分配业务的初始路径;
最优路径集合确定模块,用于从所述多个待分配业务的最短路径集合中确定所述多个待分配业务的最优路径集合,所述最优路径集合中的路径与所述多个待分配业务一一对应,所述最优路径集合中的路径满足对应的待分配业务的业务需求,以及所述最优路径集合中所有路径的资源占用总量最小,所述资源占用总量是根据所述最优路径集合中每条路径的资源占用量确定的。
9.根据权利要求8所述的装置,其特征在于,所述最短路径集合获取模块具体用于:
根据所述权值,对所述多个待分配业务中的每个待分配业务进行第一轮迭代计算,以获得所述第一轮迭代计算对应的所述多个待分配业务的第一最短路径集合,其中,所述多个待分配业务的第一最短路径集合包括所述多个待分配业务的初始路径和所述多个待分配业务的至少一条其他路径,每条所述其他路径与对应相同待分配业务的初始路径不同,所述至少一条其他路径是根据所述第一轮迭代计算得到的所述多个待分配业务中至少一个待分配业务的最短路径;
根据所述多个待分配业务的第一最短路径集合,确定第二轮迭代计算的实时权值;
根据所述第二轮迭代计算的实时权值,对所述至少一个待分配业务进行至少一轮迭代计算,以获得所述至少一轮迭代计算中最后一轮迭代计算对应的所述多个待分配业务的最短路径集合,其中,所述最后一轮迭代计算对应的所述多个待分配业务的最短路径集合所包括的路径与所述最后一轮迭代计算的前一轮迭代计算获得的最短路径集合相同。
10.根据权利要求9所述的装置,其特征在于,在所述根据所述第一最短路径集合,确定第二轮迭代计算的实时权值的方面,所述最短路径集合获取模块具体用于:
根据所述第一最短路径集合构造业务矩阵和业务约束向量;
根据所述第一最短路径集合、所述软件定义网络的拓扑结构以及所述多个待分配业务的需求带宽构造边矩阵;
根据所述至少一条边的带宽信息构造边约束向量;
根据所述业务矩阵和所述边矩阵构造路由矩阵,并根据所述业务约束向量和所述边约束向量构造约束向量;
根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
11.根据权利要求10所述的装置,其特征在于,在所述根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值的方面,所述最短路径集合获取模块具体用于:
获取预设迭代轮数T,并且初始t=0;
重复执行以下步骤:
根据公式yt+1=yt+γ(yt-Yt)和xt+1=xt+γ(xt-Xt)计算获取所述至少一条边的实时权值:
其中,所述所述B=Axt-b;所述表示向量yt中的第i个元素;所述Bi表示向量B中的第i个元素;所述γ表示预设步长整体收缩系数;所述s表示边的权值更新步长;所述A为所述路由矩阵,所述b为所述约束向量;所述t表示迭代次数,所述xt表示路径权值向量,所述yt表示边的权值向量;
其中, 表示向量zt中的第i个元素;Wi表示向量W中的第i个元素,表示所有待分配业务的所有最短路径的权重系数组成的路径权重向量,表示最短路径的权重系数,LINK表示边的集合,λ=1/(VmaxR)为权重压缩系数,Vmax=max{Vi|i∈Ω},wk表示边k的初始权值;表示所有边权值总和;r表示候选边的权值更新步长;AT表示A的转置;
直到t=T时,确定所述第二轮迭代计算的实时权值为yT。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:判断模块,
所述判断模块用于根据公式yA≤W判断所述至少一个待分配业务的最短路径是否满足对偶问题约束条件;
其中,A为所述路由矩阵,W为所述路径权重向量,y为所述权值;
若不满足所述对偶问题约束条件,则向所述最短路径集合获取模块发送第一指令,所述第一指令用于指示所述最短路径集合获取模块停止根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值,且所述至少一条边的实时权值为所述权值;
若满足所述对偶问题约束条件,则向所述最短路径集合获取模块发送第二指令,所述第二指令用于指示所述最短路径集合获取模块根据所述路由矩阵和所述约束向量采用预设权值算法确定所述第二轮迭代计算的实时权值。
13.根据权利要求9~12中任一项所述的装置,其特征在于,所述最短路径集合获取模块还用于在所述多轮迭代计算中的每一轮迭代计算都采用迪杰斯特拉算法或贝尔曼-福特算法。
14.根据权利要求8~12中任一项所述的装置,其特征在于,所述最优路径集合确定模块,具体用于:
根据所有所述待分配业务的最短路径集合中的路径和所述初始路径的边的跳数对所述最短路径集合中的路径按照升序进行排序得到第一序列,所述最短路径集合中的路径包括所述多个待分配业务中每个待分配业务的所有最短路径和所述多个待分配业务中每个待分配业务的初始路径;
对所述第一序列中边的数量相同的所述最短路径集合中的路径,根据所述边的数量相同的所述最短路径集合中的路径分别包含的所述边的业务流量之和按升序进行排序得到第二序列;
对所述第二序列中边的业务流量之和相同的所述最短路径集合中的路径,根据所述边的业务流量之和相同的所述最短路径集合中的路径按照所述边的权值之和的大小升序排列得到第三序列;
根据所述每个待分配业务的业务需求以及所述第三序列中所述最短路径集合中的路径的顺序确定所述多个待分配业务的最优路径。
15.一种软件定义网络中的路由确定装置,其特征在于,包括:处理器、存储器和通信接口;
所述存储器,用于存储程序代码;
所述处理器、所述存储器和所述通信接口通过总线相互通信;
所述处理器,用于读取所述存储器中存储的程序代码,执行如权利要求1~7中任意一项所述的软件定义网络中的路由确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511033267.1A CN105634974B (zh) | 2015-12-31 | 2015-12-31 | 软件定义网络中的路由确定方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511033267.1A CN105634974B (zh) | 2015-12-31 | 2015-12-31 | 软件定义网络中的路由确定方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105634974A CN105634974A (zh) | 2016-06-01 |
CN105634974B true CN105634974B (zh) | 2019-03-01 |
Family
ID=56049491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511033267.1A Active CN105634974B (zh) | 2015-12-31 | 2015-12-31 | 软件定义网络中的路由确定方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105634974B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107872338B (zh) * | 2016-09-26 | 2022-06-07 | 中兴通讯股份有限公司 | 网络管理***,业务配置、业务配置请求方法及装置 |
CN107070792A (zh) * | 2017-04-24 | 2017-08-18 | 东华大学 | 一种基于sdn的路由选择方法 |
CN109086467B (zh) * | 2017-06-14 | 2023-05-02 | 上海复旦微电子集团股份有限公司 | 可编程逻辑器件的i/o单元布局方法及装置、介质及设备 |
CN107508730B (zh) * | 2017-09-29 | 2022-02-18 | 刘昱 | 一种基于sdn网络的数据中心互联方法及装置 |
CN110661715B (zh) * | 2018-06-28 | 2022-04-19 | 中兴通讯股份有限公司 | 一种业务路径优化方法、装置、设备及可读存储介质 |
CN112217727B (zh) * | 2019-07-11 | 2022-07-29 | 奇安信科技集团股份有限公司 | 多度量维度的路由选择方法、装置、计算机设备及存储介质 |
CN117527675A (zh) * | 2022-07-27 | 2024-02-06 | 华为技术有限公司 | 一种路径确定的方法及相关设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731307A (zh) * | 2013-12-30 | 2014-04-16 | 浙江大学 | 一种针对多业务的标准化数据面动态重构方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9680870B2 (en) * | 2012-12-28 | 2017-06-13 | Verizon Patent And Licensing Inc. | Software-defined networking gateway |
KR20140090769A (ko) * | 2013-01-10 | 2014-07-18 | 한국전자통신연구원 | 연속질의 언어 기반의 네트워크 제어 시스템 |
-
2015
- 2015-12-31 CN CN201511033267.1A patent/CN105634974B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103731307A (zh) * | 2013-12-30 | 2014-04-16 | 浙江大学 | 一种针对多业务的标准化数据面动态重构方法 |
Non-Patent Citations (1)
Title |
---|
Load Balancing for Multicast Traffic in SDN using;Alexander Craig;《Communications(ICC),2015 IEEE International Conference on》;20150612;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105634974A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105634974B (zh) | 软件定义网络中的路由确定方法和装置 | |
CN105049353B (zh) | 一种为业务配置路由路径的方法及控制器 | |
US8819611B2 (en) | Asymmetric mesh NoC topologies | |
CN103036792B (zh) | 一种最大化最小公平多数据流传输调度方法 | |
CN103348638B (zh) | 通信***、控制装置、通信节点以及通信方法 | |
CN104683488B (zh) | 流式计算***及其调度方法和装置 | |
CN107710237A (zh) | 服务器上深度神经网络划分 | |
CN108989122B (zh) | 虚拟网络请求映射方法、装置及实现装置 | |
CN106649391A (zh) | 处理图数据的方法和装置 | |
CN108027789A (zh) | 具有多级仲裁的互连件的服务质量 | |
CN103560967A (zh) | 一种业务需求感知的虚拟数据中心映射方法 | |
CN109587072A (zh) | 分布式***全局限速***及方法 | |
CN113992259B (zh) | 一种时隙资源拓展图的构建方法 | |
WO2022012576A1 (zh) | 路径规划方法、装置、路径规划设备及存储介质 | |
CN105515987A (zh) | 一种基于sdn架构面向虚拟光网络的映射方法 | |
Tang et al. | The repetitive turn model for adaptive routing | |
CN105591895A (zh) | 管理网络流量的网络装置及其方法 | |
Glantz et al. | Algorithms for mapping parallel processes onto grid and torus architectures | |
CN104104621A (zh) | 一种基于非线性降维的虚拟网络资源动态自适应调节方法 | |
Smith et al. | Target assignment for robotic networks: Asymptotic performance under limited communication | |
CN105610707A (zh) | AntNet路由算法在二维网格拓扑片上网络中的实现方法 | |
WO2018166249A1 (zh) | 一种网络业务传输的方法及*** | |
CN103761212A (zh) | 片上网络中任务与节点间映射方案与拓扑结构的设计方法 | |
Farahnakian et al. | Bi-LCQ: A low-weight clustering-based Q-learning approach for NoCs | |
CN104869044B (zh) | 一种虚拟网映射方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200417 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |