WO2012128282A1 - 通信制御システム、スイッチノード、及び通信制御方法 - Google Patents

通信制御システム、スイッチノード、及び通信制御方法 Download PDF

Info

Publication number
WO2012128282A1
WO2012128282A1 PCT/JP2012/057176 JP2012057176W WO2012128282A1 WO 2012128282 A1 WO2012128282 A1 WO 2012128282A1 JP 2012057176 W JP2012057176 W JP 2012057176W WO 2012128282 A1 WO2012128282 A1 WO 2012128282A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
switch
processing
processors
switch node
Prior art date
Application number
PCT/JP2012/057176
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 JP2013505986A priority Critical patent/JP5601601B2/ja
Priority to KR1020137024963A priority patent/KR101559644B1/ko
Priority to CN201280014681.6A priority patent/CN103444138B/zh
Priority to US14/006,651 priority patent/US9407577B2/en
Priority to EP12761361.0A priority patent/EP2690831A4/en
Priority to RU2013147150/08A priority patent/RU2584449C2/ru
Publication of WO2012128282A1 publication Critical patent/WO2012128282A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks

Definitions

  • the present invention relates to a communication control system, and more particularly to a communication control system that controls a switch node.
  • the conventional network device is a black box and cannot perform flexible control such as load distribution or offset from the outside. For this reason, when the scale of the network becomes large, it becomes difficult to understand and improve the behavior of the system, and there has been a problem that design and configuration changes are accompanied by a great cost.
  • a technique for separating the packet transfer function and the path control function of the network device is considered.
  • the network device is in charge of the packet transfer function
  • the control device in charge of the path control function outside the network device is in charge, thereby making it easy to control and building a flexible network.
  • CD-separated network A CD (C: control plane / D: data plane) separation type network that controls a data plane side node device from a control plane side control device has been proposed as one of the networks having separated functions.
  • the CD separation type network there is an open flow network using an open flow (OpenFlow) technology in which a switch is controlled from a controller to control a network path.
  • OpenFlow open flow
  • the details of the open flow technique are described in Non-Patent Document 1.
  • the OpenFlow network is only an example.
  • an OpenFlow controller (OFC) corresponding to a control device operates a flow table (Flow table) related to path control of an OpenFlow switch (OFS) corresponding to a node device. Control the behavior of the OpenFlow switch (OFS).
  • OFS OpenFlow switch
  • controller the OpenFlow controller
  • OFS OpenFlow switch
  • the controller and the switch are connected by a control channel (secure communication channel) called “secure channel” which is a communication path protected by a dedicated line, SSL (Secure Socket Layer), or the like.
  • secure channel a control channel protected by a dedicated line, SSL (Secure Socket Layer), or the like.
  • the controller and the switch transmit and receive an OpenFlow message (OpenFlow Message) that is a control message conforming to (compliant with) the OpenFlow protocol (OpenFlow Protocol) via the control channel.
  • OpenFlow Protocol OpenFlow Protocol
  • the switches in the OpenFlow network are edge switches and core switches that are arranged in the OpenFlow network and are under the control of the controller.
  • a series of packet flows from reception of a packet at the ingress edge switch (Ingress) to transmission at the egress edge switch (Egress) in the OpenFlow network is referred to as a flow.
  • communication is regarded as an end-to-end (E2E: End to End) flow, and path control, failure recovery, load balancing, and optimization are performed in units of flow.
  • the packet may be read as a frame.
  • the difference between a packet and a frame is only the difference in the data unit (PDU: Protocol Data Unit) handled by the protocol.
  • the packet is a PDU of “TCP / IP” (Transmission Control Protocol / Internet Protocol).
  • the frame is a PDU of “Ethernet (registered trademark)” (Ethernet).
  • a flow table is a set of determination conditions (rules) for identifying packets handled as a flow, statistical information indicating the number of times a packet matches (matches) a rule, and processing contents (actions) to be performed on the packet. This is a set of flow entries that define.
  • the flow entry rule is defined by various combinations using any or all of information of each protocol layer included in the header area (field) of the packet, and can be distinguished.
  • a transmission destination address (Destination Address), a transmission source address (Source Address), a transmission destination port (Destination Port), a transmission source port (Source Port), and the like can be considered.
  • the above address includes a MAC address (Media Access Control Address) and an IP address (Internet Protocol Address).
  • information on the ingress port (Ingress Port) can also be used as a rule for the flow entry.
  • a part (or all) of a header area value of a packet handled as a flow can be set by a regular expression, a wild card “*”, or the like.
  • the action of the flow entry indicates operations such as “output to a specific port”, “discard”, and “rewrite header”. For example, if the identification information (output port number, etc.) of the output port is indicated in the action of the flow entry, the switch outputs a packet to the corresponding port, and if the identification information of the output port is not indicated , Discard the packet. Alternatively, if the header information is indicated in the action of the flow entry, the switch rewrites the header of the packet based on the header information.
  • the switch executes the action of the flow entry for the packet group (packet series) that conforms to the rule of the flow entry. Specifically, when receiving a packet, the switch searches the flow table for a flow entry having a rule that matches the header information of the received packet. As a result of the search, when a flow entry having a rule that matches the header information of the received packet is found, the flow entry statistical information is updated, and the operation specified as the action of the flow entry is performed on the received packet. carry out. On the other hand, if a flow entry having a rule that matches the header information of the received packet is not found as a result of the search, the received packet is determined to be the first packet (first packet), and in the OpenFlow network via the control channel. Forwards the received packet (or a copy of it) to the controller, requests the packet route calculation based on the source / destination (destination) of the received packet, etc., and receives the flow entry setting message as a response Update the flow table.
  • a default entry having a rule that conforms to the header information of all packets with low priority is registered. If no other flow entry that matches the received packet is found, the received packet matches this default entry. The action of the default entry is “transmission of inquiry information of the received packet to the controller”.
  • PCI Express PCI Express
  • PCIe PCI express
  • a transmission path (lane) having a minimum configuration used in PCI Express (PCIe) can perform full duplex communication of 2.5 Gbps in one direction (Gigabit per second) and 5.0 Gbps in both directions.
  • FIG. 2 shows the configuration of a conventional network system. Specifically, it is a system configuration for performing switch processing on a hardware basis and executing an extended network service on a control server.
  • FIG. 1 shows a basic configuration of a conventional network system.
  • Switch node 1 corresponds to a switch in the OpenFlow network.
  • the control server 3 corresponds to a controller in the open flow network.
  • the switch node 1 includes a CPU (Central Processing Unit) 10, a memory 20, a transfer table 30, and a network forwarding engine 40.
  • CPU Central Processing Unit
  • CPU 10 is connected to memory 20. Further, the CPU 10 and the transfer table 30 are connected to the network forwarding engine 40.
  • the packet destination is managed by using one forwarding table 30.
  • a table search is performed and packet switching processing between terminals is performed.
  • This transfer table 30 supports high-speed processing so as to withstand the switch processing capacity between terminals, but since the memory 20 capacity is limited, the transfer table 30 that manages a large number of flows cannot be configured. .
  • FIG. 2 shows an internal configuration of the network switch forwarding engine 40.
  • the network switch forwarding engine 40 includes a PCI Express End Point (PCI EP: PCI Express End Point) 41, a LAN (Local Area Network) interface (1G MAC) 42, a switch transfer processing unit 43, and a table search result register 44.
  • PCI EP PCI Express End Point
  • LAN Local Area Network
  • (1G MAC) Local Area Network
  • switch transfer processing unit 43 a switch transfer processing unit 43
  • table search result register 44 a table search result register 44.
  • DMA Direct Memory Access
  • PCIe EP The PCI Express endpoint (PCIe EP) 41 is connected to the CPU 10, the CPU-destined packet queue 45, and the CPU transmission packet queue 46.
  • the switch transfer processing unit 43 is connected to the transfer table 30, the LAN interface (1G MAC) 42, the table search result register 44, the CPU transmission packet queue 46, and the switch fabric shared packet buffer 47.
  • the switch transfer processing unit 43 includes a table search unit 431, a packet analysis processing unit 432, and a switching processing unit 433.
  • the table search unit 431 searches the transfer table 30 using the search key.
  • the packet analysis processing unit 432 extracts the header part of the packet, creates a search key using arbitrary information in the header part, and notifies the table search unit 431 of the search key.
  • the switching processing unit 433 transfers the packet according to the action content of the entry in the transfer table 30 in which the search key is hit.
  • the table search result register 44 is connected to the packet queue 45 addressed to the CPU.
  • the table search unit 431 of the switch transfer processing unit 43 sends a search request (search key) to the transfer table 30 to perform a table search.
  • search key search key
  • the memory 20 corresponding to the processing capacity of the switch transfer processing unit 43 is used.
  • the capacity of the memory 20 decreases in inverse proportion to the processing capacity.
  • the number of transfer tables that can be managed is limited.
  • FIG. 3 shows the configuration of the transfer table 30.
  • MAC DA indicates the destination MAC address.
  • MAC SA indicates a source MAC address.
  • IP DA indicates a destination IP address.
  • IP SA indicates a source IP address.
  • FIG. 4 shows a configuration diagram of software executed by the CPU 10.
  • the CPU 10 includes a PCI Express Route Complex (PCI RC: PCI Express Root Complex) 11, a forwarding engine driver 12, an extended network service setting unit 13, a service content query processing unit 14, a packet buffer processing unit 15, A packet reception processing unit 16 and an encryption processing unit 17 are provided.
  • PCI RC PCI Express Root Complex
  • the forwarding engine driver 12, the extended network service setting unit 13, the service content inquiry processing unit 14, the packet buffer processing unit 15, the packet reception processing unit 16, and the encryption processing unit 17 are realized by the CPU 10 executing software.
  • the CPU 10 in the conventional network system is used only to connect to the control server 3 and execute the extended network service.
  • FIG. 5 shows a configuration diagram of the control server 3.
  • the control server 3 includes a packet transmission / reception processing unit 31, an encryption processing unit 32, and an extended network service processing unit 33.
  • the control server 3 responds to the processing inquiry from the switch node 1 and executes an extended network service process for determining the destination for the inquiry packet, changing the packet, or controlling the switch node.
  • encryption processing is performed in order to perform secure communication with the switch node 1, and packets are transmitted and received.
  • the hardware-based switch node since the hardware-based switch node performs packet processing using the memory 20 that holds one high-speed transfer table, the memory 20 capacity of the transfer table is limited, and a large-capacity transfer table is configured. Difficult to do.
  • the hardware-based forwarding engine is configured by a dedicated LSI (Large Scale Integration), it has a disadvantage that it has low versatility and high cost, and there is no flexibility in changing the processing method.
  • LSI Large Scale Integration
  • Patent Document 1 Japanese Patent Laid-Open No. 2007-195166. Has been.
  • a distributed computer including a plurality of root nodes, one or more PCI switches and PCI adapters, the root node includes a plurality of hosts, and one of the root nodes includes a PCI configuration manager (PCM).
  • PCM PCI configuration manager
  • the PCI transaction packet is routed through the switch between the host and the adapter.
  • a table is created in one designated switch, and when a specific host is connected to the designated switch, the destination identifier having the designated bit set is input to the table by operating the PCM. To do. A destination identifier is added as an address to a PCI packet sent from a specific host to one of the adapters through a designated switch. It is determined that the PCI packet sent through the switch designated from one of the adapters using the destination identifier is for a specific host.
  • the conventional switch node configuration has a limit on the capacity of a forwarding table connected to a hardware-based forwarding engine, and it is difficult to construct a switch node having a large number of forwarding tables.
  • a software-based switch node is configured, there is a problem that the transfer processing capability is low in the switch node because there is one CPU.
  • An object of the present invention is to construct a large-capacity flow table in a software-based switch node, perform high-speed packet switch processing, connect to an external control server, and perform high-performance service protocol processing using PCI Express (PCIe). And a communication control system realized by utilizing a multi-route compatible switch and a network interface (NW I / F: Network Interface).
  • the communication control system includes a switch node and a control server that sets a flow entry in which rules and actions for uniformly controlling packets as a flow are defined in the flow table of the switch node.
  • the switch node connects a plurality of processors having a large-capacity memory and a plurality of extended network interfaces (extended NW I / F) by a multi-route compatible PCI Express (PCIe) switch, and a plurality of extended network interfaces ( A function unit that configures a switch port with an extended NW I / F) and load distribution transfer processing from the plurality of extended network interfaces (extended NW I / F) to the plurality of processors, and using the plurality of processors A functional unit that performs high-speed packet processing by multiple processing, and a functional unit that configures a large-capacity flow table by a software-based switch node using the large-capacity memory space of the plurality of processors.
  • PCIe PCI Express
  • the switch node includes a plurality of extended network interfaces (extended NW I / F) for receiving packets, a plurality of processors having a large capacity memory, the plurality of processors and a plurality of extended network interfaces (extended NW). And a multi-route compatible PCI Express (PCIe) switch.
  • Each of the plurality of extended network interfaces (extended NW I / F) includes a LAN interface for inputting / outputting packets, packet distribution processing to the plurality of processors, packet transfer between the plurality of processors, and a control server.
  • a packet transfer processing unit that performs at least one of the packet transfer processes, a plurality of PF resources for performing high-speed packet transmission / reception with the plurality of processors by DMA transfer, and the PCI express (PCIe) switch PCI Express Endpoint (PCIe EP).
  • PCIe PCI express
  • the communication control method is a communication in a switch node that sets a flow entry in which a rule and an action for uniformly controlling a packet as a flow are defined in its own flow table in accordance with control from a control server.
  • a control method in which a plurality of processors having large-capacity memories and a plurality of extended network interfaces (extended NW I / F) are connected by a multi-route compatible PCI Express (PCIe) switch to form a plurality of extended network interfaces.
  • PCIe PCI Express
  • a switch port with (extended NW I / F) is configured, load distribution transfer processing is performed from the plurality of extended network interfaces (extended NW I / F) to the plurality of processors, and the plurality of processors are used.
  • a plurality of extended network interfaces for receiving packets and a plurality of processors having a large-capacity memory are connected via a multi-route compatible PCI Express (PCIe) switch.
  • PCIe PCI Express
  • a program that is executed by a switch node that is connected and sets a flow entry that defines rules and actions for uniformly controlling packets as flows according to control from the control server.
  • flow unit When receiving a packet from the terminal via the LAN interface, the step of extracting the header portion of the packet and at least one of the MAC address, the VLAN address, and the IP address among the information of the extracted header portion of the packet Using information, flow unit A step of performing a hash process; a step of determining a distribution destination processor by the hash process; a step of transmitting a packet to a packet queue of a PF resource corresponding to the determined distribution destination processor; and the determined distribution
  • This is a program for causing a switch node to execute a step of transferring a packet (DMA (Direct Memory Access)) to the determined distribution destination processor in accordance with control from the previous processor.
  • DMA Direct Memory Access
  • the program according to the present invention is a program for causing a switch node to execute the processing in the communication control method.
  • the program according to the present invention can be stored in a storage device or a storage medium.
  • PCIe PCI Express
  • PCI-SIG PCI Special Interest Group
  • the extended network interface sends packets to multiple CPUs connected to the end of a multi-root PCI Express (PCIe) switch in order to process packets input from the terminal at high speed.
  • the packet header is analyzed in order to determine a CPU that has a function of transmitting and performs packet processing, and the packets are distributed and transferred to a plurality of CPUs.
  • extended NW I / F For data transfer between multiple CPUs and multiple extended network interfaces (extended NW I / F), the extended network interface (extended NW I / F) performs DMA transfer to multiple CPUs at high speed.
  • a plurality of DMA controllers are mounted, and transfer processing is performed on a plurality of CPUs using each DMA controller without applying a load to each CPU by DMA transfer.
  • Each CPU is connected to a large-capacity memory, and configures a transfer table on the memory having a large number of entries for determining a packet transfer destination.
  • the CPU When the CPU receives a packet input from the extended network interface (extended NW I / F), the CPU performs software frame analysis, searches the transfer table in the memory, and processes the packet. (Packet output port, packet header rewrite processing, etc.) are determined.
  • the CPU After the processing for the packet is determined, the CPU performs the determined processing on a software basis and transmits the packet to the corresponding extended network interface (extended NW I / F).
  • the CPU inquires the processing content of the packet to the control server connected to the end of the extended network interface (extended NW I / F).
  • the CPU When the CPU receives the packet processing content from the control server, the CPU registers it as an entry in the transfer table.
  • the CPU also registers entries in the transfer table managed by other CPUs, performs synchronization processing, and distributes and transfers packets from the extended network interface (extended NW I / F) to any CPU. Even if it does not cause a problem.
  • FIG. 6 shows a basic configuration of a communication control system according to the present invention.
  • the control server 3 corresponds to a controller in the OpenFlow network.
  • the switch node 4 corresponds to a switch in the open flow network.
  • the control server 3 controls the switch node 4 to transfer packets input from the network through an optimal route and to control the cooperation with the control server 3 to improve the network service.
  • the control server 3 is the same as the conventional network system. That is, the control server 3 is as shown in FIG.
  • PCIe PCI express
  • extended NW I / F extended network interface
  • extended NW I / F extended network interfaces
  • PCIe multi-route compatible PCI Express
  • the extended network interface (extended NW I / F) 60-1 is connected to the terminal 2-1.
  • An extended network interface (extended NW I / F) 60-2 is connected to the terminal 2-2.
  • An extended network interface (extended NW I / F) 60-3 is connected to the terminal 2-3.
  • the extended network interface (extended NW I / F) 60-4 is connected to the control server 3.
  • Extended network interface (extended NW I / F) 60-1 to 60-3 accepts packets input from terminals 2-1 to 2-3.
  • PCIe multi-root PCI express
  • PCIe PCI express
  • the switch node 4 realizes a high-speed switch node that constitutes a large-capacity flow table while being a software-based switch node.
  • a computer such as a PC (personal computer), an appliance, a thin client terminal / server, a workstation, a mainframe, a supercomputer, etc. Assumed.
  • Examples of the switch node 4 include a network switch, a router, a proxy, a gateway, a firewall, a load balancer, and a bandwidth control device (packet). shaper, security supervisory control device (SCADA: Supervision Control And Data Acquisition), gatekeeper, base station (base station), access point (AP: Access Point), communication satellite (CS: Commune) Consider computers with multiple communication ports. It is.
  • SCADA Security supervisory control device
  • SCADA Supervision Control And Data Acquisition
  • AP Access Point
  • CS Communication Satellite
  • VM Virtual Machine
  • a semiconductor integrated circuit such as a substrate (motherboard or I / O board) corresponding to a LAN, NIC (Network Interface Card) ), Or similar expansion cards.
  • a network processor for performing high-speed processing with hardware.
  • NP Network Processor
  • microprocessor microcontroller
  • LSI Large Scale
  • Examples of the memory 80 include a RAM (Random Access Memory), a ROM (Read Only Memory), an EEPROM (Electrically Erasable and Programmable Read Only Memory), a flash memory, and the like.
  • Auxiliary storage devices such as HDD (Hard Disk Drive) and SSD (Solid State Drive), or removable disks such as DVD (Digital Versatile Disk) and storage media such as SD memory card (Secure Digital memory card) Conceivable.
  • FIG. 7 shows the configuration of extended network interfaces (extended NW I / F) 60-1 to 60-3 connected to any of the terminals 2-1 to 2-3.
  • PCIe EP PCI express endpoint
  • LAN interface 1G MAC
  • CPU distribution processing unit 63 CPU distribution processing unit 63
  • a multi-root PCI express endpoint (PCIe EP) 61 is connected to a multi-root PCI express (PCIe) switch 50.
  • the LAN interface (1G MAC) 62 inputs / outputs packets to / from any of the terminals 2-1 to 2-3.
  • the LAN interface (1G MAC) means a LAN interface that supports 1 Gbps data transfer. “1G” is merely an example.
  • the CPU distribution processing unit 63 includes a packet distribution processing unit 631, a packet transmission buffer 632, a packet reception buffer 633, and a packet transmission processing unit 634.
  • the packet distribution processing unit 631 extracts the header portion of the packet, and performs hash processing in units of flow using information such as a MAC address, a VLAN address, and an IP address in the header portion information.
  • Step S102 When receiving the packet, the packet distribution processing unit 631 extracts the header portion of the packet.
  • Step S103 The packet distribution processing unit 631 performs hash processing for each flow using information such as a MAC address, a VLAN address, and an IP address among the information of the header portion of the extracted packet.
  • Step S105 The packet distribution processing unit 631 transmits the packet to the packet transmission buffer 632 in order to transfer the packet to the determined distribution destination CPU 70.
  • the packet transmission buffer 632 transfers the packet to one of the packet queues 642 to the CPU of the PF resource 64 that can deliver the packet to the CPU 70 of the determined distribution destination in order to transfer the packet to the CPU 70 of the determined distribution destination. Send.
  • the packet transmission buffer 632 transmits a packet to the PF1 resource 64-1 for transfer to the CPU 70-1.
  • the CPU 70-1 passes through the multi-root PCI express (PCIe) switch 50 to pass the PF1 resource 64.
  • PCIe multi-root PCI express
  • FIG. 9 shows the configuration of an extended network interface (extended NW I / F) 60-4 connected to the control server 3.
  • PCIe EP PCI express endpoint
  • LAN interface 1G MAC
  • PF page file
  • the extended network interface (extended NW I / F) 60-1 to 60-3 was provided with the CPU distribution processing unit 63, but the extended network interface (extended NW I / F) 60-4 instead transferred the packet.
  • a processing unit 65 is provided. Actually, the functions of both the CPU distribution processing unit 63 and the packet transfer processing unit 65 may be integrated.
  • the LAN interface (1G MAC) 62 inputs and outputs packets with the control server 3.
  • the packet transfer processing unit 65 includes a destination analysis processing unit 651, a packet transmission buffer 652, a packet reception buffer 653, and a packet transmission processing unit 654.
  • FIG. 10 is a flowchart for explaining the operation of the destination analysis process.
  • Step S202 When receiving the packet, the destination analysis processing unit 651 extracts the header portion of the packet and confirms the destination MAC address of the packet.
  • PCIe multi-root PCI express
  • the controller 641 is controlled, and the corresponding packet is transferred via the multi-root PCI express (PCIe) switch 50 at a high speed with a minimum CPU load.
  • PCIe multi-root PCI express
  • the packet is transferred via the extended network interface (extended NW I / F) 60-4, and the output destination is inquired.
  • the synchronization processing is performed so that the information becomes the same information, and the load of the search processing can be distributed.
  • the switch node 4 can be configured by a general-purpose, low-cost, high-performance CPU, memory, PCI Express (PCIe) switch, and network interface that are also used in general computers, which is advantageous in terms of cost. Because it is software-based, there is a merit that the degree of freedom of change is high.
  • PCIe PCI Express
  • Each of the CPUs 70 includes a PCI express route complex (PCIe RC) 71, a network interface driver 72, a packet analysis processing unit 73, a table search unit 74, and a packet buffer.
  • PCIe RC PCI express route complex
  • a processing unit 75, a service content inquiry processing unit 76, an encryption processing unit 77, an extended network service setting unit 78, and a multi-CPU transfer table synchronization processing unit 79 are provided.
  • PCI express route complex (PCIe RC) 71 is connected to a multi-root PCI express (PCIe) switch 50.
  • the packet buffer processing unit 75 stores the packets until it is determined whether or not to inquire the control server 3 about the processing contents of the packet regarding the switch processing and the processing undecided packet.
  • the service content inquiry processing unit 76 inquires of the control server 3 about the processing content of the packet.
  • the cryptographic processing unit 77 performs cryptographic communication with the control server 3.
  • FIG. 12 is a flowchart for explaining the operation of the multi-CPU transfer table synchronization process.
  • Step S301 The service content inquiry processing unit 76 inquires of the control server 3 about a service processing method (processing content).
  • the service content inquiry processing unit 76 sends a packet related to the inquiry about the service processing method to the encryption processing unit 77.
  • the encryption processing unit 77 encrypts a packet related to the inquiry about the service processing method and sends it to the network interface driver 72.
  • the network interface driver 72 sends the encrypted packet to the multi-root PCI express (PCIe) switch 50 via the PCI express route complex (PCIe RC) 71.
  • the multi-root PCI express (PCIe) switch 50 transmits the encrypted packet to the control server 3.
  • the control server 3 determines a service processing method.
  • the packet transmission / reception processing unit 31 of the control server 3 receives the encrypted packet and sends it to the encryption processing unit 32.
  • the encryption processing unit 32 decrypts the encrypted packet and sends a packet related to a service processing method inquiry to the extended network service processing unit 33.
  • the extended network service processing unit 33 determines a service processing method based on a packet related to an inquiry about the service processing method.
  • the control server 3 transmits an entry addition request based on the determined service processing method to the service content inquiry processing unit 76 in the reverse flow of step S301.
  • the service content inquiry processing unit 76 notifies the extended network service setting unit 78 of the entry addition request.
  • the multi-CPU transfer table synchronization processing unit 79 requests writing of the transfer table to another CPU based on the transfer table setting on the own CPU.
  • Step S306 The multi-CPU transfer table synchronization processing unit 79 waits until there is a write completion response from another CPU, and ends the process if there is a write completion response from another CPU.
  • MAC DA indicates the destination MAC address.
  • MAC SA indicates a source MAC address.
  • IP DA indicates a destination IP address.
  • IP SA indicates a source IP address.
  • extended NW I / F extended NW I / F
  • PCIe RC PCI express route complex
  • the packet analysis processing unit 73 extracts packet header information and the like, analyzes the extracted header information and the like, creates a search key using the header information, and passes it to the table search unit 74.
  • the table search unit 74 transfers the packet to the packet buffer processing unit 75.
  • the packet buffer processing unit 75 processes the packet, and performs an operation of outputting the packet to the corresponding output port for the switch operation.
  • the packet buffer processing unit 75 transfers the packet to the network interface driver 72 in order to output the packet to the corresponding output port according to the determined processing method.
  • PCIe RC PCI express route complex
  • NW I / F extended network interface
  • the network interface driver 72 controls the DMA controller 641 to store the packet transmitted to the CPU transmission packet queue 643 in the packet reception buffer 633.
  • the service content inquiry processing unit 76 encrypts the packet information by using the encryption processing unit 77 and transfers the packet information to the network interface driver 72.
  • the network interface driver 72 controls the DMA controller 641 of the extended network interface (extended NW I / F) 60-4 via the PCI express route complex (PCIe RC) 71, and transmits the encrypted packet information.
  • the data is transmitted to the CPU transmission packet queue 643 of the extended network interface (extended NW I / F) 60-4.
  • the network interface driver 72 controls the DMA controller 641 to transmit the packet (encrypted packet information) transmitted to the CPU transmission packet queue 643 to the packet reception buffer 653 of the packet transfer processing unit 65.
  • the network interface driver 72 controls the DMA controller 641 to transmit the packet (encrypted packet information) transmitted to the packet reception buffer 653 to the destination analysis processing unit 651.
  • the destination analysis processing unit 651 does not output the packet to the outside and returns the packet (encryption) to the packet transmission buffer 652. Output packet information).
  • the destination analysis processing unit 651 sends the packet to the control server 3 via the LAN interface (1G MAC) 62-4 when the MAC address is different, such as a packet addressed to the control server 3, via the LAN interface (1G MAC) 62-4. (Encrypted packet information) is transmitted.
  • the packet transmission / reception processing unit 31 of the control server 3 receives the transmitted packet (encrypted packet information) and transfers it to the encryption processing unit 32.
  • the encryption processing unit 32 decrypts the encrypted packet information, transmits the packet information to the extended network service processing unit 33, and determines a processing method for the packet.
  • the encryption processing unit 32 After determining the processing method, the encryption processing unit 32 again encrypts a packet of information related to the processing method and sends it to the packet transmission / reception processing unit 31.
  • the packet transmission / reception processing unit 31 transmits the packet to the extended network interface (extended NW I / F) 60-4 and responds the encrypted packet to the switch node 4.
  • extended NW I / F extended network interface
  • the LAN interface (1G MAC) 62-4 of the extended network interface (extended NW I / F) 60-4 of the switch node 4 receives the response packet and stores the response packet in the packet transmission buffer 652.
  • the encryption processing unit 77 decrypts the response packet and transmits it to the service content inquiry processing unit 76.
  • the service content inquiry processing unit 76 notifies the extended network service setting unit 78 of the processing content.
  • the extended network service setting unit 78 performs packet header rewriting processing, transmits the packet to the designated packet output port, and performs packet switching operation.
  • extended NW I / F extended network interface
  • the CPU can be equipped with a large-capacity memory, a large-capacity transfer table can be constructed, and a high-speed software-based switch node configuration capable of managing a large number of flows becomes possible.
  • a PCI Express (PCIe) switch is used.
  • an extended network interface (extended NW I / F) card corresponding to multi-route that can analyze a packet equipped with a network processor or the like and distribute the processing to the CPU is used. .
  • a general-purpose CPU and memory for performing packet processing are used.
  • high-speed packet processing is realized by synchronizing transfer tables between CPUs and performing packet processing by a plurality of CPUs.
  • high-speed packet transmission / reception is performed between the extended network interface (extended NW I / F) and the CPU, and between the plurality of CPUs using a PCI controller based on PCI Express (PCIe).
  • extended NW I / F extended network interface
  • PCIe PCI Express
  • the hardware parts that make up the switch node are standard parts, the cost reduction effect of the device can be expected, and by increasing the number of CPUs, performance scalability and software base are flexible. Can be expected to have a high switch node configuration.
  • the present invention is applied to a network device that requires management of a large amount of flows such as 10 million flows, a network device that requires high-speed and complicated packet processing, or a high-function network device that uses a large number of servers. be able to.
  • the present invention can be applied to a configuration that does not use an external control server, and a high-performance switch node can be realized.
  • FIG. 14 shows a configuration example of the switch node in the first embodiment.
  • PCIe PCI express
  • NW virtualization I / F network virtualization interface
  • PCIe EP Single Route PCI Express Endpoint
  • PCIe EP Single Route PCI Express Endpoint
  • This corresponds to a combination of extended network interfaces (extended NW I / F) 60 (60-x, x 1 to M).
  • PCIe EP Single-route PCI Express endpoint
  • PCIe multi-root PCI Express
  • PCIe PCI Express
  • PCI-SIG PCI Express
  • the switch since the switch is configured on the LAN, an extremely large virtual switch is configured, and a large number of servers having a CPU and memory are connected to the network interface.
  • a high-performance switch node can be configured.
  • FIG. 15 shows a configuration example of the switch node in the second embodiment.
  • a GPU Graphics Processing Unit
  • PCIe PCI express
  • the present invention can manage a large number of forwarding tables using a multi-root PCI Express (PCIe) switch defined by "PCI-SIG" in a software-based network switch node, and realizes high-performance packet forwarding processing. Related to node configuration.
  • PCIe PCI Express
  • the present invention defines a high-capacity flow table in a software-based switch node, performs high-speed packet switch processing, connects to an external control server, and defines high-performance service protocol processing by PCI Express (PCIe) It is realized by utilizing the multi-route compatible switch and network interface.
  • PCIe PCI Express
  • the switch node according to the present invention is constructed on a software basis using a multi-root PCI Express (PCIe) switch, a large number of CPUs, and a large number of network interface cards.
  • PCIe PCI Express
  • the switch node distributes the processing load to the CPU in order to distribute the processing load of the packet within the network interface, and uses a multi-root PCI Express (PCIe) switch to load the processing load on a plurality of CPUs. Disperse.
  • PCIe PCI Express
  • the switch node synchronizes transfer tables among a plurality of CPUs at high speed using an extended interface card that can be turned back via a multi-root PCI Express (PCIe) switch.
  • PCIe PCI Express

