CN106713136B - 一种基于堆结构扩张软件定义网络的方法 - Google Patents
一种基于堆结构扩张软件定义网络的方法 Download PDFInfo
- Publication number
- CN106713136B CN106713136B CN201611056675.3A CN201611056675A CN106713136B CN 106713136 B CN106713136 B CN 106713136B CN 201611056675 A CN201611056675 A CN 201611056675A CN 106713136 B CN106713136 B CN 106713136B
- Authority
- CN
- China
- Prior art keywords
- node
- coeff
- dependency
- link
- weight
- 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
Images
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
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- 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/04—Interdomain routing, e.g. hierarchical routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于堆结构扩张软件定义网络的方法,所述方法包括:步骤1,将网络系统中的数据层抽象为多层次的斐波那契堆结构;步骤2,在所述得到的多层次斐波那契堆中依照自上而下顺序,利用双权重扩展Dijkstra路由算法解析得到最短路由路径。本申请有效的化简了软件定义网络的扩展过程,并结合堆结构改良了网络中的最短路由算法,同时有效的降低了各节点运算设备的负担。
Description
技术领域
本发明涉及软件定义网络技术领域,更具体地,涉及一种基于堆结构来扩张软件定义网络的方法。
背景技术
目前,软件定义网络(Software Defined Network,SDN),将控制层和数据层分离,给传统的网络结构带来了革命性的改变。通过打破传统的网络设计模式,软件定义网络简化了网络的管理并且能够根据特定的需求来定义和构建具体的网络。一方面,控制层完全的从数据层中剥离出来,将整个网络的智能和计算能力集中到了控制器当中,另一方面,软件定义网络提供开放的可编程接口,提升了网络的灵活性和可管理性。与此同时,OpenFlow作为网络协议,提供了软件定义网络的接口,并定义了网络的架构和两个层之间的通信机制。数据层不再负责繁重的路由计算工作,而只需要负责由控制器指派的数据包转发。
虽然数控分离给软件定义网络带来了很多优势和好处,但是同时由于仅有一个庞大的控制点来管理整个网络产生了很多问题,其中最显著的莫过于其给软件定义网络扩展时带来的诸多问题。一个高度中心化的控制器总会或多或少的受到其自身物理资源的约束,只能与有限个数据层中的交换机或路由器直接相连,因此,从控制层的角度来看,软件定义网络很难扩展。扩展软件定义网络不仅需要考虑形成该分层网络时控制层和数据层之间的逻辑连接,还需要考虑扩展网络所带来的额外开销。因此,控制层的可扩展性成为了阻碍软件定义技术发展的主要挑战之一。
发明内容
本发明为克服上述问题或者至少部分地解决上述问题,提供一种基于堆结构扩张软件定义网络的方法。
根据本发明的一个方面,提供一种基于堆结构扩张软件定义网络的方法,其特征在于,包括:
步骤1,将网络系统中的数据层抽象为多层次的斐波那契堆结构;
步骤2,在所述得到的多层次斐波那契堆中依照自上而下顺序,利用双权重扩展Dijkstra路由算法解析得到最短路由路径。
本申请提出一种基于堆结构扩张软件定义网络的方法,有效的化简了软件定义网络的扩展过程,并结合堆结构改良了网络中的最短路由算法,同时有效的降低了各节点运算设备的负担。
附图说明
图1为根据本发明实施例一种基于堆结构扩张软件定义网络的方法的整体流程示意图;
图2为根据本发明实施例一种基于堆结构扩张软件定义网络步骤1中的流程示意图;
图3为根据本发明实施例一种基于堆结构扩张软件定义网络步骤1中经典Dijkstra算法、堆优化后Dijkstra算法和双权重扩展Dijkstra路由算法的收敛时间对比示意图;
图4为根据本发明实施例一种基于堆结构扩张软件定义网络步骤1中经典Dijkstra算法、堆优化后Dijkstra算法和双权重扩展Dijkstra路由算法的收敛时间对比示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1,本发明一个具体实施例中,示出一种基于堆结构扩张软件定义网络的方法总体流程示意图。整体来说,包括:步骤1,将网络系统中的数据层抽象为多层次的斐波那契堆结构;步骤2,在所述得到的多层次斐波那契堆中依照自上而下顺序,利用双权重扩展Dijkstra路由算法解析得到最短路由路径。
如图1,本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述步骤1还包括:步骤101,基于邻近原则将网络系统中的数据层抽象为若干个集合,即:将与源节点直接相连的节点划分为一个集合S,与目的节点直接相连的节点划分为另一个集合D;步骤102,基于所述集合S、集合D,以递归方式进行继续划分,完成网络系统中其余数据层的抽象。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述步骤2中解析得到的路由路径由物理交换机和路由器组成。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述步骤2中利用双权重扩展Dijkstra路由算法解析得到一条路由路径还包括:赋予各节点权重值,当每次计算下一跳时将各待加入节点权重值与链路权重值一并纳入考量,并且在完成一次计算后被加入路径的该节点的权重值。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述步骤2中在所述得到的多层次斐波那契堆中依照自上而下顺序,利用双权重扩展Dijkstra路由算法解析得到一条路由路径还包括:步骤201,从所述得到的多层次斐波那契堆中得到一个无向连通图G=(V,E),其中V为各个节点集合,E为节点间链路集合;步骤202,以G=(V,E)形式表示的数据层结构、各链路权重值、数据层各节点权重值和目的节点作为Dijkstra算法输入数据计算得到所述最短路由路径。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述以计算从v0到其他各节点的最短路径为例。
首先,令S=(V0),T=V-S={其余顶点}。T中顶点之间若存在<vi,vj>即vi到vj的链路,则d(vi,vj)为<vi,vj>间链路的权值,若不存在<vi,vj>,d(vi,vj)为∞。
然后,从T中选取一个其自身节点权值与S中顶点有关联边且两权值之和为最小的顶点W,加入到S中。此步骤中提取与前向节点有关联且链路权重值为最小的操作采用的是斐波那契堆操作中的提取(EXTRACT)操作。
最后,对其余T中顶点的距离值进行修改:若加进W作中间顶点,从v0到vi的距离值缩短,则修改此距离值。若将vi加入到路径中,则更新vi节点的权值nw(vi)为nw(vi)'。更新的方法是:
nw(vi)'=nw(vi)+const,
其中,const为一个固定的值,用于权衡网络各节点的负载情况。
重复上述步骤,直到S中包含所有顶点,即W=V为止。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述所述步骤202中各节点权重值还包括:
其中v为集合V中的节点,Flow(v)为所有经过节点v的数据流集合,Capacity(v)为节点v的资源容量,Bits(f)为流f由节点v处理的字节数,nw_penalty_coeff为基于贝叶斯平均风险最小理论的惩罚因子。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述所述步骤202中边权重值还包括:
其中e为几何E中的链路,Flow(e)为所有经过链路e的数据流集合,定义Bandwidth(e)为链路e的带宽,Bits(f)表示流f由节点v处理的字节数,nw_penalty_coeff为基于贝叶斯平均风险最小理论的惩罚因子。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述nw_penalty_coeff和ew_penalty_coeff为和为1的正常数,在每次计算路由路径时设定。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述nw_penalty_coeff和ew_penalty_coeff设定规则为:当网络中的某个节点处于繁忙状态而各条链路相对空闲时,应当设定nw_penalty_coeff大于ew_penalty_coeff,反之,则应当设定nw_penalty_coeff小于ew_penalty_coeff。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,所述双权重扩展Dijkstra路由算法以伪代码最终表示为:
其中INSERT和EXTRACT均为斐波那契堆中表中的插入和提取操作。
本发明另一个具体实施例中,一种基于堆结构扩张软件定义网络的方法,为了对本发明效果进行说明,下面采用计算机仿真的方式对发明的基于LEO卫星网络的低复杂度负载均衡路由算法进行建模,并通过赋值实现了对真实场景的模拟。具体过程分以下四个步骤进行:
(1)仿真场景模拟
仿真场景首先生成随机图来模拟一个软件定义网络的数据层拓扑。网络中各节点和边的权值为服从区间[0,100]均匀分布产生的随机数。在产生随机拓扑时,输入整数n位整个拓扑的节点数,输入d为0到1间的正小数,作为拓扑的密度。
(2)生成一个n×n的矩阵M。
M的主对角线元素设为0,其余各元素的值为从服从区间[0,100]均匀分布中生成的随机数。
(3)接着,生成一个n×n的连通矩阵C,其各元素值为0或者1。
在生成连通矩阵C时,为给其元素Ci,j赋值,首先从服从区间[0,1]的均匀分布中生成一个随机数t,若t<d,则有Ci,j=0,否则Ci,j=1。
(4)获得链路权值矩阵W。
将最后得到的矩阵M与连通矩阵C做点乘运算,得到链路权值矩阵W。即:wi,j=mi,j×ci,j,其中wi,j为矩阵W第i行第j列的元素,mi,j为矩阵M第i行第j列的元素,ci,j为矩阵C第i行第j列的元素。若有ci,j=0,则将wi,j的值设为无穷大inf。链路权值矩阵W中各元素wi,j即表示链路<vi,vj>的权值。
(5)生成各节点的权值向量N。
生成一个1×n的向量N,其中第i个元素的值为从服从区间[20,50]的均匀分布生成的随机数,作为节点i的权值。
(6)若生成的随机拓扑不是一个连通图,重复上述步骤,直到生成的是一个连通图。
图3为当d设为0.03,n分别设为100,200,300,400,500,600,700,800,1000个节点时,经典Dijkstra算法(Classical Dij algorithm)、堆优化后Dijkstra算法(FibonacciHeap optimized Dij algorithm)和双权重扩展Dijkstra路由算法(The propsedalgorithm)收敛时间对比示意图。
图4位当d设为0.09,n分别设为100,200,300,400,500,600,700,800,1000个节点时,经典Dijkstra算法(Classical Dij algorithm)、堆优化后Dijkstra算法(FibonacciHeap optimized Dij algorithm)和双权重扩展Dijkstra路由算法(The propsedalgorithm)收敛时间对比示意图。
(7)时间复杂度比较
与时间复杂度为O(n2)的经典Dijkstra算法对比,本发明中提出动态双权值扩展Dijkstra路由算法能够以时间复杂度为O(nlg(n))更高效地计算出两点间的最佳路径,减小计算复杂度,减轻各节点运算设备的负担。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于堆结构扩张软件定义网络的方法,其特征在于,包括:
步骤1,将网络系统中的数据层抽象为多层次的斐波那契堆结构;
进一步地,所述步骤1还包括:
步骤101,基于邻近原则将网络系统中的数据层抽象为若干个集合,其中,将与源节点直接相连的节点划分为一个集合S,与目的节点直接相连的节点划分为另一个集合D;
步骤102,基于所述集合S、集合D,以递归方式进行继续划分,完成网络系统中其余数据层的抽象;
步骤2,在得到的所述多层次斐波那契堆中,依照自上而下顺序,利用双权重扩展Dijkstra路由算法解析得到最短路由路径;
进一步地,所述步骤2还包括:
步骤201,从所述得到的多层次斐波那契堆中得到一个无向连通图G=(V,E),其中V为各个节点集合,E为节点间链路集合;
步骤202,以G=(V,E)形式表示的数据层结构、各链路权重值、数据层各节点权重值和目的节点作为Dijkstra算法输入数据,计算得到所述最短路由路径。
2.如权利要求1所述的方法,其特征在于,所述步骤2中解析得到的路由路径由物理交换机和路由器组成。
3.如权利要求1所述的方法,其特征在于,所述步骤2中利用双权重扩展Dijkstra路由算法解析得到最短路由路径还包括:
赋予各节点权重值,当每次计算下一跳时,将各待加入节点权重值与链路权重值一并纳入考量,并且在完成一次计算后被加入路径的该节点的权重值;
具体为:将各待加入节点权重值和链路权重值作为Dijkstra算法输入数据,得到该待加入节点的权重值。
6.如权利要求5所述的方法,其特征在于,所述nw_penalty_coeff和ew_penalty_coeff为和为1的正常数,在每次计算路由路径时设定。
7.如权利要求6所述的方法,其特征在于,所述nw_penalty_coeff和ew_penalty_coeff设定规则为:当网络中的某个节点处于繁忙状态而各条链路相对空闲时,应当设定nw_penalty_coeff大于ew_penalty_coeff,反之,则应当设定nw_penalty_coeff小于ew_penalty_coeff。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056675.3A CN106713136B (zh) | 2016-11-25 | 2016-11-25 | 一种基于堆结构扩张软件定义网络的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056675.3A CN106713136B (zh) | 2016-11-25 | 2016-11-25 | 一种基于堆结构扩张软件定义网络的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106713136A CN106713136A (zh) | 2017-05-24 |
CN106713136B true CN106713136B (zh) | 2020-08-21 |
Family
ID=58934679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611056675.3A Active CN106713136B (zh) | 2016-11-25 | 2016-11-25 | 一种基于堆结构扩张软件定义网络的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106713136B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108683593B (zh) * | 2018-07-10 | 2021-01-15 | 烽火通信科技股份有限公司 | 一种k短路径的计算方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104012063A (zh) * | 2011-12-22 | 2014-08-27 | 瑞典爱立信有限公司 | 用于软件定义网络中的灵活和可扩展流处理的控制器 |
CN104092565A (zh) * | 2014-06-24 | 2014-10-08 | 复旦大学 | 一种面向云数据中心的多租户策略驱动型软件定义网络方法 |
CN104901890A (zh) * | 2015-06-24 | 2015-09-09 | 上海斐讯数据通信技术有限公司 | 一种sdn的路由生成、匹配方法和系统 |
CN105162759A (zh) * | 2015-07-17 | 2015-12-16 | 哈尔滨工程大学 | 一种基于网络层流量异常的SDN网络DDoS攻击检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9647926B2 (en) * | 2014-03-17 | 2017-05-09 | Telefonaktiebolaget L M Ericsson (Publ) | Procedure to identify multi-homed prefixes for IS-IS LFA |
-
2016
- 2016-11-25 CN CN201611056675.3A patent/CN106713136B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104012063A (zh) * | 2011-12-22 | 2014-08-27 | 瑞典爱立信有限公司 | 用于软件定义网络中的灵活和可扩展流处理的控制器 |
CN104092565A (zh) * | 2014-06-24 | 2014-10-08 | 复旦大学 | 一种面向云数据中心的多租户策略驱动型软件定义网络方法 |
CN104901890A (zh) * | 2015-06-24 | 2015-09-09 | 上海斐讯数据通信技术有限公司 | 一种sdn的路由生成、匹配方法和系统 |
CN105162759A (zh) * | 2015-07-17 | 2015-12-16 | 哈尔滨工程大学 | 一种基于网络层流量异常的SDN网络DDoS攻击检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106713136A (zh) | 2017-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mak et al. | Adaptive routing in network-on-chips using a dynamic-programming network | |
JPH10506243A (ja) | ネットワーク運用並びに性能の強化 | |
EP2483850A2 (en) | Apparatus and method for determining optimum paths in a multi-layer network using a routing engine | |
CN109286528B (zh) | 一种基于时延的sdn网络多控制器部署方法 | |
Nedzelnitsky et al. | Nonstationary models of learning automata routing in data communication networks | |
CN105634974B (zh) | 软件定义网络中的路由确定方法和装置 | |
Foroutan et al. | Assignment of vertical-links to routers in vertically-partially-connected 3-D-NoCs | |
CN107465966A (zh) | 一种用于光网络的拓扑重构控制方法 | |
CN115913979A (zh) | 一种全域网络拓扑处理方法和设备 | |
CN106713136B (zh) | 一种基于堆结构扩张软件定义网络的方法 | |
Kullu et al. | MARM-GA: mapping applications to reconfigurable mesh using genetic algorithm | |
CN113938434A (zh) | 大规模高性能RoCEv2网络构建方法和系统 | |
CN101267398B (zh) | 二维torus网中的无死锁自适应路由方法 | |
Mollah et al. | Rapid calculation of max-min fair rates for multi-commodity flows in fat-tree networks | |
Guan et al. | A multi‐controller placement method for software defined network based on improved firefly algorithm | |
Liu et al. | Intralayer synchronization in heterogeneous multiplex dynamical networks based on spectral graph theory | |
CN112615736B (zh) | 面向线性边缘网络的延迟最优分布式NNs协同优化方法 | |
Kiasari et al. | Analytic performance comparison of hypercubes and star graphs with implementation constraints | |
Perepelkin et al. | DC Designer: Software System of Scaling Multiprovider Data Centers Networks | |
Ge et al. | Synthesizing a generalized brain-inspired interconnection network for large-scale network-on-chip systems | |
Ansari et al. | Advancement in energy efficient routing algorithms for 3-D Network-on-Chip architecture | |
CN112187657B (zh) | 一种软件定义广域网中实现负载均衡的可扩展路由方法 | |
CN115226044B (zh) | 一种nfv网络中的多播路由方法及系统 | |
JP7294450B2 (ja) | ネットワークトポロジーを生成する装置、方法及びプログラム | |
Chari | Multi-hour design of computer backbone networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |