WO2020027065A1 - 通信システム及び通信方法 - Google Patents

通信システム及び通信方法 Download PDF

Info

Publication number
WO2020027065A1
WO2020027065A1 PCT/JP2019/029693 JP2019029693W WO2020027065A1 WO 2020027065 A1 WO2020027065 A1 WO 2020027065A1 JP 2019029693 W JP2019029693 W JP 2019029693W WO 2020027065 A1 WO2020027065 A1 WO 2020027065A1
Authority
WO
WIPO (PCT)
Prior art keywords
queue
vnfs
controller
packet
load
Prior art date
Application number
PCT/JP2019/029693
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 US17/263,442 priority Critical patent/US11431636B2/en
Publication of WO2020027065A1 publication Critical patent/WO2020027065A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Definitions

  • the present invention relates to a communication system and a communication method.
  • VNF Virtual Network Function
  • Non-Patent Document 1 incorporates a software high load prevention mechanism to protect software from DoS attacks and the like by performing rate limiting and priority control on packets processed by software, and to perform stable operations such as routing processing. Is described.
  • Non-Patent Document 2 describes a method of controlling a packet rate to be passed to software by a packet rate limiting function for a CPU to prevent a denial of service attack.
  • a single device can execute a rate limit for protecting software (CPU), but in a network to which SDN (Software-Defined Networking) is applied, software (CPU) and hardware (Programmable switches, etc.), when a plurality of CPUs are connected to a single piece of hardware, the rate limit resources on the hardware side may be exhausted.
  • SDN Software-Defined Networking
  • the present invention has been made in view of the above, and an object of the present invention is to provide a communication system and a communication method that reduce congestion of a CPU.
  • a communication system is a communication system that executes Internet Protocol (IP) communication, and includes a programmable switch that performs packet transfer and queuing, and a packet.
  • IP Internet Protocol
  • a communication system comprising: a plurality of VNFs (Virtual Network Functions) for executing a network function on a server, a server on which the VNFs operate, and a controller for controlling the programmable switches, wherein the programmable switches are configured by a plurality of queues.
  • a queue distributing unit for distributing an input packet to one of the VNFs according to the instruction of the controller for the queue group.
  • the VNF measures the consumption of server resources, Has a load measurement unit that notifies the load status to the A load analysis unit that analyzes the load of each VNF based on a certain rule, and a queue distribution unit according to whether a value based on the number of VNFs having a load higher than a predetermined value exceeds a certain number.
  • a queue control unit for changing a queue distribution rule.
  • FIG. 1 is a diagram illustrating an example of a configuration of a communication system according to an embodiment.
  • FIG. 2 is a diagram for explaining the flow of processing in the communication system shown in FIG.
  • FIG. 3 is a diagram for explaining the flow of processing in the communication system shown in FIG.
  • FIG. 4 is a sequence diagram showing a processing procedure of a communication process in the communication system shown in FIG.
  • FIG. 5 is a diagram illustrating an example of a computer in which a programmable switch, a server, and a controller are realized by executing a program.
  • FIG. 1 is a diagram illustrating an example of a configuration of a communication system according to an embodiment.
  • the communication system 1 includes a programmable switch 10, a plurality of VNFs 20, a server 30 on which the VNFs 20 operate, and a controller 40, and executes IP communication.
  • the programmable switch 10 performs packet transfer and queuing.
  • the programmable switch 10 includes a queue group 11 configured by a plurality of queues, and a queue distribution unit 12 that distributes a packet input to the queue group 11 according to an instruction from the controller 40 to one of the VNFs 20.
  • the server 30 has server resources necessary for the VNF 20 to operate.
  • the server 30 may be a virtual server prepared on a cloud as a base for constructing NFV (Network ⁇ Function ⁇ Virtualization).
  • Each VNF 20 is dedicated software for providing NFV functions, and re-implements the functions provided by the dedicated hardware with software.
  • Each VNF 20 provides various network functions. For example, the VNF 20 performs a network function on a packet.
  • the VNF 20 includes a packet processing unit 21 that processes a packet transferred from the programmable switch 10.
  • the VNF 20 includes a load measurement unit 22 that measures the amount of server resource consumption and notifies the controller 40 of the load status.
  • 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 based on a certain rule, and a queue control unit 42 that changes a queue distribution rule for the queue distribution unit 12.
  • the queue control unit 42 changes the queue distribution rule for the queue distribution unit 12 according to whether or not the value based on the number of VNFs whose load is higher than the predetermined value exceeds a certain number. Specifically, the queue control unit 42 changes a queue distribution rule for the queue distribution unit 12 according to whether or not the number of VNFs having a load higher than a predetermined value exceeds a certain number.
  • the change timing of the queue distribution rule is not limited to this.
  • the queue control unit 42 determines the number of queues available from the queue group 11 (or queue resource information). get. If the product of the number of VNFs having a higher load than the predetermined value and the number of packet types is larger than the number of available queues, the queue control unit 42 sets a queue distribution rule that performs queue distribution in VNF20 units. change. On the other hand, if the product of the number of VNFs 20 having a higher load than the predetermined value and the number of packet types is less than the number of available queues, the queue control unit 42 allocates the queues according to the combination of the VNFs 20 and the packet types. To the distribution rule that performs As described above, 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 more appropriate queue distribution.
  • FIG. 2 and FIG. 3 are diagrams for explaining the flow of processing in the communication system 1 shown in FIG.
  • FIG. 2 illustrates an example in which a plurality of VNFs are congested.
  • the VNFs 20A to 20C measure the consumption of the server resources and notify the controller 40 of the load status (load measurement result) (see (1) of FIG. 2).
  • the controller 40 analyzes the loads on the VNFs 20A to 20C.
  • the controller 40 changes the queue distribution rule (see (2) in FIG. 2).
  • the controller 40 changes the rules for allocating queues to the VNFs 20A to 20C, and notifies the programmable switch 10 of the changed queue allocation rules (see (3) in FIG. 2).
  • the queue is distributed to each of the VNFs 20A to 20C.
  • the communication system 1 when congestion occurs in a plurality of VNFs 20, the service level is reduced by performing a rough rate limit on a CPU basis as compared with a case where a fine rate limit is performed. And reduce CPU congestion.
  • FIG. 3 illustrates an example in which only a single VNF 20B is congested.
  • the controller 40 analyzes the loads of the VNFs 20A to 20C.
  • the controller 40 changes the queue distribution rule (see (2) in FIG. 3).
  • the controller 40 changes to a rule for distributing queues only to the VNF 20B, and notifies the programmable switch 10 of the changed rule for distributing queues (see (3) in FIG. 3).
  • the programmable switch 10 the queue is distributed only to the VNF 20B.
  • the service level is improved by finely performing the rate limit only on the VNF 20 in which congestion occurs.
  • FIG. 4 is a sequence diagram showing a processing procedure of communication processing in the communication system 1 shown in FIG.
  • each VAN 20 performs a load measurement for measuring the consumption of server resources (steps S1 to S3), and notifies the controller 40 of the load status (steps S4 to S3). S6).
  • the controller 40 analyzes the load of each VNF 20 of each VNF (step S7), and determines whether or not a value based on the number of VNFs having a load higher than a predetermined value exceeds a certain number (step S8). When the controller 40 determines that the value based on the number of VNFs whose load is higher than the predetermined value does not exceed the certain number (step S8: No), the controller 40 receives the load status by each VNF 20 again.
  • step S8 determines that the value based on the number of VNFs having a load higher than the predetermined value has exceeded a certain number (step S8: Yes)
  • the queue of the programmable switch 10 is reduced in order to reduce CPU congestion.
  • the distribution rule is changed (step S9).
  • the programmable switch 10 When the programmable switch 10 receives the notification of the changed queue allocation rule from the controller 40 (step S10), the programmable switch 10 allocates the queue according to the changed queue allocation rule (step S11), and causes the CPU congestion. To reduce.
  • the controller 40 analyzes the loads of the plurality of VNFs 20, and determines whether the value based on the number of VNFs having a load higher than the predetermined value exceeds a certain number.
  • the queue distribution rule for the switch 10 is changed.
  • the programmable switch 10 distributes the input packet to one of the VNFs 20 according to the distribution rule changed by the controller 40 with respect to a queue group including a plurality of queues.
  • the CPU congestion is reduced by allocating the queues of the programmable switch 10 according to the load status of each VNF 20.
  • a coarse granularity in VNF units is used.
  • the rate limit is performed, and when congestion occurs in some VNFs 20, the rate limit is performed with a fine granularity according to the VNFs 20.
  • congestion of the CPU is reduced by performing the rate limit according to the load condition.
  • each component of each device illustrated is a functional concept and does not necessarily need to be physically configured as illustrated.
  • the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed / arbitrarily divided into arbitrary units according to various loads and usage conditions. Can be integrated and configured.
  • all or any part of each processing function performed by each device can be realized by a CPU and a program analyzed and executed by the CPU, or can be realized as hardware by wired logic.
  • FIG. 5 is a diagram illustrating an example of a computer that implements the programmable switch 10, the server 30, and the controller 40 by executing a program.
  • the computer 1000 has, for example, a memory 1010 and a CPU 1020.
  • the computer 1000 has a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
  • the ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1090.
  • the disk drive interface 1040 is connected to the disk drive 1100.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100.
  • the serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120.
  • the video adapter 1060 is connected to the display 1130, for example.
  • 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 process of the programmable switch 10, the server 30, and the controller 40 is implemented as a program module 1093 in which codes executable by a computer are described.
  • the program module 1093 is stored in, for example, the hard disk drive 1090.
  • the hard disk drive 1090 stores a program module 1093 for executing the same processing as the functional configuration in the programmable switch 10, the server 30, and the controller 40.
  • the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).
  • the setting data used in the processing of the above-described embodiment is stored as the program data 1094 in, for example, the memory 1010 or the hard disk drive 1090. Then, the CPU 1020 reads out the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 to the RAM 1012 as necessary and executes them.
  • the program module 1093 and the program data 1094 are not limited to being stored in the hard disk drive 1090, but may be stored in, for example, a removable storage medium and read out by the CPU 1020 via the disk 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 (LAN, Wide Area Network (WAN), or the like). Then, the program module 1093 and the program data 1094 may be read from another computer by the CPU 1020 via the network interface 1070.
  • LAN Local Area Network
  • WAN Wide Area Network