Landscapes

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

Abstract

 スイッチノードにおいて、外部の制御サーバと接続し高機能なサービス・プロトコル処理を、PCIエクスプレスで規定されているマルチルート対応のスイッチ並びにネットワークインターフェース(NW I/F)を活用して実現する。具体的には、スイッチノード、制御サーバの関係で構成されるシステムにおいて、スイッチノードを、大量のメモリを持つ複数のCPUと複数の拡張NW I/Fを、マルチルート対応のPCIエクスプレススイッチで接続することで、複数の拡張NW I/Fによるスイッチポートを構成し、ネットワークインターフェースから複数CPUへの負荷分散転送処理を可能とし、複数CPUを用いた多重処理による高速パケット処理を実現し、CPUの大容量メインメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量フローテーブルを構成する高速なスイッチノードを提供する。

Description

通信制御システム、スイッチノード、及び通信制御方法
 本発明は、通信制御システムに関し、特にスイッチノードの制御を行う通信制御システムに関する。
 従来のネットワーク機器はブラックボックスであり、外部から負荷分散や片寄等柔軟性に富んだ制御ができない。このため、ネットワークの規模が大きくなると、システムとしての挙動の把握と改善が困難になり、設計や構成変更には多大なコストを伴うことが問題であった。
 こうした課題を解決するための技術として、ネットワーク機器のパケット転送機能と経路制御機能を分離する手法が考えられている。例えば、パケット転送機能をネットワーク機器が担当し、経路制御機能をネットワーク機器の外部に分離した制御装置が担当することで、制御が容易になり柔軟性に富んだネットワークを構築することが可能になる。
 [CD分離型ネットワークの説明]
 機能を分離したネットワークの1つとして、コントロールプレーン側の制御装置からデータプレーン側のノード装置を制御するCD(C:コントロールプレーン/D:データプレーン)分離型ネットワークが提案されている。
 CD分離型ネットワークの一例として、コントローラからスイッチを制御してネットワークの経路制御を行うオープンフロー(OpenFlow)技術を利用したオープンフローネットワークが挙げられる。オープンフロー技術の詳細については、非特許文献1に記載されている。なお、オープンフローネットワークは一例に過ぎない。
 [オープンフローネットワークの説明]
 オープンフローネットワークでは、制御装置に相当するオープンフローコントローラ(OFC:OpenFlow Controller)が、ノード装置に相当するオープンフロースイッチ(OFS:OpenFlow Switch)の経路制御に関するフローテーブル(Flow table)を操作することにより、オープンフロースイッチ(OFS)の挙動を制御する。
 以下、記載の簡略化のため、オープンフローコントローラ(OFC)を「コントローラ」と表記し、オープンフロースイッチ(OFS)を「スイッチ」と表記する。
 コントローラとスイッチの間は、専用線やSSL(SecureSocketLayer)等により保護された通信路である「セキュアチャンネル」(Secure Channel)と呼ばれる制御チャネル(制御用の通信チャネル)により接続されている。コントローラとスイッチとは、制御チャネルを介して、オープンフロープロトコル(OpenFlow Protocol)に則った(準拠した)制御メッセージであるオープンフローメッセージ(OpenFlow Message)を送受信する。
 オープンフローネットワークにおけるスイッチとは、オープンフローネットワークに配置され、コントローラの制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入口側エッジスイッチ(Ingress)でのパケット(packet)の受信から出口側エッジスイッチ(Egress)での送信までのパケットの一連の流れをフロー(Flow)と呼ぶ。オープンフローネットワークでは、通信をエンドツーエンド(E2E:End to End)のフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行う。
 パケットは、フレーム(frame)と読み替えても良い。パケットとフレームの違いは、プロトコルが扱うデータの単位(PDU:Protocol Data Unit)の違いに過ぎない。パケットは、「TCP/IP」(Transmission Control Protocol/Internet Protocol)のPDUである。一方、フレームは、「イーサネット(登録商標)」(Ethernet)のPDUである。
 フローテーブルとは、フローとして扱うパケットを特定するための判別条件(ルール)と、パケットがルールに適合(マッチ)した回数を示す統計情報と、パケットに対して行うべき処理内容(アクション)の組を定義したフローエントリ(Flow entry)の集合である。
 フローエントリのルールは、パケットのヘッダ領域(フィールド)に含まれる各プロトコル階層の情報のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。各プロトコル階層の情報の例として、送信先アドレス(Destination Address)、送信元アドレス(Source Address)、送信先ポート(Destination Port)、送信元ポート(Source Port)等が考えられる。なお、上記のアドレスには、MACアドレス(Media Access Control Address)やIPアドレス(Internet Protocol Address)を含むものとする。また、上記に加えて、入口ポート(Ingress Port)の情報も、フローエントリのルールとして使用可能である。また、フローエントリのルールとして、フローとして扱うパケットのヘッダ領域の値の一部(又は全部)を、正規表現やワイルドカード「*」等で表現したものを設定することもできる。
 フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、スイッチは、フローエントリのアクションに出力ポートの識別情報(出力ポート番号等)が示されていれば、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを廃棄する。或いは、スイッチは、フローエントリのアクションにヘッダ情報が示されていれば、当該ヘッダ情報に基づいてパケットのヘッダを書き換える。
 スイッチは、フローエントリのルールに適合するパケット群(パケット系列)に対して、フローエントリのアクションを実行する。具体的には、スイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルールを持つフローエントリを検索する。検索の結果、受信パケットのヘッダ情報に適合するルールを持つフローエントリが見つかった場合、当該フローエントリの統計情報を更新すると共に、受信パケットに対して、当該フローエントリのアクションとして指定された動作を実施する。一方、検索の結果、受信パケットのヘッダ情報に適合するルールを持つフローエントリが見つからなかった場合、当該受信パケットを最初のパケット(first packet)と判断し、制御チャネルを介して、オープンフローネットワークにおけるコントローラに対して、受信パケット(又はそのコピー)を転送し、受信パケットの送信元・送信先(宛先)等に基づいたパケットの経路計算を要求し、応答としてフローエントリの設定用メッセージを受信し、フローテーブルを更新する。
 なお、フローテーブルには、低い優先度で、全てのパケットのヘッダ情報に適合するルールを持つデフォルトエントリが登録されている。受信パケットに適合するフローエントリが他に見つからなかった場合、受信パケットは、このデフォルトエントリに適合する。デフォルトエントリのアクションは、「コントローラへの当該受信パケットの問い合わせ情報の送信」である。
 [PCIエクスプレスの説明]
 また、近年、PCIバス(Peripheral Component Interconnect bus)に代わり、「PCIエクスプレス(PCIe:PCI Express)」というインターフェース(I/F:interface)が広く利用されるようになっている。PCIバスはパラレル転送方式であり、PCIエクスプレス(PCIe)はシリアル転送方式である。PCIバスとPCIエクスプレス(PCIe)との間に物理レベルでの互換性はないが、通信プロトコル等は共通のものが使用されている。PCIエクスプレス(PCIe)で用いられる最小構成の伝送路(レーン)では、片方向2.5Gbps(Gigabit per second:ギガビット毎秒)、双方向5.0Gbpsの全二重通信が可能である。
 [従来のネットワークシステムの説明]
 図1、図2、図3、図4、図5は、従来のネットワークシステムの構成を示す。具体的には、ハードウェアベースでスイッチ処理を行い、制御サーバで拡張ネットワークサービスを実行する際のシステム構成である。
 [従来のネットワークシステム構成]
 図1は、従来のネットワークシステムの基本構成を示す。
 従来のネットワークシステムは、スイッチノード1と、端末2(2-i、i=1~T:Tは端末数)と、制御サーバ3を含む。
 スイッチノード1は、オープンフローネットワークにおけるスイッチに相当する。制御サーバ3は、オープンフローネットワークにおけるコントローラに相当する。端末2(2-i、i=1~T)及び制御サーバ3は、スイッチノード1と接続されている。
 スイッチノード1は、CPU(Central Processing Unit)10と、メモリ20と、転送テーブル30と、ネットワークフォワーディングエンジン40を備える。
 CPU10は、メモリ20と接続されている。また、CPU10及び転送テーブル30は、ネットワークフォワーディングエンジン40と接続されている。
 従来のネットワークシステムでは、スイッチノード1上には、ハードウェアでパケット処理を行うネットワークフォワーディングエンジン40が存在し、このフォワーディングエンジン40は、端末2(2-i、i=1~T)から入力されるパケットを受信し、1つの転送テーブル30を用いてフローの宛先を管理し、パケット受信時、テーブル検索を行い、端末間のパケットスイッチ処理を行う。この転送テーブル30は、端末間のスイッチ処理容量に耐えるように、高速な処理に対応するが、メモリ20容量が限られているため、大量のフローを管理する転送テーブル30を構成することができない。
 [ネットワークスイッチフォワーディングエンジンの内部構成]
 図2は、ネットワークスイッチフォワーディングエンジン40の内部の構成を示している。
 ネットワークスイッチフォワーディングエンジン40は、PCIエクスプレス・エンドポイント(PCIe EP:PCI Express End Point)41と、LAN(Local Area Network)インターフェース(1G MAC)42と、スイッチ転送処理部43と、テーブル検索結果レジスタ44と、CPU宛パケットキュー45と、CPU送信パケットキュー46と、スイッチファブリック共有パケットバッファ47と、DMA(Direct Memory Access)コントローラ48を備える。
 PCIエクスプレス・エンドポイント(PCIe EP)41は、CPU10、CPU宛パケットキュー45、及びCPU送信パケットキュー46と接続されている。
 LANインターフェース(1G MAC)42は、端末2(2-i、i=1~T)及び制御サーバ3と接続されている。
 スイッチ転送処理部43は、転送テーブル30、LANインターフェース(1G MAC)42、テーブル検索結果レジスタ44、CPU送信パケットキュー46、スイッチファブリック共有パケットバッファ47と接続されている。
 スイッチ転送処理部43は、テーブル検索部431と、パケット解析処理部432と、スイッチング処理部433を備える。
 テーブル検索部431は、検索キーを用いて、転送テーブル30を検索する。
 パケット解析処理部432は、パケットのヘッダ部分を抽出し、ヘッダ部分の任意の情報を用いて検索キーを作成し、検索キーをテーブル検索部431に通知する。
 スイッチング処理部433は、検索キーがヒットした転送テーブル30のエントリのアクションの内容に従って、パケットを転送する。
 テーブル検索結果レジスタ44は、CPU宛パケットキュー45と接続されている。
 スイッチ転送処理部43のテーブル検索部431は、転送テーブル30に対して検索要求(検索キー)を送り、テーブル検索を行う。転送テーブル30の格納場所として、スイッチ転送処理部43の処理能力に応じたメモリ20が利用されるが、高速な処理能力が求められるため、処理能力に反比例してメモリ20の容量は少なくなり、管理できる転送テーブル数は限られる。
 [転送テーブルの構成]
 図3は、転送テーブル30の構成を示す。
 転送テーブル30は、オープンフローネットワークにおけるフローテーブルに相当する。この転送テーブル30では、64000件のエントリを管理できる。
 なお、「MAC DA」は、宛先MACアドレスを示す。「MAC SA」は、送信元MACアドレスを示す。「IP DA」は、宛先IPアドレスを示す。「IP SA」は、送信元IPアドレスを示す。
 [CPUの構成]
 図4は、CPU10で実行されるソフトウェアの構成図を示す。
 CPU10は、PCIエクスプレス・ルート・コンプレックス(PCIe RC:PCI Express Root Complex)11と、フォワーディングエンジンドライバ12と、拡張ネットワークサービス設定部13と、サービス内容問合せ処理部14と、パケットバッファ処理部15と、パケット受信処理部16と、暗号処理部17を備える。
 フォワーディングエンジンドライバ12、拡張ネットワークサービス設定部13、サービス内容問合せ処理部14、パケットバッファ処理部15、パケット受信処理部16、及び暗号処理部17は、CPU10がソフトウェアを実行することにより実現される。
 従来のネットワークシステムでのCPU10は、制御サーバ3と接続し、拡張ネットワークサービスを実行するためだけに用いられる。
 [制御サーバの構成]
 図5は、制御サーバ3の構成図を示す。
 制御サーバ3は、パケット送受信処理部31と、暗号処理部32と、拡張ネットワークサービス処理部33を備える。
 制御サーバ3は、スイッチノード1からの処理問合せに対応し、問合せパケットに対しての宛先決定や、パケットの変更処理、又はスイッチノードの制御等を行う拡張ネットワークサービス処理の実行を行う。また、スイッチノード1とセキュアな通信を行うため暗号処理を行いパケットの送受信を行う。
 上記のように、ハードウェアベースのスイッチノードは、1つの高速な転送テーブルを保持するメモリ20を利用したパケット処理を行うため、転送テーブルのメモリ20容量が限られ、大容量の転送テーブルを構成することが困難である。
 また、ハードウェアベースのフォワーディングエンジンは、専用LSI(Large Scale Integration)で構成されるために、汎用性が低くコストが高くなり、また、処理方法の変更等の自由度はないといったデメリットもある。
 なお、関連する技術として、特許文献1(特開2007-195166号公報)に組み込みDIDによるPCIバス・アドレス・ベースのルーティング用ルーティング・テーブルを作成し、管理する方法、コンピュータ・プログラム及び装置が開示されている。
 この関連技術では、複数のルートノードと、1つまたは複数のPCIスイッチ及びPCIアダプタを備え、ルートノードが複数のホストを含み、ルートノードのうちの1つがPCI構成マネージャ(PCM)を含む分散コンピューティングシステムにおいて、ホストとアダプタの間でスイッチを通してPCIトランザクションパケットをルーティングする。
 このとき、1つの指定されたスイッチ内にテーブルを作成し、特定のホストが指定されたスイッチに接続された場合に、PCMを操作して指定されたビットセットを有する送信先識別子をテーブルに入力する。指定されたスイッチを通して特定のホストからアダプタの1つに送出されたPCIパケットに送信先識別子をアドレスとして追加する。送信先識別子を用いてアダプタの1つから指定されたスイッチを通して送出されたPCIパケットが特定のホスト用であると判定する。
