CN108768698B - 一种基于sdn的多控制器动态部署方法和系统 - Google Patents

一种基于sdn的多控制器动态部署方法和系统 Download PDF

Info

Publication number
CN108768698B
CN108768698B CN201810407261.3A CN201810407261A CN108768698B CN 108768698 B CN108768698 B CN 108768698B CN 201810407261 A CN201810407261 A CN 201810407261A CN 108768698 B CN108768698 B CN 108768698B
Authority
CN
China
Prior art keywords
controller
vote
adjacent
fault
node
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
Application number
CN201810407261.3A
Other languages
English (en)
Other versions
CN108768698A (zh
Inventor
李方敏
邱溢文
旷海兰
彭小兵
栾悉道
杨志邦
张韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Zhongkan Beidou Research Institute Co ltd
Original Assignee
Changsha University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Changsha University filed Critical Changsha University
Priority to CN201810407261.3A priority Critical patent/CN108768698B/zh
Publication of CN108768698A publication Critical patent/CN108768698A/zh
Application granted granted Critical
Publication of CN108768698B publication Critical patent/CN108768698B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于SDN的多控制器动态部署方法,包括:使用Paxos算法从与SDN网络中故障控制器相邻的多个控制器中选择一个控制器作为主节点,主节点根据SDN网络的拓扑结构、各个跟随节点的负载情况、以及故障控制器与其进行同步期间发送的消息获得故障控制器所管理的所有交换机对应的最终迁入控制器,再由跟随节点根据得到的故障控制器下所有交换机所对应的最终迁入控制器执行交换机的迁入过程。本发明能解决现有多控制器动态部署方法中存在的由于没有考虑迁入控制器的容量限制、以及忽略了故障恢复后交换机与控制器间的传输距离所引起的控制器的平均响应时延增加的技术问题。

Description

一种基于SDN的多控制器动态部署方法和系统
技术领域
本发明属于计算机网络技术领域,更具体地,涉及一种基于SDN的多控制器动态部署方法和系统。
背景技术
随着信息技术的快速发展,互联网已经渗透到人们的日常生活中,人们对互联网的需求也日渐提升。然而,传统网络架构稳定性差,且难以革新,从而阻碍了互联网发展的进程。为此,软件定义网络(Software Defined Network,简称SDN)作为一种新型网络架构于2008年被提出,并迅速获得学术界与工业界的认可。与传统网络架构的理念不同,SDN将控制权从网络设备中分离出来,并交由集中式控制器统一管理,同时还提供开放可编程接口,以简化网络配置与业务部署。
在现有的SDN网络中,当多控制器静态部署算法完成网络初始化后,网络系统中的控制器数量、部署位置以及与交换机间的映射关系将不再改变,此时,传统的基于SDN网络的静态部署算法无法适应复杂多变的网络环境。因此,研究人员将多控制器部署问题的研究内容延伸至动态部署,即通过动态改变交换机与控制器间的映射关系来保证网络系统的稳定性。
目前基于SDN的多控制器动态部署策略主要有两种:一种是最近邻算法(ShortestPath Algorithm,简称SP),即在控制器故障的情况下,将其管理的交换机集迁移至离其最近的控制器上,以完成故障恢复;另外一种是基于剩余容量的启发性算法(ResidualCapacity-based Heuristic,简称RCBH),该算法在控制器发生故障时,将其管理的交换机集迁移至当前网络系统剩余负载最多的控制器上。
然而,上述两种多控制器动态部署方法的缺陷:首先,它们均忽略了迁入控制器的容量限制,这会导致新迁入的控制器发生超载情况,从而进一步导致控制器的平均响应时延增加;此外,它们均没有考虑故障恢复后交换机与控制器间的传输距离,在二者之间传输过长的情况下,会导致控制器的平均响应时延增加。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于SDN的多控制器动态部署方法和系统,其目的在于,解决现有多控制器动态部署方法中存在的由于没有考虑迁入控制器的容量限制、以及忽略了故障恢复后交换机与控制器间的传输距离所引起的控制器的平均响应时延增加的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种基于SDN的多控制器动态部署方法,包括以下步骤:
(1)使用Paxos算法从与SDN网络中故障控制器相邻的多个控制器中选择一个控制器作为主节点;
(2)主节点根据SDN网络的拓扑结构、各个跟随节点的负载情况、以及故障控制器与其进行同步期间发送的消息获得故障控制器所管理的所有交换机对应的最终迁入控制器,再由跟随节点根据得到的所有交换机对应的最终迁入控制器执行交换机的迁入过程。
优选地,步骤(1)包括以下子步骤:
(1-1)与SDN网络中故障控制器相邻的控制器判断其自身是否存在超载情况,若是则过程结束,否则进入步骤(1-2);
(1-2)该控制器判断其自身的选举状态是否是未激活(No Active)状态,如果是则进入步骤(1-3),否则过程结束;
(1-3)该控制器将其选举状态设置为决策状态,向与故障控制器相邻的另一台控制器发送参与竞争主节点的信息,即选票,并接收来自于与故障控制器相邻的另一台控制器的选票;
(1-4)该控制器判断来自于与故障控制器相邻的另一台控制器的选票对应的逻辑时钟是否与其自身的逻辑时钟相同,如果不相同则进入步骤(1-5),如果相同则转入步骤(1-7);
(1-5)该控制器判断来自于与故障控制器相邻的另一台控制器的选票对应的逻辑时钟是否大于其自身的逻辑时钟,如果是则进入步骤(1-6),否则过程结束;
(1-6)该控制器将其自身的逻辑时钟设置为来自与故障控制器相邻的另一台控制器的选票对应的逻辑时钟;
(1-7)该控制器判断来自于与故障控制器相邻的另一台控制器的选票中的事务序号字段中的值是否大于该控制器向与故障控制器相邻的另一台控制器发送的选票中的对应值,如果是则进入步骤(1-9),否则进入步骤(1-8);
(1-8)该控制器判断来自于与故障控制器相邻的另一台控制器的选票中的剩余负载字段中的值是否大于该控制器向与故障控制器相邻的另一台控制器发送的选票中的对应值,将该控制器向与故障控制器相邻的另一台控制器发送的选票作为当前选票,如果是则进入步骤(1-9),否则进入步骤(1-10);
(1-9)该控制器将其自身向与故障控制器相邻的另一台控制器发送的选票替换为来自于与故障控制器相邻的另一台控制器的选票,将替换后的选票作为当前选票;
(1-10)该控制器将其自身的逻辑时钟增加一次,并且向与故障控制器相邻的另一台控制器发送当前选票,并统计当前时刻从与故障控制器相邻的所有控制器接收到的所有选票、以及当前时刻其自身发送给与故障控制器相邻的所有控制器的选票的总数量、以及每张选票中的控制器标识;
(1-11)该控制器统计具有相同控制器标识的选票的数量,从中选择选票数量最大值,并判断该选票数量最大值是否超过步骤(1-10)中统计的选票总数量的一半,如果是则进入步骤(1-12),否则返回步骤(1-3);
(1-12)该控制器判断该选票数量最大值所对应的选票中的控制器标识是否是其自身的标识,如果是则将其自身设置为主节点,否则将其自身设置为跟随节点。
优选地,逻辑时钟用于表示选票轮次,其代表选票的实时性,每进行一次广播选票,则该值递增一次。
优选地,控制器标识表示的是选票中被选举的控制器的序号。
优选地,步骤(2)包括以下子步骤:
(2-1)主节点根据故障控制器与其进行同步期间发送的消息对该故障控制器对应的交换机进行降序排序;
(2-2)设置计数器i=1;
(2-3)主节点根据降序排序的结果判断故障控制器的第i个交换机迁入一个跟随节点时,会不会使该跟随节点发生超载,如果不会,则将该跟随节点加入候选迁入控制器集合中,如果会,则针对其余跟随节点重复本步骤的过程,直到遍历完毕所有跟随节点为止,从而得到最终的候选迁入控制器集合;
(2-4)主节点从最终的候选迁入控制器集合中找出与第i个交换机传输距离最短的控制器,将该控制器作为第i个交换机的最终迁入控制器;
(2-5)设置i=i+1,并重复上述步骤(2-3),直至故障控制器对应的所有交换机均被处理完毕为止,从而得到故障控制器对应的所有交换机对应的最终迁入控制器;
(2-6)主节点将步骤(2-5)得到的所有交换机对应的最终迁入控制器下发到所有跟随节点;
(2-7)跟随节点根据主节点发送的所有交换机对应的最终迁入控制器对故障节点的所有交换机执行迁入过程,在迁入过程完成后将其自身的选举状态修改为未激活状态,并将迁入过程完毕通知发送到主节点;
(2-8)主节点在接收到来自所有跟随节点的迁入过程完毕通知后将其自身的选举状态修改为未激活状态。
优选地,主节点间隔一段时间与其相邻的所有控制器进行同步操作,同步操作期间,每个控制器会发送消息到主节点,该消息中包括有每个控制器对应的所有交换机向该控制器发送的数据包进入消息数量、以及每个控制器的当前负载。
按照本发明的另一方面,提供了一种基于SDN的多控制器动态部署系统,包括:
第一模块,用于使用Paxos算法从与SDN网络中故障控制器相邻的多个控制器中选择一个控制器作为主节点;
第二模块,用于主节点根据SDN网络的拓扑结构、各个跟随节点的负载情况、以及故障控制器与其进行同步期间发送的消息获得故障控制器所管理的所有交换机对应的最终迁入控制器,再由跟随节点根据得到的所有交换机对应的最终迁入控制器执行交换机的迁入过程。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
一、由于本发明方法的步骤(2)中充分考虑到了迁入控制器的容量限制,避免了故障恢复后迁入控制器发生超载的情况,从而减少了控制器的平均响应时延;
二、由于本发明方法的步骤(2)在满足控制器负载限制的基础上,选择了与交换机之间传输距离最短的迁入控制器,从而减少了控制器的平均响应时延。
附图说明
图1是对本发明进行模拟仿真使用的OS3E网络拓扑的初始化部署示意图。
图2示出Packet-In消息到达速率与控制器处理时延之间的关系曲线。
图3示出本发明在第一种参数条件下采用不同算法得到的控制器计算开销。
图4示出本发明在第一种参数条件采用不同算法得到的控制器平均响应时延。
图5示出本发明在第二种参数条件采用不同算法得到的控制器计算开销。
图6示出本发明在第二种参数条件采用不同算法得到的控制器平均响应时延。
图7示出本发明在第三种参数条件采用不同算法得到的控制器计算开销。
图8示出本发明在第三种参数条件采用不同算法得到的控制器平均响应时延。
图9示出本发明方法与现有的SP和RCBH算法在故障恢复时间方面的比较。
图10是本发明基于SDN的多控制器动态部署方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图10所示,本发明基于SDN的多控制器动态部署方法包括以下步骤:
(1)使用Paxos算法从与SDN网络中故障控制器相邻的多个控制器中选择一个控制器作为主节点;
本步骤具体包括以下子步骤:
(1-1)与SDN网络中故障控制器相邻的控制器判断其自身是否存在超载(Overload)情况,若是则过程结束,否则进入步骤(1-2);
具体而言,若控制器的当前负载大于其额定负载,则判断其发生超载。
(1-2)该控制器判断其自身的选举状态是否是未激活(No Active)状态,如果是则进入步骤(1-3),否则过程结束;
(1-3)该控制器将其选举状态设置为决策状态,向与故障控制器相邻的另一台控制器发送参与竞争主节点的信息,即选票,并接收来自于与故障控制器相邻的另一台控制器的选票;
(1-4)该控制器判断来自于与故障控制器相邻的另一台控制器的选票对应的逻辑时钟是否与其自身的逻辑时钟相同,如果不相同则进入步骤(1-5),如果相同则转入步骤(1-7);
具体而言,逻辑时钟指的是选票轮次,其代表选票的实时性,每进行一次广播选票,则该值递增一次;
(1-5)该控制器判断来自于与故障控制器相邻的另一台控制器的选票对应的逻辑时钟是否大于其自身的逻辑时钟,如果是则进入步骤(1-6),否则过程结束;
(1-6)该控制器将其自身的逻辑时钟设置为来自与故障控制器相邻的另一台控制器的选票对应的逻辑时钟;
(1-7)该控制器判断来自于与故障控制器相邻的另一台控制器的选票中的事务序号字段中的值是否大于该控制器向与故障控制器相邻的另一台控制器发送的选票中的对应值,如果是则进入步骤(1-9),否则进入步骤(1-8);
(1-8)该控制器判断来自于与故障控制器相邻的另一台控制器的选票中的剩余负载字段中的值是否大于该控制器向与故障控制器相邻的另一台控制器发送的选票中的对应值,将该控制器向与故障控制器相邻的另一台控制器发送的选票作为当前选票,如果是则进入步骤(1-9),否则进入步骤(1-10);
(1-9)该控制器将其自身向与故障控制器相邻的另一台控制器发送的选票替换为来自于与故障控制器相邻的另一台控制器的选票,将替换后的选票作为当前选票;
(1-10)该控制器将其自身的逻辑时钟增加一次,并且向与故障控制器相邻的另一台控制器发送当前选票,并统计当前时刻从与故障控制器相邻的所有控制器接收到的所有选票、以及当前时刻其自身发送给与故障控制器相邻的所有控制器的选票的总数量、以及每张选票中的控制器标识;
其中,控制器标识表示的是选票中被选举的控制器的序号;
(1-11)该控制器统计具有相同控制器标识的选票的数量,从中选择选票数量最大值,并判断该选票数量最大值是否超过步骤(1-10)中统计的选票总数量的一半,如果是则进入步骤(1-12),否则返回步骤(1-3);
(1-12)该控制器判断该选票数量最大值所对应的选票中的控制器标识是否是其自身的标识,如果是则将其自身设置为主节点,否则将其自身设置为跟随节点(Follower)。
(2)主节点根据SDN网络的拓扑结构、各个跟随节点的负载情况、以及故障控制器与其进行同步期间发送的消息获得故障控制器所管理的所有交换机对应的最终迁入控制器,再由跟随节点根据得到的所有交换机对应的最终迁入控制器执行交换机的迁入过程。
本步骤包括以下子步骤:
(2-1)主节点根据故障控制器与其进行同步期间发送的消息对该故障控制器对应的交换机进行降序排序;
具体而言,主节点会间隔一段时间(本步骤中是100至3000毫秒)与其相邻的所有控制器进行同步操作,同步操作期间,每个控制器会发送消息到主节点,该消息中包括有每个控制器对应的所有交换机向该控制器发送的数据包进入(Packet-in)消息数量、以及每个控制器的当前负载。
(2-2)设置计数器i=1;
(2-3)主节点根据降序排序的结果判断故障控制器的第i个交换机迁入一个跟随节点时,会不会使该跟随节点发生超载,如果不会,则将该跟随节点加入候选迁入控制器集合中,如果会,则针对其余跟随节点重复本步骤的过程,直到遍历完毕所有跟随节点为止,从而得到最终的候选迁入控制器集合;
(2-4)主节点从最终的候选迁入控制器集合中找出与第i个交换机传输距离最短的控制器,将该控制器作为第i个交换机的最终迁入控制器;
(2-5)设置i=i+1,并重复上述步骤(2-3),直至故障控制器对应的所有交换机均被处理完毕为止,从而得到故障控制器对应的所有交换机对应的最终迁入控制器;
(2-6)主节点将步骤(2-5)得到的所有交换机对应的最终迁入控制器下发到所有跟随节点;
(2-7)跟随节点根据主节点发送的所有交换机对应的最终迁入控制器对故障节点的所有交换机执行迁入过程,在迁入过程完成后将其自身的选举状态修改为未激活状态,并将迁入过程完毕通知发送到主节点;
(2-8)主节点在接收到来自所有跟随节点的迁入过程完毕通知后将其自身的选举状态修改为未激活状态。
实验结果与分析
以下对本发明所提出的方法进行仿真分析,实验环境如下表1所示。
表1
Figure BDA0001647074600000091
Figure BDA0001647074600000101
OS3E网络拓扑的初始化部署具体如图1所示。
如图1所示,每台控制器分别管理着不同的交换机集。其次,每台交换机还需分别与一台主机相连,用于在网络系统中产生数据流,促使交换机产生Packet-In消息并发送至对应的控制器,进而改变控制器的负载大小。此外,由于本发明的方法依赖于从属(Slave)态到宿主(Master)态的转换,所以各交换机除了需要连接如图1所示的宿主态控制器以外,还需将邻域控制器置为从属态控制器。
为使到达控制器的Packet-In消息数量增大,禁用了Floodlight控制器安装流表的功能。因此,每当交换机接收到数据报文时,都会给相连的宿主态控制器发送Packet-In消息,从而改变控制器的负载大小。
由于控制器负载主要由Packet-In消息的计算开销组成,为确定控制器计算能力的上限,首先通过实验分析Packet-In消息到达速率对控制器处理时延的影响。实验结果如图2所示。
从图2可以看出,当Packet-In消息到达速率小于300KB/s时,控制器处理时延较低,保持在50ms左右;但当Packet-In消息到达速率大于300KB/s时,控制器处理时延陡增。由此可得,控制器计算能力的上限约为300KB/s。为避免故障恢复后控制器发生超载,首先,需要保证控制器的剩余计算能力能够满足迁入交换机的计算开销,同时,还要为控制器预留冗余计算能力,以应对交换机请求数量增加的情况。本发明假设交换机的请求率在故障恢复前后不会发生太大的改变,因此将本发明的方法的负载上限因子pul设为0.9。
接下来,为了说明本发明的方法的有效性,将其与多个应用于故障恢复的动态部署算法进行对比,如下表2所示:
表2
Figure BDA0001647074600000111
令故障控制器的负载为Ldmg、故障控制器的最近邻控制器的负载为Lsp和当前剩余容量最大的控制器负载为Lrcb。由于SP和RCBH算法的性能都依赖于故障控制器的负载,所以为了全面地分析本发明的方法的有效性,设计了三组实验,并分别在以下三种条件下进行:Ldmg<Lsp、Lsp<Ldmg<Lrcb、Ldmg>Lrcb。在这三组实验中,均令c5为故障控制器,并将其故障发生点设置为20s。具体实验结果如下:
1)Ldmg<Lsp
令各控制器的Packet-In消息到达速率分别为c0=100KB/s,c1=110KB/s,c2=120KB/s,c3=130KB/s,c4=140KB/s,c5=150KB/s。得到的各控制器计算开销对比如图3所示。
由图3可知,当Ldmg<Lsp时,SP、RCBH以及本发明的方法(即图中的HADD-PA算法)执行后均不存在超载控制器。
因此,如图4所示,可以看到控制器平均响应时延均没有显著增加,但本发明的方法的控制器平均响应时延要比SP算法低12.5%,比RCBH算法低20.6%。这是因为SP算法在故障恢复期间将故障控制器下的交换机集迁移至最近邻控制器上,其中最近邻是指控制器间的距离,而不是交换机与迁入控制器间的距离。而RCBH算法则将故障控制器下的交换机集迁移至当前网络系统中剩余容量最多的控制器上,可见该算法同样没有考虑交换机与迁入控制器间的距离。但本发明的方法在保证迁入控制器不超载的同时,将各交换机迁移至离其最近的邻域控制器上,因此控制器平均响应时延要低于其余两种算法。
2)Lsp<Ldmg<Lrcb
令各控制器的Packet-In消息到达速率分别为c0=120KB/s,c1=130KB/s,c2=140KB/s,c3=150KB/s,c4=160KB/s,c5=170KB/s。得到的各控制器计算开销对比如图5所示。
由图5可知,当Lsp<Ldmg<Lrcb时,SP算法执行后存在超载控制器。因此,如图6所示,SP算法的控制器平均响应时延明显高于其它两种算法,其中比RCBH算法高出61.6%,比本发明的方法高出84.4%。这是因为当Packet-In消息到达速率超过控制器计算能力的上限时,控制器处理时延会显著增大,进而影响控制器平均响应时延。
3)Ldmg>Lrcb
从图7与图8可以看出,当Ldmg>Lrcb时,SP与RCBH算法执行后均存在超载控制器,因此二者的控制器平均响应时延要明显高于本发明的方法,其中SP算法要高出82.8%,RCBH算法要高出88.3%。由此可见,当故障控制器负载较高时,本发明的方法能够较为均衡的分配交换机集,以避免超载控制器的出现。
此外,还将本发明的方法的故障恢复时间与SP和RCBH算法进行比较。实验结果图9所示。如图9所示,本发明的方法的故障恢复时间要大于SP与RCBH算法。这是因为本发明的方法在故障恢复期间既需在各邻域控制器间进行多次网络通信以选举出主节点,又要求主节点执行TOA-LC策略以完成分配结果的计算,然后再由邻域控制器执行交换机迁移操作。而SP与RCBH算法可根据现有知识执行交换机迁移操作,因此故障恢复时间相对较短。
综上所述,相较于SP与RCBH算法,本发明的方法故障恢复时间较长,但是算法执行后的网络系统不会出现控制器超载的情况。其次,本发明的方法考虑了交换机与迁入控制器间的传输时延,因此控制器平均响应时延要较其余两种算法低。综上所述,本发明的方法实现了本发明的发明目的。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于SDN的多控制器动态部署方法,其特征在于,包括以下步骤:
(1)使用Paxos算法从与SDN网络中故障控制器相邻的多个控制器中选择一个控制器作为主节点;步骤(1)包括以下子步骤:
(1-1)与SDN网络中故障控制器相邻的控制器判断其自身是否存在超载情况,若是则过程结束,否则进入步骤(1-2);
(1-2)该控制器判断其自身的选举状态是否是未激活状态,如果是则进入步骤(1-3),否则过程结束;
(1-3)该控制器将其选举状态设置为决策状态,向与故障控制器相邻的另一台控制器发送参与竞争主节点的信息,即选票,并接收来自于与故障控制器相邻的另一台控制器的选票;
(1-4)该控制器判断来自于与故障控制器相邻的另一台控制器的选票对应的逻辑时钟是否与其自身的逻辑时钟相同,如果不相同则进入步骤(1-5),如果相同则转入步骤(1-7);
(1-5)该控制器判断来自于与故障控制器相邻的另一台控制器的选票对应的逻辑时钟是否大于其自身的逻辑时钟,如果是则进入步骤(1-6),否则过程结束;
(1-6)该控制器将其自身的逻辑时钟设置为来自与故障控制器相邻的另一台控制器的选票对应的逻辑时钟;
(1-7)该控制器判断来自于与故障控制器相邻的另一台控制器的选票中的事务序号字段中的值是否大于该控制器向与故障控制器相邻的另一台控制器发送的选票中的对应值,如果是则进入步骤(1-9),否则进入步骤(1-8);
(1-8)该控制器判断来自于与故障控制器相邻的另一台控制器的选票中的剩余负载字段中的值是否大于该控制器向与故障控制器相邻的另一台控制器发送的选票中的对应值,将该控制器向与故障控制器相邻的另一台控制器发送的选票作为当前选票,如果是则进入步骤(1-9),否则进入步骤(1-10);
(1-9)该控制器将其自身向与故障控制器相邻的另一台控制器发送的选票替换为来自于与故障控制器相邻的另一台控制器的选票,将替换后的选票作为当前选票;
(1-10)该控制器将其自身的逻辑时钟增加一次,并且向与故障控制器相邻的另一台控制器发送当前选票,并统计当前时刻从与故障控制器相邻的所有控制器接收到的所有选票、以及当前时刻其自身发送给与故障控制器相邻的所有控制器的选票的总数量、以及每张选票中的控制器标识;
(1-11)该控制器统计具有相同控制器标识的选票的数量,从中选择选票数量最大值,并判断该选票数量最大值是否超过步骤(1-10)中统计的选票总数量的一半,如果是则进入步骤(1-12),否则返回步骤(1-3);
(1-12)该控制器判断该选票数量最大值所对应的选票中的控制器标识是否是其自身的标识,如果是则将其自身设置为主节点,否则将其自身设置为跟随节点;
(2)主节点根据SDN网络的拓扑结构、各个跟随节点的负载情况、以及故障控制器与其进行同步期间发送的消息获得故障控制器所管理的所有交换机对应的最终迁入控制器,再由跟随节点根据得到的所有交换机对应的最终迁入控制器执行交换机的迁入过程;步骤(2)包括以下子步骤:
(2-1)主节点根据故障控制器与其进行同步期间发送的消息对该故障控制器对应的交换机进行降序排序;
(2-2)设置计数器i=1;
(2-3)主节点根据降序排序的结果判断故障控制器的第i个交换机迁入一个跟随节点时,会不会使该跟随节点发生超载,如果不会,则将该跟随节点加入候选迁入控制器集合中,如果会,则针对其余跟随节点重复本步骤的过程,直到遍历完毕所有跟随节点为止,从而得到最终的候选迁入控制器集合;
(2-4)主节点从最终的候选迁入控制器集合中找出与第i个交换机传输距离最短的控制器,将该控制器作为第i个交换机的最终迁入控制器;
(2-5)设置i=i+1,并重复上述步骤(2-3),直至故障控制器对应的所有交换机均被处理完毕为止,从而得到故障控制器对应的所有交换机对应的最终迁入控制器;
(2-6)主节点将步骤(2-5)得到的所有交换机对应的最终迁入控制器下发到所有跟随节点;
(2-7)跟随节点根据主节点发送的所有交换机对应的最终迁入控制器对故障节点的所有交换机执行迁入过程,在迁入过程完成后将其自身的选举状态修改为未激活状态,并将迁入过程完毕通知发送到主节点;
(2-8)主节点在接收到来自所有跟随节点的迁入过程完毕通知后将其自身的选举状态修改为未激活状态。
2.根据权利要求1所述的多控制器动态部署方法,其特征在于,逻辑时钟用于表示选票轮次,其代表选票的实时性,每进行一次广播选票,则该值递增一次。
3.根据权利要求2所述的多控制器动态部署方法,其特征在于,控制器标识表示的是选票中被选举的控制器的序号。
4.根据权利要求3所述的多控制器动态部署方法,其特征在于,主节点间隔一段时间与其相邻的所有控制器进行同步操作,同步操作期间,每个控制器会发送消息到主节点,该消息中包括有每个控制器对应的所有交换机向该控制器发送的数据包进入消息数量、以及每个控制器的当前负载。
5.一种基于SDN的多控制器动态部署系统,其特征在于,包括:
第一模块,用于使用Paxos算法从与SDN网络中故障控制器相邻的多个控制器中选择一个控制器作为主节点;第一模块包括:
第一子模块,用于与SDN网络中故障控制器相邻的控制器判断其自身是否存在超载情况,若是则过程结束,否则进入第二子模块;
第二子模块,用于该控制器判断其自身的选举状态是否是未激活状态,如果是则进入第三子模块,否则过程结束;
第三子模块,用于该控制器将其选举状态设置为决策状态,向与故障控制器相邻的另一台控制器发送参与竞争主节点的信息,即选票,并接收来自于与故障控制器相邻的另一台控制器的选票;
第四子模块,用于该控制器判断来自于与故障控制器相邻的另一台控制器的选票对应的逻辑时钟是否与其自身的逻辑时钟相同,如果不相同则进入第五子模块,如果相同则转入第七子模块;
第五子模块,用于该控制器判断来自于与故障控制器相邻的另一台控制器的选票对应的逻辑时钟是否大于其自身的逻辑时钟,如果是则进入第六子模块,否则过程结束;
第六子模块,用于该控制器将其自身的逻辑时钟设置为来自与故障控制器相邻的另一台控制器的选票对应的逻辑时钟;
第七子模块,用于该控制器判断来自于与故障控制器相邻的另一台控制器的选票中的事务序号字段中的值是否大于该控制器向与故障控制器相邻的另一台控制器发送的选票中的对应值,如果是则进入第九子模块,否则进入第八子模块;
第八子模块,用于该控制器判断来自于与故障控制器相邻的另一台控制器的选票中的剩余负载字段中的值是否大于该控制器向与故障控制器相邻的另一台控制器发送的选票中的对应值,将该控制器向与故障控制器相邻的另一台控制器发送的选票作为当前选票,如果是则进入第九子模块,否则进入第十子模块;
第九子模块,用于该控制器将其自身向与故障控制器相邻的另一台控制器发送的选票替换为来自于与故障控制器相邻的另一台控制器的选票,将替换后的选票作为当前选票;
第十子模块,用于该控制器将其自身的逻辑时钟增加一次,并且向与故障控制器相邻的另一台控制器发送当前选票,并统计当前时刻从与故障控制器相邻的所有控制器接收到的所有选票、以及当前时刻其自身发送给与故障控制器相邻的所有控制器的选票的总数量、以及每张选票中的控制器标识;
第十一子模块,用于该控制器统计具有相同控制器标识的选票的数量,从中选择选票数量最大值,并判断该选票数量最大值是否超过第十子模块中统计的选票总数量的一半,如果是则进入第十二子模块,否则返回第三子模块;
第十二子模块,用于该控制器判断该选票数量最大值所对应的选票中的控制器标识是否是其自身的标识,如果是则将其自身设置为主节点,否则将其自身设置为跟随节点;
第二模块,用于主节点根据SDN网络的拓扑结构、各个跟随节点的负载情况、以及故障控制器与其进行同步期间发送的消息获得故障控制器所管理的所有交换机对应的最终迁入控制器,再由跟随节点根据得到的所有交换机对应的最终迁入控制器执行交换机的迁入过程;第二模块包括:
第十三子模块,用于主节点根据故障控制器与其进行同步期间发送的消息对该故障控制器对应的交换机进行降序排序;
第十四子模块,用于设置计数器i=1;
第十五子模块,用于主节点根据降序排序的结果判断故障控制器的第i个交换机迁入一个跟随节点时,会不会使该跟随节点发生超载,如果不会,则将该跟随节点加入候选迁入控制器集合中,如果会,则针对其余跟随节点重复本子模块的过程,直到遍历完毕所有跟随节点为止,从而得到最终的候选迁入控制器集合;
第十六子模块,用于主节点从最终的候选迁入控制器集合中找出与第i个交换机传输距离最短的控制器,将该控制器作为第i个交换机的最终迁入控制器;
第十七子模块,用于设置i=i+1,并重复上述第十五子模块,直至故障控制器对应的所有交换机均被处理完毕为止,从而得到故障控制器对应的所有交换机对应的最终迁入控制器;
第十八子模块,用于主节点将第十七子模块得到的所有交换机对应的最终迁入控制器下发到所有跟随节点;
第十九子模块,用于跟随节点根据主节点发送的所有交换机对应的最终迁入控制器对故障节点的所有交换机执行迁入过程,在迁入过程完成后将其自身的选举状态修改为未激活状态,并将迁入过程完毕通知发送到主节点;
第二十子模块,用于主节点在接收到来自所有跟随节点的迁入过程完毕通知后将其自身的选举状态修改为未激活状态。
CN201810407261.3A 2018-05-02 2018-05-02 一种基于sdn的多控制器动态部署方法和系统 Active CN108768698B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810407261.3A CN108768698B (zh) 2018-05-02 2018-05-02 一种基于sdn的多控制器动态部署方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810407261.3A CN108768698B (zh) 2018-05-02 2018-05-02 一种基于sdn的多控制器动态部署方法和系统

