WO2011080870A1 - 通信システムおよびポート情報収集方法 - Google Patents

通信システムおよびポート情報収集方法 Download PDF

Info

Publication number
WO2011080870A1
WO2011080870A1 PCT/JP2010/006875 JP2010006875W WO2011080870A1 WO 2011080870 A1 WO2011080870 A1 WO 2011080870A1 JP 2010006875 W JP2010006875 W JP 2010006875W WO 2011080870 A1 WO2011080870 A1 WO 2011080870A1
Authority
WO
WIPO (PCT)
Prior art keywords
port
packet
connection destination
packet transfer
control device
Prior art date
Application number
PCT/JP2010/006875
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 JP2011547261A priority Critical patent/JP5598482B2/ja
Priority to EP10840730.5A priority patent/EP2521308B1/en
Priority to RU2012132449/08A priority patent/RU2012132449A/ru
Priority to CN201080059970.9A priority patent/CN102687465B/zh
Publication of WO2011080870A1 publication Critical patent/WO2011080870A1/ja
Priority to US13/137,485 priority patent/US9391880B2/en

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/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/344Out-of-band transfers

Definitions

  • the present invention relates to a communication system including a plurality of packet transfer devices and a control device that controls each packet transfer device, and a packet transfer device, a control device, a port information collection method, and a control device program applied to the communication system.
  • a communication system including a plurality of packet transfer devices and a control device that controls each packet transfer device, and a packet transfer device, a control device, a port information collection method, and a control device program applied to the communication system.
  • the communication system includes a plurality of switches that transfer packets and a control device that controls each switch, the control device sets flow entry information in each switch, and forwards packets received by each switch according to the flow entry information .
  • the flow entry information is information that defines how to process a packet (transfer, discard, rewrite, etc.) according to the header of the received packet.
  • Such a communication system requires a control channel used by the control device to control the switch. For example, when a switch receives a packet that is not defined in the flow entry information, the switch notifies the control device to that effect, and the control device transmits flow entry information corresponding to the packet to the switch.
  • the control channel is used for such notification from the switch to the control device, transmission of flow entry information from the control device to the switch, and the like.
  • the protocol for the control device to control the switch is called open flow. It can be said that the switch is a packet transfer device that transfers a packet.
  • the control channel corresponds to “Secure channel” in OpenFlow. In the open flow, the control device is called a “controller”.
  • FIG. 27 is an explanatory diagram illustrating an example of a general communication system to which OpenFlow is applied.
  • Each switch 92 shown in FIG. 27 uses a packet transfer communication network 94 when transferring a received packet to another switch based on the flow entry information.
  • a control communication network 93 serving as a control channel is provided separately from the packet transfer communication network 94, and the control device 91 controls each switch 92 via the control communication network 93.
  • the control communication network 93 uses a routing protocol such as STP (Spanning Tree Protocol), TCP / IP (Transmission Control Protocol / Internet Protocol), RIP (Routing Information Protocol), OSPF (Open Shortest Path First).
  • each switch transmits and receives control frames in the communication system to grasp a new topology.
  • a control frame for grasping the topology there is, for example, BPDU (Bridge Protocol Data Unit) in STP.
  • BPDU Bridge Protocol Data Unit
  • a control communication network 93 and a packet transfer communication network 94 are used.
  • a communication system including a plurality of packet transfer devices and a control device that controls each packet transfer device a communication network that each packet transfer device uses for packet transfer, and a control device that is used to control each packet transfer device. It is preferable to combine the communication network into one type.
  • the present invention is a communication system including a plurality of packet transfer devices and a control device that controls each packet transfer device, wherein each packet transfer device uses a communication network for packet transfer, and the control device uses each packet transfer device.
  • Communication system that can be used to control the communication network, and a packet transfer device, a control device, a port information collection method, and a program for the control device that are applied to the communication system.
  • the communication system includes a plurality of packet transfer devices and a control device that controls the packet transfer devices, and the control device stores topology information including connection information between the ports of the control device or the packet transfer device.
  • a response request transmission means for sending a response request to the connection destination of the connection destination unsearched port, and information on the port of the packet transfer device from the packet transfer device that is the connection destination of the connection destination unsearched port
  • Response receiving means for receiving a response
  • the packet transfer apparatus transfers the response request to another packet based on the content of the received response request.
  • the transfer determination means for determining whether or not to transfer to the device
  • the response request is transferred to the other packet transfer device based on the content of the response request.
  • a forwarding means and a response sending means for returning a response sent along the path to the control device, including information on the port of the own packet forwarding device, when it is determined not to forward the response request to another packet forwarding device. It is characterized by including.
  • control device is a control device for controlling a plurality of packet transfer devices, topology information storage means for storing topology information including connection information between each port of the control device or the packet transfer device, From the topology information, the connection destination unsearched port specifying means for specifying the connection destination unsearched port whose connection destination is not searched among the ports of the control device or the packet transfer device, via the connection destination unsearched port, Response request transmission means for sending a response request to the connection destination of the connection destination unsearched port, and a response for receiving a response including information on the port of the packet transfer device from the packet transfer device that is the connection destination of the connection destination unsearched port Receiving means.
  • the packet transfer device is a packet transfer device controlled by the control device, and is a response request to the connection destination of the connection destination unsearched port whose connection destination is not searched, and is transmitted by the control device.
  • transfer determination means for determining whether to transfer the response request to another packet transfer device, and to transfer the response request to another packet transfer device. If it is determined that the response request is not transferred to another packet transfer device based on the content of the response request, the transfer means for transferring the response request to the other packet transfer device and the port of the own packet transfer device Response transmission means for returning a response that includes information and is sent along a route to the control device.
  • the port information collecting method is such that a control device that controls a plurality of packet transfer devices uses the control device or the packet transfer device from topology information including connection information between each port of the control device or the packet transfer device.
  • the connection destination unsearched port whose connection destination is not searched is identified, and a response request to the connection destination of the connection destination unsearched port is sent via the connection destination unsearched port, and the connection destination unsearched
  • a response including port information of the packet transfer apparatus is received from the packet transfer apparatus to which the port is connected.
  • control device program is a control device program installed in a computer that controls a plurality of packet transfer devices, and the connection information between each port of the computer or the packet transfer device is transmitted to the computer.
  • the connection destination unsearched port specifying process for specifying the connection destination unsearched port whose connection destination is not searched among the ports of the computer or the packet transfer device from the topology information included, and the connection via the connection destination unsearched port Response request transmission processing for sending a response request to the connection destination of the destination unsearched port, and a response for receiving a response including information on the port of the packet transfer device from the packet transfer device that is the connection destination of the connection destination unsearched port A reception process is executed.
  • the communication network used by each packet transfer device for packet transfer and the control device controls each packet transfer device.
  • the communication networks used for the communication can be combined into one type.
  • the communication system of the present invention includes a plurality of packet transfer apparatuses that transfer packets and a control apparatus that controls the plurality of switches.
  • the control device transmits flow entry information to the packet transfer device, and the packet transfer device processes the packet according to the flow entry information when receiving the packet.
  • a terminal device connected to one of the packet transfer devices may transmit or broadcast a packet to another terminal device connected to another packet transfer device via an arbitrary route. It becomes possible.
  • the packet transfer device in the present invention is, for example, a switch in open flow
  • the control device in the present invention is, for example, a controller in open flow.
  • a case where the packet transfer device and the control device are a switch and a controller in the open flow will be described as an example.
  • the present invention can be applied to other than open flow.
  • the present invention can be applied to any communication system having a configuration in which the control device centrally manages each packet transfer device on the communication network.
  • the communication system of the present invention does not include a communication network specialized for control between the control device (controller) and the switch.
  • the control device only needs to be connected to at least one switch.
  • the control device provides a control channel with each switch using a communication network used by each switch for packet transfer.
  • the control device uses the link of the communication network that each switch uses for packet transfer to and from each switch after the switch connected to the control device itself when viewed from the control device.
  • a control apparatus communicates with each switch by tunneling via a control channel, and controls each switch. That is, in the present invention, it can be said that the control device forms a star-structured overlay network with individual switches by using a communication network used by each switch for packet transfer.
  • the control device holds topology information representing the connection relationship between the control device itself and the ports of each switch. Individual switches need not retain topology information. In the initial state, the control device does not hold the topology information, and makes an inquiry about the connection state of the port to the switch to create the topology information.
  • the control device grasps the topology of the switch group, it determines a route to be a control channel with the switch for each switch, and sends a packet for notifying each switch of the route to the control device. Send.
  • the control device can recognize the control channel to each switch, and each switch can also recognize the control channel to the control device. Thereafter, when the switch and the control device communicate with each other, the communication is performed by tunneling via the control channel.
  • FIG. 1 is an explanatory diagram schematically showing a process from a state in which the control device does not hold topology information to a communication between the control device and the switch through tunneling.
  • FIG. 1 (a) schematically shows an initial state of the communication system of the present invention. In this state, the control device 10 is connected to at least one switch of the switch group, but does not recognize which port of which switch is connected.
  • the control device 10 Based on the topology information, the control device 10 identifies a port that is a link-up port of the control device itself or a switch port, and which is connected to which port of which switch is unknown. Hereinafter, this port is referred to as a connection destination unsearched port. Then, the control device 10 transmits a request packet so that a packet (hereinafter referred to as a request packet) that inquires the port that is linked up to the switch is output from the connection destination unsearched port (FIG. 1). (See (b)). Since topology information is not retained in the initial state, the control device 10 identifies the port of the control device 10 itself to which switch is unknown as a connection destination unsearched port, and the connection destination unsearched port. Send a request packet from.
  • a link-up port is a port connected to another switch.
  • the switch 20 that has received the request packet includes information indicating the link-up port, information indicating the port from which the switch has received the request packet, and identification information of the switch 20 itself.
  • a packet (hereinafter referred to as a reply packet) is returned to the control device 10 from the port that received the request packet (see FIG. 1C).
  • the control device 10 generates and holds topology information based on the reply packet. Further, the control device 10 specifies a connection destination unsearched port based on the topology information, and transmits a request packet so as to be output from the connection destination unsearched port.
  • the connection destination unsearched port is a port of the switch 20
  • the control device 10 performs source routing so that the switch 20 having the connection destination unsearched port of interest outputs a request packet from the connection destination unsearched port. Request packet is forwarded to each switch.
  • the switch 20 that has received the request packet also transmits the reply packet from the port that has received the request packet, and the control device 10 reflects the contents of the reply packet in the topology information.
  • control device 10 repeats the identification of the connection destination unsearched port, the transmission of the request packet, the reception of the reply packet, and the creation of topology information. Then, the control device 10 determines that the topology information is completed when it becomes impossible to identify the connection destination unsearched port from the topology information.
  • control apparatus 10 determines the path
  • Each switch 20 that has received the setup packet stores a path serving as a control channel from the switch 20 itself to the control device 10 based on the setup packet. As a result, each switch 20 can recognize the control channel up to the control device 10.
  • communication for the control device 10 to control the switch 20 is performed by tunneling via a control channel determined for each switch 20 (see FIG. 1E).
  • the switch 20 notifies the control device 10 to that effect.
  • the switch 20 performs this notification by tunneling via the control channel.
  • the control device 10 Upon receiving this notification, the control device 10 generates flow entry information and transmits it to the switch.
  • the control apparatus 10 transmits flow entry information by tunneling via a control channel.
  • a tunnel packet transmitted and received between the control device 10 and the switch 20 via the control channel through tunneling is hereinafter referred to as a tunnel packet.
  • control device 10 periodically recreates the topology information. For example, when a certain period of time has elapsed since the control device 10 started generating the request packet in the initial state, the topology information is deleted and returned to the initial state, and generation of the request packet is started again and collected. Based on the reply packet, topology information is newly created, and a setup packet is transmitted to each switch. The control device 10 repeats this operation. By periodically recreating the topology information, even if the connection relationship between the switches is changed, the change can be reflected in the topology information.
  • Request packet, reply packet, setup packet and tunnel packet are described as specific packets.
  • the switch 20 performs a different process on the specific packet from the data packet transferred between the switches.
  • the switch 20 receives a data packet exchanged between terminals (not shown)
  • the switch 20 transfers the data packet according to the flow entry information. If the flow entry information does not specify the flow of the data packet, the switch 20 informs the control device 10 of the fact. Notice.
  • the switch 20 does not perform such processing, but performs processing according to the request packet, reply packet, setup packet, and tunnel packet.
  • each switch gives priority to the processing for the specific packet in the data packet and the specific packet. By giving priority to processing for a specific packet, QoS (Quality of Service) of the communication system can be guaranteed.
  • QoS Quality of Service
  • a count value corresponding to the number of hops from the transmission source of the specific packet is described. This count value is referred to as a port count.
  • FIG. 2 is a block diagram illustrating a configuration example of a control device and a switch included in the communication system of the present invention.
  • FIG. 2 illustrates the case where the communication system includes four switches 20a to 20d, but the number of switches and the topology of the switches are not particularly limited.
  • 2 illustrates a case where two switches 20a and 20b are connected to the control device 10, but three switches are connected to the control device 10 even if the number of switches is one. It may be the above.
  • the control device 10 may be connected to at least one switch.
  • the control device 10 includes a control device side specific packet transmission / reception unit 11, a topology search unit 12, a topology holding unit 13, a control channel route determination unit 14, and a control device side control message tunneling unit 15.
  • Control device side specific packet transmission / reception unit 11 transmits and receives specific packets. Specifically, the specific packet transmitting / receiving unit 11 transmits a request packet, a setup packet, and a tunnel packet, and receives a reply packet and a tunnel packet.
  • the specific packet transmission / reception unit 11 When the specific packet transmission / reception unit 11 receives a reply packet from the switch, the specific packet transmission / reception unit 11 outputs the reply packet to the topology search unit 12. When the specific packet transmission / reception unit 11 receives a tunnel packet from the switch, the specific packet transmission / reception unit 11 outputs the tunnel packet to the control device side control message tunneling processing unit 15.
  • the request packet, setup packet, and tunnel packet transmitted by the specific packet transmission / reception unit 11 are sequentially transferred to the switch on the route by the source routing and reach the destination switch.
  • the topology search unit 12 that generates the request packet describes the output port of the control device 10 itself and the output port of each switch on the route to the destination switch in the request packet, and the specific packet transmission / reception unit 11 A request packet is transmitted from the port of the control device 10 described first in the output port sequence.
  • the control channel route determining unit 14 that generates the setup packet describes the output port of the control device 10 itself and the output port of each switch on the control channel up to the destination switch in the setup packet, in order.
  • the transmission / reception unit 11 transmits a setup packet from the port of the control device 10 described first in the output port sequence.
  • control-device-side control message tunneling processing unit 15 that generates a tunnel packet to be sent to the switch sequentially outputs the output port of the control device 10 and the output port of each switch on the control channel to the destination switch.
  • the specific packet transmitting / receiving unit 11 transmits the tunnel packet from the port of the control device 10 described first in the output port sequence. The source routing will be described later.
  • the output port string is a sequence of port identification information.
  • a number port identification number
  • the topology search unit 12 identifies a connection destination unsearched port, generates a request packet, and transmits the request packet to the specific packet transmission / reception unit 11.
  • a reply packet transmitted from the switch is input as a response to the request packet, topology information is created based on the reply packet and stored in the topology holding unit 13.
  • the topology search unit 12 repeats this process until it becomes impossible to identify the connection destination unsearched port from the topology information.
  • the topology searching unit 12 selects a link-up port of the control device 10 itself as a connection destination unsearched port. Then, the topology search unit 12 describes the port selected as the connection destination unsearched port as an output port in the request packet, the length of the output port string (that is, the number of described output ports), and the port count. Describe the initial value. In this case, since the output port is only the port of the control device 10 itself, the length of the output port string is 1.
  • the topology search unit 12 generates a request packet for each connection destination unsearched port. That is, there is a one-to-one correspondence between the connection destination unsearched port and the request packet.
  • the specific packet transmitting / receiving unit 11 transmits each request packet from the port described in the request packet.
  • the topology search unit 12 refers to the topology information, and among the ports linked up of the switch described in the topology information, A port whose connection to which port is unknown is specified as a connection destination unsearched port. Furthermore, the topology search unit 12 identifies the route from the control device 10 to the switch having the connection destination unsearched port of interest from the created topology information. The topology search unit 12 describes the output port of the control apparatus 10 itself and the output port of each switch corresponding to the route in the request packet in order, and the length of the output port string (that is, the number of described output ports). And the initial port count value. Also in this case, the topology search unit 12 generates a request packet for each connection destination unsearched port. The specific packet transmitting / receiving unit 11 transmits each request packet from the first port described in the request packet.
  • the topology search unit 12 generates topology information based on the reply packet obtained from each switch as a response to the request packet.
  • the reply packet contains the identification information of the switch and the request packet that caused the reply packet. Contains information.
  • the topology search unit 12 determines that the connection destination unsearched port corresponding to the request packet is connected to the port of the switch that has transmitted the reply packet, and the switch receives the request packet. Add the connection relationship between ports to the topology information.
  • topology search unit 12 When the topology search unit 12 starts generating a request packet, a series of processes including transmission of a request packet, reception of a reply packet, creation of topology information, and transmission of a setup packet are started.
  • the topology search unit 12 periodically deletes the topology information and starts generating a request packet to start this series of processes.
  • the topology holding unit 13 is a storage device that stores topology information.
  • the control channel route determination unit 14 refers to the topology information after completion of the topology information and determines a control channel for each switch.
  • the method for determining the control channel is not particularly limited.
  • the control channel route determination unit 14 may calculate the shortest route to the switch by the Dijkstra method and determine the route as the control channel. Then, the control channel route determination unit 14 generates a setup packet for each switch.
  • the control channel path determination unit 14 describes the output port of the control device 10 itself and the output port in each switch on the control channel up to the destination switch of the setup packet in the setup packet. Further, the control channel route determination unit 14 describes the length of the output port string (that is, the number of described output ports) and the initial value of the port count in the setup packet. Then, the specific packet transmitting / receiving unit 11 is caused to transmit the setup packet.
  • the control device side control message tunneling processing unit 15 (hereinafter referred to as the control message tunneling processing unit 15) transmits and receives control messages exchanged between the control device 10 and the switch by tunneling. That is, the control message tunneling processing unit 15 encrypts a control message (for example, flow entry information) to be transmitted to the switch and generates an encapsulated tunnel packet. At this time, the control message tunneling processing unit 15 sequentially describes the output port of the control device 10 itself and the output port in each switch on the control channel to the switch that is the destination of the tunnel packet in the tunnel packet. Further, the control message tunneling processing unit 15 describes the length of the output port string and the initial value of the port count in the tunnel packet. Then, the specific packet transmitting / receiving unit 11 is caused to transmit the tunnel packet.
  • the control message tunneling processing unit 15 transmits and receives control messages exchanged between the control device 10 and the switch by tunneling. That is, the control message tunneling processing unit 15 encrypts a control message (for example, flow entry information)
  • the control message tunneling processing unit 15 transmits the control message included in the tunnel packet. Decapsulate and further decode the control message.
  • the initial value of the port count is set to 0
  • the initial value of the port count may be other than 0.
  • the specific packet transmitting / receiving unit 11, the topology searching unit 12, the topology holding unit 13, the control channel route determining unit 14, and the control message tunneling unit 15 may be realized as separate units.
  • the specific packet transmission / reception unit 11, the topology search unit 12, the control channel route determination unit 14, and the control message tunneling unit 15 may be realized by a CPU of a computer that operates according to the control device program.
  • a program storage device (not shown) of the computer stores the control device program, and the CPU reads the program, and according to the program, the specific packet transmission / reception unit 11, the topology search unit 12, and the control channel path determination It suffices to operate as the unit 14 and the control message tunneling unit 15.
  • each switch 20a to 20d is the same.
  • the switch 20a will be described as an example.
  • the switch 20a includes a switch side specific packet transmitting / receiving unit 21, an information providing unit 23, a path holding unit 24, and a switch side control message tunneling unit 25.
  • the switch-side specific packet transmission / reception unit 21 (hereinafter referred to as a specific packet transmission / reception unit 21) transfers, receives, and transmits specific packets.
  • the specific packet transmitting / receiving unit 21 compares the length of the output port sequence described in the specific packet with the port count, and determines whether the switch 20a itself is the destination of the specific packet. judge. In the present embodiment, since the initial value of the port count is 0, if the value obtained by adding 1 to the port count in the received specific packet matches the length of the output port string, the switch 20a itself specifies the specific packet. If the value obtained by adding 1 to the port count in the specific packet is smaller than the length of the output port string, it may be determined that it is not the destination.
  • the length of the output port column is the number of output ports described in the specific packet.
  • the port determined from the port count among the ports described in the output port string in the specific packet is the port of the switch 20a that has received the specific packet. Rewrite to port.
  • the port described in the (k + 1) th in the output port string is rewritten to the port of the switch 20a itself that received the specific packet.
  • the specific packet transmitting / receiving unit 21 specifies the k + 2nd port (that is, the port next to the rewritten port) in the output port string. This port is a port for transmitting a specific packet from the switch 20a itself.
  • the specific packet transmitting / receiving unit 21 adds 1 to the port count value described in the specific packet.
  • the specific packet transmission / reception part 21 transmits a specific packet from the specified port. As a result, the specific packet with the port count incremented is transferred.
  • the specific packet transmitting / receiving unit 21 outputs the request packet to the information providing unit 23. If the packet is a setup packet, the setup packet is output to the path holding unit 24. If the specific packet is a tunnel packet, the tunnel packet is output to the switch-side control message tunneling unit 25.
  • the specific packet transmitting / receiving unit 21 transmits a reply packet.
  • the information providing unit 23 that generates a reply packet describes the output ports in each switch on the route to the control device 10 in order in the reply packet.
  • the specific packet transmitting / receiving unit 21 transmits a reply packet from the port of the switch 20a described first in the output port sequence.
  • the information providing unit 23 sets the information indicating the link-up port of the switch 20a itself as the reply packet and the port from which the switch 20a has received the request packet.
  • the packet including the information to be shown and the identification information of the switch 20a is created.
  • the information providing unit 23 sequentially describes the output port in each switch on the route from the switch itself to the control device 10 in a reply packet.
  • This output port string may be determined as follows. That is, the information providing unit 23 rewrites the last port in the output port sequence described in the input request packet so that the switch receives the request packet.
  • the information providing unit 23 rearranges the order of the ports in the output port string after the rewriting, and describes the rearranged output port string in the reply packet.
  • the information providing unit 23 also describes the length of the output port string and the initial value of the port count in the reply packet, and causes the specific packet transmitting / receiving unit 21 to transmit the reply packet.
  • the switch transmits a reply packet to the request packet from the port that received the request packet.
  • the path holding unit 24 stores a path serving as a control channel from the setup packet to the control device 10. Specifically, the path holding unit 24 rewrites the last port in the output port sequence described in the input setup packet so that the switch receives the setup packet. Then, the path holding unit 24 rearranges the order of the ports in the rewritten output port string in the reverse order, and stores the rearranged output port string as information representing a path serving as a control channel.
  • the switch-side control message tunneling unit 25 (hereinafter referred to as a control message tunneling unit 25) transmits and receives control messages exchanged between the control device 10 and the switch by tunneling. That is, the control message tunneling unit 25 encrypts a control message (for example, a message indicating that a packet not defined in the flow entry information) to be transmitted to the control device 10 is generated, and generates an encapsulated tunnel packet. At this time, the control message tunneling unit 25 reads the output port string indicating the control channel up to the control device 10 from the path holding unit 24, and describes the output port string in the tunnel packet. Further, the control message tunneling unit 25 describes the length of the output port string and the initial value of the port count in the tunnel packet. Then, the specific packet transmitting / receiving unit 21 is caused to transmit the tunnel packet.
  • a control message tunneling unit 25 transmits and receives control messages exchanged between the control device 10 and the switch by tunneling. That is, the control message tunneling unit 25 encrypts a control message
  • control message tunneling unit 25 decapsulates the control message (for example, flow entry information) included in the tunnel packet, and further transmits the control message. Decrypt.
  • the specific packet transmitting / receiving unit 21, the information providing unit 23, the path holding unit 24, and the control message tunneling unit 25 may be realized by separate units.
  • the specific packet transmitting / receiving unit 21, the information providing unit 23, the path holding unit 24, and the control message tunneling unit 25 may be realized by a CPU of a computer that operates according to a packet transfer device program.
  • the program storage device (not shown) of the computer stores the packet transfer device program, and the CPU reads the program, and according to the program, the specific packet transmitting / receiving unit 21, the information providing unit 23, the path holding unit 24 and the control message tunneling unit 25 may be operated.
  • Source routing is a packet transfer method in which a source node describes a communication path in a packet, and a relay node transfers the packet according to the communication path described in the packet.
  • the relay node does not need to hold route information prepared in advance.
  • the communication system of the present invention describes an output port sequence in which output ports to which individual nodes should transmit specific packets are arranged in order in specific packets.
  • the control apparatus 10 and each switch implement
  • FIG. 3 is an explanatory diagram showing an example of source routing when the control device transmits a setup packet to the switch.
  • the topology of the switch shown in FIG. 3 is different from the topology shown in FIG.
  • the switches 20A to 20D shown in FIG. 3 have the same configuration as the switches 20a to 20d shown in FIG.
  • the numbers shown in the vicinity of the control device 10 and the switches 20A to 20D are port identification numbers in the respective devices.
  • a port whose port identification number is n is denoted as #n.
  • control device 10 transmits a setup packet with the switch 20D as a destination is taken as an example.
  • the control device 10 first sets the port count to the initial value 0, and transmits a setup packet describing the output port string ⁇ 2, 3, 2, 1 ⁇ .
  • the control device 10 transmits a setup packet from the port # 2 of the control device 10 (see FIG. 3A).
  • Switch 20A receives this setup packet at port # 1. Then, since the port count value is 0, the switch 20A rewrites the first port identification number in the output port string to the port identification number of the port # 1 that has received the setup packet. Further, since the switch 20A has a port count value of 0, the switch 20A determines that the port to which the switch 20A should transmit the setup packet is described second in the output port sequence, and is described second. The port identification number “3” is specified. Then, the switch 20A updates the port count value from 0 to 1, and transmits a setup packet from the port # 3 of the switch 20A.
  • the output port string described in this setup packet is ⁇ 1, 3, 2, 1 ⁇ (see FIG. 3B).
  • Switch 20B receives this setup packet at port # 1. Then, since the value of the port count is 1, the switch 20B rewrites the second port identification number in the output port sequence with the port identification number of the port # 1 that has received the setup packet. Further, since the switch 20B has a port count value of 1, the switch 20B determines that the port to which the switch 20B should transmit the setup packet is described third in the output port sequence, and is described third. The port identification number “2” is specified. Then, the switch 20B updates the port count value from 1 to 2, and transmits a setup packet from the port # 2 of the switch 20B.
  • the output port string described in this setup packet is ⁇ 1, 1, 2, 1 ⁇ (see FIG. 3C).
  • Switch 20C receives this setup packet at port # 3. Then, since the value of the port count is 2, the switch 20C rewrites the third port identification number in the output port string to the port identification number of the port # 3 that has received the setup packet. Further, since the switch 20C has a port count value of 2, the switch 20C determines that the port to which the switch 20C should transmit the setup packet is described as the fourth in the output port sequence, and is described as the fourth. The port identification number “1” is specified. Then, the switch 20C updates the port count value from 2 to 3, and transmits a setup packet from the port # 1 of the switch 20C.
  • the output port string described in this setup packet is ⁇ 1, 1, 3, 1 ⁇ (see FIG. 3D).
  • Switch 20D receives this setup packet at port # 2.
  • the switch 20D determines that the switch 20D itself is the destination because the port count value is 3 and the number of port identification numbers in the output port string is four. Then, the switch 20D rewrites the last port identification number “1” of the output port string ⁇ 1, 1, 3, 1 ⁇ in the setup packet with the port identification number of the port # 2 that has received the setup packet. As a result, the output port string is ⁇ 1, 1, 3, 2 ⁇ .
  • the switch 20D rearranges the output port string in reverse order, and stores the rearranged output port string ⁇ 2, 3, 1, 1 ⁇ as an output port string representing a control channel up to the control device 10.
  • the control device transmits a setup packet to the switch
  • the operation of the switches 20A to 20C when the control device transmits a tunnel packet or a request packet to the switch 20D is the same. It is.
  • the switch 20D receives the tunnel packet or the request packet in which the output port string ⁇ 1, 1, 3, 1 ⁇ is described at the port # 2.
  • the switch 20D when the switch 20D receives the tunnel packet, the switch 20D does not have to perform processing for the output port string in the tunnel packet.
  • the switch 20D operates as follows when the request packet is received.
  • the switch 20D determines that the switch 20D itself is the destination because the port count value is 3 and the number of port identification numbers in the output port string is four.
  • the switch 20D rewrites the last port identification number of the output port string ⁇ 1, 1, 3, 1 ⁇ described in the request packet to the identification number of the port # 2 that has received the request packet.
  • the output port string is ⁇ 1, 1, 3, 2 ⁇ .
  • This output port sequence is rearranged in reverse order, and the rearranged output port sequence ⁇ 2, 3, 1, 1 ⁇ is described in a reply packet, and the port corresponding to the first of ⁇ 2, 3, 1, 1 ⁇ Send reply packet from # 2.
  • the operation of the switch when receiving the reply packet is the same as the operation when receiving the setup packet and the tunnel packet, and the reply packet reaches the control device 10.
  • control device 10 transmits a specific packet with the switch 20D as the destination is illustrated, but each switch operates in the same manner as described above even when another switch is set as the destination.
  • each switch when each switch describes the output port sequence stored as the control channel up to the control device 10 in the tunnel packet and transmits the tunnel packet, the other switches perform the same operation as above, The packets are sequentially transferred to the control device 10.
  • the case where the initial value of the port count is set to 0 has been described as an example.
  • the method for each switch to determine which port identification number in the output port string is to be rewritten and from which port a specific packet is forwarded can be determined in advance according to the initial value of the port count. That's fine.
  • a method in which the switch that has received the specific packet determines whether or not it is the destination may be determined in advance according to the initial value of the port count.
  • FIG. 4 An example of the format of the specific packet is shown in FIG.
  • FIG. 4 An example in which a specific packet is realized in an Ethernet (registered trademark) frame format is illustrated.
  • the values shown in parentheses in FIG. 4 represent the number of bytes.
  • a destination MAC address 51 and a source MAC address 52 are provided in the Ethernet frame format.
  • the communication system of the present invention does not use these addresses for transmission / reception of specific packets, but transmits specific packets by source routing as described above.
  • a value indicating that the packet is a specific packet is stored in the type 53 in the Ethernet frame format.
  • the value indicating that the packet is a specific packet is stored in the type 53.
  • the control device 10 and each switch determine that the received packet is the specific packet on the condition that a value indicating that the packet is a specific packet is stored in the type 53 when the packet is received.
  • the Ethernet frame format data 54 includes a type 61 indicating the type of a specific packet, a first data length 62, an output port string length 63, a port count 64, an output port string 65, a second data length 66, and Data 67 of a specific packet is included.
  • the type 61 representing the type of the specific packet is referred to as a type 61.
  • the specific packet data 67 is referred to as specific packet data 67.
  • the first data length 62 (denoted as Length in FIG. 4) stores the data length of the entire information after the first data length 62.
  • the second data length 66 (denoted as DataLength in FIG. 4) stores the data length of the entire information after the second data length 66.
  • the output port string length 63 (referred to as “PortsLength” in FIG. 4) is the number of ports included in the output port string. More specifically, it is the number of port identification numbers included in the output port string.
  • the port count 64 (denoted as PortsCount in FIG. 4) is a count value corresponding to the number of hops from the transmission source of the specific packet.
  • port identification numbers are stored side by side.
  • FIG. 5 is an explanatory diagram showing an example of information included in the request packet.
  • the type 61 stores a value indicating a request packet.
  • the control device 10 stores a value indicating that it is a request packet in the type 61 when the request packet is generated.
  • Each switch determines that the received packet is a request packet when a value indicating that the packet is a request packet is stored in the type 61 when the packet is received.
  • the specific packet data 67 is NULL.
  • FIG. 6 is an explanatory diagram showing an example of information included in a reply packet.
  • the type 61 stores a value indicating that it is a reply packet.
  • Each switch stores a value indicating that it is a reply packet in the type 61 when the reply packet is generated.
  • the control device 10 determines that the received packet is a reply packet on condition that a value indicating that the packet is a reply packet is stored in the type 61 when the packet is received.
  • the reply packet In the reply packet, information indicating the port that is linked up, information indicating the port from which the switch has received the request packet, and identification information of the switch that is the transmission source of the reply packet are stored in the specific packet data 67. .
  • the switch that transmits the reply packet stores the information in the specific packet data 67 when the reply packet is generated.
  • “DataPathID” corresponds to the switch identification information.
  • “Requested_Port” corresponds to the reception port of the request packet.
  • Port # n_Status indicates whether or not the port having the port identification number n is linked up.
  • the link-up port may be described by other expression methods.
  • FIG. 7 is an explanatory diagram showing an example of information included in the setup packet.
  • the type 61 stores a value indicating that it is a setup packet.
  • the control device 10 stores a value indicating that the packet is a setup packet in the type 61 when the setup packet is generated.
  • each switch determines that the received packet is a setup packet, on condition that a value indicating that the packet is a setup packet is stored in the type 61 when the packet is received.
  • the specific packet data 67 is NULL.
  • FIG. 8 is an explanatory diagram showing an example of information included in a tunnel packet.
  • the type 61 stores a value indicating that it is a tunnel packet.
  • the control device 10 and each switch store a value indicating that it is a tunnel packet in the type 61 when the tunnel packet is generated.
  • the control device 10 and each switch determine that the received packet is a tunnel packet on the condition that a value indicating that it is a tunnel packet is stored in the type 61 when the packet is received.
  • a control message is stored in the specific packet data 67. Specifically, a control packet transmitted and received as a control message in an open flow general communication system is stored. Therefore, also in the communication system of the present invention, control messages can be exchanged between the control device and the switch, as in a general communication system.
  • FIG. 9 to FIG. 13 is a schematic diagram showing a process in which the control device generates topology information and forms a control channel.
  • the control device is represented by symbol A and the switches are denoted by symbols B to E.
  • the configurations of the control device A and the individual switches B to E are the same as those shown in FIG.
  • the numbers shown in the vicinity of the control device A and the switches B mean port identification numbers.
  • the port identification number of the port determined as the connection destination unsearched port is indicated by circles.
  • the ports of the control device A and the switches B to E are described as “# n @ A”, “# n @ B”, etc. together with the control device and switch codes and port identification numbers. There is.
  • the number next to “#” represents a port identification number, and the symbol next to “@” represents either a control device or each switch.
  • “# 1 @ A” means the port # 1 of the control device 10
  • “# 2 @ B” means the port # 2 of the switch B.
  • FIG. 14 is an explanatory diagram showing an example of a process in which the control device A and the switches B to D transmit / receive a request packet and a reply packet.
  • a dashed arrow indicates transmission / reception of a request packet
  • a solid arrow indicates transmission / reception of a reply packet.
  • the numbers shown with “#” at both ends of each arrow shown in FIG. 14 represent the port identification numbers of the ports that have transmitted or received the request packet or reply packet.
  • FIG. 14 is an example of a process of transmitting and receiving a request packet and a reply packet, and the transmission order of each packet is not limited to the order shown in FIG. For example, FIG.
  • control apparatus A transmits / receives a request packet and a reply packet to / from the switch D and then transmits / receives a request packet and a reply packet to the switch B. This order may be reversed. Further, the control device A may transmit the request packet in parallel to both the switch B and the switch D, and continuously receive the reply packet from each switch.
  • the topology search unit 12 of the control device A selects a port that is linked up to the control device A and is unknown to which port of which switch is connected as a connection destination unsearched port. To do. In this example, topology search unit 12 selects # 1 @ A (port # 1 of control device A) and # 2 @ A (port # 2 of control device A) (see FIG. 9). Then, the specific packet transmitting / receiving unit 11 of the control device A transmits a request packet from the connection destination unsearched ports # 1 @ A and # 2 @ A (see FIGS. 9 and 14). The topology search unit 12 describes ⁇ # 1 ⁇ as an output port string for source routing in the request packet transmitted from # 1 @ A, and similarly to the request packet transmitted from # 2 @ A. Describes ⁇ # 2 ⁇ as the output port string.
  • the specific packet transmitting / receiving unit 21 of the switch D receives the request packet transmitted from # 1 @ A at # 1 @ D (port # 1 of the switch D). Then, the information providing unit 23 of the switch D generates a reply packet including identification information of the switch D itself, information indicating the reception port # 1 of the request packet, and information of the port linked up in the switch D. . At this time, the information providing unit 23 describes information indicating # 1, # 2, and # 3 as information on the ports linked up in the switch D in the reply packet. Further, the information providing unit 23 describes ⁇ # 1 ⁇ as an output port string for source routing in this reply packet.
  • the specific packet transmitting / receiving unit 21 of the switch D transmits a reply packet from # 1 @ D that has received the request packet (see FIG. 10).
  • this reply packet is described as “reply (src: # 1 @ D, ports: # 1, # 2, # 3)”.
  • the specific packet transmitting / receiving unit 21 of the switch B receives the request packet transmitted from # 2 @ A at # 2 @ B (switch B port # 2). Then, the information providing unit 23 of the switch B generates a reply packet including the identification information of the switch B itself, information indicating the reception port # 2 of the request packet, and information of the port linked up in the switch B. . At this time, the information providing unit 23 describes information indicating # 1, # 2, and # 3 as information on the ports linked up in the switch B in the reply packet. Further, the information providing unit 23 describes ⁇ # 2 ⁇ as an output port string for source routing in this reply packet.
  • the specific packet transmitting / receiving unit 21 of the switch B transmits a reply packet from # 2 @ B that has received the request packet (see FIG. 10).
  • this reply packet is described as “reply (src: # 2 @ B, ports: # 1, # 2, # 3)”.
  • the specific packet transmitting / receiving unit 11 of the control device A receives the reply packet transmitted from the switch in response to the request packet at the port of the control device A that transmitted the request packet.
  • the topology search unit 12 of the control device A is the connection destination unsearched port selected at the time of request packet transmission, and is the port of the switch that sent the reply packet, and the port that the switch received the request packet Are stored in the topology holding unit 13 as topology information.
  • the topology search unit 12 of the control switch A selects a connection destination unsearched port from the ports of the switch that is the transmission source of the reply packet, and generates a request packet transmitted from the connection destination unsearched port.
  • the topology search unit 12 may describe the output port of the control device A and the output port of each switch that forms a route to the selected connection destination unsearched port for this request packet. And the specific packet transmission / reception part 11 of the control apparatus A transmits this request packet.
  • the specific packet transmission / reception unit 11 of the control device A receives the reply packet transmitted from # 1 @ D at # 1 @ A. Then, the topology search unit 12 of the control device A determines that # 1 @ D is connected to the connection destination unsearched port # 1 @ A selected at the time of request packet transmission, and stores it in the topology holding unit 13. Further, the topology search unit 12 selects # 2 and # 3 as connection destination unsearched ports among the ports # 1, # 2, and # 3 of the switch D that is the transmission source of the reply packet (see FIG. 11). Topology search unit 12 generates a request packet transmitted from connection destination unsearched port # 2 @ D.
  • the topology search unit 12 describes ⁇ # 1, # 2 ⁇ as an output port sequence for source routing for this request packet, and the specific packet transmitting / receiving unit 11 of the control device A is described first.
  • a request packet is transmitted from # 1.
  • the specific packet transmitting / receiving unit 21 of the switch D receives the request packet and transfers the request packet from # 2 described in the second of the output port string (see FIGS. 11 and 14).
  • the topology search unit 12 of the control device A generates a request packet transmitted from the connection destination unsearched port # 3 @ D.
  • the topology search unit 12 describes ⁇ # 1, # 3 ⁇ as an output port sequence for source routing for this request packet, and the specific packet transmitting / receiving unit 11 of the control device A is described first.
  • a request packet is transmitted from # 1.
  • the specific packet transmitting / receiving unit 21 of the switch D receives the request packet and transfers the request packet from # 3 described in the second of the output port string (see FIGS. 11 and 14).
  • the control device A receives the reply packet transmitted from # 2 @ B at # 2 @ A. Then, the control device A determines that # 2 @ B is connected to the connection destination unsearched port # 2 @ A, and stores it. Further, the control device A selects # 1, # 3 as connection destination unsearched ports among the ports # 1, # 2, # 3 of the switch B that is the transmission source of the reply packet (see FIG. 11). The control device A generates a request packet transmitted from the connection destination unsearched port # 1 @ B. The control device A describes ⁇ # 2, # 1 ⁇ as an output port string for source routing for this request packet, and transmits the request packet from # 2 described first.
  • the switch B receives this request packet and transfers the request packet from # 1 described in the second in the output port string (see FIGS. 11 and 14).
  • the control device A generates a request packet transmitted from the connection destination unsearched port # 3 @ B.
  • the control device A describes ⁇ # 2, # 3 ⁇ as an output port string for source routing for this request packet, and transmits the request packet from # 2 described first.
  • the switch B receives this request packet and transfers the request packet from # 3 described in the second of the output port string (see FIGS. 11 and 14).
  • the specific packet transmitting / receiving unit 21 of the switch C receives the request packet transferred from # 2 @ D at # 1 @ C, and receives the request packet transmitted from # 3 @ B at # 2 @ C. Then, the information providing unit 23 of the switch C converts the reply packet including the identification information of the switch C itself, the information indicating the reception port of the request packet, and the information of the port linked up in the switch C into the request packet packet. Create for each receiving port. At this time, the information providing unit 23 describes # 1 and # 2 as information on the ports linked up in the switch C for each reply packet. In this example, the information providing unit 23 describes ⁇ 1, 1 ⁇ as the output port string in the reply packet for the request packet transferred from # 2 @ D.
  • the specific packet transmitting / receiving unit 21 of the switch C transmits the reply packet from # 1, the switch D transmits the reply packet from # 1, and the reply packet reaches the control device A (see FIGS. 12 and 14). .
  • this reply packet is described as “reply (src: # 1 @ C, ports: # 1, # 2)”.
  • the switch C describes ⁇ 2, 2 ⁇ as the output port string in the reply packet for the request packet transferred from # 3 @ B.
  • the switch C transmits a reply packet from # 2, the switch B transmits the reply packet from # 2, and the reply packet reaches the control device A (see FIGS. 12 and 14).
  • this reply packet is described as “reply (src: # 2 @ C, ports: # 1, # 2)”.
  • the reply packet “reply (src: # 1 @ C, ports: # 1, # 2)” and “reply (src: # 2 @ C, ports: # 1, # 2)” received by the control device A are , Both include information that there are # 1 and # 2 as ports of the switch C. Accordingly, there are duplicate contents in the reply packet received by the control device A.
  • the control device A may generate the topology information while leaving such overlapping information. Alternatively, the topology information may be generated after a part of the information is deleted so that there is no duplication.
  • switch E The operation of switch E is the same as that of switch C. That is, the specific packet transmission / reception unit 21 of the switch E receives the request packet transferred from # 3 @ D by # 1 @ E and receives the request packet transferred from # 1 @ B by # 2 @ E. Then, the information providing unit 23 of the switch E sends a reply packet containing the identification information of the switch E itself, information indicating the reception port of the request packet, and information of the port linked up in the switch E, to the request packet packet. Create for each receiving port. At this time, the information providing unit 23 describes # 1 and # 2 as information on the ports linked up in the switch E for each reply packet.
  • the information providing unit 23 describes ⁇ 1, 1 ⁇ as the output port string in the reply packet for the request packet transferred from # 3 @ D.
  • the specific packet transmitting / receiving unit 21 of the switch E transmits a reply packet from # 1, the switch D transmits the reply packet from # 1, and the reply packet reaches the control device A (see FIGS. 12 and 14). .
  • this reply packet is described as “reply (src: # 1 @ E, ports: # 1, # 2)”.
  • the switch E describes ⁇ 2, 2 ⁇ as the output port string in the reply packet for the request packet transferred from # 1 @ B.
  • the switch E transmits a reply packet from # 2, the switch B transmits the reply packet from # 2, and the reply packet reaches the control device A (see FIGS. 12 and 14).
  • this reply packet is described as “reply (src: # 2 @ E, ports: # 1, # 2)”.
  • the specific packet transmitting / receiving unit 11 of the control device A receives the reply packet transmitted from # 1 @ C at # 1 @ A. Then, topology search unit 12 of control device A determines that # 1 @ C is connected to connection destination unsearched port # 2 @ D selected at the time of request packet transmission, and adds it to the topology information. Similarly, the control device A receives the reply packet transmitted from # 2 @ C at # 2 @ A. Then, the control device A determines that # 2 @ C is connected to the connection destination unsearched port # 3 @ B selected at the time of request packet transmission, and adds it to the topology information.
  • the specific packet transmitting / receiving unit 11 of the control device A receives the reply packet transmitted from # 1 @ E at # 1 @ A. Then, the topology search unit 12 of the control device A determines that # 1 @ E is connected to the connection destination unsearched port # 3 @ D selected at the time of request packet transmission, and adds it to the topology information. Similarly, the control device A receives the reply packet transmitted from # 2 @ E at # 2 @ A. Then, the control device A determines that # 2 @ E is connected to the connection destination unsearched port # 1 @ B selected when the request packet is transmitted, and adds it to the topology information.
  • the topology search unit 12 of the control device A determines that the topology information is completed.
  • route determination part 14 of the control apparatus A determines a control channel for every switch. For example, the control channel route determination unit 14 calculates the shortest route to the switch by the Dijkstra method and determines the route as a control channel (see FIG. 13). Further, the control channel route determination unit 14 of the control device A generates a setup packet for each of the switches B to E, and the specific packet transmitting / receiving unit 11 transmits a setup packet for each of the switches B to E, respectively.
  • each of the switches B to E When the route holding unit 24 of each of the switches B to E receives the setup packet, it stores the route to the control device A as a control channel based on the setup packet.
  • the control channels determined by the control device A for the switches C and E are illustrated by bold links, but the control channels for the switches C and E are not limited to the case shown in FIG. 13.
  • control channel A and the switches B to E transmit and receive control messages by tunneling through the control channel.
  • the topology search unit 12 may generate topology information with a data structure described as a pair of connected ports of switches, such as (# 1 @ A, # 1 @ D).
  • the connection destination unsearched port may be described as a pair with data meaning “unknown port” (in this example, “?”).
  • a group (# 3 @ D,?) May represent that # 3 @ D is a connection destination unsearched port.
  • the connection destination unsearched port may have a data structure in which only the connection destination unsearched port information is described independently without being described as a set.
  • the data structure describing the connection destination unsearched port as a pair with “?” Is referred to as a first data structure.
  • a data structure that describes the connection destination unsearched port alone is not described as a pair, but is described as a second data structure.
  • the topology information may be described in either the first data structure or the second data structure, or may be described in a data structure of another description format.
  • topology information is generated as a result of transmission / reception of the request packet and reply packet shown in FIG.
  • the topology information is described in the first data structure and the case where the topology information is described in the second data structure are shown.
  • FIG. 15 shows an example of the topology information in the initial state.
  • the topology information in the initial state is represented as a set of ports (# 1 @ A,?), (# 2 @ A,?).
  • # 1 @ A and # 2 @ A are described as connection destination unsearched ports.
  • FIG. 16 shows an example of topology information created by the control device A receiving the reply packet transmitted from # 1 @ D. Based on this reply packet, information that # 1 @ A and # 1 @ D are connected is added. Also, # 2 @ D and # 3 @ D are added as connection destination unsearched ports.
  • FIG. 17 shows an example of topology information created by the control device A receiving the reply packet transmitted from # 2 @ B. Based on this reply packet, information that # 2 @ A and # 2 @ B are connected is added. Also, # 1 @ B and # 3 @ B are added as connection destination unsearched ports.
  • FIG. 18 shows an example of topology information created by the control device A receiving the reply IV packet transmitted from # 1 @ C. Based on this reply packet, information that # 2 @ D and # 1 @ C are connected is added. Also, # 2 @ C is added as a connection destination unsearched port.
  • FIG. 19 shows an example of topology information created by the control device A by receiving the reply packet transmitted from # 1 @ E. Based on this reply packet, information that # 3 @ D and # 1 @ E are connected is added. Also, # 2 @ E is added as a connection destination unsearched port.
  • FIG. 20 shows an example of topology information generated by the control device A by receiving the reply packet transmitted from # 2 @ E. Based on this reply packet, information that # 1 @ B and # 2 @ E are connected is added.
  • FIG. 21 shows an example of topology information generated by the control device A by receiving the reply IV packet transmitted from # 2 @ C. Based on this reply packet, information that # 3 @ B and # 2 @ C are connected is added. As a result, there is no connection destination unsearched port.
  • the communication system periodically creates topology information from the beginning, creates topology information according to the latest topology of the switch, and determines a control channel based on the topology information.
  • the topology search unit 12 of the control device A periodically deletes the topology information stored in the topology holding unit 13 to return to the initial state, and repeats the processing from request request packet generation.
  • FIG. 22 is a flowchart showing an example of processing progress of the control device 10. Note that the control device 10 is in an initial state. That is, it is assumed that the topology information is not held.
  • the topology search unit 12 of the control device 10 selects a connection destination unsearched port (step S1).
  • the topology search unit 12 selects a link-up port of the control device 10 in the initial state.
  • the topology search unit 12 refers to the topology information and is connected to which port of which switch among the ports that are linked up of each switch. Select an unknown or unknown port.
  • the topology search unit 12 determines whether or not the connection destination unsearched port has been selected in step S1 (step S2). If the connection destination unsearched port can be selected (Yes in step S2), the topology search unit 12 generates a request packet transmitted from the connection destination unsearched port and causes the specific packet transmission / reception unit 11 to transmit the request packet (step S3). . When a plurality of connection destination unsearched ports are selected in step S1, the topology search unit 12 generates a request packet for each connection destination unsearched port. When the connection destination unsearched port is a port of the control device 10, the topology search unit 12 describes the port identification number of the port as the output port string of the request packet, and describes 1 as the length of the output port string. .
  • control device 10 repeats the loop processing of steps S1 to S5, and determines the connection relationship between the ports starting from the port of the control device 10 in order from the switch with the smallest number of hops from the control device 10. . Therefore, when the connection destination unsearched port is a switch port, the topology search unit 12 can specify the output port of each switch on the route from the port of the control device 10 to the connection destination unsearched port, The port identification number of each output port from the port of the device 10 to the connection destination unsearched port is described as an output port string in order.
  • the topology search unit 12 describes the number of output ports in the request packet as the length of the output port string.
  • the topology search unit 12 describes an initial value 0 as a port count for all request packets.
  • the specific packet transmission / reception unit 11 transmits each request packet from the first port described in the output port string in the request packet.
  • Each request packet transmitted in step S3 reaches a switch connected to the port described at the end of the output port string in the request packet (connected port unsearched port), and the switch is addressed to the control device 10.
  • a reply packet is sent from the request packet receiving port. This reply packet contains identification information of the switch that sent the reply packet, information indicating the port linked up in the switch, and information indicating the port from which the switch received the request packet. .
  • the specific packet transmission / reception unit 11 of the control storage 10 receives the reply packet transmitted from the switch that is the destination of the request packet (that is, the switch connected to the connection destination unsearched port) (step S4). If the specific packet transmitting / receiving unit 11 determines that the received specific packet is a reply packet, it outputs the reply packet to the topology search unit 12.
  • the topology search unit 12 updates the topology information based on the reply information input from the specific packet transmission / reception unit 11 (step 5).
  • the newly established port-to-port connection relation is added to the topology information by storing the newly revealed port-to-port relation in the topology holding unit 13 based on the input reply information.
  • the topology search unit 12 may specify the connection relationship between the ports based on the input reply information as follows. Since the port identification number of the connection destination unsearched port is described at the end of the output port string of the request packet, the request packet is sequentially transferred to the switch starting from the control device 10 and connected to the connection destination unsearched port. To the designated switch.
  • the reply packet sent by the switch includes the identification information of the switch itself, information indicating the port linked up in the switch, and information indicating the port from which the switch received the request packet. Yes. Accordingly, the topology search unit 12 refers to the reply packet that has been transferred through the reverse route to the request packet, and sends the reply packet source to the connection destination unsearched port described at the end of the output port string of the request packet.
  • the topology search unit 12 adds the connection relationship between the connection destination unsearched port and the port of the switch connected to the connection destination unsearched port to the topology information. Furthermore, topology search unit 12 also adds information on the ports linked up in the switch determined to be connected to the connection destination unsearched port (that is, the switch that sent the reply packet) to the topology information. . The topology search unit 12 sets a port that is unknown to which port of which switch among the ports that are linked up in the switch determined to be connected to the connection destination unsearched port as the next step. In S1, it is selected as a connection destination unsearched port.
  • step S5 the control device 10 repeats the processing after step S1.
  • the control channel path determination unit 14 refers to the completed topology information stored in the topology holding unit 13 and determines a control channel to each switch. This determination method is not particularly limited. For example, the control channel route determination unit 14 may calculate the shortest route to each switch and determine the shortest route as the control channel. For each switch, the control channel path determination unit 14 generates a setup packet that describes an output port sequence representing the control channel up to the switch. Further, the control channel route determination unit 14 describes the initial value 0 in the setup packet as the port count, and also describes the length of the output port string.
  • the control channel route determination unit 14 causes the specific packet transmission / reception unit 11 to transmit the setup packet generated for each switch (step S6). At this time, the specific packet transmitting / receiving unit 11 transmits the setup packet from the port described first in the output port string in the setup packet.
  • the switch that has received the setup packet specifies the control channel to the control device 10 based on the setup packet and stores it. As a result, the control device 10 and each switch can recognize the control channel.
  • the control message tunneling unit 15 When the control device 10 transmits a control message, the control message tunneling unit 15 generates a tunnel packet in which the control message is encrypted and encapsulated. Then, the control message tunneling unit 15 describes the output port sequence representing the control channel, the length of the output port sequence, and the initial value 0 of the port count in the tunnel packet, and causes the specific packet transmitting / receiving unit 11 to transmit.
  • the specific packet transmitting / receiving unit 11 transmits the tunnel packet from the first port described in the output port sequence in the tunnel packet.
  • the control message tunneling unit 25 and the specific packet transmitting / receiving unit 21 perform the same operation.
  • the specific packet transmitting / receiving unit 11 of the control device 10 determines that the tunnel packet from the switch has been received, the specific packet transmitting / receiving unit 11 outputs the tunnel packet to the control message tunneling unit 15.
  • the control message tunneling unit 15 decapsulates the control message and decodes it. And the control apparatus 10 performs the process according to the control message.
  • the topology search unit 12 periodically deletes the topology information stored in the topology holding unit 13 and returns it to the initial state. Then, the processing after step S1 is performed from the initial state. As a result, the control device 10 periodically regenerates topology information. Then, even if the topology of the switch is changed once the topology information is created, the control device 10 can reflect the changed topology when newly creating the topology information. Further, the control device 10 can determine a control channel reflecting the changed topology.
  • FIG. 23 is a flowchart showing an example of the process progress of the switch.
  • the specific packet transmitting / receiving unit 21 determines whether or not the switch itself that has received the specific packet is the destination of the specific packet (step S21).
  • the switch itself is the destination (Yes in step S21)
  • the specific packet transmitting / receiving unit 21 determines the type of the specific packet (step S22).
  • the specific packet transmitting / receiving unit 21 outputs the request packet to the information providing unit 23 (step S23). Then, the information providing unit 23 generates a reply packet that includes information on the link-up port of the switch itself, identification information of the switch, and a port identification number of the reception port of the request packet. Further, the information providing unit 23 rewrites the last port identification number of the output port string described in the input request packet to the port identification number of the receiving port of the request packet, and further identifies the port identification in the output port string. Sort numbers in reverse order. The information providing unit 23 describes the rearranged output port string in a reply packet.
  • the information providing unit 23 also describes the length of the output port string and the initial value of the port count in the reply packet, and causes the specific packet transmitting / receiving unit 21 to transmit the reply packet (step S24).
  • the specific packet transmitting / receiving unit 21 transmits a reply packet from the port indicated by the port identification number described at the beginning of the output port string. As a result, the reply packet is transferred in the reverse direction along the transfer path of the request packet and reaches the control device 10.
  • the specific packet transmitting / receiving unit 21 outputs the setup packet to the route holding unit 24 (step S25).
  • the path holding unit 24 rewrites the last port identification number of the output port string described in the setup packet to the port identification number of the reception port of the setup packet.
  • the route holding unit 24 rearranges the port identification numbers of the output port sequence in the reverse order, and stores the rearranged output port sequence as information representing the route serving as the control channel (step S26).
  • the specific packet transmitting / receiving unit 21 outputs the tunnel packet to the control message tunneling unit 25 (step S27).
  • the control message tunneling unit 25 decapsulates the control message from the tunnel packet and decodes it (step S33). The switch performs processing according to the control message.
  • the specific packet transmitting / receiving unit 21 determines the port identification number at the position determined from the port count among the port identification numbers in the output port string. Is replaced with the port identification number of the receiving port of the specific packet. The specific packet transmitting / receiving unit 21 adds 1 to the port count of the specific packet (step S29). Then, the specific packet transmitting / receiving unit 21 transmits the specific packet (step S30).
  • Steps S24, S26, S28, and S30 the process at the time of receiving the specific packet is terminated.
  • the control channel between the control device and the switch is set via the communication network through which the switch transfers data packets. That is, the communication network in which the switch transfers data packets and the control channel can be realized by one type of communication network. As a result, the following effects can also be obtained.
  • redundancy and fault tolerance can be improved. This is because even if a failure occurs in a part of the communication network to which the switch transfers data packets, the control channel can be set if a path from the control device 10 to the switch is secured. For example, in the topology shown in FIG. 2, even if a failure occurs in the link between the control device 10 and the switch 20b and the switch 20b and the control device 10 are not linked up, the control device 10 A request packet can be sequentially transmitted from the switch 20a side to the switches 20a to 20d. As a result, a control channel between the control device 10 and each switch can be set.
  • each switch 92 is physically connected from the control device 91. Even if there is a route that can be reached, the route is not used for control. Therefore, if a failure occurs in the control communication network 93, control by the control device 91 cannot be performed, and the fault tolerance is low. On the other hand, according to the present invention, redundancy and fault tolerance can be improved as described above.
  • the control device 10 since it is not necessary to provide a dedicated communication network for the control channel, it is not necessary to manage such a dedicated network, and the management cost of the communication system can be reduced. Even when the number of switches is increased or decreased, the control device 10 periodically deletes the topology information and returns it to the initial state, and starts the processing after step S1 (see FIG. 22). The latest topology information can be created, and a control channel with each switch can be set.
  • the communication system illustrated in FIG. 27 has a high management cost because both the packet transfer communication network 94 and the control communication network 93 must be managed.
  • the management cost of the communication system can be reduced as described above.
  • the latest topology information can be created by the control device 10 transmitting a request packet as described above.
  • the transmission source of the request packet is only the control device 10
  • the communication amount of the specific packet when the switch is added can be suppressed as compared with the case where BPDU or the like in STP is adopted. Therefore, it can be prevented that it takes time to generate the topology information or the communication band is compressed.
  • a control frame for example, for the communication system to grasp a new topology
  • BPDUs in STP for example, Since BPDUs in STP
  • the communication amount of a specific packet when a switch is added can be reduced as compared with the case where BPDU or the like in STP is adopted, and thus scalability can be realized with respect to the scale of the communication system.
  • FIG. 24 is a block diagram showing an example of the minimum configuration of the communication system of the present invention.
  • FIG. 25 is a block diagram showing an example of the minimum configuration of the control device of the present invention.
  • FIG. 26 is a block diagram showing an example of the minimum configuration of the packet transfer apparatus of the present invention.
  • the communication system of the present invention includes a plurality of packet transfer apparatuses 90 (for example, switches 20a to 20d) and a control apparatus 80 (for example, control apparatus 10) that controls the packet transfer apparatus 90.
  • the control device 80 includes topology information storage means 81, connection destination unsearched port identification means 82, response request transmission means 83, and response request reception means 84 (see FIGS. 24 and 25).
  • the topology information storage unit 81 (for example, the topology holding unit 13) stores topology information including connection information between the ports of the control device 80 or the packet transfer device 90.
  • connection destination unsearched port specifying means 82 determines from the topology information that the connection destination of the ports of the control device 80 or the packet transfer device 90 is not searched. Identify unsearched ports.
  • the response request transmission unit 83 (for example, the topology search unit 12 and the control device side specific packet transmission / reception unit 11) sends a response request (for example, to the connection destination of the connection destination unsearched port via the connection destination unsearched port). send request packet).
  • the response receiving unit 84 (for example, the control device side specific packet transmission / reception unit 11) transmits a response (for example, a reply packet) from the packet transfer device that is the connection destination of the connection destination unsearched port to the port of the packet transfer device Receive.
  • a response for example, a reply packet
  • the packet transfer device 90 includes a transfer determination unit 91, a transfer unit 92, and a response transmission unit 93.
  • the transfer determination unit 91 determines whether or not to transfer the response request to another packet transfer device based on the content of the received response request. To do.
  • the transfer unit 92 (for example, the step of executing step S30 of the switch side specific packet transmitting / receiving unit 21) transfers the response request to another packet transfer device, the transfer request is sent based on the content of the response request. Transfer to another packet transfer device.
  • the response transmission unit 93 includes the port information of the own packet transfer device, Returns a response sent along the path to the control unit.
  • the characteristic configuration of the communication system as shown in the following (1) to (10) is shown. Further, characteristic configurations of the control device as shown in the following (11) to (13) are shown. Further, the characteristic configuration of the packet transfer apparatus as shown in the following (14) and (15) is shown.
  • a communication system includes a plurality of packet transfer apparatuses (for example, switches 20a to 20d) and a control apparatus (for example, control apparatus 10) that controls the packet transfer apparatus.
  • a control apparatus for example, control apparatus 10.
  • topology information storage means for example, topology holding unit 13 that stores topology information including connection information between each port of the packet transfer device, and the connection destination of the port of the control device or the packet transfer device is not determined from the topology information.
  • a connection destination unsearched port specifying means for example, a part that executes step S1 in the topology search unit 12 for specifying a connection destination unsearched port that is a search, and the connection destination unsearched port via the connection destination unsearched port Response request transmission means (for example, topology search unit 12) for transmitting a response request (for example, request packet) to the port connection destination And a control device side specific packet transmission / reception unit 11) and a response receiving means for receiving a response (for example, a reply packet) including information on the port of the packet transfer device from the packet transfer device that is the connection destination of the connection destination unsearched port (For example, the control device side specific packet transmitting / receiving unit 11), and the packet transfer device determines whether or not to transfer the response request to another packet transfer device based on the content of the received response request.
  • a response request for example, request packet
  • a response receiving means for receiving a response (for example,
  • the response request is transferred to another packet transfer apparatus and the means (for example, the part that executes step S21 of the switch-side specific packet transmission / reception unit 21), the response request is transferred to another packet based on the content of the response request.
  • Transfer means for transferring to the packet transfer device for example, a part for executing step S30 of the switch side specific packet transmitting / receiving unit 21
  • response transmission means for example, switch-side specific packet transmission / reception
  • the control device adds the port information of the packet transfer device included in the response received from the packet transfer device that is the connection destination of the connection destination unsearched port to the topology information, and further, the packet Topology information adding means for adding, to the topology information, information indicating that the port is not searched when the connection destination of the port other than the port for which the packet transfer device has received the response request is not searched among the ports of the transfer device; For example, it includes a part for executing step S5 in the topology search unit 12.
  • the response request transmission unit stops the transmission of the response request when it is determined by the connection destination unsearched port specifying unit that there is no connection destination unsearched port.
  • the response request transmission means displays a sequence in which the information of the ports to which each packet transfer device on the path from the port of the control device to the connection destination unsearched port outputs a response request is arranged in order. And the transfer means transfers the response request along the transfer path described in the response request, and the response transmission means is based on the transfer path described in the response request. A route for sending a response to the control device is determined.
  • control device determines a control channel that is a route between the control device and each packet transfer device based on the topology information (for example, the control channel route determination unit 14), Control channel notification transmission means (for example, the control device side specific packet transmission / reception unit 11) for transmitting a control channel notification for notifying each packet transfer device of the channel, and when the packet transfer device receives the control channel notification, Control channel storage means (for example, path holding unit 24) that stores a control channel between the control device and the own packet transfer device based on the control channel notification is included.
  • Control channel notification transmission means for example, the control device side specific packet transmission / reception unit 11
  • Control channel storage means for example, path holding unit 24
  • the communication system of the present invention includes a plurality of packet transfer devices and a control device that controls the packet transfer devices, and the control device includes topology information including connection information between each port of the control device or the packet transfer device.
  • a topology information storage unit for storing the connection destination, a connection destination unsearched port specifying unit for specifying a connection destination unsearched port whose connection destination is not searched among the ports of the control device or the packet transfer device from the topology information,
  • a response request transmission unit that sends a response request to the connection destination of the connection destination unsearched port via the search port, and a port of the packet transfer device from the packet transfer device that is the connection destination of the connection destination unsearched port
  • a response receiving unit that receives a response including information, and the packet transfer device sends the response request to another packet transfer device based on the content of the received response request.
  • a transfer determination unit that determines whether or not to transmit, and a transfer unit that transfers a response request to another packet transfer device based on the content of the response request when it is determined to transfer the response request to another packet transfer device
  • a response transmission unit that includes information on the port of the own packet transfer device and returns a response sent along the route to the control device when it is determined that the response request is not transferred to another packet transfer device. It may be.
  • control device adds the port information of the packet transfer device included in the response received from the packet transfer device that is the connection destination of the connection destination unsearched port to the topology information, and further, the packet A topology information adding unit that adds information indicating that the port has not been searched to the topology information when the connection destination of a port other than the port for which the packet transfer device has received the response request is not searched among the ports of the transfer device; Including.
  • the response request transmission unit stops the transmission of the response request when it is determined by the connection destination unsearched port specifying unit that there is no connection destination unsearched port.
  • the response request transmission unit displays a sequence in which information of the ports to which each packet transfer device on the path from the port of the control device to the connection destination unsearched port outputs a response request is arranged in order. And the transfer unit transfers the response request along the transfer path described in the response request, and the response transmitter transmits the response request based on the transfer path described in the response request. A route for sending a response to the control device is determined.
  • control device determines a control channel that is a path between the control device and each packet transfer device based on the topology information, and a control for notifying each packet transfer device of the control channel. And a control channel notification transmission unit that transmits a channel notification.
  • the packet transfer device determines a control channel between the control device and the own packet transfer device based on the control channel notification.
  • a control channel storage unit for storing is included.
  • the control device is a control device that controls a plurality of packet transfer devices, and stores topology information including connection information between the ports of the control device or the packet transfer device.
  • a connection destination unsearched port specifying unit for specifying a connection destination unsearched port whose connection destination is not searched from the ports of the control device or the packet transfer device from the topology information and the connection destination unsearched port.
  • a response request transmission unit that sends a response request to the connection destination of the connection destination unsearched port, and a response including information on the port of the packet transfer device from the packet transfer device that is the connection destination of the connection destination unsearched port.
  • a response receiving unit for receiving.
  • the information on the port of the packet transfer device included in the response received from the packet transfer device that is the connection destination of the connection destination unsearched port is added to the topology information, and Even when the packet transfer apparatus includes a topology information adding unit that adds information indicating that the port has not been searched to the topology information when the connection destination of a port other than the port that has received the response request has not been searched. Good.
  • control device of the present invention is a control device that controls a plurality of packet transfer devices, and stores topology information that includes connection information between each port of the control device or the packet transfer device.
  • a connection destination unsearched port specifying means for specifying a connection destination unsearched port whose connection destination is not searched from the ports of the control device or the packet transfer device from the topology information, and the connection destination unsearched port
  • a response request transmitting means for sending a response request to the connection destination of the connection destination unsearched port, and a response including information on the port of the packet transfer device from the packet transfer device that is the connection destination of the connection destination unsearched port. It may be configured to include a response receiving means for receiving.
  • the packet transfer apparatus of the present invention is a packet transfer apparatus controlled by the control apparatus, and is a response request to the connection destination of the connection destination unsearched port whose connection destination is not searched,
  • a transfer determination unit that determines whether or not to transfer the response request to another packet transfer device, and forwards the response request to another packet transfer device Then, based on the content of the response request, if it is determined, the transfer unit that transfers the response request to another packet transfer device, and if it is determined not to transfer the response request to another packet transfer device, the own packet transfer device And a response transmission unit that returns a response sent along a route to the control device.
  • the packet transfer apparatus of the present invention is a packet transfer apparatus controlled by the control apparatus, and is a response request to the connection destination of the connection destination unsearched port whose connection destination is not searched,
  • transfer determination means for determining whether or not to transfer the response request to another packet transfer device, and transfer the response request to another packet transfer device If it is determined that the response request is transferred to another packet transfer device based on the content of the response request, and if it is determined not to transfer the response request to another packet transfer device, the own packet transfer device Response transmission means for returning a response sent along the route to the control device.
  • the present invention is preferably applied to a communication system including a plurality of packet transfer devices and a control device that controls each packet transfer device.
  • Control apparatus 11
  • Control apparatus side specific packet transmission / reception part 12
  • Topology search part 13
  • Topology holding part 14
  • Control channel route determination part 15
  • Control apparatus side control message tunneling part 20a-20d, 20A-20D Switch (packet transfer apparatus) 21
  • switch side specific packet transmission / reception unit 23 information providing unit 24 route holding unit 25 switch side control message tunneling unit

Landscapes

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

Abstract

複数のパケット転送装置と各パケット転送装置を制御する制御装置とを含む通信システムであって、各パケット転送装置がパケット転送に用いる通信ネットワークと、制御装置が各パケット転送装置を制御するために用いる通信ネットワークとを一種類にまとめることができる通信システムを提供する。制御装置80は、接続先未探索ポートを特定し、該接続先未探索ポートの接続先への応答要求を送る。パケット転送装置90は、受信した応答要求を他のパケット転送装置に転送するか否かを判定する。パケット転送装置90は、応答要求を他のパケット転送装置に転送すると判定した場合、応答要求を他のパケット転送装置に転送する。また、応答要求を他のパケット転送装置に転送しないと判定した場合、自パケット転送装置のポートの情報を含み、制御装置への経路に沿って送られる応答を返す。

Description

通信システムおよびポート情報収集方法
 本発明は、複数のパケット転送装置と各パケット転送装置を制御する制御装置とを含む通信システム、および、その通信システムに適用されるパケット転送装置、制御装置、ポート情報収集方法、制御装置用プログラムに関する。
 パケットを転送する複数のスイッチと、各スイッチを制御する制御装置とを備え、制御装置が各スイッチにフローエントリ情報を設定し、各スイッチが受信したパケットをフローエントリ情報に従って転送する通信システムがある。フローエントリ情報とは、受信したパケットのヘッダに応じて、そのパケットをどのように処理するか(転送、廃棄、書換え等)を規定した情報である。このような通信システムでは、制御装置がスイッチを制御するために用いる制御チャネルが必要となる。例えば、スイッチは、フローエントリ情報に規定されていないパケットを受信した場合には、その旨を制御装置に通知し、制御装置は、そのパケットに応じたフローエントリ情報をそのスイッチに送信する。制御チャネルは、このようなスイッチから制御装置への通知や、制御装置からスイッチに対するフローエントリ情報の送信等に用いられる。制御装置がスイッチを制御するためのプロトコルは、オープンフローと呼ばれている。なお、スイッチは、パケットを転送するパケット転送装置であるということができる。制御チャネルは、オープンフローにおける“Secure channel”に相当する。また、オープンフローにおいて、制御装置は「コントローラ」と呼ばれる。
 オープンフローの仕様が非特許文献1に記載されている。このオープンフローの仕様には、制御装置とスイッチとがポート番号6633番のTCP(Transmission Control Protocol )においてSSL(Secure Socket Layer)を用いて通信することが記載されている。このことから、一般的に、オープンフローを適用した通信システムでは、複数のスイッチが順次パケットを転送していく通信ネットワークと、制御装置と各スイッチとの制御チャネルとなる通信ネットワークとが別個に設けられている。図27は、オープンフローを適用した一般的な通信システムの例を示す説明図である。図27に示す各スイッチ92は、受信したパケットをフローエントリ情報に基づいて他のスイッチに転送するときには、パケット転送用通信ネットワーク94を用いる。また、制御チャネルとなる制御用通信ネットワーク93が、パケット転送用通信ネットワーク94とは別に設けられ、制御装置91は、制御用通信ネットワーク93を介して、個々のスイッチ92を制御する。制御用通信ネットワーク93には、例えば、STP(Spanning Tree Protocol),TCP/IP(Transmission Control Protocol/Internet Protocol ),RIP(Routing Information Protocol),OSPF(Open Shortest Path First)等のルーティングプロトコルが使用される。
 また、図27に例示する通信システムでは、スイッチ群のトポロジーが変更された場合、通信システム内で各スイッチが制御フレームの送受信を行い、新たなトポロジーを把握する。トポロジーを把握するための制御フレームの例として、例えば、STPにおけるBPDU(Bridge Protocol Data Unit )等がある。
"OpenFlow Switch Specification Version 0.9.0","4.4 Encryption"、2009年7月20日、[平成21年10月6日検索]、インターネット<http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
 オープンフローを適用した一般的な通信システム(図27参照)では、制御用通信ネットワーク93と、パケット転送用通信ネットワーク94を用いる。しかし、複数のパケット転送装置と各パケット転送装置を制御する制御装置とを含む通信システムにおいて、各パケット転送装置がパケット転送に用いる通信ネットワークと、制御装置が各パケット転送装置を制御するために用いる通信ネットワークとを一種類にまとめることが好ましい。
 そこで、本発明は、複数のパケット転送装置と各パケット転送装置を制御する制御装置とを含む通信システムであって、各パケット転送装置がパケット転送に用いる通信ネットワークと、制御装置が各パケット転送装置を制御するために用いる通信ネットワークとを一種類にまとめることができる通信システム、および、その通信システムに適用されるパケット転送装置、制御装置、ポート情報収集方法、制御装置用プログラムを提供することを目的とする。
 本発明による通信システムは、複数のパケット転送装置と、パケット転送装置を制御する制御装置とを備え、制御装置が、制御装置またはパケット転送装置の各ポート間の接続情報を含むトポロジー情報を記憶するトポロジー情報記憶手段と、トポロジー情報から、制御装置またはパケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定手段と、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信手段と、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信手段とを含み、パケット転送装置が、受信した応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送するか否かを判定する転送判定手段と、応答要求を他のパケット転送装置に転送すると判定された場合、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送する転送手段と、応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、制御装置への経路に沿って送られる応答を返す応答送信手段とを含むことを特徴とする。
 また、本発明による制御装置は、複数のパケット転送装置を制御する制御装置であって、該制御装置またはパケット転送装置の各ポート間の接続情報を含むトポロジー情報を記憶するトポロジー情報記憶手段と、トポロジー情報から、該制御装置またはパケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定手段と、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信手段と、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信手段とを備えることを特徴とする。
 また、本発明によるパケット転送装置は、制御装置によって制御されるパケット転送装置であって、接続先が未探索である接続先未探索ポートの接続先への応答要求であって、制御装置が送信した応答要求を受信すると、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送するか否かを判定する転送判定手段と、応答要求を他のパケット転送装置に転送すると判定された場合、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送する転送手段と、応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、制御装置への経路に沿って送られる応答を返す応答送信手段とを備えることを特徴とする。
 また、本発明によるポート情報収集方法は、複数のパケット転送装置を制御する制御装置が、該制御装置またはパケット転送装置の各ポート間の接続情報を含むトポロジー情報から、該制御装置またはパケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定し、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送り、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信することを特徴とする。
 また、本発明による制御装置用プログラムは、複数のパケット転送装置を制御するコンピュータに搭載される制御装置用プログラムであって、該コンピュータに、該コンピュータまたはパケット転送装置の各ポート間の接続情報を含むトポロジー情報から、該コンピュータまたはパケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定処理、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信処理、および、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信処理を実行させることを特徴とする。
 本発明によれば、複数のパケット転送装置と各パケット転送装置を制御する制御装置とを含む通信システムにおいて、各パケット転送装置がパケット転送に用いる通信ネットワークと、制御装置が各パケット転送装置を制御するために用いる通信ネットワークとを一種類にまとめることができる。
制御装置がトポロジー情報を保持していない状態からトンネリングによる通信を行うまでの過程を模式的に示した説明図である。 本発明の通信システムが備える制御装置およびスイッチの構成例を示すブロック図である。 ソースルーティングの例を示す説明図である。 特定パケットのフォーマットの例を示す説明図である。 request パケットに含まれる情報の例を示す説明図である。 reply パケットに含まれる情報の例を示す説明図である。 setup パケットに含まれる情報の例を示す説明図である。 tunnelパケットに含まれる情報の例を示す説明図である。 制御装置がトポロジー情報を生成し、制御チャネルを形成する過程を示す模式図である。 制御装置がトポロジー情報を生成し、制御チャネルを形成する過程を示す模式図である。 制御装置がトポロジー情報を生成し、制御チャネルを形成する過程を示す模式図である。 制御装置がトポロジー情報を生成し、制御チャネルを形成する過程を示す模式図である。 制御装置がトポロジー情報を生成し、制御チャネルを形成する過程を示す模式図である。 制御装置およびスイッチがrequest パケットおよびreply パケットを送受信する経過の例を示す説明図である。 トポロジー情報の生成過程の例を示す説明図である。 トポロジー情報の生成過程の例を示す説明図である。 トポロジー情報の生成過程の例を示す説明図である。 トポロジー情報の生成過程の例を示す説明図である。 トポロジー情報の生成過程の例を示す説明図である。 トポロジー情報の生成過程の例を示す説明図である。 トポロジー情報の生成過程の例を示す説明図である。 制御装置の処理経過の例を示すフローチャートである。 スイッチの処理経過の例を示すフローチャートである。 本発明の通信システムの最小構成の例を示すブロック図である。 本発明の制御装置の最小構成の例を示すブロック図である。 本発明のパケット転送装置の最小構成の例を示すブロック図である。 オープンフローを適用した一般的な通信システムの例を示す説明図である。
 以下、本発明の実施形態を、図面を参照して説明する。
 本発明の通信システムは、パケットを転送する複数のパケット転送装置と、その複数のスイッチを制御する制御装置とを備える。制御装置が、パケット転送装置に対してフローエントリ情報を送信し、パケット転送装置は、パケット受信時に、そのフローエントリ情報に従って、パケットを処理する。この結果、いずれかのパケット転送装置に接続された端末装置が、他のパケット転送装置に接続された別の端末装置に対してパケットを任意の経路で送信したり、同報したりすることが可能となる。
 本発明におけるパケット転送装置は、例えば、オープンフローにおけるスイッチであり、本発明における制御装置は、例えば、オープンフローにおけるコントローラである。以下、パケット転送装置および制御装置が、それぞれ、オープンフローにおけるスイッチおよびコントローラである場合を例にして説明する。ただし、本発明はオープンフロー以外にも適用可能である。通信ネットワーク上の各パケット転送装置を制御装置が集中管理する構成の通信システムであれば、本発明を適用することができる。
 本発明の通信システムは、制御装置(コントローラ)とスイッチとの間に制御用に特化した通信ネットワークを備えない。制御装置は、少なくとも1つのスイッチに接続されていればよい。制御装置は、各スイッチがパケット転送に用いる通信ネットワークを用いて、個々のスイッチとの間に制御チャネルを設ける。具体的には、制御装置は、制御装置から見て制御装置自身に接続されているスイッチ以降の各スイッチとの間で、各スイッチがパケット転送に用いる通信ネットワークのリンクを利用して制御チャネルを形成する。そして、制御装置は、制御チャネルを介して、トンネリングにより各スイッチと通信を行い、個々のスイッチを制御する。すなわち、本発明では、制御装置が、各スイッチがパケット転送に用いる通信ネットワークを利用して、個々のスイッチとの間でスター構造のオーバレイネットワークを形成しているということができる。
 また、本発明の通信システムでは、制御装置が制御装置自身および各スイッチのポート同士の接続関係を表すトポロジー情報を保持する。個々のスイッチは、トポロジー情報を保持しなくてよい。制御装置は、初期状態においては、トポロジー情報を保持しておらず、スイッチに対して、ポートの接続状態に関する問い合わせを行い、トポロジー情報を作成する。制御装置は、スイッチ群のトポロジーを把握すると、スイッチとの間の制御チャネルとなる経路を個々のスイッチ毎にそれぞれ決定し、各スイッチに対して、制御装置までの経路を通知するためのパケットを送信する。この結果、制御装置は、各スイッチへの制御チャネルを認識可能となり、各スイッチも制御装置への制御チャネルを認識可能となる。この後、スイッチと制御装置が通信を行う場合、制御チャネルを介して、トンネリングにより通信を行う。
 図1は、制御装置がトポロジー情報を保持していない状態から、制御装置とスイッチとがトンネリングによる通信を行うまでの過程を模式的に示した説明図である。図1(a)は、本発明の通信システムの初期状態を模式的に示している。この状態では、制御装置10は、スイッチ群の少なくとも1つのスイッチに接続されているが、どのスイッチのどのポートに接続されているかは認識していない状態である。
 制御装置10は、トポロジー情報に基づいて、制御装置自身またはスイッチのポートのうち、リンクアップしているポートであってどのスイッチのどのポートに接続されているのかが未知のポートを特定する。以下、このポートを接続先未探索ポートと記す。そして、制御装置10は、スイッチに対してリンクアップしているポートを問い合わせるパケット(以下、request パケットと記す。)が接続先未探索ポートから出力されるように、request パケットを送信する(図1(b)参照)。初期状態においてはトポロジー情報を保持していないので、制御装置10は、どのスイッチに接続されているのか不明な制御装置10自身のポートを接続先未探索ポートとして特定し、その接続先未探索ポートからrequest パケットを送信する。なお、リンクアップしているポートとは、他のスイッチに接続されているポートである。
 request パケットを受信したスイッチ20は、制御装置10に対して、リンクアップしているポートを示す情報と、そのスイッチがrequest パケットを受信したポートを示す情報と、スイッチ20自身の識別情報とを含むパケット(以下、reply パケットと記す。)を、request パケットを受信したポートから制御装置10に返す(図1(c)参照)。
 本発明では、制御装置10は、reply パケットに基づいてトポロジー情報を生成し、保持する。さらに、制御装置10は、そのトポロジー情報に基づいて接続先未探索ポートを特定し、接続先未探索ポートから出力されるようにrequest パケットを送信する。接続先未探索ポートがスイッチ20のポートである場合、制御装置10は、着目している接続先未探索ポートを有するスイッチ20がrequest パケットを接続先未探索ポートから出力するように、ソースルーティングによりrequest パケットを各スイッチに転送させる。このrequest パケットを受信したスイッチ20も、request パケットを受信したポートからreply パケットを送信し、制御装置10は、そのreply パケットの内容をトポロジー情報に反映させる。
 このように、制御装置10は、接続先未探索ポートの特定、request パケットの送信、reply パケットの受信、およびトポロジー情報の作成を繰り返す。そして、制御装置10は、トポロジー情報から接続先未探索ポートを特定できなくなったときに、トポロジー情報が完成したと判定する。
 そして、制御装置10は、トポロジー情報に基づいて、スイッチ毎に、制御チャネルとなる経路を決定する。この結果、制御装置10がスイッチ毎の制御チャネルを認識した状態となる。そして、制御装置10は、スイッチ毎に、制御チャネルとなる経路を通知するためのパケット(以下、setup パケットと記す。)を送信する(図1(d)参照)。setup パケットを受信した個々のスイッチ20は、setup パケットに基づいて、スイッチ20自身から制御装置10までの制御チャネルとなる経路を記憶する。この結果、各スイッチ20は、それぞれ制御装置10までの制御チャネルを認識可能な状態となる。
 以降、制御装置10がスイッチ20に対する制御を行うための通信は、個々のスイッチ20毎に定められた制御チャネルを介して、トンネリングにより行われる(図1(e)参照)。例えば、あるスイッチ20が、フローエントリ情報に規定されていないパケットを受信した場合には、その旨を制御装置10に通知する。このとき、スイッチ20は、制御チャネルを介して、トンネリングにより、この通知を行う。また、この通知を受けた制御装置10は、フローエントリ情報を生成し、そのスイッチに送信する。このとき、制御装置10は、制御チャネルを介して、トンネリングによりフローエントリ情報を送信する。このように、制御装置10とスイッチ20との間で制御チャネルを介してトンネリングにより送受信されるパケットを、以下、tunnelパケットと記す。
 また、制御装置10は、定期的にトポロジー情報を作成し直す。例えば、制御装置10が初期状態でrequest パケットの生成を開始してから一定期間が経過したときに、トポロジー情報を削除して初期状態に戻し、再度、request パケットの生成を開始して、収集したreply パケットに基づいて新たにトポロジー情報を作成し、さらに、setup パケットを個々のスイッチに送信する。制御装置10は、この動作を繰り返す。定期的にトポロジー情報を作成し直すことで、スイッチ間の接続関係が変更されても、その変更をトポロジー情報に反映させることができる。
 request パケット、reply パケット、setup パケットおよびtunnelパケットを特定パケットと記す。スイッチ20は、特定パケットに対しては、スイッチ間で転送されるデータパケットとは異なる処理を行う。スイッチ20は、端末(図示せず)同士が授受するデータパケットを受信した場合、フローエントリ情報に従って転送し、フローエントリ情報にデータパケットのフローが規定されていなければ、その旨を制御装置10に通知する。一方、特定パケットに関しては、スイッチ20は、このような処理を行わず、request パケット、reply パケット、setup パケットおよびtunnelパケットに応じた処理を行う。また、各スイッチは、データパケットと特定パケットとでは、特定パケットに対する処理を優先する。特定パケットに対する処理を優先することで、通信システムのQoS(Quality of Service)を保証することができる。
 また、特定パケットには、その特定パケットの送信元からのホップ数に応じたカウント値が記述される。このカウント値をポートカウントと記す。
 図2は、本発明の通信システムが備える制御装置およびスイッチの構成例を示すブロック図である。図2では、通信システムが4つのスイッチ20a~20dを備える場合を例示しているが、スイッチの台数や、スイッチのトポロジーは特に限定されない。また、図2では、制御装置10に2台のスイッチ20a,20bが接続されている場合を例示しているが、制御装置10に接続されるスイッチの台数は1台であっても、3台以上であってもよい。制御装置10には、少なくとも1台のスイッチが接続されていればよい。
 制御装置10は、制御装置側特定パケット送受信部11と、トポロジー探索部12と、トポロジー保持部13と、制御チャネル経路決定部14と、制御装置側制御メッセージトンネリング部15とを備える。
 制御装置側特定パケット送受信部11(以下、特定パケット送受信部11と記す。)は、特定パケットの送信および受信を行う。具体的には、特定パケット送受信部11は、request パケット、setup パケットおよびtunnelパケットを送信し、reply パケットおよびtunnelパケットを受信する。
 特定パケット送受信部11は、スイッチからreply パケットを受信した場合には、そのreply パケットをトポロジー探索部12に出力する。特定パケット送受信部11は、スイッチからtunnelパケットを受信した場合には、そのtunnelパケットを制御装置側制御メッセージトンネリング処理部15に出力する。
 特定パケット送受信部11が送信するrequest パケット、setup パケットおよびtunnelパケットは、ソースルーティングによって順次、経路上のスイッチに転送されていき、宛先となるスイッチに到達する。request パケットを生成するトポロジー探索部12は、制御装置10自身の出力ポート、および宛先となるスイッチまでの経路上の各スイッチにおける出力ポートを順にrequest パケット内に記述し、特定パケット送受信部11は、その出力ポート列の最初に記述された制御装置10自身のポートからrequest パケットを送信する。また、setup パケットを生成する制御チャネル経路決定部14は、制御装置10自身の出力ポート、および宛先となるスイッチまでの制御チャネル上の各スイッチにおける出力ポートを順にsetup パケット内に記述し、特定パケット送受信部11は、その出力ポート列の最初に記述された制御装置10自身のポートからsetup パケットを送信する。同様に、スイッチに送るtunnelパケットを生成する制御装置側制御メッセージトンネリング処理部15は、制御装置10自身の出力ポート、および宛先となるスイッチまでの制御チャネル上の各スイッチにおける出力ポートを順にtunnelパケット内に記述し、特定パケット送受信部11は、その出力ポート列の最初に記述された制御装置10自身のポートから、そのtunnelパケットを送信する。ソースルーティングについては、後述する。
 なお、ここでは便宜的に、ポートを特定パケットに記述すると説明しているが、具体的には、制御装置10および各スイッチにおけるポート識別情報(例えば、ポート識別番号)を特定パケットに記述する。従って、出力ポート列は、ポート識別情報の並びである。以下の説明では、ポート識別情報として、番号(ポート識別番号)を用いる場合を例にする。
 トポロジー探索部12は、接続先未探索ポートを特定し、request パケットを生成して、特定パケット送受信部11に送信させる。また、そのrequest パケットに対する応答としてスイッチから送信されたreply パケットが入力されると、そのreply パケットに基づいて、トポロジー情報を作成し、トポロジー保持部13に記憶させる。トポロジー探索部12は、この処理を、トポロジー情報から接続先未探索ポートを特定できなくなるまで繰り返す。
 初期状態では、トポロジー探索部12は、接続先未探索ポートとして、制御装置10自身のリンクアップしているポートを選択する。そして、トポロジー探索部12は、接続先未探索ポートとして選択したポートを出力ポートとしてrequest パケットに記述するとともに、その出力ポート列の長さ(すなわち、記述した出力ポートの数)と、ポートカウントの初期値を記述する。この場合、出力ポートは制御装置10自身のポートのみであるので、出力ポート列の長さは1である。また、接続先未探索ポートとして選択したポートが複数存在する場合には、トポロジー探索部12は、個々の接続先未探索ポート毎にrequest パケットを生成する。すなわち、接続先未探索ポートとrequest パケットとは一対一に対応する。特定パケット送受信部11は、個々のrequest パケットを、request パケット内に記述されたポートから送信する。
 また、reply パケットを受信して、トポロジー情報を作成している場合には、トポロジー探索部12は、そのトポロジー情報を参照し、トポロジー情報に記述されたスイッチのリンクアップしているポートのうち、どのスイッチのどのポートに接続しているかが未知のポートを接続先未探索ポートとして特定する。さらに、トポロジー探索部12は、制御装置10から着目している接続先未探索ポートを有するスイッチまでの経路を、作成済みのトポロジー情報から特定する。トポロジー探索部12は、その経路に応じた制御装置10自身の出力ポートおよび各スイッチの出力ポートを順にrequest パケットに記述するとともに、その出力ポート列の長さ(すなわち、記述した出力ポートの数)と、ポートカウントの初期値を記述する。この場合も、トポロジー探索部12は、接続先未探索ポート毎にrequest パケットを生成する。特定パケット送受信部11は、個々のrequest パケットを、request パケット内に記述された最初のポートから送信する。
 トポロジー探索部12は、request パケットへの応答として各スイッチから得たreply パケットに基づいてトポロジー情報を生成する。reply パケットには、reply パケットの送信元のスイッチにおけるリンクアップしているポートを示す情報の他に、そのスイッチの識別情報と、reply パケットの起因となったrequest パケットをそのスイッチが受信したポートの情報が含まれている。トポロジー探索部12は、request パケットに対応する接続先未探索ポートに、reply パケットの送信元のスイッチのポートであって、そのスイッチがrequest パケットを受信したポートが接続されていると判定し、そのポート同士の接続関係をトポロジー情報に追加する。
 トポロジー探索部12がrequest パケットの生成を開始することにより、制御装置10によるrequest パケットの送信、reply パケットの受信、トポロジー情報作成、setup パケットの送信という一連の処理が開始する。トポロジー探索部12は、定期的にトポロジー情報を削除し、request パケットの生成を開始することにより、この一連の処理を開始させる。
 トポロジー保持部13は、トポロジー情報を記憶する記憶装置である。
 制御チャネル経路決定部14は、トポロジー情報の完成後にトポロジー情報を参照して、制御チャネルをスイッチ毎に決定する。この制御チャネルの決定方法は、特に限定されない。例えば、制御チャネル経路決定部14は、ダイクストラ法により、スイッチまでの最短経路を計算し、その経路を制御チャネルとして決定してもよい。そして、制御チャネル経路決定部14は、スイッチ毎にsetup パケットを生成する。このとき、制御チャネル経路決定部14は、制御装置10自身の出力ポート、およびsetup パケットの宛先となるスイッチまでの制御チャネル上の各スイッチにおける出力ポートを順に、setup パケットに記述する。さらに、制御チャネル経路決定部14は、setup パケットに、その出力ポート列の長さ(すなわち、記述した出力ポートの数)と、ポートカウントの初期値を記述する。そして、特定パケット送受信部11にそのsetup パケットを送信させる。
 制御装置側制御メッセージトンネリング処理部15(以下、制御メッセージトンネリング処理部15と記す。)は、制御装置10とスイッチ間との間で授受する制御メッセージをトンネリングにより送受信する。すなわち、制御メッセージトンネリング処理部15は、スイッチに送信する制御メッセージ(例えば、フローエントリ情報)を暗号化し、カプセル化したtunnelパケットを生成する。このとき、制御メッセージトンネリング処理部15は、制御装置10自身の出力ポート、およびtunnelパケットの宛先となるスイッチまでの制御チャネル上の各スイッチにおける出力ポートを順に、tunnelパケットに記述する。さらに、制御メッセージトンネリング処理部15は、tunnelパケットに、その出力ポート列の長さと、ポートカウントの初期値を記述する。そして、特定パケット送受信部11にそのtunnelパケットを送信させる。
 また、特定パケット送受信部11がスイッチからtunnelパケットを受信し、そのtunnelパケットを制御メッセージトンネリング処理部15に出力した場合、制御メッセージトンネリング処理部15は、そのtunnelパケットに含まれている制御メッセージをデカプセル化し、さらに、その制御メッセージを復号する。
 なお、本実施形態では、ポートカウントの初期値を0とする場合を例にして説明するが、ポートカウントの初期値は0以外であってもよい。
 特定パケット送受信部11、トポロジー探索部12、トポロジー保持部13、制御チャネル経路決定部14および制御メッセージトンネリング部15は、それぞれ別々のユニットで実現されていてもよい。
 また、特定パケット送受信部11、トポロジー探索部12、制御チャネル経路決定部14および制御メッセージトンネリング部15は、制御装置用プログラムに従って動作するコンピュータのCPUによって実現されていてもよい。この場合、例えば、コンピュータのプログラム記憶装置(図示略)が制御装置用プログラムを記憶し、CPUがそのプログラムを読み込んで、そのプログラムに従って、特定パケット送受信部11、トポロジー探索部12、制御チャネル経路決定部14および制御メッセージトンネリング部15として動作すればよい。
 次に、スイッチの構成について説明する。各スイッチ20a~20dの構成は、同様である。以下、スイッチ20aを例にして説明する。
 スイッチ20aは、スイッチ側特定パケット送受信部21と、情報提供部23と、経路保持部24と、スイッチ側制御メッセージトンネリング部25とを備える。
 スイッチ側特定パケット送受信部21(以下、特定パケット送受信部21と記す。)は、特定パケットの転送、受信、送信を行う。
 特定パケット送受信部21は、特定パケットを受信した場合、その特定パケットに記述された出力ポート列の長さと、ポートカウントとを比較し、スイッチ20a自身が特定パケットの宛先になっているか否かを判定する。本実施形態では、ポートカウントの初期値を0としているので、受信した特定パケット内のポートカウントに1加算した値と、出力ポート列の長さとが一致していれば、スイッチ20a自身が特定パケットの宛先になっていると判定し、特定パケット内のポートカウントに1加算した値が出力ポート列の長さより小さければ、宛先になっていないと判定すればよい。なお、出力ポートの列の長さとは、特定パケット内に記述された出力ポートの数である。特定パケット送受信部21は、スイッチ20a自身が宛先でないと判定した場合、特定パケット内の出力ポート列に記述されたポートのうち、ポートカウントから定まるポートを、その特定パケットを受信したスイッチ20a自身のポートに書き換える。本実施形態では、特定パケットに記述されたポートカウントの値をkとすると、出力ポート列内でk+1番目に記述されたポートを、特定パケットを受信したスイッチ20a自身のポートに書き換える。また、特定パケット送受信部21は、出力ポート列において、k+2番目のポート(すなわち、書き換えたポートの次のポート)を特定する。このポートが、スイッチ20a自身から特定パケットを送信すべきポートである。また、特定パケット送受信部21は、特定パケット内に記述されたポートカウントの値に1を加算する。そして、特定パケット送受信部21は、特定したポートから特定パケットを送信する。この結果、ポートカウントがインクリメントされた特定パケットが転送される。
 また、スイッチ20a自身が特定パケットの宛先になっていると判定した場合、特定パケット送受信部21は、特定パケットがrequest パケットであれば、そのrequest パケットを情報提供部23に出力し、特定パケットがsetup パケットであれば、そのsetup パケットを経路保持部24に出力し、特定パケットがtunnelパケットであれば、そのtunnelパケットをスイッチ側制御メッセージトンネリング部25に出力する。
 また、特定パケット送受信部21は、reply パケットを送信する。後述するように、reply パケットを生成する情報提供部23は、制御装置10までの経路上の各スイッチにおける出力ポートを順にreply パケットに記述する。特定パケット送受信部21は、その出力ポート列の最初に記述されたスイッチ20a自身のポートからreply パケットを送信する。
 情報提供部23は、特定パケット送受信部21からrequest パケットを入力されると、reply パケットとして、スイッチ20a自身のリンクアップしているポートを示す情報と、スイッチ20aがそのrequest パケットを受信したポートを示す情報と、スイッチ20aの識別情報とを含むパケットを作成する。さらに、情報提供部23は、そのスイッチ自身から制御装置10までの経路上の各スイッチにおける出力ポートを順にreply パケットに記述する。この出力ポート列は、以下のように定めればよい。すなわち、情報提供部23は、入力されたrequest パケットに記述された出力ポート列の最後のポートを、スイッチがそのrequest パケットを受信したポートに書き換える。さらに、情報提供部23は、その書き換え後の出力ポート列内のポートの順を逆順に並べ替え、並べ替えた出力ポート列をreply パケットに記述する。また、情報提供部23は、その出力ポート列の長さ、およびポートカウントの初期値もreply パケットに記述し、そのreply パケットを特定パケット送受信部21に送信させる。この結果、スイッチは、request パケットを受信したポートから、そのrequest パケットに対するreply パケットを送信する。
 経路保持部24は、特定パケット送受信部21からsetup パケットを入力されると、そのsetup パケットから制御装置10までの制御チャネルとなる経路を記憶する。具体的には、経路保持部24は、入力されたsetup パケットに記述された出力ポート列の最後のポートを、スイッチがそのsetup パケットを受信したポートに書き換える。そして、経路保持部24は、その書き換え後の出力ポート列内のポートの順を逆順に並べ替え、並べ替えた出力ポート列を、制御チャネルとなる経路を表す情報として記憶する。
 スイッチ側制御メッセージトンネリング部25(以下、制御メッセージトンネリング部25と記す。)は、制御装置10とスイッチ間との間で授受する制御メッセージをトンネリングにより送受信する。すなわち、制御メッセージトンネリング部25は、制御装置10に送信する制御メッセージ(例えば、フローエントリ情報に規定されていないパケットを受信した旨のメッセージ)を暗号化し、カプセル化したtunnelパケットを生成する。このとき、制御メッセージトンネリング部25は、制御装置10までの制御チャネルを表す出力ポート列を経路保持部24から読み取り、その出力ポート列をtunnelパケットに記述する。さらに、制御メッセージトンネリング部25は、tunnelパケットに、その出力ポート列の長さと、ポートカウントの初期値を記述する。そして、特定パケット送受信部21にそのtunnelパケットを送信させる。
 また、特定パケット送受信部21からtunnelパケットが入力された場合、制御メッセージトンネリング部25は、そのtunnelパケットに含まれている制御メッセージ(例えば、フローエントリ情報)をデカプセル化し、さらに、その制御メッセージを復号する。
 特定パケット送受信部21、情報提供部23、経路保持部24および制御メッセージトンネリング部25は、それぞれ別々のユニットで実現されていてもよい。
 また、特定パケット送受信部21、情報提供部23、経路保持部24および制御メッセージトンネリング部25は、パケット転送装置用プログラムに従って動作するコンピュータのCPUによって実現されていてもよい。この場合、例えば、コンピュータのプログラム記憶装置(図示略)がパケット転送装置用プログラムを記憶し、CPUがそのプログラムを読み込んで、そのプログラムに従って、特定パケット送受信部21、情報提供部23、経路保持部24および制御メッセージトンネリング部25として動作すればよい。
 次に、本発明におけるソースルーティングについて説明する。ソースルーティングとは、送信元となるノードがパケット内に通信経路を記述し、中継ノードがパケット内に記述された通信経路に従ってパケットを転送するパケット転送方法である。ソースルーティングでは、中継ノードは、予め用意された経路情報を保持しておく必要がない。本発明の通信システムは、特定パケット内に、個々のノードが特定パケットを送信すべき出力ポートを順に並べた出力ポート列を記述する。そして、制御装置10や各スイッチは、その出力ポート列に記述されたポートから特定パケットを送信することで、ソースルーティングを実現する。なお、制御装置10や各スイッチは、自ノードに関する出力ポートが出力ポート列の何番目に記述されているのかを、ポートカウントによって判断する。以下、ソースルーティングの具体例を示す。
 図3は、制御装置がスイッチに対してsetup パケットを送信する場合のソースルーティングの例を示す説明図である。ただし、説明を簡単にするため、図3に示すスイッチのトポロジーは、図2に示すトポロジーと異なるものとしている。図3に示す各スイッチ20A~20Dは、図2に示す各スイッチ20a~20dと同様の構成である。また、図3において、制御装置10および各スイッチ20A~20Dの近傍に示す数字は、各装置におけるポート識別番号である。また、以下の説明において、ポート識別番号がnであるポートを、#nと記す。
 ここでは、制御装置10がスイッチ20Dを宛先としてsetup パケットを送信する場合を例にする。この例では、制御装置10は、まず、ポートカウントを初期値0に設定し、{2,3,2,1}という出力ポート列を記述したsetup パケットを送信する。ここで、出力ポート列の先頭が“2”であるので、制御装置10は、制御装置10のポート#2からsetup パケットを送信する(図3(a)参照)。
 スイッチ20Aは、このsetup パケットをポート#1で受信する。すると、スイッチ20Aは、ポートカウントの値が0であるので、出力ポート列内の1番目のポート識別番号を、setup パケットを受信したポート#1のポート識別番号に書き換える。また、スイッチ20Aは、ポートカウントの値が0であるので、スイッチ20Aがsetup パケットを送信すべきポートが、出力ポート列内の2番目に記述されていると判定し、2番目に記述されたポート識別番号“3”を特定する。そして、スイッチ20Aは、ポートカウントの値を0から1に更新し、setup パケットをスイッチ20Aのポート#3から送信する。このsetup パケット内に記述された出力ポート列は、{1,3,2,1}である(図3(b)参照)。
 スイッチ20Bは、このsetup パケットをポート#1で受信する。すると、スイッチ20Bは、ポートカウントの値が1であるので、出力ポート列内の2番目のポート識別番号を、setup パケットを受信したポート#1のポート識別番号に書き換える。また、スイッチ20Bは、ポートカウントの値が1であるので、スイッチ20Bがsetup パケットを送信すべきポートが、出力ポート列内の3番目に記述されていると判定し、3番目に記述されたポート識別番号“2”を特定する。そして、スイッチ20Bは、ポートカウントの値を1から2に更新し、setup パケットをスイッチ20Bのポート#2から送信する。このsetup パケット内に記述された出力ポート列は、{1,1,2,1}である(図3(c)参照)。
 スイッチ20Cは、このsetup パケットをポート#3で受信する。すると、スイッチ20Cは、ポートカウントの値が2であるので、出力ポート列内の3番目のポート識別番号を、setup パケットを受信したポート#3のポート識別番号に書き換える。また、スイッチ20Cは、ポートカウントの値が2であるので、スイッチ20Cがsetup パケットを送信すべきポートが、出力ポート列内の4番目に記述されていると判定し、4番目に記述されたポート識別番号“1”を特定する。そして、スイッチ20Cは、ポートカウントの値を2から3に更新し、setup パケットをスイッチ20Cのポート#1から送信する。このsetup パケット内に記述された出力ポート列は、{1,1,3,1}である(図3(d)参照)。
 スイッチ20Dは、このsetup パケットをポート#2で受信する。スイッチ20Dは、ポートカウントの値が3であり、出力ポート列内のポート識別番号の数が4個であることから、スイッチ20D自身が宛先であると判定する。そして、スイッチ20Dは、setup パケット内の出力ポート列{1,1,3,1}の最後のポート識別番号“1”を、setup パケットを受信したポート#2のポート識別番号に書き換える。その結果、出力ポート列は、{1,1,3,2}となる。スイッチ20Dは、この出力ポート列を逆順に並べ替え、並べ替え後の出力ポート列{2,3,1,1}を、制御装置10までの制御チャネルを表す出力ポート列として記憶する。
 ここでは、制御装置がスイッチに対してsetup パケットを送信する場合を例に説明したが、制御装置がスイッチ20Dに対してtunnelパケットやrequest パケットを送信する場合におけるスイッチ20A~20Cの動作も、同様である。この結果、スイッチ20Dは、{1,1,3,1}という出力ポート列が記述されたtunnelパケットやrequest パケットをポート#2で受信する。
 ただし、スイッチ20Dは、tunnelパケットを受信した場合、tunnelパケット内の出力ポート列に対する処理を行わなくてよい。
 また、スイッチ20Dは、request パケットを受信した場合、以下のように動作する。スイッチ20Dは、ポートカウントの値が3であり、出力ポート列内のポート識別番号の数が4個であることから、スイッチ20D自身が宛先であると判定する。そして、スイッチ20Dは、request パケット内に記述された出力ポート列{1,1,3,1}の最後のポート識別番号を、そのrequest パケットを受信したポート#2の識別番号に書き換える。その結果、出力ポート列は、{1,1,3,2}となる。この出力ポート列を逆順に並べ替え、並べ替え後の出力ポート列{2,3,1,1}を、reply パケットに記述し、{2,3,1,1}の1番目に対応するポート#2からreply パケットを送信する。reply パケットを受信したときのスイッチの動作は、setup パケットやtunnelパケットを受信したときの動作と同様であり、このreply パケットは、制御装置10に到達する。
 ここでは、制御装置10がスイッチ20Dを宛先として、特定パケットを送信する場合を例示したが、他のスイッチを宛先とする場合も、各スイッチは、上記の説明と同様に動作する。
 また、各スイッチが、制御装置10までの制御チャネルとして記憶した出力ポート列をtunnelパケットに記述し、そのtunnelパケットを送信する場合も、他のスイッチは、上記と同様の動作を行って、tunnelパケットを制御装置10まで順次転送する。
 なお、図3では、ポートカウントの初期値を0とする場合を例にして説明した。各スイッチが、出力ポート列中の何番目のポート識別番号を書き換えるかという判定や、特定パケットをどのポートから転送するかという判定を行う方法は、ポートカウントの初期値に応じて予め定めておけばよい。また、特定パケットを受信したスイッチが、自身が宛先であるか否かを判定する方法も、ポートカウントの初期値に応じて予め定めておけばよい。
 次に、特定パケットのフォーマットの例について説明する。特定パケットのフォーマットの例を図4に示す。図4に示す例では、イーサネット(登録商標)フレームのフォーマットで特定パケットを実現する場合の例を示している。図4において括弧書きで示した値は、バイト数を表す。イーサネットフレームフォーマットでは宛先MACアドレス51および送信元MACアドレス52が設けられる。しかし、本発明の通信システムは、特定パケットの送受信では、これらのアドレスは用いずに、上述のようにソースルーティングにより特定パケットを送信する。また、特定パケットでは、イーサネットフレームフォーマットにおけるタイプ53に、特定パケットであることを示す値が格納される。制御装置10や各スイッチは、特定パケットを生成する場合、特定パケットであることを示す値をタイプ53に格納する。また、制御装置10や各スイッチは、パケット受信時に、特定パケットであることを示す値がタイプ53に格納されていることを条件に、受信したパケットが特定パケットであると判定する。
 また、イーサネットフレームフォーマットのデータ54には、特定パケットの種類を表すタイプ61、第1データ長62、出力ポート列の長さ63、ポートカウント64、出力ポート列65、第2データ長66、および特定パケットのデータ67が含まれる。以下、イーサネットフレームフォーマットにおけるタイプ53と区別するために、特定パケットの種類を表すタイプ61を種別61と記す。また、イーサネットフレームフォーマットにおけるデータ54と区別するために、特定パケットのデータ67を特定パケットデータ67と記す。また、第1データ長62(図4においてLengthと記す。)には、第1データ長62以降の情報全体のデータ長が格納される。第2データ長66(図4においてDataLengthと記す。)には、第2データ長66以降の情報全体のデータ長が格納される。
 出力ポート列の長さ63(図4においてPortsLength と記す。)は、出力ポート列に含まれるポートの数である。より具体的には、出力ポート列に含まれるポート識別番号の数である。
 ポートカウント64(図4においてPortsCountと記す。)は、特定パケットの送信元からのホップ数に応じたカウント値である。
 出力ポート列65には、ポート識別番号が並べて格納される。
 以下、特定パケットの種類毎に、イーサネットフレームフォーマットにおけるデータ54に含まれる情報の例を示す。ただし、第1データ長62、出力ポート列の長さ63、ポートカウント64、出力ポート列65、第2データ長66に関しては、説明を省略する。
 図5は、request パケットに含まれる情報の例を示す説明図である。種別61には、request パケットであることを示す値が格納される。制御装置10は、request パケット生成時に、request パケットであることを示す値を種別61に格納する。また、各スイッチは、パケット受信時に、request パケットであることを示す値が種別61に格納されていることを条件に、受信したパケットがrequest パケットであると判定する。
 request パケットでは、特定パケットデータ67はNULLである。
 図6は、reply パケットに含まれる情報の例を示す説明図である。種別61には、reply パケットであることを示す値が格納される。各スイッチは、reply パケット生成時に、reply パケットであることを示す値を種別61に格納する。また、制御装置10は、パケット受信時に、reply パケットであることを示す値が種別61に格納されていることを条件に、受信したパケットがreply パケットであると判定する。
 reply パケットでは、特定パケットデータ67に、リンクアップしているポートを示す情報と、スイッチがrequest パケットを受信したポートを示す情報と、reply パケットの送信元となるスイッチの識別情報とが格納される。reply パケットを送信するスイッチは、reply パケット生成時にこれらの情報を特定パケットデータ67に格納する。なお、図6に示す例では、“DataPathID”がスイッチの識別情報に該当する。また、“Requested_Port”が、request パケットの受信ポートに該当する。また、“Port#n_Status ”は、ポート識別番号がnであるポートがリンクアップしているか否かを表している。例えば、スイッチは、リンクアップしているポートに関しては、Port#n_Status =1とし、リンクアップしていないポートに関しては、Port#n_Status =0とするように、“Port#n_Status ”の値をポート毎に定めればよい。よって、ポート毎に定められた“Port#n_Status ”の集合から、リンクアップしているポートを特定することができる。ただし、他の表現方法で、リンクアップしているポートが記述されてもよい。
 図7は、setup パケットに含まれる情報の例を示す説明図である。種別61には、setup パケットであることを示す値が格納される。制御装置10は、setup パケット生成時に、setup パケットであることを示す値を種別61に格納する。また、各スイッチは、パケット受信時に、setup パケットであることを示す値が種別61に格納されていることを条件に、受信したパケットがsetup パケットであると判定する。
 setup パケットでは、特定パケットデータ67はNULLである。
 図8は、tunnelパケットに含まれる情報の例を示す説明図である。種別61には、tunnelパケットであることを示す値が格納される。制御装置10や各スイッチは、tunnelパケット生成時に、tunnelパケットであることを示す値を種別61に格納する。また、制御装置10や各スイッチは、パケット受信時に、tunnelパケットであることを示す値が種別61に格納されていることを条件に、受信したパケットがtunnelパケットであると判定する。
 tunnelパケットでは、特定パケットデータ67に、制御メッセージが格納される。具体的には、オープンフローの一般的な通信システムにおいて制御メッセージとして送受信される制御パケットが格納される。従って、本発明の通信システムにおいても、一般的な通信システムと同様に、制御装置とスイッチとの間で制御メッセージの授受を行うことができる。
 次に、動作について説明する。
 図9から図13までの各説明図は、制御装置がトポロジー情報を生成し、制御チャネルを形成する過程を示す模式図である。図9から図13までの各図では、便宜的に、制御装置を符号Aで表し、各スイッチを符号B~Eで表す。制御装置Aおよび個々のスイッチB~Eの構成は、図2に示す構成と同様である。また、図9から図13までの各図において、制御装置Aおよび各スイッチBの近傍に示す数字は、ポート識別番号を意味する。また、図9から図13までの各図において、接続先未探索ポートと判定されるポートのポート識別番号は、円で囲んで示す。また、以下の説明において、制御装置AおよびスイッチB~Eの各ポートを、制御装置やスイッチの符号とポート識別番号とともに“#n@A”,“#n@B”等のように記すことがある。“#”の次の数は、ポート識別番号を表し、“@”の次の符号は、制御装置または各スイッチのいずれかを表す。例えば、“#1@A”は、制御装置10のポート#1を意味し、“#2@B”は、スイッチBのポート#2を意味する。
 また、図14は、制御装置AおよびスイッチB~Dが、request パケットおよびreply パケットを送受信する経過の例を示す説明図である。図14において、破線の矢印はrequest パケットの送受信を表し、実線の矢印はreply パケットの送受信を表す。また、図14に示す各矢印の両端に“#”とともに示した番号は、request パケットやreply パケットを送信または受信したポートのポート識別番号を表す。なお、図14は、request パケットおよびreply パケットを送受信する経過の一例であり、各パケットの送信順序は、図14に示す順序に限定されない。例えば、図14では、制御装置Aが、スイッチDとの間でrequest パケットおよびreply パケットの送受信を行ってから、スイッチBとの間でrequest パケットおよびreply パケットの送受信を行う場合を示しているが、この順序は逆であってもよい。また、制御装置Aが、スイッチBとスイッチDの双方に並列にrequest パケットの送信を行い、それぞれのスイッチから連続してreply パケットを受信してもよい。
 初期状態において、制御装置Aのトポロジー探索部12は、制御装置Aのリンクアップしているポートであって、どのスイッチのどのポートに接続されているか未知のポートを、接続先未探索ポートとして選択する。本例では、トポロジー探索部12は、#1@A(制御装置Aのポート#1)と、#2@A(制御装置Aのポート#2)とを選択する(図9参照)。そして、制御装置Aの特定パケット送受信部11は、その接続先未探索ポート#1@A,#2@Aから、それぞれrequest パケットを送信する(図9、図14参照)。なお、トポロジー探索部12は、#1@Aから送信するrequest パケットには、ソースルーティングのための出力ポート列として{#1}を記述し、同様に、#2@Aから送信するrequest パケットには、出力ポート列として{#2}を記述する。
 スイッチDの特定パケット送受信部21は、#1@Aから送信されたrequest パケットを#1@D(スイッチDのポート#1)で受信する。そして、スイッチDの情報提供部23は、スイッチD自身の識別情報と、request パケットの受信ポート#1を示す情報と、スイッチDにおいてリンクアップしているポートの情報とを含むreply パケットを生成する。このとき、情報提供部23は、スイッチDにおいてリンクアップしているポートの情報として#1,#2,#3を示す情報をreply パケットに記述する。また、情報提供部23は、このreply パケットに、ソースルーティングのための出力ポート列として{#1}を記述する。そして、スイッチDの特定パケット送受信部21は、request パケットを受信した#1@Dからreply パケットを送信する(図10参照)。図14では、このreply パケットを“reply(src:#1@D,ports:#1,#2,#3)”と記載している。
 同様に、スイッチBの特定パケット送受信部21は、#2@Aから送信されたrequest パケットを#2@B(スイッチBのポート#2)で受信する。そして、スイッチBの情報提供部23は、スイッチB自身の識別情報と、request パケットの受信ポート#2を示す情報と、スイッチBにおいてリンクアップしているポートの情報とを含むreply パケットを生成する。このとき、情報提供部23は、スイッチBにおいてリンクアップしているポートの情報として#1,#2,#3を示す情報をreply パケットに記述する。また、情報提供部23は、このreply パケットに、ソースルーティングのための出力ポート列として{#2}を記述する。そして、スイッチBの特定パケット送受信部21は、request パケットを受信した#2@Bからreply パケットを送信する(図10参照)。図14では、このreply パケットを“reply(src:#2@B,ports:#1,#2,#3)”と記載している。
 制御装置Aの特定パケット送受信部11は、request パケットを送信した制御装置Aのポートで、そのrequest パケットに応じてスイッチから送信されたreply パケットを受信する。そして、制御装置Aのトポロジー探索部12は、そのrequest パケット送信の際に選択した接続先未探索ポートに、reply パケットの送信元のスイッチのポートであって、そのスイッチがrequest パケットを受信したポートが接続されると判定し、その接続関係をトポロジー情報としてトポロジー保持部13に記憶させる。さらに、制御スイッチAのトポロジー探索部12は、reply パケットの送信元のスイッチのポートから接続先未探索ポートを選択し、接続先未探索ポートから送信されるrequest パケットを生成する。トポロジー探索部12は、このrequest パケットに対し、制御装置Aの出力ポート、および、選択した接続先未探索ポートまでの経路を形成する各スイッチの出力ポートを記述すればよい。そして、制御装置Aの特定パケット送受信部11は、このrequest パケットを送信する。
 上記の例では、制御装置Aの特定パケット送受信部11は、#1@Dから送信されたreply パケットを#1@Aで受信する。そして、制御装置Aのトポロジー探索部12は、request パケット送信時に選択した接続先未探索ポート#1@Aに#1@Dが接続されていると判定し、トポロジー保持部13に記憶させる。さらに、トポロジー探索部12は、そのreply パケットの送信元のスイッチDのポート#1,#2,#3のうち、接続先未探索ポートとして#2,#3を選択する(図11参照)。トポロジー探索部12は、接続先未探索ポート#2@Dから送信されるrequest パケットを生成する。トポロジー探索部12は、このrequest パケットに対して、ソースルーティングのための出力ポート列として{#1,#2}を記述し、制御装置Aの特定パケット送受信部11は、1番目に記述された#1からrequest パケットを送信する。スイッチDの特定パケット送受信部21は、このrequest パケットを受信し、出力ポート列の2番目に記述された#2からrequest パケットを転送する(図11、図14参照)。また、制御装置Aのトポロジー探索部12は、接続先未探索ポート#3@Dから送信されるrequest パケットを生成する。トポロジー探索部12は、このrequest パケットに対して、ソースルーティングのための出力ポート列として{#1,#3}を記述し、制御装置Aの特定パケット送受信部11は、1番目に記述された#1からrequest パケットを送信する。スイッチDの特定パケット送受信部21は、このrequest パケットを受信し、出力ポート列の2番目に記述された#3からrequest パケットを転送する(図11、図14参照)。
 また、同様に、制御装置Aは、#2@Bから送信されたreply パケットを#2@Aで受信する。そして、制御装置Aは、接続先未探索ポート#2@Aに#2@Bが接続されていると判定し、記憶する。さらに、制御装置Aは、そのreply パケットの送信元のスイッチBのポート#1,#2,#3のうち、接続先未探索ポートとして#1,#3を選択する(図11参照)。制御装置Aは、接続先未探索ポート#1@Bから送信されるrequest パケットを生成する。制御装置Aは、このrequest パケットに対して、ソースルーティングのための出力ポート列として{#2,#1}を記述し、1番目に記述した#2からrequest パケットを送信する。スイッチBは、このrequest パケットを受信し、出力ポート列の2番目に記述された#1からrequest パケットを転送する(図11、図14参照)。また、制御装置Aは、接続先未探索ポート#3@Bから送信されるrequest パケットを生成する。制御装置Aは、このrequest パケットに対して、ソースルーティングのための出力ポート列として{#2,#3}を記述し、1番目に記述した#2からrequest パケットを送信する。スイッチBは、このrequest パケットを受信し、出力ポート列の2番目に記述された#3からrequest パケットを転送する(図11、図14参照)。
 スイッチCの特定パケット送受信部21は、#2@Dから転送されたrequest パケットを#1@Cで受信し、#3@Bから転送されたrequest パケットを#2@Cで受信する。そして、スイッチCの情報提供部23は、スイッチC自身の識別情報と、request パケットの受信ポートを示す情報と、スイッチCにおいてリンクアップしているポートの情報とを含むreply パケットを、request パケットの受信ポート毎に作成する。このとき、情報提供部23は、各reply パケットに対して、スイッチCにおいてリンクアップしているポートの情報として#1,#2を記述する。本例では、情報提供部23は、#2@Dから転送されたrequest パケットに対するreply パケットには、出力ポート列として{1,1}を記述する。スイッチCの特定パケット送受信部21は、reply パケットを#1から送信し、スイッチDはこのreply パケットを#1から送信し、reply パケットは、制御装置Aに到達する(図12、図14参照)。図14では、このreply パケットを“reply(src:#1@C,ports:#1,#2)”と記載している。同様に、スイッチCは、#3@Bから転送されたrequest パケットに対するreply パケットには、出力ポート列として{2,2}を記述する。スイッチCは、reply パケットを#2から送信し、スイッチBはこのreply パケットを#2から送信し、reply パケットは、制御装置Aに到達する(図12、図14参照)。図14では、このreply パケットを“reply(src:#2@C,ports:#1,#2)”と記載している。
 なお、制御装置Aが受信するreply パケット“reply(src:#1@C,ports:#1,#2)”、“reply(src:#2@C,ports:#1,#2)”は、いずれもスイッチCのポートとして#1,#2があるという情報を含む。従って、制御装置Aが受信するreply パケットの内容には重複する内容が存在する。制御装置Aは、このような重複する情報を残したままトポロジー情報を生成してもよい。あるいは、重複がなくなるように、情報の一部を削除してからトポロジー情報を生成してもよい。
 スイッチEの動作も、スイッチCと同様である。すなわち、スイッチEの特定パケット送受信部21は、#3@Dから転送されたrequest パケットを#1@Eで受信し、#1@Bから転送されたrequest パケットを#2@Eで受信する。そして、スイッチEの情報提供部23は、スイッチE自身の識別情報と、request パケットの受信ポートを示す情報と、スイッチEにおいてリンクアップしているポートの情報とを含むreply パケットを、request パケットの受信ポート毎に作成する。このとき、情報提供部23は、各reply パケットに対して、スイッチEにおいてリンクアップしているポートの情報として#1,#2を記述する。本例では、情報提供部23は、#3@Dから転送されたrequest パケットに対するreply パケットには、出力ポート列として{1,1}を記述する。スイッチEの特定パケット送受信部21は、reply パケットを#1から送信し、スイッチDはこのreply パケットを#1から送信し、reply パケットは、制御装置Aに到達する(図12、図14参照)。図14では、このreply パケットを“reply(src:#1@E,ports:#1,#2)”と記載している。同様に、スイッチEは、#1@Bから転送されたrequest パケットに対するreply パケットには、出力ポート列として{2,2}を記述する。スイッチEは、reply パケットを#2から送信し、スイッチBはこのreply パケットを#2から送信し、reply パケットは、制御装置Aに到達する(図12、図14参照)。図14では、このreply パケットを“reply(src:#2@E,ports:#1,#2)”と記載している。
 制御装置Aの特定パケット送受信部11は、#1@Cから送信されたreply パケットを#1@Aで受信する。そして、制御装置Aのトポロジー探索部12は、request パケット送信時に選択した接続先未探索ポート#2@Dに#1@Cが接続されていると判定し、トポロジー情報に追加する。同様に、制御装置Aは、#2@Cから送信されたreply パケットを#2@Aで受信する。そして、制御装置Aは、request パケット送信時に選択した接続先未探索ポート#3@Bに#2@Cが接続されていると判定し、トポロジー情報に追加する。
 また、制御装置Aの特定パケット送受信部11は、#1@Eから送信されたreply パケットを#1@Aで受信する。そして、制御装置Aのトポロジー探索部12は、request パケット送信時に選択した接続先未探索ポート#3@Dに#1@Eが接続されていると判定し、トポロジー情報に追加する。同様に、制御装置Aは、#2@Eから送信されたreply パケットを#2@Aで受信する。そして、制御装置Aは、request パケット送信時に選択した接続先未探索ポート#1@Bに#2@Eが接続されていると判定し、トポロジー情報に追加する。
 この結果、トポロジー情報において接続先未探索ポートが存在しなくなり、制御装置Aのトポロジー探索部12はトポロジー情報が完成したと判定する。そして、制御装置Aの制御チャネル経路決定部14は、スイッチ毎に制御チャネルを決定する。制御チャネル経路決定部14は、例えば、ダイクストラ法によりスイッチまでの最短経路を計算し、その経路を制御チャネルとして決定する(図13参照)。さらに、制御装置Aの制御チャネル経路決定部14は、各スイッチB~Eに対してsetup パケットを生成し、特定パケット送受信部11が、各スイッチB~E宛のsetup パケットをそれぞれ送信する。各スイッチB~Eの経路保持部24は、setup パケットを受信すると、setup パケットに基づいて制御装置Aまでの経路を制御チャネルとして記憶する。なお、図13では、制御装置AがスイッチC,Eに対して決定した制御チャネルを太線のリンクで例示しているが、スイッチC,Eに対する制御チャネルは図13に示す場合に限定されない。
 以降、制御チャネルAと、各スイッチB~Eは、制御チャネルを介して、トンネリングにより制御メッセージを送受信する。
 ここで、上記の動作で生成されるトポロジー情報のデータ構造の例を示す。トポロジー情報として、どのスイッチのどのポートと、どのスイッチのどのポートとが接続されているかが記述される。トポロジー探索部12は、例えば、(#1@A,#1@D)のように、接続されるスイッチのポート同士を組にして記述するデータ構造でトポロジー情報を生成すればよい。また、接続先未探索ポートは、「未知のポート」を意味するデータ(本例では“?”と記す。)と組にして記述してもよい。例えば、(#3@D,?)という組によって、#3@Dが接続先未探索ポートであることを表してもよい。あるいは、接続先未探索ポートに関しては、組として記述せずに、接続先未探索ポートの情報のみを単独で記述するデータ構造であってもよい。以下、接続先未探索ポートを“?”との組として記述するデータ構造を第1データ構造と記す。また、接続先未探索ポートに関しては、組として記述せずに、接続先未探索ポートを単独で記述するデータ構造を第2のデータ構造と記す。トポロジー情報は、第1データ構造および第2のデータ構造のどちらで記述されていてもよく、あるいは、他の記述形式のデータ構造で記述されていてもよい。
 図14に示すrequest パケットおよびreply パケットの送受信の結果、トポロジー情報が生成されていく過程を以下に示す。以下に示す例では、第1データ構造でトポロジー情報を記述する場合と、第2のデータ構造でトポロジー情報を記述する場合の両方を示す。
 図15は、初期状態のトポロジー情報の例を示す。第1のデータ構造で記述した場合、初期状態でのトポロジー情報は、(#1@A,?),(#2@A,?)というポートの組として表される。第2のデータ構造で記述した場合には、ポート同士の組は存在せず、接続先未探索ポートとして#1@A,#2@Aが記述される。
 図16は、制御装置Aが、#1@Dから送信されたreply パケットを受信して作成したトポロジー情報の例を示す。このreply パケットに基づいて、#1@Aと#1@Dとが接続されているという情報が追加される。また、接続先未探索ポートとして、#2@D,#3@Dが追加される。
 図17は、制御装置Aが、#2@Bから送信されたreply パケットを受信して作成したトポロジー情報の例を示す。このreply パケットに基づいて、#2@Aと#2@Bとが接続されているという情報が追加される。また、接続先未探索ポートとして、#1@B,#3@Bが追加される。
 図18は、制御装置Aが、#1@Cから送信されたreply パケットを受信して作成したトポロジー情報の例を示す。このreply パケットに基づいて、#2@Dと#1@Cとが接続されているという情報が追加される。また、接続先未探索ポートとして、#2@Cが追加される。
 図19は、制御装置Aが、#1@Eから送信されたreply パケットを受信して作成したトポロジー情報の例を示す。このreply パケットに基づいて、#3@Dと#1@Eとが接続されているという情報が追加される。また、接続先未探索ポートとして、#2@Eが追加される。
 図20は、制御装置Aが、#2@Eから送信されたreply パケットを受信して作成したトポロジー情報の例を示す。このreply パケットに基づいて、#1@Bと#2@Eとが接続されているという情報が追加される。
 図21は、制御装置Aが、#2@Cから送信されたreply パケットを受信して作成したトポロジー情報の例を示す。このreply パケットに基づいて、#3@Bと#2@Cとが接続されているという情報が追加される。また、この結果、接続先未探索ポートがない状態となる。
 また、通信システムは、定期的に、最初からトポロジー情報を作成し直して、スイッチの最新のトポロジーに応じたトポロジー情報を作成し、そのトポロジー情報に基づいて制御チャネルを決定する。例えば、制御装置Aのトポロジー探索部12は、定期的にトポロジー保持部13に記憶されているトポロジー情報を削除して初期状態に戻し、request パケット生成から処理をやり直す。この結果、一旦、トポロジー情報を作成した後に、スイッチ群のトポロジーが変化しても、変化後のトポロジーを反映したトポロジー情報を作成し直し、また、変化後のトポロジーを反映して制御チャネルを決定することができる。
 以下、図2、図22および図23を参照し、制御装置およびスイッチの動作を詳細に説明する。
 図22は、制御装置10の処理経過の例を示すフローチャートである。なお、制御装置10は初期状態であるものとする。すなわち、トポロジー情報が保持されていない情報であるものとする。制御装置10のトポロジー探索部12は、接続先未探索ポートを選択する(ステップS1)。トポロジー探索部12は、初期状態では、制御装置10のリンクアップしているポートを選択する。また、トポロジー保持部13にトポロジー情報が記憶されている場合、トポロジー探索部12は、トポロジー情報を参照して、各スイッチのリンクアップしているポートのうち、どのスイッチのどのポートに接続されているか未知のポートを選択する。
 トポロジー探索部12は、ステップS1において接続先未探索ポートを選択できたか否かを判定する(ステップS2)。接続先未探索ポートを選択できた場合(ステップS2のYes)、トポロジー探索部12は、接続先未探索ポートから送信されるrequest パケットを生成し、特定パケット送受信部11に送信させる(ステップS3)。ステップS1で複数の接続先未探索ポートが選択された場合、トポロジー探索部12は、接続先未探索ポート毎にrequest パケットを生成する。接続先未探索ポートが制御装置10のポートである場合、トポロジー探索部12は、request パケットの出力ポート列として、そのポートのポート識別番号を記述し、出力ポート列の長さとして1を記述する。また、制御装置10はステップS1~S5のループ処理を繰り返すことで、制御装置10のポートを起点として、制御装置10からのホップ数が少ないスイッチから順に、ポート同士の接続関係を判定していく。従って、接続先未探索ポートがスイッチのポートである場合、トポロジー探索部12は、制御装置10のポートから接続先未探索ポートまでの経路上の各スイッチの出力ポートを特定することができ、制御装置10のポートから接続先未探索ポートまでの各出力ポートのポート識別番号を順に出力ポート列として記述する。また、トポロジー探索部12は、その出力ポートの数を出力ポート列の長さとして、request パケットに記述する。また、トポロジー探索部12は、全てのrequest パケットに対して、ポートカウントとして初期値0を記述する。特定パケット送受信部11は、各request パケットを、request パケット内の出力ポート列の1番目に記述されたポートから送信する。
 ステップS3で送信された各request パケットは、request パケット内の出力ポート列の最後に記述されたポート(接続先未探索ポート)に接続されるスイッチに到達し、そのスイッチは、制御装置10宛のreply パケットを、request パケットの受信ポートから送信する。このreply パケットには、reply パケットの送信元のスイッチの識別情報、そのスイッチにおいてリンクアップしているポートを示す情報、および、そのスイッチがrequest パケットを受信したポートを示す情報とが含まれている。
 制御蔵置10の特定パケット送受信部11は、request パケットの宛先となったスイッチ(すなわち、接続先未探索ポートに接続されていたスイッチ)から送信されたreply パケットを受信する(ステップS4)。特定パケット送受信部11は、受信した特定パケットがreply パケットであると判定すると、そのreply パケットをトポロジー探索部12に出力する。
 トポロジー探索部12は、特定パケット送受信部11から入力されたreply 情報に基づいて、トポロジー情報を更新する(ステップ5)。すなわち、入力されたreply 情報によって、新たに明らかになったポート同士の接続関係をトポロジー保持部13に記憶させることによって、新たに明らかになったポート同士の接続関係をトポロジー情報に追加する。
 ステップS5において、トポロジー探索部12は、入力されたreply 情報に基づいて、以下のように、ポート同士の接続関係を特定すればよい。request パケットの出力ポート列の最後には、接続先未探索ポートのポート識別番号が記述されているので、request パケットは、制御装置10を起点に順次スイッチを転送され、接続先未探索ポートに接続されたスイッチに到達する。そのスイッチが送信したreply パケットには、そのスイッチ自身の識別情報と、そのスイッチにおいてリンクアップしているポートを示す情報、および、そのスイッチがrequest パケットを受信したポートを示す情報とが含まれている。従って、トポロジー探索部12は、request パケットとは逆の経路で転送されてきたreply パケットを参照し、request パケットの出力ポート列の最後に記述された接続先未探索ポートに、reply パケットの送信元スイッチが接続され、かつ、そのスイッチがrequest パケットを受信したポートが接続されていると判定すればよい。この結果、接続先未探索ポートがどのスイッチのどのポートに接続されているかが明らかになる。トポロジー探索部12は、接続先未探索ポートと、その接続先未探索ポートに接続されるスイッチのポートとの接続関係をトポロジー情報に追加する。さらに、トポロジー探索部12は、接続先未探索ポートに接続されていると判定されたスイッチ(すなわち、reply パケットの送信元のスイッチ)においてリンクアップしているポートの情報も、トポロジー情報に追加する。トポロジー探索部12は、接続先未探索ポートに接続されていると判定されたスイッチにおいてリンクアップしているポートのうち、どのスイッチのどのポートに接続されているかが未知のポートを、次回のステップS1において、接続先未探索ポートとして選択する。
 ステップS5の後、制御装置10は、ステップS1以降の処理を繰り返す。
 トポロジー情報に接続先未探索ポートが示されておらず、接続先未探索ポートを選択できなかった場合(ステップS2のNo)、トポロジー情報が完成したことになる。この場合、制御チャネル経路決定部14は、トポロジー保持部13に記憶されている完成したトポロジー情報を参照して、各スイッチまでの制御チャネルを決定する。この決定方法は、特に限定されない。制御チャネル経路決定部14は、例えば、各スイッチまでの最短経路を計算し、その最短経路を制御チャネルと定めてもよい。制御チャネル経路決定部14は、スイッチ毎に、そのスイッチまでの制御チャネルを表す出力ポート列を記述したsetup パケットを生成する。また、制御チャネル経路決定部14は、ポートカウントとして初期値0をsetup パケットに記述し、また、出力ポート列の長さも記述する。制御チャネル経路決定部14は、スイッチ毎に生成したsetup パケットを特定パケット送受信部11に送信させる(ステップS6)。このとき、特定パケット送受信部11は、setup パケット内の出力ポート列の一番目に記述されたポートからsetup パケットを送信する。
 setup パケットを受信したスイッチは、setup パケットに基づいて制御装置10までの制御チャネルを特定し、記憶する。この結果、制御装置10および各スイッチは制御チャネルを認識可能な状態となる。制御装置10が制御メッセージを送信する場合、制御メッセージトンネリング部15は、制御メッセージを暗号化しカプセル化したtunnelパケットを生成する。そして、制御メッセージトンネリング部15は、tunnelパケットに制御チャネルを表す出力ポート列、その出力ポート列の長さ、およびポートカウントの初期値0を記述し、特定パケット送受信部11に送信させる。特定パケット送受信部11は、tunnelパケット内の出力ポート列の一番目に記述されたポートからtunnelパケットを送信する。スイッチが制御メッセージを送信する場合、制御メッセージトンネリング部25および特定パケット送受信部21が同様の動作を行う。
 また、制御装置10の特定パケット送受信部11がスイッチからのtunnelパケットを受信したと判定した場合、特定パケット送受信部11はそのtunnelパケットを制御メッセージトンネリング部15に出力する。制御メッセージトンネリング部15は、制御メッセージをデカプセル化し、復号する。そして、制御装置10は、その制御メッセージに応じた処理を実行する。
 また、トポロジー探索部12は、トポロジー保持部13に記憶されたトポロジー情報を、定期的に削除し、初期状態に戻す。そして、初期状態から、ステップS1以降の処理を行う。この結果、制御装置10は、定期的に、トポロジー情報を生成し直すことになる。すると、一旦、トポロジー情報を作成した後、スイッチのトポロジーが変更されたとしても、制御装置10は、新たにトポロジー情報を作成するときにその変更後のトポロジーを反映することができる。また、制御装置10は、変更後のトポロジーを反映した制御チャネルを決定することができる。
 図23は、スイッチの処理経過の例を示すフローチャートである。スイッチが特定パケットを受信すると、特定パケット送受信部21は、特定パケットを受信したスイッチ自身が特定パケットの宛先になっているか否かを判定する(ステップS21)。スイッチ自身が宛先になっている場合(ステップS21のYes)、特定パケット送受信部21は、その特定パケットの種別を判定する(ステップS22)。
 特定パケットがrequest パケットである場合、特定パケット送受信部21は、そのrequest パケットを情報提供部23に出力する(ステップS23)。すると、情報提供部23は、そのスイッチ自身のリンクアップしているポートの情報と、そのスイッチの識別情報と、request パケットの受信ポートのポート識別番号とを含むreply パケットを生成する。また、情報提供部23は、入力されたrequest パケットに記述された出力ポート列の最後のポート識別番号を、request パケットの受信ポートのポート識別番号に書き換え、さらに、その出力ポート列内のポート識別番号を逆順に並べ替える。情報提供部23は、並べ替え後の出力ポート列をreply パケットに記述する。さらに、情報提供部23は、その出力ポート列の長さ、およびポートカウントの初期値もreply パケットに記述し、そのreply パケットを特定パケット送受信部21に送信させる(ステップS24)。ステップS24において、特定パケット送受信部21は、出力ポート列の最初に記載されたポート識別番号が表すポートからreply パケットを送信する。この結果、reply パケットは、request パケットの転送経路を逆向きに転送され、制御装置10に到達する。
 また、特定パケットがsetup パケットである場合、特定パケット送受信部21は、そのsetup パケットを経路保持部24に出力する(ステップS25)。経路保持部24は、setup パケットに記述された出力ポート列の最後のポート識別番号を、setup パケットの受信ポートのポート識別番号に書き換える。そして、経路保持部24は、その出力ポート列のポート識別番号を逆順に並べ替え、並べ替えた出力ポート列を、制御チャネルとなる経路を表す情報として記憶する(ステップS26)。
 また、特定パケットがrequest パケットである場合、特定パケット送受信部21は、そのtunnelパケットを制御メッセージトンネリング部25に出力する(ステップS27)。制御メッセージトンネリング部25は、tunnelパケットから制御メッセージをデカプセル化し、復号する(ステップS33)。なお、スイッチは、その制御メッセージに応じた処理を行う。
 また、特定パケットを受信したスイッチ自身が特定パケットの宛先でない場合(ステップS21のNo)、特定パケット送受信部21は、出力ポート列内のポート識別番号のうち、ポートカウントから定まる位置のポート識別番号を、特定パケットの受信ポートのポート識別番号に置き換える。また、特定パケット送受信部21は、特定パケットのポートカウントに1を加算する(ステップS29)。そして、特定パケット送受信部21は、その特定パケットを送信する(ステップS30)。
 ステップS24,S26,S28,S30のいずれかを行ったならば、特定パケット受信時の処理を終了する。
 本発明によれば、スイッチがデータパケットを転送する通信ネットワークを介して、制御装置とスイッチとの間の制御チャネルが設定される。すなわち、スイッチがデータパケットを転送する通信ネットワークと、制御チャネルとを一種類の通信ネットワークで実現することができる。さらに、その結果、以下のような効果も得ることができる。
 第一に、冗長性・耐障害性を向上させることができる。スイッチがデータパケットを転送する通信ネットワークの一部に障害が発生したとしても、制御装置10からスイッチまでの経路が確保されていれば、制御チャネルを設定することができるからである。例えば、図2に示すトポロジーにおいて、制御装置10とスイッチ20bとの間のリンクに障害が生じて、スイッチ20bと制御装置10とがリンクアップしていない状態になったとしても、制御装置10がスイッチ20a側からスイッチ20a~20dに対して順次request パケットを送信することができる。その結果、制御装置10と各スイッチ間の制御チャネルを設定することができる。
 図27に例示する一般的な通信システムと比較すると、図27に示すように、パケット転送用通信ネットワーク94とは別に制御用通信ネットワーク93を設ける構成では、物理的に制御装置91から各スイッチ92に到達可能な経路が存在したとしても、その経路は制御用には用いられないため、制御用通信ネットワーク93に障害が発生すると制御装置91による制御が行えなくなり、耐障害性が低かった。一方、本発明によれば、上記のように冗長性・耐障害性を向上できる。
 第二に、制御チャネル専用の通信ネットワークを設ける必要がないので、そのような専用ネットワークを管理する必要がなく、通信システムの管理コストを低減することができる。スイッチを増加したり削減したりした場合にも、制御装置10が定期的に、トポロジー情報を削除して初期状態に戻し、ステップS1(図22参照)以降の処理を開始することで、その時点における最新のトポロジー情報を作成することができ、各スイッチとの制御チャネルを設定することができる。
 図27に例示する一般的な通信システムと比較すると、図27に例示する通信システムでは、パケット転送用通信ネットワーク94と制御用通信ネットワーク93の両方を管理しなければならないので、管理コストが大きい。例えば、スイッチを増やす等してスイッチ群のトポロジーを変更する場合、その変更に合わせて、パケット転送用通信ネットワーク94と制御用通信ネットワーク93の両方に対するリンク追加作業が生じる。一方、本発明によれば、上記のように通信システムの管理コストを低減できる。
 第三に、スイッチの数が増加した場合にも、上記の通り、制御装置10がrequest パケットを送信することにより、最新のトポロジー情報を作成することができる。このとき、request パケットの送信元は制御装置10のみであるので、スイッチ増設時における特定パケットの通信量は、STPにおけるBPDU等を採用する場合に比べ少なく抑えることができる。従って、トポロジー情報の生成までに時間がかかってしまったり、通信帯域を圧迫したりすることを防止できる。
 図27に例示する一般的な通信システムと比較すると、図27に例示する通信システムでは、スイッチ群のトポロジーに変更が生じた場合、通信システムが新たなトポロジーを把握するための制御フレーム(例えば、STPにおけるBPDU)がスイッチ間で送受信されるため、スイッチ数が多い場合には、そのような制御フレームが多発し、収束するまでに時間がかかったり、通信帯域を圧迫したりする。一方、本発明では、上記のように、スイッチ増設時における特定パケットの通信量を、STPにおけるBPDU等を採用する場合に比べ少なく抑えることができるので、通信システムの規模に関してスケーラビリティを実現できる。
 次に、本発明の最小構成の例を説明する。図24は、本発明の通信システムの最小構成の例を示すブロック図である。図25は、本発明の制御装置の最小構成の例を示すブロック図である。図26は、本発明のパケット転送装置の最小構成の例を示すブロック図である。
 本発明の通信システムは、複数のパケット転送装置90(例えば、スイッチ20a~20d)と、パケット転送装置90を制御する制御装置80(例えば、制御装置10)とを備える。
 制御装置80は、トポロジー情報記憶手段81と、接続先未探索ポート特定手段82と、応答要求送信手段83と、応答要求受信手段84とを含む(図24、図25参照)。
 トポロジー情報記憶手段81(例えば、トポロジー保持部13)は、制御装置80またはパケット転送装置90の各ポート間の接続情報を含むトポロジー情報を記憶する。
 接続先未探索ポート特定手段82(例えば、トポロジー探索部12におけるステップS1を実行する部分)は、トポロジー情報から、制御装置80またはパケット転送装置90のポートのうち接続先が未探索である接続先未探索ポートを特定する。
 応答要求送信手段83(例えば、トポロジー探索部12および制御装置側特定パケット送受信部11)は、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求(例えば、request パケット)を送る。
 応答受信手段84(例えば、制御装置側特定パケット送受信部11)は、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答(例えば、reply パケット)を受信する。
 また、パケット転送装置90は、転送判定手段91と、転送手段92と、応答送信手段93とを含む。
 転送判定手段91(例えば、スイッチ側特定パケット送受信部21のステップS21を実行する部分)は、受信した応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送するか否かを判定する。
 転送手段92(例えば、スイッチ側特定パケット送受信部21のステップS30を実行する部分)は、応答要求を他のパケット転送装置に転送すると判定された場合、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送する。
 応答送信手段93(例えば、スイッチ側特定パケット送受信部21および情報提供部23)は、応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、制御装置への経路に沿って送られる応答を返す。
 なお、上記の実施形態では、以下の(1)~(10)に示すような通信システムの特徴的構成が示されている。また、以下の(11)~(13)に示すような制御装置の特徴的構成が示されている。また、以下の(14),(15)に示すようなパケット転送装置の特徴的構成が示されている。
(1)本発明の通信システムは、複数のパケット転送装置(例えば、スイッチ20a~20d)と、パケット転送装置を制御する制御装置(例えば、制御装置10)とを備え、制御装置が、制御装置またはパケット転送装置の各ポート間の接続情報を含むトポロジー情報を記憶するトポロジー情報記憶手段(例えば、トポロジー保持部13)と、トポロジー情報から、制御装置またはパケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定手段(例えば、トポロジー探索部12におけるステップS1を実行する部分)と、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求(例えば、request パケット)を送る応答要求送信手段(例えば、トポロジー探索部12および制御装置側特定パケット送受信部11)と、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答(例えば、reply パケット)を受信する応答受信手段(例えば、制御装置側特定パケット送受信部11)とを含み、パケット転送装置が、受信した応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送するか否かを判定する転送判定手段(例えば、スイッチ側特定パケット送受信部21のステップS21を実行する部分)と、応答要求を他のパケット転送装置に転送すると判定された場合、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送する転送手段(例えば、スイッチ側特定パケット送受信部21のステップS30を実行する部分)と、応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、制御装置への経路に沿って送られる応答を返す応答送信手段(例えば、スイッチ側特定パケット送受信部21および情報提供部23)とを含むことを特徴とする。
(2)また、例えば、制御装置は、接続先未探索ポートの接続先となるパケット転送装置から受信した応答に含まれる該パケット転送装置のポートの情報をトポロジー情報に追加し、さらに、該パケット転送装置のポートのうち該パケット転送装置が応答要求を受信したポート以外のポートの接続先が未探索である場合に該ポートが未探索であるという情報をトポロジー情報に追加するトポロジー情報追加手段(例えば、トポロジー探索部12におけるステップS5を実行する部分)を含む。
(3)また、例えば、応答要求送信手段は、接続先未探索ポート特定手段によって接続先未探索ポートがないと判定された場合に、応答要求の送信を停止する。
(4)また、例えば、応答要求送信手段は、制御装置のポートから接続先未探索ポートまでの経路上の各パケット転送装置が応答要求を出力するポートの情報を順にならべた列を、応答要求の転送経路として該応答要求に記述し、転送手段は、応答要求に記述された転送経路に沿って該応答要求を転送し、応答送信手段は、応答要求に記述された転送経路に基づいて、制御装置に応答を送る経路を判定する。
(5)また、例えば、制御装置は、トポロジー情報に基づいて制御装置と各パケット転送装置間の経路である制御チャネルを決定する制御チャネル決定手段(例えば、制御チャネル経路決定部14)と、制御チャネルを各パケット転送装置へ通知する制御チャネル通知を送信する制御チャネル通知送信手段(例えば、制御装置側特定パケット送受信部11)とを含み、パケット転送装置は、制御チャネル通知を受信したときに、該制御チャネル通知に基づいて、制御装置と自パケット転送装置との間の制御チャネルを記憶する制御チャネル記憶手段(例えば、経路保持部24)を含む。
(6)本発明の通信システムは、複数のパケット転送装置と、パケット転送装置を制御する制御装置とを備え、制御装置が、制御装置またはパケット転送装置の各ポート間の接続情報を含むトポロジー情報を記憶するトポロジー情報記憶部と、トポロジー情報から、制御装置またはパケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定部と、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信部と、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信部とを含み、パケット転送装置が、受信した応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送するか否かを判定する転送判定部と、応答要求を他のパケット転送装置に転送すると判定された場合、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送する転送部と、応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、制御装置への経路に沿って送られる応答を返す応答送信部とを含む構成であってもよい。
(7)また、例えば、制御装置は、接続先未探索ポートの接続先となるパケット転送装置から受信した応答に含まれる該パケット転送装置のポートの情報をトポロジー情報に追加し、さらに、該パケット転送装置のポートのうち該パケット転送装置が応答要求を受信したポート以外のポートの接続先が未探索である場合に該ポートが未探索であるという情報をトポロジー情報に追加するトポロジー情報追加部を含む。
(8)また、例えば、応答要求送信部は、接続先未探索ポート特定部によって接続先未探索ポートがないと判定された場合に、応答要求の送信を停止する。
(9)また、例えば、応答要求送信部は、制御装置のポートから接続先未探索ポートまでの経路上の各パケット転送装置が応答要求を出力するポートの情報を順にならべた列を、応答要求の転送経路として該応答要求に記述し、転送部は、応答要求に記述された転送経路に沿って該応答要求を転送し、応答送信部は、応答要求に記述された転送経路に基づいて、制御装置に応答を送る経路を判定する。
(10)また、例えば、制御装置は、トポロジー情報に基づいて制御装置と各パケット転送装置間の経路である制御チャネルを決定する制御チャネル決定部と、制御チャネルを各パケット転送装置へ通知する制御チャネル通知を送信する制御チャネル通知送信部とを含み、パケット転送装置は、制御チャネル通知を受信したときに、該制御チャネル通知に基づいて、制御装置と自パケット転送装置との間の制御チャネルを記憶する制御チャネル記憶部を含む。
(11)また、本発明の制御装置は、複数のパケット転送装置を制御する制御装置であって、該制御装置またはパケット転送装置の各ポート間の接続情報を含むトポロジー情報を記憶するトポロジー情報記憶部と、トポロジー情報から、該制御装置またはパケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定部と、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信部と、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信部とを備えることを特徴とする。
(12)また、接続先未探索ポートの接続先となるパケット転送装置から受信した応答に含まれる該パケット転送装置のポートの情報をトポロジー情報に追加し、さらに、該パケット転送装置のポートのうち該パケット転送装置が応答要求を受信したポート以外のポートの接続先が未探索である場合に該ポートが未探索であるという情報をトポロジー情報に追加するトポロジー情報追加部を備える構成であってもよい。
(13)また、本発明の制御装置は、複数のパケット転送装置を制御する制御装置であって、該制御装置またはパケット転送装置の各ポート間の接続情報を含むトポロジー情報を記憶するトポロジー情報記憶手段と、トポロジー情報から、該制御装置またはパケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定手段と、接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信手段と、接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信手段とを備える構成であってもよい。
(14)また、本発明のパケット転送装置は、制御装置によって制御されるパケット転送装置であって、接続先が未探索である接続先未探索ポートの接続先への応答要求であって、制御装置が送信した応答要求を受信すると、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送するか否かを判定する転送判定部と、応答要求を他のパケット転送装置に転送すると判定された場合、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送する転送部と、応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、制御装置への経路に沿って送られる応答を返す応答送信部とを備えることを特徴とする。
(15)また、本発明のパケット転送装置は、制御装置によって制御されるパケット転送装置であって、接続先が未探索である接続先未探索ポートの接続先への応答要求であって、制御装置が送信した応答要求を受信すると、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送するか否かを判定する転送判定手段と、応答要求を他のパケット転送装置に転送すると判定された場合、応答要求の内容に基づいて、応答要求を他のパケット転送装置に転送する転送手段と、応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、制御装置への経路に沿って送られる応答を返す応答送信手段とを備える構成であってもよい。
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2009年12月28日に出願された日本特許出願2009-298852を基礎とする優先権を主張し、その開示の全てをここに取り込む。
産業上の利用の可能性
 本発明は、複数のパケット転送装置と各パケット転送装置を制御する制御装置とを含む通信システムに好適に適用される。
 10 制御装置
 11 制御装置側特定パケット送受信部
 12 トポロジー探索部
 13 トポロジー保持部
 14 制御チャネル経路決定部
 15 制御装置側制御メッセージトンネリング部
 20a~20d,20A~20D スイッチ(パケット転送装置)
 21 スイッチ側特定パケット送受信部
 23 情報提供部
 24 経路保持部
 25 スイッチ側制御メッセージトンネリング部

Claims (10)

  1.  複数のパケット転送装置と、
     前記パケット転送装置を制御する制御装置とを備え、
     前記制御装置は、
     前記制御装置または前記パケット転送装置の各ポート間の接続情報を含むトポロジー情報を記憶するトポロジー情報記憶手段と、
     前記トポロジー情報から、前記制御装置または前記パケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定手段と、
     前記接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信手段と、
     前記接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信手段とを含み、
     前記パケット転送装置は、
     受信した前記応答要求の内容に基づいて、前記応答要求を他のパケット転送装置に転送するか否かを判定する転送判定手段と、
     前記応答要求を他のパケット転送装置に転送すると判定された場合、前記応答要求の内容に基づいて、前記応答要求を他のパケット転送装置に転送する転送手段と、
     前記応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、前記制御装置への経路に沿って送られる前記応答を返す応答送信手段とを含む
     ことを特徴とする通信システム。
  2.  制御装置は、
     接続先未探索ポートの接続先となるパケット転送装置から受信した応答に含まれる該パケット転送装置のポートの情報をトポロジー情報に追加し、さらに、該パケット転送装置のポートのうち該パケット転送装置が応答要求を受信したポート以外のポートの接続先が未探索である場合に該ポートが未探索であるという情報を前記トポロジー情報に追加するトポロジー情報追加手段を含む
     請求項1に記載の通信システム。
  3.  応答要求送信手段は、接続先未探索ポート特定手段によって接続先未探索ポートがないと判定された場合に、応答要求の送信を停止する
     請求項1または請求項2に記載の通信システム。
  4.  応答要求送信手段は、
     制御装置のポートから接続先未探索ポートまでの経路上の各パケット転送装置が応答要求を出力するポートの情報を順にならべた列を、応答要求の転送経路として該応答要求に記述し、
     転送手段は、応答要求に記述された転送経路に沿って該応答要求を転送し、
     応答送信手段は、前記応答要求に記述された転送経路に基づいて、制御装置に応答を送る経路を判定する
     請求項1から請求項3のうちのいずれか1項に記載の通信システム。
  5.  制御装置は、
     トポロジー情報に基づいて制御装置と各パケット転送装置間の経路である制御チャネルを決定する制御チャネル決定手段と、
     前記制御チャネルを各パケット転送装置へ通知する制御チャネル通知を送信する制御チャネル通知送信手段とを含み、
     パケット転送装置は、
     前記制御チャネル通知を受信したときに、該制御チャネル通知に基づいて、前記制御装置と自パケット転送装置との間の制御チャネルを記憶する制御チャネル記憶手段を含む
     請求項1から請求項4のうちのいずれか1項に記載の通信システム。
  6.  複数のパケット転送装置を制御する制御装置であって、
     該制御装置または前記パケット転送装置の各ポート間の接続情報を含むトポロジー情報を記憶するトポロジー情報記憶手段と、
     前記トポロジー情報から、該制御装置または前記パケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定手段と、
     前記接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信手段と、
     前記接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信手段とを備える
     ことを特徴とする制御装置。
  7.  接続先未探索ポートの接続先となるパケット転送装置から受信した応答に含まれる該パケット転送装置のポートの情報をトポロジー情報に追加し、さらに、該パケット転送装置のポートのうち該パケット転送装置が応答要求を受信したポート以外のポートの接続先が未探索である場合に該ポートが未探索であるという情報を前記トポロジー情報に追加するトポロジー情報追加手段を備える
     請求項6に記載の制御装置。
  8.  制御装置によって制御されるパケット転送装置であって、
     接続先が未探索である接続先未探索ポートの接続先への応答要求であって、前記制御装置が送信した応答要求を受信すると、前記応答要求の内容に基づいて、前記応答要求を他のパケット転送装置に転送するか否かを判定する転送判定手段と、
     前記応答要求を他のパケット転送装置に転送すると判定された場合、前記応答要求の内容に基づいて、前記応答要求を他のパケット転送装置に転送する転送手段と、
     前記応答要求を他のパケット転送装置に転送しないと判定された場合、自パケット転送装置のポートの情報を含み、前記制御装置への経路に沿って送られる応答を返す応答送信手段とを備える
     ことを特徴とするパケット転送装置。
  9.  複数のパケット転送装置を制御する制御装置が、該制御装置または前記パケット転送装置の各ポート間の接続情報を含むトポロジー情報から、該制御装置または前記パケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定し、
     前記接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送り、
     前記接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する
     ことを特徴とするポート情報収集方法。
  10.  複数のパケット転送装置を制御するコンピュータに搭載される制御装置用プログラムであって、
     該コンピュータに、
     該コンピュータまたは前記パケット転送装置の各ポート間の接続情報を含むトポロジー情報から、該コンピュータまたは前記パケット転送装置のポートのうち接続先が未探索である接続先未探索ポートを特定する接続先未探索ポート特定処理、
     前記接続先未探索ポートを経由して、該接続先未探索ポートの接続先への応答要求を送る応答要求送信処理、および、
     前記接続先未探索ポートの接続先となるパケット転送装置から該パケット転送装置の持つポートの情報を含む応答を受信する応答受信処理
     を実行させるための制御装置用プログラム。
PCT/JP2010/006875 2009-12-28 2010-11-25 通信システムおよびポート情報収集方法 WO2011080870A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2011547261A JP5598482B2 (ja) 2009-12-28 2010-11-25 通信システムおよびポート情報収集方法
EP10840730.5A EP2521308B1 (en) 2009-12-28 2010-11-25 Communications system and port information collection method
RU2012132449/08A RU2012132449A (ru) 2009-12-28 2010-11-25 Система связи и способ сбора информации портов
CN201080059970.9A CN102687465B (zh) 2009-12-28 2010-11-25 通信系统和收集端口信息的方法
US13/137,485 US9391880B2 (en) 2009-12-28 2011-08-19 Communication system, and method of collecting port information

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-298852 2009-12-28
JP2009298852 2009-12-28

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/137,485 Continuation US9391880B2 (en) 2009-12-28 2011-08-19 Communication system, and method of collecting port information

Publications (1)

Publication Number Publication Date
WO2011080870A1 true WO2011080870A1 (ja) 2011-07-07

Family

ID=44226299

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/006875 WO2011080870A1 (ja) 2009-12-28 2010-11-25 通信システムおよびポート情報収集方法

Country Status (6)

Country Link
US (1) US9391880B2 (ja)
EP (1) EP2521308B1 (ja)
JP (1) JP5598482B2 (ja)
CN (1) CN102687465B (ja)
RU (1) RU2012132449A (ja)
WO (1) WO2011080870A1 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015501109A (ja) * 2012-04-18 2015-01-08 ニシラ, インコーポレイテッド ネットワーク転送状態の算出ならびに伝播のためのトランザクションの使用
WO2015046539A1 (ja) * 2013-09-30 2015-04-02 日本電気株式会社 中継装置、制御装置、通信システム、監視パケットの処理方法及びトポロジ管理方法
JP5699939B2 (ja) * 2010-01-08 2015-04-15 日本電気株式会社 通信システム、転送ノード、経路管理サーバおよび通信方法
WO2015114714A1 (ja) * 2014-02-03 2015-08-06 日本電気株式会社 ネットワークトポロジー検出システム、方法およびプログラムならびに制御装置
US9602421B2 (en) 2011-10-25 2017-03-21 Nicira, Inc. Nesting transaction updates to minimize communication
US9923760B2 (en) 2015-04-06 2018-03-20 Nicira, Inc. Reduction of churn in a network control system
US10057132B2 (en) 2015-03-24 2018-08-21 Fujitsu Limited Apparatus and method for detecting connection relationships among switches in a communication network
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
JP2022068125A (ja) * 2020-10-21 2022-05-09 華為技術有限公司 トラフィックフォワーディングを制御するための方法、装置及びシステム

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5493926B2 (ja) * 2010-02-01 2014-05-14 日本電気株式会社 インタフェース制御方式、インタフェース制御方法、及びインタフェース制御用プログラム
US9124524B2 (en) * 2011-06-29 2015-09-01 Broadcom Corporation System and method for priority based flow control between nodes
US9252970B2 (en) * 2011-12-27 2016-02-02 Intel Corporation Multi-protocol I/O interconnect architecture
JP6168052B2 (ja) * 2012-05-31 2017-07-26 株式会社ニコン 移動電子機器およびプログラム
US9832098B2 (en) 2013-01-09 2017-11-28 Telefonaktiebolaget L M Ericsson (Publ) Connecting a booting switch to a network
WO2014112614A1 (ja) 2013-01-21 2014-07-24 日本電気株式会社 制御情報管理装置、制御情報提示方法及びプログラム
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9118984B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Control plane for integrated switch wavelength division multiplexing
US9104643B2 (en) 2013-03-15 2015-08-11 International Business Machines Corporation OpenFlow controller master-slave initialization protocol
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9444748B2 (en) 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9571386B2 (en) 2013-07-08 2017-02-14 Nicira, Inc. Hybrid packet processing
US9407580B2 (en) 2013-07-12 2016-08-02 Nicira, Inc. Maintaining data stored with a packet
US9344349B2 (en) 2013-07-12 2016-05-17 Nicira, Inc. Tracing network packets by a cluster of network controllers
US9282019B2 (en) 2013-07-12 2016-03-08 Nicira, Inc. Tracing logical network packets through physical network
US9602398B2 (en) 2013-09-15 2017-03-21 Nicira, Inc. Dynamically generating flows with wildcard fields
US9674087B2 (en) 2013-09-15 2017-06-06 Nicira, Inc. Performing a multi-stage lookup to classify packets
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10193771B2 (en) 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
EP3447977B1 (en) * 2013-12-11 2021-05-26 Huawei Technologies Co., Ltd. Packet processing method and apparatus
US9996467B2 (en) 2013-12-13 2018-06-12 Nicira, Inc. Dynamically adjusting the number of flows allowed in a flow table cache
US9569368B2 (en) 2013-12-13 2017-02-14 Nicira, Inc. Installing and managing flows in a flow table cache
US9385954B2 (en) 2014-03-31 2016-07-05 Nicira, Inc. Hashing techniques for use in a network environment
US10193806B2 (en) 2014-03-31 2019-01-29 Nicira, Inc. Performing a finishing operation to improve the quality of a resulting hash
US9686200B2 (en) 2014-03-31 2017-06-20 Nicira, Inc. Flow cache hierarchy
CN104038446B (zh) * 2014-06-06 2017-07-07 华为技术有限公司 链路发现方法以及装置
US9742881B2 (en) 2014-06-30 2017-08-22 Nicira, Inc. Network virtualization using just-in-time distributed capability for classification encoding
US11178051B2 (en) 2014-09-30 2021-11-16 Vmware, Inc. Packet key parser for flow-based forwarding elements
US10469342B2 (en) 2014-10-10 2019-11-05 Nicira, Inc. Logical network traffic analysis
US10805239B2 (en) 2017-03-07 2020-10-13 Nicira, Inc. Visualization of path between logical network endpoints
US10608887B2 (en) 2017-10-06 2020-03-31 Nicira, Inc. Using packet tracing tool to automatically execute packet capture operations
CN110445678B (zh) * 2019-07-26 2021-02-09 新华三大数据技术有限公司 组播网络检测方法、装置及转发设备
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
US11558426B2 (en) 2020-07-29 2023-01-17 Vmware, Inc. Connection tracking for container cluster
US11196628B1 (en) 2020-07-29 2021-12-07 Vmware, Inc. Monitoring container clusters
US11570090B2 (en) 2020-07-29 2023-01-31 Vmware, Inc. Flow tracing operation in container cluster
US11736436B2 (en) 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
US11687210B2 (en) 2021-07-05 2023-06-27 Vmware, Inc. Criteria-based expansion of group nodes in a network topology visualization
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US11706109B2 (en) 2021-09-17 2023-07-18 Vmware, Inc. Performance of traffic monitoring actions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002223235A (ja) * 2001-01-26 2002-08-09 Kddi Corp Mpls経路設定装置
JP2004129054A (ja) * 2002-10-04 2004-04-22 Ntt Docomo Inc 経路制御装置及び経路制御情報生成方法
JP2007104350A (ja) * 2005-10-05 2007-04-19 Hitachi Ltd ネットワーク管理装置およびネットワークシステム
JP2009298852A (ja) 2008-06-10 2009-12-24 Ube Ind Ltd 可塑剤含有ポリアミド樹脂組成物及び成形物

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319633A (en) * 1992-08-17 1994-06-07 International Business Machines Corporation Enhanced serial network topology generation algorithm
US6987740B1 (en) * 2000-09-11 2006-01-17 Cisco Technology, Inc. STP root guard
JP3823867B2 (ja) 2002-04-11 2006-09-20 日本電気株式会社 通信ネットワーク制御システム、制御方法、ノード及びプログラム
CN1497913A (zh) 2002-10-04 2004-05-19 株式会社Ntt都科摩 路径控制装置及路径控制信息生成方法
US7493562B2 (en) * 2003-06-27 2009-02-17 Computer Associates Think, Inc. System and method for bridge port administration
JP4030979B2 (ja) * 2004-03-31 2008-01-09 Necパーソナルプロダクツ株式会社 ネットワーク機器の相互接続装置
US8184644B1 (en) 2006-02-28 2012-05-22 Nortel Networks Limited WiMAX R6 management protocol
JP5393686B2 (ja) * 2007-09-26 2014-01-22 ニシラ, インコーポレイテッド ネットワークを管理する及び安全にするためのネットワークオペレーティングシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002223235A (ja) * 2001-01-26 2002-08-09 Kddi Corp Mpls経路設定装置
JP2004129054A (ja) * 2002-10-04 2004-04-22 Ntt Docomo Inc 経路制御装置及び経路制御情報生成方法
JP2007104350A (ja) * 2005-10-05 2007-04-19 Hitachi Ltd ネットワーク管理装置およびネットワークシステム
JP2009298852A (ja) 2008-06-10 2009-12-24 Ube Ind Ltd 可塑剤含有ポリアミド樹脂組成物及び成形物

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"OpenFlow Switch Specification Version 0.9.0", 4.4 ENCRYPTION, 20 July 2009 (2009-07-20)
See also references of EP2521308A4

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5699939B2 (ja) * 2010-01-08 2015-04-15 日本電気株式会社 通信システム、転送ノード、経路管理サーバおよび通信方法
US10505856B2 (en) 2011-10-25 2019-12-10 Nicira, Inc. Chassis controller
US12111787B2 (en) 2011-10-25 2024-10-08 Nicira, Inc. Chassis controller
US11669488B2 (en) 2011-10-25 2023-06-06 Nicira, Inc. Chassis controller
US9602421B2 (en) 2011-10-25 2017-03-21 Nicira, Inc. Nesting transaction updates to minimize communication
US10135676B2 (en) 2012-04-18 2018-11-20 Nicira, Inc. Using transactions to minimize churn in a distributed network control system
US9843476B2 (en) 2012-04-18 2017-12-12 Nicira, Inc. Using transactions to minimize churn in a distributed network control system
US10033579B2 (en) 2012-04-18 2018-07-24 Nicira, Inc. Using transactions to compute and propagate network forwarding state
JP2015501109A (ja) * 2012-04-18 2015-01-08 ニシラ, インコーポレイテッド ネットワーク転送状態の算出ならびに伝播のためのトランザクションの使用
WO2015046539A1 (ja) * 2013-09-30 2015-04-02 日本電気株式会社 中継装置、制御装置、通信システム、監視パケットの処理方法及びトポロジ管理方法
WO2015114714A1 (ja) * 2014-02-03 2015-08-06 日本電気株式会社 ネットワークトポロジー検出システム、方法およびプログラムならびに制御装置
US10057132B2 (en) 2015-03-24 2018-08-21 Fujitsu Limited Apparatus and method for detecting connection relationships among switches in a communication network
US9923760B2 (en) 2015-04-06 2018-03-20 Nicira, Inc. Reduction of churn in a network control system
US9967134B2 (en) 2015-04-06 2018-05-08 Nicira, Inc. Reduction of network churn based on differences in input state
US10204122B2 (en) 2015-09-30 2019-02-12 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US11288249B2 (en) 2015-09-30 2022-03-29 Nicira, Inc. Implementing an interface between tuple and message-driven control entities
US11019167B2 (en) 2016-04-29 2021-05-25 Nicira, Inc. Management of update queues for network controller
US11601521B2 (en) 2016-04-29 2023-03-07 Nicira, Inc. Management of update queues for network controller
JP2022068125A (ja) * 2020-10-21 2022-05-09 華為技術有限公司 トラフィックフォワーディングを制御するための方法、装置及びシステム
JP7389091B2 (ja) 2020-10-21 2023-11-29 華為技術有限公司 トラフィックフォワーディングを制御するための方法、装置及びシステム
US12068955B2 (en) 2020-10-21 2024-08-20 Huawei Technologies Co., Ltd. Method for controlling traffic forwarding, device, and system

Also Published As

Publication number Publication date
US9391880B2 (en) 2016-07-12
EP2521308A1 (en) 2012-11-07
RU2012132449A (ru) 2014-02-10
EP2521308A4 (en) 2015-07-29
US20110305167A1 (en) 2011-12-15
CN102687465B (zh) 2015-04-08
JP5598482B2 (ja) 2014-10-01
CN102687465A (zh) 2012-09-19
EP2521308B1 (en) 2016-08-24
JPWO2011080870A1 (ja) 2013-05-09

Similar Documents

Publication Publication Date Title
JP5598482B2 (ja) 通信システムおよびポート情報収集方法
JP5644775B2 (ja) 通信システムおよびトポロジー情報作成方法
JP6358347B2 (ja) 通信システム、制御装置、ノードの制御方法
CN102308519B (zh) 适用于点至多点域间多协议标签交换流量工程路径计算的系统和方法
JP5418925B2 (ja) 動的経路分岐システム、動的経路分岐装置、動的経路分岐方法、通信システム、ノード、制御装置、パケット転送方法およびプログラム
JP5644895B2 (ja) 通信システム、制御装置、通信方法及びプログラム
EP2731305B1 (en) Communication system, node, control server and communication method
JP5423787B2 (ja) 経路設定サーバ、経路設定方法、及び経路設定プログラム
WO2012090996A1 (ja) 情報システム、制御装置、仮想ネットワークの提供方法およびプログラム
JP6085263B2 (ja) 中継ノード及び経路制御方法
US9397956B2 (en) Communication system, control device, forwarding node, and control method and program for communication system
EP3364613B1 (en) Method and device for transmitting traffic via specified path
KR20090110916A (ko) 링크 상태 광고(lsa)에 기반한 신장 트리를 계산하는 방법, 브릿지 및 컴퓨터 네트워크
JP5991385B2 (ja) 制御情報管理装置、制御情報提示方法及びプログラム
JP5669955B2 (ja) ネットワーク構成方法、リング型ネットワークシステム及びノード
WO2014157609A1 (ja) 制御装置、通信システム、通信ノードの制御方法及びプログラム
JP2004349881A (ja) フラッディング量削減方法および通信装置
WO2016072424A1 (ja) 制御装置、通信システム及び中継装置の制御方法
JP2012257335A (ja) 通信システム、ノード、制御装置、通信方法およびプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080059970.9

Country of ref document: CN

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

Ref document number: 10840730

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011547261

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2010840730

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 5674/CHENP/2012

Country of ref document: IN

Ref document number: 2010840730

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2012132449

Country of ref document: RU