WO2011043312A1 - ネットワークシステムとコントローラ、方法とプログラム - Google Patents

ネットワークシステムとコントローラ、方法とプログラム Download PDF

Info

Publication number
WO2011043312A1
WO2011043312A1 PCT/JP2010/067404 JP2010067404W WO2011043312A1 WO 2011043312 A1 WO2011043312 A1 WO 2011043312A1 JP 2010067404 W JP2010067404 W JP 2010067404W WO 2011043312 A1 WO2011043312 A1 WO 2011043312A1
Authority
WO
WIPO (PCT)
Prior art keywords
alternative route
node
flow
flow information
controller
Prior art date
Application number
PCT/JP2010/067404
Other languages
English (en)
French (fr)
Inventor
鈴木 一哉
大和 純一
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2011535389A priority Critical patent/JP5652400B2/ja
Priority to US13/500,065 priority patent/US8780721B2/en
Publication of WO2011043312A1 publication Critical patent/WO2011043312A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/247Multipath using M:N active or standby paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • 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/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities

Definitions

  • the present invention relates to a network system, a controller, a method, and a program.
  • the switch includes a flow table that performs packet lookup and forwarding, and a secure channel for communication with the controller.
  • the controller communicates with the switch on the secure channel using the open flow protocol, and controls the flow at, for example, an API (Application Program Interface) level. For example, when the first packet (first packet) arrives at the switch, the switch searches the flow table with the header information of the packet. If there is no match (mishit), the switch forwards the packet to the controller via a secure channel.
  • API Application Program Interface
  • the controller determines the path of the packet from the network topology information managed by the controller based on the transmission destination and transmission source information of the packet. Based on the determined route, the controller sets each flow table for each switch on the route. The second and subsequent packets hit the flow table of the switch and are not transferred to the controller, but are directly transferred to the next switch specified by the entry of the flow table.
  • OFS for details of OFS, including the following outline, refer to Non-Patent Documents 1 and 2, for example.
  • the switch flow table has a rule (Rule) for collating with the packet header, an action (Action) that defines processing for the flow, and flow statistical information (Statistics) for each flow.
  • An exact value (exact) and a wild card (wild card) are used as a rule (Rule) for matching with the packet header.
  • the action (Action) is an action applied to a packet that matches the rule.
  • Flow statistics is the number of active entries, the number of packet lookups, the number of packet matches, the number of received packets, the number of received bytes, the period during which the flow is active, the number of received packets, the number of transmitted packets, It includes a reception byte, a transmission byte, a reception drop, a transmission drop, a reception error, a transmission error, a reception frame alignment error, a reception overrun error, a reception CRC (Cyclic Redundancy Check) error, and the number of collisions.
  • the packet input to the switch is matched with the rule of the flow table, and when an entry matching the rule is found, the action of the matched entry is applied to the packet. If no matching entry is found, the packet is forwarded to the controller via the secure channel, and the controller sends the flow entry that determined the packet path to the switch. In the switch, the flow entry is added, changed, or deleted with respect to the flow entry of the switch.
  • the predetermined field of the packet header is used for matching (matching) with the rules of the switch flow table.
  • Match target information includes MAC (Media Access Control) DA (MAC destination address), MAC SA (MAC source address), Ethernet type (TPID), VLAN ID (Virtual Area Network) ID, VLAN TYPE (VLAN type). Priority), IP SA (IP source address), IP DA (IP destination address), IP protocol, Source Port (TCP (Transmission Control Protocol) / UDP (User Datagram Protocol) source port, or ICMP (Internet ControlControl) Protocol) Type) Destination port (TCP / UDP destination port, or,, ICMP Code) including (see Figure 20).
  • MAC Media Access Control
  • MAC SA MAC source address
  • Ethernet type TPID
  • VLAN ID Virtual Area Network ID
  • VLAN TYPE VLAN type
  • Priority IP SA (IP source address), IP DA (IP destination address), IP protocol, Source Port (TCP (Transmission Control Protocol) / UDP (User Datagram Protocol
  • FIG. 21 illustrates action names and action contents.
  • OUTPUT is output to a designated port (interface).
  • SET_VLAN_VID to SET_TP_DST are actions for modifying the field of the packet header.
  • the switch forwards the packet to the physical port and the following virtual port.
  • FIG. 22 illustrates a virtual port.
  • IN_PORT outputs a packet to an input port.
  • NORMAL processes using an existing forwarding path supported by the switch.
  • the FLOOD is transferred to all the ports in the communicable state (Forwarding state) except for the port from which the packet has come. ALL forwards to the port except the port from which the packet came.
  • the CONTROLLER encapsulates the packet and sends it to the controller via the secure channel.
  • flow information including flow entry rules, actions, and flow statistical information is referred to as a “flow entity”.
  • flow statistical information is not treated as the subject of the invention, the flow statistical information is omitted as a flow entity, and rules and actions are shown.
  • a table storing a flow entity is called a flow entity table.
  • a flow table is provided with a table consisting only of a destination IP address and a table consisting of a combination of a destination IP address and a source IP address, and the two tables are selectively used according to the contents of the flow, and transmitted step by step.
  • An IP flow multi-stage hash device is disclosed that performs detailed flow control and prevents an increase in the flow table by additionally registering the original IP address and L4 port number, but it does not delete or change the flow. Absent.
  • the controller determines a route for transferring the packet, and for each node on the route, the packet is sent to the route. Along with this, the setting of the flow entity for transfer is instructed.
  • the matching (match) between a packet header and a flow entity table may be implemented by hardware such as CAM (content addressable memory).
  • CAM content addressable memory
  • the inventors of the present application have created a method that can reduce the number of flows that pass through a routed node and reduce the number of flow entities registered in the node. To do.
  • flow aggregation is the integration of a plurality of flows that pass through a certain node into one flow, and the flow information of a plurality of entries respectively corresponding to the plurality of flows registered in the node is integrated into a single flow. Corresponding to integration into one entry.
  • the invention disclosed in the present application is generally configured as follows.
  • a controller that controls the flow of a plurality of subordinate nodes When moving a flow that passes a certain node to another alternative route that does not pass the certain node that the flow has passed, Obtaining a plurality of alternative route candidates that do not pass through the certain node through which the flow of the movement target matches, and the transmission source and destination of the route corresponding to the flow of the movement target match; Determining an alternative route according to a predetermined criterion from among the plurality of alternative route candidates; A network control method for aggregating flows of nodes on the alternative route is provided.
  • a plurality of nodes whose flow is controlled by a controller;
  • the controller With The controller is When moving a flow that passes a certain node to another alternative route that does not pass the certain node that the flow has passed, Obtaining a plurality of alternative route candidates that do not pass through the certain node through which the flow has passed, the source and destination of the route corresponding to the flow to be moved match; Determining an alternative route according to a predetermined criterion from among the plurality of alternative route candidates; A network system that aggregates the flows of the nodes on the alternative route is provided.
  • a node state changing unit that controls a change in the state of a subordinate node;
  • a flow information setting unit for instructing each node on a path corresponding to the flow to set flow information that defines an operation in a node for the flow;
  • An alternative route calculation unit that determines an alternative route according to a predetermined criterion from among the plurality of alternative route candidates;
  • a route aggregation execution unit for aggregating flows of nodes on the alternative route;
  • a controller is provided.
  • a node state change process for controlling a change in the state of a subordinate node; Flow information setting processing for setting flow information that defines an operation in a node for a flow to each node on a route corresponding to the flow; When moving a flow that passes a certain node to another alternative route that does not pass the certain node that the flow has passed, Finding an alternative route candidate that does not pass through the certain node through which the flow has passed, with the source and destination of the route corresponding to the flow to be moved matched, An alternative route calculation process for determining an alternative route according to a predetermined criterion from among the plurality of alternative route candidates; Route aggregation execution processing for aggregating flows of nodes on the alternative route; A program for causing the controller to execute is provided.
  • the present invention also provides a computer-readable recording medium that records the program.
  • the number of flows passing through a node can be reduced, and the number of flow information entries registered in the node can be reduced.
  • the controller 20 that controls the flow of the subordinate node replaces the flow that passes through the node with another node that does not pass through the node through which the flow has passed.
  • the source and destination of the route corresponding to the flow to be moved are matched, and an alternative route candidate that does not pass through the node through which the flow to be moved has passed is obtained.
  • the alternative route is determined according to the criteria, and the flows of each node on the alternative route are aggregated.
  • the controller includes a state changing unit (switch state changing unit 206) that controls a change in the state of a subordinate node (for example, the switch 10 in FIG. 1), A flow information setting unit (flow entity setting unit 202) for instructing each node on the route corresponding to the flow to set the flow information defining the operation of the node with respect to the flow; When moving a flow that passes a certain node to another alternative route that does not pass the node that the flow has passed, Find the alternative route candidate that does not pass the node through which the flow passed, and the source and destination of the route corresponding to the flow to be moved match.
  • An alternative route calculation unit (210) for determining an alternative route according to a predetermined criterion from among alternative route candidates;
  • a route aggregating unit (207, 208) for aggregating the flows of the respective nodes on the alternative route.
  • the controller (20) instructs each node on the path corresponding to the flow to set the flow information that defines the operation of the node for the flow,
  • Each node (10 in FIG. 1) holds the flow information of the number of entries corresponding to the number of flows passing through the node in the table according to an instruction from the controller (20).
  • the controller (20) aggregates the flows of the nodes on the alternative path
  • the controller (20) aggregates the entries of the flow information corresponding to the flows at the nodes on the alternative path.
  • the controller (20) determines an alternative route from the alternative route candidates based on the number of entries in the flow information of the node on the alternative route candidate. In this case, the controller 20 obtains the total number of flow information entries of each node on the alternative route candidates for each of the alternative route candidates, and the total number of flow information entries from among the alternative route candidates is greater than the others. A small alternative route candidate may be determined as an alternative route. Alternatively, the controller (20) obtains the maximum value of the number of entries in the flow information of each node on the alternative route candidate for each of the alternative route candidates, and the maximum value of the number of entries in the flow information is determined from the alternative route candidates. An alternative route candidate smaller than the other may be determined as an alternative route.
  • the controller 20 may be configured to determine an alternative route based on the traffic amount of the node on the alternative route candidate from the alternative route candidates.
  • the controller (20) obtains the total amount of traffic of each node on the alternative route candidate for each of the alternative route candidates, and from among the alternative route candidates, the alternative route candidate whose total traffic amount is smaller than the others. May be determined as an alternative route.
  • the controller (20) obtains the maximum value of the traffic amount of each node on the alternative route candidate for each of the alternative route candidates, and from among the alternative route candidates, the alternative route with the maximum traffic amount being smaller than the others.
  • the candidate may be determined as an alternative route.
  • the controller (20) refers to the flow information already set for each node on the alternative route candidate, and the entry of the flow information of each node on the alternative route candidate passes through the node and is the target of movement.
  • the flow information entry corresponding to the flow and how much aggregation can be obtained may be obtained, and the alternative route may be determined from the alternative route candidates.
  • the flow information includes at least a rule for collating with the header of the packet input to the node, and an action for defining an operation including forwarding at the node for a packet that hits the rule.
  • the controller (20) matches the action of the entry of the flow information for each of the nodes on the alternative route candidates, and the number of rule matches And the entry of the flow information with the highest number of matches is set as the aggregation target.
  • the controller (20) when there are a plurality of flow information entries with the same maximum number of matches, the controller (20) has a plurality of combinations according to the combination with the rule element of the flow information entry of the node through which the flow has passed.
  • the flow information entries of the set having the largest number of flow information entries among a plurality of groups are to be aggregated, and for each of the alternative route candidates, the flow information to be aggregated regarding the nodes on the alternative route candidates
  • An alternative route may be determined based on the total number of entries.
  • the controller (20) creates a new flow information entry using a field of non-matching elements in the rule as a wild card for a plurality of flow information entries that can be aggregated in a node on an alternative route. Instruct the node to set. In the node, the flow information entry that can be aggregated is deleted from the node.
  • the controller (20) may aggregate the flows that pass through the node and then move the flow to the alternative route.
  • the number of flow information entries set in a node can be reduced by moving the flow passing through the node to another alternative route that does not pass through the node through which the flow has passed. .
  • the node by moving the flow passing through the node to another alternative route, it is possible to maintain, adjust, etc. an empty port in the node, and to move the flow passing through the node to another alternative route.
  • the node can be removed from the network for maintenance and adjustment.
  • flow shifting for example, during night operation.
  • a node whose flow is controlled by a controller will be described as a switch.
  • the node is not limited to such a configuration.
  • FIG. 1 is a diagram showing an example of a network to which the present invention is applied.
  • a switch (OFS: Open Flow Switch) 10 holds flow information (including a rule + action, hereinafter referred to as “flow entity”) set from a controller (Controller) 20, and a packet that has arrived corresponds.
  • the rule to be searched is searched from the flow entity table (flow table), and if it matches, the action is executed.
  • the switch (OFS) 10 notifies the controller 20 when the arrived packet does not match the rule of the flow entity table.
  • a flow having priority and high priority is effective.
  • the controller 20 calculates an appropriate route based on the packet sent from the switch (OFS) 10, generates a flow, and instructs the switch group serving as the route to set the flow.
  • the connection configuration of the switch (OFS) 10 is only an example, and there may be a plurality of paths with nodes such as FatTree and HyperCube.
  • the node (Node) 30 in the figure has two or more network interfaces such as a server, a load balancer, a firewall, a storage (NAS (Network Attached Storage), a SAN (Storage Area Network)), a cluster storage, and other distributed storage nodes. 1, the node 30 is a node that does not receive flow control from the controller 20 that performs flow control on the plurality of switches 10.
  • the node 30 has a function of communicating with the controller 20. 1, for the sake of simplicity, it is described as a configuration in which the switch 10 is controlled by a single controller 20, but each of the plurality of controllers has one subordinate or Multiple switches Of course, it is also possible to adopt a configuration for controlling the H.
  • the controller 20 holds the connection state of the switch 10 and the node 30 as topology information.
  • the set route information is held as effective route information.
  • the controller 20 manages which route all flows pass through. For identification of the flow, a MAC address, an IP address, a port number, or the like can be used.
  • aggregation refers to handling multiple flows with different destination fields together as a single flow with the same destination address for the packet header that matches the rules of the flow entity regarding the flow of packets. Say. In this case, fields other than the destination address are treated as any (arbitrary).
  • the rule of the flow entity is set to wild card.
  • the number of entries in the flow entity table of the switch is reduced by considering the aggregation of flows when a path (path) is replaced.
  • the controller 20 moves the flows 1, 2, and 3 that pass through the switch X separately, the flows 1 and 2 can be aggregated, and therefore, the controller 20 collectively passes through the switch Y as one flow. Going to flow, flow 3 is going to flow through switch Z. There are the following two modes for moving the flow.
  • (A) and (B) may be mixed.
  • the flow is moved to the movement destination collectively in a unit that can be aggregated, and can be aggregated with the existing flow that passes through the switch of the movement destination. For this reason, in the movement destination switch, an increase in the flow entity can be suppressed even after the flow movement.
  • only one of the flows passing through the switch X may be moved to the other switch, and the other flow may pass through the switch X as before.
  • all flows passing through the switch X may be moved to another route. In this case, this corresponds to removing the switch X from the route on the network and detouring to another route.
  • Controller 20 receives the switch of the movement source designated by the administrator.
  • the controller 20 collects the flows that pass through the source switch for each flow that has the same exit (for example, the same destination IP address).
  • the controller 20 determines an alternative switch candidate as a movement destination.
  • the controller 20 determines an optimum destination switch from the destination switch candidates. ⁇ The switch with the smallest load is the optimum switch. -Count the number of flows that pass through each switch and whose exit is the same as the flow to be moved. The switch with the largest number of flows is set to the optimum switch as the destination switch.
  • the controller 20 changes the route so that the flow group to be moved passes through the destination switch.
  • the flow entities in the movement target flow group are aggregated into one flow entity, and the aggregated flow entities are registered in the flow entity table of the movement destination switch.
  • the flows in the destination switch are also aggregated with the groups of flows that can be aggregated.
  • FIG. 3 is a diagram illustrating a configuration example of the controller 20.
  • the controller 20 inputs a packet processing unit 201 that receives a packet from the switch 10, a flow entity setting unit 202 that sets a flow entity for the switch 10, and path configuration information (packet that triggered the creation of a path) Switch information, header information of the packet, switch identification information constituting the route and its flow entity), topology information 204 for storing node and switch network topology, and route calculation A route calculation unit 205 that performs switching, a switch state change unit 206 that changes a switch state, a route aggregation execution unit 207 that aggregates routes, an aggregate route storage unit 208 that stores aggregated routes, and a destination An alternative route calculation unit 210 that calculates a route including an alternative switch Eteiru.
  • the alternative route calculation unit 210 refers to the topology information 204, calculates an alternative route candidate whose destination matches the transmission source and destination of the route corresponding to the movement target flow, and the influence degree of the alternative route candidate. And an alternative route determination unit 213 for determining an alternative route from the influence degree of each alternative route candidate. It goes without saying that each part of the controller 20 may realize its function by a program executed on the controller 20 (computer).
  • FIG. 4 is a diagram illustrating a configuration example of the switch 10.
  • the switch 10 sets a packet processing unit 101, a flow entity table (also referred to as “flow table”) 102, a packet notification unit 103 that notifies the controller of the first packet, and a flow entity instructed by the controller 20. And a flow entity setting unit 104.
  • a node that can function as an OFS and operates as a layer 2 switch, a layer 3 switch, a router, or the like.
  • FIG. 5 is a diagram illustrating an example of a data structure of data stored in the effective path storage unit 203.
  • the route management table is a table for managing route configuration information for each route.
  • one route corresponds to each entry, and route configuration information of the one route corresponds.
  • information on the switch (switch ID, interface) to which a packet is formed that forms a route and the controller 20 creates a new route, and header information of the packet And a pointer pointing to route configuration information corresponding to the route.
  • the source and destination IP addresses may be recorded.
  • the path configuration information has, for each path, a set of switch identification information and a flow entity set for the switch for each switch in the switch group (from the start point of the path to the intermediate point and end point of the path) that configures the path. .
  • a route is composed of n switches, there are n pairs of identification information of the switch and pointers to flow entities and aggregated flow entities set in the switch, which correspond to the corresponding entry in the route management table. Pointed to by the pointer.
  • the route configuration information it can be understood from which switch the currently effective route is formed.
  • a flow entity includes rules and actions (may include flow statistics).
  • the route configuration information may be a table configuration, or a combination of switch information and flow entity is a linear list (linked list) with a pointer that points to the combination of switch information and flow entity corresponding to the next switch on the route You may comprise as.
  • route configuration information is registered in the route management table of the effective route storage unit 203 by the switch state change unit 206, and a route that has been invalidated, such as route deletion, It is deleted from the effective path storage unit 203 by the switch state change unit 206.
  • the aggregate route storage unit 208 stores the route configuration information aggregated by the route aggregation execution unit 207.
  • FIG. 6 is a diagram illustrating an example of a data structure stored in the aggregate route storage unit 208.
  • the aggregate route management table has switch identification information for each switch and a pointer (pointer to the aggregate flow entity table for each switch) that points to the aggregate flow entity table for each switch.
  • the aggregated flow entity table for each switch is a table storing a plurality of sets of aggregated flow entities and pointer lists to flow entities corresponding to the aggregated flow entities.
  • a plurality of aggregate flow entities in the aggregate flow entity table stored and held in the aggregate route storage unit 208 of the controller 20 are actually set and registered in the corresponding switch 10.
  • the pointer list to the flow entity provided corresponding to the aggregated flow entity is a list in which a plurality of pointers (so-called back pointers) indicating the flow entity (FIG. 5) aggregated to the aggregated flow entity are stored. It is.
  • the aggregated flow entity corresponding to the pointer list to the flow entity has a plurality of flow entities pointed to by the pointer. It is created by being aggregated into an aggregate flow entity. Further, when the number of pointers in the pointer list to the flow entity is 1, the flow entity is not aggregated.
  • the aggregated flow entity corresponding to the pointer list to the flow entity is not actually referenced, and is deleted.
  • the route calculated by the route calculation unit 205 is registered in the route management table (see FIG. 5) and the route configuration information is created, the following operation is performed on each entry in the route configuration information.
  • the corresponding aggregated flow entity table for each switch is selected from the aggregated route management table.
  • the information of the flow entity in the corresponding entry is copied and stored in a new field in the aggregated flow entity table for each switch. Further, the address of the corresponding entry is stored in the pointer to the flow entity.
  • FIG. 7 is a diagram illustrating a configuration example of the flow entity table 102 stored in the switch 10.
  • the flow entity table is a table in which the switch 10 stores and holds a flow entity instructed by the controller 20. When n different flows pass through the switch 10, the switch 10 holds n flow entities corresponding to each flow. However, when the flow is reduced according to the present embodiment, one flow is stored. Entities will support multiple flows.
  • the flow entity
  • the flow entity of the flow entity table 102 includes rules and actions.
  • the rules are ⁇ Input interface (port) MAC source address MAC destination address VLAN (Virtual Local Area Network) ID, ⁇ TYPE -IP source address-IP destination address-Protocol (UDP (User Datagram Protocol) / TCP (Transmission Control Protocol) / ICPM), ICMP (Internet Control Message Protocol) ICMP type, ICMP code, TCP / UDP Includes source port and destination port.
  • the action is -Action type-Output (OUTPUT), Packet header field conversion (Field Modify), including.
  • the header field conversion is shown in FIG.
  • the output interface (port) is included.
  • the action is header field conversion
  • the field to be changed and the value to be changed are included.
  • the rule may specify values for all fields, specify individual fields (fields) as wildcards, and match the values of the fields for which the wildcards are pointed out when matching with flow entries. It may be specified to be ignored (the field in which wildcard is specified always matches).
  • FIG. 8 is a flowchart for explaining the operation of the embodiment of the present invention.
  • Step 1 The flow F passing through the switch X is moved so as not to pass through the switch X. That is, the administrator gives the switch X and the flow F to be moved as inputs to the switch state changing unit 206 of the controller 20 (S1).
  • Step 2 The switch state changing unit 206 of the controller 20 examines the flow transmission source and the transmission destination and sets them to S and D, respectively, and causes the alternative route calculation unit 210 to calculate an alternative route (S2).
  • Step 3 The alternative route candidate calculation unit 211 of the alternative route calculation unit 210 refers to the topology information 204 and calculates an alternative route candidate based on the topology information 204 from which the switch X is removed (S3). At that time, a route having the same transmission source and destination corresponding to the flow F is set as an alternative route candidate.
  • the alternative route candidate calculation unit 211 transmits the packet header information that triggered the route creation registered in each entry of the route management table (FIG. 5) of the effective route storage unit 203 that stores the valid route information. And the destination information and the switch identification information of the path configuration information pointed to by the entry may be searched, and the alternative path candidate corresponding to the flow F passing through the switch X may be extracted from the existing paths.
  • the alternative route candidate calculation unit 211 may notify the administrator of an error (no alternative route candidate is found) via the switch state change unit 206.
  • a new alternative route may be calculated with reference to the topology information 204.
  • Step 4 The influence calculation unit 212 of the alternative route calculation unit 210 performs the following step 5 for each alternative route candidate Ri (S4).
  • Step 5 The influence degree Ei is obtained for each alternative route candidate Ri (S5).
  • Step 6 Repeat from step 4 (loop) (S6).
  • Step 7 The alternative route determination unit 213 of the alternative route calculation unit 210 selects, for example, an alternative route candidate Ri having the smallest influence degree Ei as an alternative route (S7).
  • Step 8 The switch state changing unit 206 instructs the flow entity setting unit 202 to delete the flow entity related to the flow F in each switch of the old route in the effective route storage unit 20 (S8).
  • the flow entity setting unit 104 of the switch 10 deletes, from the flow entity table 102, the flow entity that is instructed to be deleted from the flow entity setting unit 202 of the controller 20.
  • Step 9 The following is performed for each switch in the alternative route Ri (S9).
  • Step 10 The route aggregation executing unit 207 aggregates routes that can be aggregated and registers them in the aggregated route storage unit 208 (S10).
  • Step 11 The switch state change unit 206 instructs the flow entity setting unit 202 to set the flow entity of the switch on the alternative route, and the flow entity setting unit 202 sets the flow entity of each switch 10 corresponding to the alternative flow. Is registered (S11).
  • the flow entity setting unit 104 of the switch 10 registers the flow entity set from the flow entity setting unit 202 of the controller 20 in the flow entity table 102.
  • the switch state change unit 206 of the controller 20 checks whether it can be aggregated with the flow entities already registered in the flow entity table of the switch, and aggregates them if aggregation is possible.
  • Step 12 Repeat from Step 9 (S12).
  • step S5 As the definition of the degree of influence in step S5, various modifications can be made as described later.
  • Step 1 The pointer of the aggregated flow entity Am (see FIG. 5) is acquired from the entry of the flow entity Ek to be aggregated in the route configuration information in the valid route storage unit 203.
  • Step 2 In the aggregate route storage unit 208, the aggregated flow entity Am in the aggregated flow entity table for each switch pointed to by the pointer of the aggregated flow entity Am is referred to, and in the pointer list to the flow entity corresponding to the aggregated flow entity Am (FIG. 6). The pointer indicating the flow entity Ek to be aggregated is deleted from the reference).
  • Step 3 If the number of pointers in the pointer list to the flow entity corresponding to the aggregated flow entity Am in the aggregated flow entity table for each switch in the aggregated route storage unit 208 becomes 0 in step 2, the aggregated flow entity Am Is deleted. Further, the flow entity setting unit 202 is instructed to delete the flow entity Am from the switch Si.
  • Step 4 If Steps 1 to 3 are not executed for all the flow entities E1 to En to be aggregated, the process returns to Step 1 (repetitive processing of E1 to En).
  • Step 5 In the aggregated route storage unit 208, a new aggregated flow entity Ax is added to the switch-specific aggregated flow entity table corresponding to the switch Sj in the aggregated route management table. Further, the flow entity setting unit 202 is instructed to add the flow entity Ax in the switch Si.
  • Step 6 In the aggregate route storage unit 208, the pointers to the flow entities E1 to En are stored in the pointer list to the flow entity corresponding to the aggregated flow entity Ax.
  • Step 7 Store the pointer to the aggregate flow entity Ax in the pointer to the aggregate flow entity corresponding to each of the flow entities E1 to En of the path configuration information in the valid path storage unit 203.
  • FIG. 9 is a diagram showing a network configuration to which the present invention is applied.
  • the source node or switch of the flow F is S
  • the destination (destination) node or switch is D.
  • the transmission source and transmission destination may be IP addresses or MAC addresses.
  • the current route of this flow F (the route that realizes the packet flow F) is: S ⁇ SW1 ⁇ SW2 ⁇ SW3 ⁇ D It becomes.
  • This route (S.fwdarw.SW1.fwdarw.SW2.fwdarw.SW3.fwdarw.D) is the packet header information that triggered the route creation in the route management table (see FIG. 5) of the effective route storage unit 203 of the controller 20, and the route management table. Is registered as route configuration information (including switch information and flow entities for each switch constituting the route).
  • the switch SW1 is connected to the transmission source S and the switches SW2 and SW5 via three interfaces (not shown), and the switch SW2 is connected to the switches SW1, SW4, and SW6 via four interfaces (not shown).
  • SW3 the switch SW4 is connected to the transmission source S and the switches SW2, SW5 through three interfaces (not shown), and the switch SW5 is connected to the switches SW4, SW1, SW3, SW6 through four interfaces (not shown).
  • the switch SW3 is connected to the switches SW2, SW5, and the destination D through three interfaces (not shown), and the switch SW6 is connected to the switches SW2, SW5, and the destination D through three interfaces (not shown). To do.
  • FIG. 10 is a diagram illustrating selection of alternative route candidates by the alternative route candidate calculation unit 211 (FIG. 3) of the alternative route calculation unit 210.
  • An alternative route candidate having the same transmission source (S) and transmission destination (D) as the old route (flow F) is selected.
  • the alternative route candidate calculation unit 211 is provided for each route in the route management table (see FIG. 5) of the effective route storage unit 203 and is a transmission source (S) and transmission destination (D) of a packet header that triggers the creation of the route. If they match, the path configuration information pointed to by the entry in the path management table is searched. If the switch SW2 is not included in the path, the path may be derived as an alternative path candidate. In FIG. 10, the transmission source (S) and the transmission destination (D) match, and the following three routes are obtained as alternative route candidates that do not include the switch SW2.
  • Alternative route candidate 1 S ⁇ SW1 ⁇ SW5 ⁇ SW6 ⁇ SD
  • Alternative route candidate 2 S ⁇ SW4 ⁇ SW5 ⁇ SW6 ⁇ SD
  • Alternative route candidate 3 S ⁇ SW4 ⁇ SW5 ⁇ SW3 ⁇ SD
  • the degree of influence on the flow F with respect to the switches SW1, SW5, and SW6 is sequentially obtained in the procedure of steps S6-S9 in FIG.
  • the added value is the influence E1 of the alternative route candidate 1 as a whole.
  • FIG. 11 is a diagram for explaining a first example of the definition of the influence degree Ei in the influence degree calculation unit 212.
  • the number of flow entities in the flow entity table 102 of the switches (SW1, SW3 to SW6) is defined as the degree of influence.
  • the numerical value added to each of the switches SW1 to SW6 is the current number of flow entities (including the old path of the flow F). Also, old indicates the old route, and candidates 1, 2, and 3 indicate alternative route candidates 1, 2, and 3, respectively.
  • the alternative route determination unit 213 selects the alternative route candidate 2 having the smallest influence among the alternative route candidates 1, 2, and 3.
  • FIG. 12 is a diagram illustrating a second example of the definition of the influence degree.
  • the MAX (maximum) value of the number of flow entities is used as the degree of influence. That is, the influence value is the maximum value E2 of the number of flow entities in the flow entity table of each switch.
  • the numerical value added to each switch is the current number of flow entities (including the old path of flow F).
  • the alternative route determination unit 213 selects the alternative route candidate 2 having the smallest influence among the alternative route candidates 1, 2, and 3.
  • the increase in the number of flow entities due to the new route and the decrease in the number of flow entities due to the old route are not considered in the switch.
  • the number of flow entities of the switch is used for the influence degree of the alternative route candidate, but the amount of traffic passing through the switch may be used.
  • FIG. 13 is a diagram illustrating a configuration example of the controller 20 according to another embodiment of the present invention.
  • the traffic amount is used as the influence degree.
  • the controller 20 is added with the traffic volume management unit 214 configured as shown in FIG. 3, and the influence level calculation unit 212 ⁇ / b> A calculates the influence level based on the traffic volume of each switch from the traffic volume management unit 214. .
  • FIG. 14 is a diagram illustrating the configuration of the switch 10.
  • the configuration of FIG. 4 includes a traffic amount measurement unit 105 and a traffic amount notification unit 106 that notifies the controller 20 of the traffic amount.
  • the traffic amount measuring unit 105 adds the size of the received packet per unit time to a counter (not shown).
  • the traffic amount notifying unit 106 notifies the controller 20 of the value (reception data amount) of a counter (not shown) every predetermined unit time, and then clears the counter (not shown) to zero.
  • a counter may start counting the received packet size immediately, or may start counting the received packet size after a predetermined period.
  • the traffic amount measuring unit 105 may average the reception packet size count result per predetermined unit time several times and notify the controller 20 of the average received data amount. Alternatively, it is needless to say that the traffic amount measuring unit 105 of the switch 10 may be instructed to start the reception packet size counting operation from the controller 10 side.
  • the influence degree of the influence degree calculation unit 212A will be described.
  • FIG. 15 is a diagram illustrating an example in which the traffic amount is used as the influence degree of the alternative route candidate in the alternative route candidates 1, 2, and 3 in FIG.
  • the influence is the total amount of traffic per unit time passing through the switch of the alternative route.
  • numerical values 8, 6, 7, 5, 3, and 4 added to the switches SW1, SW2, SW3, SW4, SW5, and SW6 represent traffic amounts (relative amounts) per unit time that pass through the switches. ing.
  • the alternative route determination unit 213 selects the alternative route candidate 2 having the smallest influence among the alternative route candidates 1, 2, and 3.
  • the traffic amount of the switch with the largest traffic amount in the route may be used as the degree of influence.
  • the alternative route determination unit 213 selects the alternative route candidate 2 having the smallest influence degree among the alternative route candidates 1, 2, and 3.
  • FIG. 16 shows a procedure of the alternative route candidate influence calculation unit 212.
  • Step 1 In the flow entity table of the switch, the flow entity (switch rule + action) of the switch to be moved of the flow to be registered is set to Fe (S101).
  • Step 2 The influence calculation unit 212 performs the following operation on each switch in the alternative route candidate obtained by the alternative route candidate calculation unit 211 for the above flow (S102).
  • Step 3 M ⁇ 0 (S103)
  • Step 4 The following comparison with Fe is performed for each flow entity Fi in the flow entity table possessed by each switch in the alternative route candidate, and the degree of matching is obtained (S104).
  • Step 5 The actions of the flow entities Fi and Fe in the flow entity table of each switch in the alternative route candidate are compared, and if they do not match, the number of matches (degree of match) is set to 0 (S105).
  • Step 6 The number of identical elements among the rules of each flow entity Fi and Fe in the flow entity table possessed by each switch in the alternative route candidate is set as the matching degree (S106).
  • Step 7 Repeat from Step 4 (S107).
  • Step 8 The flow entity having the highest number of matches is set as an aggregation target with Fe (consolidated into one flow entity) (S108). However, if there are multiple items with a high degree of coincidence, it is determined as follows.
  • Step 9 Create a set with the same rules that match Fe. All the flow entities in the set having the same number of elements as Fe in the rule are aggregated (aggregate into one flow entity) (S109).
  • Step 10 Add the number of aggregation target entities to M (S110).
  • Step 11 Repeat from Step 2 (S111).
  • Step 12 The reciprocal of M is set as the influence degree of this alternative route candidate (S112).
  • the reciprocal of M is set in accordance with the operation of selecting an alternative candidate having a minimum influence value in step S7 of FIG.
  • FIG. 17 is a diagram illustrating determination of the number of entities that can be aggregated in the influence degree calculation unit 212 whose operation has been described with reference to FIG.
  • Fe is a flow entity to be registered (flow entity to be aggregated), and the destination IP address of the rule is A, the source IP address is C, the source port is X, and the destination port is Y.
  • the action for the packet whose packet header matches this rule is transfer to SW5.
  • Flow entity 2 has an action (transfer to SW5) that matches the action of Fe (transfer to SW5), and the rule has a match number of 2 because the source IP address and the source port match.
  • Flow entities 3 and 4 have the same destination IP address, source IP address, and source port.
  • Flow entities 5 and 6 have the same destination IP address, source port, and destination port.
  • Flow entities 7, 8, and 9 have the same source IP address, source port, and destination port.
  • set 3 Since set 3 has the maximum number of elements (flow entities 7, 8, 9) and the number of sets, set 3 is selected and 3 is added to M.
  • the flow entities 7, 8, 9 and the flow entity Fe to be registered are aggregated into one flow entity.
  • FIG. 18 is a flowchart showing a procedure for registering the aggregated flow entities in the switch, and corresponds to step S11 in FIG.
  • the route aggregation execution unit 207 of the controller 20 includes a flow entity that can be aggregated (for example, flow entities 7, 8, and 9 in FIG. 17B) and a flow entity that is to be registered (for example, Fe in FIG. 17A). Among them, a new aggregated flow entity is created with a field that does not match the rule as a wild card, and is stored in the corresponding entry of the aggregated flow entity for each switch managed in the aggregated management table of the aggregated path storage unit 208. 206 is notified. In response to the notification from the route aggregation execution unit 207, the switch state changing unit 206 instructs the flow entity setting unit 202 to set the newly created aggregated flow entity to the switch 10. The flow entity setting unit 104 of the switch 10 registers the flow entity (aggregated flow entity) notified from the flow entity setting unit 202 of the controller 20 in the flow entity table 102 (S11-1).
  • the switch state changing unit 206 performs the original aggregatable flow entity aggregated in the aggregated flow entity (for example, FIG. 17 ( The flow entity setting unit 202 is notified to delete the flow entity 7, 8, 9) of B) from the flow entity table 102 of the switch 10.
  • the flow entity setting unit 104 of the switch 10 receives the instruction to delete the flow entity from the flow entity setting unit 202 of the controller 20, deletes the corresponding flow entity from the flow entity table 102, and deletes the flow entity.
  • the entity setting unit 202 is notified (S11-2).
  • the flow entity registered in the flow entity table 102 of the switch 10 becomes invalid if no packet that matches the rule arrives for a period specified by the system, for example.
  • the path configuration information on the path management table (see FIG. 5) of the effective path storage unit 203 and the related entries in the path management table are deleted.
  • the node includes the switch (OFS) of the above-described embodiment, and includes any switch (L2 / L3 switch), a router, and the like whose flow is controlled by the controller.
  • the controller 20 of the above-described embodiment can also be realized as a dedicated server.
  • the switch 10 in addition to the above-mentioned OFS (OpenFlow Switch), a router in an IP network, an MPLS switch in an MPLS (Multi-Protocol Label Switching) network.
  • OFS OpenFlow Switch
  • MPLS Multi-Protocol Label Switching
  • This can be realized with a node such as
  • the present invention can be applied to any network in which the controller centrally manages the nodes in the network.
  • Switch 20 Controller 30 Node 101 Packet processing part 102 Flow entity table 103 Packet notification part 104 Flow entity setting part 105 Traffic volume measurement part 106 Traffic volume notification part 201 Packet processing part 202 Flow entity setting part 203 Effective path