Publications (2)

Publication Number Publication Date
CN108768698A CN108768698A (zh) 2018-11-06
CN108768698B true CN108768698B (zh) 2021-04-20

Family

ID=64008955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810407261.3A Active CN108768698B (zh) 2018-05-02 2018-05-02 一种基于sdn的多控制器动态部署方法和系统

Country Status (1)

Country Link
CN (1) CN108768698B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109324565B (zh) * 2018-12-05 2024-10-11 北京中航油工程建设有限公司 油料储罐区智能控制方法、存储介质、电子设备和系统
CN109905275A (zh) * 2019-01-28 2019-06-18 华南理工大学 一种基于sdn分层架构的控制平面故障检测与处理方法
CN110034955B (zh) * 2019-03-26 2022-03-22 重庆邮电大学 一种考虑多种交换机迁移指标的目标控制器选取方法
CN110177011B (zh) * 2019-05-08 2021-10-22 武汉理工大学 一种适应动态网络结构的网络控制器部署方法
CN114374427A (zh) * 2022-01-19 2022-04-19 苏州全时空信息技术有限公司 软件定义的中低轨卫星网络中控制器动态部署方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685250A (zh) * 2013-12-04 2014-03-26 蓝盾信息安全技术股份有限公司 一种基于sdn的虚拟机安全策略迁移的系统及方法
CN104301243A (zh) * 2014-09-22 2015-01-21 华为技术有限公司 一种负载控制方法和装置
CN106572170A (zh) * 2016-10-28 2017-04-19 中国电子科技集团公司第五十四研究所 一种控制器及sdn分层多控制器下的动态负载均衡方法
CN106936931A (zh) * 2017-04-26 2017-07-07 华为技术有限公司 分布式锁的实现方法、相关设备及系统
CN107276662A (zh) * 2017-07-27 2017-10-20 大连大学 一种软件定义空间信息网络多控制器动态部署方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685250A (zh) * 2013-12-04 2014-03-26 蓝盾信息安全技术股份有限公司 一种基于sdn的虚拟机安全策略迁移的系统及方法
CN104301243A (zh) * 2014-09-22 2015-01-21 华为技术有限公司 一种负载控制方法和装置
CN106572170A (zh) * 2016-10-28 2017-04-19 中国电子科技集团公司第五十四研究所 一种控制器及sdn分层多控制器下的动态负载均衡方法
CN106936931A (zh) * 2017-04-26 2017-07-07 华为技术有限公司 分布式锁的实现方法、相关设备及系统
CN107276662A (zh) * 2017-07-27 2017-10-20 大连大学 一种软件定义空间信息网络多控制器动态部署方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Fast Consensus Algorithm for Multiple Controllers;Chia-Chen Ho等;《IEEE》;20160303;第Ⅲ节 *
A Hierarchical K-means Algorithm for Controller Placement in SDN-based WAN;Hailan kuang等;《IEEE》;20180416;全文 *

