CN105119840B - 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 - Google Patents
基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 Download PDFInfo
- Publication number
- CN105119840B CN105119840B CN201510549950.4A CN201510549950A CN105119840B CN 105119840 B CN105119840 B CN 105119840B CN 201510549950 A CN201510549950 A CN 201510549950A CN 105119840 B CN105119840 B CN 105119840B
- Authority
- CN
- China
- Prior art keywords
- network
- search
- link
- subtopology
- load
- 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.)
- Expired - Fee Related
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
- H04L45/123—Evaluation of link metrics
-
- 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/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于SDN使用胖树拓扑结构的数据中心网络负载均衡方法,它包括:能实时动态更新网络链路负载,从整个网络拓扑中在通信的任意两个主机之间搜索出一个子拓扑,然后从子拓扑中找出一条链路负载最小的路径。这条路径就是两个主机的通信路径。本发明考虑了整个拓扑链路负载情况,使用以链路负载和相关交换机的状态信息作为搜索权重的Dijkstra算法搜索链路负载最小的路径。本发明算法复杂度较低,在控制器端存储的信息比较少,保证网络通信质量,减少数据包的丢失率,增加网络吞吐量,保证了网络的负载均衡。
Description
技术领域
本发明涉及数据中心网络和软件定义网络领域,具体涉及一种SDN下的使用胖树拓扑结构的数据中心网络负载均衡方法。
背景技术
随着互联网规模的越来越大,存储在互联网上的数据信息也越来越多,为了存储这些信息,数据中心网络产生。数据中心是拥有复杂的网络设施,复杂的网络通信和存储系统。如何在数据中心选择一条比较空闲的链路,如何在高并发情况下保证任何两个主机之间的通信质量,提高中心网络的带宽利用率,增加吞吐量和加强网络数据处理能力等,都需要时时刻刻调整网络中数据包的转发路径,这样可以减少网络拥塞和数据包的丢失率,保证中心网络的两个主机的通信质量。
软件定义网络(Software Defined Network, SDN ),是一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow协议通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。OpenFlow协议是一种新型的网络交换模型,具有的特点:第一,设备必须具有商用设备的高性能和低价格的特点;第二,设备必须能支持各种不同的研究范围;第三,设备必须能隔绝实验流量和运行流量;第四,设备必须满足设备制造商封闭平台的要求。软件定义网络是由控制器和OpenFlow交换机组成,SDN控制器是软件定义网络(SDN)中的应用程序,负责流量控制以确保智能网络。SDN控制器是基于如OpenFlow等协议的,允许服务器告诉交换机向哪里发送数据包。SDN控制器是一种由高级编程语言编写的一个应用程序或者是一个小型的操作系统(OS),如现在有NOX(C++),POX和RYU(Python),Floodlight(Java)。控制器不控制网络硬件而是作为软件运行,这样有利于网络自动化管理和未来的网络升级。基于软件的网络控制使得集成业务申请和网络更容易。现有的基于SDN技术的胖树结构的数据中心负载均衡方法,一是:在计算路径时没有考虑整个拓扑的链路负载情况,导致搜索出来的路径负载情况不是最小;二是:在计算路径时计算复杂度高和在SDN控制器端存储的信息比较多,当网络规模增加时,网络控制器存储的信息会急速增加。
发明内容
本发明的目的是针对现有技术的不足而提供的一种基于SDN使用胖树拓扑结构的数据中心网络负载均衡方法,该方法能够保证数据中心网络中的任意两个主机之间动态选择最优通信路径。
实现本发明目的的具体技术方案是:
一种基于SDN使用胖树拓扑结构的数据中心网络负载均衡方法,其特征在于该方法包括以下步骤:
第一步、在SDN网络启动和SDN网络控制器获得整个网络的胖树拓扑结构后,周期性检测更新每条链路上的链路负载情况;
第二步、当网络中的任意两个主机将要通信时,源主机根据ARP协议及网络的胖树拓扑结构找到目的主机的物理MAC地址,在胖树拓扑结构下网络控制器分别从源主机和目的主机处自底向上搜索出一个子拓扑;
第三步、使用单源最短路径(Dijkstra)算法,在子拓扑中找到一条负载最小的路径,网络控制器将该负载最小的路径下放到各交换机中,两个主机之间开始通信。
所述周期性检测更新每条链路上的链路负载情况,具体为:设置每隔4秒交换机端口信息事件发生一次,然后计算更新链路负载信息,算法如下:
IF full_topology is ready THEN
updatetopocost()
END IF
ELSE:
暂停
UPDATETOPOCOST():
IF PortStatsreveived happens THEN
cost← (ReveivedBytes-LastReceiveBytes)/4
update PortToByte
END IF。
所述网络控制器分别从源主机和目的主机处自底向上搜索出一个子拓扑,具体为:
两个主机通信时,源主机发送ARP数据包,交换机检查在交换机中是否存在转发此数据包的路径;如果没有,交换机就把此数据包封装一个PACKETIN数据包,把该数据包发送给网络控制器;网络控制器查询存储在控制器中的信息,找到与该PACKETIN数据包中目的主机IP对应的物理地址,然后控制器以此物理地址封装成一个ARP(REPLY)数据包返回给源主机;控制器根据源主机和目的主机物理地址,同时向上搜索,搜索开始时,初始化一个空集合s,每向上搜索一层,把这一层搜索到的交换机及与交换机相连的链路加入集合s中;同时判断在这一层搜索到的交换机是否相同,如果不相同,就继续向上搜索,直至在某一层,同时搜索到的交换机完全相同,搜索结束,所得的集合s就是两个通信主机之间的子拓扑;具体过程:
输入: FullTopologyInfo,src ,dst
输出: ChildTopologyInfo
SourceMACSwitch joins src
DestinationMACSwitch joins dst
SRC ←[]
DST ←[]
for switchx in src
for switchy in topo
IF switchxLayer > switchyLayer THEN
switchy joins child
switchy joins SRC
END IF
for switchx in dst
for switchy in topo
IF switchxLayer > switchyLayer THEN
switchy joins child
switchy joins DST
END IF。
所述使用Dijkstra算法,在子拓扑中找到一条负载最小的路径,具体为:
使用Dijkstra算法时,把链路负载情况和与此链路相关的交换机所有端口在4秒内收到的字节数作为算法中的权重;此算法在子拓扑中产生一条路径,该路径就是最终的两个主机之间的通信路径,此通信路径每隔4秒更新一次,保证整个网络负载均衡;具体过程:
输入:子拓扑(G=(V, E)),交换机状态信息w[v]
输出: 最短路径ShortestPath[switches]
while (G)
u←NextLink in G
for v in G
IF d[v] > d[u]+w[v] THEN
…
v joins ShortestPath
…
d[v]←d[u]
END IF。
本发明考虑了整个拓扑链路负载情况,使用以链路负载和相关交换机的状态信息作为搜索权重的Dijkstra算法搜索链路负载最小的路径。本发明算法复杂度较低,在控制器端存储的信息比较少,保证网络通信质量,减少数据包的丢失率,增加网络吞吐量,保证了网络的负载均衡。
附图说明
图1为本发明流程图;
图2为本发明胖树结构的子拓扑示意图;
图3为本发明找出链路负载最小路径的流程图。
具体实施方式
下面结合附图及实施例对本发明进行详细描述,但是本发明的保护范围不局限于所述实施例。
参阅图1,本发明包括如下步骤:1)、周期性检测更新每条链路上的链路负载情况;2)、搜索子拓扑;3)、从子拓扑中找出一条链路负载最小的路径。
实施例1
步骤1):SDN网络启动,SDN交换机和SDN控制器通过OpenFlow协议进行通信,交换机把自身信息发送到SDN控制器中,SDN控制器处理这些信息,并存储在控制器中。等待网络启动完成后,SDN控制器获得整个数据中心网络拓扑结构,因为采用的胖树结构,SDN在控制器端把胖树结构的每一层交换机按层存储在控制器端。然后监控网络链路带宽算法开始工作。监控算法每隔4秒计算所有的交换机端口的进出的字节数,计算出当前各条链路的带宽和拥塞情况,更新控制器中的各条链路的带宽信息。
步骤2):参阅图3,当数据中心网络中的两个主机(H1和H2)要通信时,主机H1会发送ARP数据包来寻找主机H2的物理地址,如果交换机不知道此数据包的转发端口,就会把此数据包中的信息封装成一个PACKET_IN的数据包,此交换机产生一个PACKET_IN的事件信息,SDN控制器收到此PACKET_IN的事件信息,就会提取出此事件信息的数据包信息,如目的地址的IP地址,然后查询控制器的信息库,找到与此IP对应的物理地址,控制器把找到的信息封装成ARP(REPLY)数据包返回给主机H1,此时网络控制器从主机H1和主机H2连接的交换机开始向上搜索。初始时,子拓扑信息SG为空{},搜索算法每次向上搜索一层时就把两边搜索到交换机做比较,如主机H1向上搜索的这一层交换机是W1{switch1,switch2},主机H2向上搜索的同一层交换机是W2{switch3,switch4}。比较W1和W2集合中交换机是否相同,如果不相同加入子拓扑信息集合中SG={ switch1,switch2, switch3,switch4},W1置为空,W2置为空,然后搜索算法继续向上搜索。比如搜索第N层时 W1集合中的交换机是{switch7,switch8,switch9},W2集合中的交换机是{switch 7,switch8,switch9},此时W1和W2集合中的交换机是一样的,W1和W2集合合并加入子拓扑中SG={ switch1,switch2, switch3,switch4…switch 7,switch8,switch9},搜索结束,此时子拓扑信息SG产生,如图2中的框图集合所示。
步骤3):产生负载最小链路,SDN控制器下放路径信息到相关交换机中。此步骤中使用单源最短路径(Dijkstra)算法,在子拓扑中找到一条负载最小的路径,在计算负载最小的链路时,加入每条链路所连接的交换机的状态信息,如果此交换机在工作时,把此交换机所有端口在4秒中内接受的字节数,作为一个变量加入寻找最短路径的算法中,如果此交换机没有在工作,那么规定此交换机在4秒中内接受的字节数是无穷大,然后此算法最后产生一条负载最小的路径P={switch1,switch3,…,switch9};SDN控制器就把此路径信息下放到各个相关的交换机中。然后主机H1和主机H2开始通信。每隔4秒,重新在子拓扑中寻找一条负载最小的路径下放到相关的交换机中,这样可以实时根据网络的通信情况,实时调节两个主机之间的通信链路,以达到动态调节网络复杂均衡的结果。
Claims (2)
1.一种基于SDN使用胖树拓扑结构的数据中心网络负载均衡方法,其特征在于该方法包括以下步骤:
第一步、在SDN网络启动和SDN网络控制器获得整个网络的胖树拓扑结构后,周期性检测更新每条链路上的链路负载情况;
第二步、当网络中的任意两个主机将要通信时,源主机根据ARP协议及网络的胖树拓扑结构找到目的主机的物理MAC地址,在胖树拓扑结构下网络控制器分别从源主机和目的主机处自底向上搜索出一个子拓扑;
第三步、使用Dijkstra算法,在子拓扑中找到一条负载最小的路径,网络控制器将该负载最小的路径下放到各交换机中,两个主机之间开始通信;其中,
所述网络控制器分别从源主机和目的主机处自底向上搜索出一个子拓扑,具体为:
两个主机通信时,源主机发送ARP数据包,交换机检查在交换机中是否存在转发此数据包的路径;如果没有,交换机就把此数据包封装一个PACKETIN数据包,把该数据包发送给网络控制器;网络控制器查询存储在控制器中的信息,找到与该PACKETIN数据包中目的主机IP对应的物理地址,然后控制器以此物理地址封装成一个ARP REPLY数据包返回给源主机;控制器根据源主机和目的主机物理地址,同时向上搜索,搜索开始时,初始化一个空集合s,每向上搜索一层,把这一层搜索到的交换机及与交换机相连的链路加入集合s中;同时判断在这一层搜索到的交换机是否相同,如果不相同,就继续向上搜索,直至在某一层,同时搜索到的交换机完全相同,搜索结束,所得的集合s就是两个通信主机之间的子拓扑;
所述使用Dijkstra算法,在子拓扑中找到一条负载最小的路径,具体为:
使用Dijkstra算法时,把链路负载情况和与此链路相关的交换机所有端口在4秒内收到的字节数作为算法中的权重;此算法在子拓扑中产生一条路径,该路径就是最终的两个主机之间的通信路径,此通信路径每隔4秒更新一次,保证整个网络负载均衡。
2.根据权利要求1所述的方法,其特征在于所述周期性检测更新每条链路上的链路负载情况,具体为:设置每隔4秒交换机端口信息事件发生一次,然后计算更新链路负载信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510549950.4A CN105119840B (zh) | 2015-09-01 | 2015-09-01 | 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510549950.4A CN105119840B (zh) | 2015-09-01 | 2015-09-01 | 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105119840A CN105119840A (zh) | 2015-12-02 |
CN105119840B true CN105119840B (zh) | 2018-08-24 |
Family
ID=54667735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510549950.4A Expired - Fee Related CN105119840B (zh) | 2015-09-01 | 2015-09-01 | 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105119840B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106936731A (zh) * | 2015-12-31 | 2017-07-07 | 北京华为数字技术有限公司 | 软件定义网络sdn中的报文转发的方法和装置 |
CN105450521B (zh) * | 2015-12-31 | 2019-10-25 | 中国电子科技集团公司电子科学研究院 | 一种软件定义的多路径网络流实时动态优化方法 |
CN106411770B (zh) * | 2016-09-08 | 2019-05-31 | 重庆邮电大学 | 一种基于sdn架构的数据中心网络节能路由算法 |
CN106789642A (zh) * | 2016-11-22 | 2017-05-31 | 东华大学 | 一种基于sdn的动态负载均衡方法 |
CN107835136A (zh) * | 2017-12-14 | 2018-03-23 | 中国科学技术大学苏州研究院 | 现有网络向软件定义网络过渡的交换机部署与路由方法 |
CN107809393A (zh) * | 2017-12-14 | 2018-03-16 | 郑州云海信息技术有限公司 | 一种基于sdn网络的链路负载均衡算法及装置 |
CN108429699B (zh) * | 2018-05-31 | 2021-12-07 | 首都师范大学 | 基于二维路由的拥塞规避机制及装置 |
CN110505086B (zh) * | 2019-08-16 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种分布式控制器容错的方法及装置 |
CN110661730B (zh) * | 2019-10-24 | 2022-11-08 | 北京锐安科技有限公司 | 一种网络交换设备管理方法、装置、服务器和存储介质 |
CN111343093B (zh) * | 2020-02-28 | 2021-07-09 | 腾讯科技(深圳)有限公司 | 业务数据的传输方法及装置 |
CN112929856B (zh) * | 2021-01-15 | 2022-08-02 | 清华大学 | 用于移动自组网中缓解拥塞的路由计算方法及装置 |
CN112887202B (zh) * | 2021-02-02 | 2022-05-27 | 浙江工商大学 | 一种基于子拓扑网络的sdn链路故障网络收敛方法 |
CN113411211B (zh) * | 2021-06-16 | 2022-09-30 | 中国科学技术大学 | 一种主从集群控制方法、装置及系统 |
CN115643209A (zh) * | 2022-10-24 | 2023-01-24 | 西安电子科技大学 | 基于带宽匹配的sddcn节能路由方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014153421A2 (en) * | 2013-03-19 | 2014-09-25 | Yale University | Managing network forwarding configurations using algorithmic policies |
CN104468353A (zh) * | 2014-12-26 | 2015-03-25 | 深圳市新格林耐特通信技术有限公司 | 基于sdn的数据中心网络流量管理方法 |
CN104767694A (zh) * | 2015-04-08 | 2015-07-08 | 大连理工大学 | 一种面向Fat-Tree数据中心网络架构的数据流转发方法 |
-
2015
- 2015-09-01 CN CN201510549950.4A patent/CN105119840B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014153421A2 (en) * | 2013-03-19 | 2014-09-25 | Yale University | Managing network forwarding configurations using algorithmic policies |
CN104468353A (zh) * | 2014-12-26 | 2015-03-25 | 深圳市新格林耐特通信技术有限公司 | 基于sdn的数据中心网络流量管理方法 |
CN104767694A (zh) * | 2015-04-08 | 2015-07-08 | 大连理工大学 | 一种面向Fat-Tree数据中心网络架构的数据流转发方法 |
Non-Patent Citations (1)
Title |
---|
"An efficient packet processing protocol based on exchanging messages between switches and controller in OpenFlow networks";TaeJin Kim,et al;《Emerging Technologies for a Smarter World (CEWIT), 2013 10th International Conference and Expo on》;20140116;第3部分第1段 * |
Also Published As
Publication number | Publication date |
---|---|
CN105119840A (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105119840B (zh) | 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 | |
WO2020181761A1 (zh) | 一种sdn增强路径装箱装置及方法 | |
CN106375231B (zh) | 一种流量切换方法、设备及系统 | |
CN106789648B (zh) | 基于内容存储与网络状况的软件定义网络路由决策方法 | |
CN103346922B (zh) | 基于sdn的确定网络状态的控制器及其确定方法 | |
CN101567818B (zh) | 基于硬件的大规模网络路由仿真方法 | |
JP5935572B2 (ja) | 基地局装置及びパケット振分け方法 | |
CN104335537B (zh) | 用于层2多播多路径传送的系统和方法 | |
CN105684505B (zh) | 通信网络、设备和控制方法 | |
CN106059811B (zh) | 通信系统、控制装置、分组转发路径控制方法 | |
CN104468351B (zh) | 基于sdn辅助ccn路由的管理方法、ccn转发装置及网络控制器 | |
Wang et al. | Implementation of multipath network virtualization with SDN and NFV | |
US20130195110A1 (en) | Communication system, control device, method for setting processing rules, and program | |
JP5943431B2 (ja) | ネットワーク、データ転送ノード、通信方法およびプログラム | |
CN106209615B (zh) | 一种基于spfa算法计算转发路径的动态路由控制方法和系统 | |
CN106936705B (zh) | 一种软件定义网络路由选择方法 | |
CN107396396A (zh) | 支持多源多径的数据传输管理方法 | |
CN106656905A (zh) | 防火墙集群实现方法及装置 | |
CN105915467A (zh) | 一种面向软件定义的数据中心网络流量均衡方法及装置 | |
CN103746925A (zh) | 一种FiWi融合网络以及基于FiWi融合网络的通信方法 | |
CN112350949A (zh) | 软件定义网络中基于流调度的重路由拥塞控制方法及系统 | |
CN105071947A (zh) | 一种sdn网络的链路优化方法 | |
CN105207944B (zh) | 基于fast tcp的传输控制方法 | |
CN103746886A (zh) | 一种FiWi节点和一种FiWi融合组网方法 | |
Xiao et al. | DMSSM: A Decision-Making Scheme of Switch Migration for SDN Control Plane |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180824 Termination date: 20210901 |
|
CF01 | Termination of patent right due to non-payment of annual fee |