JP7151246B2 - Information processing device, information processing method and program - Google Patents
Information processing device, information processing method and program Download PDFInfo
- Publication number
- JP7151246B2 JP7151246B2 JP2018141186A JP2018141186A JP7151246B2 JP 7151246 B2 JP7151246 B2 JP 7151246B2 JP 2018141186 A JP2018141186 A JP 2018141186A JP 2018141186 A JP2018141186 A JP 2018141186A JP 7151246 B2 JP7151246 B2 JP 7151246B2
- Authority
- JP
- Japan
- Prior art keywords
- rule
- unit
- packet
- data
- cache
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 230000010365 information processing Effects 0.000 title claims description 180
- 238000003672 processing method Methods 0.000 title claims description 6
- 238000012545 processing Methods 0.000 claims description 257
- 238000004891 communication Methods 0.000 claims description 154
- 238000000034 method Methods 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 26
- 238000012546 transfer Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 7
- 230000015654 memory Effects 0.000 description 60
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 11
- 238000012217 deletion Methods 0.000 description 10
- 230000037430 deletion Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 230000006866 deterioration Effects 0.000 description 7
- 230000006735 deficit Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000000284 extract Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、情報を処理する技術に関し、特に、データの通信に関連する情報を処理する技術に関する。 TECHNICAL FIELD The present invention relates to technology for processing information, and more particularly to technology for processing information related to communication of data.
一定のルールに従ってパケットを転送したり破棄したりする装置を、以下では、パケット処理装置と表記する。パケット処理装置には、例えば、Ethernet(登録商標)スイッチやルータ、SDN(Software Defined Network)スイッチ等がある。パケット処理装置は、パケットを受信し処理する場合、一般的に下記の処理を実行する。
1: パケットを通信インタフェース(以下では、NIC(Network Interface Controller)とも表記する)から受信する。
2: パケットを処理するために必要な情報を検索する。
3: 当該情報に基づき当該パケットを処理する。
A device that forwards or discards packets according to certain rules is hereinafter referred to as a packet processing device. Packet processing devices include, for example, Ethernet (registered trademark) switches, routers, and SDN (Software Defined Network) switches. When a packet processing device receives and processes a packet, it generally performs the following processing.
1: Receive packets from a communication interface (hereinafter also referred to as NIC (Network Interface Controller)).
2: Retrieve information needed to process the packet.
3: Process the packet based on the information.
上記2の処理は、Packet Classificationとも呼ばれ、あらかじめ与えられたルールセットの中から受信パケットに適合する最高優先度のルールを探索する処理である。ルールは、少なくとも、マッチ条件(例えばアドレスの範囲を表す情報)と、マッチ条件に関連付けられているアクションを示す情報とを含む。マッチ条件は、ルールが受信パケットに適用されるか判定するための条件である。例えば、マッチ条件が表す範囲にパケットの送信先のアドレスが含まれる場合、そのパケットはマッチ条件に適合すると判定される。アクションは、マッチ条件に適合すると判定されたパケットに対して実行される処理である。パケットがマッチ条件に適合すると判定された場合、ルールがそのパケットに適用される。すなわち、パケットがマッチ条件に適合すると判定された場合、そのマッチ条件に関連付けられているアクションがそのパケットに行われる。以下の説明において、パケットが適合するルールは、パケットが適合するマッチ条件を含むルールを表す。また、ルールは、優先度や統計情報を含む場合もある。また、上記2の処理は、FIB(Forwarding Information Base) Lookupと呼ばれる場合もある。また、上記ルールセットは、以下の説明では、FIBとも表記される。 The above process 2 is also called Packet Classification, and is a process of searching for a rule with the highest priority that matches the received packet from a set of rules given in advance. A rule includes at least a match condition (eg, information representing a range of addresses) and information indicating an action associated with the match condition. A match condition is a condition for determining whether a rule applies to a received packet. For example, if the range represented by the match condition includes the destination address of the packet, the packet is determined to match the match condition. Actions are processing performed on packets that are determined to meet the match conditions. If the packet is determined to meet the match criteria, the rule is applied to that packet. That is, if a packet is determined to meet a match condition, the action associated with that match condition is performed on that packet. In the following description, a rule that a packet matches refers to a rule containing match conditions that a packet matches. Rules may also include priorities and statistics. Further, the above process 2 is sometimes called FIB (Forwarding Information Base) Lookup. The rule set is also denoted as FIB in the following description.
近年クラウド等で、計算機仮想化技術が多用されている。計算機仮想化技術は、物理サーバ(以下では、ホストマシンとも表記)上に、仮想的なサーバ(以下では、仮想マシン、及び、Virtual Machine(VM)とも表記)を実装し、その仮想的なサーバを動作させる技術である。計算機仮想化技術では、仮想スイッチ(Viratual Switch)が、上述したパケット処理装置に相当する機能として、ホストマシンに実装される。パケットの転送は、仮想マシン間、および、仮想マシンとホストマシンが備える通信インタフェースとの間で、行われる。仮想マシンは、仮想的な通信インタフェースを備えるように構成される。仮想スイッチは、ホストマシンにおいて、SW(Software)によって実装されてもよい。言い換えると、仮想スイッチは、例えば、メモリにロードされた、仮想スイッチの機能を実現するプログラムを実行するプロセッサによって実現されてもよい。仮想スイッチは、ホストマシンにおいて、例えば回路等のHW(Hardware)によって実装されてもよい。仮想スイッチは、それらの組み合わせによって実装されてもよい。 In recent years, computer virtualization technology has been widely used in cloud computing and the like. Computer virtualization technology implements a virtual server (hereinafter also referred to as a virtual machine and virtual machine (VM)) on a physical server (hereinafter also referred to as a host machine), and the virtual server It is a technology that operates the In computer virtualization technology, a virtual switch is implemented in a host machine as a function corresponding to the packet processing device described above. Packets are transferred between virtual machines and between virtual machines and communication interfaces of host machines. A virtual machine is configured with a virtual communication interface. A virtual switch may be implemented by SW (Software) in a host machine. In other words, the virtual switch may be implemented, for example, by a processor executing a program loaded in memory that implements the functionality of the virtual switch. The virtual switch may be implemented by HW (Hardware) such as a circuit in the host machine. A virtual switch may be implemented by a combination thereof.
図1に、仮想スイッチを使用するホストマシンの構成例を示す。図1に示すホストマシン200は、CPU(Central Processing Unit)及びメインメモリ210と、仮想スイッチ用HW220とを含む。CPU及びメインメモリ210は、1個以上のCPUと、CPUがアクセスできる、メインメモリとして動作するメモリとによって実現される。仮想マシン214は、CPUおよびメインメモリにより実現される。言い換えると、仮想マシンは、メインメモリと、メインメモリにロードされた、仮想マシン214の機能を実現するプログラムを実行するCPUとによって実現される。仮想スイッチ221は、仮想スイッチ用HW220により実現される。以下の説明では、仮想マシン214の機能を実現するプログラムによって制御され、仮想マシン214として動作するCPUの動作を、仮想マシン214の動作として説明する。また、仮想スイッチ221として動作する仮想スイッチ用HW220の動作を、仮想スイッチ221の動作として説明する。CPU及びメインメモリ210と仮想スイッチ用HW220とは、バス230を介して接続されている。仮想マシン214の仮想NIC211と仮想スイッチ221との間のパケット通信は、メインメモリ内に確保されたキューを介して行われる。キューは、FIFO(First In First Out)のメモリであり、以下では、単にFIFOとも表記される。仮想スイッチ221が使用するFIB212は、メインメモリに配置される。
FIG. 1 shows a configuration example of a host machine using a virtual switch. The
以下の動作は、VM214宛のパケットがNIC240により受信された場合の例である。
(1)仮想スイッチ221がNIC240からパケットを受信する。
(2)仮想スイッチ221がFIB212(メインメモリ210上)を参照し、当該パケットの処理情報を決定する(ここでは、当該パケットをVM214に送信する、と決定したとする)。
(3)仮想スイッチ221が当該パケットを当該VM214の仮想NIC211の受信キュー(メインメモリ210内に確保されている)に追加する。
(4)VM214が当該受信キューから当該パケットを受信する。
The following operation is an example when a packet addressed to
(1) The
(2) The
(3) The
(4)
例えばクラウド環境においては、あるホストマシン上で動作する複数の仮想マシンが、それぞれ異なる顧客によって利用される場合がある(このような状況はマルチテナントとも呼ばれる)。このとき、ある仮想マシンが多くのCPUを使ったり、通信を行ったりしたときに、その影響により、他の仮想マシンがCPUを使えなくなったり、通信ができなくなったりすることは避けなければならない。そのために、QoS(Quality of Service)制御が使用される。通信に対するQoS制御は、例えば仮想スイッチで実行され、以下のような制御を含む。
(1)所定の閾値以上のレートの通信をブロックしたり、遅延させたり、そのような通信のパケットに印をつけたりする(Policing, Shaping)。
(2)特定の種類の通信に対し通信レートを保証する(帯域保証)。
(3)特定の種類の通信に対し遅延時間やジッタを保証する(遅延保証)。
(4)特定の種類の通信を優先する(優先制御)。
For example, in a cloud environment, multiple virtual machines running on a certain host machine may be used by different customers (this situation is also called multi-tenancy). At this time, when a certain virtual machine uses a large amount of CPU or performs communication, it must be avoided that other virtual machines cannot use the CPU or communication due to the influence. For that purpose, QoS (Quality of Service) control is used. QoS control for communication is performed, for example, by a virtual switch, and includes the following controls.
(1) Blocking or delaying communications with a rate above a predetermined threshold, or marking packets of such communications (Policing, Shaping).
(2) Guarantee a communication rate for a specific type of communication (bandwidth guarantee).
(3) Guarantee delay time and jitter for a specific type of communication (delay guarantee).
(4) Give priority to a specific type of communication (priority control).
通信のQoS制御のための方式やアルゴリズムは、例えば特許文献1によって開示されている。 A method and algorithm for QoS control of communication are disclosed in, for example, Japanese Unexamined Patent Application Publication No. 2002-200010.
例えば図1のような構成では、仮想NIC211で送受信されるパケットデータの通信(以下、データ系通信と表記する)が、メインメモリと仮想スイッチ用HW220との間で、バス230を介して行われる。また、仮想スイッチ221による、メインメモリ210に配置されているFIB212へのアクセスの通信(以下、制御系通信と表記する)も、同じバス230を介して行われる。言い換えると、データ系通信と制御系通信とが、バス230を共用する。そのため、QoS制御(例えば帯域保証)を行う際、特に仮想NIC211における通信に対し帯域保証が行えなくなる虞がある。
For example, in the configuration shown in FIG. 1, communication of packet data transmitted and received by the virtual NIC 211 (hereinafter referred to as data communication) is performed between the main memory and the
具体的には、仮想スイッチ221は、パケットを受信する毎に、そのパケットの処理方法を決定するためにFIB212にアクセスし、その結果、バスの帯域を消費する。一般に、受信パケットのサイズが小さいほどパケットの処理の回数は増え、その結果、FIB212へのアクセスによるバスの帯域の消費は増加する。バス230の帯域は有限であるため、FIB212へのアクセスによるバスの帯域の消費が増えた場合、パケットデータの通信に利用可能な帯域は減少する。
Specifically, each time the
そのため、通信トラフィックの状況に応じてパケットデータの通信に利用可能な帯域が変動し、その結果、帯域保証が行えなくなったり、帯域保証の精度が劣化したりする。 Therefore, the bandwidth that can be used for packet data communication fluctuates depending on the communication traffic situation, and as a result, the bandwidth cannot be guaranteed, or the accuracy of the bandwidth guarantee deteriorates.
特許文献1に記載の技術は、データ系通信と制御系通信が通信経路を共用する場合のQoS制御の精度の劣化を抑制することはできない。
The technique described in
本発明は、かかる問題に鑑みてなされたものである。本発明の目的は、パケットの処理にかかるデータ系通信と制御系通信とがバスを共用する場合であっても、QoS制御の精度の劣化を抑制できる情報処理装置等を提供することにある。 The present invention has been made in view of such problems. SUMMARY OF THE INVENTION It is an object of the present invention to provide an information processing apparatus and the like capable of suppressing degradation in accuracy of QoS control even when data system communication and control system communication related to packet processing share a bus.
本発明の一態様に係る情報処理装置は、データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定手段と、格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、を備える。 An information processing apparatus according to an aspect of the present invention indicates at least one of a plurality of types of processing including transfer for data, and caches a rule read via a communication path used for transferring the data. determining means for determining whether or not to store the rule in the means based on the size of the data; and control means for storing the rule determined to be stored in the cache means.
本発明の一態様に係る情報処理方法は、データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行い、格納すると決定された前記ルールの前記キャッシュ手段への格納を行う。 An information processing method according to an aspect of the present invention indicates at least one of a plurality of types of processing including transfer for data, and caches rules read out via a communication path used for transferring the data. A determination as to whether or not to store in the means is made based on the size of the data, and the rules determined to be stored are stored in the caching means.
本発明の一態様に係るプログラムは、コンピュータに、データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定処理と、格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御処理と、を実行させる。 A program according to an aspect of the present invention indicates to a computer at least one of a plurality of types of processing, including transfer, for data, and a rule read out via a communication path used for transferring the data, Determination processing for determining whether or not to store the rule in the cache means based on the size of the data, and control processing for storing the rule determined to be stored in the cache means are executed.
本発明には、パケットの処理にかかるデータ系通信と制御系通信とがバスを共用する場合であっても、QoS制御の精度の劣化を抑制できる。 According to the present invention, it is possible to suppress deterioration in accuracy of QoS control even when data system communication and control system communication related to packet processing share a bus.
以下、本発明の実施の形態について、図面を参照して詳細に説明する。 BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
<第1の実施形態>
<<第1の実施形態の構成例>>
まず、本発明の第1の実施形態の構成例について、図2~図5を用いて説明する。
図2は、本実施形態に係る情報処理装置100を実現する、コンピュータ10のハードウェア構成の一例を示すブロック図である。本実施形態の情報処理装置100は、例えば図2に示すコンピュータ10によって実現できる。図2に例示するコンピュータ10は、CPU101と、メモリ102と、バス103Aと、バス103Bと、バス103Cと、NIC104と、仮想スイッチ用ハードウェア120と、記憶装置105とを含む。情報処理装置100は、さらに、記憶媒体107にアクセスできるアクセス装置106と、CPU101とアクセス装置106とを接続するバス103Dとを含んでいてもよい。図2に示す構成要素の数や接続関係は一例である。情報処理装置100が含む構成要素の数は、図2に示されている数に限られない。
<First Embodiment>
<<Configuration Example of First Embodiment>>
First, a configuration example of the first embodiment of the present invention will be described with reference to FIGS. 2 to 5. FIG.
FIG. 2 is a block diagram showing an example of the hardware configuration of the
CPU101は、情報処理の演算を行うCPUである。CPU101は仮想化機能を備えていてよい。CPU101は、メモリ102に記憶されたプログラムおよびデータを用いて情報処理を行う。具体的には、CPU101は、メモリ102に格納されているプログラムを実行し、そのプログラムの制御のもとで、例えば、仮想マシンとして機能する。
The
メモリ102は、例えばRAM(Random Access Memory)等のメモリであり、コンピュータ10のメインメモリとして機能する。メモリ102は、メモリチップに加えて、メモリコントローラ、キャッシュメモリ、キャッシュコントローラ等を含んでもよい。
The
バス103Aは、それぞれ、CPU101とメモリ102とを接続するバスである。バス103Bは、仮想スイッチ用ハードウェア120とメモリ102とを接続するバスである。バス103Cは、CPU101と記憶装置105とを接続するバスである。バス103A、バス103B、及び、バス103Cは、異なるバスであってもよい。バス103A、バス103B、及び、バス103Cのいずれか又は全てが、同じバスであってもよい。バス103A、バス103B、及び、バス103Cは、以下の説明において、通信経路とも表記される。
A bus 103A is a bus that connects the
NIC104は、通信ネットワークに接続するための通信インタフェースである。情報処理装置100は、NIC104を介して通信ネットワークに接続される。NIC104は、例えば、Ethernet規格に準拠した通信インタフェースであってよい。コンピュータ10は、NIC104を介して、上述の通信ネットワークに接続されている他の装置と、例えば情報処理に係るデータの通信を行う。
仮想スイッチ用ハードウェア120は、NIC104と、後述する仮想NIC部111として動作するCPU101及びメモリ102との間で、転送されるデータのパケットの処理を行うハードウェアである。なお、本実施形態の説明では、データはパケットの形で送信される。また、パケットを、単にデータと表記することもある。以下の説明において、パケットは、送信されるデータから生成された、そのデータの少なくとも一部を含むパケットを表す。パケットは、例えば、IP(Internet Protocol)パケットである。仮想スイッチ用ハードウェア120は、Ethernetスイッチやルータ、SDNスイッチのように、一定のルールに従って、データのパケットを転送したり破棄したりするパケット処理装置としての機能を備える。仮想スイッチ用ハードウェア120は、例えば、仮想スイッチとして動作するプロセッサ及びメモリであってもよい。仮想スイッチ用ハードウェア120は、CPUなどのプロセッサによって実現されてもよい。仮想スイッチ用ハードウェア120は、FPGA(Field-Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)、DSP(Digital Signal Processor)等の回路よって実現されてもよい。仮想スイッチ用ハードウェア120は、それらの回路等の組み合わせによって実現されてもよい。仮想スイッチ用ハードウェア120は、さらに、後述のキャッシュ部122として機能する、メモリ等の記憶装置を含む。仮想スイッチ用ハードウェア120は、後述するルール記憶部112に記憶されるFIB情報を参照し、FIB情報に基づいてパケット処理方法を決定する。
The
記憶装置105は、例えばハードディスク等の二次記憶装置である。記憶装置105は、CPU101が実行するプログラムや、プログラムによって制御されるCPU101が情報処理に使用するデータなどを記憶する。CPU101は、記憶装置105に格納されているプログラムを、例えばメモリ102にロードし、メモリ102にロードされたプログラムを実行してもよい。
The
記憶媒体107は、例えば、RAM、ROM及びフラッシュメモリなどの半導体記憶媒体、磁気ディスク及び光ディスク等の可搬記憶媒体、又は、ハードディスク等の記憶装置などである。記憶媒体107は、上述のプログラムを記憶していてもよい。プログラムは、例えばCPU101によって、記憶媒体107から読み出される。読み出されたプログラムは、例えばCPU101によって、記憶装置105に書き込まれてもよい。読み出されたプログラムは、例えばCPU101によってメモリ102にロードされてもよい。記憶媒体107は、CPU101が情報処理に使用するデータなどを記憶していてもよい。記憶媒体107が記憶するデータは、例えばCPU101によって読み出される。読み出されたデータは、例えばCPU101によって、記憶装置105に格納されてもよい。読み出されたデータは、例えばCPU101によって、メモリ102にロードされてもよい。
The
アクセス装置106は、記憶媒体107にアクセスできる装置である。具体的には、アクセス装置106は、記憶媒体107に格納されているプログラムやデータなどを、読み出すことができる装置である。例えば、記憶媒体107が、CD-ROM(Compact Disc-Read Only Memory)等の媒体である場合、アクセス装置106は、ドライブ装置であってもよい。記憶媒体107が、例えばフラッシュメモリなどの不揮発メモリである場合、アクセス装置106は、コントローラと、コントローラに接続されたコネクタ又はスロットとの組み合わせ等であってもよい。記憶媒体107が書き込み可能な記憶媒体であれば、アクセス装置106は、プログラムやデータなどを記憶媒体107に書き込んでもよい。
The
図3は、本実施形態に係る情報処理装置100の構成の一例を示すブロック図である。図3は、本実施形態の情報処理装置100の機能構成の一例を表す。図3に例示する情報処理装置100は、仮想通信インタフェース部111と、ルール記憶部112と、ルール管理部113と、情報処理部114と、指示受付部115と、パケット処理部121と、キャッシュ部122と、スケジューリング部123と、通信インタフェース部124と、決定部125と、制御部126とを含む。情報処理装置100には、仮想マシンが構築されていてよい。具体的には、情報処理部114が、仮想マシンとして動作してよい。言い換えると、情報処理部114は、情報処理装置100において動作する仮想マシンであってもよい。図3に示す例では、情報処理部114の数は、3である。仮想通信インタフェース部111の数は、情報処理部114の数と同じであり、3である。さらに、通信インタフェース部124の数も、3である。通信インタフェース部124の数は、情報処理部114の数と同じでなくてよい。図3に示す構成要素の数や接続関係は一例である。また、接続関係は図3に示す例に限られない。これらは、図2に示したハードウェアによって実現される。また、以下の説明では、情報処理部114と、仮想通信インタフェース部111とを、まとめて、実行部110Aと表記することもある。言い換えると、実行部110Aは、情報処理部114の機能と、仮想通信インタフェース部111の機能とを提供する。
FIG. 3 is a block diagram showing an example of the configuration of the
後述されるように、具体的には、情報処理部114、仮想NIC部111及びルール管理部113は、例えば、CPU101及びメモリ102によって実現される。実行部110Aも、CPU101及びメモリ102によって実現される。ルール記憶部112は、例えば、メモリ102によって実現される。パケット処理部121、キャッシュ部122、スケジューリング部123、決定部125及び制御部126は、例えば、仮想スイッチ用ハードウェア120によって実現される。
Specifically, the
なお、以下の説明及び図面において、仮想通信インタフェース部111を、仮想NIC部111とも表記する。また、通信インタフェース部124を、NIC部124とも表記する。また、複数の仮想NIC部111を区別する必要が無い説明、複数の仮想NIC部111に共通する説明、及び、複数の仮想NIC部111の全体についての説明では、複数の仮想NIC部111は、区別せずに、仮想NIC部111と表記される。また、複数の仮想NIC部111を個々に区別する必要がある場合、複数の仮想NIC部111を、仮想NIC部111A、仮想NIC部111B、及び、仮想NIC部111Cと表記する。仮想NIC部111A、仮想NIC部111B、及び、仮想NIC部111Cは、まとめて、仮想NIC部111A~Cとも表記されることもある。
Note that the virtual communication interface unit 111 is also referred to as the virtual NIC unit 111 in the following description and drawings. Also, the
図13は、本実施形態に係る情報処理システム1の構成の例を表すブロック図である。なお、後述される、第2の実施形態に係る情報処理システム1も、図13に示す構成を備えていてよい。図13に示す例では、情報処理システム1は、情報処理装置100と、情報処理装置100Aと、情報処理装置100Bと、情報処理装置100Cと、管理装置300とを含む。情報処理装置100、情報処理装置100A、情報処理装置100B、情報処理装置100C、及び、管理装置300は、通信ネットワーク400を介して、通信可能に接続されている。情報処理装置100は、NIC104を介して通信ネットワーク400と接続されている。情報処理装置100A、情報処理装置100B及び情報処理装置100Cは、情報処理装置100と同様の構成を備えていてもよい。情報処理装置100A、情報処理装置100B、情報処理装置100C及び管理装置300は、一般的なコンピュータであってもよい。情報処理装置100は、通信ネットワーク400を介して、情報処理装置100A、情報処理装置100B、情報処理装置100C、及び、管理装置300と、通信(例えば、データ等の送信及び受信)を行う。具体的には、情報処理装置100に構築されている仮想マシンは、仮想NIC部111、NIC部124及び通信ネットワーク400を介して、情報処理装置100A、情報処理装置100B及び情報処理装置100C等と通信を行う。言い換えると、情報処理装置100は、情報処理装置100に構築されている仮想マシンが、仮想NIC部111、NIC部124及び通信ネットワーク400を介して、通信ネットワーク400に接続されている他の装置と通信できるように構成されている。なお、図13に示す通信ネットワーク400に接続されている装置は、単なる例であり、図13に示す例に限られない。
FIG. 13 is a block diagram showing an example of the configuration of the
情報処理部114は、仮想NIC部111を通じて、例えばパケットの形式の、データの送受信を行う。情報処理部114は、受け取ったパケットのデータを使用して情報処理を行ってもよい。情報処理部114は、例えばメモリ102等に記憶されているデータ等を用いて、情報処理を行ってもよい。情報処理部114は、他のデータを用いて情報処理を行ってもよい。情報処理部114によって行われる情報処理に、限定はない。情報処理部114は、CPU101によって実現される。上述のように、情報処理部114は、仮想マシンとして実現されていてもよい。情報処理部114は、仮想マシンにおいて動作するプログラムとして実現されてもよい。
The
仮想NIC部111は、仮想的な通信インタフェースであり、情報処理部114とスケジューリング部123との間の通信を実現する。仮想NIC部111は、たとえば、仮想マシンの一部として構成される仮想NICであってもよい。仮想NIC部111は、CPU101およびメモリ102によって実現される。仮想NIC部111を介したパケットの通信は、メモリ102に確保された、例えばFIFOのキューによって実現される。例えば、情報処理部114は、仮想NIC部111を介して送信するパケットを、その仮想NIC部111用のキューにEnqueueする。スケジューリング部123は、仮想NIC部111用のキューからパケットをDequeueする。それにより、スケジューリング部123は、情報処理部114が送信したパケットを受信する。
The virtual NIC unit 111 is a virtual communication interface and implements communication between the
ルール記憶部112は、受信したパケットに行う処理を決定するための情報である、FIBを記憶する。ルール記憶部112は、FIBとして蓄積された、ルールの集合を記憶する。ルールは、少なくとも、マッチ条件(例えば、アドレスに関する条件)と、マッチ条件に関連付けられているアクションを示す情報とを含む。アクションは、例えば、そのアクションに関連付けられているマッチ条件に、送信先のアドレスが適合したパケットに対して、実行される処理である。以下では、ルールに含まれるマッチ条件にパケットの送信先のアドレスが適合する場合、そのルールは、そのパケットに適合するルールと表記される。ルール記憶部112は、メモリ102によって実現される。以下の説明では、ルール記憶部112が記憶するルールの集合を、FIBとも表記する。ルール記憶部112が記憶するルールは、ルール間の優先度を含んでいてもよい。ルール記憶部112が記憶するルールは、ワイルドカードによる条件を含んでいてもよい。ルール記憶部112が記憶するルールは、完全一致型のルール(Exact Match)であってもよい。ルール記憶部112が記憶するルールは、それらの組み合わせであってもよい。
The
指示受付部115は、ルール記憶部112が記憶するルールの、追加の指示、削除の指示、及び、変更の指示を受け付ける。指示受付部115は、これらの指示を、例えば、通信インタフェース部124を介して、例えば、管理装置300から受け取ってもよい。指示受付部115は、これらの指示を、例えば、情報処理装置100のユーザ又は管理者から、キーボードなどの入力装置を介して受け取ってもよい。指示受付部115は、受け付けた上述の指示を、ルール管理部113に送出する。なお、図3では、指示受付部115が指示を受け付ける経路は、簡単のため省略されている。
The
ルール管理部113は、ルール記憶部112が記憶するFIBの内容を管理する。具体的には、ルール管理部113は、例えば指示受付部115から受け取った指示に従って、ルール記憶部112が記憶するルールの、追加、削除、及び、変更を行う。ルール管理部113は、ルールの追加、削除、及び、変更を、例えば、情報処理装置100のユーザ、及び、管理装置300等からの指示に従って行ってもよい。ルール管理部113は、ルールの追加、削除、及び、変更を、例えば、情報処理部114、及び、パケット処理部121等からの要求に基づき行ってもよい。ルール管理部113は、例えば、CPU101およびメモリ102によって実現されてもよい。
A
パケット処理部121は、NIC部124および仮想NIC部111からパケットを受信し、受信したパケットを処理する。パケット処理部121は、受信したパケットを処理する際、キャッシュ部122に格納されているルール又はルール記憶部112に記憶されているFIBのうち、受信したパケットに適合するルールを読み出す。
The
パケット処理部121は、例えば、受信したパケットの情報を、制御部126に送信する。パケットの情報は、ルールが含むマッチ条件との比較に使用される情報(例えば、送信先のアドレス及び送信元のアドレス等)と、パケットのサイズとを含む。制御部126に送信されるパケットの情報は、以下の説明では、キーとも表記される。例えば、パケットが、IPパケットである場合などでは、パケットの情報(例えば、後述のキー)は、パケットのヘッダであってもよい。なお、IPパケットのヘッダは、送信元のIPアドレス、宛先のIPアドレス、データグラム長等を含む。また、例えば、パケット処理部121は、データグラム長を、パケットのサイズ(すなわち、パケット長)として使用してもよい。以下の説明のように、パケットのサイズ等を含むパケットの情報を制御部126に送信する場合、パケット処理部121は、パケットのヘッダの部分のデータを、キーとして送信してよい。
The
後で詳述するように、制御部126が、パケット処理部121から、受信したパケットの情報を受け取り、受け取ったパケットの情報に適合するルールを、キャッシュ部122又はルール記憶部112から読み出す。制御部126は、読み出したルールを、パケット処理部121に送信する。
As will be described in detail later, the
パケット処理部121は、制御部126によって、キャッシュ部122又はルール記憶部112から読み出されたルールを、制御部126から受け取る。パケット処理部121は、読み出されたルールに従って、すなわち、FIBに含まれ、受信したパケットに適合するルールに従って、受信したパケットを処理する。言い換えると、パケット処理部121は、受信したパケットが適合するアドレス条件に関連付けられている情報が示すアクションを実行する。言い換えると、パケット処理部121は、受信したパケットが適合するルールに含まれる情報が示すアクションを実行する。アクションは、例えば、以下のいずれかの処理である。アクションは、例えば、以下の処理のいずれかの組み合わせであってもよい。
(1)パケットを、指定されたNIC部124または仮想NIC部111に送信する。
(2)パケットを破棄する。
(3)パケットを変更する。
(4)パケットの受信を、予め定められた通知先に、通知する。
The
(1) Send the packet to the specified
(2) Discard the packet.
(3) Change the packet.
(4) Notifying a predetermined notification destination of the reception of the packet.
通知先は、例えば、ルール管理部113及び管理装置300などであってもよい。パケット処理部121は、パケットを破棄したか否かを、制御部126に通知してもよい。パケット処理部121は、仮想スイッチ用ハードウェア120によって実現される。
The notification destination may be, for example, the
キャッシュ部122は、ルール記憶部112が記憶するFIBの一部(すなわち、ルールの集合の部分集合)をキャッシュする。言い換えると、キャッシュ部122は、ルール記憶部112が記憶するFIBの一部を、キャッシュとして記憶する。キャッシュ部122は、仮想スイッチ用ハードウェア120によって実現される。キャッシュ部122は、例えば、キャッシュメモリとして実装されてもよい。キャッシュ部122は、例えば、ハッシュテーブルを記憶するメモリとして実装されてもよい。キャッシュ部122は、ルールに加えて、ルールの優先度を記憶していてもよい。上述のように、ルールが、そのルールの優先度を含んでいてもよい。優先度は、優先的にキャッシュ部122に格納されるか否かを示す、二値の値によって表されていてもよい。すなわち、優先度は、優先的にキャッシュ部122に格納されることを示す値(例えば1)、又は、優先的にキャッシュ部122に格納されないことを示す値(例えば0)のいずれかであってもよい。この場合の優先度は、後述の優先フラグに該当する。以下の説明では、優先的にキャッシュ部122に格納されることを示す値をPと表記し、優先的にキャッシュ部122に格納されないことを示す値をNと表記する。
The
キャッシュ部122は、さらに、ルールに加えて、そのルールをキャッシュ部122から削除するか否かを決定するのに使用される情報を記憶していてよい。ルールをキャッシュ部122から削除するか否かを決定するのに使用される情報(例えば、LRU情報)は、例えば、そのルールが最後に使用された時刻を示す情報であってもよい。時刻を示す情報は、日付の情報を含んでいてよい。LRU情報は、最後に使用された時期の新しさの順位を表す値であってもよい。その場合、例えば制御部126が、キャッシュ部122に格納されているルールを読み出した際、読み出したルールのLRU情報を、1位を表す情報に変更してよい。そして、制御部126は、キャッシュ部122に格納されている他の全てのルールのLRU情報を、変更前の順位より1つ下の順位(すなわち、変更前の順位を表す値より1つ大きい値によって表される順位)を表す情報に変更してもよい。LRU情報は、例えば、使用されたか否かを表す情報(本実施形態では、ルールが読み出されたか否かを表す情報)であってもよい。その場合、例えば制御部126が、キャッシュ部122に格納されているルールのLRU情報を、定期的に、使用されていないことを表す情報に設定してよい。そして、制御部126は、ルールがキャッシュ部122から読み出された場合、そのルールのLRU情報を、使用されたことを表す情報に設定してよい。
制御部126は、パケット処理部121による、ルール記憶部112からのルールの読み出しを中継する。具体的には、制御部126は、パケット処理部121から、受信したパケットの情報を受け取る。制御部126は、受け取った、パケットの情報に基づいて、パケット処理部121が受信したパケットに適合するマッチ条件を含むルールを、キャッシュ部122に格納されているルール及びルール記憶部112に格納されているルールの中から特定する。具体的には、制御部126は、例えば、パケット情報が複数のルールのマッチ条件に適合する場合、制御部126は、所定の方法に従って、パケットの情報に最もよく適合するマッチ条件を含むルールを、受信したパケットに適合するルールとして選択してもよい。その場合、例えば、マッチ条件がアドレスに対する条件である場合、制御部126は、パケットの情報に適合するマッチ条件のうち、適合するアドレスの数が最も少ないマッチ条件を、パケットの情報に最もよく適合するマッチ条件として選択してもよい。パケットの情報に最もよく適合するマッチ条件を選択する方法は、以上で説明した方法に限られない。
The
パケットの情報に適合するマッチ条件を含むルールがキャッシュ部122に格納されている場合、制御部126は、キャッシュ部122からそのルールを読み出す。パケットの情報に適合するマッチ条件を含むルールがキャッシュ部122に格納されておらず、ルール記憶部112に格納されている場合、制御部126は、ルール記憶部112からそのルールを読み出す。制御部126は、読み出したルールをパケット処理部121に送信する。キャッシュ部122及びルール記憶部112に格納されているルールに、受信したパケットの情報に適合するマッチ条件を含むルールが存在しない場合、制御部126は、ルールが存在しないことを示す情報を、パケット処理部121に送信してもよい。
If a rule including a matching condition that matches the packet information is stored in
ルール記憶部112から読み出されたルールがキャッシュ部122に格納されていない場合、制御部126は、パケットのサイズを、決定部125に送信する。後で詳述されるように、決定部125は、パケットのサイズに基づいて、そのパケットに適合するルールを、キャッシュ部122に格納するか否かを決定する。決定部125は、小さいパケットに関するルールを、優先的にキャッシュとしてキャッシュ部122に格納するように決定する。決定部125は、サイズを受け取ったパケットに適合するルールをキャッシュ部122に格納するか否かを決定した結果を、制御部126に送信する。制御部126は、決定部125によって決定された結果を、決定部125から受け取る。決定部125は、さらに、キャッシュ部122から削除するルールを決定してもよい。いずれかのルールをキャッシュ部122から削除すると決定した場合、決定部125は、削除すると決定したルールを特定する情報を、制御部126に送信する。決定部125については後で詳述する。
If the rule read from the
ルール記憶部112から読み出されたルールがキャッシュ部122に格納されていない場合、制御部126は、後で詳述する決定部125による決定に従って、小さいパケットに関するルールを、優先的にキャッシュとしてキャッシュ部122に格納する。制御部126は、スケジューリング部123によって破棄されたパケットに関するルールを、優先的にキャッシュとしてキャッシュ部122に格納する。制御部126は、削除すると決定したルールの識別情報を決定部125から受け取った場合、キャッシュ部122から削除すると決定したルールをキャッシュ部122から削除する。制御部126による、キャッシュ部122からのルールの削除、及び、ルールのキャッシュ部122への格納については、後で詳述する。
If the rule read from the
決定部125は、パケットのサイズを制御部126から受信する。決定部125は、受信したパケットのサイズに基づいて、そのパケットに適合するルールをキャッシュ部122に優先的に格納するか否かを決定する。言い換えると、決定部125は、受信したパケットのサイズに基づいて、そのパケットに対する処理(すなわち、アクション)を表すルールを、キャッシュ部122に優先的に格納するか否かを決定する。決定部125は、さらに、キャッシュ部122に格納されているルールの、格納された順番及び優先度と、決定した結果とに基づいて、受信したパケットに適合するルールをキャッシュ部122に格納するか否かを決定する。
The
具体的には、パケット処理部121によって要求されたルールに適合するパケットのサイズが、所定の閾値以下である場合、決定部125は、そのルールを優先的にキャッシュ部122に格納すると判定する。決定部125は、例えば、そのルールの優先度を、Pに設定してもよい。パケット処理部121によって要求されたルールに適合するパケットのサイズが、所定の閾値よりも大きい場合、決定部125は、そのルールを非優先的にキャッシュ部122に格納すると判定する。そのルールの優先度を、Nに設定する。以下、キャッシュ部122に格納するか否かが判定されるルールを、対象ルールと表記する。
Specifically, when the size of a packet conforming to a rule requested by the
キャッシュ部122に空きがある場合、パケット処理部121は、対象ルールが優先的にキャッシュ部122に格納されると判定されたか否かによらずに(すなわち、対象ルールの優先度によらずに)、対象ルールをキャッシュ部122に格納すると決定する。
If there is space in the
キャッシュ部122に、非優先的に格納すると判定されたルールが格納されている場合、決定部125は、キャッシュ部122に格納されている、非優先的に格納すると判定されたルールの中から、所定の方法に従って、削除されるルールを決定する。削除されるルールを決定する所定の方法は、例えば、LRU(Least Recently Used)アルゴリズムであってよい。その場合、決定部125は、キャッシュ部122に格納されている、非優先的に格納すると判定されたルールの中で、最後に使われてから最も長い時間が経過したルールを特定し、特定したルールを削除すると決定する。
When the
削除するか否かを決定するのに使用される情報として、使用されたか否かを表す情報が格納されている場合、決定部125は、使用されていないことを表す情報に関連付けられている、非優先的に格納すると判定されたルールから、削除されるルールを決定する。この場合の、削除されるルールを決定する方法は、既存のいずれかの方法でよい。例えば、決定部125は、決定部125は、使用されていないことを表す情報に関連付けられている、非優先的に格納すると判定されたルールから、ランダムに、削除されるルールを決定してもよい。
If the information used to determine whether to delete is stored as information indicating whether or not it has been used, the determining
そして、決定部125は、対象ルールが優先的にキャッシュ部122に格納されると判定されたか否かによらずに、対象ルールをキャッシュ部122に格納すると決定する。
Then, the
キャッシュ部122に、優先的に格納すると判定されたルールのみが格納されており、対象ルールが非優先的に格納されると判定された場合、決定部125は、対象ルールをキャッシュ部122に格納しないと決定する。
If only the rule determined to be stored preferentially is stored in the
キャッシュ部122に、優先的に格納すると判定されたルールのみが格納されており、対象ルールが優先的に格納されると判定された場合、決定部125は、キャッシュ部122に格納されているルールの中から、所定の方法に従って、削除されるルールを決定する。削除されるルールを決定する所定の方法は、非優先的に格納すると判定されたルールの中から削除されるルールを決定する方法と同じでよい。削除されるルールを決定する所定の方法は、例えば、LRU(Least Recently Used)アルゴリズムであってよい。その場合、決定部125は、キャッシュ部122に格納されているルールの中で、最後に使われてから最も長い時間が経過したルールを削除すると決定する。そして、決定部125は、対象ルールをキャッシュ部122に格納すると決定する。
Only the rules determined to be stored preferentially are stored in the
対象ルールがキャッシュ部122に格納されている場合、決定部125は、対象ルールをキャッシュ部122に格納しないと決定する。
If the target rule is stored in the
制御部126は、決定部125による決定に従って、キャッシュ部122からのルールの削除及びキャッシュ部122への対象ルールの格納を行う。具体的には、決定部125によって削除すると決定されたルールが存在する場合、制御部126は、そのルールを、キャッシュ部122から削除する。決定部125によって削除すると決定されたルールが存在しない場合(すなわち、決定部125がルールを削除すると決定しなかった場合)、制御部126は、キャッシュ部122からルールを削除しない。決定部125が対象ルールを格納すると決定した場合、制御部126は、対象ルールと、対象ルールの優先度と、LRU情報とを、キャッシュ部122に格納する。
The
対象ルールを新たにキャッシュ部122に格納する際、LRU情報が対象ルールを使用した時刻を示す情報である場合、制御部126は、対象ルールを最後に使用した時刻に、例えば、制御部126が対象ルールをキャッシュ部122に格納した時刻を設定してもよい。制御部126は、対象ルールを最後に使用した時刻に、例えば、対象ルールをパケット処理部121に送信した時刻を設定してもよい。制御部126は、他の方法によって、LRU情報を設定してもよい。決定部125が対象ルールを格納しないと決定した場合、制御部126は、対象ルールをキャッシュ部122に格納しない。対象ルールがキャッシュ部122に格納されている場合、制御部126は、キャッシュ部122に格納さている、対象ルールのLRU情報を更新する。この場合のLRU情報の設定方法は、新たに格納されるルールのLRU情報の設定方法と同じでよい。
When the target rule is newly stored in the
制御部126は、さらに、パケット処理部121及び後で詳述するスケジューリング部123から、破棄されたパケットの情報(例えば、破棄されたパケットのキー)を受信してもよい。
The
制御部126は、破棄されたパケットの情報に基づいて、キャッシュ部122に格納されている、破棄されたパケットに適合するルールを検出してもよい。具体的には、制御部126は、破棄されたパケットの情報が、ルールに含まれるマッチ条件に適合する場合、そのルールを、破棄されたパケットに適合するルールとして検出してよい。破棄されたパケットに適合するルールがキャッシュ部122に格納されている場合、制御部126は、そのパケットの優先度を示す情報を、そのパケットが優先的に格納されることを示す情報に更新してもよい。例えば、そのパケットの優先度を示す情報が、そのパケットが非優先的に格納されることを示す情報である場合に、制御部126は、そのパケットの優先度を示す情報を、そのパケットが優先的に格納されることを示す情報に変更してよい。なお、以上の説明における「破棄されたパケット」は、既に破棄されたパケットではなく、破棄される条件に当てはまった、まだ破棄されていないパケットであってもよい。以上の説明における「破棄されたパケット」は、破棄されることが決定された、まだ破棄されていないパケットであってもよい。
The
スケジューリング部123は、パケット処理部121が仮想NIC部111に送信するパケットをパケット処理部121から受取り、受け取った、仮想NIC部111に送信されるパケットの送信のスケジューリングを行う。スケジューリング部123は、仮想NIC部111からパケットを受信し、受信したパケットをパケット処理部121に送信する。スケジューリング部123は、仮想スイッチ用ハードウェア120によって実現される。
The
図4は、本実施形態に係るスケジューリング部123の構成の一例を示すブロック図である。図4に例示するスケジューリング部123は、選択部1231と、不足カウンタ部1232と、キュー部1233と、受付部1234と、を含む。不足カウンタ部1232の数と、キュー部1233の数は、それぞれ、仮想通信インタフェース部111(すなわち、仮想NIC部111)の数と同じである。不足カウンタ部1232とキュー部1233とは、1対1で関連付けられている。仮想通信インタフェース部111とキュー部1233とは、1対1で関連付けられている。
FIG. 4 is a block diagram showing an example of the configuration of the
図4に示す例では、不足カウンタ部1232の数は3であり、キュー部1233の数も3である。以下の説明において、不足カウンタ部1232を個々に区別する必要が無い場合は、これらの不足カウンタ部1232を、単に、不足カウンタ部1232と表記する。不足カウンタ部1232を個々に区別する必要がある場合は、これらの不足カウンタ部1232を、不足カウンタ部1232A、不足カウンタ部1232B、及び、不足カウンタ部1232Cと表記する。同様に、キュー部1233を個々に区別する必要が無い場合は、これらのキュー部1233を、単に、キュー部1233と表記する。キュー部1233を個々に区別する必要がある場合は、これらのキュー部1233を、キュー部1233A、キュー部1233B、及び、キュー部1233Cと表記する。不足カウンタ部1232Aは、キュー部1233Aと関連付けられており、不足カウンタ部1232Bは、キュー部1233Bと関連付けられており、そして、不足カウンタ部1232Cは、キュー部1233Cと関連付けられている。キュー部1233Aは、仮想NIC部111Aと関連付けられており、キュー部1233Bは、仮想NIC部111Bと関連付けられており、そして、キュー部1233Cは、仮想NIC部111Cと関連付けられている。
In the example shown in FIG. 4, the number of
スケジューリング部123は、例えば、不足ラウンドロビン(Deficit Round-Rogin、DRR)方式により、パケット処理部121が仮想NIC部111に送信するパケットのスケジューリングを行う。ただし、パケット処理部121が仮想NIC部111に送信するパケットのスケジューリングの方法は、DRR方式に限定されない。スケジューリング部123は、他のスケジューリングの方法に従って、スケジューリングを行ってもよい。
The
選択部1231は、キュー部1233に格納されているパケットの中から、次に送信するパケットを、DRR方式によって選択する。選択部1231は、選択したパケットを、選択したパケットが格納されているキュー部1233に関連付けられている仮想NIC部111に送信する。例えば、キュー部1233Aは仮想NIC部111Aに関連付けられているので、キュー部1233Aに格納されているパケットを選択した場合、選択部1231は、選択したパケットを、仮想NIC部111Aに送信する。
The
不足カウンタ部1232は、DRR方式で用いられる不足カウンタ(Deficit Counter、DC)を記憶する。不足カウンタ部1232は、それぞれ、異なるキュー部1233に関連付けられている。
The
キュー部1233は、それぞれ、そのキュー部1233が関連付けられている仮想NIC部111に向けてパケット処理部121が送信するパケットを、FIFOとして記憶する。例えば、キュー部1233Aは、キュー部1233Aと関連付けられている仮想NIC部111Aに向けてパケット処理部121が送信するパケットを記憶する。パケットの送信先である仮想NIC部111に関連付けられているキュー部1233がフルである場合、送信パケットは、後で詳細に説明される受付部1234によって、例えば、破棄される。すなわち、パケットの送信先である仮想NIC部111に関連付けられているキュー部1233の記憶領域に空きが無く、そのキュー部1233に新たにパケットを格納できない場合、受付部1234は、そのパケットを破棄する。
Each
受付部1234は、仮想NIC部111に向けて送信するパケットをパケット処理部121から受信する。受付部1234は、受信したパケットを、そのパケットの送信先に応じて、キュー部1233のいずれかに振り分ける。すなわち、受付部1234は、受信したパケットを、そのパケットの送信先に関連付けられているキュー部1233に格納する。受信したパケットの送信先に関連付けられているキュー部1233がフルである場合、受付部1234は、そのパケットを破棄する。スケジューリング部123(具体的には、受付部1234)は、パケットを破棄した場合、例えば、パケットを破棄したことを示す情報と、破棄したパケットの情報(例えば、キー)とを、制御部126に送信する。パケットを破棄したことを示す情報は、破棄したパケットの情報そのものであってもよい。
The receiving
DRR方式によるスケジューリングの概要は以下のとおりである。
(1) 各キューをラウンドロビンでチェックする。言い換えると、複数のキューから1つのキューを順番に選択する。
(2)選択されたキューが空である場合、不足カウンタの値を0に設定し、選択されたキューに対する処理を終了し、次のキューの選択に移る。
(3)選択されたキューが空でない場合、不足カウンタの値に、キュー毎に予め与えられた所定値を加算する。
(4)選択されたキューの先頭パケットの長さが、当該キューの不足カウンタの値以下である場合、先頭パケットをそのキューから取り出し、取り出したパケットを送信先(本実施形態では、例えば、仮想NIC部111の1つ)に送信する。
(5)選択されたキューから取り出され、送信先に送信されたパケットのサイズの値を、選択されたキューの不足カウンタの値から引く。
(6)選択されたキューの先頭のパケットのサイズが、不足カウンタの値より小さい場合、選択されたキューに対する処理を終了し、次のキューの選択に移る。
An outline of scheduling by the DRR method is as follows.
(1) Check each queue in a round-robin fashion. In other words, one queue is selected in order from a plurality of queues.
(2) If the selected queue is empty, set the value of the deficit counter to 0, terminate the processing for the selected queue, and proceed to select the next queue.
(3) If the selected queue is not empty, add a predetermined value given in advance to each queue to the value of the shortage counter.
(4) If the length of the first packet in the selected queue is equal to or less than the value of the shortage counter of the queue, the first packet is extracted from the queue, and the extracted packet is sent to the destination (in this embodiment, for example, a virtual one of the NIC units 111).
(5) Subtract the value of the size of the packet dequeued from the selected queue and sent to the destination from the value of the deficit counter of the selected queue.
(6) If the size of the packet at the head of the selected queue is smaller than the value of the deficit counter, terminate the processing for the selected queue and proceed to select the next queue.
キュー毎に予め与えられた所定値は、Quantamと表記される。キュー毎に予め与えられている所定値は、以下の説明では、調整値とも表記される。キューに与えられているQuantamが大きいほど、より多くのパケットがそのキューから送信される。言い換えると、キューに与えられているQuantamが大きいほど、そのキューを介した通信に、より広い帯域が割り当てられており、より広い帯域が保証される。 A predetermined value given in advance to each queue is denoted as Quantum. The predetermined value given to each queue in advance is also referred to as an adjustment value in the following description. The higher the Quantum given to a queue, the more packets will be sent from that queue. In other words, the greater the Quantum given to a queue, the greater the bandwidth allocated and guaranteed to communication via that queue.
スケジューリング部123において、仮想NIC部111に対するQuantam(すなわち、不足カウンタ部1232に格納される値に足される所定値)は、予め選択部1231に与えられていてよい。また、管理装置によって、選択部1231に与えられてもよい。
In the
図5は、キャッシュ部122を、キャッシュメモリ(4-wayセットアソシエイティブ)として実現した場合の構成の一例を示す模式図である。図5に構成を示すキャッシュ部122は、基本的にライン入れ替えポリシとしてLRU(Least Recently Used)方式を使用する。図5に示すキャッシュ部122の構成は、キャッシュ部122の実装例であり、キャッシュ部122の構成は、図5に示す例に限られない。
FIG. 5 is a schematic diagram showing an example of a configuration when the
一般的なキャッシュメモリは、メモリのアドレスを入力として受け取り、当該アドレスに記憶されるデータのキャッシュ値を出力する。キャッシュ部122は、キー(例えば、ルールのマッチ条件に使用されるパケットヘッダの値)を入力として受け取り、当該キーに適合するルールを出力する。
A typical cache memory receives a memory address as input and outputs the cache value of the data stored at that address. The
キャッシュ部122は、キーの一部(例えば、LSBからNビット(Nは整数)のビット列、indexと表記)をWay内のキャッシュエントリ選択に使用する。キャッシュ部122は、残りのビット列(Tagと表記)を、一般的なキャッシュメモリにおけるフレームアドレスに相当するデータとして使用する。
The
キャッシュ部122における一つのキャッシュエントリは、ルール記憶部112における一つのルールに関連づけられる。キャッシュ部122のキャッシュエントリは、フラグと、Tagと、キャッシュデータと、を含む。キャッシュ部122のキャッシュエントリのフラグには、そのキャッシュエントリが使用中か否かを示すUsedフラグと、LRU制御(すなわち、LRU方式に従ってキャッシュエントリを削除する制御)に係る情報であるLRU情報が含まれる。また、キャッシュ部122のキャッシュエントリのフラグには、そのキャッシュエントリを優先すべきか否かを示す、優先フラグが含まれる。キャッシュ部122のキャッシュデータとして、ルールが記憶される。なお、ルールの一部がTagとして記憶されている場合、ルールのうちTagとして記憶されている部分のデータはキャッシュデータとして記憶されているデータに含まれていなくてもよい。
One cache entry in
キャッシュ部122に対し、あるキーを入力として参照が行われた場合、キャッシュ部122は、入力されたキーからindexを取得する。言い換えると、キャッシュ部122は、入力されたキーのビット列から、indexを表す部分のビット列を取り出す。キャッシュ部122は、取得したindexを識別子として、各Way内から一つずつキャッシュエントリを選択する。言い換えると、キャッシュ部122は、取得したindexが示すキャッシュエントリを、それぞれのWayから1つ選択する。キャッシュ部122は、入力されたキーからTagを取得する。言い換えると、キャッシュ部122は、入力されたキーのビット列から、Tagを表す部分のビット列を取り出す。キャッシュ部122は、取得したTagと、選択された4つのキャッシュエントリ内のTagとを比較し、Tagが一致するキャッシュエントリを探索する。キーから取得したTagと一致するTagを含むエントリが見つかった場合、キャッシュ部122は、キャッシュヒットしたと判定し、見つかったエントリに記録されているルールを返す。
When the
<<第1の実施の形態の動作例>>
次に、本実施の形態の構成例として説明した、情報処理装置100の、以下に示す動作の例について、図面を参照しながら詳細に説明する。
(A)受信したパケットの処理。
(B)パケットを送信する処理。
(C)スケジューリングの処理。
<<Operation example of the first embodiment>>
Next, an example of the operation of the
(A) Processing received packets.
(B) Processing for transmitting packets.
(C) Scheduling processing.
<<<(A)受信したパケットの処理>>>
図6は、本実施形態の情報処理装置100の、パケットを受信した際の動作、すなわち、受信したパケットの処理の例を表すフローチャートである。
<<<(A) Processing of received packets>>>
FIG. 6 is a flow chart showing an example of the operation of the
図6に示すフローチャートを用いて、パケット処理部121がパケットを受信した際の、情報処理装置100の動作について説明する。図6に示す動作は、例えば、NIC部124が、情報処理装置100の外部から受信したパケットを、パケット処理部121に送信した場合、および、スケジューリング部123が、情報処理部114から仮想NIC部111を経由して受信したパケットを、パケット処理部121に送信した場合に、開始される。
The operation of the
パケット処理部121は、NIC部124またはスケジューリング部123から、パケット(以下、処理対象パケットとも表記)を受信する(ステップS100)。
The
パケット処理部121は、受信したパケットから、ルールのマッチ条件に使用される、パケットヘッダの値であるキー(以下、処理対象キーと表記)を作成する(ステップS101)。パケット処理部121は、受信したパケットのヘッダの部分のビット列を切り出し、切り出したビット列をキーにしてもよい。パケット処理部121は、受信したパケットのヘッダから、ルールのマッチ条件と比較される情報を抽出し、抽出した情報を示すキーを生成してもよい。パケット処理部121は、受信したパケットのサイズ(すなわち、パケット長)を特定してもよい。
From the received packet, the
パケット処理部121は、受信したパケットの処理対象キーおよびパケット長を制御部126に送信し、受信したパケットに適合するルールを制御部126に要求する。受信したパケットに適合するルールの要求は、例えば、制御部126に対する、キャッシュ部122における、受信したパケットに適合するルールのキャッシュエントリの探索を依頼することであってもよい。制御部126は、まず、キャッシュ部122における、受信したパケットに適合するルールのキャッシュエントリの探索を実施する(ステップS102)。
The
ステップS102において、受信したパケットに適合するルールのキャッシュエントリが見つからなかった場合(ステップS103においてNO)、制御部126は、ルール記憶部112から、処理対象キーに適合するルールを取得する(ステップS104)。具体的には、制御部126は、ルール記憶部112において、処理対象キーに適合するマッチ条件を含むルールを探索する。ルール記憶部112に処理対象キーに適合するマッチ条件を含むルールが格納されている場合、制御部126は、ルール記憶部112からそのルールを読み出す(すなわち、取得する)。制御部126は、ルール記憶部112から取得したルールを、パケット処理部121に送信する。
In step S102, if no cache entry of a rule that matches the received packet is found (NO in step S103),
ステップS104において処理対象キーに適合するルールを取得できなかった場合、すなわち、処理対象キーに適合するルールが存在しなかった場合(ステップS105においてNO)、情報処理装置100の動作は、ステップS108に移行する。
If no rule matching the processing target key is acquired in step S104, that is, if there is no rule matching the processing target key (NO in step S105), the operation of
ステップS104において処理対象キーに適合するルールが取得できた場合(ステップS105においてYES)、制御部126は、キャッシュ部122に、処理対象キーに適合するルール(以下、処理対象ルールと表記)のキャッシュエントリを作成する(ステップS106)。ステップS106の動作の詳細については後述する。
If a rule matching the processing target key can be acquired in step S104 (YES in step S105), the
ステップS102において、受信したパケットに適合するルールのキャッシュエントリが見つかった場合(ステップS103においてYES)、制御部126は、キャッシュ部122において見つかったキャッシュエントリを更新する(ステップS107)。ステップS107の動作の詳細については後述する。制御部126は、見つかったキャッシュエントリに格納されているルールを、パケット処理部121に送信する。
In step S102, if a cache entry of a rule matching the received packet is found (YES in step S103),
パケット処理部121は、処理対象パケットを処理する(ステップS108)。具体的には、制御部126からルールを受け取った場合、パケット処理部121は、受け取ったルールに基づいて処理対象パケットを処理する。制御部126からルールを受け取らなかった場合、すなわち、処理対象キーに適合するルールが存在しなかった場合、パケット処理部121は、例えば、処理対象パケットを破棄する。
The
図7は、本実施形態の情報処理装置100の、ルールのキャッシュエントリを作成する動作の詳細を表すフローチャートである。図7に示す動作は、図6に示すステップS106の詳細な動作の例である。
FIG. 7 is a flowchart showing the details of the operation of the
図7のフローチャートを用いて、上記ステップS106における情報処理装置100の、ルール記憶部112から読み出されたルールのキャッシュエントリを作成する動作の例について説明する。本動作の開始の時点において、制御部126は、パケット処理部121から受け取った、キー(すなわち、処理対象キー)と、ルール記憶部112から取得した、処理対象キーに適合するするルール(すなわち、処理対象ルール)と、パケット長とを、保持している。なお、以下では、図7の動作を制御部126の動作として説明する。しかし、キャッシュ部122が、図7に示す動作を行う機能を備え、図7に示す動作の一部又は全部を行ってもよい。例えば、図5に示す構成を備えるキャッシュ部122は、以下のステップS110の動作を行うことができる。ステップS110の動作は、キャッシュ部122の動作であってもよい。なお、図5に示す構成のうち、図7に示す動作を行う部分は、制御部126の実装の一部であってもよい。
An example of the operation of the
制御部126は、キャッシュ部122において、処理対象キーに適合するルールのキャッシュの格納位置を特定する。すなわち、制御部126は、キャッシュ部122における、処理対象キーに適合するルールが格納されているキャッシュエントリの位置を特定する(ステップS110)。制御部126は、キャッシュ部122において、パケットに適合するルールが格納されているキャッシュエントリの位置を示す情報として、indexの値を、処理対象キーの下位ビットのindexの部分から取得してもよい。制御部126は、取得したindexの値を用いて、各Way内の、処理対象キーに適合するキャッシュエントリを特定する。キャッシュエントリを特定する方法は、一般的なキャッシュメモリにおいてキャッシュエントリを特定する方法と同じでよい。キャッシュ部122がハッシュテーブルとして実現されていた場合、制御部126は、例えば、処理対象キーのハッシュ値を計算し、算出したハッシュ値をBucket数で割った余りを算出し、算出した余りが示すBucketを、処理対象キーに適合するルールが格納されているBucketとして選択する。
The
制御部126は、ステップS110において特定されたキャッシュエントリに空きがあるか否かを確認する(ステップS111)。キャッシュ部122が4-wayセットアソシエイティブキャッシュメモリとして実現されている場合、ステップS110において4つのキャッシュエントリが特定される。各キャッシュエントリは、フラグの領域に、キャッシュエントリが使用されているか否かを表す値が設定されているUsedフラグを含む。制御部126は、各キャッシュエントリのUsedフラグを参照することによって、空きエントリがあるか否か確認する。空きエントリは、キャッシュデータ(すなわち、本実施形態では、キャッシュされているルール)が格納されていないキャッシュエントリを表す。
The
空きエントリが存在しない場合(ステップS111においてNO)、制御部126は、パケット長が閾値以下であるか否かを確認する(ステップS112)。閾値は、予め設定され、制御部126に与えられていてよい。閾値は、管理装置300によって設定されてもよい。
If there is no free entry (NO in step S111),
パケット長が閾値より大きい場合(ステップS112においてNO)、制御部126は、ステップS110において特定されたキャッシュエントリの中に、優先フラグがオフのキャッシュエントリがあるか否かを確認する(ステップS113)。優先フラグがオフとは、優先フラグの値が、非優先であることを示す。優先フラグがオフのエントリには、非優先的にキャッシュ部122に格納されると判定されたルールがキャッシュされている。優先フラグがオフのキャッシュエントリがある場合(ステップS113においてYES)、情報処理装置100の動作はステップS114に移行する。優先フラグがオフのキャッシュエントリが無い場合(ステップS113においてNO)、情報処理装置100は、図7に示す動作を終了する。この場合、制御部126は、処理対象キーに適合するルールが格納されるキャッシュエントリを作成しない。すなわち、制御部126は、パケット処理部121が受信したパケットに適合するルールを、キャッシュ部122にキャッシュしない。
If the packet length is greater than the threshold (NO in step S112),
ステップS114において、制御部126は、ステップS110において特定されたキャッシュエントリの中から、削除されるエントリ(以下、削除対象エントリと表記)を決定し、決定された削除対象エントリを削除する(ステップS114)。エントリを削除するとは、キャッシュエントリを使用できる状態に戻すことを指す。使用できる状態のキャッシュエントリは、上述の空きエントリである。制御部126は、優先フラグがオフのキャッシュエントリの中で、最後に使用された時刻が最も昔であるキャッシュエントリを、削除対象エントリに決定する。制御部126は、LRU情報を使用して、最後に使用された時刻が最も昔であるキャッシュエントリを特定してよい。
In step S114, the
制御部126は、削除対象エントリに決定したキャッシュエントリのUsedフラグをオフにすることによって、削除対象エントリを削除する。キャッシュエントリのUsedフラグがオフである場合、そのキャッシュエントリは、空きエントリであり、使用可能である。使用中の削除対象エントリのUsedフラグをオフに変更することは、その削除対象エントリを削除することに相当する。使用中の削除対象エントリのUsedフラグをオフに変更することによって、その削除対象エントリは削除され、その削除対象キャッシュエントリは、空きエントリに変化し、空きエントリが作成される。
The
制御部126は、空きエントリ(すなわち、ステップS111において存在した空きエントリ、又は、ステップS114において作成された空きエントリ)に、処理対象キーに適合するルールのキャッシュエントリを作成する(ステップS115)。具体的には、制御部126は、空きエントリであるキャッシュエントリのUsedフラグをオンに変更する。以下、ステップS115において作成されるキャッシュエントリを、新エントリと表記する。制御部126は、Usedフラグをオンに変更したキャッシュエントリ(すなわち、新エントリ)のTagフィールドに処理対象キーから取得したTagを設定する。言い換えると、制御部126は、新エントリのTagフィールドに、処理対象キーから取得したTagのデータを記録する。制御部126は、新エントリのCache dataフィールドに、処理対象ルールを設定する。言い換えると、制御部126は、新エントリのCache dataフィールドに、処理対象ルールの情報を記録する。制御部126は、新エントリのLRU情報として、新エントリのindexが示す他のキャッシュエントリの最後の更新の時期よりも、更新が新しいことを示すLRU情報を設定する。また、制御部126は、処理対象パケットのパケット長が閾値以下の場合、新エントリの優先フラグをオンに設定し、そうでない場合、新エントリの優先フラグをオフに設定する。
The
図8は、本実施形態の情報処理装置100の、キャッシュエントリを更新する動作の例を表すフローチャートである。図8に示す動作は、図6に示すステップS107における動作の例である。
FIG. 8 is a flow chart showing an example of the operation of updating the cache entry of the
図8のフローチャートを用いて、上記ステップS107における情報処理装置100の動作の例について説明する。以下では、図8に示す動作は、制御部126による動作であるとして説明する。なお、図8に示す動作の全部又は一部を、キャッシュ部122が行ってもよい。
An example of the operation of the
制御部126は、ステップS102において見つかったエントリ(すなわち、パケット処理部121から受け取ったキーに適合するルールがキャッシュされているエントリ)のLRU情報を更新する(ステップS120)。ステップS102において見つかったエントリを、処理対象エントリと表記する。ステップS120において、具体的には、制御部126は、処理対象エントリのindexが示す他のキャッシュエントリが最後に使用された時期よりも新しい時期を示すLRU情報を、処理対象エントリのLRU情報に設定する。その際、制御部126は、処理対象エントリのindexが示す他のキャッシュエントリのLRU情報も合わせて変更してもよい。
The
制御部126は、処理対象パケットのパケット長が閾値以下であるか否かを確認する(ステップS121)。
The
パケット長が閾値以下である場合(ステップS121においてYES)、制御部126は、処理対象エントリの優先フラグをオンに設定する(ステップS122)。
If the packet length is equal to or less than the threshold (YES in step S121),
パケット長が閾値より大きい場合(ステップS121においてNO)、制御部126は、処理対象エントリの優先フラグをオフに設定する(ステップS123)。
If the packet length is greater than the threshold (NO in step S121), the
<<<(B)パケット送信処理>>>
図9は、本実施形態の情報処理装置100の、受信したパケットを送信する動作の例を表すフローチャートである。
<<<(B) Packet transmission process>>>
FIG. 9 is a flow chart showing an example of the operation of the
図9のフローチャートを用いて、パケット処理部121がパケットを送信する際の情報処理装置100の動作について説明する。図9に示す動作は、例えば、ステップS108において、パケット処理部121が、”パケットを指定されたNIC部124または仮想NIC部111に送信する”処理を含むルールに基づきパケット処理を行った場合に開始され得る。例えば、ステップS108において、ルールに基づくパケット処理が、”パケットを指定されたNIC部124または仮想NIC部111に送信する”処理である場合に、図9に示す動作が開始される。
The operation of the
パケット処理部121は、処理対象パケットの送信先が、仮想NIC部111のいずれかであるか否かを確認する(ステップS130)。
The
処理対象パケットの送信先が仮想NIC部111ではない場合(ステップS130においてNO)、処理対象パケットの送信先は、NIC部124である。この場合、パケット処理部121は、NIC部124に処理対象パケットを送信する(ステップS131)。
If the destination of the packet to be processed is not the virtual NIC unit 111 (NO in step S130), the destination of the packet to be processed is the NIC unit . In this case, the
処理対象パケットの送信先が仮想NIC部111のいずれかである場合(ステップS130においてYES)、パケット処理部121は、送信先である仮想NIC部111の識別子と、処理対象パケットとを、スケジューリング部123(具体的には、スケジューリング部123の受付部1234)に送出する。受付部1234は、受け取った識別子が示す仮想NIC部111に関連付けられているキュー部1233を選択する(ステップS132)。以下の説明において、ステップS132において選択されたキュー部1233を、選択されたキュー及び処理対象キューと表記する。
If the destination of the packet to be processed is one of the virtual NIC units 111 (YES in step S130), the
受付部1234は、選択されたキュー(すなわち、処理対象キュー)がフルであるか否かを確認する(ステップS133)。
The
処理対象キューがフルである場合(ステップS133においてYES)、受付部1234は、処理対象パケットを破棄する(ステップS134)。受付部1234は、破棄した処理対象パケットの識別子を、制御部126に送信してもよい。そして、情報処理装置100は、図9に示す動作を終了する。
If the processing target queue is full (YES in step S133), the
処理対象キューがフルでない場合(ステップS133においてNO)、受付部1234は、処理対象パケットを処理対象キューにエンキューする(ステップS135)。そして、情報処理装置100は、図9に示す動作を終了する。
If the queue to be processed is not full (NO in step S133), the receiving
<<<(C)スケジューリング処理>>>
図10は、本実施形態の情報処理装置100の、スケジューリング処理を行う動作の例を表すフローチャートである。
<<<(C) Scheduling Process>>>
FIG. 10 is a flow chart showing an example of the operation of the
図10のフローチャートを用いて、情報処理装置100のスケジューリング部123が、パケット処理部121によって仮想NIC部111に向けて送信されたパケットのスケジューリング処理を行う際の動作について説明する。図10に示すスケジューリング処理は、例えば図9のステップS135においてエンキューされたパケットを、仮想NIC部111に向けて送信する動作を表す。
The operation when the
スケジューリング部123の選択部1231は、処理の対象として、1つのキュー部1233を選択する(ステップS140)。選択部1231は、例えば、キュー部1233A、キュー部1233B、キュー部1233Cの順で、全てのキュー部1233を繰り返し選択してもよい。このようは選択の方法は、ラウンドロビンとも呼ばれる。図10に示す動作は、1つのキュー部1233を選択してから、選択したキュー部1233に対する処理が終了するまでの動作を表す。キュー部1233を選択するたびに、図10に示す動作が1回行われる。全てのキュー部1233を1つ1つ繰り返し選択する場合、情報処理装置100は、図10に示す動作を繰り返し行う。以下の説明では、選択したキュー部1233を、処理対象キューと表記する。
The
まず、選択部1231は、処理対象キューにパケットがあるか否かを確認する(ステップS141)。
First, the
処理対象キューが空である場合、すなわち、処理対象キューにパケットが存在しない場合(ステップS141においてNO)、選択部1231は、処理対象キューの不足カウンタ値を0に設定する(ステップS147)。選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232に記録されている不足カウンタ値を0に設定する。すなわち、選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232に、不足カウンタ値として0を記録する。例えば、処理対象キューがキュー部1233Aである場合、不足カウンタ部1232Aが、処理対象キューに関連付けられている。この場合、選択部1231は、不足カウンタ部1232Aの不足カウンタ値を0に設定する。そして、情報処理装置100は、図10に示す動作を終了する。図10に示す動作を終了した後、情報処理装置100は、図10に示す動作を再び行い、再び行った図10に示す動作のステップS141において、別のキュー部1233を、処理対象キューとして選択してよい。
If the queue to be processed is empty, that is, if there are no packets in the queue to be processed (NO in step S141), the
処理対象キューにパケットが存在する場合(ステップS141においてYES)、選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232から不足カウンタ値を取得する(すなわち、読み出す)。選択部1231は、処理対象キューに割り当てられている所定値(すなわち、Quantamとも表記される、調整値)を、取得した不足カウンタ値に加算する(ステップS142)。選択部1231は、更新された不足カウンタ値(すなわち、読み出された不足カウンタ値と調整値との和)を、処理対象キューに関連付けられている不足カウンタ部1232に記録されている不足カウンタ値に設定する。すなわち、選択部1231は、更新された不足カウンタ値(すなわち、読み出された不足カウンタ値と調整値との和)を、処理対象キューに関連付けられている不足カウンタ部1232に、不足カウンタ値として記録する。
If there are packets in the queue to be processed (YES in step S141), the
選択部1231は、処理対象キューの不足カウンタ値が、処理対象キューの先頭パケットの長さ以上であるか否かを確認する(ステップS143)。
The
処理対象キューの不足カウンタ値が処理対象キューの先頭パケットのパケット長よりも小さい場合(ステップS143においてNO)、情報処理装置100は、図10に示す動作を終了する。
If the shortage counter value of the queue to be processed is smaller than the packet length of the head packet of the queue to be processed (NO in step S143), the
処理対象キューの不足カウンタ値が処理対象キューの先頭パケットのパケット長以上である場合(ステップS143においてYES)、選択部1231は、先頭パケットを送信することを決定する。そして、選択部1231は、処理対象キューに関連付けられている仮想NIC部111に、先頭パケットを送信する(ステップS144)。例えば、処理対象キューがキュー部1233Aである場合、選択部1231は、仮想NIC部111Aに、処理対象キューの先頭パケットを送信する。
If the shortage counter value of the processing target queue is greater than or equal to the packet length of the leading packet of the processing target queue (YES in step S143), the
選択部1231は、処理対象キューの不足カウンタ値から、ステップS144において送信したパケットのパケット長を減算する(ステップS145)。選択部1231は、ステップS144において送信したパケットのパケット長を処理対象キューの不足カウンタ値から引いた値を、処理対象キューの新しい不足カウンタ値に設定する。選択部1231は、新しい不足カウンタ値を、処理対象キューに関連付けられている不足カウンタ部1232に記録する。
The
選択部1231は、処理対象キューにパケットが存在するか否かを確認する(ステップS146)。処理対象キューにパケットが存在する場合(ステップS146においてYES)、情報処理装置100の動作は、ステップS143に移行する。
The
処理対象キューが空である場合、すなわち、処理対象キューにパケットが存在しない場合(ステップS146においてNO)、情報処理装置100の動作は、ステップS147に移行する。すなわち、選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232に、不足カウンタ値として0を記録する。そして、情報処理装置100は、図10に示す動作を終了する。
If the queue to be processed is empty, that is, if there is no packet in the queue to be processed (NO in step S146), the operation of
以上で詳細に説明したように、本実施の形態の情報処理装置100は、以下に示す構成を備え、それにより、以下で説明する効果が得られる。
As described in detail above, the
本実施の形態によれば、情報処理装置100は、メモリ102と仮想スイッチ用ハードウェア120と、それらを接続するバス103Bを備えるコンピュータ10により実現できる。情報処理装置100は、パケット処理方法を規定するルールの集合であるFIBを記憶するルール記憶部112を備える。ルール記憶部112は、メモリ102によって実現される。情報処理装置100は、FIBを参照しパケット処理方法を決定し処理するパケット処理部121を備える。パケット処理部121は、仮想スイッチ用ハードウェア120により実現される。即ち、情報処理装置100において、パケットの処理の際に行われる、データ系通信と制御系通信とが、バス103Bを共用する。情報処理装置100は、ルール記憶部112から取得したルールをキャッシュ部122にキャッシュする制御部126、および、QoS制御を行うスケジューリング部123を備える。キャッシュ部122は、仮想スイッチ用ハードウェア120により実現される。決定部125は、小さいパケットに関するルールを優先的にキャッシュとしてキャッシュ部122に記憶するよう決定する。
According to this embodiment, the
これにより、制御系通信(ルール記憶部112からのルールの読み出し)による、バス(すなわち、バス103B)の帯域の消費を削減することができる。小さいパケットの処理の回数は、大きいパケットの処理の回数に比べて、多く、小さいパケットは、多数の制御系通信を発生させることが知られている。そのため、小さいパケットを優先的にキャッシュすることによって、キャッシュを用いることによる帯域の消費を削減する効果を向上させることができる。 As a result, it is possible to reduce consumption of the bandwidth of the bus (that is, the bus 103B) due to control system communication (reading of rules from the rule storage unit 112). It is known that the number of times small packets are processed is greater than the number of times large packets are processed, and small packets generate a large number of control-related communications. Therefore, by preferentially caching small packets, it is possible to improve the effect of reducing bandwidth consumption by using the cache.
よって、本実施の形態によれば、パケットの処理にかかるデータ系通信と制御系通信とがバスを共用する場合であっても、QoS制御の精度の劣化を抑制できる。 Therefore, according to the present embodiment, even when data system communication and control system communication related to packet processing share a bus, deterioration in accuracy of QoS control can be suppressed.
なお、以上で説明した例では、スケジューリング部123は、パケット処理部121が仮想NIC部111に向け送信するパケットに対して、QoS制御を行う。QoS制御が行われるパケットは、以上の例に限定されない。スケジューリング部123は、例えば、パケット処理部121が仮想NIC部111から受信するパケットに対して、QoS制御を行ってもよい。
In the example described above, the
また、以上で説明した例では、キャッシュ部122が記憶するキャッシュエントリの優先度は、1ビットの優先フラグによって表される。しかし、優先度を表す値は、優先フラグに限定されない。優先度は、例えば、複数ビットのカウンタ(以下、優先カウンタと表記)によって表されていてもよい。上で説明した本実施形態の情報処理装置100に対して、以下の変更を行うことによって、優先フラグの代わりに優先カウンタを使用する情報処理装置100を実現することができる。
(1)キャッシュエントリに、優先フラグの代わりに優先カウンタを記憶する。
(2)優先フラグをオンにする状況(例えば図8に示すステップS122)において、優先カウンタをインクリメントする。
(3)優先フラグをオフにする状況(例えば図8に示すステップS123)において、優先カウンタをデクリメントする。
(4)ステップS113における判断の条件として、“優先フラグがオフであるエントリの存在”の代わりに、“優先カウンタが所定の値以下であるエントリの存在”を用いる。
(5)ステップS114において、優先カウンタが所定の値以下であるエントリの中で、最後に使用された時期が最も古いエントリを、削除対象エントリに決定する。
Also, in the example described above, the priority of the cache entry stored by the
(1) Store a priority counter instead of a priority flag in the cache entry.
(2) In a situation where the priority flag is turned on (for example, step S122 shown in FIG. 8), the priority counter is incremented.
(3) Decrement the priority counter in a situation where the priority flag is turned off (for example, step S123 shown in FIG. 8).
(4) "Existence of an entry whose priority counter is equal to or less than a predetermined value" is used instead of "Existence of an entry whose priority flag is off" as a condition for determination in step S113.
(5) In step S114, among the entries whose priority counter is less than or equal to a predetermined value, the entry with the oldest time of last use is determined as the entry to be deleted.
上述の「所定の値」は、0であってもよい。また、優先カウンタの値は、マイナスにならないように制御されていてもよい。その場合、「優先カウンタが所定の値以下であるエントリ」は、優先カウンタが0であるエントリになる。 The "predetermined value" mentioned above may be zero. Also, the value of the priority counter may be controlled so as not to become negative. In this case, "an entry whose priority counter is less than or equal to a predetermined value" is an entry whose priority counter is zero.
<第2の実施形態>
本発明の第2の実施形態では、情報処理装置100のスケジューリング部123は、パケット処理に伴い発生するオーバヘッド(すなわち、制御系通信によるバス消費)を考慮してQoS制御を行うことによって、QoS制御の精度の劣化を抑止する。オーバヘッドは、通信の負荷と言い換えることもできる。
<Second embodiment>
In the second embodiment of the present invention, the
以下では、本実施形態について図面を参照して詳細に説明する。なお、本実施形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。 Below, this embodiment will be described in detail with reference to the drawings. In each drawing referred to in the description of this embodiment, the same reference numerals are assigned to the same configurations and steps that operate in the same manner as in the first embodiment of the present invention, and the detailed description in this embodiment omitted.
<<第2の実施形態の構成例>>
本実施形態の情報処理装置100の構成は、以下の差分を除き、図2~図5を用いて説明した第1の実施の形態の情報処理装置100の構成と同様である。
<<Configuration Example of Second Embodiment>>
The configuration of the
本実施形態の制御部126は、ルールの情報に加えて、そのルールがキャッシュヒットしたか否かを表す情報(すなわち、そのルールの情報がキャッシュ部122から読み出されたか否かを表す情報)を、パケット処理部121に送信する。
In addition to the rule information, the
パケット処理部121は、制御部126から、ルールの情報に加えて、そのルールがキャッシュヒットしたか否かを表す情報を受け取る。ルールに基づくパケットの処理が、仮想NIC部111への送信である場合、パケット処理部121は、パケットに加えて、そのパケットの処理に使用されたルールがキャッシュヒットしたか否かを表す情報を、スケジューリング部123に送信する。この場合、パケット処理部121は、具体的には、パケットと、そのパケットの処理に使用されたルールがキャッシュヒットしたか否かを表す情報を、スケジューリング部123の受付部1234に送信する。
The
受付部1234は、パケットに加えて、そのパケットの処理に使用されたルールがキャッシュヒットしたか否かを表す情報を、キュー部1233に格納する。
The receiving
本実施形態のキュー部1233は、パケットに加えて、パケット処理部121によるそのパケットの処理使用されたルールがキャッシュヒットしたか否かを表わす情報も記憶する。
In addition to the packet, the
選択部1231は、さらに、キュー部1233に格納されている先頭パケットに適合するルールの、ルール記憶部112からの読み出しに係るオーバヘッドの値に基づいて、先頭パケットを仮想NIC部111に送信するか否かを決定する。
The selecting
<<第2の実施の形態の動作例>>
次に、本実施形態の情報処理装置100における以下の動作の例について、図面を参照しながら詳細に説明する。
(A)受信したパケットの処理。
(B)パケットを送信する処理。
(C)スケジューリングの処理。
<<Operation example of the second embodiment>>
Next, an example of the following operation in the
(A) Processing received packets.
(B) Processing for transmitting packets.
(C) Scheduling processing.
<<<(A)受信したパケットの処理>>>
図6は、本実施形態の情報処理装置100の、受信したパケットを処理する動作を表すフローチャートである。本実施形態の情報処理装置100の、受信したパケットを処理する動作(すなわち、パケット処理部121がパケットを受信した際の動作)は、第1の実施形態の情報処理装置100の、受信したパケットを処理する動作と同様である。
<<<(A) Processing of received packets>>>
FIG. 6 is a flowchart showing the operation of processing received packets of the
本実施形態の制御部126は、例えばステップS102における、パケット処理部121からの、受信したパケットに適合するルールの要求に対して、ルールがキャッシュヒットしたか否かを表す情報を含めてよい。制御部126は、例えば、ステップS104において、ルール記憶部112から取得したルールに加えて、ルールがキャッシュヒットしなかったことを表す情報を、パケット処理部121に送信してもよい。制御部126は、例えば、ステップS107において、キャッシュ部122から読み出したルールに加えて、ルールがキャッシュヒットしたことを表す情報を、パケット処理部121に送信してもよい。
The
<<<(B)パケットを送信する処理>>>
図11は、本実施形態の情報処理装置100の、受信したパケットを送信する処理の例を表すフローチャートである。
<<<(B) Process for sending packets>>>
FIG. 11 is a flow chart showing an example of processing for transmitting a received packet of the
図11に示すフローチャートを用いて、本実施形態の情報処理装置100の、パケット処理部121がパケットを送信する動作について説明する。図11に示す動作は、例えば、ステップS108において、パケット処理部121が、”パケットを指定されたNIC部124または仮想NIC部111に送信する”処理を含むルールに基づきパケット処理を行った場合に、開始され得る。例えば、ステップS108において、ルールに基づくパケット処理が、”パケットを指定されたNIC部124または仮想NIC部111に送信する”処理である場合に、図11に示す動作が開始される。以下では、主に、パケットを送信する動作の、図9に示す第1の実施形態の情報処理装置100と、本実施形態の情報処理装置100との間の相違点について説明する。パケットを送信する場合に、本実施形態の情報処理装置100は、以下で説明される相違点を除いて、第1の実施形態の情報処理装置のパケットを送信する動作と同じ動作を行う。
The operation of transmitting a packet by the
パケットの宛先が仮想NIC部111のいずれかである場合(ステップS130においてYES)、パケット処理部121は、パケットをスケジューリング部123の受付部1234に渡す。本実施形態のパケット処理部121は、パケットに加えて、制御部126から得た、そのパケットに適合するルールがキャッシュヒットしたか否かを表す情報も、スケジューリング部123の受付部1234に渡す。受付部1234は、パケット処理部121から、パケットと、そのパケットに適合するルールがキャッシュヒットしたか否かを表す情報とを受け取る。受付部1234がパケット処理部121から受け取ったパケットを、処理対象パケットと表記する。図11の説明において、処理対象パケットは、受付部1234がパケット処理部121から受け取ったパケットを表す。
If the destination of the packet is one of the virtual NIC units 111 (YES in step S 130 ), the
ステップS132において選択された処理対象キューがフルであった場合(ステップS133においてYES)、受付部1234は、受信したパケットから、パケットヘッダの値である、キー(すなわち、処理対象キー)を作成する(ステップS236)。処理対象キーは、ルールに含まれるマッチ条件に適合するか判定するための情報である。受付部1234によって作成される処理対象キーは、パケット処理部121によって作成される処理対象キーと同じでよい。受付部1234は、ステップS236において処理対象キーを生成するのではなく、パケット処理部121から処理対象キーを受け取ってもよい。例えば、パケットの宛先が仮想NICのいずれかである場合に(ステップS130においてYES)、パケット処理部121は、パケット(すなわち、処理対象パケット)と、処理対象キーとを、受付部1234に送信してもよい。受付部1234は、処理対象パケットに加えて、処理対象キーを、パケット処理部121から受け取ってもよい。ステップS236において、受付部1234は、処理対象パケットの処理対象キーをパケット処理部121から受け取ってもよい。具体的には、受付部1234は、処理対象パケットの処理対象キーの送信を、パケット処理部121に要求してもよい。パケット処理部121は、受付部1234から処理対象パケットの処理対象キーの要求を受け取ると、要求された、処理対象パケットの処理対象キーを受付部1234に送信してもよい。そして、受付部1234は、処理対象パケットの処理対象キーをパケット処理部121から受け取ってもよい。
If the processing target queue selected in step S132 is full (YES in step S133), the receiving
受付部1234は、処理対象パケットの、処理対象キーおよびパケット長を、制御部126に送信する。制御部126は、スケジューリング部123(具体的には、受付部1234)から、処理対象パケットの、処理対象キーおよびパケット長を受け取る。そして、制御部126は、キャッシュ部122において、受け取った処理対象キーに適合するルールのキャッシュエントリの探索を実施する(ステップS237)。例えば、受け取った、処理対象パケットのパケット長が、上述の閾値より大きい場合、制御部126は、処理対象キーに適合するルールのキャッシュエントリは存在しないと判定してもよい。制御部126は、受け取ったパケット長が上述の閾値以下である場合に、受け取った処理対象キーに適合するルールのキャッシュエントリの探索を実施してもよい。
The
ステップS237における探索の結果、処理対象キーに適合するルールのキャッシュエントリが存在しなかった場合(ステップS238においてNO)、情報処理装置100の動作は、ステップS134に移行する。
As a result of the search in step S237, if there is no cache entry of a rule matching the processing target key (NO in step S238), the operation of
ステップS237における探索の結果、処理対象キーに適合するルールのキャッシュエントリが存在した場合、制御部126は、キャッシュ部122に格納されている、見つかったキャッシュエントリの優先フラグを、オンに設定する(ステップS239)。
As a result of the search in step S237, if there is a cache entry with a rule that matches the processing target key, the
処理対象キューがフルでない場合(ステップS133においてNO)、受付部1234は、処理対象パケットを処理対象キューにエンキューする(ステップS235)。その際、受付部1234は、パケット処理部121から受け取った、処理対象パケットに適合するルールがキャッシュヒットしたか否かを表す情報も処理対象キューにエンキューする。
If the queue to be processed is not full (NO in step S133), the receiving
<<<(C)スケジューリングの処理>>>
図12は、本実施形態の情報処理装置100の、スケジューリングの処理を行う動作の例を表すフローチャートである。
<<<(C) Scheduling process>>>
FIG. 12 is a flow chart showing an example of the operation of the
図12のフローチャートを用いて、本実施形態の情報処理装置100のスケジューリング部123が、パケット処理部121によって仮想NIC部111に向け送信されるパケットのスケジューリング処理を行う際の動作について説明する。以下では、主に、本実施形態のスケジューリング部123と、第1の実施形態のスケジューリング部123との間の、スケジューリングの処理の動作における相違点を説明する。なお、本実施形態の情報処理装置100は、スケジューリングの処理を行う際に、以下で説明する相違点を除いて、第1の実施形態の情報処理装置100の動作と同じ動作を行う。
The operation of the
ステップS140からステップS142までの動作は、図9に示す、第1の実施形態のステップS140からステップS142までの動作と同じである。 The operations from step S140 to step S142 are the same as the operations from step S140 to step S142 of the first embodiment shown in FIG.
次に、選択部1231は、処理対象パケットに適合するルールがキャッシュヒットしたか否かを示す情報に基づいて、オーバヘッドを示す値(以下の説明では、単にオーバヘッドとも表記する)を決定する。以下のステップS243の説明において、オーバヘッドを示す値は、単に「オーバヘッド」とも表記される。処理対象パケットに適合するルールがキャッシュヒットしたか否かを示す情報は、キャッシュヒット情報と表記される。
Next, the
選択部1231は、処理対象キューの不足カウンタ値が、処理対象キューの先頭パケットのパケット長と決定したオーバヘッドとを加算した値以上であるか否かを確認する(ステップS243)。上述のキャッシュヒット情報が、処理対象パケットに適合するルールがキャッシュヒットしたことを示す場合、選択部1231は、オーバヘッドとして、0を用いる。言い換えると、選択部1231は、オーバヘッドを0に決定する。パケット処理部121による当該パケットの処理の際に、キャッシュヒットした場合には0を、上述のキャッシュヒット情報が、処理対象パケットに適合するルールがキャッシュヒットしなかったことを示す場合、選択部1231は、オーバヘッドとして、所定の値を用いる。言い換えると、選択部1231は、オーバヘッドを所定の値に決定する。所定の値は、予め求められた、ルールの平均サイズ、又は、ルール記憶部112へのアクセスに必要なバスの帯域の平均消費量等であってもよい。
The
スケジューリング部123は、オーバヘッドを、ルールのサイズに基づいて決定してもよい。その場合、パケット処理部121は、例えば処理対象パケットをスケジューリング部123に送信する際、その処理対象パケットに適合するルールのサイズを、スケジューリング部123に送信してもよい。スケジューリング部123は、オーバヘッドを、ルール記憶部112からルールを読み出した際のバスの帯域の消費量に決定してもよい。この場合、例えば制御部126が、ルール記憶部112からルールを読み出した際のバスの帯域の消費量を導出し、導出した消費量を、パケット処理部121に送信してもよい。パケット処理部121は、制御部126から消費量を受信し、受信した消費量を、スケジューリング部123に送信してもよい。これらの場合、例えば、キャッシュヒット情報(すなわち、処理対象パケットに適合するルールがキャッシュヒットしたか否かを示す情報)が、オーバヘッドとして設定される値であってもよい。キャッシュヒット情報は、例えば、バスを介して読み出されたルールのサイズ、又は、ルールの読み出しの際のバスの帯域の消費量等であってもよい。その場合、キャッシュヒット情報の値が0である場合、キャッシュヒット情報は、パケットに適合するルールがキャッシュヒットしたことを表す。キャッシュヒット情報の値が0以外の値である場合、キャッシュヒット情報は、パケットに適合するルールがキャッシュヒットしなかったことを表す。スケジューリング部123は、以上の例によらずに、オーバヘッドを決定してもよい。
The
不足カウンタの値が、処理対象パケットのパケット長とオーバヘッドとの和より小さい場合(ステップS243においてNO)、情報処理装置100は、図12に示す動作を終了する。
If the value of the shortage counter is smaller than the sum of the packet length of the packet to be processed and the overhead (NO in step S243),
不足カウンタの値が、処理対象パケットのパケット長とオーバヘッドとの和以上である場合(ステップS243においてYES)、選択部1231は、処理対象キューから先頭パケットを読み出す。選択部1231は、読み出した先頭パケットを、処理対象キューに関連付けられている仮想NIC部111に送信する(ステップS144)。
If the value of the shortage counter is greater than or equal to the sum of the packet length of the packet to be processed and the overhead (YES in step S243), the
次に、選択部1231は、処理対象キューの不足カウンタ値から、ステップS144において送信したパケットのパケット長と、オーバヘッドの値とを減算する(ステップS245)。選択部1231は、処理対象キューに関連付けられている不足カウンタ部1232に、処理対象キューの不足カウンタ値から、送信されたパケットのパケット長とオーバヘッドの値とを減算した値を、新たな不足カウント値として格納する。
Next, the
本実施形態のステップS146及びステップS147の動作は、第1の実施形態のステップS146及びステップS147の動作と同じである。 The operations of steps S146 and S147 of this embodiment are the same as those of steps S146 and S147 of the first embodiment.
以上で詳細に説明したように、本実施の形態においては、スケジューリング部123は、パケットの処理に伴って発生するオーバヘッド(すなわち、制御系通信によるバスの消費)を考慮してQoS制御を行う。また、制御部126は、スケジューリング部123によって破棄されたパケットに関するルールを優先的にキャッシュとしてキャッシュ部122に記憶する。これによって、QoS制御の精度の劣化を抑制できる。
As described in detail above, in the present embodiment, the
(第2の実施形態の変形例)
以上の説明では、ステップS243およびステップS245において使用されるオーバヘッドは、固定値(すなたち、バス103Bの状態によって変化しない値)である。しかし、オーバヘッドは、以上の例に限定されない。
(Modification of Second Embodiment)
In the above description, the overhead used in steps S243 and S245 is a fixed value (that is, a value that does not change with the state of bus 103B). However, the overhead is not limited to the above examples.
選択部1231は、例えば、バス103Bの状態に応じて動的にオーバヘッドを決定してもよい。具体的には、選択部1231は、例えば、以下のようにオーバヘッドを決定してもよい。
The
例えば、制御部126が、バス103Bの性能を測定する機能を備えていてよい。バス103Bの性能は、例えば、利用率であってよい。制御部126は、得られた、バス103Bの利用率を、スケジューリング部123(具多的には、選択部1231)に送信してよい。
For example, the
選択部1231は、バス103Bの利用率を、例えば制御部126から受け取り、受け取った利用率に基づいて、オーバヘッドの値を決定してよい。
The
選択部1231は、例えば、受け取った利用率が所定の閾値未満である場合、オーバヘッドの値が第1の値になり、受け取った利用率が所定の閾値以上である場合、オーバヘッドの値が第2の値になるよう、オーバヘッドの値を切り替えてもよい。
For example, when the received utilization rate is less than a predetermined threshold, the
選択部1231は、例えば、予め定められている、利用率の範囲とその範囲に関連付けられているオーバヘッドの値との組を複数含むテーブルに基づいて、オーバヘッドの値を切り替えてもよい。選択部1231は、例えば、テーブルにおいて、受け取った利用率を含む、利用率の範囲に関連付けられているオーバヘッドの値を、使用するオーバヘッドの値に決定してもよい。
The
選択部1231は、利用率を入力とする、予め定められた関数を使用して、オーバヘッドの値を決定してもよい。選択部1231は、得られた利用率を入力として、上述の関数の出力値を算出し、算出した出力値をオーバヘッドの値に決定してもよい。
The
<第3の実施形態>
<<第3の実施形態の構成>>
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。
<Third Embodiment>
<<Configuration of the Third Embodiment>>
Next, a third embodiment of the present invention will be described in detail with reference to the drawings.
図14は、本実施形態に係る情報処理装置500の構成の例を表すブロック図である。
FIG. 14 is a block diagram showing an example of the configuration of an
図14に示す例では、情報処理装置500は、決定部125と、制御部126とを含む。制御部126は、キャッシュ部122にアクセス可能に接続されていてよい。決定部125は、データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ部122に格納するか否かの決定を、前記データのサイズに基づいて行う。制御部126は、格納すると決定された前記ルールの前記キャッシュ部122への格納を行う。キャッシュ部122は、ルールを記憶する。本実施形態のデータは、第1及び第2の実施形態のパケットに相当する。本実施形態の通信経路は、第1の実施形態のバス103Bに相当する。
In the example illustrated in FIG. 14 , the
<<第3の実施形態の動作>>
次に、本実施形態に係る情報処理装置500の動作について、図面を参照して詳細に説明する。
<<Operation of Third Embodiment>>
Next, the operation of the
図15は、本実施形態に係る情報処理装置500の動作の例を表すフローチャートである。
FIG. 15 is a flow chart showing an example of the operation of the
まず、決定部125が、データに対する処理を示すルールを、キャッシュ部122に格納するか否かを、データのサイズに基づいて決定する(ステップS500)。言い換えると、決定部125が、データに適合するルールを、キャッシュ部122に格納するか否かを、データのサイズに基づいて決定する。決定部125が、ルールをキャッシュ部122に格納すると決定した場合(ステップS501においてYES)、制御部126は、ルールをキャッシュ部122に格納する(ステップS502)。決定部125が、ルールをキャッシュ部122に格納しないと決定した場合(ステップS501においてNO)、制御部126は、ルールをキャッシュ部122に格納せず、図15に示す動作は終了する。
First, the
上述のように、パケットのデータのサイズが小さいほど、データ(すなわち、パケット)の処理の回数が多くなることが知られている。従って、パケットのサイズが小さいほど、処理の際に使用されるルールの読み出しの回数が増加する。データ(すなわち、パケット)の送信に使用される通信経路(例えば、バス)と、ルールの読み出しに使用される通信経路が共通である場合、すなわち、データ系通信と制御系通信とが通信経路を共有する場合、パケットのサイズが小さいほど制御系通信が増え、データ系通信に使用できる帯域が減少する。しかし、サイズが小さいパケットに適合するルールをキャッシュ部122に格納し、サイズが小さいパケットの処理の際にはキャッシュ部122から読み出すことによって、制御系通信の量を削減できる。制御系通信の量を削減することによって、制御系通信と通信経路を共用するデータ系通信に使用できる帯域が増加する。従って、データ系通信に使用できる帯域が制限されることによる、QoS制御の精度の劣化を、抑制することができる。
As described above, it is known that the smaller the data size of a packet, the more times the data (ie, packet) is processed. Therefore, the smaller the size of the packet, the greater the number of readouts of the rules used during processing. When the communication path (e.g., bus) used for sending data (i.e., packets) and the communication path used for reading rules are common, i.e., data communication and control communication use the same communication path. In the case of sharing, the smaller the packet size, the more control-related communications and the smaller the bandwidth that can be used for data-related communications. However, by storing a rule suitable for small size packets in the
従って、上で説明した本実施形態には、パケットの処理にかかるデータ系通信と制御系通信とがバスを共用する場合であっても、QoS制御の精度の劣化を抑制できるという効果がある。 Therefore, the present embodiment described above has the effect of being able to suppress the deterioration of the accuracy of QoS control even when data system communication and control system communication related to packet processing share a bus.
<その他の実施形態>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
<Other embodiments>
Some or all of the above embodiments may also be described in the following additional remarks, but are not limited to the following.
(付記1)
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定手段と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、
を備える情報処理装置。
(Appendix 1)
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; a determining means based on the size of the data;
control means for storing the rules determined to be stored in the cache means;
Information processing device.
(付記2)
前記制御手段は、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるよう、前記決定を行う
付記1に記載の情報処理装置。
(Appendix 2)
The information processing apparatus according to
(付記3)
前記データに行われる前記処理を特定することによって生じた、前記通信経路を介した通信の負荷に基づいて、前記データを転送する通信の帯域を制御するスケジューリング手段
をさらに備える付記1又は2に記載の情報処理装置。
(Appendix 3)
3. The method according to
(付記4)
前記通信の負荷は、前記ルールの読み出しによって生じた、前記通信経路を介した通信の量を含む
付記3に記載の情報処理装置。
(Appendix 4)
The information processing apparatus according to appendix 3, wherein the communication load includes an amount of communication via the communication path caused by reading the rule.
(付記5)
前記通信経路の使用率を測定する測定手段をさらに備え、
前記スケジューリング手段は、前記使用率にさらに基づいて、前記帯域を制御する
付記3又は4に記載の情報処理装置。
(Appendix 5)
Further comprising measuring means for measuring the utilization rate of the communication path,
5. The information processing apparatus according to appendix 3 or 4, wherein the scheduling means controls the band further based on the usage rate.
(付記6)
前記スケジューリング手段は、前記データの前記ルールがキャッシュ手段に格納されていた否かに基づいて、前記通信の負荷が生じたか否かの判定を行い、当該判定の結果に基づいて、前記通信の帯域を制御する
付記3乃至5のいずれか1項に記載の情報処理装置。
(Appendix 6)
The scheduling means determines whether or not the communication load has occurred based on whether or not the rule of the data has been stored in the cache means, and based on the result of the determination, The information processing apparatus according to any one of appendices 3 to 5.
(付記7)
複数の仮想マシンと、それぞれ当該複数の仮想マシンの1つのネットワークインタフェースとして動作する複数の仮想ネットワークインタフェースとを提供する実行手段と、
外部通信ネットワークとの通信を中継する通信手段と、
前記通信手段を介してデータを受け取り、受け取った前記データに適合する前記ルールを前記制御手段に要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理手段と、
前記ルールを記憶するルール記憶手段と、
をさらに備え、
前記制御手段は、前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを前記ルール記憶手段から読み出し、読み出した前記ルールを返送し、
前記処理手段は、返送された前記ルールが示す、前記データに行われる処理が、前記複数の仮想マシンのいずれかへの転送である場合、前記データを前記スケジューリング手段に送出し、
前記スケジューリング手段は、それぞれ前記複数の仮想マシンの1つに関連付けられている複数の一時記憶領域を含み、前記データを受け取った場合前記データが転送される仮想マシンに関連付けられている一時記憶領域に前記データを格納し、当該一時記憶領域から読み出した前記データを、前記通信経路を介して前記データが転送される前記仮想マシンに送信し、さらに、前記データに行われる前記処理を特定することによって生じた前記通信の負荷に基づいて、前記一時記憶領域からデータを読み出すか否かを決定することによって、前記帯域を制御する
付記3乃至6のいずれか1項に記載の情報処理装置。
(Appendix 7)
execution means for providing a plurality of virtual machines and a plurality of virtual network interfaces each operating as one network interface of the plurality of virtual machines;
a communication means for relaying communication with an external communication network;
Data is received via the communication means, a request is made to the control means for the rule that matches the received data, and the processing indicated by the rule returned in response to the request is performed on the received data. a processing means;
a rule storage means for storing the rule;
further comprising
When the rule that matches the data is requested, the control means reads the rule from the cache means if the rule is stored in the cache means, and the rule is not stored in the cache means. read the rule from the rule storage means, return the read rule,
The processing means sends the data to the scheduling means when the processing to be performed on the data indicated by the returned rule is transfer to one of the plurality of virtual machines;
said scheduling means comprising a plurality of temporary storage areas each associated with one of said plurality of virtual machines, said data being transferred to a temporary storage area associated with said virtual machine upon receipt of said data; storing the data, transmitting the data read from the temporary storage area to the virtual machine to which the data is transferred via the communication path, and further specifying the processing to be performed on the data 7. The information processing apparatus according to any one of appendices 3 to 6, wherein the bandwidth is controlled by determining whether or not to read data from the temporary storage area based on the communication load that has occurred.
(付記8)
前記制御手段は、前記データが破棄された場合、当該データの前記ルールが前記キャッシュ手段に格納されている場合、当該ルールが優先的に前記キャッシュ手段に保持されるように設定する
付記1乃至7のいずれか1項に記載の情報処理装置。
(Appendix 8)
When the data is discarded and the rule of the data is stored in the cache means, the control means sets the rule so that the rule is preferentially held in the cache means. The information processing device according to any one of .
(付記9)
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定手段と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、
を備える情報処理装置。
(Appendix 9)
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; a determining means based on the size of the data;
control means for storing the rules determined to be stored in the cache means;
Information processing device.
(付記10)
前記制御手段は、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるよう、前記決定を行う
付記9に記載の情報処理装置。
(Appendix 10)
The information processing apparatus according to appendix 9, wherein the control means makes the determination such that the rule is preferentially stored in the cache means when the size of the data is smaller than a predetermined standard.
(付記11)
前記データに行われる前記処理を特定することによって生じた、前記通信経路を介した通信の負荷に基づいて、前記データを転送する通信の帯域を制御するスケジューリング手段
をさらに備える付記9又は10に記載の情報処理装置。
(Appendix 11)
11. The method according to
(付記12)
前記通信の負荷は、前記ルールの読み出しによって生じた、前記通信経路を介した通信の量を含む
付記11に記載の情報処理装置。
(Appendix 12)
12. The information processing apparatus according to appendix 11, wherein the communication load includes an amount of communication via the communication path caused by reading the rule.
(付記13)
前記通信経路の使用率を測定する測定手段をさらに備え、
前記スケジューリング手段は、前記使用率にさらに基づいて、前記帯域を制御する
付記11又は12に記載の情報処理装置。
(Appendix 13)
Further comprising measuring means for measuring the utilization rate of the communication path,
13. The information processing apparatus according to appendix 11 or 12, wherein the scheduling means controls the band further based on the usage rate.
(付記14)
前記スケジューリング手段は、前記データの前記ルールがキャッシュ手段に格納されていた否かに基づいて、前記通信の負荷が生じたか否かの判定を行い、当該判定の結果に基づいて、前記通信の帯域を制御する
付記11乃至13のいずれか1項に記載の情報処理装置。
(Appendix 14)
The scheduling means determines whether or not the communication load has occurred based on whether or not the rule of the data has been stored in the cache means, and based on the result of the determination, 14. The information processing apparatus according to any one of appendices 11 to 13.
(付記15)
複数の仮想マシンと、それぞれ当該複数の仮想マシンの1つのネットワークインタフェースとして動作する複数の仮想ネットワークインタフェースとを提供する実行手段と、
外部通信ネットワークとの通信を中継する通信手段と、
前記通信手段を介してデータを受け取り、受け取った前記データに適合する前記ルールを前記制御手段に要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理手段と、
前記ルールを記憶するルール記憶手段と、
をさらに備え、
前記制御手段は、前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを前記ルール記憶手段から読み出し、読み出した前記ルールを返送し、
前記処理手段は、返送された前記ルールが示す、前記データに行われる処理が、前記複数の仮想マシンのいずれかへの転送である場合、前記データを前記スケジューリング手段に送出し、
前記スケジューリング手段は、それぞれ前記複数の仮想マシンの1つに関連付けられている複数の一時記憶領域を含み、前記データを受け取った場合前記データが転送される仮想マシンに関連付けられている一時記憶領域に前記データを格納し、当該一時記憶領域から読み出した前記データを、前記通信経路を介して前記データが転送される前記仮想マシンに送信し、さらに、前記データに行われる前記処理を特定することによって生じた前記通信の負荷に基づいて、前記一時記憶領域からデータを読み出すか否かを決定することによって、前記帯域を制御する
付記11乃至14のいずれか1項に記載の情報処理装置。
(Appendix 15)
execution means for providing a plurality of virtual machines and a plurality of virtual network interfaces each operating as one network interface of the plurality of virtual machines;
a communication means for relaying communication with an external communication network;
Data is received via the communication means, a request is made to the control means for the rule that matches the received data, and the processing indicated by the rule returned in response to the request is performed on the received data. a processing means;
a rule storage means for storing the rule;
further comprising
When the rule that matches the data is requested, the control means reads the rule from the cache means if the rule is stored in the cache means, and the rule is not stored in the cache means. read the rule from the rule storage means, return the read rule,
The processing means sends the data to the scheduling means when the processing to be performed on the data indicated by the returned rule is transfer to one of the plurality of virtual machines;
said scheduling means comprising a plurality of temporary storage areas each associated with one of said plurality of virtual machines, said data being transferred to a temporary storage area associated with said virtual machine upon receipt of said data; storing the data, transmitting the data read from the temporary storage area to the virtual machine to which the data is transferred via the communication path, and further specifying the processing to be performed on the data 15. The information processing apparatus according to any one of appendices 11 to 14, wherein the bandwidth is controlled by determining whether or not to read data from the temporary storage area based on the communication load that has occurred.
(付記16)
前記制御手段は、前記データが破棄された場合、当該データの前記ルールが前記キャッシュ手段に格納されている場合、当該ルールが優先的に前記キャッシュ手段に保持されるように設定する
付記9乃至15のいずれか1項に記載の情報処理装置。
(Appendix 16)
When the data is discarded and the rule of the data is stored in the cache means, the control means sets the rule so that the rule is preferentially held in the cache means. The information processing device according to any one of .
(付記17)
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズに基づいて行う決定手段と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、
を備える情報処理装置。
(Appendix 17)
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; a determining means based on the size of the data;
control means for storing the rules determined to be stored in the cache means;
Information processing device.
(付記18)
前記制御手段は、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるよう、前記決定を行う
付記17に記載の情報処理装置。
(Appendix 18)
18. The information processing apparatus according to appendix 17, wherein the control means makes the determination such that the rule is preferentially stored in the cache means when the size of the data is smaller than a predetermined standard.
(付記19)
前記データに行われる前記処理を特定することによって生じた、前記通信経路を介した通信の負荷に基づいて、前記データを転送する通信の帯域を制御するスケジューリング手段
をさらに備える付記17又は18に記載の情報処理装置。
(Appendix 19)
19. The method according to appendix 17 or 18, further comprising scheduling means for controlling a bandwidth of communication for transferring the data based on a communication load through the communication path caused by specifying the processing to be performed on the data. information processing equipment.
(付記20)
前記通信の負荷は、前記ルールの読み出しによって生じた、前記通信経路を介した通信の量を含む
付記19に記載の情報処理装置。
(Appendix 20)
20. The information processing apparatus according to appendix 19, wherein the communication load includes an amount of communication via the communication path caused by reading the rule.
(付記21)
前記通信経路の使用率を測定する測定手段をさらに備え、
前記スケジューリング手段は、前記使用率にさらに基づいて、前記帯域を制御する
付記19又は20に記載の情報処理装置。
(Appendix 21)
Further comprising measuring means for measuring the utilization rate of the communication path,
21. The information processing apparatus according to appendix 19 or 20, wherein the scheduling means controls the band further based on the usage rate.
(付記22)
前記スケジューリング手段は、前記データの前記ルールがキャッシュ手段に格納されていた否かに基づいて、前記通信の負荷が生じたか否かの判定を行い、当該判定の結果に基づいて、前記通信の帯域を制御する
付記19乃至21のいずれか1項に記載の情報処理装置。
(Appendix 22)
The scheduling means determines whether or not the communication load has occurred based on whether or not the rule of the data has been stored in the cache means, and based on the result of the determination, 22. The information processing apparatus according to any one of appendices 19 to 21.
(付記23)
複数の仮想マシンと、それぞれ当該複数の仮想マシンの1つのネットワークインタフェースとして動作する複数の仮想ネットワークインタフェースとを提供する実行手段と、
外部通信ネットワークとの通信を中継する通信手段と、
前記通信手段を介してデータを受け取り、受け取った前記データに適合する前記ルールを前記制御手段に要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理手段と、
前記ルールを記憶するルール記憶手段と、
をさらに備え、
前記制御手段は、前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを前記ルール記憶手段から読み出し、読み出した前記ルールを返送し、
前記処理手段は、返送された前記ルールが示す、前記データに行われる処理が、前記複数の仮想マシンのいずれかへの転送である場合、前記データを前記スケジューリング手段に送出し、
前記スケジューリング手段は、それぞれ前記複数の仮想マシンの1つに関連付けられている複数の一時記憶領域を含み、前記データを受け取った場合前記データが転送される仮想マシンに関連付けられている一時記憶領域に前記データを格納し、当該一時記憶領域から読み出した前記データを、前記通信経路を介して前記データが転送される前記仮想マシンに送信し、さらに、前記データに行われる前記処理を特定することによって生じた前記通信の負荷に基づいて、前記一時記憶領域からデータを読み出すか否かを決定することによって、前記帯域を制御する
付記19乃至22のいずれか1項に記載の情報処理装置。
(Appendix 23)
execution means for providing a plurality of virtual machines and a plurality of virtual network interfaces each operating as one network interface of the plurality of virtual machines;
a communication means for relaying communication with an external communication network;
Data is received via the communication means, a request is made to the control means for the rule that matches the received data, and the processing indicated by the rule returned in response to the request is performed on the received data. a processing means;
a rule storage means for storing the rule;
further comprising
When the rule that matches the data is requested, the control means reads the rule from the cache means if the rule is stored in the cache means, and the rule is not stored in the cache means. read the rule from the rule storage means, return the read rule,
The processing means sends the data to the scheduling means when the processing to be performed on the data indicated by the returned rule is transfer to one of the plurality of virtual machines;
said scheduling means comprising a plurality of temporary storage areas each associated with one of said plurality of virtual machines, said data being transferred to a temporary storage area associated with said virtual machine upon receipt of said data; storing the data, sending the data read from the temporary storage area to the virtual machine to which the data is transferred via the communication path, and further specifying the processing to be performed on the data 23. The information processing apparatus according to any one of attachments 19 to 22, wherein the bandwidth is controlled by determining whether or not to read data from the temporary storage area based on the communication load that has occurred.
(付記24)
前記制御手段は、前記データが破棄された場合、当該データの前記ルールが前記キャッシュ手段に格納されている場合、当該ルールが優先的に前記キャッシュ手段に保持されるように設定する
付記17乃至23のいずれか1項に記載の情報処理装置。
(Appendix 24)
When the data is discarded and the rule of the data is stored in the cache means, the control means sets the rule so that the rule is preferentially held in the cache means. The information processing device according to any one of .
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 Although the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
1 情報処理システム
10 コンピュータ
100 情報処理装置
101 CPU
102 メモリ
103A バス
103B バス
103C バス
103D バス
104 NIC
105 記憶装置
106 アクセス装置
107 記憶媒体
110 CPU及びメモリ
110A 実行部
111 仮想通信インタフェース部(仮想NIC部)
112 ルール記憶部
113 ルール管理部
114 情報処理部
115 指示受付部
120 仮想スイッチ用ハードウェア
121 パケット処理部
122 キャッシュ部
123 スケジューリング部
124 通信インタフェース部(NIC部)
125 決定部
126 制御部
200 ホストマシン
210 CPU及びメインメモリ
211 仮想NIC
212 FIB
214 仮想マシン(VM)
220 仮想スイッチ用HW
221 仮想スイッチ
230 バス
240 NIC
300 管理装置
400 通信ネットワーク
500 情報処理装置
1231 選択部
1232 不足カウンタ部
1233 キュー部
1234 受付部
1
102 memory 103A bus 103B bus 103C
105
112
125
212 FIBs
214 virtual machine (VM)
220 HW for virtual switch
221 virtual switch 230
300 management device 400
Claims (9)
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御手段と、
外部通信ネットワークとの通信を中継する通信手段と、
前記通信手段を介して前記データを受け取り、受け取った前記データに適合する前記ルールを前記制御手段に要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理手段と、
前記ルールを記憶するルール記憶手段とを備え、
前記制御手段は、前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを前記通信経路を介して前記ルール記憶手段から読み出し、読み出した前記ルールを返送する、情報処理装置。 indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; determining means for preferentially storing said rule in said caching means when the size of data is smaller than a predetermined criterion ;
control means for storing the rules determined to be stored in the cache means;
a communication means for relaying communication with an external communication network;
receiving the data via the communication means, requesting the control means for the rule conforming to the received data, and performing the processing indicated by the rule returned in response to the request for the received data a processing means for performing
A rule storage means for storing the rule ,
When the rule that matches the data is requested, the control means reads the rule from the cache means if the rule is stored in the cache means, and the rule is not stored in the cache means. case, reading the rule from the rule storage means via the communication path, and returning the read rule .
をさらに備える請求項1に記載の情報処理装置。 2. The scheduling means according to claim 1, further comprising scheduling means for controlling a bandwidth of communication for transferring said data based on a communication load through said communication path caused by specifying said processing to be performed on said data. Information processing equipment.
請求項2に記載の情報処理装置。 The information processing apparatus according to claim 2 , wherein the communication load includes an amount of communication via the communication path caused by reading the rule.
前記スケジューリング手段は、前記使用率にさらに基づいて、前記帯域を制御する
請求項2又は3に記載の情報処理装置。 Further comprising measuring means for measuring the utilization rate of the communication path,
4. The information processing apparatus according to claim 2 , wherein said scheduling means controls said band further based on said usage rate.
請求項2乃至4のいずれか1項に記載の情報処理装置。 The scheduling means determines whether or not the load of the communication has occurred based on whether the rule of the data is stored in the cache means, and based on the result of the determination, determines whether the communication 5. The information processing apparatus according to any one of claims 2 to 4 , which controls a band of .
前記処理手段は、返送された前記ルールが示す、前記データに行われる処理が、前記複数の仮想マシンのいずれかへの転送である場合、前記データを前記スケジューリング手段に送出し、
前記スケジューリング手段は、それぞれ前記複数の仮想マシンの1つに関連付けられている複数の一時記憶領域を含み、前記データを受け取った場合前記データが転送される仮想マシンに関連付けられている一時記憶領域に前記データを格納し、当該一時記憶領域から読み出した前記データを、前記通信経路を介して前記データが転送される前記仮想マシンに送信し、さらに、前記データに行われる前記処理を特定することによって生じた前記通信の負荷に基づいて、前記一時記憶領域からデータを読み出すか否かを決定することによって、前記帯域を制御する
請求項2乃至5のいずれか1項に記載の情報処理装置。 Further comprising execution means for providing a plurality of virtual machines and a plurality of virtual network interfaces each operating as one network interface of the plurality of virtual machines ,
The processing means sends the data to the scheduling means when the processing to be performed on the data indicated by the returned rule is transfer to one of the plurality of virtual machines;
said scheduling means comprising a plurality of temporary storage areas each associated with one of said plurality of virtual machines, said data being transferred to a temporary storage area associated with said virtual machine upon receipt of said data; storing the data, transmitting the data read from the temporary storage area to the virtual machine to which the data is transferred via the communication path, and further specifying the processing to be performed on the data 6. The information processing apparatus according to any one of claims 2 to 5 , wherein the bandwidth is controlled by determining whether or not to read data from the temporary storage area based on the communication load that has occurred.
請求項1乃至6のいずれか1項に記載の情報処理装置。 2. When the data is discarded and the rule of the data is stored in the cache means, the control means sets the rule so that the rule is preferentially held in the cache means. 7. The information processing device according to any one of 6 .
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるようにして行い、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行い、
外部通信ネットワークとの通信を行う通信手段を介して前記データを受け取り、受け取った前記データに適合する前記ルールを要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行い、
前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを、前記ルールを記憶するルール記憶手段から前記通信経路を介して読み出し、読み出した前記ルールを返送する
情報処理方法。 The information processing device
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; If the data size is smaller than a predetermined standard, the rule is preferentially stored in the cache means ;
storing the rule determined to be stored in the cache means;
receiving the data via a communication means for communicating with an external communication network, requesting the rule that conforms to the received data, and performing the processing indicated by the rule returned in response to the request; against
when the rule that matches the data is requested, if the rule is stored in the cache means, the rule is read from the cache means; if the rule is not stored in the cache means, the rule is read, read out from the rule storage means for storing the rule through the communication path, and return the read rule
Information processing methods.
データに対する、転送を含む複数の種類の処理の少なくとも1つの処理を示し、前記データの転送に使用される通信経路を介して読み出されるルールを、キャッシュ手段に格納するか否かの決定を、前記データのサイズが所定の基準より小さい場合に、前記ルールが前記キャッシュ手段に優先的に格納されるようにして行う決定処理と、
格納すると決定された前記ルールの前記キャッシュ手段への格納を行う制御処理と、
外部通信ネットワークとの通信を行う通信手段を介して前記データを受け取り、受け取った前記データに適合する前記ルールを要求し、要求に対して返送された前記ルールが示す前記処理を、受け取った前記データに対して行う処理と、
前記データに適合する前記ルールを要求された場合、当該ルールが前記キャッシュ手段に格納されている場合当該キャッシュ手段から前記ルールを読み出し、前記ルールが前記キャッシュ手段に格納されていない場合当該ルールを、前記ルールを記憶するルール記憶手段から前記通信経路を介して読み出し、読み出した前記ルールを返送する処理と
を実行させるプログラム。 to the computer,
indicating at least one of a plurality of types of processing including transfer for data, and determining whether or not to store rules read out via a communication path used for transferring the data in the cache means; a determination process for preferentially storing the rule in the cache means when the size of the data is smaller than a predetermined standard ;
a control process of storing the rule determined to be stored in the cache means;
receiving the data via a communication means for communicating with an external communication network, requesting the rule that conforms to the received data, and performing the processing indicated by the rule returned in response to the request; the processing to be performed on the
when the rule that matches the data is requested, if the rule is stored in the cache means, the rule is read from the cache means; if the rule is not stored in the cache means, the rule is read, a process of reading the rule from the rule storage means for storing the rule through the communication path and returning the read rule;
program to run.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018141186A JP7151246B2 (en) | 2018-07-27 | 2018-07-27 | Information processing device, information processing method and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018141186A JP7151246B2 (en) | 2018-07-27 | 2018-07-27 | Information processing device, information processing method and program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2020017911A JP2020017911A (en) | 2020-01-30 |
| JP7151246B2 true JP7151246B2 (en) | 2022-10-12 |
Family
ID=69580657
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018141186A Active JP7151246B2 (en) | 2018-07-27 | 2018-07-27 | Information processing device, information processing method and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7151246B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7740081B2 (en) * | 2022-03-22 | 2025-09-17 | エフサステクノロジーズ株式会社 | Switching device and method for controlling switching device |
-
2018
- 2018-07-27 JP JP2018141186A patent/JP7151246B2/en active Active
Non-Patent Citations (1)
| Title |
|---|
| WATANABE, Y. et al.,Accelerating NFV Application Using CPU-FPGA Tightly Coupled Architecture,Proceedings of the 2017 International Conference on Field Programmable Technology (ICFPT 2017),2017年12月11日,pp. 136-143 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2020017911A (en) | 2020-01-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP4241433B1 (en) | Delay-based automatic queue management and tail drop | |
| KR101826725B1 (en) | Technologies for network device flow lookup management | |
| Shi et al. | Load balancing for parallel forwarding | |
| US11765250B2 (en) | Devices and methods for managing network traffic for a distributed cache | |
| US10193831B2 (en) | Device and method for packet processing with memories having different latencies | |
| US8799507B2 (en) | Longest prefix match searches with variable numbers of prefixes | |
| US9992299B2 (en) | Technologies for network packet cache management | |
| CN107528783B (en) | IP route caching with two search phases for prefix length | |
| US20150074222A1 (en) | Method and apparatus for load balancing and dynamic scaling for low delay two-tier distributed cache storage system | |
| Panda et al. | Dynamic hard timeout based flow table management in openflow enabled SDN | |
| KR20140067881A (en) | Method for transmitting packet of node and content owner in content centric network | |
| US10404594B2 (en) | System and method for providing partitions of classification resources in a network device | |
| KR20030026240A (en) | Data packet discarding | |
| CN111970213A (en) | Queuing system | |
| JP2017143344A (en) | Packet transmission device, control device, and packet transmission control method | |
| US11757779B2 (en) | Load distribution system and load distribution method | |
| JP7151246B2 (en) | Information processing device, information processing method and program | |
| EP3374881B1 (en) | Dynamic allocation of hash table resources | |
| CN105516223B (en) | Virtual storage system and its implementation method, server and virtual machine monitor | |
| JP7251060B2 (en) | Information processing device, information processing system and information processing program | |
| US12164439B1 (en) | Hardware architecture of packet cache eviction engine | |
| Hussain et al. | A lightweight fairness-driven AQM for regulating bandwidth utilization in best-effort routers | |
| US20240396827A1 (en) | Dampening Next Hop Updates in a Network Device | |
| Cai et al. | Load balancing and dynamic scaling of cache storage against zipfian workloads | |
| CN119945967B (en) | Path selection method, data pulling method and wide area storage service cluster system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210615 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20211015 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220217 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220308 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220427 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220830 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220912 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 7151246 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |