Communication system and communication method

11431636 ยท 2022-08-30

Assignee

Inventors

Cpc classification

International classification

Abstract

A communication system includes a programmable switch configured to perform packet transfer and queuing, a plurality of VNFs configured to execute network functions on packets, and a controller configured to control the programmable switch including a queue distribution unit configured to distribute input packets to any of the plurality of VNFs according to an instruction of the controller with respect to a queue group, the plurality of VNFs each include a load measurement unit configured to measure an amount of consumption of server resources and notify the controller of a load status, and the controller includes a load analysis unit configured to analyze a load of each of the plurality of VNFs based on a certain rule, and a queue control unit configured to change a queue distribution rule.

Claims

1. A communication system configured to execute Internet Protocol (IP) communication, the communication system comprising: a programmable switch configured to perform packet transfer and queuing, a plurality of virtual network functions (VNFs) configured to execute network functions on packets, a server in which the plurality of VNFs operate, and a controller configured to control the programmable switch, wherein the programmable switch includes: a queue group including a plurality of queues, and a queue distribution unit configured to distribute input packets to any of the plurality of VNFs according to an instruction of the controller with respect to the queue group, wherein the plurality of VNFs each include a load measurement unit configured to measure an amount of consumption of server resources and notify the controller of a load status, and wherein the controller includes: a load analysis unit configured to analyze a load of each of the plurality of VNFs based on a certain rule, and a queue control unit configured to change a queue distribution rule for the queue distribution unit according to whether a value exceeds a certain number based on a number of the plurality of VNFs having a higher load than a predetermined value.

2. The communication system according to claim 1, wherein the queue control unit is configured to: acquire a number of available queues from the queue group when a plurality of types of packets classifiable according to information of headers in the packets are input to each of the plurality of VNFs, change the queue distribution rule to a distribution rule for performing queue distribution in units of the plurality of VNFs when a product of the number of the plurality of VNFs having the higher load and a number of the plurality of types of packets is greater than the number of available queues, and change the queue distribution rule to a distribution rule for performing queue distribution according to a combination of the plurality of VNFs and the plurality of types of packets when the product of the number of the VNFs having the higher load and the number of the packet types is smaller than the number of available queues.

3. A communication method executed by a communication system configured to execute Internet Protocol (IP) communication, the communication system comprising a programmable switch configured to perform packet transfer and queuing, a plurality of virtual network functions (VNFs) configured to execute network functions on packets, a server in which the plurality of VNFs operate, and a controller configured to control the programmable switch, wherein the programmable switch includes a queue group including a plurality of queues, and wherein the communication method comprises: measuring, by each of the plurality of VNFs, an amount of consumption of server resources and notifying the controller of a load status; analyzing, by the controller, a load of each of the plurality of VNFs based on a certain rule; changing, by the controller, a queue distribution rule for the programmable switch according to whether a value is exceeded based on a number of the plurality of VNFs having a higher load than a predetermined value; and distributing, by the programmable switch, input packets to any of the plurality of VNFs according to the queue distribution rule changed by the controller with respect to the queue group.

Description

BRIEF DESCRIPTION OF DRAWINGS

(1) FIG. 1 is a diagram illustrating an example of a configuration of a communication system according to an embodiment.

(2) FIG. 2 is a diagram illustrating a processing flow in the communication system illustrated in FIG. 1.

(3) FIG. 3 is a diagram illustrating a processing flow in the communication system illustrated in FIG. 1.

(4) FIG. 4 is a sequence diagram illustrating a processing sequence of communication processing in the communication system illustrated in FIG. 1.

(5) FIG. 5 is a diagram illustrating an example of a computer with which a programmable switch, a server, and a controller are implemented by a program being executed.

DESCRIPTION OF EMBODIMENTS

(6) Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the drawings. The present disclosure is not limited by the embodiment. In the drawings, the same parts are denoted by the same reference signs.

Embodiment

(7) An embodiment of the present disclosure will be described. FIG. 1 is a diagram illustrating an example of a configuration of a communication system according to the embodiment.

(8) As illustrated in FIG. 1, a communication system 1 according to the embodiment includes a programmable switch 10, a plurality of VNFs 20, a server 30 in which the VNFs 20 operate, and a controller 40, and executes IP communication.

(9) The programmable switch 10 performs packet transfer and queuing. The programmable switch 10 includes a queue group 11 including a plurality of queues, and a queue distribution unit 12 that distributes input packets to any of the VNFs 20 according to an instruction of the controller 40 with respect to the queue group 11.

(10) The server 30 has server resources required for the VNFs 20 to operate. The server 30 is an infrastructure for constructing a network function virtualization (NEN), and may be a virtual server prepared on a cloud.