特開2007-195166号公報
"OpenFlow Switch Specification, Version 1.0.0"、 December 31, 2009、 インターネット(URL:http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf)
 従来のスイッチノード構成は、ハードウェアベースのフォワーディングエンジンに接続される転送テーブルの容量に限界があり、大量の転送テーブルを持つスイッチノードの構築が難しい。一方で、ソフトウェアベースのスイッチノードを構成した場合、CPUが一つであるため、スイッチノードでは転送処理能力が低い課題がある。
 本発明の目的は、ソフトウェアベースのスイッチノードにおいて、大容量のフローテーブルを構成し、高速なパケットスイッチ処理を行い、外部の制御サーバと接続し高機能なサービス・プロトコル処理を、PCIエクスプレス(PCIe)で規定されているマルチルート対応のスイッチ並びにネットワークインターフェース(NW I/F:Network Interface)を活用して実現する通信制御システムを提供することである。
 本発明に係る通信制御システムは、スイッチノードと、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、該スイッチノードのフローテーブルに設定する制御サーバとを含む。該スイッチノードは、大容量のメモリを持つ複数のプロセッサと複数の拡張ネットワークインターフェース(拡張NW I/F)とを、マルチルート対応のPCIエクスプレス(PCIe)スイッチで接続し、複数の拡張ネットワークインターフェース(拡張NW I/F)によるスイッチポートを構成する機能部と、該複数の拡張ネットワークインターフェース(拡張NW I/F)から該複数のプロセッサへの負荷分散転送処理を行い、該複数のプロセッサを用いた多重処理による高速パケット処理を行う機能部と、該複数のプロセッサの大容量のメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量のフローテーブルを構成する機能部とを具備する。
 本発明に係るスイッチノードは、パケットを受信する複数の拡張ネットワークインターフェース(拡張NW I/F)と、大容量のメモリを持つ複数のプロセッサと、該複数のプロセッサと複数の拡張ネットワークインターフェース(拡張NW I/F)とを接続するマルチルート対応のPCIエクスプレス(PCIe)スイッチとを具備する。該複数の拡張ネットワークインターフェース(拡張NW I/F)の各々は、パケットの入出力を行うLANインターフェースと、該複数のプロセッサへのパケットの振分け処理、複数のプロセッサ間でのパケット転送並びに制御サーバへのパケットの転送処理のうち、少なくとも1つの転送処理を行うパケット転送処理部と、該複数プロセッサとDMA転送でパケットの送受信を高速に行うための複数のPFリソースと、該PCIエクスプレス(PCIe)スイッチと接続するためのPCIエクスプレス・エンドポイント(PCIe EP)とを具備する。
 本発明に係る通信制御方法は、制御サーバからの制御に応じて、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、自身のフローテーブルに設定するスイッチノードにおける通信制御方法であって、大容量のメモリを持つ複数のプロセッサと複数の拡張ネットワークインターフェース(拡張NW I/F)とを、マルチルート対応のPCIエクスプレス(PCIe)スイッチで接続し、複数の拡張ネットワークインターフェース(拡張NW I/F)によるスイッチポートを構成することと、該複数の拡張ネットワークインターフェース(拡張NW I/F)から該複数のプロセッサへの負荷分散転送処理を行い、該複数のプロセッサを用いた多重処理による高速パケット処理を行うことと、該複数のプロセッサの大容量のメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量のフローテーブルを構成することとを含む。
 本発明に係るプログラムは、パケットを受信する複数の拡張ネットワークインターフェース(拡張NW I/F)と、大容量のメモリを持つ複数のプロセッサと、がマルチルート対応のPCIエクスプレス(PCIe)スイッチを介して接続されており、制御サーバからの制御に応じて、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、自身のフローテーブルに設定するスイッチノードにより実行されるプログラムであって、端末からLANインターフェースを経由してパケットを受信すると、パケットのヘッダ部分を抽出するステップと、該抽出したパケットのヘッダ部分の情報のうち、MACアドレス、VLANアドレス、IPアドレスの少なくとも1つの情報を用いて、フロー単位でハッシュ処理を行うステップと、該ハッシュ処理により振分け先のプロセッサを決定するステップと、該決定された振分け先のプロセッサに対応するPFリソースのパケットキューにパケットを送信するステップと、該決定された振分け先のプロセッサからの制御に応じて、該決定された振分け先のプロセッサへパケットをDMA(Direct Memory Access)転送するステップとをスイッチノードに実行させるためのプログラムである。
 本発明に係るプログラムは、上記の通信制御方法における処理を、スイッチノードに実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
 これにより、大容量の転送テーブルを対応した高速スイッチ処理が可能なソフトウェアベースのスイッチノードを実現できる。
