[go: up one dir, main page]

CN104094565A - Controller, method for distributing load, non-transitory computer-readable medium storing program, computer system and control device - Google Patents

Controller, method for distributing load, non-transitory computer-readable medium storing program, computer system and control device Download PDF

Info

Publication number
CN104094565A
CN104094565A CN201280068918.9A CN201280068918A CN104094565A CN 104094565 A CN104094565 A CN 104094565A CN 201280068918 A CN201280068918 A CN 201280068918A CN 104094565 A CN104094565 A CN 104094565A
Authority
CN
China
Prior art keywords
controller
switch
load
load control
control
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.)
Granted
Application number
CN201280068918.9A
Other languages
Chinese (zh)
Other versions
CN104094565B (en
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of CN104094565A publication Critical patent/CN104094565A/en
Application granted granted Critical
Publication of CN104094565B publication Critical patent/CN104094565B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • H04L41/083Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
    • 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/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0886Fully automatic configuration
    • 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/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • 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
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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/19Flow control; Congestion control at layers above the network layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A plurality of controllers (1) are positioned in an open-flow network. Each of the controllers (1) is provided with a load management table (153) and a load control unit (14). The load management tables (153) manage, for each of the switches (2) saved in the open-flow network, the number of messages transmitted during each prescribed interval of time to the controllers (1) for managing the switches (2), and/or the number of packages received during each prescribed interval of time by the switches (2). When a prescribed event occurs, the load control units (14) detect the controllers (1) for which the processing load is at or above a first threshold, on the basis of the load management tables (153), and switches at least one switch (2) being managed by a detected controller (1) to management by a different controller (1).

Description

控制器、用于分配负载的方法、存储程序的非瞬时计算机可读介质、计算机系统和控制设备Controller, method for distributing load, non-transitory computer-readable medium storing program, computer system and control device

技术领域technical field

本发明涉及控制器、分配负载方法、存储程序的非瞬时计算机可读介质、计算机系统和控制设备。特别地,本发明涉及与开放流(OpenFlow)网络有关的控制器、分配负载方法、存储程序的非瞬时计算机可读介质、计算机系统和控制设备。The present invention relates to a controller, a load distribution method, a non-transitory computer-readable medium storing a program, a computer system, and a control device. In particular, the present invention relates to a controller, a load distribution method, a non-transitory computer-readable medium storing a program, a computer system, and a control device related to an OpenFlow (OpenFlow) network.

背景技术Background technique

开放流网络是将由介质访问控制(MAC)地址、IP地址和端口号的组合确定的一系列通信定义为“流”并且对每一流执行路径控制的网络控制技术。开放流网络包括用于计算分组的路径的控制器(OFC:OpenFlow控制器)、用于转发分组的交换机(OFS:OpenFlow交换机)以及连接到交换机的终端。The OpenFlow network is a network control technology that defines a series of communications determined by a combination of a Media Access Control (MAC) address, IP address, and port number as a "flow" and performs path control for each flow. The OpenFlow network includes a controller (OFC: OpenFlow Controller) for calculating a path of a packet, a switch (OFS: OpenFlow Switch) for forwarding a packet, and terminals connected to the switch.

每一交换机包括对每一流,描述分组转发路径、分组转发方法等等的流表。控制器在交换机的流表条目中设定分组转发规则。每一交换机根据在流表中设定的转发规则转发分组。Each switch includes, for each flow, a flow table describing a packet forwarding path, a packet forwarding method, and the like. The controller sets packet forwarding rules in the flow table entries of the switch. Each switch forwards packets according to the forwarding rules set in the flow table.

经由称为安全信道的安全套接层/传输层安全(SSL/TLS)或传输控制协议(TCP),连接控制器和交换机。经由安全信道传输或接收开放流协议消息。The controller and switch are connected via Secure Sockets Layer/Transport Layer Security (SSL/TLS) or Transmission Control Protocol (TCP) called a secure channel. OpenFlow protocol messages are transmitted or received via a secure channel.

当交换机从终端接收分组时,交换机参考流表的报头字段(报头字段属性)并且搜索具有与该分组的报头信息匹配的报头字段的条目。如果这种条目存在,交换机更新该条目的统计信息(“计数器”属性)并且执行指定处理(“动作”属性)。如果这种条目不存在,交换机将该分组传输到控制器(packet-in消息)。When a switch receives a packet from a terminal, the switch refers to a header field (header field attribute) of the flow table and searches for an entry having a header field matching header information of the packet. If such an entry exists, the switch updates the statistics for that entry ("Counter" attribute) and performs specified processing ("Action" attribute). If no such entry exists, the switch transmits the packet to the controller (packet-in message).

控制器接收packet-in消息并且计算该分组的路径。然后,根据所计算的路径(flow-mod消息),控制器将对应于该分组的条目添加到交换机的流表中。然后,控制器将该分组传输到交换机(packet-out消息)。The controller receives the packet-in message and calculates the path of the packet. Then, according to the calculated path (flow-mod message), the controller adds an entry corresponding to the packet to the switch's flow table. The controller then transmits the packet to the switch (packet-out message).

如果在开放流网络中,更多终端连接到交换机,交换机将更多packet-in消息传输到控制器。在这种情况下,单一控制器可能不能够处理该消息。为此,最好在开放流网络中安装多个控制器,以便分发控制器从交换机接收的消息。If in an OpenFlow network, more endpoints are connected to the switch, the switch transmits more packet-in messages to the controller. In this case, a single controller may not be able to process the message. For this purpose, it is better to install multiple controllers in an OpenFlow network in order to distribute the messages received by the controllers from the switches.

在开放流网络中安装多个控制器中,每一控制器被分派由该控制器控制的交换机。因此,每一控制器将消息仅传输到由此控制的交换机或仅从其接收消息。因此,可以分发控制器从交换机接收的消息。In installing multiple controllers in an OpenFlow network, each controller is assigned a switch controlled by that controller. Thus, each controller only transmits messages to or receives messages from the switches controlled by it. Thus, messages received by the controller from the switches can be distributed.

假定多个控制器安装在开放流网络中,当在每一交换机的流表中设定转发规则时,每一控制器要求如下所述的路径信息和拓扑信息。为此,控制器使这些信息集相互同步。Assuming that a plurality of controllers are installed in an OpenFlow network, each controller requires path information and topology information as described below when setting forwarding rules in the flow table of each switch. To this end, the controller synchronizes these sets of information with each other.

(1)路径信息(1) Path information

路径信息是指示开放流网络中的最短路径的信息。每一控制器由拓扑信息计算路径信息。The path information is information indicating the shortest path in the OpenFlow network. Each controller calculates path information from topology information.

(2)拓扑信息(2) Topology information

拓扑信息是有关开放流网络中的交换机的连接的信息。每一控制器通过将链路层发现协议(LLDP)的查询分组等等定期地传输到交换机,获得有关由该控制器控制的每一交换机的拓扑信息Topology information is information about connections of switches in an OpenFlow network. Each controller obtains topology information about each switch controlled by the controller by periodically transmitting Link Layer Discovery Protocol (LLDP) query packets, etc., to the switches

引用清单reference list

专利文献patent documents

[专利文献1]日本未审专利申请公开No.2011-166692[Patent Document 1] Japanese Unexamined Patent Application Publication No. 2011-166692

非专利文献non-patent literature

[非专利文献1]OpenFlow Switch Specification Version 1.1.0Implemented(Wire Protocol 0x02)2011年2月28日,[2012年1月16日检索的],网络[Non-Patent Document 1] OpenFlow Switch Specification Version 1.1.0Implemented (Wire Protocol 0x02) February 28, 2011, [retrieved on January 16, 2012], Internet

<URL:http:<URL: http:

//www.openflow.org/documents/openflow-spec-v1.1.0.pdf>//www.openflow.org/documents/openflow-spec-v1.1.0.pdf>

发明内容Contents of the invention

技术问题technical problem

如上所述,可以在开放流网络中安装多个控制器,并且由此分配控制器的负载。然而,将近似相同数目的交换机简单分派给每一控制器不允许均衡控制器的负载。对此,存在下述原因(1)和(2)。As described above, it is possible to install multiple controllers in an OpenFlow network and thereby distribute the load of the controllers. However, simply assigning approximately the same number of switches to each controller does not allow for load balancing of the controllers. For this, there are the following reasons (1) and (2).

(1)交换机的使用状态(1) The use status of the switch

由控制器控制的交换机传输到该控制器的消息的数目在交换机间改变。消息的数目还随时区改变。The number of messages that a switch controlled by a controller transmits to the controller varies from switch to switch. The number of messages also varies with time zone.

(2)网络配置(拓扑)的更新(2) Update of network configuration (topology)

由控制器控制的交换机传输到该控制器的消息的数目随由交换机之间的连接故障、交换机的添加或删除等等引起的拓扑配置的变化而改变。The number of messages transmitted to the controller by the switches controlled by the controller varies with changes in topology configuration caused by connection failures between switches, addition or deletion of switches, and the like.

鉴于上述问题,做出了本发明,并且其主要目的是在包括多个控制器的开放流网络中提供一种能均衡控制器的负载的控制器、分配负载方法、存储程序的非瞬时计算机可读介质、计算机系统和控制设备。In view of the above-mentioned problems, the present invention has been made, and its main purpose is to provide a controller capable of balancing the load of the controllers, a method of distributing loads, and a non-transient computer program stored program in an OpenFlow network including a plurality of controllers. Read media, computer systems and control equipment.

技术方案Technical solutions

根据本发明的方面,一种用于控制开放流网络中的多个交换机中的一些的控制器,该控制器包括:According to an aspect of the invention, a controller for controlling some of a plurality of switches in an OpenFlow network, the controller includes:

负载控制表,该负载控制表被配置成控制控制下述中的至少一个:开放流网络中的交换机中的每一个在预定时间中已经向控制交换机的控制器传输的消息的数目、以及交换机在预定时间段中已经接收到的分组的数目;以及a load control table configured to control at least one of the following: the number of messages each of the switches in the OpenFlow network has transmitted to the controller controlling the switch within a predetermined time, and the the number of packets that have been received in the predetermined time period; and

负载控制装置,该负载控制装置被配置成当预定事件发生时,基于负载控制表来检测处理负载应当被分配的控制器,并且使由所检测到的控制器所控制的交换机中的至少一个处于另一控制器的控制下。load control means configured to, when a predetermined event occurs, detect a controller to which a processing load should be allocated based on a load control table, and cause at least one of the switches controlled by the detected controller to be at under the control of another controller.

根据本发明的方面,一种用于分配控制器的负载的方法,控制器控制开放流网络中的多个交换机中的一些,方法包括:According to an aspect of the invention, a method for distributing the load of a controller controlling some of a plurality of switches in an OpenFlow network, the method comprising:

控制步骤,该控制步骤控制负载控制表,该负载控制表包括下述中的至少一个:开放流网络中的交换机中的每一个在预定时间中已经向控制交换机的控制器传输的消息的数目、以及交换机在预定时间段中已经接收到的分组的数目;以及a control step of controlling a load control table including at least one of the following: the number of messages each of the switches in the OpenFlow network has transmitted to a controller controlling the switch within a predetermined time, and the number of packets the switch has received within a predetermined period of time; and

负载控制步骤,当预定事件发生时,基于负载控制表来检测处理负载应当被分配的控制器,并且使由所检测到的控制器所控制的交换机中的至少一个处于另一控制器的控制下。A load control step of, when a predetermined event occurs, detecting a controller to which the processing load should be allocated based on the load control table, and bringing at least one of the switches controlled by the detected controller under the control of another controller .

根据本发明的方面,一种存储程序的非瞬时计算机可读介质,该程序使得计算机执行用于分配控制器的负载的方法,该控制器控制开放流网络中的多个交换机中的一些,方该法包括:According to an aspect of the present invention, a non-transitory computer-readable medium storing a program causing a computer to execute a method for distributing a load of a controller controlling some of a plurality of switches in an OpenFlow network, the method The law includes:

控制步骤,该控制步骤控制负载控制表,该负载控制表包括下述中的至少一个:开放流网络中的交换机中的每一个在预定时间中已经向控制交换机的控制器传输的消息的数目、以及交换机在预定时间段中已经接收到的分组的数目;以及a control step of controlling a load control table including at least one of the following: the number of messages each of the switches in the OpenFlow network has transmitted to a controller controlling the switch within a predetermined time, and the number of packets the switch has received within a predetermined period of time; and

负载控制步骤,当预定事件发生时,基于负载控制表来检测处理负载应当被分配的控制器,并且使由所检测到的控制器所控制的交换机中的至少一个处于另一控制器的控制下。A load control step of, when a predetermined event occurs, detecting a controller to which the processing load should be allocated based on the load control table, and bringing at least one of the switches controlled by the detected controller under the control of another controller .

根据本发明的方面,一种计算机系统,包括:According to an aspect of the present invention, a computer system includes:

多个交换机,每一交换机被配置成根据流表,在开放流网络中转发分组;以及a plurality of switches, each switch configured to forward packets in the OpenFlow network according to the flow table; and

多个控制器,每一控制器被配置成控制交换机中的一些,a plurality of controllers, each controller configured to control some of the switches,

其中,该控制器的每一个包括:Each of these controllers includes:

负载控制表,该负载控制表被配置成控制控制下述中的至少一个:开放流网络中的交换机中的每一个在预定时间中已经向控制交换机的控制器传输的消息的数目、以及交换机在预定时间段中已经接收到的分组的数目;以及a load control table configured to control at least one of the following: the number of messages each of the switches in the OpenFlow network has transmitted to the controller controlling the switch within a predetermined time, and the the number of packets that have been received in the predetermined time period; and

负载控制装置,该负载控制装置被配置成当预定事件发生时,基于负载控制表来检测处理负载应当被分配的控制器,并且使由所检测到的控制器所控制的交换机中的至少一个处于另一控制器的控制下。load control means configured to, when a predetermined event occurs, detect a controller to which a processing load should be allocated based on a load control table, and cause at least one of the switches controlled by the detected controller to be at under the control of another controller.

根据本发明的方面,一种控制用于分配多个控制器的负载的设备,该控制器控制开放流网络中的交换机,该控制设备包括:According to an aspect of the present invention, an apparatus for controlling a load for distributing a plurality of controllers, the controllers controlling switches in an OpenFlow network, the controlling apparatus comprising:

负载控制表,该负载控制表被配置成控制控制下述中的至少一个:开放流网络中的交换机中的每一个在预定时间中已经向控制交换机的控制器传输的消息的数目、以及交换机在预定时间段中已经接收到的分组的数目;以及a load control table configured to control at least one of the following: the number of messages each of the switches in the OpenFlow network has transmitted to the controller controlling the switch within a predetermined time, and the the number of packets that have been received in the predetermined time period; and

负载控制装置,该负载控制装置被配置成当预定事件发生时,基于负载控制表来检测处理负载应当被分配的控制器,并且使由所检测到的控制器所控制的交换机中的至少一个处于另一控制器的控制下。load control means configured to, when a predetermined event occurs, detect a controller to which a processing load should be allocated based on a load control table, and cause at least one of the switches controlled by the detected controller to be at under the control of another controller.

有益效果Beneficial effect

根据本发明,可以在包括多个控制器的开放流网络中提供一种能均衡控制器的负载的控制器、负载分配方法、存储程序的非瞬时计算机可读介质、计算机系统和控制设备。According to the present invention, a controller capable of balancing loads of controllers, a load distribution method, a non-transitory computer-readable medium storing a program, a computer system, and a control device can be provided in an OpenFlow network including a plurality of controllers.

附图说明Description of drawings

图1是示出根据第一实施例的开放流网络的结构的框图;FIG. 1 is a block diagram showing the structure of an OpenFlow network according to a first embodiment;

图2是示出根据第一实施例的控制器的结构的框图;2 is a block diagram showing the structure of the controller according to the first embodiment;

图3是示出根据第一实施例的负载控制表的结构的原理图;FIG. 3 is a schematic diagram showing the structure of a load control table according to the first embodiment;

图4是示出根据第一实施例的交换机的结构的框图;FIG. 4 is a block diagram showing the structure of the switch according to the first embodiment;

图5是示出根据第一实施例的控制器的控制操作的流程图;FIG. 5 is a flowchart showing a control operation of the controller according to the first embodiment;

图6是示出由根据第一实施例的控制器执行的负载信息更新处理的流程图;6 is a flowchart showing load information update processing performed by the controller according to the first embodiment;

图7是示出由根据第一实施例的控制器执行的负载分配处理的流程图;7 is a flowchart showing load distribution processing performed by the controller according to the first embodiment;

图8是示出将交换机添加到根据第一实施例的开放流网络的处理的流程图;8 is a flowchart showing a process of adding a switch to the OpenFlow network according to the first embodiment;

图9是示出由根据第一实施例的交换机执行的控制器信息获得处理的流程图;9 is a flowchart showing controller information obtaining processing performed by the switch according to the first embodiment;

图10是示出从根据第一实施例的开放流网络删除交换机的处理的流程图;FIG. 10 is a flowchart showing a process of deleting a switch from the OpenFlow network according to the first embodiment;

图11是示出根据第一实施例的开放流网络的结构的框图;11 is a block diagram showing the structure of the OpenFlow network according to the first embodiment;

图12示出根据第一实施例的负载控制表的示例结构;FIG. 12 shows an example structure of a load control table according to the first embodiment;

图13示出根据第一实施例的负载控制表的示例结构;FIG. 13 shows an example structure of a load control table according to the first embodiment;

图14是示出根据第一实施例的开放流网络的结构的框图;14 is a block diagram showing the structure of the OpenFlow network according to the first embodiment;

图15是示出根据第一实施例的控制器的硬件结构的框图;以及Fig. 15 is a block diagram showing the hardware structure of the controller according to the first embodiment; and

图16是示出根据本发明的开放流网络的结构的框图。FIG. 16 is a block diagram showing the structure of an OpenFlow network according to the present invention.

具体实施方式Detailed ways

第一实施例first embodiment

现在,将参考附图,描述本发明的实施例。首先,将概述根据本实施例的开放流网络。图1是示出根据本实施例的开放流网络的结构的框图。Embodiments of the present invention will now be described with reference to the accompanying drawings. First, an OpenFlow network according to the present embodiment will be outlined. FIG. 1 is a block diagram showing the structure of an OpenFlow network according to the present embodiment.

开放流网络包括多个控制器1(1-1,1-2)、多个交换机2(2-1至2-4)和多个终端(3-1至3-8)。控制器1-1控制交换机2-1和2-2。具体地,它控制这些交换机的流表等等。类似地,控制器1-2控制交换机2-3和2-4。具体地,它控制这些交换机的流表等等。当然,控制器1-1和1-2能控制任意多个交换机。在下文中,控制器1-1和1-2将简称为“控制器1”,除非需要相互区分这些控制器。The OpenFlow network includes a plurality of controllers 1 (1-1, 1-2), a plurality of switches 2 (2-1 to 2-4), and a plurality of terminals (3-1 to 3-8). The controller 1-1 controls the switches 2-1 and 2-2. Specifically, it controls the flow tables of these switches and so on. Similarly, controller 1-2 controls switches 2-3 and 2-4. Specifically, it controls the flow tables of these switches and so on. Of course, the controllers 1-1 and 1-2 can control any number of exchanges. Hereinafter, the controllers 1-1 and 1-2 will be simply referred to as "controller 1" unless it is necessary to distinguish these controllers from each other.

交换机2-1包括流表。交换机2-1是从终端3-1和3-2或另一交换机2-2接收分组,以及根据流表转发所接收的分组的设备。当然,交换机2-1能从任意多个终端接收分组。交换机2-2至2-4的结构与交换机2-1类似。在下文中,交换机2-1至2-4将称为“交换机2”,除非需要相互区分这些交换机。The switch 2-1 includes a flow table. The switch 2-1 is a device that receives packets from the terminals 3-1 and 3-2 or another switch 2-2, and forwards the received packets according to the flow table. Of course, the switch 2-1 can receive packets from any number of terminals. The switches 2-2 to 2-4 are similar in structure to the switch 2-1. Hereinafter, the switches 2-1 to 2-4 will be referred to as "switch 2" unless it is necessary to distinguish these switches from each other.

终端3-1传输或接收分组。终端3-1是例如通用个人计算机、移动电话等等。同样适用于终端3-2至3-7。在下文中,终端3-1至3-8将称为“终端3”,除非需要相互区分这些终端。Terminal 3-1 transmits or receives packets. The terminal 3-1 is, for example, a general-purpose personal computer, a mobile phone, or the like. The same applies to terminals 3-2 to 3-7. Hereinafter, the terminals 3-1 to 3-8 will be referred to as "terminal 3" unless it is necessary to distinguish these terminals from each other.

接着,参考图2,将描述控制器1的内部结构和操作。图2是示出控制器1的内部结构的框图。控制器1包括消息控制单元11、路径控制单元12、拓扑更新单元13、负载控制单元14和网络信息存储单元15。控制器1只需要是包括中央处理单元(CPU)等等的计算机。Next, referring to FIG. 2, the internal structure and operation of the controller 1 will be described. FIG. 2 is a block diagram showing the internal structure of the controller 1 . The controller 1 includes a message control unit 11 , a path control unit 12 , a topology update unit 13 , a load control unit 14 and a network information storage unit 15 . The controller 1 only needs to be a computer including a central processing unit (CPU) and the like.

网络信息存储单元15存储路径信息151、拓扑信息152和负载控制表153。路径信息151包括所谓的“流信息”,指示每一交换机2如何传输分组。拓扑信息152指示开放流网络的结构。负载控制表153是保存用于掌握每一控制器1的负载的状态的信息的表。稍后将参考图3描述负载控制表153。The network information storage unit 15 stores path information 151 , topology information 152 and a load control table 153 . Path information 151 includes so-called "flow information" indicating how each switch 2 transmits packets. Topology information 152 indicates the structure of the OpenFlow network. The load control table 153 is a table storing information for grasping the state of the load of each controller 1 . The load control table 153 will be described later with reference to FIG. 3 .

在所有控制器1之间,同步网络信息存储单元15中的信息集(控制器1相互告知信息集的任何变化)。即,当更新一个控制器1的网络信息存储单元15中的任何信息时,同样地更新另一控制器1的每一个的网络信息存储单元15中的相应信息。Between all controllers 1, the information sets in the network information storage unit 15 are synchronized (the controllers 1 inform each other of any changes in the information sets). That is, when any information in the network information storage unit 15 of one controller 1 is updated, corresponding information in each of the network information storage units 15 of the other controller 1 is similarly updated.

消息控制单元11是与由控制器1控制的交换机2传输或接收由开放流网络协议定义的各种类型消息的处理单元。基于所接收的消息,消息控制单元11指示处理单元(路径控制单元12、拓扑更新单元13、负载控制单元14)执行处理。The message control unit 11 is a processing unit that transmits or receives various types of messages defined by the OpenFlow network protocol with the switch 2 controlled by the controller 1 . Based on the received message, the message control unit 11 instructs the processing units (path control unit 12, topology update unit 13, load control unit 14) to perform processing.

路径控制单元12通过消息控制单元11,从交换机2接收packet-in消息。然后,路径控制单元12参考拓扑信息152并且根据packet-in消息计算路径。然后,路径控制单元12根据所计算的路径,更新路径信息151。The path control unit 12 receives the packet-in message from the switch 2 through the message control unit 11 . Then, the path control unit 12 refers to the topology information 152 and calculates a path from the packet-in message. Then, the route control unit 12 updates the route information 151 according to the calculated route.

拓扑更新单元13通过将查询分组传输到交换机2,获得有关由控制器1控制的交换机2的每一个的连接的信息。然后,拓扑更新单元13根据所获得的连接信息,更新拓扑信息152。The topology updating unit 13 obtains information on the connection of each of the switches 2 controlled by the controller 1 by transmitting an inquiry packet to the switches 2 . Then, the topology updating unit 13 updates the topology information 152 according to the obtained connection information.

负载控制单元14参考并更新负载控制表153中的负载信息。当预定事件(预定时间度过、添加或删除交换机2等等)发生时,负载控制单元14计算每一控制器1的处理负载并且检测具有高处理负载的控制器1。然后,负载控制单元14确定是否应当分配所检测的控制器1的处理负载。如果确定应当分配处理负载,负载控制单元14将由所检测的控制器1控制的交换机2的一些置于具有低处理负载的控制器1的控制下。稍后将参考图6和7,描述处理负载分配处理的详情。The load control unit 14 refers to and updates the load information in the load control table 153 . When a predetermined event (passage of a predetermined time, addition or deletion of a switch 2, etc.) occurs, the load control unit 14 calculates the processing load of each controller 1 and detects a controller 1 with a high processing load. Then, the load control unit 14 determines whether the detected processing load of the controller 1 should be distributed. If it is determined that the processing load should be distributed, the load control unit 14 places some of the switches 2 controlled by the detected controller 1 under the control of the controller 1 having a low processing load. Details of the processing load distribution processing will be described later with reference to FIGS. 6 and 7 .

图3是示出负载控制表153的结构的原理图。负载控制表153是具有作为属性的交换机ID、控制器ID、跳数、所接收的消息计数和所接收的分组计数的表。负载控制表153具有对应于开放流网络中的交换机的条目。FIG. 3 is a schematic diagram showing the structure of the load control table 153 . The load control table 153 is a table having a switch ID, a controller ID, a hop count, a received message count, and a received packet count as attributes. The load control table 153 has entries corresponding to switches in the OpenFlow network.

交换机ID是用于唯一地识别开放流网络中的交换机2的属性并且是用作负载控制表153的主关键字的信息。交换机ID是例如由交换机2的MAC地址的48位组成的数据路径ID,其12位取决于实施方式。控制器1能在建立安全信道后,通过与交换机2交换开放流协议Features/应答消息,获得交换机2的数据路径ID。The switch ID is an attribute for uniquely identifying the switch 2 in the OpenFlow network and is information used as a primary key of the load control table 153 . The switch ID is, for example, a data path ID consisting of 48 bits of the MAC address of the switch 2 , 12 bits depending on the implementation. After the secure channel is established, the controller 1 can obtain the data path ID of the switch 2 by exchanging OpenFlow protocol Features/response messages with the switch 2 .

控制器ID是用于唯一地识别开放流网络中的控制器1的属性。控制器ID可以是例如控制器1的网际协议(IP)地址。The controller ID is an attribute for uniquely identifying the controller 1 in the OpenFlow network. The controller ID may be, for example, the Internet Protocol (IP) address of the controller 1 .

跳数是指示控制器1和交换机2之间的跳数的属性(分组通过的通信设备的数目)。The hop count is an attribute indicating the hop count between the controller 1 and the switch 2 (the number of communication devices through which a packet passes).

所接收的消息计数是指示在预定时间内,控制器1已经从交换机2接收的消息的数目的属性。每次控制器1从交换机2接收消息时,增加所接收的消息计数(+1)。The received message count is an attribute indicating the number of messages that the controller 1 has received from the switch 2 within a predetermined time. Each time controller 1 receives a message from switch 2, the received message count is incremented (+1).

所接收的分组计数是指示由控制器1控制的交换机2已经从终端3或相邻的交换机2接收的分组的数目的属性。控制器1能通过与交换机2传输或接收开放流协议统计请求/应答消息,掌握交换机2的每一端口在预定时间内已经接收的分组的数目。The received packet count is an attribute indicating the number of packets that the switch 2 controlled by the controller 1 has received from the terminal 3 or the adjacent switch 2 . The controller 1 can grasp the number of packets received by each port of the switch 2 within a predetermined time by transmitting or receiving OpenFlow protocol statistics request/response messages with the switch 2 .

接着,参考图4,描述根据本实施例的交换机2的内部结构和操作。图4是示出根据本实施例的交换机2的内部结构的框图。Next, referring to FIG. 4, the internal structure and operation of the switch 2 according to the present embodiment will be described. FIG. 4 is a block diagram showing the internal structure of the switch 2 according to the present embodiment.

交换机2包括分组控制单元21和消息控制单元22。交换机2存储流表23、交换机ID 24和控制器信息25。控制器信息25包括控制器ID 251和跳数252。The switch 2 includes a packet control unit 21 and a message control unit 22 . Switch 2 stores flow table 23, switch ID 24 and controller information 25. The controller information 25 includes a controller ID 251 and a hop number 252.

当分组控制单元21从终端3或相邻交换机2接收分组时,参考流表23,确定所接收的分组的目的地,然后将该分组转发到该目的地。当将新的交换机2添加到开放流网络时,分组控制单元21通过将查询分组传输到交换机2,获得相邻交换机2中的控制器信息25。When packet control unit 21 receives a packet from terminal 3 or adjacent switch 2, it refers to flow table 23, determines the destination of the received packet, and then forwards the packet to the destination. When a new switch 2 is added to the OpenFlow network, the packet control unit 21 obtains controller information 25 in the adjacent switch 2 by transmitting an inquiry packet to the switch 2 .

消息控制单元22与控制器1的消息控制单元11传输或接收由开放流协议定义的消息。当消息控制单元22从控制器1接收flow-mod消息时,根据所接收的消息,更新流表23。此外,当交换机2与控制器1建立安全信道时,消息控制单元22将交换机ID 24传输到控制器1。The message control unit 22 transmits or receives messages defined by the OpenFlow protocol with the message control unit 11 of the controller 1 . When the message control unit 22 receives a flow-mod message from the controller 1, the flow table 23 is updated according to the received message. In addition, when the switch 2 establishes a secure channel with the controller 1, the message control unit 22 transmits the switch ID 24 to the controller 1.

流表23是由控制器1设定的信息。对流表23中的每一通信流,描述分组转发路径、分组转发方法等等。有关细节,请参见例如非专利文献1。The flow table 23 is information set by the controller 1 . For each communication flow in the flow table 23, a packet forwarding path, a packet forwarding method, and the like are described. For details, see, for example, Non-Patent Document 1.

交换机ID24是唯一地识别交换机2的信息。控制器ID 251是指示控制流表23的控制器1的ID的信息。跳数252是交换机2和控制器1之间的跳数。The switch ID 24 is information for uniquely identifying the switch 2 . The controller ID 251 is information indicating the ID of the controller 1 of the control flow table 23. The hop count 252 is the hop count between switch 2 and controller 1 .

接着,参考图5至7,描述控制器1的操作。如上所述,当预定事件(预定时间度过等等)发生时,控制器1的负载控制单元14执行分配每一控制器1的负载的处理(负载分配处理)。在下文中,将详细地描述控制器1的负载分配处理及相关操作。Next, referring to FIGS. 5 to 7 , the operation of the controller 1 will be described. As described above, when a predetermined event (passage of a predetermined time, etc.) occurs, the load control unit 14 of the controller 1 executes processing of distributing the load of each controller 1 (load distribution processing). Hereinafter, the load distribution processing and related operations of the controller 1 will be described in detail.

图5是示出控制器1的控制操作的流程图。控制器1等待预定时间经过(步骤A1)。在预定时间经过后,控制器1执行负载信息更新处理(图6)(步骤A2)。FIG. 5 is a flowchart showing the control operation of the controller 1 . The controller 1 waits for a predetermined time to elapse (step A1). After a predetermined time elapses, the controller 1 executes load information update processing (FIG. 6) (step A2).

图6是示出由控制器1执行的负载信息更新处理的详情的流程图。首先,控制器1的拓扑更新单元13通过将查询分组传输到交换机2,获得有关由控制器1控制的每一交换机2的每一端口的连接的信息(步骤B1)。如果控制器1检测到具有连接故障的交换机2(在下文中,称为交换机S0)(步骤B2:是),拓扑更新单元13将交换机S0告知负载控制单元14。然后,负载控制单元14计算开放流网络中的每一控制器1的处理负载来获得具有最低处理负载的控制器1(在下文中,称为控制器C0)的ID(步骤B3)。注意,稍后将参考图7,描述计算处理负载的方法。FIG. 6 is a flowchart showing details of load information update processing performed by the controller 1 . First, the topology update unit 13 of the controller 1 obtains information on the connection of each port of each switch 2 controlled by the controller 1 by transmitting an inquiry packet to the switch 2 (step B1). If the controller 1 detects the switch 2 (hereinafter referred to as switch S0 ) having a connection failure (step B2 : Yes), the topology update unit 13 notifies the load control unit 14 of the switch S0 . Then, the load control unit 14 calculates the processing load of each controller 1 in the OpenFlow network to obtain the ID of the controller 1 (hereinafter, referred to as controller C0 ) having the lowest processing load (step B3 ). Note that a method of calculating the processing load will be described later with reference to FIG. 7 .

进一步,负载控制单元14在负载控制表153中,在交换机S0的条目的“控制器ID”属性中设定控制器C0的ID(步骤B4)。控制器C0的负载控制单元14也通过安全信道,在交换机S0的控制器ID 251中设定控制器C0的ID(步骤B5)。Furthermore, the load control unit 14 sets the ID of the controller C0 in the "controller ID" attribute of the entry of the switch S0 in the load control table 153 (step B4). The load control unit 14 of the controller C0 also sets the ID of the controller C0 in the controller ID 251 of the switch S0 through the secure channel (step B5).

控制器1的负载控制单元14还从由控制器1控制的交换机2的每一个获得所接收的分组计数并在负载控制表153中设定它们(步骤B6,B7)。此时,负载控制单元14排除由于拓扑的变化未使用过的端口的所接收的分组数。由于上述步骤B1至B7,已经消除了连接故障,并且已经获得所接收的分组计数。在这种状态下,执行控制器负载分配处理(步骤B8)。图7示出了负载分配处理的详情(步骤B8)。The load control unit 14 of the controller 1 also obtains received packet counts from each of the switches 2 controlled by the controller 1 and sets them in the load control table 153 (steps B6, B7). At this time, the load control unit 14 excludes the number of received packets of ports that have not been used due to a change in topology. Thanks to the steps B1 to B7 above, the connection failure has been eliminated and the received packet count has been obtained. In this state, controller load distribution processing is performed (step B8). Fig. 7 shows details of the load distribution processing (step B8).

负载控制单元14参考负载控制表153并计算每一控制器1的处理负载。例如,负载控制单元14通过使所接收的消息计数和所接收的分组计数相乘,计算以数值信息形式的处理负载。然后,负载控制单元14获得具有最高处理负载的控制器1(在下文中,称为控制器C1)的ID(步骤C1)。The load control unit 14 refers to the load control table 153 and calculates the processing load of each controller 1 . For example, the load control unit 14 calculates the processing load in the form of numerical information by multiplying the received message count and the received packet count. Then, the load control unit 14 obtains the ID of the controller 1 (hereinafter, referred to as controller C1 ) having the highest processing load (step C1 ).

注意,处理负载不一定是数值信息,也可以是基于预定阈值的诸如“高”、“中”或“低”的信息。Note that the processing load is not necessarily numerical information, but may be information such as "high", "medium", or "low" based on a predetermined threshold.

然后,负载控制单元14确定控制器C1的处理负载是否小于或等于预定阈值(第一阈值)(步骤C2)。如果处理负载小于或等于预定阈值(步骤C2:是),负载控制单元14结束该处理。Then, the load control unit 14 determines whether or not the processing load of the controller C1 is less than or equal to a predetermined threshold (first threshold) (step C2). If the processing load is less than or equal to the predetermined threshold (step C2: YES), the load control unit 14 ends the processing.

相反,如果控制器C1的处理负载不小于或等于预定阈值(步骤C2:否),负载控制单元14选择具有最低处理负载的控制器1(在下文中,称为控制器C2)并且获得其ID(步骤C3)。On the contrary, if the processing load of the controller C1 is not less than or equal to the predetermined threshold (step C2: No), the load control unit 14 selects the controller 1 having the lowest processing load (hereinafter, referred to as controller C2) and obtains its ID ( Step C3).

然后,负载控制单元14从由控制器C1控制的交换机2中,选择对处理负载具有相对小影响的交换机2(在下文中,称为交换机S1)并且获得其ID(步骤C4)。换句话说,负载控制单元14根据对处理负载的影响大小的升序,选择交换机2。例如,当负载控制单元14首次执行步骤C4时,将对处理负载具有最小影响的交换机2选择为交换机S1。Then, the load control unit 14 selects a switch 2 having relatively little influence on the processing load (hereinafter, referred to as a switch S1 ) from among the switches 2 controlled by the controller C1 and obtains its ID (step C4 ). In other words, the load control unit 14 selects the switches 2 in ascending order of influence on the processing load. For example, when the load control unit 14 executes step C4 for the first time, the switch 2 having the least influence on the processing load is selected as the switch S1.

然后,负载控制单元14从负载控制表153获得交换机S1的跳数并且确定所获得的跳数是否大于或等于阈值(第二阈值)(步骤C5)。如果跳数不大于或等于阈值(步骤C5:否),负载控制单元14返回到步骤C4。此时,负载控制单元14选择仅次于在上一步骤C4中选择的交换机S1的、具有最小处理负载的交换机2。Then, the load control unit 14 obtains the hop count of the switch S1 from the load control table 153 and determines whether the obtained hop count is greater than or equal to a threshold value (second threshold value) (step C5). If the hop count is not greater than or equal to the threshold (step C5: NO), the load control unit 14 returns to step C4. At this time, the load control unit 14 selects the switch 2 having the smallest processing load next to the switch S1 selected in the previous step C4.

如果跳数大于或等于阈值(步骤C5:是),负载控制单元14在负载控制表153的交换机S1的条目的“控制器ID”属性中,设定控制器C2的ID(步骤C6)。负载控制单元14还通过安全信道,在交换机S1的控制器ID 251中,设置控制器C2的ID(步骤C7)。If the hop count is greater than or equal to the threshold (step C5: Yes), the load control unit 14 sets the ID of the controller C2 in the "controller ID" attribute of the switch S1 entry in the load control table 153 (step C6). The load control unit 14 also sets the ID of the controller C2 in the controller ID 251 of the switch S1 through the secure channel (step C7).

在步骤C7后,负载控制单元14返回到步骤C1。After step C7, the load control unit 14 returns to step C1.

尽管在上述处理中,负载控制单元14通过与预定阈值(第一阈值)进行比较,选择控制器C1,但也可以以其他方式选择控制器C1。即,负载控制单元14可以根据任何标准,选择应当分配其处理负载的控制器1。例如,负载控制单元14可以将具有最高处理负载的控制器1无条件地选择为控制器C1。Although in the above processing, the load control unit 14 selects the controller C1 by comparing with a predetermined threshold (first threshold), the controller C1 may be selected in other ways. That is, the load control unit 14 can select the controller 1 whose processing load should be allocated according to any criteria. For example, the load control unit 14 may unconditionally select the controller 1 having the highest processing load as the controller C1.

尽管在上述处理中,对跳数做出了确定,但在不确定跳数的情况下,也可以将具有最低处理负载的交换机2确定为交换机S1。然而,跳数的确定具有简单地分配处理负载的效果,还具有防止网络结构复杂化的效果。Although in the above processing, the number of hops is determined, in the case where the number of hops is not determined, the switch 2 with the lowest processing load may be determined as the switch S1. However, determination of the number of hops has the effect of easily distributing the processing load, and also has the effect of preventing the network structure from becoming complicated.

尽管在上述描述中,将具有最低处理负载的控制器1选择为控制器1(C2)来交替地控制交换机2,但可以选择具有小于或等于预定值的处理负载的任何控制器1。然而,通过根据处理负载的大小的升序选择控制器1,能最佳地均衡处理负载。Although in the above description, the controller 1 having the lowest processing load is selected as the controller 1 (C2) to alternately control the switches 2, any controller 1 having a processing load smaller than or equal to a predetermined value may be selected. However, by selecting the controller 1 according to the ascending order of the magnitude of the processing load, the processing load can be optimally balanced.

接着,参考图8和9,描述当新的交换机2添加到开放流网络时,由设备(控制器1、交换机2)执行的处理。图8是示出添加交换机2的处理的流程图。Next, processing performed by the devices (controller 1, switch 2) when a new switch 2 is added to the OpenFlow network will be described with reference to Figs. 8 and 9 . FIG. 8 is a flowchart showing processing of adding a switch 2 .

首先,待添加的交换机2(在下文中,称为“对象交换机2”)的分组控制单元21从相邻交换机2获得控制器信息25(步骤D1)。将参考图9,描述该控制器信息获得处理。First, the packet control unit 21 of the switch 2 to be added (hereinafter, referred to as "object switch 2") obtains the controller information 25 from the adjacent switch 2 (step D1). This controller information obtaining process will be described with reference to FIG. 9 .

对象交换机2的分组控制单元21将查询分组广播到相邻交换机并且接收控制器信息25(步骤E1)。如果分组控制单元21从多个交换机2接收控制器信息25的集合(步骤E2:是),它选择包括最小跳数252的控制器信息25的集合(步骤E3)。然后,分组控制单元21通过消息控制单元22与控制器1通信并且在与控制器1联系前,获得跳数252(步骤E4)。The packet control unit 21 of the object switch 2 broadcasts the inquiry packet to the adjacent switch and receives the controller information 25 (step E1). If the packet control unit 21 receives sets of controller information 25 from a plurality of switches 2 (step E2: Yes), it selects the set of controller information 25 including the smallest number of hops 252 (step E3). Then, the packet control unit 21 communicates with the controller 1 through the message control unit 22 and obtains the hop count 252 before contacting the controller 1 (step E4).

再参考图8,已经获得控制器信息25(步骤D1)的交换机2的消息控制单元22参考控制器信息25中的控制器ID 251,并且与由控制器ID 251识别的控制器1建立安全信道(步骤D2)。Referring again to Fig. 8, the message control unit 22 of the switch 2 having obtained the controller information 25 (step D1) refers to the controller ID 251 in the controller information 25, and establishes a secure channel with the controller 1 identified by the controller ID 251 (step D2).

然后,消息控制单元22从控制器1的负载控制表153获得另一控制器1的ID并且与那些控制器1建立安全信道(步骤D3,D4)。Then, the message control unit 22 obtains the ID of another controller 1 from the load control table 153 of the controller 1 and establishes a secure channel with those controllers 1 (steps D3, D4).

开放流网络中的每一控制器1的负载控制单元14将对象交换机2的条目添加到负载控制表153(步骤D5)。此时,负载控制单元14在负载控制表153的“交换机ID”属性中,设定对象交换机2的交换机ID 24的值。负载控制单元14还在负载控制表153的“跳数”属性中,设定对象交换机2的跳数252的值。负载控制单元14还在负载控制表153的“所接收的消息计数”和“所接收的分组计数”属性的每一个中设置0。然后,负载控制单元14执行负载信息更新处理(图6的处理)(步骤D6)。The load control unit 14 of each controller 1 in the OpenFlow network adds the entry of the subject switch 2 to the load control table 153 (step D5). At this time, the load control unit 14 sets the value of the switch ID 24 of the target switch 2 in the "switch ID" attribute of the load control table 153. The load control unit 14 also sets the value of the hop count 252 of the target switch 2 in the “hop count” attribute of the load control table 153 . The load control unit 14 also sets 0 in each of the “received message count” and “received packet count” attributes of the load control table 153 . Then, the load control unit 14 executes load information update processing (processing of FIG. 6 ) (step D6 ).

接着,参考图10,将描述当从开放流网络删除交换机2时,由设备(控制器1、交换机2)执行的处理。图10是示出删除交换机2的处理的流程图。Next, referring to FIG. 10 , the processing performed by the devices (controller 1 , switch 2 ) when the switch 2 is deleted from the OpenFlow network will be described. FIG. 10 is a flowchart showing processing of deleting the switch 2 .

待删除的交换机2(在下文中,称为“对象交换机2”)的消息控制单元22关闭开放流网络中,与所有控制器1的安全信道(步骤F1)。作为响应,每一控制器1的负载控制单元14从负载控制表153删除对象交换机2的条目(步骤F2)。然后,负载控制单元14执行负载信息更新处理(图6的处理)(步骤F3)。The message control unit 22 of the switch 2 to be deleted (hereinafter referred to as "object switch 2") closes the secure channels with all controllers 1 in the OpenFlow network (step F1). In response, the load control unit 14 of each controller 1 deletes the entry of the subject switch 2 from the load control table 153 (step F2 ). Then, the load control unit 14 executes load information update processing (processing of FIG. 6 ) (step F3 ).

接着,参考图11至14,描述图7中所示的、分配控制器1的处理负载的处理的具体示例。图11是示出在执行负载分配处理前,开放流网络的结构的框图。图12是示出在执行负载分配处理前,负载控制表153的结构的原理图。Next, a specific example of the process of distributing the processing load of the controller 1 shown in FIG. 7 will be described with reference to FIGS. 11 to 14 . Fig. 11 is a block diagram showing the structure of an OpenFlow network before performing load distribution processing. FIG. 12 is a conceptual diagram showing the structure of the load control table 153 before execution of the load distribution process.

负载控制单元14计算开放流网络中的控制器(控制器A和控制器B)的处理负载(步骤C1)。在该实施例中,负载控制单元14使用下述公式,计算每一控制器的处理负载。The load control unit 14 calculates the processing load of the controllers (controller A and controller B) in the OpenFlow network (step C1). In this embodiment, the load control unit 14 calculates the processing load of each controller using the following formula.

待计算的控制器C的处理负载=(控制器C的所接收的消息计数/所有控制器的总接收的消息计数)*(由该控制器C控制的交换机的所接收的分组计数/所有交换机的总接收的分组计数)Processing load of controller C to be calculated = (received message count of controller C/total received message count of all controllers)*(received packet count of switches controlled by this controller C/all switches total received packet count)

参考图12,总接收的消息计数为120以及总接收的分组计数为800。因此,控制器A的处理负载是(50/120)*(300/800)≈0.16。类似地,控制器B的处理负载是(70/120)*(500/800)≈0.36。因此,负载控制单元14将控制器B选择为具有最高处理负载的控制器(步骤C1)。Referring to FIG. 12 , the total received message count is 120 and the total received packet count is 800. Therefore, the processing load of controller A is (50/120)*(300/800)≈0.16. Similarly, the processing load of controller B is (70/120)*(500/800)≈0.36. Therefore, the load control unit 14 selects the controller B as the controller with the highest processing load (step C1 ).

上述计算方法仅是说明性的,并且可以采用其他方法。例如,可以将乘法公式的左侧或右侧(或两侧)乘以加权因子。还可以通过加法而不是乘法计算处理负载。即,负载控制单元14只需要根据负载控制表153中的信息,计算每一控制器1的处理负载。注意,负载控制单元14能通过使用负载控制表153中的所接收的消息计数和所接收的分组计数的至少一个,掌握每一控制器1的处理负载的趋势,尽管会降低计算精度。The calculation methods described above are merely illustrative, and other methods may be employed. For example, the left or right side (or both sides) of the multiplication formula can be multiplied by a weighting factor. It is also possible to calculate the processing load by addition rather than multiplication. That is, the load control unit 14 only needs to calculate the processing load of each controller 1 according to the information in the load control table 153 . Note that the load control unit 14 can grasp the trend of the processing load of each controller 1 by using at least one of the received message count and the received packet count in the load control table 153, although calculation accuracy will be reduced.

然后,负载控制单元14确定所选控制器B的处理负载是否小于或等于预定阈值(步骤C2)。假定阈值为0.3,负载控制单元14确定控制器B的处理负载是否小于或等于该阈值(步骤C2:否)。然后,负载控制单元14将控制器A选择为具有最低处理负载的控制器(步骤C3)。Then, the load control unit 14 determines whether the processing load of the selected controller B is less than or equal to a predetermined threshold (step C2). Assuming that the threshold value is 0.3, the load control unit 14 determines whether the processing load of the controller B is less than or equal to the threshold value (step C2: NO). Then, the load control unit 14 selects the controller A as the controller with the lowest processing load (step C3).

然后,负载控制单元14获得对由控制器B控制的交换机的处理负载具有最小影响的交换机的ID。参考图12,交换机C对处理负载的影响为(5/120)*(100/800)≈0.01。交换机D对处理负载的影响为(30/120)*(200/800)≈0.06。交换机E对处理负载的影响为(15/120)*(100/800)≈0.02。交换机F对处理负载的影响为(20/120)*(100/800)≈0.02。因此,负载控制单元14将交换机C选择为对处理负载具有最小影响的交换机(步骤C4)。Then, the load control unit 14 obtains the ID of the switch having the least influence on the processing load of the switch controlled by the controller B. Referring to FIG. 12 , the effect of switch C on the processing load is (5/120)*(100/800)≈0.01. The effect of switch D on the processing load is (30/120)*(200/800)≈0.06. The impact of switch E on the processing load is (15/120)*(100/800)≈0.02. The impact of switch F on the processing load is (20/120)*(100/800)≈0.02. Therefore, the load control unit 14 selects the switch C as the switch having the least influence on the processing load (step C4).

然后,负载控制单元14参考负载控制表153并且确定交换机C的跳数是否是阈值(步骤C5)。假定阈值为2,负载控制单元14确定交换机C的跳数大于或等于该阈值(步骤C5:是)。Then, the load control unit 14 refers to the load control table 153 and determines whether the hop count of the switch C is the threshold (step C5). Assuming that the threshold is 2, the load control unit 14 determines that the hop count of the switch C is greater than or equal to the threshold (step C5: Yes).

然后,负载控制单元14在负载控制表153的交换机C的条目的“控制器ID”属性中设定控制器A的ID(步骤C6)。负载控制单元14还通过安全信道,在交换机C的控制器ID 251中设定控制器A的ID(交换机C7)。图13示出当该处理完成时的时间点的负载控制表153。下划线部分表示控制器的变化。尽管跳数值可能随控制器的变化而改变,但在本实施例中,假定该跳数不改变。Then, the load control unit 14 sets the ID of the controller A in the "controller ID" attribute of the entry of the switch C of the load control table 153 (step C6). The load control unit 14 also sets the ID of the controller A (switch C7) in the controller ID 251 of the switch C through the secure channel. FIG. 13 shows the load control table 153 at the point in time when this processing is completed. Underlined parts indicate controller changes. Although the number of hops may vary depending on the controller, in this embodiment it is assumed that the number of hops does not change.

然后,负载控制单元14再次计算开放流网络中的控制器(控制器A和控制器B)的处理负载(步骤C1)。Then, the load control unit 14 calculates the processing loads of the controllers (controller A and controller B) in the OpenFlow network again (step C1).

参考图13,总接收的消息计数为120,以及总接收的分组计数为800。因此,控制器A的处理负载是(55/120)*(400/800)≈0.23。类似地,控制器B的处理负载是(65/120)*(400/800)≈0.27。因此,负载控制单元14将控制器B选择为具有最高处理负载的控制器(步骤C1)。Referring to FIG. 13 , the total received message count is 120, and the total received packet count is 800. Therefore, the processing load of controller A is (55/120)*(400/800)≈0.23. Similarly, the processing load of controller B is (65/120)*(400/800)≈0.27. Therefore, the load control unit 14 selects the controller B as the controller with the highest processing load (step C1 ).

然后,负载控制单元14确定所选控制器B的处理负载是否小于或等于预定阈值(步骤C2)。由于该阈值为0.3,因此,负载控制单元14确定控制器B的处理负载小于或等于该阈值(步骤C2:是),结束该处理。图14是示出在执行负载分配处理后,开放流网络的结构的框图。Then, the load control unit 14 determines whether the processing load of the selected controller B is less than or equal to a predetermined threshold (step C2). Since the threshold is 0.3, the load control unit 14 determines that the processing load of the controller B is less than or equal to the threshold (step C2: Yes), and ends the process. Fig. 14 is a block diagram showing the structure of an OpenFlow network after performing load distribution processing.

接着,将描述根据本实施例的开放流网络的效果。负载控制单元14根据交换机2的使用状态或开放流网络的拓扑,分配控制器1的处理负载。由此,可以避免处理负载不均匀地施加在特定控制器1上以及准确地分配负载。Next, effects of the OpenFlow network according to the present embodiment will be described. The load control unit 14 distributes the processing load of the controller 1 according to the use state of the switch 2 or the topology of the OpenFlow network. Thereby, it is possible to prevent the processing load from being unevenly applied to a specific controller 1 and to distribute the load accurately.

此外,当将交换机2添加到开放流网络或从其删除时,控制器1在分配负载前更新拓扑信息(执行上述步骤B1至B7)。由此,能在更新开放流网络中的每一设备的连接状态后分配负载。Furthermore, when the switch 2 is added to or deleted from the OpenFlow network, the controller 1 updates the topology information (executes the above-mentioned steps B1 to B7) before distributing the load. Thereby, load can be distributed after updating the connection state of each device in the OpenFlow network.

第二实施例second embodiment

根据本发明的第二实施例的控制器1的特征在于控制器1在图7的负载分配处理中,考虑由每一控制器控制的交换机的数目。在下文中,将描述第二实施例与第一实施例之间的区别。The controller 1 according to the second embodiment of the present invention is characterized in that the controller 1 considers the number of switches controlled by each controller in the load distribution process of FIG. 7 . Hereinafter, differences between the second embodiment and the first embodiment will be described.

在上述图7中,负载控制单元14使用下述公式,计算每一控制器1的处理负载。In the above-mentioned FIG. 7 , the load control unit 14 calculates the processing load of each controller 1 using the following formula.

待计算的控制器C的处理负载=(由该控制器C控制的交换机的数目/开放流网络中的所有交换机的数目)*(控制器C的所接收的消息的计数/所有控制器的总的接收的消息计数)*(由该控制器C控制的交换机的所接收的分组计数/所有交换机的总的接收的分组计数)Processing load of controller C to be calculated = (number of switches controlled by this controller C/number of all switches in the OpenFlow network)*(count of received messages of controller C/total of all controllers received message count)*(received packet count of switches controlled by this controller C/total received packet count of all switches)

接着,再参考图11至14,将描述根据本实施例,分配控制器1的负载的处理的具体示例(图7)。如上所述,图11是示出在执行负载分配处理前,开放流网络的结构的框图。图12是示出在执行负载分配处理前,负载控制表153的结构的原理图。Next, referring again to FIGS. 11 to 14 , a specific example of the process of distributing the load of the controller 1 according to the present embodiment will be described ( FIG. 7 ). As described above, FIG. 11 is a block diagram showing the structure of the OpenFlow network before the load distribution process is performed. FIG. 12 is a conceptual diagram showing the structure of the load control table 153 before execution of the load distribution process.

参考图12,总交换机计数为6以及总接收的消息计数为120。因此,控制器A的处理负载为(2/6)*(50/120)*(300/800)≈0.05。类似地,控制器B的处理负载为(4/6)*(70/120)*(500/800)≈0.24。因此,负载控制单元14将控制器B选择为具有最高处理负载的控制器(步骤C1)。Referring to Figure 12, the total switch count is 6 and the total received message count is 120. Therefore, the processing load of controller A is (2/6)*(50/120)*(300/800)≈0.05. Similarly, the processing load of controller B is (4/6)*(70/120)*(500/800)≈0.24. Therefore, the load control unit 14 selects the controller B as the controller with the highest processing load (step C1 ).

然后,负载控制单元14确定所选控制器B的处理负载是否小于或等于预定阈值(步骤C2)。假定阈值为0.2,负载控制单元14确定控制器B的处理负载不小于或等于该阈值(步骤C2:否)。然后,负载控制单元14将控制器A选择为具有最低处理负载的控制器(步骤C3)。Then, the load control unit 14 determines whether the processing load of the selected controller B is less than or equal to a predetermined threshold (step C2). Assuming that the threshold value is 0.2, the load control unit 14 determines that the processing load of the controller B is not less than or equal to the threshold value (step C2: NO). Then, the load control unit 14 selects the controller A as the controller with the lowest processing load (step C3).

然后,负载控制单元14获得对由控制器B控制的交换机的处理负载具有最小影响的交换机的ID。负载控制单元14根据图12,计算对处理负载的影响如下。Then, the load control unit 14 obtains the ID of the switch having the least influence on the processing load of the switch controlled by the controller B. Based on FIG. 12 , the load control unit 14 calculates the influence on the processing load as follows.

交换机C:(5/120)*(100/800)Switch C: (5/120)*(100/800)

交换机D:(30/120)*(200/800)Switch D: (30/120)*(200/800)

交换机E:(15/120)*(100/800)Switch E: (15/120)*(100/800)

交换机F:(20/120)*(100/800)Switch F: (20/120)*(100/800)

因此,负载控制单元14将交换机C选择为对处理负载具有最小影响的交换机(步骤C4)。然后,负载控制单元14参考负载控制表153并且确定交换机C的跳数是否大于或等于阈值(步骤C5)。假定阈值为2,负载控制单元14确定交换机C的跳数大于或等于该阈值(步骤C5:是)。Therefore, the load control unit 14 selects the switch C as the switch having the least influence on the processing load (step C4). Then, the load control unit 14 refers to the load control table 153 and determines whether the hop count of the switch C is greater than or equal to a threshold (step C5). Assuming that the threshold is 2, the load control unit 14 determines that the hop count of the switch C is greater than or equal to the threshold (step C5: Yes).

然后,负载控制单元14在负载控制表153的交换机C的条目的“控制器ID”属性中设定控制器B的ID(步骤C6)。负载控制单元14还通过安全信道,在交换机C的控制器ID 251中设定控制器B的ID(交换机C7)。图13示出当该处理完成时的时间点的负载控制表153。下划线部分表示控制器的变化。Then, the load control unit 14 sets the ID of the controller B in the "controller ID" attribute of the entry of the switch C of the load control table 153 (step C6). The load control unit 14 also sets the ID of the controller B (switch C7) in the controller ID 251 of the switch C through the secure channel. FIG. 13 shows the load control table 153 at the point in time when this processing is completed. Underlined parts indicate controller changes.

负载控制单元14再次计算开放流网络中的控制器(控制器A和控制器B)的处理负载(步骤C1)。The load control unit 14 calculates the processing loads of the controllers (controller A and controller B) in the OpenFlow network again (step C1).

参考图13,可知总交换机计数为6,总的接收的消息计数为120,以及总的接收的分组计数为800。因此,控制器A的处理负载为(3/6)*(55/120)*(400/800)≈0.11。类似地,控制器B的处理负载为(3/6)*(65/120)*(400/800)≈0.13。因此,负载控制单元14将控制器B选择为具有最高处理负载的控制器(步骤C1)。Referring to FIG. 13 , it can be seen that the total switch count is 6, the total received message count is 120, and the total received packet count is 800. Therefore, the processing load of controller A is (3/6)*(55/120)*(400/800)≈0.11. Similarly, the processing load of controller B is (3/6)*(65/120)*(400/800)≈0.13. Therefore, the load control unit 14 selects the controller B as the controller with the highest processing load (step C1 ).

然后,负载控制单元14确定所选控制器B的处理负载是否小于或等于预定阈值(步骤C2)。由于该阈值为0.2,因此,负载控制单元14确定控制器B的处理负载小于或等于该阈值(步骤C2:是),结束该处理。图14是示出在执行负载分配处理后,开放流网络的结构的框图。Then, the load control unit 14 determines whether the processing load of the selected controller B is less than or equal to a predetermined threshold (step C2). Since the threshold is 0.2, the load control unit 14 determines that the processing load of the controller B is less than or equal to the threshold (step C2: Yes), and ends the process. Fig. 14 is a block diagram showing the structure of an OpenFlow network after performing load distribution processing.

同样在本实施例中,可以避免负载不均匀地施加在特定控制器1上以及准确地分配负载。如上可知,负载控制单元14还考虑总交换机计数和由每一控制器1控制的交换机的数目之间的关系,然后分配负载。由此,可以执行还考虑网络的连接状态的负载分配(即,避免由每一控制器控制的交换机的数目在网络中不均匀的负载分配)。Also in this embodiment, it is possible to avoid uneven application of load to a specific controller 1 and to distribute the load accurately. As can be seen above, the load control unit 14 also considers the relationship between the total switch count and the number of switches controlled by each controller 1, and then distributes the load. Thereby, it is possible to perform load distribution that also considers the connection state of the network (ie, avoid load distribution in which the number of switches controlled by each controller is uneven in the network).

尽管已经对于其实施例描述了本发明,但本发明不限于其结构。当然,本发明包括本领域的技术人员在不背离本申请的权利要求的范围的情况下,对实施例所做的变化、修改或组合。Although the present invention has been described for its embodiments, the present invention is not limited to its structure. Of course, the present invention includes changes, modifications or combinations made to the embodiments by those skilled in the art without departing from the scope of the claims of the present application.

由控制器1的处理单元(消息控制单元11、路径控制单元12、拓扑更新单元13和负载控制单元14)执行的处理能体现为在任何计算机上运行的程序。该程序能存储在各种类型的非瞬时计算机可读介质中并提供给计算机。非瞬时计算机可读介质的示例包括各种类型的有形存储介质。非瞬时计算机可读介质的示例包括磁存储介质(例如柔性盘、磁带、硬盘驱动)、磁光存储介质(例如,磁光盘)、光盘只读存储器(CD-ROM)、CD-R、CD-R/W、半导体存储器(例如,掩膜型ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、闪速ROM和随机存取存储器(RAM)。可以通过各种类型的瞬时计算机可读介质,将程序提供给计算机。瞬时计算机可读介质的示例包括电信号、光信号和电磁波。瞬时计算机可读介质能经由有线通信路径,诸如电线或光纤,或经由无线通信路径将程序提供给计算机。The processing performed by the processing units (message control unit 11, path control unit 12, topology update unit 13, and load control unit 14) of the controller 1 can be embodied as a program running on any computer. The program can be stored in various types of non-transitory computer-readable media and provided to a computer. Examples of non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer readable media include magnetic storage media (e.g., flexible disk, magnetic tape, hard drive), magneto-optical storage media (e.g., magneto-optical disk), compact disk read-only memory (CD-ROM), CD-R, CD- R/W, semiconductor memory such as mask ROM, programmable ROM (PROM), erasable PROM (EPROM), flash ROM, and random access memory (RAM). Can be accessed by various types of transient computers Read medium, the program is provided to the computer. Examples of the transient computer readable medium include electrical signals, optical signals and electromagnetic waves. The transient computer readable medium can provide the program to the computer.

图15是示出控制器1的示例硬件结构的图。控制器1包括中央处理单元(CPU)401和存储器402。CPU 401和存储器402通过总线,连接到用作辅助存储设备的硬盘驱动器(HDD)403。存储介质,诸如HDD 403能存储用于协同操作系统,向CPU 401等等提供指令并且执行CPU 401等等的单元的功能的计算机程序。即,当该程序加载到存储器402中时,形成控制器1的块,然后,CPU 401执行根据程序的处理并且与其他硬件组件合作。然后,当CPU 401执行预定程序时,控制器1执行处理。FIG. 15 is a diagram showing an example hardware configuration of the controller 1 . The controller 1 includes a central processing unit (CPU) 401 and a memory 402 . A CPU 401 and a memory 402 are connected via a bus to a hard disk drive (HDD) 403 serving as an auxiliary storage device. A storage medium such as the HDD 403 can store a computer program for cooperating with an operating system, providing instructions to the CPU 401 and the like, and executing functions of units of the CPU 401 and the like. That is, when this program is loaded into the memory 402, the blocks of the controller 1 are formed, and then, the CPU 401 executes processing according to the program and cooperates with other hardware components. Then, when the CPU 401 executes a predetermined program, the controller 1 executes processing.

图16是示意性地示出本发明的框图。开放流网络包括多个控制器1和多个交换机2。每一控制器1包括负载控制表153和负载控制单元14。Fig. 16 is a block diagram schematically showing the present invention. The OpenFlow network includes multiple controllers 1 and multiple switches 2 . Each controller 1 includes a load control table 153 and a load control unit 14 .

负载控制表153控制在预定时间内,开放流网络中的每一交换机2已经传输到控制该交换机2的控制器的消息的数目和在预定时间内,每一交换机2已经接收的分组的数目的至少一个。即,负载控制表153保存专用于开放流网络的负载信息。当预定事件发生时,负载控制单元14参考负载控制表153并且检测具有高于或等于第一阈值的处理负载的控制器1。例如,负载控制单元14通过将所接收的分组计数和所接收的消息计数相乘,计算处理负载。然后,负载控制单元14使由所检测的控制器1控制的交换机2的至少一个处于另一控制器1的控制下。The load control table 153 controls the number of messages that each switch 2 in the OpenFlow network has transmitted to the controller that controls the switch 2 within a predetermined time and the number of packets that each switch 2 has received within a predetermined time. at least one. That is, the load control table 153 holds load information dedicated to the OpenFlow network. When a predetermined event occurs, the load control unit 14 refers to the load control table 153 and detects a controller 1 having a processing load higher than or equal to the first threshold. For example, the load control unit 14 calculates the processing load by multiplying the received packet count and the received message count. Then, the load control unit 14 brings at least one of the switches 2 controlled by the detected controller 1 under the control of another controller 1 .

根据上述结构,负载控制单元14能根据交换机2的使用状态或开放流网络的拓扑,分配控制器1的负载。即,可以避免负载不均匀地施加在特定控制器1上。According to the above structure, the load control unit 14 can distribute the load of the controller 1 according to the use state of the switch 2 or the topology of the OpenFlow network. That is, it is possible to prevent the load from being unevenly applied to a specific controller 1 .

尽管在上述描述中,每一控制器1包括负载控制表153和负载控制单元14,其他结构也是可能的。例如,可以在开放流网络中提供用于指示每一控制器1控制交换机2的控制设备。这种控制设备包括负载控制表153和负载控制单元14。控制设备计算每一控制器1的处理负载以及使由具有高处理负载的控制器1控制的交换机2处于另一控制器1的控制下。该结构也能产生上述效果。Although in the above description, each controller 1 includes the load control table 153 and the load control unit 14, other configurations are possible. For example, a control device for instructing each controller 1 to control the switch 2 may be provided in an OpenFlow network. This control device includes a load control table 153 and a load control unit 14 . The control device calculates the processing load of each controller 1 and brings the switch 2 controlled by the controller 1 with high processing load under the control of another controller 1 . This structure also produces the above-mentioned effects.

本申请要求基于2012年2月2日提交的、日本专利申请No.2012-020695的优先权,其公开被整体结合于此。This application claims priority based on Japanese Patent Application No. 2012-020695 filed on February 2, 2012, the disclosure of which is incorporated herein in its entirety.

附图标记列表List of reference signs

1       控制器1 controller

11      消息控制单元11 message control unit

12      路径控制单元12 path control unit

13      拓扑更新单元13 topology update unit

14      负载控制单元14 Load control unit

15      网络信息存储单元15 Network information storage unit

151     路径信息151 path information

152     拓扑信息152 topology information

153     负载控制表153 Load control table

2       交换机2 switches

21      分组控制单元21 Group control unit

22      消息控制单元22 message control unit

23      流表23 flow table

24      交换机ID24 Switch ID

25      控制器信息25 Controller information

251     控制器ID251 Controller ID

252     跳数252 hops

3       终端3 terminal

401     CPU401 CPU

402     存储器402 memory

403     HDD403 HDD

Claims (25)

1. a controller, described controller is for being controlled at some in multiple switches of open flows network, and described controller comprises:
Load control table, described load control table is configured to control at least one in following: each in the described switch in open flows network in the scheduled time to the number of message and the number of the grouping that described switch has received in the scheduled time of controller transmission of controlling described switch; And
Load control device, described load control device is configured in the time that scheduled event occurs, carry out based on described load control table the controller that Check processing load should be assigned with, and under at least one in the switch that makes to be controlled by detected controller control in another controller.
2. controller according to claim 1, wherein,
Described processing load is numerical information, the high value instruction higher load of described numerical information, and
Described load control device detects the controller having greater than or equal to the processing load of first threshold.
3. controller according to claim 2, wherein, following controller is chosen as described another controller by described load control device: this controller has relatively low processing load.
4. controller according to claim 2, wherein,
Described load control table control about in the described switch in open flows network each and control the information of the jumping figure between the controller of described switch, and
Described load control device is chosen as following switch by least one switch under the control in described another controller: this switch has the impact relatively little on described processing load and has the jumping figure that is more than or equal to Second Threshold.
5. according to the controller described in claim 2 or 3, wherein, described load control device is by making the number of described message and the number of received grouping multiply each other to calculate described processing load.
6. according to the controller described in any one in claim 1 to 5, wherein, described scheduled event comprises in following: the spending to, open flows network is added switch and delete switch from open flows network of the scheduled time.
7. according to the controller described in any one in claim 1 to 6, wherein, the number of the number of the number of the message of described load control device based on received and received grouping and the switch controlled by each controller, the processing load of calculating described controller.
8. according to the controller described in any one in claim 1 to 7, further comprise topological updating device, described topological updating device is configured to control the topological information about open flows network,
Wherein, in the time that described scheduled event occurs, described topological updating device detects has the controlled exchange machine that connects fault, and before described load control device is carried out processing, eliminates the connection fault of detected switch.
9. for the method for the load of dispensing controller, some in the multiple switches in described controller control open flows network, described method comprises:
Control step, the control table of described control step control load, described load control table comprises at least one in following: each in the described switch in open flows network in the scheduled time to the number of message and the number of the grouping that described switch has received in the scheduled time of controller transmission of controlling described switch; And
Load control step, in the time that scheduled event occurs, carrys out based on described load control table the controller that Check processing load should be assigned with, and under at least one in the switch that makes to be controlled by detected controller control in another controller.
10. method according to claim 9, wherein,
Described processing load is numerical information, the high value instruction higher load of described numerical information, and
Described load control step comprises that detection has the controller greater than or equal to the processing load of first threshold.
11. methods according to claim 10, wherein, described load control step comprises following controller is chosen as to described another controller: this controller has relatively low processing load.
12. methods according to claim 11, wherein,
Described load control table control about in the described switch in open flows network each and control the information of the jumping figure between the controller of described switch, and
Described load control step comprises following switch is chosen as at least one switch under the control in described another controller: this switch has the impact relatively little on described processing load and has the jumping figure that is more than or equal to Second Threshold.
13. according to the method described in claim 10 or 11, and wherein, described load control step comprises that the number of number by making described message and received grouping multiplies each other to calculate described processing load.
14. according to the method described in any one in claim 9 to 13, and wherein, described scheduled event comprises in following: the spending to, open flows network is added switch and delete switch from open flows network of the scheduled time.
15. according to claim 10 to the method described in any one in 14, wherein, described load control step comprises the number of the message based on received and the number of received grouping and the number of the switch controlled by each controller, the processing load of calculating each controller.
16. 1 kinds of stored program non-instantaneous computer-readable mediums, described program is used for making computer to carry out the method for the load of dispensing controller, some in the multiple switches in described controller control open flows network, described method comprises:
Control step, the control table of described control step control load, described load control table comprises at least one in following: each in the described switch in open flows network in the scheduled time to the number of message and the number of the grouping that described switch has received in predetermined amount of time of controller transmission of controlling described switch; And
Load control step, in the time that scheduled event occurs, carrys out based on described load control table the controller that Check processing load should be assigned with, and under at least one in the switch that makes to be controlled by detected controller control in another controller.
17. non-instantaneous computer-readable mediums according to claim 16, wherein,
Described processing load is numerical information, the high value instruction higher load of described numerical information, and
Described load control step comprises that detection has the controller greater than or equal to the processing load of first threshold.
18. non-instantaneous computer-readable mediums according to claim 17, wherein, described load control step comprises following controller is chosen as to described another controller: this controller has relatively low processing load.
19. non-instantaneous computer-readable mediums according to claim 18, wherein,
Described load control table control about in the described switch in open flows network each and control the information of the jumping figure between the controller of described switch, and
Described load control step comprises following switch is chosen as at least one switch under the control in described another controller: this switch has the impact relatively little on described processing load and has the jumping figure that is more than or equal to Second Threshold.
20. according to the non-instantaneous computer-readable medium described in claim 17 or 18, and wherein, described load control step comprises that the number of number by making described message and received grouping multiplies each other to calculate described processing load.
21. according to claim 16 to the non-instantaneous computer-readable medium described in any one in 20, wherein, described scheduled event comprises in following: the spending to, open flows network is added switch and delete switch from open flows network of the scheduled time.
22. non-instantaneous computer-readable mediums according to claim 21, wherein, described load control step comprises to be worked as described scheduled event, when switch is added to open flows network or delete switch from open flows network, upgrade described load control table, and compare with described first threshold subsequently.
23. according to claim 16 to 22 any one described in non-instantaneous computer-readable medium, wherein, described load control step comprises the number of the message based on received and the number of received grouping and the number of the switch controlled by each controller, the processing load of calculating each controller.
24. 1 kinds of computer systems, comprising:
Multiple switches, each in described multiple switches is configured to divide into groups at open flows network repeating based on stream table; And
Multiple controllers, each in described multiple controllers is configured to control some in described switch,
Wherein, each in described controller comprises:
Load control table, described load control table is configured to control at least one in following: each in the described switch in open flows network in the scheduled time to the number of message and the number of the grouping that described switch has received in the scheduled time of controller transmission of controlling described switch; And
Load control device, described load control device is configured in the time that scheduled event occurs, carry out based on described load control table the controller that Check processing load should be assigned with, and under at least one in the switch that makes to be controlled by detected controller control in another controller.
25. 1 kinds for distributing the control appliance of load of multiple controllers, the switch in described controller control open flows network, and described control appliance comprises:
Load control table, described load control table is configured to control at least one in following: each in the described switch in open flows network in the scheduled time to the number of message and the number of the grouping that described switch has received in the scheduled time of controller transmission of controlling described switch; And
Load control device, described load control device is configured in the time that scheduled event occurs, carry out based on described load control table the controller that Check processing load should be assigned with, and under at least one in the switch that makes to be controlled by detected controller control in another controller.
CN201280068918.9A 2012-02-02 2012-10-31 Controller, method for distributing load, computer system and control device Expired - Fee Related CN104094565B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012020695 2012-02-02
JP2012-020695 2012-02-02
PCT/JP2012/006998 WO2013114490A1 (en) 2012-02-02 2012-10-31 Controller, load-balancing method, non-temporary computer-readable medium for storing program, computer system, and control device

Publications (2)

Publication Number Publication Date
CN104094565A true CN104094565A (en) 2014-10-08
CN104094565B CN104094565B (en) 2017-06-27

Family

ID=48904580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280068918.9A Expired - Fee Related CN104094565B (en) 2012-02-02 2012-10-31 Controller, method for distributing load, computer system and control device

Country Status (5)

Country Link
US (1) US9577941B2 (en)
EP (1) EP2811701B1 (en)
JP (1) JP5794320B2 (en)
CN (1) CN104094565B (en)
WO (1) WO2013114490A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019213997A1 (en) * 2018-05-07 2019-11-14 清华大学 Method, apparatus and system for matching user terminal with controller in communication network

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9331930B1 (en) * 2012-09-04 2016-05-03 Big Switch Networks, Inc. Systems and methods for forwarding network packets in a network using network domain topology information
US9374308B2 (en) * 2013-08-30 2016-06-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Openflow switch mode transition processing
KR102188069B1 (en) * 2013-12-30 2020-12-08 주식회사 케이티 Network adapter and Network control method using the network adapter
US20150195162A1 (en) * 2014-01-06 2015-07-09 Google Inc. Multi-Master Selection in a Software Defined Network
US9397917B2 (en) * 2014-01-10 2016-07-19 Huawei Technologies Co., Ltd. System and method for zoning in software defined networks
WO2015133561A1 (en) * 2014-03-06 2015-09-11 日本電気株式会社 Communication system, control device, communication device, and communication method
CN105282043A (en) * 2014-06-20 2016-01-27 中国电信股份有限公司 Global network load balancing system, device and method
JP6358042B2 (en) * 2014-10-21 2018-07-18 富士通株式会社 Information processing system, control apparatus, and information processing system control method
JP6514329B2 (en) * 2014-11-28 2019-05-15 華為技術有限公司Huawei Technologies Co.,Ltd. Memory access method, switch, and multiprocessor system
US10237189B2 (en) * 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
CN105812269B (en) * 2014-12-31 2019-04-23 华为技术有限公司 Method for creating port group in SDN, SDN controller and network system
US20160315866A1 (en) * 2015-04-27 2016-10-27 Telefonaktiebolaget L M Ericsson (Publ) Service based intelligent packet-in mechanism for openflow switches
CN104917697B (en) * 2015-06-02 2017-12-08 西安电子科技大学 WiFi wireless relay networks and its Realization Method of Communication based on SDN
JP6938944B2 (en) * 2016-05-26 2021-09-22 富士通株式会社 Information processing device and load balancing control method
WO2018059690A1 (en) * 2016-09-29 2018-04-05 Siemens Aktiengesellschaft Method for operating an industrial automation system communication network comprising a plurality of communication devices, and control unit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010045502A (en) * 2008-08-11 2010-02-25 Nippon Telegr & Teleph Corp <Ntt> Packet transfer system and packet transfer method
WO2011074516A1 (en) * 2009-12-15 2011-06-23 日本電気株式会社 Network system, method for controlling same, and controller
US20120020361A1 (en) * 2010-01-05 2012-01-26 Nec Corporation Switch network system, controller, and control method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2506505A4 (en) 2009-11-26 2017-07-12 Nec Corporation Load distribution system, load distribution method, and program
JP5521613B2 (en) 2010-02-15 2014-06-18 日本電気株式会社 Network system, network device, route information update method, and program
JP5757552B2 (en) 2010-02-19 2015-07-29 日本電気株式会社 Computer system, controller, service providing server, and load distribution method
JP5569207B2 (en) 2010-07-16 2014-08-13 横浜ゴム株式会社 Pneumatic tire
US8593958B2 (en) * 2011-09-14 2013-11-26 Telefonaktiebologet L M Ericsson (Publ) Network-wide flow monitoring in split architecture networks
JP2013105308A (en) 2011-11-14 2013-05-30 Nippon Telegr & Teleph Corp <Ntt> Load distribution system, load distribution device, load distribution method and load distribution program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010045502A (en) * 2008-08-11 2010-02-25 Nippon Telegr & Teleph Corp <Ntt> Packet transfer system and packet transfer method
WO2011074516A1 (en) * 2009-12-15 2011-06-23 日本電気株式会社 Network system, method for controlling same, and controller
US20120020361A1 (en) * 2010-01-05 2012-01-26 Nec Corporation Switch network system, controller, and control method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019213997A1 (en) * 2018-05-07 2019-11-14 清华大学 Method, apparatus and system for matching user terminal with controller in communication network

Also Published As

Publication number Publication date
EP2811701A1 (en) 2014-12-10
WO2013114490A1 (en) 2013-08-08
JP5794320B2 (en) 2015-10-14
US9577941B2 (en) 2017-02-21
JPWO2013114490A1 (en) 2015-05-11
US20140355448A1 (en) 2014-12-04
EP2811701A4 (en) 2015-08-19
EP2811701B1 (en) 2019-07-24
CN104094565B (en) 2017-06-27

Similar Documents

Publication Publication Date Title
CN104094565B (en) Controller, method for distributing load, computer system and control device
US10868757B2 (en) Efficient routing in software defined networks
US8832272B2 (en) Network system, control method for the same, and controller, using targeted relay processing devices
JP5488979B2 (en) Computer system, controller, switch, and communication method
JP5850068B2 (en) Control device, communication system, communication method, and program
JP5585660B2 (en) Communication system, control device, processing rule setting method and program
US9479323B2 (en) Communication system, forwarding node, control device, communication control method, and program
US20130246655A1 (en) Communication path control system, path control device, communication path control method, and path control program
CN105245449A (en) Communication system, control device, processing rule setting method, packet transmission method
CN104054304A (en) Computer system, controller, switch, communication method, and recording medium storing network management program
US10069648B2 (en) Communication system, control apparatus, communication control method and program
US20150256407A1 (en) Control apparatus, control method thereof, and program
WO2016153506A1 (en) Fast failover recovery in software defined networks
WO2012141241A1 (en) Network, data transfer node, communication method, and program
CN107078953B (en) Method for scalable computer network partitioning
US20170078222A1 (en) Control device and method of controlling a plurality of network switches
US8792503B2 (en) Path selection method, information processor, network system, and path selection program
US10462064B2 (en) Maximum transmission unit installation for network traffic along a datapath in a software defined network
WO2011118574A1 (en) Communications system, control device, delay measuring method, and program
WO2014157512A1 (en) System for providing virtual machines, device for determining paths, method for controlling paths, and program
US20150381775A1 (en) Communication system, communication method, control apparatus, control apparatus control method, and program
CN108390780B (en) Method and apparatus for processing information
JPWO2014123194A1 (en) COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION CONTROL METHOD, AND PROGRAM
JP2018113564A (en) Communication system, switch, control unit, communication method, and program
HK1213383A1 (en) Control device discovery in networks having separate control and forwarding devices

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170627