Abstract

 本発明は、ノードを通過するフローの数を削減し該ノードに登録されるフロー情報のエントリ数の削減を可能とする。配下のノードのフローを制御するコントローラが、ノードを通過するフローを、該フローが通っていたノードを通らない別の代替経路に移す際に、移動対象のフローに対応する経路の送信元と宛先が一致し、移動対象のフローが通っていた前記ノードを通らない代替経路候補を求め、代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、代替経路上の各ノードのフローを集約する。

Description

ネットワークシステムとコントローラ、方法とプログラム
 (関連出願についての記載)
 本発明は、日本国特許出願:特願2009-232307号(2009年10月6日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明はネットワークシステムとコントローラ、方法とプログラムに関する。
 プログラマブル化ネットワークアーキテクチャのさきがけともいわれるOFS(Open Flow Switch)は現在、例えば大学キャンパスや企業ネットワーク等において実験・実用化研究が行われている。はじめにOFSを概説しておく。スイッチは、パケットのルックアップとフォアワーディングを行うフローテーブルと、コントローラとの通信用のセキュアチャネルを備えている。コントローラはオープンフロープロトコルを用いてセキュアチャネル上でスイッチと通信し、例えばAPI(Application Program Interface)レベルでフローを制御する。一例として、スイッチに最初のパケット(first packet)が到着すると、該スイッチは、該パケットのヘッダー情報でフローテーブルを検索する。マッチしない場合(ミスヒット)、スイッチは、当該パケットをコントローラにセキュアチャネルで転送(forward)する。コントローラは、当該パケットの送信先、送信元情報に基づいて、コントローラが管理するネットワークトポロジー情報から、該パケットの経路を決定する。コントローラは、決定した経路に基づいて、経路上の各スイッチに対してそれぞれのフローテーブルを設定する。2番目以降のパケットは、スイッチのフローテーブルにヒットし、コントローラへは転送せず、直接、フローテーブルのエントリで規定される次のスイッチに転送される。以下の概説も含め、OFSの詳細は、例えば非特許文献1、2等が参照される。
 スイッチのフローテーブルは、例えば図19に示すように、パケットヘッダーと照合するルール(Rule)と、フローに対する処理を定義したアクション(Action)と、フロー統計情報(Statistics)をフロー毎に有する。パケットヘッダーと照合するルール(Rule)には、正確な値(exact)、及びワイルドカード(wild card)が用いられる。アクション(Action)は、ルールとマッチしたパケットに適用するアクションである。フロー統計情報は、アクティビティカウンタともいい、アクティブエントリ数、パケットルックアップ数、パケットマッチ数、フロー単位に、受信パケット数、受信バイト数、フローがアクティブな期間、ポート単位で受信パケット、送信パケット、受信バイト、送信バイト、受信ドロップ、送信ドロップ、受信エラー、送信エラー、受信フレームアラインメントエラー、受信オーバーランエラー、受信CRC(Cyclic Redundancy Check)エラー、コリジョン数を含む。スイッチに入力されたパケットはフローテーブルのルールとのマッチ(照合)が行われ、ルールにマッチするエントリが見つかった場合、マッチしたエントリのアクションが当該パケットに対して施される。マッチするエントリが見つからなかった場合、該パケットはセキュアチャネルを介してコントローラに転送され、コントローラは、パケット経路を決定したフローエントリをスイッチへ送信する。スイッチでは、該スイッチのフローエントリに対して、フローエントリの追加、変更、削除を行う。
 パケットのヘッダーの所定のフィールドは、スイッチのフローテーブルのルールとの照合(マッチ)に用いられる。マッチ対象の情報は、MAC(Media Access Control) DA(MACディスティネーションアドレス)、MAC SA(MACソースアドレス)、Ehernetタイプ(TPID)、VLAN ID(Virtual LAN(Local Area Network) ID)、VLAN TYPE(優先度)、IP SA(IPソースアドレス)、IP DA(IPディスティネーションアドレス)、IPプロトコル、Source Port(TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)ソースポート、あるいは、ICMP(Internet Control Message Protocol) Type)、Destination port(TCP/UDPディスティネーションポート、あるいは、ICMP Code)を含む(図20参照)。
 図21に、アクション名とアクションの内容を例示する。OUTPUTは、指定ポート(インタフェース)に出力する。SET_VLAN_VIDからSET_TP_DSTは、パケットヘッダーのフィールドを修正するアクションである。また、スイッチは、物理ポートと以下の仮想ポートへ、パケットを転送(Forward)する。図22に、仮想ポートを例示する。IN_PORTは、パケットを入力ポートに出力する。NORMALは、スイッチがサポートする既存の転送パスを用いて処理する。FLOODは、パケットが入来したポートを除く通信可能状態(Forwarding状態)の全てのポートに転送する。ALLは、パケットが入来したポートを除くポートに転送する。CONTROLLERは、パケットをカプセル化しセキュアチャネルを介してコントローラに送信する。LOCALは、パケットをスイッチ自身のローカルネットワークスタックに送信する。アクションが指定されないフローエントリにマッチしたパケットはドロップ(廃棄)される。なお、本明細書では、フローエントリのルール、アクション、フロー統計情報からなるフロー情報を「フローエンティティ」という。本明細書では、フロー統計情報は、発明の主題として扱われないため、フローエンティティとしてフロー統計情報は省略され、ルール、アクションが示される。フローエンティティを格納するテーブルを、フローエンティティテーブルという。
 特許文献1には、フローテーブルに宛先IPアドレスのみからなるテーブルと宛先IPアドレスと送信元IPアドレスの組からなるテーブルとを設け、フローの内容に応じて2つのテーブルを使い分け、段階的に送信元IPアドレスやL4ポート番号を追加登録していくことで、きめ細かなフロー制御を行うとともにフローテーブルの増大を防ぐIPフロー多段ハッシュ装置が開示されているが、フローの削除、変更を行うものではない。