Landscapes

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

Abstract

通信システム(1)は、パケットの転送及びキューイングを行うプログラマブルスイッチ(10)と、パケットに対してネットワーク機能を実行する複数のVNF(20)と、プログラマブルスイッチ(10)を制御するコントローラ(40)とを有し、プログラマブルスイッチ(10)は、キュー群(11)に対し、コントローラ(40)の指示に従って、入力されたパケットをいずれかのVNF(20)に振り分けるキュー振り分け部(12)を有し、VNF(20)は、サーバリソースの消費量を測定して、コントローラ(40)に負荷状況を通知する負荷測定部(22)を有し、コントローラ(40)は、一定のルールを基に各VNF(20)の負荷を分析する負荷分析部(41)と、所定値よりも負荷の高いVNFの数に基づく値が一定数を超えたか否かに応じて、キューの振り分けルールを変更するキュー制御部(42)とを有する。

Description

通信システム及び通信方法
 本発明は、通信システム及び通信方法に関する。
 従来、プログラマブルスイッチと仮想ネットワーク機能(VNF(Virtual Network Function))群を分離して実装する方法において、CPU(Central Processing Unit)向けトラヒックのうち、特に負荷の重い制御パケットについて流量の制限(レートリミット)を行うことによって、一部ユーザの制御パケット増大に起因してVNFが配置されたCPUのリソースが枯渇することを防ぐ方法が提案されている(例えば、非特許文献1,2参照)。
 例えば、非特許文献1には、ソフトウェアの高負荷防止機構を搭載することによって、ソフトウェアで処理するパケットに対するレートリミット、優先制御により、DoS攻撃などからソフトウェアを保護し、ルーティング処理等の安定した動作を実現する方法が記載されている。また、非特許文献2には、CPUに対するパケットのレート制限機能によって、ソフトウェアに渡すパケットのレートを制御し、サービス拒否攻撃を防止する方法が記載されている。