(11) Each VNF 20 is dedicated software for providing functions of the NFV, and is obtained by re-implementing, by software, functions provided by dedicated hardware. Each VNF 20 provides various network functions. For example, the VNF 20 executes the network functions for packets. The VNF 20 includes a packet processing unit 21 that processes packets transferred from the programmable switch 10. The VNF 20 includes a load measurement unit 22 that measures an amount of consumption of the server resources and notifies the controller 40 of a load status.

(12) The controller 40 controls the programmable switch 10. The controller 40 includes a load analysis unit 41 that analyzes the load of each VNF 20 on the basis of a certain rule, and a queue control unit 42 that changes a queue distribution rule for the queue distribution unit 12.

(13) For example, the queue control unit 42 changes the queue distribution rule for the queue distribution unit 12 according to whether a value based on the number of VNFs having a higher load than a predetermined value exceeds a certain number. Specifically, the queue control unit 42 changes the queue distribution rule for the queue distribution unit 12 according to whether the number of VNFs having a higher load than the predetermined value exceeds the certain number. Further, a timing at which the queue distribution rule is changed is not limited thereto.

(14) For example, when a plurality of types of packets that can be classified according to information of headers in the packets are input to each of the VNFs 20, the queue control unit 42 acquires the number of available queues from the queue group 11 (which may be queue resource information). When a product of the number of VNFs having a higher load than the predetermined value and the number of packet types is greater than the number of available queues, the queue control unit 42 changes the queue distribution rule to a distribution rule for performing queue distribution in units of VNFs 20. On the other hand, when the product of the number of VNFs 20 having a higher load than the predetermined value and the number of packet types is smaller than the number of available queues, the queue control unit 42 changes the queue distribution rule to a distribution rule for performing queue distribution according to a combination of the VNFs 20 and the packet types. Thus, the controller 40 may compare the product of the number of VNFs having a higher load than the predetermined value and the number of packet types with the number of available queues, and perform a more appropriate queue distribution.

(15) Processing Flow

(16) Hereinafter, a processing flow of the communication system 1 will be described. FIGS. 2 and 3 are diagrams illustrating a processing flow of the communication system 1 illustrated in FIG. 1.

(17) First, a case in which a plurality of VNFs are congested will be described by way of example with reference to FIG. 2. As illustrated in FIG. 2, VNFs 20A to 20C each measure an amount of consumption of the server resources and notify the controller 40 of a load status (a load measurement result) (see FIGS. 2(1)). Subsequently, the controller 40 analyzes the loads of VNFs 20A to 20C. When the controller 40 determines as a result of the analysis that the plurality of VNFs 20A to 20C are congested, the controller 40 changes the queue distribution rule (see FIG. 2(2)).

(18) In this example, the controller 40 changes the queue distribution rule to a rule for distributing the queue to each of the VNFs 20A to 20C, and notifies the programmable switch 10 of the changed queue distribution rule (see FIG. 2(3)). As a result, in the programmable switch 10, the queue is distributed to each of the VNFs 20A to 20C. Thus, in the communication system 1, when the plurality of VNFs 20 are congested, coarse rate limiting is performed in units of CPUs, and thus, a service level is lowered as compared to a case in which fine rate limiting is performed, but a network is protected and congestion of the CPUs is reduced.

(19) In FIG. 3, a case in which only a single VNF 20B is congested will be described by way of example. As illustrated in FIG. 3, when the VNFs 20A to 20C each notify the controller 40 of the load status (load measurement result) (see FIG. 3(1)), the controller 40 analyzes loads of the VNFs 20A to 20C. When the controller 40 determines as a result of the analysis that only the VNF 20B is congested, the controller 40 changes the queue distribution rule (see FIG. 3(2)).

(20) In this example, the controller 40 changes the queue distribution rule to a rule for distributing the queues to only the VNF 20B and notifies the programmable switch 10 of the changed queue distribution rule (see FIG. 3(3)). As a result, in the programmable switch 10, the queues are distributed to only the VNF 20B. Thus, in the communication system 1, fine rate limiting is performed on only the VNF 20 in which congestion occurs, thereby improving the service level.

(21) Processing Procedure

(22) FIG. 4 is a sequence diagram illustrating a processing procedure of communication processing in the communication system 1 illustrated in FIG. 1.

(23) As illustrated in FIG. 4, in the server 30, each VAN 20 performs load measurement for measuring an amount of consumption of the server resources (steps S1 to S3) and notifies the controller 40 of a load status (steps S4 to S6).

(24) The controller 40 analyzes a load of each VNF 20 of each VNF (step S7) to determine whether the value based on the number of VNFs having a higher load than the predetermined value exceeds a certain number (step S8). When the controller 40 determines that the value based on the number of VNFs having a higher load than the predetermined value does not exceed the certain number (step S8: No), the controller 40 receives the load status of each VNF 20 again.

(25) On the other hand, when the controller 40 determines that the value based on the number of VNFs having a higher load than the predetermined value exceeds the certain number (step S8: Yes), the controller 40 changes the queue distribution rule for the programmable switch 10 to reduce the congestion of the CPUs (step 59).