特開2004-56340号公報
Nick McKeownその他、"OpenFlow: Enabling Innovation in Campus Networks", March 14, 2008 <インターネット URL:http://www.openflowswitch.org//documents/openflow-wp-latest.pdf> "OpenFlow Switch Specification" Version 0.9.0. (Wire Protocol 0x98) July 20, 2009 <インターネット URL: http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
 上述のように、コントローラにより各ノードを制御して経路を決定するネットワークにおいて、コントローラは、パケットを転送するための経路を決定し、該経路上の各ノードに対して、パケットを、該経路に沿って、転送するためのフローエンティティの設定を指示する。しかし、各ノードのフローエンティティテーブルに登録可能なフローエンティティのエントリ数には上限がある。
 一例として、コントローラによって集中制御されるスイッチにおいて、パケットヘッダーと、フローエンティティテーブルと、の照合(マッチ)は、例えばCAM(コンテンツアドレッサブルメモリ)等のハードウエアで実装される場合がある。この場合、フローエンティティテーブルがオーバーフロー状態のときに、コントローラで、新たにフローを決めても、当該スイッチのフローエンティティテーブルは満杯であり、当該フローに対応する新たなフローエンティティを登録することはできない。このため、例えば廃棄されることになる。この結果、ネットワークのパケット転送性能、品質の劣化を招く。このことからも、フローの移動、集約によるスイッチにおけるフローエンティティの登録数を削減する機能の実現が望まれる。
 本願発明者らは、鋭意検討した結果、経路設定されたノードを通過するフローの数を削減し該ノードに登録されるフローエンティティの数を削減可能とする手法を今回創案したので、以下に提示する。
 なお、フローの集約とは、あるノードを通る複数のフローを1つのフローに統合し、当該ノードに登録される複数のフローにそれぞれ対応する複数エントリのフロー情報を、統合化した1つのフローに対応して1つのエントリに統合することをいう。
 本願で開示される発明は課題を解決するため、概略以下の構成とされる。
 本発明によれば、配下の複数のノードのフローを制御するコントローラが、
 あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
 移動対象の前記フローに対応する経路の送信元と宛先が一致し、移動対象の前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
 複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、
 前記代替経路上の各ノードのフローを集約するネットワーク制御方法が提供される。
 本発明によれば、コントローラによってフローの制御が行われる複数のノードと、
 前記コントローラと、
 を備え、
 前記コントローラは、
 あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
 移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
 複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、
 前記代替経路上の各ノードのフローを集約するネットワークシステムが提供される。
 本発明によれば、配下のノードの状態の変更を制御するノード状態変更部と、
 フローに対するノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定を指示するフロー情報設定部と、
 あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
 移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
 複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出部と、
 前記代替経路上の各ノードのフローを集約する経路集約実行部と、
 を備えているコントローラが提供される。
 本発明によれば、配下のノードの状態の変更を制御するノード状態変更処理と、
 フローに対するノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定するフロー情報設定処理と、
 あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
 移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を求め、
 複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出処理と、
 前記代替経路上の各ノードのフローを集約する経路集約実行処理と、
 をコントローラに実行させるプログラムが提供される。
 また本発明によれば該プログラムを記録したコンピュータで読取可能な記録媒体も提供される。
 本発明によれば、ノードを通過するフローの数を削減し該ノードに登録されるフロー情報のエントリ数を削減することができる。
