CN108449266A - 一种基于sdn网络的链路负载均衡多路径计算方法 - Google Patents
一种基于sdn网络的链路负载均衡多路径计算方法 Download PDFInfo
- Publication number
- CN108449266A CN108449266A CN201810184260.7A CN201810184260A CN108449266A CN 108449266 A CN108449266 A CN 108449266A CN 201810184260 A CN201810184260 A CN 201810184260A CN 108449266 A CN108449266 A CN 108449266A
- Authority
- CN
- China
- Prior art keywords
- node
- path
- shortest path
- weights
- added
- 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.)
- Withdrawn
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/12—Shortest path evaluation
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于SDN网络的链路负载均衡多路径计算方法,先计算目的节点到各节点的最短路径以及各最短路径的权值,再构建广度优先搜索模型来计算各路径的综合移动代价和最短路径,最后判断得出的最短路径是否存在边重叠和环路,如果是,则返回继续计算,否则,将其添加到第一记录表。第一记录表记录了源节点到目的节点的若干条路径,且各路径间不存在边重叠和环路,适用于任意网络拓扑的链路负载均衡,从而提高链路负载均衡的通用性和适用性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于SDN网络的链路负载均衡多路径计算方法。
背景技术
传统的分布式网络,由于路由的计算分别在不同的路由器或交换机上各自以自己为根节点进行最短路径的计算,很难做到网络多链路的负载均衡,通常都是只做到等价路由(ECMP)的负载分担。而SDN网络的出现,使得控制面和转发面相分离,全网的控制集中在控制器里,在控制器里可以拿到全网的拓扑和链路信息,能够轻易的计算出多条路由的链路路径,并以此进行负载均衡。
但是,现有基于SDN网络的链路负载均衡多路径计算都是只适用于特定的网络拓扑结构,譬如数据中心的Leaf-Spine/Fat Tree拓扑结构,缺乏通用性和适应性。而针对其他的网络拓扑,多路径计算可以得出前K条到达目的节点的最短路径,这些路径有可能会出现重叠或有环路径,如果将该路径用作负载均衡的链路,重叠链路的存在会导致链路的拥塞,效果适得其反。
发明内容
本发明实施例提出一种基于SDN网络的链路负载均衡多路径计算方法,实现任意拓扑网络的多条非重叠无环最短路径的计算,提高链路负载均衡的通用性和适用性。
本发明实施例提供一种基于SDN网络的链路负载均衡多路径计算方法,包括:
一种基于SDN网络的链路负载均衡多路径计算方法,其特征在于,包括:
步骤1:获取网络拓扑结构,并根据所述网络拓扑结构,计算目的节点到各节点的最短路径以及所述最短路径的权值;其中,所述网络拓扑结构包含各节点之间的连接路径以及各所述连接路径的权值;
步骤2:将所述目的节点到源节点的最短路径添加到第一记录表中;
步骤3:将所述源节点添加到队列中,并计算所述源节点的综合移动代价;其中,所述队列用于记录若干个节点和所述若干个节点所对应的移动路径;第i个节点的综合移动代价由所述源节点根据第i个节点对应的移动路径移动到所述第i个节点的权值和,加上所述目的节点到所述第i个节点的最短路径的权值而得出;所述队列中的各节点按照所述综合移动代价从小到大排序;i为整数;
步骤4:从所述队列中取出并删除排序最前的节点作为第一节点,并判断所述第一节点是否为目的节点,如果是,则执行步骤5;如果不是,则计算与所述第一节点直接相连的各第二节点的综合移动代价和相应的第二移动路径,再执行步骤6;其中,所述第二移动路径由所述第一节点的第一移动路径添加所述第二节点而获得;
步骤5:判断所述第一移动路径与所述第一记录表中的路径是否存在边重叠以及判断所述第一移动路径存在环路,如果均不是,则将所述第一移动路径添加到所述第一记录表中,返回步骤4直到所述第一记录表中记录的路径数量达到K;否则,返回步骤4;所述K的值由用户预先设置;
步骤6:分别判断各第二节点的第二移动路径与所述第一记录表中的路径是否存在边重叠以及判断所述第二移动路径存在环路,如果均不是,则将所述第二节点和所述第二移动路径添加到所述队列中,再返回步骤4,否则,不将所述第二节点添加到所述队列中,再返回步骤4。
进一步的,所述根据所述网络拓扑结构,计算目的节点到各节点的最短路径以及所述最短路径的权值,具体为:
根据所述网络拓扑结构,采用迪杰斯特拉算法,计算目的节点到各节点的最短路径以及所述最短路径的权值。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的基于SDN网络的链路负载均衡多路径计算方法,先计算目的节点到各节点的最短路径以及各最短路径的权值,再构建广度优先搜索模型来计算各路径的综合移动代价和最短路径,最后判断得出的最短路径是否存在边重叠和环路,如果是,则返回继续计算,否则,将其添加到第一记录表。第一记录表记录了源节点到目的节点的若干条路径,且各路径间不存在边重叠和环路,适用于任意网络拓扑的链路负载均衡,从而提高链路负载均衡的通用性和适用性。
附图说明
图1是本发明提供的是基于SDN网络的链路负载均衡多路径计算方法的一种实施例的流程示意图;
图2是本发明提供的一种实施例的网络拓扑图;
图3是本发明提供的最短路径及权值的一种实施例的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是基于SDN网络的链路负载均衡多路径计算方法的一种实施例的流程示意图,该方法包括以下步骤:
步骤1:获取网络拓扑结构,并根据网络拓扑结构,计算目的节点到各节点的最短路径以及最短路径的权值;其中,网络拓扑结构包含各节点之间的连接路径以及各连接路径的权值。
在本实施例中,步骤1具体为:根据网络拓扑结构,采用迪杰斯特拉(Dijkstra)算法,计算目的节点到各节点的最短路径以及最短路径的权值。其算法思想为:设G=(V,E)是一个带权无向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合,用S表示,初始时S中只有一个源点,以后每求得一条最短路径,就将其顶点加入到集合S中,直到全部顶点都加入到S中,算法就结束了;第二组为其余未确定最短路径的顶点集合,用U表示,按最短路径长度的递增次序依次把第二组的顶点加入S中。在加入的过程中,总保持从源点v到S中各顶点的最短路径长度不大于从源点v到U中任何顶点的最短路径长度。此外,每个顶点对应一个距离,S中的顶点的距离就是从v到此顶点的最短路径长度,U中的顶点的距离,是从v到此顶点只包括S中的顶点为中间顶点的当前最短路径长度。
该算法的具体步骤为:
a、初始时,S只包含源点,即S={v},v的距离为0。U包含除v外的其他顶点,即U={其余顶点},若v与U中顶点u有边,则<u,v>正常有权值,若u不是v的出边邻接点,则<u,v>权值为∞。
b、从U中选取一个距离v最小的顶点k,把k,加入S中(该选定的距离就是v到k的最短路径长度)。
c、以k为新考虑的中间点,修改各顶点的距离;若从源点v到顶点u的距离(经过顶点k)比原来距离(不经过顶点k)短,则修改顶点u的距离值,修改后的距离值的顶点k的距离加上边上的权。
d、重复步骤b和c直到所有顶点都包含在S中。
步骤2:将目的节点到源节点的最短路径添加到第一记录表中。
在本实施例中,第一记录表记录了源节点到目的节点的若干条路径,而且各路径间没有重叠边和环路,可用于负载均衡。第一记录表记录的路径数量K由用户预先设置,系统或用户可根据实际需要修改K的值,K为整数。本发明将步骤1计算得出的结果直接添加到第一记录表中,能提高运算速度。
步骤3:将源节点添加到队列中,并计算源节点的综合移动代价;其中,队列用于记录若干个节点和若干个节点所对应的移动路径;第i个节点的综合移动代价由源节点根据第i个节点对应的移动路径移动到第i个节点的权值和,加上目的节点到第i个节点的最短路径的权值而得出;队列中的各节点按照综合移动代价从小到大排序;i为整数。
在本实施例中,第i个节点的综合移动代价F=G+H,其中,G表示从源节点根据第i个节点的移动路径移动到第i个节点的移动代价,即源节点移动到第i个节点的权值和。H表示从第i个节移动到目的节点的估算成本,即目的节点到第i个节点的最短路径的权值,也就是步骤1计算的最短路径的权值。
在本实施例中,队列中的各节点按照其综合移动代价从小到大排序,以便于最短路径的提取。
步骤4:从队列中取出并删除排序最前的节点作为第一节点,并判断第一节点是否为目的节点,如果是,则执行步骤5;如果不是,则计算与第一节点直接相连的各第二节点的综合移动代价和相应的第二移动路径,再执行步骤6;其中,第二移动路径由第一节点的第一移动路径添加第二节点而获得。
步骤5:判断第一移动路径与第一记录表中的路径是否存在边重叠以及判断第一移动路径存在环路,如果均不是,则将第一移动路径添加到第一记录表中,返回步骤4直到第一记录表中记录的路径数量达到K;否则,返回步骤4;K的值由用户预先设置。
在本实施例中,在判断边重叠时,采用Hash算法来高效率求解边重叠问题。如第一记录表中的路径会记录在Hash表中,如果检测到第一移动路径中的边已经在Hash表里,则说明存在边重叠。否则,说明不存在边重叠。
在本实施例中,如果第一记录表中的路径数量仍没达到K,且队列中没有节点时,结束计算。
在本实施例中,在判断是否存在环路时,主要判断第一移动路径中是否存在相同的节点,如果有相同的节点,则存在环路,否则没有环路。
步骤6:分别判断各第二节点的第二移动路径与第一记录表中的路径是否存在边重叠以及判断第二移动路径存在环路,如果均不是,则将第二节点和第二移动路径添加到队列中,再返回步骤4,否则,不将第二节点添加到队列中,再返回步骤4。
在本实施例中,在将节点添加到队列前,先进行边重叠与环路的判定,能减少添加到队列的节点数量,提高计算速度。
为了更好地说明本发明技术方案,下面举例说明本发明的技术方案。参见图2,图2是本发明提供的一种实施例的网络拓扑图。如图2所示,V0~V5为各个交换机的标识节点,节点间的连线代表交换机之间的链路,连线边上的数字为链路权值,权值是综合了链路的剩余带宽大小以及剩余带宽占总带宽的比重的数字化表述,权值越小代表链路通信代价越小。本例子需要求图中从交换机V0到V5的前3条最短路径,所谓的最短路径就是指求出的路径权值之和最小。如果使用现有技术来计算,则可以得出最短的3条路径:权值和为70的{V0,V2,V5}、权值和为75的{V0,V2,V4,V5}、权值和为90的{V0,V1,V5},其中权值和为70的最短路径{V0,V2,V5}和权值和为75的次短路径{V0,V2,V4,V5}存在边V0V2重叠,并不适合作为负载均衡链路。
而采用本发明技术方案,先采用迪杰斯特拉(Dijkstra)算法,计算目的节点到各节点的最短路径以及最短路径的权值,即V5到各点的最短路径以及最短路径的权值。具体计算过程如下:
初始情况时:S集合只有V5;U集合包含除了V5之外的所有的节点,即{V0,V1,V2,V3,V4}。同时根据U中各节点是否与V5直连求出V5到个节点的最短路径和权值和,即有直连的就把直连边作为V5到直连节点的最短路径,权值和为直连边的权值;对于没有跟V5直连的节点,把V5到这些节点的最短路径设置为无穷大。
第1轮计算:从U中选取一个距离V5最小的节点V4加入到S中,并把V4从U中删除,然后以V4为中间点,修改各个节点到V5的最短距离,如果从V5经过V4再到各个节点的距离比原来的距离(不经过V4)短,则修改此节点到V5的最短路径以及权值和。此次需要修改的是V5到V3的最短路径以及权值和,原来V5到V3是距离无穷大的,现最短路径修改为{V5->V4->V3},权值和为80。
第2轮计算:此时U中只剩下{V0,V1,V2,V3},从U中选取一个距离V5最小的节点V1加入到S中,并把V1从U中删除,然后以V1为中间点,修改各个节点到V5的最短距离,如果从V5经过V1再到各个节点的距离比原来的距离(不经过V1)短,则修改此节点到V5的最短路径以及权值和。此次需要修改的是V5到V0的最短路径以及权值和,原来V5到V0是距离无穷大的,现最短路径修改为{V5->V1->V0},权值和为90。
第3轮计算:此时U中只剩下{V0,V2,V3},从U中选取一个距离V5最小的节点V2加入到S中,并把V2从U中删除,然后以V2为中间点,修改各个节点到V5的最短距离,如果从V5经过V2再到各个节点的距离比原来的距离(不经过V2)短,则修改此节点到V5的最短路径以及权值和。此次需要修改的是V5到V0的最短路径以及权值和,原来V5到V0最短路径为{V5->V1->V0},权值和为90,现最短路径修改为{V5->V2->V0},权值和为70;还要修改的是V5到V3的最短路径以及权值和,原来V5到V3最短路径为{V5->V4->V3},权值和为80,现最短路径修改为{V5->V2->V3},权值和为60。
第4轮计算:此时U中只剩下{V0,V3},从U中选取一个距离V5最小的节点V3加入到S中,并把V3从U中删除,然后以V3为中间点,修改各个节点到V5的最短距离,如果从V5经过V3再到各个节点的距离比原来的距离(不经过V3)短,则修改此节点到V5的最短路径以及权值和。此次没有需要修改的。
第5轮计算:此时U中只剩下{V0},从U中选取一个距离V5最小的节点V0加入到S中,并把V0从U中删除,然后以V0为中间点,修改各个节点到V5的最短距离,如果从V5经过V0再到各个节点的距离比原来的距离(不经过V0)短,则修改此节点到V5的最短路径以及权值和。此次没有需要修改的。
至此,U中没有节点了,结束计算。得到V5到各个节点的最短路径,如图3所示。
在计算完成后,由于已获得最短路径{V0,V2,V5},将其添加到第一记录表中,并将源节点V0添加到队列中,计算V0的F值并将其加入到path中。V0的F=70,G=0,H=70,path:{V0}。
由于队列只有V0,则从队列中取出并删除V0,判断其不是目的节点V5,则计算与V0直接相连的V2、V1和V3三个节点的综合移动代价和对应的移动路径,根据结果可以得出将节点V2的移动路径{V0,V2}与第一记录表的路径存在边重叠,则把V2丢弃,将V1和V3添加到队列中。
这时重复上述步骤,将V1从队列中取出并删除,V1不是目的节点V5,则计算与V1直接相连的V5、V3和V0三个节点的综合移动代价和移动路径,按照由小到大排序,根据结果可以得出将节点V0加入到第二路径后得到的{V0,V2,V2}存在环路,则把V0丢弃,将V5和V3添加到队列中。
再重复上述步骤可以得出最短路径{V0,V1,V5},该路径的F值为90。由于本例子的K为3,则继续求得第三条路径{V0,V3,V2,V4,V5},其F值为125。可见,采用本发明技术方案得出的最短路径与现有技术得出的路径并不相同,可适用于任意网络拓扑的负载均衡。
综上所述,本发明实施例提供的基于SDN网络的链路负载均衡多路径计算方法,先计算目的节点到各节点的最短路径以及各最短路径的权值,再构建广度优先搜索模型来计算各路径的综合移动代价和最短路径,最后判断得出的最短路径是否存在边重叠和环路,如果是,则返回继续计算,否则,将其添加到第一记录表。第一记录表记录了源节点到目的节点的若干条路径,且各路径间不存在边重叠和环路,适用于任意网络拓扑的链路负载均衡,从而提高链路负载均衡的通用性和适用性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (2)
1.一种基于SDN网络的链路负载均衡多路径计算方法,其特征在于,包括:
步骤1:获取网络拓扑结构,并根据所述网络拓扑结构,计算目的节点到各节点的最短路径以及所述最短路径的权值;其中,所述网络拓扑结构包含各节点之间的连接路径以及各所述连接路径的权值;
步骤2:将所述目的节点到源节点的最短路径添加到第一记录表中;
步骤3:将所述源节点添加到队列中,并计算所述源节点的综合移动代价;其中,所述队列用于记录若干个节点和所述若干个节点所对应的移动路径;第i个节点的综合移动代价由所述源节点根据第i个节点对应的移动路径移动到所述第i个节点的权值和,加上所述目的节点到所述第i个节点的最短路径的权值而得出;所述队列中的各节点按照所述综合移动代价从小到大排序;i为整数;
步骤4:从所述队列中取出并删除排序最前的节点作为第一节点,并判断所述第一节点是否为目的节点,如果是,则执行步骤5;如果不是,则计算与所述第一节点直接相连的各第二节点的综合移动代价和相应的第二移动路径,再执行步骤6;其中,所述第二移动路径由所述第一节点的第一移动路径添加所述第二节点而获得;
步骤5:判断所述第一移动路径与所述第一记录表中的路径是否存在边重叠以及判断所述第一移动路径存在环路,如果均不是,则将所述第一移动路径添加到所述第一记录表中,返回步骤4直到所述第一记录表中记录的路径数量达到K;否则,返回步骤4;所述K的值由用户预先设置;
步骤6:分别判断各第二节点的第二移动路径与所述第一记录表中的路径是否存在边重叠以及判断所述第二移动路径存在环路,如果均不是,则将所述第二节点和所述第二移动路径添加到所述队列中,再返回步骤4,否则,不将所述第二节点添加到所述队列中,再返回步骤4。
2.根据权利要求1所述的基于SDN网络的链路负载均衡多路径计算方法,其特征在于,所述根据所述网络拓扑结构,计算目的节点到各节点的最短路径以及所述最短路径的权值,具体为:
根据所述网络拓扑结构,采用迪杰斯特拉算法,计算目的节点到各节点的最短路径以及所述最短路径的权值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810184260.7A CN108449266A (zh) | 2018-03-06 | 2018-03-06 | 一种基于sdn网络的链路负载均衡多路径计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810184260.7A CN108449266A (zh) | 2018-03-06 | 2018-03-06 | 一种基于sdn网络的链路负载均衡多路径计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108449266A true CN108449266A (zh) | 2018-08-24 |
Family
ID=63193321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810184260.7A Withdrawn CN108449266A (zh) | 2018-03-06 | 2018-03-06 | 一种基于sdn网络的链路负载均衡多路径计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108449266A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511445A (zh) * | 2020-09-28 | 2021-03-16 | 复旦大学 | 一种基于负载加权的最短路径路由生成方法 |
CN113630792A (zh) * | 2021-07-19 | 2021-11-09 | 西安电子科技大学 | 一种流量负载均衡广度优先搜索优化方法、系统、设备 |
-
2018
- 2018-03-06 CN CN201810184260.7A patent/CN108449266A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511445A (zh) * | 2020-09-28 | 2021-03-16 | 复旦大学 | 一种基于负载加权的最短路径路由生成方法 |
CN113630792A (zh) * | 2021-07-19 | 2021-11-09 | 西安电子科技大学 | 一种流量负载均衡广度优先搜索优化方法、系统、设备 |
CN113630792B (zh) * | 2021-07-19 | 2023-09-19 | 西安电子科技大学 | 一种流量负载均衡广度优先搜索优化方法、系统、设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101777990B (zh) | 多目标免疫优化组播路由路径选择方法 | |
Hsiao et al. | Ant colony optimization for best path planning | |
CN103281245B (zh) | 确定业务路由路径的方法及装置 | |
WO1990000842A1 (en) | Adaptive routing system | |
CN102158417A (zh) | 实现多约束QoS路由选择的优化方法及装置 | |
CN104378229B (zh) | 一种机会网络的链路预测方法 | |
CN108040008B (zh) | 在线服务功能链的跨域部署方法 | |
CN108965141A (zh) | 一种多路径路由树的计算方法及装置 | |
CN102506886B (zh) | 导航设备中实现路径规划的方法 | |
CN108449266A (zh) | 一种基于sdn网络的链路负载均衡多路径计算方法 | |
CN106506188B (zh) | 一种确定关键节点的方法和设备 | |
CN106685745B (zh) | 一种网络拓扑构建方法及装置 | |
CN109962774A (zh) | 量子密码网络密钥中继动态路由方法 | |
CN103532861B (zh) | 基于生成树的域内动态多路径生成方法 | |
CN110661704B (zh) | 转发路径的计算方法及sdn控制器 | |
CN106651034A (zh) | 一种公交线网规划方法 | |
CN108173764A (zh) | 一种基于sdn网络的链路负载均衡多路径计算方法 | |
CN104093182B (zh) | 一种多层无线网络中基于场强获得多条可靠通信路径的方法 | |
CN108462640A (zh) | 一种基于sdn网络的链路负载均衡多路径计算方法 | |
CN100428743C (zh) | 一种根据在覆盖路由网络中的路由表转发数据的方法 | |
CN111800339B (zh) | 混合sdn场景下带有路径数目约束的路由优化方法 | |
CN107404437B (zh) | 一种报文的路径确定方法及装置 | |
CN106656806A (zh) | 一种电力广域通信网多业务QoS路由选择方法 | |
CN109492677A (zh) | 基于贝叶斯理论的时变网络链路预测方法 | |
CN107330205A (zh) | 复杂推移式活动隔断系统轨道布局优化设备 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180824 |