Alaxala、[online]、[平成30年6月25日検索]、インターネット<URL:https://www.alaxala.com/jp/products/archive/datasheet_pamphlet/pdf/ax8300s_ds_op_ver12_7_r2.pdf> Catalyst 6500/6000スイッチのCPU高使用率、[online]、[平成30年6月25日検索]、インターネット<URL:https://www.cisco.com/c/jp_jp/support/docs/switches/catalyst-6500-series-switches/63992-6k-high-cpu.html>
 しかしながら、従来の方法では、単一のCPUに対するレートリミットのみが考慮されている。このため、従来の方法では、複数のCPUに対してプログラマブルスイッチが接続されるケースでは、よりレートリミットに必要なキュー数が不足してしまい、一部のフローにレートリミットを実施できずCPUが輻輳してしまうという問題があった。言い換えると、従来の方法では、単一の装置においてソフトウェア(CPU)を保護するためのレートリミットを実行できるが、SDN(Software-Defined Networking)を適用したネットワークにおいては、ソフトウェア(CPU)とハードウェア(プログラマブルスイッチ等)とが分離するため、単一のハードウェアに対して複数のCPUが接続されると、ハードウェア側のレートリミット資源が枯渇する可能性がある。
 本発明は、上記に鑑みてなされたものであって、CPUの輻輳を低減する通信システム及び通信方法を提供することを目的とする。
 上述した課題を解決し、目的を達成するために、本発明に係る通信システムは、IP(Internet Protocol)通信を実行する通信システムであって、パケットの転送及びキューイングを行うプログラマブルスイッチと、パケットに対してネットワーク機能を実行する複数のVNF(Virtual Network Function)と、VNFが動作するサーバと、プログラマブルスイッチを制御するコントローラと、を有する通信システムであって、プログラマブルスイッチは、複数のキューにより構成されるキュー群と、キュー群に対し、コントローラの指示に従って、入力されたパケットをいずれかのVNFに振り分けるキュー振り分け部と、を有し、VNFは、サーバリソースの消費量を測定して、コントローラに負荷状況を通知する負荷測定部を有し、コントローラは、一定のルールを基に各VNFの負荷を分析する負荷分析部と、所定値よりも負荷の高いVNFの数に基づく値が一定数を超えたか否かに応じて、キュー振り分け部に対するキューの振り分けルールを変更するキュー制御部と、を有することを特徴とする。
 本発明によれば、CPUの輻輳を低減する。