本発明の一実施形態のネットワークシステムの構成を示す図である。 本発明におけるフローの集約を説明する図である。 本発明の一実施形態のコントローラの構成を示す図である。 本発明の一実施形態のスイッチの構成を示す図である。 本発明の一実施形態のコントローラにおける有効経路情報記憶部のデータ構造の一例を示す図である。 本発明の一実施形態のコントローラにおける集約経路記憶部のデータ構造の一例を示す図である。 本発明の一実施形態のスイッチのフローエンティティテーブルを示す図である。 本発明の一実施形態の動作を示す流れ図である。 ネットワークトポロジーとフローの一例を示す図である。 スイッチを通るフローを移動する場合の代替経路候補を示す図である。 スイッチのフローエンティティ数を影響度として経路を選択する場合を説明する図である。 スイッチのフローエンティティ数の最大値を影響度として経路を選択する場合を説明する図である。 本発明の別の実施形態のコントローラの構成を示す図である。 本発明の別の実施形態のスイッチの構成を示す図である。 スイッチのトラフィック量を影響度として経路を選択する場合を説明する図である。 集約可能なフローエンティティ数を影響度として経路を選択する場合の手順を説明する流れ図である。 集約可能フローエンティティの判定を説明する図である。 図8のステップS11の手順を示す図である。 OFSのフローエンティティを説明する図である。 パケットヘッダーのマッチフィールドを説明する図である。 フローエンティティのアクション(Field Modify)を例示する図である。 フローエンティティのアクション(仮想ポート)を例示する図である。
 本発明の実施形態について説明する。
 本発明においては、配下のノード(例えば図1のスイッチ10)のフローを制御するコントローラ20が、ノードを通過するフローを、該フローが通っていたノードを通らず別のノードを通る別の代替経路に移す際に、移動対象のフローに対応する経路の送信元と宛先が一致し、移動対象のフローが通っていたノードを通らない代替経路候補を求め、代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、代替経路上の各ノードのフローを集約する。
 本発明において、コントローラは、配下のノード(例えば図1のスイッチ10)の状態の変更を制御する状態変更部(スイッチ状態変更部206)と、
 フローに対するノードでの動作を規定するフロー情報を、フローに対応した経路上の各ノードにそれぞれ設定を指示するフロー情報設定部(フローエンティティ設定部202)と、
 あるノードを通過するフローを、フローが通っていたノードを通らない別の代替経路に移す際に、
 移動対象のフローに対応する経路の送信元と宛先が一致し、フローが通っていたノードを通らない代替経路候補を求め、
 代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出部(210)と、
 代替経路上の各ノードのフローを集約する経路集約部(207、208)と、を含む。
 本発明において、コントローラ(20)は、フローに対するノードでの動作を規定するフロー情報を設定するよう、フローに対応した経路上の各ノードにそれぞれ指示し、
 各ノード(図1の10)は、コントローラ(20)からの指示により、ノードを通過するフロー数に対応したエントリ数のフロー情報をテーブルに保持する。コントローラ(20)は、代替経路上の各ノードのフローを集約する際、代替経路上の各ノードにおけるフローに対応するフロー情報のエントリの集約を行う。
 本発明において、コントローラ(20)は、代替経路候補の中から、代替経路候補上のノードのフロー情報のエントリ数に基づき、代替経路を決定する。この場合、コントローラ20は、代替経路候補上の各ノードのフロー情報のエントリ数の総計を、代替経路候補のそれぞれについて求め、代替経路候補の中から、フロー情報のエントリ数の総計が他よりも小さい代替経路候補を代替経路と決定するようにしてもよい。あるいは、コントローラ(20)は、代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、代替経路候補のそれぞれについて求め、代替経路候補の中から、フロー情報のエントリ数の最大値が他よりも小さい代替経路候補を、代替経路と決定するようにしてもよい。
 本発明において、コントローラ20は、代替経路候補の中から、代替経路候補上のノードのトラフィック量に基づき、代替経路を決定する構成としてもよい。この場合、コントローラ(20)は、代替経路候補上の各ノードのトラフィック量の総計を、代替経路候補のそれぞれについて求め、代替経路候補の中から、トラフィック量の総計が他よりも小さい代替経路候補を、代替経路と決定するようにしてもよい。あるいは、コントローラ(20)は、代替経路候補上の各ノードのトラフィック量の最大値を、代替経路候補のそれぞれについて求め、代替経路候補の中から、トラフィック量の最大値が他よりも小さい代替経路候補を、代替経路と決定するようにしてもよい。
 本発明において、コントローラ(20)は、代替経路候補上の各ノードに既に設定されているフロー情報を参照し、代替経路候補上の各ノードのフロー情報のエントリが、ノードを通過し移動対象のフローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、代替経路候補のうちから代替経路を決定するようにしてもよい。
 本発明において、フロー情報は、ノードに入力されたパケットのヘッダーと照合するルールと、ルールにヒットしたパケットに対するノードでの転送を含む動作を規定するアクションと、を少なくとも含む。コントローラ(20)は、フローが通っていたノードのフロー情報のエントリのルールとアクションに関して、代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、一致数が最高値のフロー情報のエントリを、集約対象とする。
 本発明において、コントローラ(20)は、最高値の一致数が同一のフロー情報のエントリが複数ある場合、フローが通っていたノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、代替経路候補のそれぞれについて代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定するようにしてもよい。
 本発明において、コントローラ(20)は、代替経路上のノードにおいて、集約可能な、複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成し、ノードに設定を指示する。ノードでは、集約可能なフロー情報のエントリは、ノードから削除する。
 本発明において、コントローラ(20)は、ノードを通過するフローを代替経路に移す際に、ノードを通過するフローを集約した上で、代替経路に移すようにしてもよい。
 かかる構成の本発明によれば、移動先の代替経路上のノードにおけるフロー情報のエントリ数の増大を抑制している。
 このため、本発明によれば、ノードのフロー情報を収容するテーブル等の記憶領域がオーバーフローし、スイッチに新たに入来したパケットに対して、新たなフローを設定できないという事態の発生を回避可能としている。
 また、本発明によれば、ノードを通過するフローを、フローが通っていたノードを通らない別の代替経路に移すことで、ノードに設定されていたフロー情報のエントリ数を削減することができる。
 さらに、本発明によれば、ノードを通るフローを別の代替経路に移動させることで、ノードにおいて空きポート等の保守、調整等を可能とし、ノードを通るフローを別の代替経路に移動させることで、ノードをネットワークから外し、保守、調整等を行うことができる。さらにまた、本発明によれば、フローの片寄せ等(例えば夜間運転時等)を行うことで低消費電力化にも、貢献する。以下実施形態に即して説明する。なお、以下の実施例では、コントローラによってフローの制御が行われるノードを、スイッチとして説明するが、本発明においてノードはかかる構成に制限されるものでないことは勿論である。