従来のネットワークシステムの基本構成例を示す図である。 従来のネットワークシステムのネットワークスイッチフォワーディングエンジンの内部構成を示す図である。 従来のネットワークシステムの転送テーブルの構成例を示す図である。 従来のネットワークシステムのCPUの構成例を示す図である。 従来のネットワークシステムの制御サーバの構成例を示す図である。 本発明に係る通信制御システムの基本構成例を示す図である。 端末側の拡張ネットワークインターフェース(拡張NW I/F)の構成例を示す図である。 CPUとの間のパケット転送処理の動作を説明するためのフローチャートである。 制御サーバ側の拡張ネットワークインターフェース(拡張NW I/F)の構成例を示す図である。 宛先解析処理の動作を説明するためのフローチャートである。 本発明に係る通信制御システムのCPUの構成例を示す図である。 マルチCPU転送テーブル同期処理の動作を説明するためのフローチャートである。 本発明に係る通信制御システムの転送テーブルの構成例を示す図である。 本発明に係る通信制御システムの第1の実施例を示す図である。 本発明に係る通信制御システムの第2の実施例を示す図である。
 <本発明の概要>
 「PCI-SIG」(PCI Special Interest Group)で規定されているマルチルートPCIエクスプレス(PCIe:PCI Express)スイッチに、高速なパケットの処理を行うために複数のCPUと、パケットの入出力を行うための複数の拡張ネットワークインターフェース(NW I/F:Network Interface)を接続し、ソフトウェアベースでパケット処理を行うスイッチノードを構成する。
 拡張ネットワークインターフェース(拡張NW I/F)は、端末から入力されるパケットを高速に処理するために、マルチルートPCIエクスプレス(PCIe)スイッチの先に接続されている複数のCPUに対して、パケットを送信する機能を持ち、パケットの処理を行うCPUを決定するためにパケットのヘッダを解析し、複数のCPUにパケットを振分けて転送を行う。
 複数のCPUと複数の拡張ネットワークインターフェース(拡張NW I/F)間のデータ転送については、拡張ネットワークインターフェース(拡張NW I/F)は、複数のCPUに対してDMA転送を高速に行うために、複数のDMAコントローラを搭載し、複数のCPUに対して、各々のDMAコントローラを用いて、DMA転送で各CPUに負荷をかけず転送処理を行う。
 各CPUは、大容量のメモリと接続し、パケットの転送先を決定する大量のエントリを持つ転送テーブルをメモリ上に構成する。
 CPUは、拡張ネットワークインターフェース(拡張NW I/F)から入力されるパケットを受信すると、CPU上のソフトウェアによる処理で、パケットのフレーム解析を行い、メモリ上にある転送テーブルを検索し、パケットに対する処理(パケットの出力ポートやパケットヘッダ書換処理等)を決定する。
 CPUは、パケットに対する処理が決定した後は、ソフトウェアベースで、決定した処理を行い、該当する拡張ネットワークインターフェース(拡張NW I/F)にパケットを送信する。
 CPUは、転送テーブルの検索の結果、パケットに対する処理が決まらない場合は、拡張ネットワークインターフェース(拡張NW I/F)の先に接続される制御サーバにパケットの処理内容を問い合わせる。
 CPUは、制御サーバからパケットの処理内容を受け取ると、転送テーブルに、エントリとして登録を行う。
 また、CPUは、他のCPUが管理している転送テーブルにもエントリ登録を行い、同期処理を行い、拡張ネットワークインターフェース(拡張NW I/F)からどのCPUに対してもパケットを振分けて転送しても問題が発生しないようにする。
 <実施形態>
 以下に、本発明の実施形態について添付図面を参照して説明する。
 本発明は、CD分離型ネットワークを対象としている。ここでは、CD分離型ネットワークの1つであるオープンフローネットワークを例に説明する。但し、実際には、オープンフローネットワークに限定されない。
 [通信制御システムの構成]
 図6は、本発明に係る通信制御システムの基本構成を示す。
 本発明に係る通信制御システムは、端末2(2-i、i=1~T:nは端末数)と、制御サーバ3と、スイッチノード4を含む。
 制御サーバ3は、オープンフローネットワークにおけるコントローラに相当する。スイッチノード4は、オープンフローネットワークにおけるスイッチに相当する。端末2(2-i、i=1~T)及び制御サーバ3は、スイッチノード4と接続されている。
 制御サーバ3は、スイッチノード4に対して、ネットワークから入力されるパケットの最適な経路での転送や、該制御サーバ3との連携のための制御を行い、ネットワークサービスの向上を行う。なお、制御サーバ3は、従来のネットワークシステムと同様である。すなわち、制御サーバ3は、図5に示す通りである。
 スイッチノード4は、マルチルートPCIエクスプレス(PCIe)スイッチ50と、拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M:Mは任意)と、CPU70(70-y、y=1~N:Nは任意)と、メモリ80(80-y、y=1~N)を備える。
 マルチルートPCIエクスプレス(PCIe)スイッチ50は、拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)、及びCPU70(70-y、y=1~N)と接続されている。
 マルチルートPCIエクスプレス(PCIe)スイッチ50は、複数の拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)と複数のCPU70(70-y、y=1~N)間のデータ転送を行うマルチルート対応のPCIエクスプレス(PCIe)スイッチである。
 拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)は、端末2(2-i、i=1~T)及び制御サーバ3と接続されている。
 ここでは、拡張ネットワークインターフェース(拡張NW I/F)60-1は、端末2-1と接続されている。拡張ネットワークインターフェース(拡張NW I/F)60-2は、端末2-2と接続されている。拡張ネットワークインターフェース(拡張NW I/F)60-3は、端末2-3と接続されている。拡張ネットワークインターフェース(拡張NW I/F)60-4は、制御サーバ3と接続されている。
 拡張ネットワークインターフェース(拡張NW I/F)60-1~60-3は、端末2-1~2-3から入力されるパケットを受け付ける。
 例えば、拡張ネットワークインターフェース(拡張NW I/F)60-1は、端末2-1からLANインターフェース(1G MAC)にパケットが入力されると、複数のCPU70(70-y、y=1~N)のうち、どのCPU70(70-y、y=1~N)にパケットを振分けるかを判断し、マルチルートPCIエクスプレス(PCIe)スイッチ50を介して、該当のCPU70(70-y、y=1~N)へパケット転送を行う。
 CPU70(70-y、y=1~N)は、メモリ80(80-y、y=1~N)と接続されている。また、CPU70(70-y、y=1~N)及び転送テーブル81(81-y、y=1~N)は、ネットワークフォワーディングエンジン40と接続されている。
 CPU70(70-y、y=1~N)とメモリ80(80-y、y=1~N)は、それぞれ1対1で対応している。すなわち、CPU70(70-y、y=1~N)とメモリ80(80-y、y=1~N)は、同数である。但し、実際には、複数のCPU70(70-y、y=1~N)の各々が同一のメモリ80(80-y、y=1~N)を共有していても良い。
 CPU70(70-y、y=1~N)は、パケット転送処理を行う。
 メモリ80(80-y、y=1~N)は、大容量のメモリであり、転送テーブル81(81-z、z=1~N)を格納する。
 このように、スイッチノード4において、マルチルートPCIエクスプレス(PCIe)スイッチ50は、大量のメモリ80(80-y、y=1~N)を持つ複数のCPU70(70-y、y=1~N)と、複数の拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)とをそれぞれ接続することで、複数の拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)によるスイッチポートを構成する。
 また、複数の拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)から複数のCPU70(70-y、y=1~N)への負荷分散転送処理を可能とすることで、複数のCPU70(70-y、y=1~N)を用いた多重処理による高速パケット処理の実現、CPUの大容量メモリ空間を用いた大容量のフローテーブルを実現する。
 これにより、スイッチノード4は、ソフトウェアベースのスイッチノードでありながら大容量フローテーブルを構成する高速なスイッチノードを実現する。
 <ハードウェアの例示>
 以下に、本発明に係る通信制御システムを実現するための具体的なハードウェアの例について説明する。
 端末2(2-i、i=1~T)、及び制御サーバ3の例として、PC(パソコン)、アプライアンス(appliance)、シンクライアント端末/サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、端末2(2-i、i=1~T)の他の例として、IP電話機、携帯電話機、スマートフォン、スマートブック、カーナビ(カーナビゲーションシステム)、携帯型ゲーム機、家庭用ゲーム機、携帯型音楽プレーヤー、ハンディターミナル、ガジェット(電子機器)、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電(information home appliance)、OA(Office Automation)機器、店頭端末・高機能コピー機、デジタルサイネージ(Digital Signage:電子看板)等も考えられる。なお、端末2(2-i、i=1~T)、及び制御サーバ3は、中継機器や周辺機器でも良い。
 スイッチノード4の例として、ネットワークスイッチ(network switch)、ルータ(router)、プロキシ(proxy)、ゲートウェイ(gateway)、ファイアウォール(firewall)、ロードバランサ(load balancer:負荷分散装置)、帯域制御装置(packet shaper)、セキュリティ監視制御装置(SCADA:Supervisory Control And Data Acquisition)、ゲートキーパー(gatekeeper)、基地局(base station)、アクセスポイント(AP:Access Point)、通信衛星(CS:Communication Satellite)、或いは、複数の通信ポートを有する計算機等が考えられる。
 端末2(2-i、i=1~T)、制御サーバ3、及びスイッチノード4は、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン(Virtual Machine(VM))でも良い。また、端末2(2-i、i=1~T)、制御サーバ3、及びスイッチノード4は、車両や船舶、航空機等の移動体に搭載されていても良い。
 拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)の例として、LANに対応した基板(マザーボードやI/Oボード)等の半導体集積回路、NIC(Network Interface Card)等のネットワークアダプタ、或いは、同様の拡張カード等が考えられる。ここでは、拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)は、ハードウェアで高速に処理を行うために、ネットワークプロセッサ(Network Processor)を搭載しているものとする。
 CPU70(70-Y、Y=1~N)は、プロセッサ(processor)の一例に過ぎない。CPU70(70-Y、Y=1~N)は、ネットワークプロセッサ(NP:Network Processor)、マイクロプロセッサ(microprocessor)、マイクロコントローラ(microcontroller)、或いは、専用の機能を有する半導体集積回路(LSI:Large Scale Integration)等でも良い。
 メモリ80(80-y、y=1~N)の例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)等のリムーバブルディスクやSDメモリカード(Secure Digital memory card)等の記憶媒体(メディア)等が考えられる。
 但し、実際には、これらの例に限定されない。
 [拡張ネットワークインターフェースの構成(端末側)]
 図7は、端末2-1~2-3のいずれかと接続される拡張ネットワークインターフェース(拡張NW I/F)60-1~60-3の構成を示す。
 拡張ネットワークインターフェース(拡張NW I/F)60-1~60-3の各々は、マルチルートPCIエクスプレス・エンドポイント(PCIe EP)61と、LANインターフェース(1G MAC)62と、CPU振分け処理部63と、PFリソース64(64-y、y=1~N)を備える。
 マルチルートPCIエクスプレス・エンドポイント(PCIe EP)61は、マルチルートPCIエクスプレス(PCIe)スイッチ50と接続されている。
 LANインターフェース(1G MAC)62は、端末2-1~2-3のいずれかとの間で、パケットの入出力を行う。LANインターフェース(1G MAC)とは、1Gbpsのデータ転送に対応したLANインターフェースという意味である。なお、「1G」は一例に過ぎない。
 CPU振分け処理部63は、複数のCPU70(70-y、y=1~N)へのパケットの振分け処理を行う。
 PFリソース64(64-y、y=1~N)は、複数のCPU70(70-y、y=1~N)との間で、DMA転送で、制御メッセージやパケットの送受信を高速に行う。ここでは、PFリソース64(64-y、y=1~N)の例として、PF1リソース64-1と、PF2リソース64-2と、PF3リソース64-3を示す。
 [CPU振分け処理部の構成]
 CPU振分け処理部63は、パケット振分処理部631と、パケット送信バッファ632と、パケット受信バッファ633と、パケット送信処理部634を備える。
 パケット振分処理部631は、パケットのヘッダ部分を抽出し、ヘッダ部分の情報のうち、MACアドレスや、VLANアドレス、IPアドレス等の情報を用いて、フロー単位でハッシュ処理を行う。
 パケット送信バッファ632は、振分け先のCPU70(70-y、y=1~N)へパケットを転送するために、決定された振分け先のCPU70(70-y、y=1~N)へパケットを届けることができるPFリソース64(64-y、y=1~N)のいずれかにパケットを送信する。
 パケット受信バッファ633は、CPU70(70-y、y=1~N)から送信されたパケットを、PFリソース64(64-y、y=1~N)を介して受信し、パケット送信処理部634に送信する。
 パケット送信処理部634は、パケット受信バッファ633から受信したパケットを、端末2(2-i、i=1~T)に送信する。
 [PFリソースの構成]
 PFリソース64(64-y、y=1~N)の各々は、DMAコントローラ641と、CPU宛パケットキュー642と、CPU送信パケットキュー643を備える。
 DMAコントローラ641は、該PFリソース64(64-y、y=1~N)とCPU70(70-y、y=1~N)との間のDMA転送制御を行う。
 CPU宛パケットキュー642は、CPU70(70-y、y=1~N)宛に送信するパケットを保持する。
 CPU送信パケットキュー643は、CPU70(70-y、y=1~N)から送信されたパケットを保持する。
 [CPUとの間のパケット転送処理]
 図8は、端末2(2-i、i=1~T)からパケットが入力され、CPU70(70-y、y=1~N)でパケットが処理され転送される場合の動作を説明するためのフローチャートを示す。
 (1)ステップS101
 端末2(2-i、i=1~T)から拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)にパケットが入力されると、LANインターフェース(1G MAC)62は、パケットを受信し、パケット振分け処理部63のパケット振分処理部631にパケットを転送する。
 (2)ステップS102
 パケット振分処理部631は、パケットを受信すると、パケットのヘッダ部分を抽出する。
 (3)ステップS103
 パケット振分処理部631は、抽出したパケットのヘッダ部分の情報のうち、MACアドレスや、VLANアドレス、IPアドレス等の情報を用いて、フロー単位でハッシュ処理を行う。
 ここでは、パケット振分処理部631は、複数のCPU70(70-y、y=1~N)のどのCPU70(70-y、y=1~N)にそのフローの処理を行わせるかを確定するためにハッシュ処理を行う。
 (4)ステップS104
 パケット振分処理部631は、ハッシュ処理により振分け先のCPU70(70-y、y=1~N)を決定する。
 (5)ステップS105
 パケット振分処理部631は、決定された振分け先のCPU70へパケットを転送するために、パケット送信バッファ632にパケットを送信する。
 パケット送信バッファ632は、決定された振分け先のCPU70へパケットを転送するために、決定された振分け先のCPU70へパケットを届けることができるPFリソース64のCPU宛パケットキュー642のいずれかにパケットを送信する。
 この例では、パケット送信バッファ632は、CPU70-1に転送するため、PF1リソース64-1へパケットを送信する。
 CPU70-1は、パケット送信バッファ632から送信されたパケットがPF1リソース64-1のCPU宛パケットキュー642-1に格納された場合、マルチルートPCIエクスプレス(PCIe)スイッチ50を介して、PF1リソース64-1のDMAコントローラ641-1を制御し、CPU70-1に負荷をかけずに高速にCPU宛パケットキュー642-1に蓄積されたパケットを受信する。
 ここでは、CPU70-1は、PCIエクスプレス・ルート・コンプレックス(PCIe RC)71、マルチルートPCIエクスプレス(PCIe)スイッチ50、及びマルチルートPCIエクスプレス・エンドポイント(PCIe EP)61で構成されたPCIエクスプレス(PCIe)バスを通じて、PF1リソース64-1のDMAコントローラ641-1を制御する。
 [拡張ネットワークインターフェースの構成(制御サーバ側)]
 図9は、制御サーバ3と接続される拡張ネットワークインターフェース(拡張NW I/F)60-4の構成を示す。
 拡張ネットワークインターフェース(拡張NW I/F)60-4は、マルチルートPCIエクスプレス・エンドポイント(PCIe EP)61と、LANインターフェース(1G MAC)62と、PF(ページファイル)リソース64(64-y、y=1~N)と、パケット転送処理部65を備える。
 拡張ネットワークインターフェース(拡張NW I/F)60-1~60-3は、CPU振分け処理部63を備えていたが、拡張ネットワークインターフェース(拡張NW I/F)60-4は、代わりに、パケット転送処理部65を備える。実際には、CPU振分け処理部63とパケット転送処理部65の両方の機能を統合したものでも良い。
 マルチルートPCIエクスプレス・エンドポイント(PCIe EP)61は、マルチルートPCIエクスプレス(PCIe)スイッチ50と接続されている。
 LANインターフェース(1G MAC)62は、制御サーバ3との間で、パケットの入出力を行う。
 PFリソース64(64-y、y=1~N)は、複数のCPU70(70-y、y=1~N)との間で、DMA転送で、制御メッセージやパケットの送受信を高速に行う。ここでは、PFリソース64(64-y、y=1~N)の例として、PF1リソース64-1と、PF2リソース64-2と、PF3リソース64-3を示す。
 パケット転送処理部65は、複数のCPU70(70-y、y=1~N)の各々、並びに、制御サーバ3との間でのパケットの転送処理を行う。
 [パケット転送処理部の構成]
 パケット転送処理部65は、宛先解析処理部651と、パケット送信バッファ652と、パケット受信バッファ653と、パケット送信処理部654を備える。
 宛先解析処理部651は、パケットのヘッダ部分を抽出し、ヘッダ部分の情報のうち、宛先MACアドレスを確認し、スイッチノード4内のCPU70(70-y、y=1~N)が使用しているMACアドレスかどうかをチェックする。宛先解析処理部651は、チェック結果に応じて、パケットの転送先を変更する。
 パケット送信バッファ652は、振分け先のCPU70(70-y、y=1~N)へパケットを転送するために、決定された振分け先のCPU70(70-y、y=1~N)へパケットを届けることができるPFリソース64(64-y、y=1~N)のいずれかにパケットを送信する。
 パケット受信バッファ653は、CPU70(70-y、y=1~N)から送信されたパケットを、PFリソース64(64-y、y=1~N)を介して受信し、パケット送信処理部654に送信する。
 パケット送信処理部654は、パケット受信バッファ653から受信したパケットを、端末2(2-i、i=1~T)に送信する。
 [宛先解析処理]
 図10は、宛先解析処理の動作を説明するためのフローチャートを示す。
 (1)ステップS201
 端末2(2-i、i=1~T)から拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)にパケットが入力されると、LANインターフェース(1G MAC)62は、パケットを受信し、パケット振分け処理部63のパケット振分処理部631にパケットを転送する。
 (2)ステップS202
 宛先解析処理部651は、パケットを受信すると、パケットのヘッダ部分を抽出し、パケットの宛先MACアドレスを確認する。
 (3)ステップS203
 宛先解析処理部651は、宛先MACアドレスがスイッチノード4内のCPU70(70-y、y=1~N)が使用しているMACアドレスかどうかをチェックする。
 (4)ステップS204
 宛先解析処理部651は、宛先MACアドレスがCPU70(70-y、y=1~N)で利用されているMACアドレスである場合、外部にパケットを出力せず、折り返して、パケット送信バッファ652にパケットを出力する。
 (5)ステップS205
 宛先解析処理部651は、宛先MACアドレスがCPU70(70-y、y=1~N)で利用されているMACアドレスではない場合、パケット送信処理部654にパケットを出力する。パケット送信処理部654は、LANインターフェース(1G MAC)62-4を経由し、制御サーバ3にパケットを送信する。
 [拡張ネットワークインターフェースとCPUとの関係]
 拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)は、マルチルート対応であり、端末2(2-i、i=1~T)等から送信されるパケットを受信すると、内部で、CPU70(70-y、y=1~N)の各々でのソフトウェアパケット処理の負荷分散処理と、パケット処理の多重化による高速化を行う。
 拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)は、ハッシュ等を用いて、CPU70(70-y、y=1~N)の各々へのパケットの振分け処理を決定する。
 拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)は、DMAコントローラ641を用いて、CPU70(70-y、y=1~N)の負荷を最小限にするように、マルチルートPCIエクスプレス(PCIe)スイッチ50を介して、高速にパケットを、CPU70(70-y、y=1~N)の各々へ分散して、転送を行う。
 CPU70(70-y、y=1~N)の各々は、受信したパケットを各々ソフトウェア処理で解析し、各CPU70(70-y、y=1~N)に付属する大容量のメモリ80(80-y、y=1~N)に格納された転送テーブル81(81-z、z=1~N)を用いて、テーブル検索を行い宛先出力ポートの決定を行う。
 転送テーブル81(81-z、z=1~N)は、大量のフローの宛先を管理する。
 CPU70(70-y、y=1~N)の各々は、出力ポート決定後は、出力先となる拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)のDMAコントローラ641を制御し、CPU負荷を最小限に高速に該当パケットを、マルチルートPCIエクスプレス(PCIe)スイッチ50を介して転送する。
 また、CPU70(70-y、y=1~N)の各々は、転送テーブル81(81-z、z=1~N)の検索の結果、出力ポートが決定しない場合は、制御サーバ3に、拡張ネットワークインターフェース(拡張NW I/F)60-4を介してパケットを転送し、出力先の問合せを行う。
 CPU70(70-y、y=1~N)の各々は、問合せの結果、宛先が決まると、転送テーブル81(81-z、z=1~N)に該当フローの宛先情報を格納する。
 この際、CPU70(70-y、y=1~N)の各々は、メモリ80(80-y、y=1~N)で管理される転送テーブル81(81-z、z=1~N)が同じ情報になるように同期処理を行い、検索処理の負荷分散を図ることを可能にする。
 従って、従来のネットワークシステムのような、処理能力に限界がある単一のCPUベースで処理を行うソフトウェアベースのスイッチ処理を行わず、転送テーブル81(81-z、z=1~N)容量が限られるハードウェアベースのスイッチ処理を行わないことで、大容量の転送テーブル81(81-z、z=1~N)を対応した高速スイッチ処理が可能なソフトウェアベースのスイッチノード4を実現することが可能になる。
 また、スイッチノード4は、一般のコンピュータでも利用される汎用性が高く安価で高性能なCPU、メモリ、PCIエクスプレス(PCIe)スイッチ、ネットワークインターフェースで構成することができ、コストの面で有利であり、ソフトウェアベースであるため変更の自由度が高いといったメリットもある。
 [CPUの構成]
 図11は、CPU70(70-y、y=1~N)で実行されるソフトウェアの構成図を示す。
 CPU70(70-y、y=1~N)の各々は、PCIエクスプレス・ルート・コンプレックス(PCIe RC)71と、ネットワークインターフェースドライバ72と、パケット解析処理部73と、テーブル検索部74と、パケットバッファ処理部75と、サービス内容問合せ処理部76と、暗号処理部77と、拡張ネットワークサービス設定部78と、マルチCPU転送テーブル同期処理部79を備える。
 PCIエクスプレス・ルート・コンプレックス(PCIe RC)71は、マルチルートPCIエクスプレス(PCIe)スイッチ50と接続されている。
 ネットワークインターフェースドライバ72、パケット解析処理部73、テーブル検索部74、パケットバッファ処理部75、サービス内容問合せ処理部76、暗号処理部77、拡張ネットワークサービス設定部78、及びマルチCPU転送テーブル同期処理部79は、各CPU70(70-y、y=1~N)がソフトウェアを実行することにより実現される。
 ネットワークインターフェースドライバ72は、拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)を制御する。
 パケット解析処理部73は、拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)から入力されるパケットの解析処理を行う。
 テーブル検索部74は、パケットの転送処理方法を決定するための転送テーブル81(81-z、z=1~N)を検索する。
 パケットバッファ処理部75は、スイッチ処理、並びに、処理未決定のパケットに関して、制御サーバ3にパケットの処理内容を問い合わせるか否か決定するまでパケットを格納する。
 サービス内容問合せ処理部76は、制御サーバ3にパケットの処理内容を問い合わせる。
 暗号処理部77は、制御サーバ3と暗号通信を行う。
 拡張ネットワークサービス設定部78は、制御サーバ3からの指示に従って、転送テーブル81(81-z、z=1~N)を設定し拡張ネットワークサービスの処理を行う。
 マルチCPU転送テーブル同期処理部79は、制御サーバ3からの指示を他のCPU70(70-y、y=1~N)に伝え、転送テーブル81(81-z、z=1~N)の同期処理を行う。
 [マルチCPU転送テーブル同期処理]
 図12は、マルチCPU転送テーブル同期処理の動作を説明するためのフローチャートを示す。
 (1)ステップS301
 サービス内容問合せ処理部76は、制御サーバ3へサービス処理方法(処理内容)を問い合わせる。ここでは、サービス内容問合せ処理部76は、サービス処理方法の問合せに関するパケットを暗号処理部77に送る。暗号処理部77は、サービス処理方法の問合せに関するパケットを暗号化してネットワークインターフェースドライバ72に送る。ネットワークインターフェースドライバ72は、暗号化されたパケットを、PCIエクスプレス・ルート・コンプレックス(PCIe RC)71を介して、マルチルートPCIエクスプレス(PCIe)スイッチ50に送る。マルチルートPCIエクスプレス(PCIe)スイッチ50は、暗号化されたパケットを、制御サーバ3へ送信する。
 (2)ステップS302
 制御サーバ3は、サービス処理方法を決定する。ここでは、制御サーバ3のパケット送受信処理部31は、暗号化されたパケットを受信し、暗号処理部32に送る。暗号処理部32は、暗号化されたパケットを復号し、サービス処理方法の問合せに関するパケットを拡張ネットワークサービス処理部33に送る。拡張ネットワークサービス処理部33は、サービス処理方法の問合せに関するパケットを基に、サービス処理方法を決定する。
 (3)ステップS303
 制御サーバ3は、決定されたサービス処理方法に従い、転送テーブル81(81-z、z=1~N)へのエントリ追加処理を行う。ここでは、制御サーバ3は、上記のステップS301の逆の流れで、決定されたサービス処理方法に基づくエントリ追加要求を、サービス内容問合せ処理部76に送信する。サービス内容問合せ処理部76は、エントリ追加要求を拡張ネットワークサービス設定部78に通知する。
 (4)ステップS304
 拡張ネットワークサービス設定部78は、エントリ追加要求に従って、自CPU上の転送テーブル81(81-z、z=1~N)の設定を行う。ここでは、拡張ネットワークサービス設定部78は、エントリ追加要求に従って、自CPUに付属する大容量のメモリ80(80-y、y=1~N)に格納された転送テーブル81(81-z、z=1~N)の設定を行う。
 (5)ステップS305
 拡張ネットワークサービス設定部78は、マルチCPU転送テーブル同期処理部79に、自CPU上の転送テーブル81(81-z、z=1~N)の内容を通知する。マルチCPU転送テーブル同期処理部79は、自CPU上の転送テーブル設定を基に、他CPUへの転送テーブルの書込みを依頼する。ここでは、拡張ネットワークサービス設定部78は、自CPU上の転送テーブル81(81-z、z=1~N)の内容を、マルチCPU転送テーブル同期処理部79に通知する。マルチCPU転送テーブル同期処理部79は、他CPU上の転送テーブル81(81-z、z=1~N)を自CPU上の転送テーブル81(81-z、z=1~N)と同期させるために、他CPUに対して、自CPU上の転送テーブル81(81-z、z=1~N)の全エントリを通知し、他CPU上の転送テーブル81(81-z、z=1~N)への書込みを依頼する。
 (6)ステップS306
 マルチCPU転送テーブル同期処理部79は、他CPUから書込み完了応答があるまで待機し、他CPUから書込み完了応答があれば、処理を終了する。
 [転送テーブルの構成]
 図13は、転送テーブル81(81-z、z=1~N)の構成を示している。
 転送テーブル81(81-z、z=1~N)は、大量のフローを管理することができる。ここでは、転送テーブル81(81-z、z=1~N)は、6400000件のエントリを管理している。
 なお、「MAC DA」は、宛先MACアドレスを示す。「MAC SA」は、送信元MACアドレスを示す。「IP DA」は、宛先IPアドレスを示す。「IP SA」は、送信元IPアドレスを示す。
 [CPUにおけるソフトウェアでのパケット処理]
 以下に、CPU70(70-y、y=1~N)において、ソフトウェアでパケットの処理を行う場合の動作について説明する。
 CPU70(70-y、y=1~N)において、拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)を制御するネットワークインターフェースドライバ72は、PCIエクスプレス・ルート・コンプレックス(PCIe RC)71を介して、DMAコントローラ641を制御し、CPU70(70-y、y=1~N)と拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)間でのデータの送受信を行う。
 ネットワークインターフェースドライバ72は、PCIエクスプレス・ルート・コンプレックス(PCIe RC)71を介して、拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)からパケットを受信した後、スイッチ動作を行うために、パケット解析処理部73に転送する。
 パケット解析処理部73は、パケットのヘッダ情報等を抽出し、抽出したヘッダ情報等を解析し、ヘッダ情報を用いて検索キーを作成し、テーブル検索部74に渡す。
 テーブル検索部74は、パケットに対する処理方法を決定するために、検索キーを用いて、大容量のメモリ80(80-y、y=1~N)に格納されている転送テーブル81(81-z、z=1~N)を検索する。
 テーブル検索部74は、転送テーブル81(81-z、z=1~N)を検索した結果、該当(ヒット)したエントリが存在した場合、該エントリのアクションを基に、パケットの出力ポート先、並びに、ヘッダの書換処理等の処理方法を決定する。
 その後、テーブル検索部74は、パケットバッファ処理部75へパケットを転送する。
 その後、パケットバッファ処理部75は、処理方法が決定している際、パケットの処理を行い、スイッチ動作のため、該当する出力ポートにパケットを出力する動作を行う。パケットバッファ処理部75は、決定した処理方法に従って、該当する出力ポートにパケットを出力するため、ネットワークインターフェースドライバ72にパケットを転送する。
 ネットワークインターフェースドライバ72は、PCIエクスプレス・ルート・コンプレックス(PCIe RC)71を介して、DMAコントローラ641を制御し、出力ポート先となる拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)のCPU送信パケットキュー643にパケットを出力する。
 更に、ネットワークインターフェースドライバ72は、DMAコントローラ641を制御し、CPU送信パケットキュー643に送信されたパケットを、パケット受信バッファ633に格納する。
 パケット送信処理部634は、パケット受信バッファ633に格納されたパケットを読み出し、LANインターフェース(1G MAC)62を介して、出力先の端末2(2-i、i=1~T)に送信する。
 また、テーブル検索部74は、転送テーブル81(81-z、z=1~N)を検索した結果、該当(ヒット)したエントリが存在しない場合、制御サーバ3にパケットの処理方法を問合せ、処理方法を確定する。
 その際、サービス内容問合せ処理部76は、暗号処理部77を利用してパケット情報を暗号化した上で、ネットワークインターフェースドライバ72に転送する。
 ネットワークインターフェースドライバ72は、PCIエクスプレス・ルート・コンプレックス(PCIe RC)71を介して、拡張ネットワークインターフェース(拡張NW I/F)60-4のDMAコントローラ641を制御し、暗号化されたパケット情報を、拡張ネットワークインターフェース(拡張NW I/F)60-4のCPU送信パケットキュー643に送信する。
 ネットワークインターフェースドライバ72は、DMAコントローラ641を制御し、CPU送信パケットキュー643に送信されたパケット(暗号化されたパケット情報)を、パケット転送処理部65のパケット受信バッファ653に送信する。
 その後、ネットワークインターフェースドライバ72は、DMAコントローラ641を制御し、パケット受信バッファ653に送信されたパケット(暗号化されたパケット情報)を、宛先解析処理部651に送信する。
 宛先解析処理部651は、パケット(暗号化されたパケット情報)を受信すると、パケットの宛先MACアドレスを確認し、スイッチノード4内のCPU70(70-y、y=1~N)が使用しているMACアドレスかどうかをチェックする。
 宛先解析処理部651は、もしCPU70(70-y、y=1~N)で利用されているMACアドレスの場合、外部にパケットを出力せず、折り返して、パケット送信バッファ652へパケット(暗号化されたパケット情報)を出力する。
 宛先解析処理部651は、制御サーバ3宛のパケットのように、異なるMACアドレスの場合、パケット送信処理部654に送り、LANインターフェース(1G MAC)62-4を経由し、制御サーバ3にパケット(暗号化されたパケット情報)を送信する。
 制御サーバ3のパケット送受信処理部31は、送信されたパケット(暗号化されたパケット情報)を受信し、暗号処理部32に転送する。
 暗号処理部32は、暗号化されたパケット情報を復号し、パケット情報を拡張ネットワークサービス処理部33へ送信し、パケットに対する処理方法を決定する。
 処理方法決定後、再度暗号処理部32は、処理方法に関する情報のパケットを暗号化し、パケット送受信処理部31へ送る。パケット送受信処理部31は、拡張ネットワークインターフェース(拡張NW I/F)60-4へパケットを送信し、暗号化されたパケットをスイッチノード4へ応答する。
 スイッチノード4の拡張ネットワークインターフェース(拡張NW I/F)60-4のLANインターフェース(1G MAC)62-4は、応答パケットを受信し、パケット送信バッファ652に応答パケットを格納する。
 スイッチノード4のCPU70(70-y、y=1~N)のネットワークインターフェースドライバ72は、DMAコントローラ641を制御し、パケット送信バッファ652に格納された応答パケットを受信し、暗号処理部77に送る。暗号処理部77は、応答パケットを復号してサービス内容問合せ処理部76に送信する。
 サービス内容問合せ処理部76は、制御サーバ3からの応答パケットにより、処理方法が確定すると、拡張ネットワークサービス設定部78に処理内容を通知する。
 拡張ネットワークサービス設定部78は、パケットヘッダ書換処理を行い、指示されたパケット出力ポートにパケットを送信し、パケットのスイッチ動作を行う。
 また、拡張ネットワークサービス設定部78は、次回パケットから転送テーブル81(81-z、z=1~N)での処理方法を確定できるように、制御サーバ3から得たパケット処理方法を、自CPUに付随するメモリ80の転送テーブル81(81-z、z=1~N)に書き込む。
 また、拡張ネットワークサービス設定部78は、複数のCPU70(70-y、y=1~N)で同様の処理を行えるように、マルチCPU転送テーブル同期処理部79に同期処理を要求する。
 マルチCPU転送テーブル同期処理部79は、同期処理の要求に応じて、自CPU70(70-y、y=1~N)の転送テーブル81(81-z、z=1~N)の情報を基に、他のCPU70(70-y、y=1~N)の転送テーブル81(81-z、z=1~N)の情報を更新し、複数のCPU間の転送テーブル81(81-z、z=1~N)の同期処理を行う。
 [本実施形態の特徴]
 以上のように、マルチルートPCIエクスプレス(PCIe)スイッチを用いて、各CPUへのパケットの振分け処理を実現可能にすることができる。
 また、拡張ネットワークインターフェース(拡張NW I/F)を用いて、複数のCPUを用いたソフトウェアベースの高速なスイッチ動作処理を実現可能にすることができる。
 また、CPUは大容量のメモリを搭載することが可能なため、大容量の転送テーブルの構築が可能で、大量のフローを管理可能な高速なソフトウェアベースのスイッチノード構成が可能となる。
 本発明では、「PCI-SIG」で規定されている複数のCPU70(70-y、y=1~N)と複数のI/O(Input/Output)を、接続可能な標準のマルチルート対応のPCIエクスプレス(PCIe)スイッチを利用する。
 また、本発明では、ネットワークプロセッサ等を搭載したパケットに対して解析を行い、CPUへ処理を振分けることが可能な、マルチルートに対応する拡張ネットワークインターフェース(拡張NW I/F)カードを利用する。
 また、本発明では、パケット処理を行うための汎用的なCPUとメモリを利用する。
 本発明では、ソフトウェアベースでありながら、CPU間の転送テーブルの同期化と複数のCPUによるパケット処理を行うことで、高速なパケット処理を実現する。
 また、本発明では、PCIエクスプレス(PCIe)ベースによるDMAコントローラを利用した、拡張ネットワークインターフェース(拡張NW I/F)とCPU間、並びに、複数のCPU間での高速なパケットの送受信を行う。
 これにより、大容量の転送テーブルを持つ、高速なソフトウェアベースのスイッチノードの構成が可能になる。
 また、スイッチノードを構成するハードウェア部品は、標準規格の部品であるため、装置のコスト削減効果が期待できると共に、CPUを増やすことで、性能面のスケーラビリティと、ソフトウェアベースであるため、柔軟性が高いスイッチノードの構成が期待できる。
 本発明は、1000万フロー等、大量のフローの管理を必要とするネットワーク装置や、高速で複雑なパケット処理を必要とするネットワーク装置、或いは、多数のサーバを利用した高機能ネットワーク装置に適用することができる。
 本発明は、外部に制御サーバを用いない構成においても適用することができ、高性能なスイッチノードを実現することができる。
 <第1の実施例>
 図14に、第1の実施例におけるスイッチノードの構成例を示す。
 本実施例に係る通信制御システムは、端末2(2-i、i=1~T)と、制御サーバ3と、スイッチノード5を含む。
 端末2(2-i、i=1~T)、及び制御サーバ3については、先に説明した通りである。
 スイッチノード5は、LANスイッチ100と、CPU及びメモリ110(110-y、y=1~N)と、PCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)と、シングルルートPCIエクスプレス・エンドポイント(PCIe EP)及び拡張ネットワークインターフェース(拡張NW I/F)130(130-x、x=1~(M+1))と、マルチルートPCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)140(140-x、x=1~(M+1))を備える。
 LANスイッチ100は、イーサネットスイッチ(Ethernet(登録商標) switch)であり、PCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)と、シングルルートPCIエクスプレス・エンドポイント(PCIe EP)及び拡張ネットワークインターフェース(拡張NW I/F)130(130-x、x=1~(M+1))とを接続する。
 CPU及びメモリ110(110-y、y=1~N)は、CPU70(70-y、y=1~N)とメモリ80(80-y、y=1~N)を組み合わせたものに相当する。
 PCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)は、PCIエクスプレス(PCIe)スイッチとネットワーク仮想化インターフェース(NW仮想化I/F)を組み合わせたものに相当する。PCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)は、LANスイッチ100と、CPU及びメモリ110(110-y、y=1~N)とを接続する。
 シングルルートPCIエクスプレス・エンドポイント(PCIe EP)及び拡張ネットワークインターフェース(拡張NW I/F)130(130-x、x=1~(M+1))は、シングルルートPCIエクスプレス・エンドポイント(PCIe EP)と拡張ネットワークインターフェース(拡張NW I/F)60(60-x、x=1~M)を組み合わせたものに相当する。シングルルートPCIエクスプレス・エンドポイント(PCIe EP)及び拡張ネットワークインターフェース(拡張NW I/F)130(130-x、x=1~(M+1))は、端末2(2-i、i=1~T)と、マルチルートPCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)140(140-x、x=1~(M+1))を接続する。
 マルチルートPCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)140(140-x、x=1~(M+1))は、マルチルートPCIエクスプレス(PCIe)スイッチ50とネットワーク仮想化インターフェース(NW仮想化I/F)を組み合わせたものに相当する。マルチルートPCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)140(140-x、x=1~(M+1))は、LANスイッチ100と、シングルルートPCIエクスプレス・エンドポイント(PCIe EP)及び拡張ネットワークインターフェース(拡張NW I/F)130(130-x、x=1~(M+1))を接続する。
 本発明では、CPUの数を増やせば増やすほど、スイッチ処理能力の向上が期待できる。
 「PCI-SIG」規定に準拠したマルチルート対応のPCIエクスプレス(PCIe)スイッチ相当のものであれば、同様に利用可能であり、LANスイッチを用いた、マルチルート対応のスイッチを構成し、シングルルートの拡張ネットワークインターフェース(拡張NW I/F)を仮想化して、複数のCPUからアクセス可能し、マルチルートと同等なシステム構成にも適用可能である。
 この場合、スイッチはLAN上に構成されるため、非常に大規模な仮想スイッチを構成し、そこにCPUとメモリを持つ大量のサーバと、ネットワークインターフェースを接続することで、非常に大規模で高性能なスイッチノードを構成することができる。
 <第2の実施例>
 また、図15に、第2の実施例におけるスイッチノードの構成例を示す。
 図15は、図14のCPU70(70-y、y=1~N)部分を大量のプロセッサを搭載したGPU(Graphics Processing Unit)に変更した場合の構成である。
 GPUを用いた場合、CPUよりも更にパケット処理の高速化が期待でき、PCIエクスプレス(PCIe)に接続できるため、CPUの代わりにパケット処理をGPUに行わせることも可能である。
 但し、GPUはI/Oであるため、1つはマスターCPUとして、余分にCPUの接続が必要である。
 本実施例に係る通信制御システムは、端末2(2-i、i=1~T)と、制御サーバ3と、スイッチノード6を含む。
 端末2(2-i、i=1~T)、及び制御サーバ3については、先に説明した通りである。
 スイッチノード6は、LANスイッチ100と、CPU及びメモリ110と、PCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)と、シングルルートPCIエクスプレス・エンドポイント(PCIe EP)及び拡張ネットワークインターフェース(拡張NW I/F)130(130-x、x=1~(M+1))と、マルチルートPCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)140(140-x、x=1~(M+1))と、GPU及びメモリ150(150-y、y=1~N)と、エクスプレス(PCI Express)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)を備える。
 LANスイッチ100、CPU及びメモリ110、PCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)、シングルルートPCIエクスプレス・エンドポイント(PCIe EP)及び拡張ネットワークインターフェース(拡張NW I/F)130(130-x、x=1~(M+1))、マルチルートPCIエクスプレス(PCIe)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)140(140-x、x=1~(M+1))については、図14に示す第1の実施例と同じである。
 GPU及びメモリ150(150-y、y=1~N)は、GPU及びメモリ150(150-y、y=1~N)を組み合わせたものに相当する。
 エクスプレス(PCI Express)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)は、エクスプレス(PCI Express)スイッチとネットワーク仮想化インターフェース(NW仮想化I/F)を組み合わせたものに相当する。エクスプレス(PCI Express)スイッチ及びネットワーク仮想化インターフェース(NW仮想化I/F)120(120-y、y=1~N)は、LANスイッチ100と、GPU及びメモリ150(150-y、y=1~N)とを接続する。
 <まとめ>
 本発明は、ソフトウェアベースのネットワークスイッチノードにおいて、「PCI-SIG」で規定されているマルチルートPCIエクスプレス(PCIe)スイッチを活用した、大量の転送テーブルを管理でき、高性能なパケット転送処理を実現するノード構成に関する。
 本発明は、ソフトウェアベースのスイッチノードにおいて、大容量のフローテーブルを構成し高速なパケットスイッチ処理を行い、外部の制御サーバと接続し高機能なサービス・プロトコル処理を、PCIエクスプレス(PCIe)で規定されているマルチルート対応のスイッチ並びにネットワークインターフェースを活用して実現する。
 本発明に係るスイッチノードは、マルチルートPCIエクスプレス(PCIe)スイッチと、多数のCPUと、多数のネットワークインターフェースカードを用いて、ソフトウェアベースで構築される。
 本発明に係るスイッチノードは、ネットワークインターフェース内で、パケットの処理負荷分散を行うために、CPUへの処理振分けを行い、マルチルートPCIエクスプレス(PCIe)スイッチを用いて、複数のCPUへ処理の負荷分散を行う。
 本発明に係るスイッチノードは、複数のCPU間で転送テーブルの同期を、マルチルートPCIエクスプレス(PCIe)スイッチを介して、折り返し可能な拡張インターフェースカードを利用して、高速に同期処理を行う。
 <備考>
 以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
 なお、本出願は、日本出願番号2011-063441に基づく優先権を主張するものであり、日本出願番号2011-063441における開示内容は引用により本出願に組み込まれる。