図1は、実施の形態における通信システムの構成の一例を示す図である。 図2は、図1に示す通信システムにおける処理の流れを説明する図である。 図3は、図1に示す通信システムにおける処理の流れを説明する図である。 図4は、図1に示す通信システムにおける通信処理の処理手順を示すシーケンス図である。 図5は、プログラムが実行されることにより、プログラマブルスイッチ、サーバ、コントローラが実現されるコンピュータの一例を示す図である。
 以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態]
 本発明の実施の形態について説明する。図1は、実施の形態における通信システムの構成の一例を示す図である。
 図1に示すように、実施の形態に係る通信システム1は、プログラマブルスイッチ10と、複数のVNF20と、VNF20が動作するサーバ30と、コントローラ40とを有し、IP通信を実行する。
 プログラマブルスイッチ10は、パケットの転送及びキューイングを行う。プログラマブルスイッチ10は、複数のキューにより構成されるキュー群11と、キュー群11に対し、コントローラ40の指示に従って入力されたパケットをいずれかのVNF20に振り分けるキュー振り分け部12と、を有する。
 サーバ30は、VNF20が動作するために必要なサーバリソースを有する。サーバ30は、NFV(Network Function Virtualization)を構築するための基盤となり、クラウド上に用意された仮想的なサーバであってもよい。
 各VNF20は、NFVの機能を提供するための専用ソフトであり、専用ハードで提供されていた機能をソフトウェアで再実装したものである。各VNF20は、各種ネットワーク機能を提供する。例えば、VNF20は、パケットに対してネットワーク機能を実行する。VNF20は、プログラマブルスイッチ10から転送されたパケットを処理するパケット処理部21を有する。VNF20は、サーバリソースの消費量を測定して、コントローラ40に負荷状況を通知する負荷測定部22を有する。
 コントローラ40は、プログラマブルスイッチ10を制御する。コントローラ40は、一定のルールを基に各VNF20の負荷を分析する負荷分析部41と、キュー振り分け部12に対するキューの振り分けルールを変更するキュー制御部42と、を有する。
 例えば、キュー制御部42は、所定値よりも負荷の高いVNFの数に基づく値が一定数を超えたか否かに応じて、キュー振り分け部12に対するキューの振り分けルールを変更する。具体的には、キュー制御部42は、所定値よりも負荷の高いVNFの数が一定数を超えたか否かに応じて、キュー振り分け部12に対するキューの振り分けルールを変更する。また、キューの振り分けルールの変更タイミングは、これに限らない。
 例えば、キュー制御部42は、VNF20ごとに、パケット内ヘッダの情報により分類可能な複数の種別のパケットが入力される場合、キュー群11から利用可能なキュー数(キューリソース情報でもよい。)を取得する。そして、キュー制御部42は、所定値よりも負荷の高いVNFの数とパケット種別数との積が、利用可能なキュー数よりも大きい場合には、VNF20単位でのキュー振り分けを行う振り分けルールに変更する。一方、キュー制御部42は、所定値よりも負荷の高いVNF20の数とパケット種別数との積が、利用可能なキュー数未満である場合には、VNF20とパケット種別と組み合わせに応じてキュー振り分けを行う振り分けルールに変更する。このように、コントローラ40は、所定値よりも負荷の高いVNFの数とパケット種別数との積と、利用可能なキュー数とを比較し、より適切なキュー振り分けを行ってもよい。