Also Published As

Publication number Publication date
CN108768698A (zh) 2018-11-06

Similar Documents

Publication Publication Date Title
CN108768698B (zh) 一种基于sdn的多控制器动态部署方法和系统
Liang et al. Scalable and crash-tolerant load balancing based on switch migration for multiple open flow controllers
CN103179046B (zh) 基于openflow的数据中心流量控制方法及系统
CN103812949B (zh) 一种面向实时云平台的任务调度与资源分配方法及系统
CN108306777B (zh) 基于sdn控制器的虚拟网关主备切换方法及装置
AU2014414703A1 (en) Data forwarding method, device and system in software-defined networking
CN104753828A (zh) 一种sdn控制器、数据中心系统和路由连接方法
CN1949767A (zh) 一种基于虚拟路由器冗余协议的主备路由设备切换方法
CN105516292A (zh) 一种智能变电站云平台的热备方法
CN108337179B (zh) 链路流量控制方法及装置
CN107317707B (zh) 一种基于点覆盖集的sdn网络拓扑管理方法
CN104468231A (zh) Sdn交换机和控制器动态注册方法
CN113645146B (zh) 基于新流密度的软件定义网络控制器负载均衡方法及系统
TW201703473A (zh) 混合型網路生成樹建立方法、備援方法與其控制系統
CN112491700A (zh) 网络路径调整方法、系统、装置、电子设备及存储介质
CN102811152B (zh) 一种多主总线网络通讯实时交易数据交换实现方法
CN104639415A (zh) 一种虚拟机的迁移方法和软件定义网络sdn控制器
CN105704054A (zh) 数据中心网络流量迁移方法及其系统
CN105119820A (zh) 路由协议多实例并行执行系统及其并行执行方法
CN104639437A (zh) 堆叠系统中广播报文的转发方法及装置
CN107018018A (zh) 一种基于sdn的服务器增量在线升级方法及系统
CN108965013A (zh) Ip和光网络业务快速开通系统及方法
CN104518995B (zh) 基于分布式架构的交换机虚拟化系统
CN105207856A (zh) 一种基于sdn虚拟交换机的负载均衡的系统及方法
US11522762B2 (en) Coordination device and method for providing control applications via a communication network for transmitting time-critical data

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240623

Address after: Room 1001, Comprehensive Building, Futian Xingye Building, No. 377 Jinma Road, Furong North Road Street, Kaifu District, Changsha City, Hunan Province, 410000

Patentee after: Hunan Zhongkan Beidou Research Institute Co.,Ltd.

Country or region after: China

Address before: 410003 science and Technology Office of Changsha University, 98 Hongshan Road, Kaifu District, Changsha City, Hunan Province

Patentee before: CHANGSHA University

Country or region before: China

TR01 Transfer of patent right