Claims (10)

  1.  パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うスイッチノードと、
     前記スイッチノードのフローテーブルに対して、前記フローエントリの設定を行う制御サーバと
    を含み、
     前記スイッチノードは、
     大容量のメモリを持つ複数のプロセッサと複数の拡張ネットワークインターフェースとを、マルチルート対応のPCIエクスプレススイッチで接続し、複数の拡張ネットワークインターフェースによるスイッチポートを構成する手段と、
     前記複数の拡張ネットワークインターフェースから前記複数のプロセッサへの負荷分散転送処理を行い、前記複数のプロセッサを用いた多重処理による高速パケット処理を行う手段と、
     前記複数のプロセッサの大容量のメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量のフローテーブルを構成する手段と
    を具備する
     通信制御システム。
  2.  請求項1に記載の通信制御システムであって、
     前記スイッチノードは、
     前記複数の拡張ネットワークインターフェースのいずれかでパケットを受信する手段と、
     前記パケットを受信した拡張ネットワークインターフェース内で、ハッシュを用いて前記複数のプロセッサへの振分け処理を決定し、プロセッサでのソフトウェアパケット処理の負荷分散処理とパケット処理の多重化による高速化を行う手段と、
     前記PCIエクスプレススイッチを介して、前記拡張ネットワークインターフェースのDMAコントローラを用いて、前記パケットを前記複数のプロセッサへ分散して転送を行う手段と
    を更に具備し、
     前記複数のプロセッサの各々は、
     受信したパケットをソフトウェア処理で解析する手段と、
     該プロセッサに付属する大容量のメモリを用いて構成された大量のフローの宛先を管理するフローテーブルを用いて、テーブル検索を行い宛先出力ポートの決定を行う手段と、
     前記宛先出力ポートの決定後、出力先となる拡張ネットワークインターフェースのDMAコントローラを制御し、前記PCIエクスプレススイッチを介して、前記パケットを転送する手段と、
     前記フローテーブルの検索の結果、前記宛先出力ポートが決定しない場合、前記スイッチノードの拡張ネットワークインターフェースを介して、前記パケットを制御サーバに転送し、出力先の問合せを行う手段と、
     問合せの結果、宛先が決まると、前記フローテーブルに該当フローの宛先情報を格納する手段と、
     前記複数のプロセッサ間でのフローテーブルの同期処理を行い、前記複数のプロセッサの各々で管理されるフローテーブルに同じ情報を格納して、検索処理の負荷分散を図る手段と
    を具備する
     通信制御システム。
  3.  パケットを受信する複数の拡張ネットワークインターフェースと、
     大容量のメモリを持つ複数のプロセッサと、
     前記複数のプロセッサと複数の拡張ネットワークインターフェースとを接続するマルチルート対応のPCIエクスプレススイッチと
    を具備し、
     前記複数の拡張ネットワークインターフェースの各々は、
     パケットの入出力を行うLANインターフェースと、
     前記複数のプロセッサへのパケットの振分け処理、複数のプロセッサ間でのパケット転送並びに制御サーバへのパケットの転送処理のうち、少なくとも1つの転送処理を行うパケット転送処理部と、
     前記複数プロセッサとDMA転送でパケットの送受信を高速に行うための複数のPFリソースと、
     前記PCIエクスプレススイッチと接続するためのPCIエクスプレス・エンドポイントと
    を具備する
     スイッチノード。
  4.  請求項3に記載のスイッチノードであって、
     前記複数のプロセッサの各々は、
     PCIエクスプレス・ルート・コンプレックスを介して前記PCIエクスプレススイッチと接続し、前記拡張ネットワークインターフェースを制御するネットワークインターフェースドライバと、
     前記拡張ネットワークインターフェースから入力されるパケットの解析処理を行うパケット解析処理部と、
     前記パケットの解析結果を基に、前記パケットの転送処理方法を決定するためのフローテーブルを検索するテーブル検索部と、
     スイッチ処理並びに処理未決定のパケットに関して制御サーバに問合せ、処理方法を決定するまでパケットを格納しておくためのパケットバッファ処理部と、
     前記制御サーバにパケットの処理内容を問い合わせるためのサービス内容問合せ処理部と、
     前記制御サーバと暗号通信を行うための暗号処理部と、
     前記制御サーバからの指示に従って、前記フローテーブルを設定し、前記拡張ネットワークサービスの処理を行うための拡張ネットワークサービス設定部と、
     前記制御サーバからの指示を他のプロセッサに伝え、前記複数のプロセッサ間でのフローテーブルの同期処理を行うためのマルチプロセッサ転送テーブル同期処理部と
    を具備する
     スイッチノード。
  5.  請求項3に記載のスイッチノードであって、
     前記パケット処理部は、
     パケットを受信すると、パケットの宛先MACアドレスを確認し、該スイッチノード内のプロセッサが使用しているMACアドレスかどうかをチェックする手段と、
     該スイッチノード内のプロセッサが使用しているMACアドレスである場合、外部にパケットを出力せず、折り返して、前記PFリソースへパケットを送信する手段と、
     該スイッチノード内のプロセッサが使用しているMACアドレスではない場合、前記LANインターフェースを経由し、前記制御サーバにパケットを送信し、前記制御サーバに該パケットの処理内容を問い合わせて、前記制御サーバからの応答パケットを、前記PFリソースへ送信する手段と
    を更に具備する
     スイッチノード。
  6.  制御サーバから自身のフローテーブルに設定された、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うスイッチノードにおける通信制御方法であって、
     大容量のメモリを持つ複数のプロセッサと複数の拡張ネットワークインターフェースとを、マルチルート対応のPCIエクスプレススイッチで接続し、複数の拡張ネットワークインターフェースによるスイッチポートを構成することと、
     前記複数の拡張ネットワークインターフェースから前記複数のプロセッサへの負荷分散転送処理を行い、前記複数のプロセッサを用いた多重処理による高速パケット処理を行うことと、
     前記複数のプロセッサの大容量のメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量のフローテーブルを構成することと
    を含む
     通信制御方法。
  7.  請求項6に記載の通信制御方法であって、
     前記複数の拡張ネットワークインターフェースのいずれかでパケットを受信することと、
     前記パケットを受信した拡張ネットワークインターフェース内で、ハッシュを用いて前記複数のプロセッサへの振分け処理を決定し、プロセッサでのソフトウェアパケット処理の負荷分散処理とパケット処理の多重化による高速化を行うことと、
     前記PCIエクスプレススイッチを介して、前記拡張ネットワークインターフェースのDMAコントローラを用いて、前記パケットを前記複数のプロセッサへ分散して転送を行うことと、
     前記複数のプロセッサの各々において、
     受信したパケットをソフトウェア処理で解析することと、
     該プロセッサに付属する大容量のメモリを用いて構成された、大量のフローの宛先を管理するフローテーブルを用いて、テーブル検索を行い宛先出力ポートの決定を行うことと、
     前記宛先出力ポートの決定後、出力先となる拡張ネットワークインターフェースのDMAコントローラを制御し、前記PCIエクスプレススイッチを介して、前記パケットを転送することと、
     前記フローテーブルの検索の結果、前記宛先出力ポートが決定しない場合、前記スイッチノードの拡張ネットワークインターフェースを介して、前記パケットを制御サーバに転送し、出力先の問合せを行うことと、
     問合せの結果、宛先が決まると、前記フローテーブルに該当フローの宛先情報を格納することと、
     前記複数のプロセッサ間でのフローテーブルの同期処理を行い、前記複数のプロセッサの各々で管理されるフローテーブルに同じ情報を格納して、検索処理の負荷分散を図ることと
    を更に含む
     通信制御方法。
  8.  パケットを受信する複数の拡張ネットワークインターフェースと、大容量のメモリを持つ複数のプロセッサと、がマルチルート対応のPCIエクスプレススイッチを介して接続されており、制御サーバから自身のフローテーブルに設定された、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うスイッチノードにより実行されるプログラムを格納した記憶媒体であって、
     前記複数の拡張ネットワークインターフェースのいずれかにおいて、端末からパケットを受信すると、パケットのヘッダ部分を抽出するステップと、
     前記抽出したパケットのヘッダ部分の情報のうち、MACアドレス、VLANアドレス、IPアドレスの少なくとも1つの情報を用いて、フロー単位でハッシュ処理を行うステップと、
     前記ハッシュ処理により振分け先のプロセッサを決定するステップと、
     前記決定された振分け先のプロセッサに対応するPFリソースのパケットキューにパケットを送信するステップと、
     前記決定された振分け先のプロセッサからの制御に応じて、前記決定された振分け先のプロセッサへパケットをDMA転送するステップと
    をスイッチノードに実行させるためのプログラムを格納した
     記憶媒体。
  9.  請求項8に記載の記憶媒体であって、
     パケットを受信すると、パケットの宛先MACアドレスを確認し、該スイッチノード内のプロセッサが使用しているMACアドレスかどうかをチェックするステップと、
     該スイッチノード内のプロセッサが使用しているMACアドレスである場合、外部にパケットを出力せず、折り返して、前記PFリソースへパケットを送信するステップと、
     該スイッチノード内のプロセッサが使用しているMACアドレスではない場合、前記制御サーバにパケットを送信し、前記制御サーバに該パケットの処理内容を問い合わせて、前記制御サーバからの応答パケットを、前記PFリソースへ送信するステップと
    を更にスイッチノードに実行させるためのプログラムを格納した
     記憶媒体。
  10.  請求項9に記載の記憶媒体であって、
     前記制御サーバにより決定されたサービス処理方法に基づくエントリ追加要求に従って、自CPUに付属する大容量のメモリに格納されたフローテーブルの設定を行うステップと、
     前記フローテーブルの設定を基に、他CPUへのフローテーブルの書込みを行い、複数のプロセッサ間でのフローテーブルの同期処理を行うステップと
    を更にスイッチノードに実行させるためのプログラムを格納した
     記憶媒体。