[処理の流れ]
 次に、通信システム1における処理の流れについて説明する。図2及び図3は、図1に示す通信システム1における処理の流れを説明する図である。
 まず、図2では、複数のVNFが輻輳している場合を例に説明する。図2に示すように、VNF20A~20Cは、サーバリソースの消費量を測定して、コントローラ40に負荷状況(負荷測定結果)を通知する(図2の(1)参照)。続いて、コントローラ40は、VNF20A~20Cの負荷を分析する。コントローラ40は、分析の結果、複数のVNF20A~20Cが輻輳していると判定した場合、キューの振り分けルールを変更する(図2の(2)参照)。
 この例では、コントローラ40は、VNF20A~20Cのそれぞれにキューを振り分けるルールに変更し、変更したキューの振り分けルールをプログラマブルスイッチ10に通知する(図2の(3)参照)。この結果、プログラマブルスイッチ10では、VNF20A~20Cのそれぞれにキューが振り分けられる。このように、通信システム1では、複数のVNF20で輻輳している場合には、CPU単位で荒くレートリミットを行うことによって、細かくレートリミットを行う場合と比して、サービスレベルは低下するものの網を保護し、CPUの輻輳を低減する。
 また、図3では、単一のVNF20Bのみが輻輳している場合を例に説明する。図3に示すように、VNF20A~20Cがコントローラ40に負荷状況(負荷測定結果)を通知すると(図3の(1)参照)、コントローラ40は、VNF20A~20Cの負荷を分析する。コントローラ40は、分析の結果、VNF20Bのみが輻輳していると判定した場合、キューの振り分けルールを変更する(図3の(2)参照)。
 この例では、コントローラ40は、VNF20Bのみにキューを振り分けるルールに変更し、変更したキューの振り分けルールをプログラマブルスイッチ10に通知する(図3の(3)参照)。この結果、プログラマブルスイッチ10では、VNF20Bのみにキューが振り分けられる。このように、通信システム1では、輻輳が生じているVNF20のみに、きめ細かくレートリミットを行うことによって、サービスレベルを向上する。
[処理手順]
 図4は、図1に示す通信システム1における通信処理の処理手順を示すシーケンス図である。
 図4に示すように、サーバ30では、各VAN20が、サーバリソースの消費量を測定する負荷測定を行い(ステップS1~ステップS3)、それぞれ、負荷状況をコントローラ40に通知する(ステップS4~ステップS6)。
 コントローラ40は、各VNFの各VNF20の負荷を分析して(ステップS7)、所定値よりも負荷の高いVNFの数に基づく値が一定数を超えたか否かを判定する(ステップS8)。コントローラ40は、所定値よりも負荷の高いVNFの数に基づく値が一定数を超えていないと判定した場合(ステップS8:No)、改めて、各VNF20による負荷状況を受ける。
 一方、コントローラ40は、所定値よりも負荷の高いVNFの数に基づく値が一定数を超えたと判定した場合(ステップS8:Yes)、CPUの輻輳を低減するために、プログラマブルスイッチ10に対するキューの振り分けルールを変更する(ステップS9)。
 そして、プログラマブルスイッチ10は、コントローラ40から、変更されたキューの振り分けルールの通知を受けると(ステップS10)、変更されたキューの振り分けルールにしたがって、キューを振り分けて(ステップS11)、CPUの輻輳を低減する。