<ネットワークシステム構成>
 図1は、本発明が適用されるネットワークの一例を示す図である。図1において、スイッチ(OFS:Open Flow Switch)10は、コントローラ(Controller)20から設定されたフロー情報(ルール+アクションを含む、以下、「フローエンティティ」という)を保持し、到着したパケットが該当するルールをフローエンティティテーブル(フローテーブル)から検索し、一致した場合アクションを実行する。スイッチ(OFS)10は、到着したパケットがフローエンティティテーブルのルールに一致しない場合、コントローラ20に通知する。フローには、優先度があり優先度が高いものが有効となる。コントローラ20は、スイッチ(OFS)10から送られてきたパケットに基づき、適切な経路を算出し、フローを生成、経路となるスイッチ群にフローの設定を指示する。なお、図1において、スイッチ(OFS)10の接続構成は、一例でしかなく、FatTree、HyperCube等、ノード等との経路が複数存在すればよい。図中のノード(Node)30は、サーバ、ロードバランサ、ファイアウォール、ストレージ(NAS(Network Attached Storage)、SAN(Storage Area Network)、クラスタストレージ等の分散ストレージのノード、2つ以上のネットワークインタフェースを持つ。なお、図1において、ノード30は、複数のスイッチ10に対してフローの制御を行うコントローラ20からは、フローの制御は受けないノードである。ただし、ノード30はコントローラ20と通信する機能を備えた構成としてもよいことは勿論である。また、図1では簡単のため、1台のコントローラ20でスイッチ10を制御する構成として記載されているが、複数のコントローラがそれぞれ配下の1つ又は複数のスイッチを制御する構成としてもよいことは勿論である。
 本発明の実施形態において、コントローラ20は、スイッチ10及びノード30の接続状態をトポロジー情報として保持する。また、設定した経路の情報を有効経路情報として保持する。
 コントローラ20は、すべてのフローがどの経路を通過しているかを管理している。フローの識別には、MACアドレス、IPアドレス、ポート番号等を用いることができる。ここで、集約とは、パケットのフローに関して、フローエンティティのルールとマッチが行われるパケットヘッダーに対して同一の宛先アドレスで、他のフィールドが異なる複数のフローをまとめて一つのフローとして扱うことをいう。この場合、宛先アドレス以外のフィールドを、any(任意)として扱う。フローエンティティのルールはwild cardが設定される。
<経路張替えとフローの集約>
 本発明の実施形態において、図2に示すように、経路(パス)の張替え時に、フローの集約を考慮することで、スイッチのフローエンティティテーブルのエントリ数を削減する。図2に示す例では、コントローラ20は、スイッチXを通過するフロー1、2、3を別に移す際に、フロー1、2は集約可能であるため、まとめて、1つのフローとしてスイッチYを通るフローに移し、フロー3は、スイッチZを通るフローに移している。フローの移動には、以下の2つのモードがある。
 (A)あるスイッチを通過するフロー群を別に移す際に、集約可能なフロー毎にまとめて移動する。
 (B)移動先のスイッチ候補を参照し、各スイッチを通過する既存のフローとの集約を考慮したうえで、どちらに移動するかを決定する。
 (A)の場合、移動元からは集約可能な単位でフローが移動するため、移動先のスイッチにおいて、集約可能な単位でフローに対するフローエンティティの増大は1エントリとなる。一方、(B)の場合、移動先のスイッチにおいて、移動してきたフローに対応するフローエンティティは新たに作成されず、既存のフローエンティティと集約されるため、フローエンティティの増大が抑制できる。
 なお、(A)と(B)と混在させてもよい。この場合、集約可能な単位でまとめて移動先にフローの移動が行われ、且つ、移動先のスイッチを通過する既存のフローと集約可能とされる。このため、移動先スイッチにおいて、フロー移動後も、フローエンティティの増大が抑制できる。
 なお、図2において、スイッチXを通るフローのうち、1つのフローのみを、他のスイッチに移動させ、他のフローは元の通りスイッチXを通るようにしてもよい。あるいは、スイッチXを通る全てのフローを別の経路に移動させてもよい。この場合、スイッチXをネットワーク上の経路から外し、他の経路に迂回させることに対応する。
<フローの集約>
 次に、フローの集約の概略を説明する。
 コントローラ20は、管理者から指定された移動元のスイッチを受け取る。コントローラ20は、移動元スイッチを通過するフローを出口が同じ(例えば宛先IPアドレスが同じ)であるフロー毎にまとめる。
 以下の処理は、このまとめたフロー群毎に行う。コントローラ20は、移動先となる代替スイッチ候補を決定する。
 コントローラ20は、移動先スイッチ候補から、最適な移動先スイッチを決定する。
・負荷の最も小さなスイッチを最適なスイッチとする。
・各スイッチを通過しているフローのうち、出口が移動対象のフローと同じフローの数を計数する。このフロー数が一番大きいスイッチを最適なスイッチを移動先のスイッチとする。
 コントローラ20は、移動対象のフロー群が移動先のスイッチを通過するように、経路の変更を行う。移動対象のフロー群のフローエンティティは1つのフローエンティティに集約され、集約された状態のフローエンティティが、移動先のスイッチのフローエンティティテーブルに登録される。この際に、可能であれば、移動先のスイッチ中のフローに関しても、移動してくるフロー群と集約可能なものを集約する。
<コントローラの構成例>
 次に、図1のコントローラ20の構成を説明する。図3は、コントローラ20の構成例を示す図である。コントローラ20は、スイッチ10からのパケットを受信するパケット処理部201と、スイッチ10に対してフローエンティティを設定するフローエンティティ設定部202と、経路構成情報(経路を作成する契機となったパケットを入力するスイッチ情報、該パケットのヘッダー情報、該経路を構成するスイッチ識別情報とそのフローエンティティ)を記憶する有効経路記憶部203と、ノード、スイッチのネットワークトポロジーを記憶するトポロジー情報204と、経路を算出する経路算出部205と、スイッチの状態を変更するスイッチ状態変更部206と、経路の集約を行う経路集約実行部207と、集約された経路を記憶する集約経路記憶部208と、移動先となる代替スイッチを含む経路を算出する代替経路算出部210を備えている。代替経路算出部210は、トポロジー情報204を参照して、移動対象フローに対応する経路の送信元と宛先が一致する代替経路候補を算出する代替経路候補算出部211と、代替経路候補の影響度を算出する影響度算出部212と、各代替経路候補の影響度から代替経路を決定する代替経路決定部213を備えている。コントローラ20の各部はコントローラ20(コンピュータ)上で実行させるプログラムによりその機能を実現するようにしてもよいことは勿論である。
<スイッチの構成例>
 図4は、スイッチ10の構成例を示す図である。スイッチ10は、パケット処理部101と、フローエンティティテーブル(「フローテーブル」ともいう)102と、最初のパケットをコントローラに通知するパケット通知部103と、コントローラ20から指示されたフローエンティティの設定を行うフローエンティティ設定部104とを備えている。スイッチ10として、OFSとして機能可能な、レイヤ2スイッチや、レイヤ3スイッチ、ルータ等として動作するノードを適用することが可能である。
<有効経路記憶部>
 次に、有効経路記憶部203で記憶する情報を説明する。図5は、有効経路記憶部203に格納されるデータのデータ構造の一例を示す図である。
<経路管理テーブル>
 経路管理テーブルは、経路ごとの経路構成情報を管理するテーブルである。経路管理テーブルには1エントリ毎に1つの経路が対応し、該1つの経路の経路構成情報が対応する。経路管理テーブルの1つのエントリには、経路を形成し、コントローラ20が該経路を新たに作成する契機となったパケットが入力されたスイッチの情報(スイッチID、インタフェース)と、該パケットのヘッダー情報と、当該経路に対応する経路構成情報をさすポインタを有する。パケットのヘッダー情報に関して、ソース及びディスティネーションのIPアドレスを記録するようにしてもよい。
<経路構成情報>
 経路構成情報は、経路ごとに、経路を構成するスイッチ群(経路の始点から経路の中間点、終点)の各スイッチについて、スイッチの識別情報と該スイッチに設定されるフローエンティティとの組を有する。経路がn個のスイッチから構成される場合、スイッチの識別情報と該スイッチに設定されるフローエンティティおよび集約フローエンティティへのポインタとの組をn組有し、これが、経路管理テーブルの該当するエントリのポインタによってポイントされる。経路構成情報を参照することで、現在有効とされる経路がいかなるスイッチから形成されているかがわかる。フローエンティティはルールとアクションを含む(フロー統計情報を含んでもよい)。経路構成情報はテーブル構成としても良いし、スイッチ情報とフローエンティティの組が、経路上の次のスイッチに対応するスイッチ情報とフローエンティティの組をポイントするポインタを備えた線形リスト(リンクドリスト)として構成しても良い。なお、経路算出部205で新たな経路が算出された場合、スイッチ状態変更部206によって有効経路記憶部203の経路管理テーブルに経路構成情報が登録され、経路削除等、無効化された経路は、スイッチ状態変更部206によって有効経路記憶部203から削除される。
<集約経路記憶部>
 集約経路記憶部208は、経路集約実行部207で集約された経路構成情報を記憶する。図6は、集約経路記憶部208に格納されるデータ構造の一例を示す図である。集約経路管理テーブルはスイッチ毎にスイッチの識別情報と、スイッチ別の集約フローエンティティテーブルをポイントするポインタ(スイッチ別の集約フローエンティティテーブルへのポインタ)を有する。
 スイッチ別の集約フローエンティティテーブルは、集約フローエンティティと、集約フローエンティティに対応するフローエンティティへのポインタリストとの組を複数格納するテーブルである。コントローラ20の集約経路記憶部208に記憶保持される集約フローエンティティテーブル中の複数の集約フローエンティティが、対応するスイッチ10に、実際に設定登録される。
 集約フローエンティティに対応して設けられたフローエンティティへのポインタリストは、当該集約フローエンティティへと集約されているフローエンティティ(図5)を指示するポインタ(いわゆるバックポインタ)が複数格納されているリストである。
 フローエンティティへのポインタリストに格納されているポインタの数が2つ以上であれば、当該フローエンティティへのポインタリストに対応する集約フローエンティティは、該ポインタでポイントされる複数のフローエンティティが、該集約フローエンティティに集約されて、作成されたものである。また、フローエンティティへのポインタリストのポインタの数が1の場合、集約が行われていないフローエンティティである。
 フローエンティティへのポインタリストのポインタの数が0の場合、該フローエンティティへのポインタリストに対応する集約フローエンティティは実際に参照されていないため、削除される。
 経路算出部205が算出した経路が経路管理テーブル(図5参照)に登録され、経路構成情報が作成された場合、経路構成情報中の各エントリに対し、以下の動作が行われる。
 まず、経路構成情報中の各エントリ中のスイッチの識別情報を参照し、集約経路管理テーブルから対応するスイッチ別集約フローエンティティテーブルを選択する。
 さらにスイッチ別集約フローエンティティテーブル中の新たなフィールドに、該当エントリ中のフローエンティティの情報をコピーして格納する。さらにフローエンティティへのポインタに、該当エントリのアドレスを格納する。
 次に、経路管理テーブルから経路が削除された場合、削除された経路構成情報中の各エントリに対し、以下の動作が行われる。
 該削除された経路構成情のエントリ中の集約フローエンティティへのポインタから集約フローエンティティを参照する。集約フローエンティティに対応するフローエンティティへのポインタリスト中から、該当エントリへのポインタを削除する。この結果、フローエンティティへのポインタリスト中のポインタの数が0になった場合、この集約フローエンティティ自体を削除する。
<フローエンティティテーブル>
 図7は、スイッチ10に記憶されるフローエンティティテーブル102の構成例を示す図である。フローエンティティテーブルは、コントローラ20から指示されたフローエンティティをスイッチ10が記憶保持するテーブルである。n本の異なるフローがスイッチ10を通るとき、スイッチ10には、各フローに対応したn個のフローエンティティを保持するが、本実施形態によりフローの縮約が行われた場合、1個のフローエンティティが複数のフローに多重に対応することになる。なお、図7では、フローエンティティ=|ルール|アクション|とされ、1つのフローエンティティが1つのアクションを含む構成として例示されているが、本実施形態において、1つのフローエンティティが複数のアクションを含む構成、すなわち、フローエンティティ=|ルール|アクション1|アクション2|・・・|アクションm| (ただし、mは2以上の所定の整数)としてもよいことは勿論である。
 フローエンティティテーブル102のフローエンティティは、ルール、アクションを含む。ルールは、
・インプットインタフェース(ポート)
・MACソースアドレス
・MACディスティネーションアドレス
・VLAN(Virtual Local Area Network) ID、
・TYPE
・IPソースアドレス
・IPディスティネーションアドレス
・プロトコル(UDP(User Datagram Protocol)/TCP(Transmission Control Protocol)/ICPM)、ICMP(Internet Control Message Protocol)の場合ICMPタイプ、ICMPコード、TCP/UDPの場合、ソースポート、ディスティネーションポート
 を含む。
アクションは、
・アクションのタイプ
・出力(OUTPUT)、
・パケットヘッダーのフィールドの変換(Field Modify)、
を含む。ヘッダーのフィールドの変換は、図22に示したものがある。
 アクションがOUTPUTの場合、出力インタフェース(ポート)を含む。
 アクションがヘッダーのフィールドの変換の場合、変更するフィールド、変更する値を含む。
 ルールは、全てのフィールドに値を指定しても良いし、個々のフィールド(欄)をワイルドカード(wildcard)と指定し、当該wildcardが指摘されたフィールドの値を、フローエントリとのマッチング時に、無視するよう指定しても良い(wildcardが指定された欄は常にマッチ)。
<コントローラの集約動作>
 図8は、本発明の一実施形態の動作を説明するフローチャートである。
 ステップ1:スイッチXを通過するフローFを、スイッチXを通過しないように移動させる。すなわち、管理者が、移動させるスイッチXとフローFを、コントローラ20のスイッチ状態変更部206に入力として与える(S1)。
 ステップ2:コントローラ20のスイッチ状態変更部206は、フローの送信元、送信先を調べそれぞれS、Dとし、代替経路算出部210に代替経路を算出させる(S2)。
 ステップ3:代替経路算出部210の代替経路候補算出部211は、トポロジー情報204を参照し、スイッチXを取り除いたトポロジー情報204を基に、代替経路候補を計算する(S3)。その際、フローFに対応する経路の送信元、宛先が同一の経路を代替経路候補とする。代替経路候補算出部211は、有効な経路情報を記憶する有効経路記憶部203の経路管理テーブル(図5)の各エントリに登録されている当該経路作成の契機となったパケットヘッダー情報の送信元と宛先情報、該エントリがポイントする経路構成情報のスイッチ識別情報を検索し、既存の経路の中から、スイッチXを通過するフローFに対応する代替経路候補を抽出するようにしてもよい。既存の経路の中から代替経路候補が見つからない場合、代替経路候補算出部211は、スイッチ状態変更部206を介してエラー(代替経路候補が見つからない)を管理者に通知してもよいし、あるいは、トポロジー情報204を参照して新しく代替経路を算出してもよい。
 ステップ4:代替経路算出部210の影響度算出部212は、各代替経路候補Riに対して、以下のステップ5を行う(S4)。
 ステップ5:代替経路候補Ri毎に影響度Eiを求める(S5)。
 ステップ6:ステップ4からの繰り返し(ループ)(S6)。
 ステップ7:代替経路算出部210の代替経路決定部213は、例えば影響度Eiの値が最小の代替経路候補Riを代替経路として選択する(S7)。
 ステップ8:スイッチ状態変更部206は、有効経路記憶部20の旧経路の各スイッチにおけるフローFに関するフローエンティティを削除するように、フローエンティティ設定部202に指示する(S8)。スイッチ10のフローエンティティ設定部104は、コントローラ20のフローエンティティ設定部202から削除が指示されたフローエンティティを、フローエンティティテーブル102から削除する。
 ステップ9:代替経路Ri中の各スイッチに対して以下を行う(S9)。
 ステップ10:経路集約実行部207は、集約可能な経路を集約し、集約経路記憶部208に登録する(S10)。
 ステップ11:スイッチ状態変更部206は、代替経路上のスイッチのフローエンティティを設定するように、フローエンティティ設定部202に指示し、フローエンティティ設定部202は代替フローに対応した各スイッチ10のフローエンティティを登録する(S11)。スイッチ10のフローエンティティ設定部104は、コントローラ20のフローエンティティ設定部202から設定されたフローエンティティをフローエンティティテーブル102に登録する。このとき、コントローラ20のスイッチ状態変更部206は、当該スイッチのフローエンティティテーブルに既に登録されているフローエンティティと集約可能であるか調べ、集約可能であれば、集約する。
 ステップ12:ステップ9からの繰り返し(S12)。
 ステップS5における影響度の定義としては、後述するように各種変形が可能である。
<経路集約の詳細>
 ステップS10の経路集約実行部207の処理手順の一例について以下に説明する。
 代替経路Ri中の各スイッチSjに対し、該スイッチに設定されたフローエンティティE1~Enを1つに集約して、集約フローエンティティAxとして集約して登録する場合について説明する。
 ステップ1: 有効経路記憶部203の経路構成情報中の集約対象となるフローエンティティEkのエントリから集約フローエンティティAmのポインタ(図5参照)を取得する。
 ステップ2: 集約経路記憶部208において、集約フローエンティティAmのポインタが指すスイッチ別集約フローエンティティテーブルの集約フローエンティティAmを参照し、集約フローエンティティAmに対応するフローエンティティへのポインタリスト中(図6参照)から、集約対象となるフローエンティティEkを指し示すポインタを削除する。
 ステップ3: ステップ2で、集約経路記憶部208において、スイッチ別集約フローエンティティテーブルの集約フローエンティティAmに対応するフローエンティティへのポインタリスト中のポインタの数が0となった場合、集約フローエンティティAmを削除する。さらにスイッチSi中からフローエンティティAmを削除するように、フローエンティティ設定部202へ指示する。
 ステップ4: ステップ1からステップ3を集約対象となるすべてのフローエンティティE1~Enに対して実行していなければ、ステップ1へ戻る(E1~Enの繰り返し処理)。
 ステップ5: 集約経路記憶部208において、集約経路管理テーブル中のスイッチSjに対応するスイッチ別集約フローエンティティテーブルに対し、新たな集約フローエンティティAxを追加する。さらにスイッチSi中に、フローエンティティAxを追加するように、フローエンティティ設定部202へ指示する。
 ステップ6: 集約経路記憶部208において、集約フローエンティティAxに対応するフローエンティティへのポインタリスト中に、フローエンティティE1~Enへのポインタを格納する。
 ステップ7: 有効経路記憶部203の経路構成情報のフローエンティティE1~Enのそれぞれに対応する集約フローエンティティへのポインタに、集約フローエンティティAxへのポインタを格納する。
<ネットワーク構成例>
 図9は、本発明が適用されるネットワーク構成を示す図である。以下では、図9において、スイッチSW2を通過するフローFを移動させる場合について説明する。フローFの送信元のノード又はスイッチをS、送信先(宛先)ノード又はスイッチをDとする。送信元、送信先は、IPアドレスである場合もあるし、MACアドレスである場合もある。このフローFの現在の経路(パケットのフローFを実現する経路)は、
 S⇒SW1⇒SW2⇒SW3⇒D
となる。
 この経路(S⇒SW1⇒SW2⇒SW3⇒D)は、コントローラ20の有効経路記憶部203の経路管理テーブル(図5参照)において、当該経路作成の契機となったパケットヘッダー情報と、経路管理テーブルのポインタでポイントされる経路構成情報(経路を構成する各スイッチについてスイッチ情報、フローエンティティを含む)として、登録されている。
 なお、図9に示すネットワーク構成において、スイッチSW1は不図示の3つのインタフェースで送信元Sと、スイッチSW2、SW5とそれぞれ接続し、スイッチSW2は不図示の4つのインタフェースでスイッチSW1、SW4、SW6、SW3とそれぞれ接続し、スイッチSW4は不図示の3つのインタフェースで送信元Sと、スイッチSW2、SW5とそれぞれ接続し、スイッチSW5は不図示の4つのインタフェースでスイッチSW4、SW1、SW3、SW6とそれぞれ接続し、スイッチSW3は不図示の3つのインタフェースでスイッチSW2、SW5、宛先Dとそれぞれ接続し、スイッチSW6は不図示の3つのインタフェースでスイッチSW2、SW5、宛先Dとそれぞれ接続されるものとする。
<代替経路候補の例>
 図10は、代替経路算出部210の代替経路候補算出部211(図3)による代替経路候補の選出を説明する図である。送信元(S)、送信先(D)が、旧経路(フローF)と同一となる代替経路候補を選出する。
 代替経路候補算出部211は、有効経路記憶部203の経路管理テーブル(図5参照)において経路毎に設けられ当該経路作成の契機となったパケットヘッダーの送信元(S)、送信先(D)を照合し、一致する場合、該経路管理テーブルのエントリがポイントする経路構成情報を探索し、スイッチSW2を経路に含まない場合、当該経路を代替経路候補として導出するようにしてもよい。図10では、送信元(S)、送信先(D)が一致し、スイッチSW2を含まない代替経路候補として以下の3つの経路が求められた。
 代替経路候補1:S⇒SW1⇒SW5⇒SW6⇒SD
 代替経路候補2:S⇒SW4⇒SW5⇒SW6⇒SD
 代替経路候補3:S⇒SW4⇒SW5⇒SW3⇒SD
 例えば、図8のステップS4で、代替経路候補1が選ばれた場合、図8のステップS6-S9の手順において、順に、スイッチSW1、SW5、SW6に対するフローFへの影響度がそれぞれ求められ、加算された値が代替経路候補1全体の影響度E1となる。
<影響度1>
 図11は、影響度算出部212における影響度Eiの定義の第1の例を説明する図である。図11において、スイッチ(SW1、SW3~SW6)のフローエンティティテーブル102のフローエンティティ数を影響度とする。図11において、各スイッチSW1~SW6に付加された数値は、現在のフローエンティティ数(フローFの旧経路分を含む)である。また旧は旧経路、候補1、2、3は代替経路候補1、2、3を示している。
 代替経路候補1(図11の候補1:S⇒SW1⇒SW5⇒SW6⇒SD)の影響度E1は、
 E1=(8-1+1)+(3+1)+(4+1)=17  ・・・(1)
となる。
 ここで、(8-1+1)は、{スイッチSW1の現在のフローエンティティ数(=8)}-{スイッチSW1の旧経路で削除されるフローエンティティ数分(=1)}+{スイッチSW1の新経路により追加されるフローエンティティ分(=1)}である。
 (3+1)は、{スイッチSW5の現在のフローエンティティ数(=3)}+{スイッチSW5の新経路により追加されるフローエンティティ分(=1)}である。スイッチSW5は旧経路を通らないため、スイッチSW1の旧経路で削除されるフローエンティティ数分を減算することは行われない。
 (4+1)は、{スイッチSW6の現在のフローエンティティ数(=4)}+{スイッチSW5の新経路により追加されるフローエンティティ分(=1)}である。スイッチSW6は旧経路を通らないため、スイッチSW1の旧経路で削除されるフローエンティティ数分を減算することは行われない。
 代替経路候補2(図11の候補2:S⇒SW4⇒SW5⇒SW6⇒SD)の影響度E2は、
 E2=(5+1)+(3+1)+(4+1)=15  ・・・(2)
となる。
 ここで、(5+1)は、{スイッチSW4の現在のフローエンティティ数(=5)}+{スイッチSW4の新経路により追加されるフローエンティティ分(=1)}である。スイッチSW4は旧経路を通らないため、スイッチSW1の旧経路で削除されるフローエンティティ数分を減算することは行われない。
 (3+1)は、{スイッチSW5の現在のフローエンティティ数(=3)}+{スイッチSW5の新経路により追加されるフローエンティティ分(=1)}である。前述したように、スイッチSW5は旧経路を通らないため、スイッチSW1の旧経路で削除されるフローエンティティ数分を減算することは行われない。
 (4+1)は、{スイッチSW6の現在のフローエンティティ数(=4)}+{スイッチSW5の新経路により追加されるフローエンティティ分(=1)}である。前述したように、スイッチSW6は旧経路を通らないため、スイッチSW1の旧経路で削除されるフローエンティティ数分を減算することは行われない。
 代替経路候補3(図11の候補3:S⇒SW4⇒SW5⇒SW3⇒SD)の影響度E3は、
 E3=(5+1)+(3+1)+(7-1+1)=17  ・・・(3)
となる。
 ここで、(5+1)は、{スイッチSW4の現在のフローエンティティ数(=5)}+{スイッチSW4の新経路により追加されるフローエンティティ分(=1)}である。スイッチSW4は旧経路を通らないため、スイッチSW1の旧経路で削除されるフローエンティティ数分を減算することは行われない。
 (3+1)は、{スイッチSW5の現在のフローエンティティ数(=3)}+{スイッチSW5の新経路により追加されるフローエンティティ分(=1)}である。前述したように、スイッチSW5は旧経路を通らないため、スイッチSW1の旧経路で削除されるフローエンティティ数分を減算することは行われない。
 (7-1+1)は、{スイッチSW3の現在のフローエンティティ数(=7)}-{スイッチSW7の旧経路で削除されるフローエンティティ数分(=1)}+{スイッチSW7の新経路により追加されるフローエンティティ分(=1)}である。
 代替経路決定部213は、代替経路候補1、2、3のうち、影響度が最小の代替経路候補2を選択する。
<影響度1の変形例>
 なお、変形例として、スイッチにおける新経路によるフローエンティティ数の増加分、旧経路によるフローエンティティ数の減少分を考慮しない場合も考えられる。この場合、
 代替経路候補1(図11の候補1:S⇒SW1⇒SW5⇒SW6⇒SD)の影響度E1は、
 E1=8+3+4=15  ・・・(4)
 となる。
 代替経路候補2(図11の候補2:S⇒SW4⇒SW5⇒SW6⇒SD)の影響度E2は、
 E2=5+3+4=12  ・・・(5)
 となる。
 代替経路候補3(図11の候補3:S⇒SW4⇒SW5⇒SW3⇒SD)の影響度E3は、
 E3=5+3+7=15  ・・・(6)
となる。この場合、代替経路候補2が代替候補として決定される。
<影響度2>
 図12は、影響度の定義の第2の例を説明する図である。この例では、影響度として、フローエンティティ数のMAX(最大)値を用いている。すなわち、各スイッチのフローエンティティテーブル中のフローエンティティ数の最大値E2を影響度とする。図12において、各スイッチに付加された数値は、現在のフローエンティティ数である(フローFの旧経路分を含む)。
 代替経路候補1(図12の経路1:S⇒SW1⇒SW5⇒SW6⇒SD)の影響度E1は、
 E1=MAX((8-1+1)、(3+1)、(4+1))=8  ・・・(7)
となる。MAX(・・・)は引数の要素の最大値を表す。(8-1+1)、(3+1)、(4+1)は式(1)と同一であるため、説明は省略する。
 代替経路候補2(図12の経路1:S⇒SW4⇒SW5⇒SW6⇒SD)の影響度:
 E2=MAX((5+1)、(3+1)、(4+1))=6  ・・・(8)
となる。
 代替経路候補3(図12の経路3:S⇒SW4⇒SW5⇒SW3⇒SD)の影響度:
 E3=MAX((5+1)、(3+1)、(7-1+1))=7  ・・・(9)
となる。
 代替経路決定部213は、代替経路候補1、2、3のうち、影響度が最小の代替経路候補2を選択する。変形例として、前述と同様、スイッチにおける新経路によるフローエンティティ数の増加分、旧経路によるフローエンティティ数の減少分を考慮しない場合も考えられる。
 上記実施形態では、代替経路候補の影響度にスイッチのフローエンティティ数を用いていたが、スイッチを通過するトラフィックの量を用いてもよい。
<別の実施形態>
 図13は、本発明の別の実施形態におけるコントローラ20の構成例を示す図である。本実施形態において、影響度にトラフィック量を使用する。図13を参照すると、コントローラ20は、図3の構成のトラフィック量管理部214が追加され、影響度算出部212Aは、トラフィック量管理部214からの各スイッチのトラフィック量に基づき影響度を算出する。
 図14は、スイッチ10の構成を示す図である。図14を参照すると、図4の構成に、トラフィック量計測部105と、コントローラ20に対してトラフィック量を通知するトラフィック量通知部106を備えている。トラフィック量計測部105は、所定の単位時間当りの受信パケットのサイズをカウンタ(不図示)に加算する。トラフィック量通知部106は、所定の単位時間毎に、カウンタ(不図示)の値(受信データ量)をコントローラ20に通知し、その後、カウンタ(不図示)をゼロクリアする。カウンタ(不図示)は直ちに受信パケットサイズのカウントを開始してもよいし、所定期間経過後に受信パケットサイズのカウントを開始するようにしてもよい。あるいは、トラフィック量計測部105は、所定の単位時間当りの受信パケットのサイズのカウント結果を、何回か平均化し、平均化した受信データ量を、コントローラ20に通知するようにしてもよい。あるいは、スイッチ10のトラフィック量計測部105に対して、コントローラ10側から受信パケットサイズのカウント動作開始を指示するようにしてもよいことは勿論である。以下に、影響度算出部212Aの影響度の算出例を説明する。
<影響度3>
 図15は、図10の代替経路候補1、2、3において、代替経路候補の影響度としてトラフィック量を用いた場合の例を説明する図である。代替経路のスイッチを通過する単位時間当たりのトラフィック量の合計を影響度とする。図15において、スイッチSW1、SW2、SW3、SW4、SW5、SW6に付加した数値8、6、7、5、3、4は、各スイッチを通過する単位時間当たりのトラフィック量(相対量)を表している。
 代替経路候補1(図15の経路1:S⇒SW1⇒SW5⇒SW6⇒SD)の影響度E1は、
 E1=8+3+4=15  ・・・(10)
となる。
 代替経路候補2(図15の経路2:S⇒SW4⇒SW5⇒SW6⇒SD)の影響度E2は、
 E2=5+3+4=12  ・・・(11)
となる。
 代替経路候補3(図15の経路3:S⇒SW4⇒SW5⇒SW3⇒SD)の影響度E3は、
 E3=5+3+7=15  ・・・(12)
となる。
 代替経路決定部213は、代替経路候補1、2、3のうち、影響度が最小の代替経路候補2を選択する。
<影響度3の変形例>
 変形例として、経路中のトラフィック量が最大のスイッチのトラフィック量を影響度としてもよい。
 この場合、代替経路候補1(図15の経路1:S⇒SW1⇒SW5⇒SW6⇒SD)の影響度E1は、
 E1=MAX(8、3、4)=8  ・・・(13)
となる。
 代替経路候補2(図15の経路2:S⇒SW4⇒SW5⇒SW6⇒SD)の影響度E2は、
 E2=MAX(5、3、4)=5  ・・・(14)
となる。
 代替経路候補3(図15の経路3:S⇒SW4⇒SW5⇒SW3⇒SD)の影響度E3は、
 E3=MAX(5、3、7)=7  ・・・(15)
となる。
 この場合、代替経路決定部213は、代替経路候補1、2、3のうち、影響度が最小の代替経路候補2を選択する。
<影響度4>
 あるいは、本発明の別の実施形態において、影響度算出部212の影響度としてスイッチのフローエンティティテーブルにおいて、集約可能なフローエンティティの数を用いてもよい。図16に、代替経路候補影響度算出部212の手順を示す。
 ステップ1:スイッチのフローエンティティテーブルにおいて、これから登録しようとするフローの移動対象のスイッチのフローエンティティ(スイッチルール+アクション)をFeとする(S101)。
 ステップ2:上記フローに対して代替経路候補算出部211が求めた代替経路候補中の各スイッチに対して影響度算出部212は以下の動作を行う(S102)。
 ステップ3: M←0(S103)
 ステップ4:代替経路候補中の各スイッチが持つフローエンティティテーブル中の各フローエンティティFiに対して、Feとの以下の比較を行い、それぞれの一致度を求める(S104)。
 ステップ5:代替経路候補中の各スイッチが持つフローエンティティテーブル中の各フローエンティティFiとFeのアクションを比較し、一致していなければ、一致数(一致度)を0とする(S105)。
 ステップ6:代替経路候補中の各スイッチが持つフローエンティティテーブル中の各フローエンティティFiとFeのルールのうち同一の要素の数を一致度とする(S106)。
 ステップ7:ステップ4からの繰り返し(S107)。
 ステップ8:一致数が最も高いフローエンティティを、Feとの集約の対象とする(1つのフローエンティティに集約する)(S108)。ただし、一致度が高いものが複数あった場合、以下のように判断する。
 ステップ9:Feと一致しているルールが同一のもの同士で集合を作る。ルールにおいてFeと同一の要素の数が最大の集合中のフローエンティティ全てを集約対象とする(1つのフローエンティティに集約する)(S109)。
 ステップ10:集約対象エンティティの数を、Mに加算する(S110)。
 ステップ11:ステップ2からの繰り返し(S111)。
 ステップ12:Mの逆数を、この代替経路候補の影響度とする(S112)。ステップS112において、Mの逆数をとっているのは、図8のステップS7で影響度が最小の値の代替候補を選択するという動作にあわせている。
<集約可能エンティティ数の判定>
 図17は、図16を参照して動作を説明した影響度算出部212における集約可能エンティティ数の判定を説明する図である。
 Feはこれから登録しようとするフローエンティティ(集約対象のフローエンティティ)であり、ルールの宛先IPアドレスはA、送信元IPアドレスはC、送信元ポートはX、宛先ポートはYである。パケットヘッダーがこのルールにマッチしたパケットに対するアクションはSW5へ転送である。
 スイッチのフローエンティティテーブルのフローエンティティ1は、アクション(SW1へ転送)がFeのアクション(SW5へ転送)と異なるので、一致数は0である。
 フローエンティティ2は、アクション(SW5へ転送)がFeのアクション(SW5へ転送)と一致し、ルールは送信元IPアドレスと送信元ポートが一致するので、一致数は2である。
 フローエンティティ3~9は、アクション(SW5へ転送)がFeのアクション(SW5へ転送)と一致し、且つ、Feのルールの一致する要素数である一致数はともに3となる。これらは以下の3つの集合に分けられる。
 集合1:フローエンティティ3、4は、宛先IPアドレス、送信元IPアドレス、送信元ポートが一致する。
 集合2:フローエンティティ5、6は、宛先IPアドレス、送信元ポート、宛先ポートが一致する。
 集合3:フローエンティティ7、8、9は、送信元IPアドレス、送信元ポート、宛先ポートが一致する。
 集合3が、集合の要素(フローエンティティ7、8、9)とその数が最大であるため、集合3が選択され、3がMに加算される。フローエンティティ7、8、9と登録対象のフローエンティティFeが1つのフローエンティティに集約される。
<集約したフローエンティティ設定と元のフローエンティティの削除>
 図18は、集約されたフローエンティティのスイッチへの登録手順を示す流れ図であり、図8のステップS11に対応する。
 コントローラ20の経路集約実行部207は、集約可能なフローエンティティ(例えば図17(B)のフローエンティティ7、8、9)と、登録しようとしているフローエンティティ(例えば図17(A)のFe)のうち、ルールの一致しないフィールドをワイルドカードとした新たな集約フローエンティティを作成し、集約経路記憶部208の集約管理テーブルで管理されるスイッチ別集約フローエンティティの該当エントリに記憶し、スイッチ状態変更部206に通知する。経路集約実行部207からの通知を受けて、スイッチ状態変更部206は、フローエンティティ設定部202に対して、新たに作成された集約フローエンティティのスイッチ10への設定を指示する。スイッチ10のフローエンティティ設定部104は、コントローラ20のフローエンティティ設定部202から通知されたフローエンティティ(集約フローエンティティ)をフローエンティティテーブル102に登録する(S11-1)。
 新たな集約フローエンティティがスイッチ10に登録され、スイッチ10から登録完了の通知を受けた場合、スイッチ状態変更部206は、集約フローエンティティに集約された元の集約可能なフローエンティティ(例えば図17(B)のフローエンティティ7、8、9)を、スイッチ10のフローエンティティテーブル102から削除するように、フローエンティティ設定部202に通知する。スイッチ10のフローエンティティ設定部104は、コントローラ20のフローエンティティ設定部202からのフローエンティティの削除指示を受け、フローエンティティテーブル102から、該当するフローエンティティを削除し、削除完了を、コントローラ20のフローエンティティ設定部202に通知する(S11-2)。
 スイッチ10のフローエンティティテーブル102に登録されたフローエンティティは、例えばシステムが規定した期間、ルールにマッチするパケットが到着しないと無効となる。このとき、有効経路記憶部203の経路管理テーブル(図5参照)上の経路構成情報、経路管理テーブル内の関連エントリは、削除される。
 なお、上記実施形態で説明した経路管理テーブル、経路構成情報、集約経路管理テーブル、スイッチ別集約フローエンティティテーブルのデータ構造はあくまで実装の一例を示したものであり、本発明はかかるデータ構造に制限されるものでないことは勿論である。また、本発明において、ノードは上記実施例のスイッチ(OFS)を含むほか、コントローラによってフローの制御が行われる任意のスイッチ(L2/L3スイッチ)、ルータ等を含む。
上記した実施形態のコントローラ20は、専用のサーバとして実現することもでき、スイッチ10としては、上記OFS(OpenFlow Switch)のほか、IP網におけるルータ、MPLS(Multi-Protocol Label Switching)網におけるMPLSスイッチのようなノードであれば実現できる。その他、コントローラがネットワーク内のノードを集中管理するようなネットワークであれば、本発明を適用することが可能である。
 なお、上記の特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせ、乃至、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
 10 スイッチ
 20 コントローラ
 30 ノード
 101 パケット処理部
 102 フローエンティティテーブル
 103 パケット通知部
 104 フローエンティティ設定部
 105 トラフィック量計測部
 106 トラフィック量通知部
 201 パケット処理部
 202 フローエンティティ設定部
 203 有効経路記憶部
 204 トポロジー情報
 205 経路算出部
 206 スイッチ状態変更部
 207 経路集約実行部
 208 集約経路記憶部
 210 代替経路算出部
 211 代替経路候補算出部
 212、212A 影響度算出部
 213 代替経路決定部
 214 トラフィック量管理部

Claims (57)

  1.  複数のノードのフローを制御するコントローラを用いたネットワーク制御方法であって、
     あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
     移動対象の前記フローに対応する経路の送信元と宛先が一致し、移動対象の前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
     複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、
     前記代替経路上の各ノードのフローを集約する、ことを特徴とするネットワーク制御方法。
  2.  前記コントローラは、
     前記フローに対する前記ノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定し、
     前記ノードは、
     前記コントローラによりそれぞれ設定され、前記ノードを通過するフローの本数に対応したエントリ数のフロー情報を保持し、
     前記コントローラは、
     前記代替経路上の各ノードのフローを集約する際、
     前記代替経路上の前記各ノードにおける前記フローに対応するフロー情報のエントリの集約を行う、ことを特徴とする請求項1記載のネットワーク制御方法。
  3.  前記コントローラは、複数の前記代替経路候補の中から、前記代替経路候補上のノードのフロー情報のエントリ数に基づき、前記代替経路を決定する、ことを特徴とする請求項1又は2記載のネットワーク制御方法。
  4.  前記コントローラは、前記代替経路候補上の各ノードのフロー情報のエントリ数の総計を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記フロー情報のエントリ数の総計が他よりも小さい代替経路候補を前記代替経路と決定する、ことを特徴とする請求項3記載のネットワーク制御方法。
  5.  前記コントローラは、複数の前記代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記フロー情報のエントリ数の最大値が他よりも小さい前記代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項3記載のネットワーク制御方法。
  6.  前記コントローラは、複数の前記代替経路候補の中から、前記代替経路候補上のノードのトラフィック量に基づき、前記代替経路を決定する、ことを特徴とする請求項1又は2記載のネットワーク制御方法。
  7.  前記コントローラは、前記代替経路候補上の各ノードのトラフィック量の総計を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記トラフィック量の総計が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項6記載のネットワーク制御方法。
  8.  前記コントローラは、前記代替経路候補上の各ノードのトラフィック量の最大値を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記トラフィック量の最大値が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項6記載のネットワーク制御方法。
  9.  前記コントローラは、前記代替経路候補上の各ノードに既に設定されているフロー情報を参照し、前記代替経路候補上の前記各ノードのフロー情報のエントリが、前記ノードを通過し移動対象の前記フローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、複数の前記代替経路候補のうちから代替経路を決定する、ことを特徴とする請求項2記載のネットワーク制御方法。
  10.  前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
     前記コントローラは、前記フローが通っていた前記ノードのフロー情報のエントリのルールとアクションに関して、前記代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、一致数が最高値のフロー情報のエントリを、集約対象とする、ことを特徴とする請求項9記載のネットワーク制御方法。
  11.  前記コントローラは、最高値の一致数が同一のフロー情報のエントリが複数ある場合、前記フローが通っていた前記ノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、
     複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、
     複数の前記代替経路候補のそれぞれについて、前記代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定する、ことを特徴とする請求項10記載のネットワーク制御方法。
  12.  前記コントローラは、前記代替経路上のノードにおいて、集約可能な、複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成して前記ノードに設定登録し、
     前記ノードは、前記集約可能なフロー情報のエントリを前記ノードから削除する、ことを特徴とする請求項2乃至11のいずれか1項に記載のネットワーク制御方法。
  13.  前記コントローラは、前記ノードを通過するフローを前記代替経路に移す際に、前記ノードが通過するフローを集約した上で、前記代替経路に移す、ことを特徴とする請求項1記載のネットワーク制御方法。
  14.  コントローラと、
     前記コントローラによってフローの制御が行われる複数のノードと、
     を備え、
     前記コントローラは、
     あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
     移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
     複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定し、
     前記代替経路上の各ノードのフローを集約する、ことを特徴とするネットワークシステム。
  15.  前記コントローラは、
     前記フローに対する前記ノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定し、
     前記ノードは、
     前記コントローラによって設定され、前記ノードを通過するフロー数に対応したエントリ数のフロー情報を保持し、
     前記コントローラは、
     前記代替経路上の各ノードのフローを集約する際、
     前記代替経路上の前記各ノードにおける前記フローに対応するフロー情報のエントリの集約を行う、ことを特徴とする請求項14記載のネットワークシステム。
  16.  前記コントローラは、複数の前記代替経路候補の中から、前記代替経路候補上のノードのフロー情報のエントリ数に基づき、前記代替経路を決定する、ことを特徴とする請求項15記載のネットワークシステム。
  17.  前記コントローラは、複数の前記代替経路候補上の各ノードのフロー情報のエントリ数の総計を、前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記フロー情報のエントリ数の総計が他よりも小さい代替経路候補を前記代替経路と決定する、ことを特徴とする請求項16記載のネットワークシステム。
  18.  前記コントローラは、複数の前記代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記フロー情報のエントリ数の最大値が他よりも小さい前記代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項16記載のネットワークシステム。
  19.  前記コントローラは、複数の前記代替経路候補の中から、前記代替経路候補上のノードのトラフィック量に基づき、前記代替経路を決定する、ことを特徴とする請求項14又は15記載のネットワークシステム。
  20.  前記コントローラは、複数の前記代替経路候補上の各ノードのトラフィック量の総計を、複数の前記代替経路候補のそれぞれについて求め複数の前記代替経路候補の中から、前記トラフィック量の総計が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項19記載のネットワークシステム。
  21.  前記コントローラは、前記代替経路候補上の各ノードのトラフィック量の最大値を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記トラフィック量の最大値が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項19記載のネットワークシステム。
  22.  前記コントローラは、前記代替経路候補上の各ノードに既に設定されているフロー情報を参照し、前記代替経路候補上の前記各ノードのフロー情報のエントリが、前記ノードを通過し移動対象の前記フローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、複数の前記代替経路候補のうちから代替経路を決定する、ことを特徴とする請求項15記載のネットワークシステム。
  23.  前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
     前記コントローラは、前記フローが通っていた前記ノードのフロー情報のエントリのルールとアクションに関して、前記代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、一致数が最高値のフロー情報のエントリを、集約対象とする、ことを特徴とする請求項22記載のネットワークシステム。
  24.  前記コントローラは、最高値の一致数が同一のフロー情報のエントリが複数ある場合、前記フローが通っていた前記ノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、
     複数の前記代替経路候補のそれぞれについて前記代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定する、ことを特徴とする請求項23記載のネットワークシステム。
  25.  前記コントローラは、前記代替経路上のノードにおいて、集約可能な、複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成して、前記ノードに設定登録し、
     前記ノードは、前記集約可能なフロー情報のエントリを前記ノードから削除する、ことを特徴とする請求項15乃至24のいずれか1項に記載のネットワークシステム。
  26.  前記コントローラは、集約したフロー情報のエントリを記憶する集約経路記憶部を備え、
     前記集約経路記憶部は、ノードに対応して、ノードの識別情報と、ノード別の集約フロー情報のテーブルへのポインタを有するエントリを、各ノードに対して備えた集約経路管理テーブルを有し、前記ノード別の集約フロー情報のテーブルは、ノード上の集約フロー情報のエントリと、前記集約フロー情報に集約された元のフロー情報のエントリを指すポインタのリストを含む、ことを特徴とする請求項14乃至25のいずれか1項に記載のネットワークシステム。
  27.  前記集約経路記憶部において、前記フロー情報のエントリへのポインタリストに格納されているポインタの数が2つ以上であれば、前記フロー情報のエントリへのポインタリストに対応する集約フロー情報のエントリは、ポインタでポイントされる複数のフロー情報のエントリが、前記集約したフロー情報のエントリに集約された元のフロー情報であり、
     前記フロー情報のエントリへのポインタリストのポインタの数が1の場合、集約が行われていないフロー情報のエントリであり、
     前記フロー情報のエントリへのポインタリストのポインタの数が0の場合、該フロー情報のエントリへのポインタリストに対応する集約フロー情報のエントリは、実際に参照されていないため、削除される、ことを特徴とする請求項26記載のネットワークシステム。
  28.  前記コントローラは、前記ノードを通過するフローを前記代替経路に移す際に、前記ノードを通過する複数のフローを集約した上で、前記代替経路に移す、ことを特徴とする請求項14記載のネットワークシステム。
  29.  配下のノードの状態の変更を制御するノード状態変更部と、
     フローに対するノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定するフロー情報設定部と、
     あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
     移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
     複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出部と、
     前記代替経路上の各ノードのフローを集約する経路集約実行部と、
     を備えている、ことを特徴とするコントローラ。
  30.  前記ノードには、前記ノードを通過するフロー数分に対応したエントリ数のフロー情報が設定され、
     前記経路集約実行部は、
     前記代替経路上の各ノードのフローを集約する際、前記代替経路上の前記各ノードにおける前記フローに対応するフロー情報のエントリの集約を行う、ことを特徴とする請求項29記載のコントローラ。
  31.  前記代替経路算出部は、複数の前記代替経路候補の中から、前記代替経路候補上のノードのフロー情報のエントリ数に基づき、前記代替経路を決定する、ことを特徴とする請求項30記載のコントローラ。
  32.  前記代替経路算出部は、複数の前記代替経路候補上の各ノードのフロー情報のエントリ数の総計を、前記代替経路候補のそれぞれについて求め、
     前記代替経路候補の中から、前記フロー情報のエントリ数の総計が他よりも小さい代替経路候補を前記代替経路と決定する、ことを特徴とする請求項31記載のコントローラ。
  33.  前記代替経路算出部は、前記代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記フロー情報のエントリ数の最大値が他よりも小さい前記代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項31記載のコントローラ。
  34.  前記ノードのトラフィック量を取得して管理するトラフィック管理部を備え、
     前記代替経路算出部は、複数の前記代替経路候補の中から、前記代替経路候補上のノードのトラフィック量に基づき、前記代替経路を決定する、ことを特徴とする請求項30記載のコントローラ。
  35.  前記代替経路算出部は、前記代替経路候補上の各ノードのトラフィック量の総計を、前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記トラフィック量の総計が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項34記載のコントローラ。
  36.  前記代替経路算出部は、前記代替経路候補上の各ノードのトラフィック量の最大値を、前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記トラフィック量の最大値が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項34記載のコントローラ。
  37.  前記代替経路算出部は、前記代替経路候補上の各ノードに既に設定されているフロー情報のエントリを参照し、前記代替経路候補上の前記各ノードのフロー情報のエントリが、前記ノードを通過し移動対象の前記フローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、前記代替経路候補のうちから代替経路を決定する、ことを特徴とする請求項30記載のコントローラ。
  38.  前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
     前記代替経路算出部は、前記フローが通っていた前記ノードのフロー情報のエントリのルールとアクションに関して、前記代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、前記一致数が最高値のフロー情報のエントリを集約対象とする、ことを特徴とする請求項37記載のコントローラ。
  39.  前記代替経路算出部は、最高値の一致数が同一のフロー情報のエントリが複数ある場合、前記フローが通っていた前記ノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、
     前記代替経路候補のそれぞれについて前記代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定する、ことを特徴とする請求項38記載のコントローラ。
  40.  前記経路集約実行部は、前記代替経路上のノードにおいて、集約可能な複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成して前記ノードに設定登録し、前記ノードは、集約可能なフロー情報のエントリを前記ノードから削除する、ことを特徴とする請求項29乃至39のいずれか1項に記載のコントローラ。
  41.  前記経路集約実行部で集約されたフロー情報のエントリを記憶する集約経路記憶部を備え、
     前記集約経路記憶部は、ノードに対応して、ノードの識別情報と、ノード別の集約フロー情報のテーブルへのポインタを有するエントリを、各ノードに対して備えた集約経路管理テーブルを有し、
     前記ノード別の集約フロー情報のテーブルは、ノード上の集約フロー情報のエントリと、前記集約フロー情報に集約された元のフロー情報のエントリを指すポインタのリストを含む、ことを特徴とする請求項29乃至40のいずれか1項に記載のコントローラ。
  42.  前記集約経路記憶部において、前記フロー情報のエントリへのポインタリストに格納されているポインタの数が2つ以上であれば、前記フロー情報のエントリへのポインタリストに対応する集約フロー情報のエントリは、ポインタでポイントされる複数のフロー情報のエントリが、前記集約フロー情報のエントリに集約されたものであり、
     前記フロー情報のエントリへのポインタリストのポインタの数が1の場合、集約が行われていないフロー情報のエントリであり、
     前記フロー情報のエントリへのポインタリストのポインタの数が0の場合、該フロー情報のエントリへのポインタリストに対応する集約フロー情報のエントリは実際に参照されていないため、削除される、ことを特徴とする請求項41に記載のコントローラ。
  43.  前記ノードを通過するフローを前記代替経路に移す際に、前記経路集約実行部が、前記ノードを通過する複数のフローを集約した上で、前記代替経路に移す、ことを特徴とする請求項29記載のコントローラ。
  44.  配下のノードの状態の変更を制御するノード状態変更処理と、
     フローに対するノードでの動作を規定するフロー情報を、前記フローに対応した経路上の各ノードにそれぞれ設定するフロー情報設定処理と、
     あるノードを通過するフローを、前記フローが通っていた前記あるノードを通らない別の代替経路に移す際に、
     移動対象の前記フローに対応する経路の送信元と宛先が一致し、前記フローが通っていた前記あるノードを通らない代替経路候補を複数求め、
     複数の前記代替経路候補の中から予め定められた基準にしたがって代替経路を決定する代替経路算出処理と、
     前記代替経路上の各ノードのフローを集約する経路集約実行処理と、
     をコントローラに実行させるプログラム。
  45.  前記ノードには、前記ノードを通過するフロー数分に対応したエントリ数のフロー情報が設定され、
     前記経路集約実行処理は、
     前記代替経路上の各ノードのフローを集約する際、
     前記代替経路上の前記各ノードにおける前記フローに対応するフロー情報のエントリの集約を行う、ことを特徴とする請求項44記載のプログラム。
  46.  前記代替経路算出処理は、複数の前記代替経路候補の中から、前記代替経路候補上のノードのフロー情報のエントリ数に基づき、前記代替経路を決定する、ことを特徴とする請求項45記載のプログラム。
  47.  前記代替経路算出処理は、前記代替経路候補上の各ノードのフロー情報のエントリ数の総計を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記フロー情報のエントリ数の総計が他よりも小さい代替経路候補を前記代替経路と決定する、ことを特徴とする請求項46記載のプログラム。
  48.  前記代替経路算出処理は、前記代替経路候補上の各ノードのフロー情報のエントリ数の最大値を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記フロー情報のエントリ数の最大値が他よりも小さい前記代替経路候補を前記代替経路と決定する、ことを特徴とする請求項46記載のプログラム。
  49.  前記ノードのトラフィック量を取得して管理するトラフィック管理処理を備え、
     前記代替経路算出処理は、複数の前記代替経路候補の中から、前記代替経路候補上のノードのトラフィック量に基づき、前記代替経路を決定する、ことを特徴とする請求項45又は46記載のプログラム。
  50.  前記代替経路算出処理は、前記代替経路候補上の各ノードのトラフィック量の総計を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記トラフィック量の総計が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項49記載のプログラム。
  51.  前記代替経路算出処理は、前記代替経路候補上の各ノードのトラフィック量の最大値を、複数の前記代替経路候補のそれぞれについて求め、
     複数の前記代替経路候補の中から、前記トラフィック量の最大値が他よりも小さい代替経路候補を、前記代替経路と決定する、ことを特徴とする請求項49記載のプログラム。
  52.  前記代替経路算出処理は、前記代替経路候補上の各ノードに既に設定されているフロー情報を参照し、前記代替経路候補上の前記各ノードのフロー情報のエントリが、前記ノードを通過し移動対象の前記フローに対応するフロー情報のエントリと、どの程度集約ができるかを求め、複数の前記代替経路候補の中から代替経路を決定する、ことを特徴とする請求項45記載のプログラム。
  53.  前記フロー情報は、前記ノードに入力されたパケットのヘッダーと照合するルールと、前記ルールにヒットしたパケットに対する前記ノードでの転送を含む動作を規定するアクションと、を少なくとも含み、
     前記代替経路算出処理は、前記フローが通っていた前記ノードのフロー情報のエントリのルールとアクションに関して、前記代替経路候補上のノードのそれぞれに対してフロー情報のエントリのアクションと一致したものについて、ルールの一致数を導出し、一致数が最高値のフロー情報のエントリを集約対象とする、ことを特徴とする請求項46記載のプログラム。
  54.  前記代替経路算出処理は、最高値の一致数が同一のフロー情報のエントリが複数ある場合、前記フローが通っていた前記ノードのフロー情報のエントリのルールの要素との一致の組み合わせにしたがって複数の集合に類別し、複数のグループのうちフロー情報のエントリの数が最も多い集合のフロー情報のエントリを集約対象とし、
     複数の前記代替経路候補のそれぞれについて前記代替経路候補上のノードに関する集約対象のフロー情報のエントリ数の総和に基づき、代替経路を決定する、ことを特徴とする請求項53記載のプログラム。
  55.  前記経路集約実行処理は、前記代替経路上のノードにおいて、集約可能な複数のフロー情報のエントリについて、ルールのうち一致しない要素の欄をワイルドカードとした新たなフロー情報のエントリを作成して前記ノードに設定登録し、前記ノードは、前記集約可能なフロー情報のエントリを前記ノードから削除する、ことを特徴とする請求項44乃至54のいずれか1項に記載のプログラム。
  56.  前記あるノードを通過するフローを前記代替経路に移す際に、前記経路集約実行処理は、前記あるノードを通過するフローに対応する複数のフローを集約した上で、前記代替経路に移す、ことを特徴とする請求項44記載のプログラム。
  57.  請求項44乃至56のいずれか1項記載のプログラムを記録したコンピュータで読取可能な記録媒体。
PCT/JP2010/067404 2009-10-06 2010-10-05 ネットワークシステムとコントローラ、方法とプログラム WO2011043312A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011535389A JP5652400B2 (ja) 2009-10-06 2010-10-05 ネットワークシステムとコントローラ、方法とプログラム
US13/500,065 US8780721B2 (en) 2009-10-06 2010-10-05 Network system, controller, method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-232307 2009-10-06
JP2009232307 2009-10-06

Publications (1)

Publication Number Publication Date
WO2011043312A1 true WO2011043312A1 (ja) 2011-04-14

Family

ID=43856765

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/067404 WO2011043312A1 (ja) 2009-10-06 2010-10-05 ネットワークシステムとコントローラ、方法とプログラム

Country Status (3)

Country Link
US (1) US8780721B2 (ja)
JP (1) JP5652400B2 (ja)
WO (1) WO2011043312A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014002481A1 (en) * 2012-06-26 2014-01-03 Nec Corporation Communication method, information processing apparatus, communication system, communication terminal, and program
WO2014002455A1 (en) * 2012-06-26 2014-01-03 Nec Corporation Communication method, information processing apparatus, communication system, program, node, and communication terminal
WO2014002460A1 (en) * 2012-06-26 2014-01-03 Nec Corporation Communication method, communication system, information processing apparatus, communication terminal, and program
JP2014127768A (ja) * 2012-12-25 2014-07-07 Nec Corp 通信ノード、制御装置、通信システム、エントリ集約方法及びプログラム
JP2015154265A (ja) * 2014-02-14 2015-08-24 日本電信電話株式会社 データ転送システム、ネットワーク装置、制御用サーバ装置、および通信制御プログラム
CN105009529A (zh) * 2013-06-14 2015-10-28 华为技术有限公司 一种处理报文的方法和转发器
JP2016067053A (ja) * 2015-12-25 2016-04-28 株式会社Nttドコモ 制御ノード及び通信制御方法
JP2019024272A (ja) * 2018-11-22 2019-02-14 株式会社エヌ・ティ・ティ・データ 制御装置、制御方法及びプログラム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140269299A1 (en) * 2013-03-14 2014-09-18 Hewlett-Packard Development Company, L.P. Network controller normalization of network traffic
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9444748B2 (en) * 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
KR20140135000A (ko) * 2013-05-15 2014-11-25 삼성전자주식회사 소프트웨어정의네트워킹 기반 통신시스템의 서비스 처리 방법 및 장치
KR20140134998A (ko) * 2013-05-15 2014-11-25 삼성전자주식회사 통신 시스템에서 음성 서비스 성능 향상을 위한 방법 및 장치
US9893989B2 (en) 2013-06-24 2018-02-13 Hewlett Packard Enterprise Development Lp Hard zoning corresponding to flow
KR101573150B1 (ko) 2013-11-01 2015-11-30 주식회사 케이티 Sdn 네트워크 환경에서 플로우 테이블의 정합성 관리 방법
WO2015077976A1 (zh) * 2013-11-29 2015-06-04 华为技术有限公司 一种流表项的下发方法及装置
CN104702496A (zh) 2013-12-10 2015-06-10 财团法人资讯工业策进会 封包交换系统及方法
JP6269238B2 (ja) * 2014-03-27 2018-01-31 富士通株式会社 ネットワーク管理方法、ネットワーク管理システム、およびネットワーク管理装置
JP6287518B2 (ja) * 2014-04-14 2018-03-07 富士通株式会社 オープンフロースイッチおよびオープンフローネットワークの障害復旧方法
WO2016105330A1 (en) * 2014-12-22 2016-06-30 Hewlett Packard Enterprise Development Lp Response to an inoperative network device managed by a controller
CN106713182B (zh) * 2015-08-10 2020-10-09 华为技术有限公司 一种处理流表的方法及装置
US9762495B1 (en) * 2016-09-13 2017-09-12 International Business Machines Corporation Weighted distribution across paths of degraded quality
CN106411734B (zh) * 2016-10-18 2019-08-16 网宿科技股份有限公司 一种路由选择方法和路由器
CN109067665B (zh) * 2018-09-25 2022-01-11 华为技术有限公司 拥塞控制方法和网络设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH053475A (ja) * 1991-06-26 1993-01-08 Fujitsu Ltd 経路探索方式
JPH07250356A (ja) * 1994-03-09 1995-09-26 Nippon Telegr & Teleph Corp <Ntt> 光パス網構成方法
JP2000059374A (ja) * 1998-08-06 2000-02-25 Fujitsu Ltd Atm網のpvcのリルーティング方法および網管理システム
JP2000069031A (ja) * 1998-08-21 2000-03-03 Nec Corp Rsvpにおける代理フロー構築システムおよび方法
JP2009206718A (ja) * 2008-02-27 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> ネットワークのリンク増設箇所またはリンク容量増設箇所特定方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2950369B2 (ja) * 1996-12-27 1999-09-20 日本電気株式会社 Atm網における現用予備経路設定方式
US6538991B1 (en) * 1999-08-03 2003-03-25 Lucent Technologies Inc. Constraint-based routing between ingress-egress points in a packet network
US7130262B1 (en) * 2002-01-16 2006-10-31 At & T Corp. Method and apparatus for providing alternative link weights for failed network paths
JP3711965B2 (ja) 2002-07-18 2005-11-02 日本電気株式会社 Ipフロー多段ハッシュ装置、ipフロー多段ハッシュ方法、ipフロー多段ハッシュプログラム及びその記録媒体
US6950432B2 (en) * 2003-05-23 2005-09-27 Matsushita Electric Industrial Co., Ltd. Architecture for dense multicast networks with provisioned routes
DE102005003260B4 (de) * 2005-01-24 2008-07-17 Nokia Siemens Networks Gmbh & Co.Kg Iteratives Routing-Verfahren mit pfadabhängiger Routing-Metrik

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH053475A (ja) * 1991-06-26 1993-01-08 Fujitsu Ltd 経路探索方式
JPH07250356A (ja) * 1994-03-09 1995-09-26 Nippon Telegr & Teleph Corp <Ntt> 光パス網構成方法
JP2000059374A (ja) * 1998-08-06 2000-02-25 Fujitsu Ltd Atm網のpvcのリルーティング方法および網管理システム
JP2000069031A (ja) * 1998-08-21 2000-03-03 Nec Corp Rsvpにおける代理フロー構築システムおよび方法
JP2009206718A (ja) * 2008-02-27 2009-09-10 Nippon Telegr & Teleph Corp <Ntt> ネットワークのリンク増設箇所またはリンク容量増設箇所特定方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014002481A1 (en) * 2012-06-26 2014-01-03 Nec Corporation Communication method, information processing apparatus, communication system, communication terminal, and program
WO2014002455A1 (en) * 2012-06-26 2014-01-03 Nec Corporation Communication method, information processing apparatus, communication system, program, node, and communication terminal
WO2014002460A1 (en) * 2012-06-26 2014-01-03 Nec Corporation Communication method, communication system, information processing apparatus, communication terminal, and program
EP2865143A4 (en) * 2012-06-26 2016-02-17 Nec Corp COMMUNICATION METHOD, INFORMATION PROCESSING DEVICE, COMMUNICATION SYSTEM, COMMUNICATION TERMINAL AND PROGRAM
US9794170B2 (en) 2012-06-26 2017-10-17 Nec Corporation Communication method, communication system, information processing apparatus, communication terminal, and program
JP2014127768A (ja) * 2012-12-25 2014-07-07 Nec Corp 通信ノード、制御装置、通信システム、エントリ集約方法及びプログラム
CN105009529A (zh) * 2013-06-14 2015-10-28 华为技术有限公司 一种处理报文的方法和转发器
JP2016524412A (ja) * 2013-06-14 2016-08-12 華為技術有限公司Huawei Technologies Co.,Ltd. パケットを処理するための方法およびフォワーダ
US9998364B2 (en) 2013-06-14 2018-06-12 Huawei Technologies Co., Ltd. Method for processing packet and forwarder
JP2015154265A (ja) * 2014-02-14 2015-08-24 日本電信電話株式会社 データ転送システム、ネットワーク装置、制御用サーバ装置、および通信制御プログラム
JP2016067053A (ja) * 2015-12-25 2016-04-28 株式会社Nttドコモ 制御ノード及び通信制御方法
JP2019024272A (ja) * 2018-11-22 2019-02-14 株式会社エヌ・ティ・ティ・データ 制御装置、制御方法及びプログラム

Also Published As

Publication number Publication date
US20120201140A1 (en) 2012-08-09
JPWO2011043312A1 (ja) 2013-03-04
JP5652400B2 (ja) 2015-01-14
US8780721B2 (en) 2014-07-15

Similar Documents

Publication Publication Date Title
JP5652400B2 (ja) ネットワークシステムとコントローラ、方法とプログラム
JP5621781B2 (ja) ネットワークシステムとコントローラと方法とプログラム
JP6508256B2 (ja) 通信システム、通信装置、制御装置、パケットフローの転送経路の制御方法及びプログラム
JP6418261B2 (ja) 通信システム、ノード、制御装置、通信方法及びプログラム
US9794124B2 (en) Information system, control server, virtual network management method, and program
JP5850068B2 (ja) 制御装置、通信システム、通信方法およびプログラム
WO2012060316A1 (ja) 通信システム、制御装置、パケット転送経路の制御方法およびプログラム
US9461893B2 (en) Communication system, node, statistical information collection device, statistical information collection method and program
JPWO2014112612A1 (ja) 通信システム、制御装置及びネットワークトポロジの管理方法
WO2014112616A1 (ja) 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
JP5858141B2 (ja) 制御装置、通信装置、通信システム、通信方法及びプログラム
JP2014502794A (ja) 通信経路制御システム、経路制御装置、通信経路制御方法および経路制御プログラム
US20190007279A1 (en) Control apparatus, communication system, virtual network management method, and program
JP2015057879A (ja) コンピュータ・ネットワーキングにおけるパケットのマルチパス・ルーティング・デバイスおよびその使用方法
JP6314970B2 (ja) 通信システム、制御装置、通信方法およびプログラム
WO2014142081A1 (ja) 転送ノード、制御装置、通信システム、パケット処理方法及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10821982

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13500065

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011535389

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10821982

Country of ref document: EP

Kind code of ref document: A1