PCT/JP2012/057176 2011-03-23 2012-03-21 通信制御システム、スイッチノード、及び通信制御方法 WO2012128282A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2013505986A JP5601601B2 (ja) 2011-03-23 2012-03-21 通信制御システム、スイッチノード、及び通信制御方法
KR1020137024963A KR101559644B1 (ko) 2011-03-23 2012-03-21 통신 제어 시스템, 스위치 노드 및 통신 제어 방법
CN201280014681.6A CN103444138B (zh) 2011-03-23 2012-03-21 通信控制系统、交换节点以及通信控制方法
US14/006,651 US9407577B2 (en) 2011-03-23 2012-03-21 Communication control system, switch node and communication control method
EP12761361.0A EP2690831A4 (en) 2011-03-23 2012-03-21 COMMUNICATION CONTROL SYSTEM, COMMUNICATION NODES AND COMMUNICATION CONTROL METHOD
RU2013147150/08A RU2584449C2 (ru) 2011-03-23 2012-03-21 Система управления связью, коммутационный узел и способ управления связью

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011063441 2011-03-23
JP2011-063441 2011-03-23

Publications (1)

Publication Number Publication Date
WO2012128282A1 true WO2012128282A1 (ja) 2012-09-27

Family

ID=46879424

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/057176 WO2012128282A1 (ja) 2011-03-23 2012-03-21 通信制御システム、スイッチノード、及び通信制御方法