(26) When the programmable switch 10 receives the notification of the changed queue distribution rule from the controller 40 (step 510), the programmable switch 10 distributes the queues according to the changed queue distribution rule (step S it) to reduce the congestion of the CPUs.

Effects of Embodiment

(27) Thus, in the embodiment, the controller 40 analyzes each of the loads of the plurality of VNFs 20 and changes the queue distribution rule for the programmable switch 10 according to whether the value based on the number of VNFs having a higher load than the predetermined value exceeds the certain number. The programmable switch 10 distributes input packets to any of the VNFs 20 according to the distribution rule changed by the controller 40 with respect to the queue group including the plurality of queues.

(28) Therefore, in the embodiment, the queues of the programmable switch 10 are distributed depending on the load status of each of the VNFs 20 and thus congestion of the CPUs is reduced. For example, in the embodiment, two types of distribution rules for coarse rate limiting and fine rate limiting are used, so that the coarse rate limiting is performed in units of the VNFs when congestion occurs in the plurality of NINFs 20, and the fine rate limiting is performed according to some of the VNFs 20 when congestion occurs in the some of the VNFs 20. Thus, in the embodiment, the rate limiting according to the load status is performed so that the congestion of the CPUs is reduced.

(29) System Configuration and the Like

(30) Further, the respective components of the devices that have been illustrated are functional and conceptual, and are not necessarily physically configured as illustrated. That is, a specific form of distribution and integration of the respective devices is not limited to that illustrated, and all or some of the devices can be configured to be functionally or physically distributed and integrated in any units according to various loads, use situations, and the like. Further, all or some of processing functions performed by the respective devices may be implemented by a CPU and a program analyzed and executed by the CPU, or may be implemented as hardware using wired logic.

(31) Further, of the processing described in the embodiment, all or some of the processing described as being performed automatically can be performed manually, and all or some of the processing described as being performed manually can be performed automatically using a known method. In addition, information including the processing procedures, control procedures, specific names, and various types of data and parameters illustrated in the above document or drawings can be optionally changed unless otherwise described.

(32) Program

(33) FIG. 5 is a diagram illustrating an example of a computer with which the programmable switch 10, the server 30, and the controller 40 are implemented by a program being executed. A computer 1000 includes, for example, a memory 1010 and a CPU 1020. Further, the computer 1000 includes a hard disk drive interface 1030, a disc drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These units are connected by a bus 1080.

(34) The memory 1010 includes a read only memory (ROM) 1011 and a RAM 1012. The ROM 1011 stores a boot program such as a basic input output system (BIOS), for example. The hard disk drive interface 1030 is connected to a hard disk drive 1090. The disc drive interface 1040 is connected to a disc drive 1100. A detachable storage medium such as a magnetic disk or optical disc, for example, is inserted into the disc drive 1100. The serial port interface 1050 is connected to a mouse 1110 and a keyboard 1120, for example. The video adapter 1060 is connected to a display 1130, for example.

(35) Here, the hard disk drive 1090 stores, for example, an operating system (OS) 1091, an application program 1092, a program module 1093, and program data 1094. That is, a program that defines each processing of the programmable switch 10, the server 30, and the controller 40 is implemented as the program module 1093 in which a code executable by the computer is described. The program module 1093 is stored in, for example, the hard disk drive 1090. For example, the program module 1093 for executing the same processing as that of each functional configuration in the programmable switch 10, the server 30, and the controller 40 is stored in the hard disk drive 1090. The hard disk drive 1090 may be replaced with a solid state drive (SSD).

(36) Further, setting data to be used in the processing of the embodiment described above is stored as the program data 1094 in, for example, the memory 1010 or the hard disk drive 1090. The CPU 1020 loads the program module 1093 or the program data 1094 stored in the memory 1010 or the hard disk drive 1090 into the RAM 1012 and executes the program module 1093 or the program data 1094 as necessary.

(37) The program module 1093 and the program data 1094 are not limited to being stored in the hard disk drive 1090, and may be stored, for example, in a detachable storage medium and loaded by the CPU 1020 via the disc drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (a. LAN, a wide area network (WAN), or the like). The program module 1093 and the program data 1094 may be loaded by the CPU 1020 from another computer via the network interface 1070.

(38) Although the embodiment to which the present disclosure made by the present inventors is applied has been described above, the present disclosure is not limited by the description and the drawings that make up part of the present disclosure according to the embodiment. That is, all other embodiments, examples, operation technologies, and the like made by those skilled in the art on the basis of the present embodiment are within the scope of the present disclosure.

REFERENCE SIGNS LIST

(39) 1 Communication system 10 Programmable switch 11 Queue group 12 Queue distribution unit 20 VNF 21 Packet processing unit 22 Load measurement unit 30 Server 40 Controller 41 Load analysis unit 42 Queue control unit