[実施の形態の効果]
 このように、本実施の形態では、コントローラ40が、複数のVNF20の負荷をそれぞれ分析し、所定値よりも負荷の高いVNFの数に基づく値が一定数を超えたか否かに応じて、プログラマブルスイッチ10に対するキューの振り分けルールを変更する。そして、プログラマブルスイッチ10は、複数のキューで構成されるキュー群に対し、コントローラ40が変更した振り分けルールに従って、入力されたパケットをいずれかのVNF20に振り分けている。
 したがって、本実施の形態では、各VNF20の負荷状況に応じて、プログラマブルスイッチ10のキューを振り分けることによって、CPUの輻輳を低減している。例えば、実施の形態では、荒い粒度でのレートリミットと細かい粒度でのレートリミットとになる2種の振り分けルールを用いることによって、複数のVNF20で輻輳が発生した場合にはVNF単位の荒い粒度でレートリミットを行い、一部のVNF20で輻輳が発生した場合は、このVNF20に応じた細かい粒度でレートリミットを行う。このように、本実施の形態では、負荷状況に応じたレートリミットを実施することによって、CPUの輻輳を低減している。
[システム構成等]
 図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
 また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行なうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的に行なうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
 図5は、プログラムが実行されることにより、プログラマブルスイッチ10、サーバ30、コントローラ40が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
 ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、プログラマブルスイッチ10、サーバ30、コントローラ40の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、プログラマブルスイッチ10、サーバ30、コントローラ40における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
 また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
 なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
 1 通信システム
 10 プログラマブルスイッチ
 11 キュー群
 12 キュー振り分け部
 20 VNF
 21 パケット処理部
 22 負荷測定部
 30 サーバ
 40 コントローラ
 41 負荷分析部
 42 キュー制御部

Claims (3)

  1.  IP(Internet Protocol)通信を実行する通信システムであって、パケットの転送及びキューイングを行うプログラマブルスイッチと、パケットに対してネットワーク機能を実行する複数のVNF(Virtual Network Function)と、VNFが動作するサーバと、前記プログラマブルスイッチを制御するコントローラと、を有する通信システムであって、
     前記プログラマブルスイッチは、
     複数のキューにより構成されるキュー群と、
     前記キュー群に対し、前記コントローラの指示に従って、入力されたパケットをいずれかの前記VNFに振り分けるキュー振り分け部と、
     を有し、
     前記VNFは、
     サーバリソースの消費量を測定して、前記コントローラに負荷状況を通知する負荷測定部
     を有し、
     前記コントローラは、
     一定のルールを基に各VNFの負荷を分析する負荷分析部と、
     所定値よりも負荷の高いVNFの数に基づく値が一定数を超えたか否かに応じて、前記キュー振り分け部に対するキューの振り分けルールを変更するキュー制御部と、
     を有することを特徴とする通信システム。
  2.  前記キュー制御部は、前記VNFごとに、パケット内ヘッダの情報により分類可能な複数の種別のパケットが入力される場合、前記キュー群から利用可能なキュー数を取得し、前記負荷の高いVNFの数とパケット種別数との積が、前記利用可能なキュー数よりも大きい場合には、VNF単位でのキュー振り分けを行う振り分けルールに変更し、前記負荷の高いVNFの数とパケット種別数との積が、前記利用可能なキュー数未満である場合には、前記VNFとパケット種別との組み合わせに応じてキュー振り分けを行う振り分けルールに変更することを特徴とする請求項1に記載の通信システム。
  3.  IP(Internet Protocol)通信を実行する通信システムであって、パケットの転送及びキューイングを行うプログラマブルスイッチと、パケットに対してネットワーク機能を実行する複数のVNF(Virtual Network Function)と、VNFが動作するサーバと、前記プログラマブルスイッチを制御するコントローラと、を有する通信システムが実行する通信方法であって、
     前記プログラマブルスイッチは、複数のキューにより構成されるキュー群を有し、
     前記VNFが、サーバリソースの消費量を測定して、前記コントローラに負荷状況を通知する工程と、
     前記コントローラが、一定のルールを基に各VNFの負荷を分析する工程と、
     前記コントローラが、所定値よりも負荷の高いVNFの数に基づく値を超えたか否かに応じて、前記プログラマブルスイッチに対するキューの振り分けルールを変更する工程と、
     前記プログラマブルスイッチが、前記キュー群に対し、前記コントローラが変更したキューの振り分けルールに従って、入力されたパケットをいずれかの前記VNFに振り分ける工程と、
     を含んだことを特徴とする通信方法。