Country Status (7)

Country Link
US (1) US9407577B2 (ja)
EP (1) EP2690831A4 (ja)
JP (1) JP5601601B2 (ja)
KR (1) KR101559644B1 (ja)
CN (1) CN103444138B (ja)
RU (1) RU2584449C2 (ja)
WO (1) WO2012128282A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428094A (zh) * 2013-08-12 2013-12-04 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置
CN103596649A (zh) * 2013-04-25 2014-02-19 华为技术有限公司 一种在虚拟局域网中通信的方法、设备和系统
WO2015194534A1 (ja) * 2014-06-17 2015-12-23 日本電気株式会社 スイッチ装置とコンピュータシステムと方法並びにプログラム
CN108810182A (zh) * 2018-04-28 2018-11-13 深圳市德赛微电子技术有限公司 一种基于openflow系统的NAT流表动态学习及配置方法
US10305777B2 (en) 2014-06-30 2019-05-28 Huawei Technologies Co., Ltd. Flow entry configuration method, apparatus, and system
US10911375B2 (en) 2018-04-25 2021-02-02 Fujitsu Limited Processor and information processing apparatus for checking interconnects among a plurality of processors
WO2022168581A1 (ja) * 2021-02-02 2022-08-11 株式会社オートネットワーク技術研究所 車載装置、通信速度の制御方法、及びプログラム
WO2023233574A1 (ja) * 2022-06-01 2023-12-07 日本電信電話株式会社 情報処理システム

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5928087B2 (ja) * 2012-03-29 2016-06-01 富士通株式会社 スイッチ、情報処理装置および通信制御方法
US10097481B2 (en) 2012-06-29 2018-10-09 Juniper Networks, Inc. Methods and apparatus for providing services in distributed switch
US10129182B2 (en) * 2012-06-29 2018-11-13 Juniper Networks, Inc. Methods and apparatus for providing services in distributed switch
CN104038425B (zh) * 2013-03-06 2018-01-02 阿里巴巴集团控股有限公司 转发以太网报文的方法和装置
US9319349B2 (en) * 2013-06-20 2016-04-19 Micron Technology, Inc. Encapsulation enabled PCIE virtualisation
CN104702496A (zh) * 2013-12-10 2015-06-10 财团法人资讯工业策进会 封包交换系统及方法
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
WO2015147859A1 (en) 2014-03-28 2015-10-01 Hewlett-Packard Development Company, L.P. Reconciling information in a controller and a node
WO2015167479A1 (en) 2014-04-29 2015-11-05 Hewlett-Packard Development Company, L.P. Efficient routing in software defined networks
US9635146B2 (en) 2014-06-19 2017-04-25 Cavium, Inc. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US9961167B2 (en) * 2014-06-19 2018-05-01 Cavium, Inc. Method of modifying packets to a generic format for enabling programmable modifications and an apparatus thereof
KR102398213B1 (ko) * 2015-03-09 2022-05-17 삼성전자주식회사 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법
US20170004802A1 (en) * 2015-07-01 2017-01-05 Asustek Computer Inc. Digital signage
KR101678850B1 (ko) * 2015-07-09 2016-12-06 아토리서치(주) 소프트웨어 정의 네트워크에서 스위치의 변경 방법, 장치 및 컴퓨터 프로그램
KR101881780B1 (ko) * 2016-02-19 2018-07-25 정덕기 네트워크 데이터 처리 장치 및 방법
KR101854377B1 (ko) * 2016-11-10 2018-05-03 고려대학교 산학협력단 고속 패킷 처리 시스템 및 그 제어방법
JP6617744B2 (ja) * 2017-04-05 2019-12-11 トヨタ自動車株式会社 車両システム
RU179300U1 (ru) * 2017-04-05 2018-05-07 Общество с ограниченной ответственностью "БУЛАТ" Абонентское сетевое устройство с виртуализированными сетевыми функциями
CN107241249B (zh) * 2017-05-19 2020-05-22 闫晓峰 以太总线交换机、以太总线系统以及数据通讯方法
KR102007082B1 (ko) * 2017-08-09 2019-08-02 박익동 다대다(n:n) 구조의 경로 관리 스위치 및 그것에 의해 수행되는 경로 관리 방법
CN108462661A (zh) * 2018-06-07 2018-08-28 浙江国自机器人技术有限公司 一种多cpu控制器及其通讯系统
KR101939788B1 (ko) * 2018-06-29 2019-01-17 한화시스템(주) 단일 이더넷 연동 지원 장비에 대한 통합연동처리 시스템 및 이를 이용한 통합연동처리 방법
US10964158B2 (en) * 2018-10-05 2021-03-30 Jcm American Corporation Apparatus for retrofit of auxiliary serial communication port(s) in a slot accounting system
JP6922879B2 (ja) * 2018-11-30 2021-08-18 日本電気株式会社 通信装置、情報処理システム、および通信方法
US11714775B2 (en) * 2021-05-10 2023-08-01 Zenlayer Innovation LLC Peripheral component interconnect (PCI) hosting device
US11677672B2 (en) 2021-06-25 2023-06-13 Cornelis Newtorks, Inc. Telemetry-based load-balanced fine-grained adaptive routing in high-performance system interconnect
US11637778B2 (en) * 2021-06-25 2023-04-25 Cornelis Newtorks, Inc. Filter with engineered damping for load-balanced fine-grained adaptive routing in high-performance system interconnect
CN114422419B (zh) * 2021-12-17 2024-05-28 阿里巴巴(中国)有限公司 网络设备连接方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007195166A (ja) 2006-01-18 2007-08-02 Internatl Business Mach Corp <Ibm> 組み込みdidによるpciバス・アドレス・ベースのルーティング用ルーティング・テーブルを作成し、管理する方法、コンピュータ・プログラムおよび装置
WO2010110183A1 (ja) * 2009-03-23 2010-09-30 日本電気株式会社 分散処理システム、インタフェース、記憶装置、分散処理方法、分散処理プログラム
WO2011004548A1 (ja) * 2009-07-06 2011-01-13 日本電気株式会社 I/oシステム、下流pciエクスプレスブリッジ、インターフェース共有方法、およびプログラム
JP2011063441A (ja) 2009-09-15 2011-03-31 Xerox Corp 用紙の厚さ及びカールを決定する装置並びに方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478178B2 (en) * 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
US7613864B2 (en) * 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7565463B2 (en) * 2005-04-22 2009-07-21 Sun Microsystems, Inc. Scalable routing and addressing
US7293129B2 (en) * 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
US7380046B2 (en) * 2006-02-07 2008-05-27 International Business Machines Corporation Method, apparatus, and computer program product for routing packets utilizing a unique identifier, included within a standard address, that identifies the destination host computer system
WO2008018485A1 (fr) 2006-08-09 2008-02-14 Nec Corporation Commutateur pour une interconnexion, et système
CN101242371B (zh) 2008-03-14 2010-11-10 杭州华三通信技术有限公司 基于PCIe交换架构路由器堆叠的方法、系统和装置
US8346996B2 (en) * 2008-10-29 2013-01-01 Nec Corporation Information processing system
US8503468B2 (en) * 2008-11-05 2013-08-06 Fusion-Io, Inc. PCI express load sharing network interface controller cluster
CN102365846B (zh) 2009-03-26 2014-07-02 日本电气株式会社 路由设置服务器、路由设置方法和路由设置程序
JP5267943B2 (ja) * 2009-03-30 2013-08-21 日本電気株式会社 PCI−Express通信システム、及びPCI−Express通信方法
US8327039B2 (en) 2009-08-14 2012-12-04 Cadence Design Systems, Inc. Integrated DMA processor and PCI express switch for a hardware-based functional verification system
EP2541845A4 (en) 2010-02-23 2017-01-25 Nec Corporation Remote control system, remote control method, and remote control program
US20110302390A1 (en) * 2010-06-05 2011-12-08 Greg Copeland SYSTEMS AND METHODS FOR PROCESSING COMMUNICATIONS SIGNALS fUSING PARALLEL PROCESSING

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007195166A (ja) 2006-01-18 2007-08-02 Internatl Business Mach Corp <Ibm> 組み込みdidによるpciバス・アドレス・ベースのルーティング用ルーティング・テーブルを作成し、管理する方法、コンピュータ・プログラムおよび装置
WO2010110183A1 (ja) * 2009-03-23 2010-09-30 日本電気株式会社 分散処理システム、インタフェース、記憶装置、分散処理方法、分散処理プログラム
WO2011004548A1 (ja) * 2009-07-06 2011-01-13 日本電気株式会社 I/oシステム、下流pciエクスプレスブリッジ、インターフェース共有方法、およびプログラム
JP2011063441A (ja) 2009-09-15 2011-03-31 Xerox Corp 用紙の厚さ及びカールを決定する装置並びに方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
OPENFLOW SWITCH SPECIFICATION, VERSION 1.0.0, 31 December 2009 (2009-12-31), Retrieved from the Internet <URL:http://www. openflowswitch. org/documents/openflow-spec-v1.0.0.pdf>
See also references of EP2690831A4
YAN LUO ET AL.: "Accelerating OpenFlow switching with network processors", ANCS '09 PROCEEDINGS OF THE 5TH ACM/IEEE SYMPOSIUM ON ARCHITECTURES FOR NETWORKING AND COMMUNICATIONS SYSTEMS, 20 October 2009 (2009-10-20), pages 70 - 71, XP055124534 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103596649B (zh) * 2013-04-25 2015-07-29 华为技术有限公司 一种在虚拟局域网中通信的方法、设备和系统
CN103596649A (zh) * 2013-04-25 2014-02-19 华为技术有限公司 一种在虚拟局域网中通信的方法、设备和系统
US10091090B2 (en) 2013-08-12 2018-10-02 Hewlett Packard Enterprise Development Lp Packet forwarding in software defined networking
WO2015021881A1 (en) * 2013-08-12 2015-02-19 Hangzhou H3C Technologies Co., Ltd. Packet forwarding in software defined networking
CN103428094B (zh) * 2013-08-12 2016-08-17 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置
CN103428094A (zh) * 2013-08-12 2013-12-04 杭州华三通信技术有限公司 开放流OpenFlow系统中的报文转发方法及装置
WO2015194534A1 (ja) * 2014-06-17 2015-12-23 日本電気株式会社 スイッチ装置とコンピュータシステムと方法並びにプログラム
US10263891B2 (en) 2014-06-17 2019-04-16 Nec Corporation Switching device, computer system, method, and program
US10305777B2 (en) 2014-06-30 2019-05-28 Huawei Technologies Co., Ltd. Flow entry configuration method, apparatus, and system
US10659342B2 (en) 2014-06-30 2020-05-19 Huawei Technologies Co., Ltd. Flow entry configuration method, apparatus, and system
US10911375B2 (en) 2018-04-25 2021-02-02 Fujitsu Limited Processor and information processing apparatus for checking interconnects among a plurality of processors
CN108810182A (zh) * 2018-04-28 2018-11-13 深圳市德赛微电子技术有限公司 一种基于openflow系统的NAT流表动态学习及配置方法
CN108810182B (zh) * 2018-04-28 2021-05-18 深圳市德赛微电子技术有限公司 一种基于openflow系统的NAT流表动态学习及配置方法
WO2022168581A1 (ja) * 2021-02-02 2022-08-11 株式会社オートネットワーク技術研究所 車載装置、通信速度の制御方法、及びプログラム
WO2023233574A1 (ja) * 2022-06-01 2023-12-07 日本電信電話株式会社 情報処理システム