PCT/JP2019/029693 2018-08-03 2019-07-29 通信システム及び通信方法 WO2020027065A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/263,442 US11431636B2 (en) 2018-08-03 2019-07-29 Communication system and communication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018147210A JP7056454B2 (ja) 2018-08-03 2018-08-03 通信システム及び通信方法
JP2018-147210 2018-08-03

Publications (1)

Publication Number Publication Date
WO2020027065A1 true WO2020027065A1 (ja) 2020-02-06

Family

ID=69232627

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/029693 WO2020027065A1 (ja) 2018-08-03 2019-07-29 通信システム及び通信方法

Country Status (3)

Country Link
US (1) US11431636B2 (ja)
JP (1) JP7056454B2 (ja)
WO (1) WO2020027065A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016157864A1 (ja) * 2015-03-31 2016-10-06 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置
JP2017143477A (ja) * 2016-02-12 2017-08-17 株式会社日立製作所 仮想ネットワークシステム、及び、ネットワーク負荷分散方法
WO2017170312A1 (ja) * 2016-03-31 2017-10-05 日本電気株式会社 ネットワークシステム、その管理方法および装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9742690B2 (en) * 2014-08-20 2017-08-22 At&T Intellectual Property I, L.P. Load adaptation architecture framework for orchestrating and managing services in a cloud computing system
CN107005431B (zh) * 2014-11-21 2020-01-31 华为技术有限公司 更改基于服务的数据平面配置的系统和方法
US10148575B2 (en) * 2014-12-22 2018-12-04 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive load balancing in packet processing
US10212097B2 (en) * 2015-10-09 2019-02-19 Huawei Technologies Co., Ltd. Method and apparatus for admission control of virtual networks in a backhaul-limited communication network
US10432537B2 (en) * 2015-10-12 2019-10-01 Fujitsu Limited Service function chaining based on resource availability in the time dimension
CN106506393A (zh) * 2016-02-05 2017-03-15 华为技术有限公司 一种数据流处理方法、装置和系统
WO2017171011A1 (ja) * 2016-03-31 2017-10-05 日本電気株式会社 通信システムと機能配備装置と機能配備方法並びにプログラム
US10361969B2 (en) * 2016-08-30 2019-07-23 Cisco Technology, Inc. System and method for managing chained services in a network environment
US10171369B2 (en) * 2016-12-22 2019-01-01 Huawei Technologies Co., Ltd. Systems and methods for buffer management
US10545778B1 (en) * 2016-12-30 2020-01-28 Juniper Networks, Inc. Software redundancy for network functions
WO2018197924A1 (en) * 2017-04-24 2018-11-01 Telefonaktiebolaget Lm Ericsson (Publ) Method and system to detect virtual network function (vnf) congestion
KR102316971B1 (ko) * 2017-05-08 2021-10-25 삼성전자 주식회사 소프트웨어 정의 네트워크에서 동적 자원 할당 방법 및 장치
US11010205B2 (en) * 2017-05-30 2021-05-18 Hewlett Packard Enterprise Development Lp Virtual network function resource allocation
US10970099B2 (en) * 2017-06-01 2021-04-06 Intel Corporation Adaptive virtual function drivers for electronic devices
EP3646138A1 (en) * 2017-06-27 2020-05-06 Telefonaktiebolaget LM Ericsson (PUBL) Power management of an event-based processing system
US10965597B2 (en) * 2017-07-01 2021-03-30 Intel Corporation Virtual network function load balancer
EP4220447A1 (en) * 2017-10-24 2023-08-02 INTEL Corporation Hardware assisted virtual switch
US20190129771A1 (en) * 2017-10-26 2019-05-02 Nokia Solutions And Networks Oy Balanced message distribution in distributed message handling systems
US11909603B2 (en) * 2017-12-01 2024-02-20 Cisco Technology, Inc. Priority based resource management in a network functions virtualization (NFV) environment
US10579093B2 (en) * 2018-03-01 2020-03-03 At&T Intellectual Property I, L.P. Workload prediction based CPU frequency scaling
US20190042294A1 (en) * 2018-04-13 2019-02-07 Intel Corporation System and method for implementing virtualized network functions with a shared memory pool
US20190386895A1 (en) * 2018-06-13 2019-12-19 At&T Intellectual Property I, L.P. East-west traffic monitoring solutions for the microservice virtualized data center lan
US20190391856A1 (en) * 2018-06-26 2019-12-26 Intel Corporation Synchronization of multiple queues
US11296999B2 (en) * 2018-06-26 2022-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Sliding window based non-busy looping mode in cloud computing
US20190042339A1 (en) * 2018-06-29 2019-02-07 Intel Corporation Techniques for invocation of a function or a service
US20190045000A1 (en) * 2018-06-29 2019-02-07 Intel Corporation Technologies for load-aware traffic steering
US20190044889A1 (en) * 2018-06-29 2019-02-07 Intel Corporation Coalescing small payloads
US10768982B2 (en) * 2018-09-19 2020-09-08 Oracle International Corporation Engine for reactive execution of massively concurrent heterogeneous accelerated scripted streaming analyses
US11334382B2 (en) * 2019-04-30 2022-05-17 Intel Corporation Technologies for batching requests in an edge infrastructure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016157864A1 (ja) * 2015-03-31 2016-10-06 日本電気株式会社 ネットワークシステム、ネットワーク制御方法および制御装置
JP2017143477A (ja) * 2016-02-12 2017-08-17 株式会社日立製作所 仮想ネットワークシステム、及び、ネットワーク負荷分散方法
WO2017170312A1 (ja) * 2016-03-31 2017-10-05 日本電気株式会社 ネットワークシステム、その管理方法および装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
NISHIJIMA, TAKAMICHI: "Proposal for NFV scalable service chaining with decreased virtual resources", IEICE TECHNICAL REPORT, vol. 115, no. 404, 14 January 2016 (2016-01-14), pages 81 - 86 *
SAWAZAKI, FUMIHIKO: "A study about SPP design with countermesure of data buffer overflow.", IEICE TECHNICAL REPORT, vol. 117, no. 459, 22 February 2018 (2018-02-22), pages 23 - 25 *