Also Published As

Publication number Publication date
EP2690831A4 (en) 2014-12-10
JP5601601B2 (ja) 2014-10-08
RU2584449C2 (ru) 2016-05-20
US9407577B2 (en) 2016-08-02
CN103444138A (zh) 2013-12-11
KR20130128461A (ko) 2013-11-26
US20140016648A1 (en) 2014-01-16
EP2690831A1 (en) 2014-01-29
RU2013147150A (ru) 2015-04-27
KR101559644B1 (ko) 2015-10-12
CN103444138B (zh) 2016-03-30
JPWO2012128282A1 (ja) 2014-07-24

Similar Documents

Publication Publication Date Title
JP5601601B2 (ja) 通信制御システム、スイッチノード、及び通信制御方法
CN108476208B (zh) 多路径传输设计
US9842075B1 (en) Presenting multiple endpoints from an enhanced PCI express endpoint device
US8176204B2 (en) System and method for multi-host sharing of a single-host device
JP5362980B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
US9450780B2 (en) Packet processing approach to improve performance and energy efficiency for software routers
JP4931787B2 (ja) データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(トランザクション・プロトコルおよび共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法)
TWI538453B (zh) 網路介面控制器、積體電路微晶片、系統及方法
JP5763873B2 (ja) データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、コンピュータ・プログラム、およびデータ処理システム
US9838300B2 (en) Temperature sensitive routing of data in a computer system
US20070050520A1 (en) Systems and methods for multi-host extension of a hierarchical interconnect network
JP2008152786A (ja) データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法)
US10599600B2 (en) Peripheral Component Interconnect Express (PCIe) switching for multi-host computing system deployments
JP2008152787A (ja) データ処理システム内で実行中の通信ファブリックにコンポーネントをホット・プラグするための方法、プログラム、およびシステム(実行中のPCIeファブリックにおける新しいコンポーネントのホット・プラグ/除去のためのシステムおよび方法)
CN103392175A (zh) Pci快速多根i/o虚拟化环境中的低延迟优先排序
US9021125B2 (en) Control path I/O virtualisation
US9515963B2 (en) Universal network interface controller
US10616116B1 (en) Network traffic load balancing using rotating hash
US10257080B1 (en) Hardware resource allocation for equal-cost multi-path groups
Zang et al. PROP: Using PCIe-based RDMA to accelerate rack-scale communications in data centers
EP2842275A1 (en) Increasing a data transfer rate
US20240104045A1 (en) System and method for ghost bridging
ERLANGER Getting Off the Bus.

Legal Events

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

Ref document number: 201280014681.6

Country of ref document: CN

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

Ref document number: 12761361

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013505986

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2012761361

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 14006651

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20137024963

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2013147150

Country of ref document: RU

Kind code of ref document: A