Also Published As

Publication number Publication date
JP2020022146A (ja) 2020-02-06
JP7056454B2 (ja) 2022-04-19
US20210314262A1 (en) 2021-10-07
US11431636B2 (en) 2022-08-30

Similar Documents

Publication Publication Date Title
US20190140984A1 (en) Traffic and load aware dynamic queue management
US10178011B2 (en) Network traffic management via network switch QoS parameters analysis
US8681614B1 (en) Quality of service for inbound network traffic flows
RU2584449C2 (ru) Система управления связью, коммутационный узел и способ управления связью
EP3275140B1 (en) Technique for achieving low latency in data center network environments
CN103460199B (zh) 基于业务类别的自适应中断调整
Pitaev et al. Characterizing the performance of concurrent virtualized network functions with OVS-DPDK, FD. IO VPP and SR-IOV
Dusia et al. Network quality of service in docker containers
EP2670085A1 (en) System for performing Data Cut-Through
Niranjan Mysore et al. FasTrak: enabling express lanes in multi-tenant data centers
EP2843891A1 (en) Traffic and load aware dynamic queue management
Stephens et al. Titan: Fair Packet Scheduling for Commodity Multiqueue {NICs}
EP3198434A1 (en) Network classification for applications
CN111970149B (zh) 一种基于硬件防火墙qos的共享带宽实现方法
WO2020027065A1 (ja) 通信システム及び通信方法
JP6461834B2 (ja) ネットワーク負荷分散装置および方法
US11128569B2 (en) Load distribution system and load distribution method
US10097474B1 (en) Shared rate limiting
US11451479B2 (en) Network load distribution device and method
JP6571355B2 (ja) I/oデバイス仮想化装置、システムおよび帯域保証制御方法
US11245630B2 (en) Network system and network band control management method
JP2016146077A (ja) 計算機、通信制御方法および通信制御プログラム
JP6965838B2 (ja) ネットワーク負荷分散装置および方法
JPWO2021044593A1 (ja) エッジ装置、エッジ方法、エッジプログラム、管理装置、管理方法、管理プログラム、分散処理システム、及び、分散処理方法
Meyer et al. Low latency packet processing in software routers

Legal Events

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

Ref document number: 19844535

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19844535

Country of ref document: EP

Kind code of ref document: A1