JP6461834B2 - Network load balancing apparatus and method - Google Patents
Network load balancing apparatus and method Download PDFInfo
- Publication number
- JP6461834B2 JP6461834B2 JP2016018628A JP2016018628A JP6461834B2 JP 6461834 B2 JP6461834 B2 JP 6461834B2 JP 2016018628 A JP2016018628 A JP 2016018628A JP 2016018628 A JP2016018628 A JP 2016018628A JP 6461834 B2 JP6461834 B2 JP 6461834B2
- Authority
- JP
- Japan
- Prior art keywords
- hash value
- load distribution
- packet
- priority
- control
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、パケットの送出先を制御するための装置に係り、特に通信サーバ補助装置内での特定のパケットに対する優先制御と負荷分散とを両立させることによってQoS(Quality of Service)の確保とスループット性能の向上とを実現するネットワーク負荷分散装置および方法に関するものである。 The present invention relates to an apparatus for controlling a packet transmission destination, and in particular, ensures QoS (Quality of Service) and throughput by achieving both priority control and load distribution for a specific packet in a communication server auxiliary apparatus. The present invention relates to a network load distribution apparatus and method for improving performance.
一般的なSDN(Software Defined Networking)/NFV(Network Functions Virtualization)の考え方に基づいて構成されるネットワークにおいて利用される汎用ネットワーク機器のフロントエンドハードウェアにおいて実現されている優先制御の構成例が非特許文献1に開示されている。
Non-patented configuration example of priority control implemented in the front-end hardware of general-purpose network equipment used in a network configured based on the concept of general SDN (Software Defined Networking) / NFV (Network Functions Virtualization) It is disclosed in
図4は非特許文献1に開示された優先制御技術の一部を説明する図である。図4の例では、着信パケットのイーサタイプ値が所定値と一致すれば(図4ステップS100においてYes)、着信パケットを優先制御対象のフローであるとしてキュー200に分類する(図4ステップS101)。また、着信パケットのFCoE(Fibre Channel over Ethernet)のタイプ値が所定値と一致すれば(図4ステップS102においてYes)、着信パケットを優先制御対象のフローであるとしてキュー201に分類する(図4ステップS103)。
FIG. 4 is a diagram for explaining a part of the priority control technique disclosed in
このように一般的に汎用のNIC(Network Interface Card)を利用した優先制御では、各プロトコル毎に固有のキューに優先制御対象のフローがフィルタリングされる。しかしながら、非特許文献1に開示された技術では、予め用意されたプロトコル毎に固定のフィールド値に対するフィルタリングのみを実施するため、特殊な条件(例えば複数フィールドにまたがるフィルタリング条件)への対応が難しく、また将来の拡張性に問題があった。また、非特許文献1に開示された技術では、各プロトコルに割り当てられたキューの数が固定であるため、特定のサービスに特化してリソースを利用することが困難であった。さらに、非特許文献1に開示された技術では、所定のフィルタリング条件に該当しなかったパケットを単一のキューに分類するため、フィルタリング条件に該当しないパケットが多いユースケースにおいて転送性能が悪化する懸念があり、高スループットの実現が困難であった。
As described above, in general priority control using a general-purpose NIC (Network Interface Card), a priority control target flow is filtered into a unique queue for each protocol. However, in the technique disclosed in
一方、マルチキューを用いて高スループットを実現する負荷分散の一般例としてはロードバランサなどで利用されているラウンドロビン制御があげられる。しかし、一般的なラウンドロビン制御では、各キュー内における処理時間に変動があり、結果としてフロー内での順序逆転が発生してしまう。この問題に対する解決策として特許文献1のようなルータ上で提案されている負荷分散制御が挙げられる。
On the other hand, a general example of load distribution that achieves high throughput using multi-queues is round-robin control used in a load balancer or the like. However, in general round robin control, the processing time in each queue varies, and as a result, the order is reversed in the flow. As a solution to this problem, there is a load balancing control proposed on a router as in
図5は特許文献1に開示された負荷分散制御技術を説明する図である。特許文献1に開示された技術では、パケットの宛先を決定し、宛先への経路に対応するデータバッファにパケットを転送する。パケットは、データバッファから適宜読み出されて宛先へ送信される。このとき、負荷分散制御部300は、それぞれ経路A,B,Cに対応するデータバッファ300−1,300−2,300−3の負荷状況を監視して経路を選択する動的な経路割り当てを行い、選択した経路に対応するデータバッファにパケットを転送する。
FIG. 5 is a diagram for explaining the load distribution control technique disclosed in
このようなルータ上で提案されているフロー内順序を保障する負荷分散制御では、ラウンドロビン制御における課題を解決することができる。しかしながら、特許文献1に開示された技術では、データバッファの負荷状況を監視して動的な経路割り当てを行うため、バッファ切り替えのタイミングでフロー内での順序逆転が起こり得るという問題点があった。また、特許文献1で提案されている構成では、専用ハードウェアを用いることを前提としており、装置内に十分大きなハードウェア資源が存在するため、優先制御などとの協調制御は考慮されておらず、NIC上の限られたハードウェアでの実装に適していないという問題点があった。
With load distribution control that guarantees the in-flow order proposed on such a router, the problems in round robin control can be solved. However, the technique disclosed in
以上のように汎用のNICを利用した、非特許文献1に開示された技術では、柔軟な優先制御が難しく、また高スループットの実現が困難であった。
また、特許文献1に開示された技術では、パケットの送信順序の保証と優先制御とを実現できず、またNIC上の限られたハードウェアに実装し難いという問題点があった。
As described above, with the technology disclosed in
Further, the technique disclosed in
本発明は、上記課題を解決するためになされたもので、SDN/NFVのフロントエンドハードウェアであるNIC上に実装できる小資源のハードウェア上で柔軟な優先制御と高スループットの共存を実現することを目的とする。 The present invention has been made to solve the above-described problems, and realizes flexible priority control and high-throughput coexistence on small-resource hardware that can be mounted on the NIC, which is the front-end hardware of SDN / NFV. For the purpose.
本発明のネットワーク負荷分散装置は、受信したパケットに含まれるフィールド値を基に第1のハッシュ値を演算するハッシュ値演算手段と、前記パケットの送出先の通信経路ごとに設けられるデータバッファと、前記第1のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御手段と、前記第1のハッシュ値に基づく第2のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御手段と、前記優先制御手段あるいは前記負荷分散制御手段が決定した送出先の通信経路に従って、この通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御手段とを備えることを特徴とするものである。
また、本発明のネットワーク負荷分散装置の1構成例において、前記ハッシュ値演算手段は、前記パケット内の、外部から予め指定された位置にあるフィールド値を取得し、このフィールド値と外部から予め設定されたキー値とに基づいて前記第1のハッシュ値を演算することを特徴とするものである。
また、本発明のネットワーク負荷分散装置の1構成例において、前記優先制御手段は、前記ハッシュ値演算手段が演算する第1のハッシュ値のとり得る値と送出先の通信経路とを対応付けて予め記憶する優先経路選択テーブルと、前記第1のハッシュ値と同一の値が前記優先経路選択テーブルに登録されている場合に、前記第1のハッシュ値と対応する送出先の通信経路の情報を前記優先経路選択テーブルから取得する優先経路制御手段とを備えることを特徴とするものである。
The network load distribution apparatus of the present invention includes a hash value calculation means for calculating a first hash value based on a field value included in a received packet, a data buffer provided for each communication path to which the packet is sent, Priority control means for detecting a specific packet subject to priority control based on the first hash value, and determining a communication path to which the packet is to be transmitted, and a second hash based on the first hash value A load distribution control unit that determines a communication path of a transmission destination of the packet that is not subject to priority control according to a value while satisfying load distribution of the data buffer, and a destination determined by the priority control unit or the load distribution control unit And a packet transfer control means for transmitting the packet to a data buffer corresponding to the communication path. It is an feature.
Also, in one configuration example of the network load distribution apparatus of the present invention, the hash value calculation means obtains a field value at a position designated in advance from the outside in the packet, and sets the field value and the outside in advance. The first hash value is calculated based on the key value thus obtained.
In the configuration example of the network load distribution apparatus according to the present invention, the priority control unit associates a possible value of the first hash value calculated by the hash value calculation unit with a communication path of a transmission destination in advance. When the priority route selection table to be stored and the same value as the first hash value are registered in the priority route selection table, information on the destination communication route corresponding to the first hash value is stored in the priority route selection table. And a priority route control means for obtaining from a priority route selection table.
また、本発明のネットワーク負荷分散装置の1構成例において、前記負荷分散制御手段は、前記ハッシュ値演算手段が演算した第1のハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから第2のハッシュ値を演算する負荷分散ハッシュ値演算手段と、この負荷分散ハッシュ値演算手段が演算する第2のハッシュ値のとり得る値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路とから予め設定される負荷分散経路選択テーブルと、前記負荷分散ハッシュ値演算手段が演算した第2のハッシュ値と対応する送出先の通信経路の情報を前記負荷分散経路選択テーブルから取得する負荷分散経路制御手段とを備えることを特徴とするものである。
また、本発明のネットワーク負荷分散装置の1構成例において、前記負荷分散経路選択テーブルに登録される送出先の通信経路は、前記負荷分散ハッシュ値演算手段が演算する第2のハッシュ値のとり得る全ての値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路の情報とから、前記負荷分散ハッシュ値演算手段が演算する第2のハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が前記負荷分散設定データで規定される負荷状況と合致するように決定されていることを特徴とするものである。
Further, in one configuration example of the network load distribution apparatus according to the present invention, the load distribution control unit includes a first hash value calculated by the hash value calculation unit and information on a predetermined destination usable in the load distribution control. Load distribution hash value calculation means for calculating the second hash value from the above, a possible value of the second hash value calculated by the load distribution hash value calculation means, load distribution setting data set from the outside, and load distribution control The load distribution route selection table preset from the destination communication routes that can be used in the network, and the destination communication route information corresponding to the second hash value calculated by the load distribution hash value calculation means. It is characterized by comprising load distribution path control means acquired from the distribution path selection table.
Further, in one configuration example of the network load distribution apparatus of the present invention, the destination communication path registered in the load distribution path selection table can take the second hash value calculated by the load distribution hash value calculation means. Packets according to the second hash value calculated by the load distribution hash value calculation means from all values, load distribution setting data set from the outside, and information on the destination communication path that can be used in load distribution control Is determined so that the load status of each data buffer when it is distributed to the data buffers that can be used in load balancing control matches the load status specified by the load balancing setting data. .
また、本発明のネットワーク負荷分散方法は、受信したパケットに含まれるフィールド値を基に第1のハッシュ値を演算するハッシュ値演算ステップと、前記第1のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御ステップと、前記第1のハッシュ値に基づく第2のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御ステップと、前記優先制御ステップあるいは前記負荷分散制御ステップで決定した送出先の通信経路に従って、この通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御ステップとを含むことを特徴とするものである。 The network load distribution method of the present invention includes a hash value calculation step of calculating a first hash value based on a field value included in a received packet, and a priority control target based on the first hash value. A priority control step of detecting a specific packet and determining a communication path of a destination of the packet, and a second hash value based on the first hash value of the destination of the packet not subject to the priority control. In accordance with the load distribution control step for determining the communication path while satisfying the load distribution of the data buffer and the destination communication path determined in the priority control step or the load distribution control step, the data buffer corresponding to this communication path And a packet transfer control step for transmitting the packet.
本発明によれば、パケットの振り分け処理を優先制御と負荷分散制御に分け、優先制御と負荷分散制御を協調させることで限られたデータバッファを効率的に活用することができ、小資源のハードウェア上で柔軟な優先制御と負荷分散による高スループットの共存を実現することができる。 According to the present invention, it is possible to efficiently use a limited data buffer by dividing packet distribution processing into priority control and load distribution control, and by coordinating priority control and load distribution control. High-throughput coexistence can be realized by flexible priority control and load distribution on the hardware.
以下、本発明の実施の形態について図面を参照して説明する。図1は本発明の実施の形態に係るネットワーク負荷分散装置の構成を示すブロック図である。ネットワーク負荷分散装置は、ハッシュ値演算部1と、優先制御部2と、負荷分散制御部3と、パケット転送制御部4と、データバッファ5−1〜5−3と、ハッシュ値演算制御部6と、テーブル割り当て制御部7とを備えている。なお、図1の例では、パケットの送出先の通信経路ごとに設けられるデータバッファを、データバッファ5−1〜5−3の3個としているが、データバッファの個数はこれに限るものではない。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a block diagram showing a configuration of a network load distribution apparatus according to an embodiment of the present invention. The network load distribution apparatus includes a hash
優先制御部2は、優先経路選択テーブル20と、優先経路制御部21とから構成され、負荷分散制御部3は、負荷分散ハッシュ値演算部30と、負荷分散経路選択テーブル31と、負荷分散経路制御部32とから構成される。
The
ネットワーク負荷分散装置は、典型的にはFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等のデバイスと、当該デバイス上で動作するプログラムあるいはデバイスの回路データを用いて実現される。プログラムで実現する場合、デバイスのプロセッサは、メモリに格納されたプログラムに従って以下のような処理を実行し、ネットワーク負荷分散装置として機能する。また、これに限るものではなく一般に利用されるスイッチまたはルータのような汎用デバイス上でのプログラムあるいは汎用サーバ上の仮想スイッチなどを利用して本実施の形態のネットワーク負荷分散装置を実現することもできる。 The network load distribution apparatus is typically realized by using a device such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC) and a program operating on the device or circuit data of the device. When realized by a program, the processor of the device performs the following processing according to the program stored in the memory, and functions as a network load distribution device. Further, the present invention is not limited to this, and the network load distribution apparatus according to the present embodiment may be realized by using a program on a general-purpose device such as a switch or router or a virtual switch on a general-purpose server. it can.
以下、本実施の形態のネットワーク負荷分散装置の動作を図2のフローチャートを用いて説明する。本実施の形態はパケット受信端での利用を想定しており、ネットワーク負荷分散装置にはパケット形式のデータが入力される。パケットは、一般にヘッダデータとして、そのパケットの属性を表す付加データを有している。 Hereinafter, the operation of the network load distribution apparatus according to the present embodiment will be described with reference to the flowchart of FIG. This embodiment assumes use at the packet receiving end, and packet format data is input to the network load distribution apparatus. A packet generally has additional data representing the attribute of the packet as header data.
ネットワーク負荷分散装置のハッシュ値演算部1は、パケットを受信すると(図2ステップS1)、このパケットのヘッダデータ中の所定の位置にあるフィールド値を取得し、取得したフィールド値と予め設定されたキー(key)値とからパケットの属性に固有のハッシュ値を演算する(図2ステップS2)。ハッシュ値演算部1が演算したハッシュ値は、優先制御部2に通知される。
When the hash
パケットのヘッダデータ中の取得するフィールド値の位置は、ハッシュ値演算部1に対して外部からハッシュ値演算制御部6を介して予め指定される。同様に、キー値についても、外部からハッシュ値演算制御部6を介して予め設定される。
The position of the field value to be acquired in the header data of the packet is designated in advance by the hash
次に、優先制御部2の優先経路選択テーブル20には、ハッシュ値演算部1が演算するハッシュ値のとり得る値と送出先の通信経路とが対応付けて予め記憶されている。この優先経路選択テーブル20は、外部からテーブル割り当て制御部7を介して予め設定される。
Next, in the priority route selection table 20 of the
優先制御部2の優先経路制御部21は、ハッシュ値演算部1が演算したハッシュ値と優先経路選択テーブル20とを照合し、ハッシュ値演算部1が演算したハッシュ値と同一の値が優先経路選択テーブル20に登録されている場合(図2ステップS3においてYES)、このハッシュ値と対応する送出先の通信経路の情報を優先経路選択テーブル20から取得して、送出先の通信経路の情報をパケット転送制御部4へ通知する(図2ステップS4)。
The priority
優先経路制御部21は、ハッシュ値演算部1が演算したハッシュ値と同一の値が優先経路選択テーブル20に登録されていない場合(ステップS3においてNO)、ハッシュ値演算部1が演算したハッシュ値を負荷分散制御部3へ通知する(図2ステップS5)。
If the same value as the hash value calculated by the hash
負荷分散制御部3の負荷分散経路選択テーブル31には、後述する負荷分散ハッシュ値演算部30が演算するハッシュ値のとり得る値と送出先の通信経路とが対応付けて予め記憶されている。この負荷分散経路選択テーブル31の作成方法については後述する。
In the load distribution route selection table 31 of the load
負荷分散制御部3の負荷分散ハッシュ値演算部30は、ハッシュ値演算部1が演算したハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから負荷分散処理に利用するハッシュ値を演算する(図2ステップS6)。具体的には、負荷分散ハッシュ値演算部30は、ハッシュ値演算部1が演算したハッシュ値を負荷分散制御で利用可能な送出先の通信経路の数(負荷分散制御で利用可能なデータバッファ5−1〜5−3の数)で除算すればよい。
The load distribution hash
送出先の通信経路(データバッファ5−1〜5−3)には、優先制御のみで利用されるものと、負荷分散制御のみで利用されるものと、優先制御と負荷分散制御で共有されるものとがある。したがって、負荷分散制御で利用可能な送出先の通信経路としては、負荷分散制御のみで利用されるものと、優先制御と負荷分散制御で共有されるものとがある。負荷分散制御で利用可能な送出先の通信経路(負荷分散制御で利用可能なデータバッファ5−1〜5−3)の情報は、外部からテーブル割り当て制御部7を介して予め通知される。 The destination communication paths (data buffers 5-1 to 5-3) are shared only by priority control, those used only by load distribution control, and shared by priority control and load distribution control. There is a thing. Therefore, the destination communication paths that can be used in the load distribution control include those that are used only in the load distribution control and those that are shared in the priority control and the load distribution control. Information on destination communication paths (data buffers 5-1 to 5-3 that can be used in load distribution control) that can be used in load distribution control is notified in advance via the table allocation control unit 7 from the outside.
上記のとおり、ハッシュ値演算部1が演算するハッシュ値は、パケットの属性に固有の値である。一方、負荷分散ハッシュ値演算部30が演算するハッシュ値は、パケットの属性に固有の値であるとは限らず、異なる属性について同一の値が算出される場合が有り得る。
As described above, the hash value calculated by the hash
負荷分散制御部3の負荷分散経路制御部32は、負荷分散ハッシュ値演算部30が演算したハッシュ値と負荷分散経路選択テーブル31とを照合し、負荷分散ハッシュ値演算部30が演算したハッシュ値と対応する送出先の通信経路の情報を負荷分散経路選択テーブル31から取得して、送出先の通信経路の情報をパケット転送制御部4へ通知する(図2ステップS7)。
The load distribution path control
次に、パケット転送制御部4は、受信したパケットを、優先制御部2あるいは負荷分散制御部3から通知される送出先の通信経路の情報に従って、データバッファ5−1〜5−3のいずれかへ送信する(図2ステップS8)。具体的には、パケット転送制御部4は、優先制御部2の優先経路制御部21から送出先の通信経路の情報を受け取った場合には、データバッファ5−1〜5−1のうち、優先経路制御部21から通知された送出先の通信経路に対応するデータバッファにパケットを送信し、負荷分散制御部3の負荷分散経路制御部32から送出先の通信経路の情報を受け取った場合には、負荷分散経路制御部32から通知された送出先の通信経路に対応するデータバッファにパケットを送信する。パケットは、データバッファ5−1〜5−3から対応する通信経路へ適宜出力されて宛先へ送信される。
Next, the packet transfer control unit 4 sends the received packet to one of the data buffers 5-1 to 5-3 according to the information on the destination communication path notified from the
次に、負荷分散制御部3の負荷分散経路選択テーブル31の作成方法について説明する。負荷分散経路選択テーブル31を作成するためには、負荷分散ハッシュ値演算部30が演算するハッシュ値のとり得る全ての値と、外部から設定される負荷分散設定データと、負荷分散制御で利用可能な送出先の通信経路(負荷分散制御で利用可能なデータバッファ5−1〜5−3)の情報とから、負荷分散ハッシュ値演算部30が演算するハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が負荷分散設定データで規定される負荷状況と合致するように、送出先の通信経路を決定すればよい。こうして、負荷分散ハッシュ値演算部30が演算するハッシュ値と送出先の通信経路とが対応付けられ、負荷分散経路選択テーブル31を設定することが可能になる。
Next, a method for creating the load distribution route selection table 31 of the load
負荷分散設定データとしては、各データバッファの所望の利用率データと、各データバッファの共有設定データ(例えば優先制御によるデータバッファの利用と負荷分散制御によるデータバッファの利用の所望の割合)とがある。 The load distribution setting data includes desired usage rate data of each data buffer and shared setting data of each data buffer (for example, a desired ratio of data buffer usage by priority control and data buffer usage by load distribution control). is there.
負荷分散経路選択テーブル31は、基本的には負荷分散制御で利用可能なデータバッファについて全てのデータバッファの利用率が一定となる均一なパケットの振り分けが実現されるように予め作成されるが、外部から設定される負荷分散設定データによっては、必ずしも全てのデータバッファの利用率が同一になるとは限らない。このようなデータバッファの割り付けの概念を表したものが図3である。 The load distribution route selection table 31 is basically created in advance so as to realize uniform distribution of packets in which the utilization rate of all data buffers is constant for the data buffers that can be used in load distribution control. Depending on the load distribution setting data set from the outside, the utilization rates of all the data buffers are not necessarily the same. FIG. 3 shows the concept of such data buffer allocation.
図3の例では、データバッファ5−1,5−2が優先制御のみで利用されるバッファであり、データバッファ5−3が優先制御と負荷分散制御で共有されるバッファであり、データバッファ5−4〜5−6が負荷分散制御のみで利用されるバッファである。ある属性を有するフロー(パケット)#1は優先制御によりデータバッファ5−1に送信され、別の属性を有するフロー#2は優先制御によりデータバッファ5−2または5−3に送信され、その他のフローは負荷分散制御によりデータバッファ5−3〜5−6のいずれかに送信される。
In the example of FIG. 3, the data buffers 5-1 and 5-2 are buffers used only for priority control, the data buffer 5-3 is a buffer shared by priority control and load distribution control, and the data buffer 5 -4 to 5-6 are buffers used only for load distribution control. A flow (packet) # 1 having an attribute is transmitted to the data buffer 5-1 by priority control, and a
なお、負荷分散経路選択テーブル31は以上の方法により負荷分散経路制御部32が作成して設定してもよいし、外部で作成した負荷分散経路選択テーブル31をテーブル割り当て制御部7を介して負荷分散制御部3に設定するようにしてもよい。
Note that the load distribution route selection table 31 may be created and set by the load distribution
また、負荷分散制御部3では、優先制御部2の優先経路制御部21から通知された全てのハッシュ値に対して、負荷分散経路選択テーブル31と合致するように新たなハッシュ値が演算される。このときの演算方法は、上記のとおり、通知されたハッシュ値を負荷分散制御で利用可能な送出先の通信経路の数(負荷分散制御で利用可能なデータバッファの数)で除算すればよい。
In addition, the load
ただし、負荷分散ハッシュ値演算部30でハッシュ値を演算せずに、優先制御部2の優先経路制御部21から通知されたハッシュ値をそのまま用いてもよい。この場合、負荷分散経路選択テーブル31を作成するためには、ハッシュ値演算部1が演算するハッシュ値のとり得る全ての値と、外部から設定される負荷分散設定データと、負荷分散制御で利用可能な送出先の通信経路の情報とから、ハッシュ値演算部1が演算するハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が負荷分散設定データで規定される負荷状況と合致するように、送出先の通信経路を決定すればよい。
However, the hash value notified from the priority
本実施の形態では、パケットのヘッダデータ中の取得するフィールド値の位置を外部から指定できるようにしたことにより、非特許文献1に開示されたような固定のフィールド値ではなく、任意の長さを持つ任意のフィールド値に対するパケット識別処理を実現することができる。また、本実施の形態では、特殊な条件(例えば複数のフィールドからのフィールド値の取得)に対応することが可能であり、将来の拡張性を確保することができる。
In the present embodiment, since the position of the field value to be acquired in the header data of the packet can be designated from the outside, it is not a fixed field value as disclosed in
また、本実施の形態では、特許文献1および非特許文献1に開示された技術と異なり、優先制御に利用するデータバッファと負荷分散に利用するデータバッファの自由な割り当てを実現することができ、これによりNIC等の省資源なオンチップ上での効率的なサ−ビスを実現することができる。
Also, in the present embodiment, unlike the techniques disclosed in
また、本実施の形態では、優先制御でのデータバッファの割り当てのためのハッシュ演算に加えて、負荷分散制御で利用可能なデータバッファに適したハッシュ演算を再度実施することで、負荷分散制御の対象外になるパケットを無くすことができ、パケットが単一のデータバッファに振り分けられることによるスループットの低下を回避することができる。また、本実施の形態では、ハッシュ演算によるパケット識別とデータバッファ割り当てによりパケットの順序逆転が起こらないことを保障することができる。 In addition, in this embodiment, in addition to the hash calculation for data buffer allocation in the priority control, the hash calculation suitable for the data buffer that can be used in the load distribution control is performed again. Packets that are not targeted can be eliminated, and a decrease in throughput due to distribution of packets to a single data buffer can be avoided. Further, in this embodiment, it is possible to ensure that packet order reversal does not occur due to packet identification by hash operation and data buffer allocation.
以上で本発明の実施の形態が示され、説明がなされた。本実施の形態のネットワーク負荷分散装置は、回路であってもよいし、機器であってもよい。本実施の形態で示したネットワーク負荷分散装置が、QoS機能実現の優先制御処理機能と高スループットを実現する負荷分散処理機能とを具備する構成を最良の形態と見なしているものの、本実施の形態のネットワーク負荷分散装置は、ROMに記憶されたファームウェアおよび再構成型デバイス、素子、基板、配線などのハードウェアで実現されていても構わない。或いは、ネットワーク負荷分散装置は、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで構成されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPUにより読み出されて実行される。すなわち、プログラムは、本実施の形態のネットワーク負荷分散装置としてコンピュータを機能させるものである。あるいは、ネットワーク負荷分散装置の各ステップをコンピュータに実行させるものである。 The embodiment of the present invention has been shown and described above. The network load distribution apparatus according to the present embodiment may be a circuit or a device. Although the configuration in which the network load distribution apparatus shown in the present embodiment includes a priority control processing function for realizing a QoS function and a load distribution processing function for realizing high throughput is regarded as the best mode, the present embodiment The network load distribution apparatus may be implemented by firmware such as firmware stored in a ROM and hardware such as a reconfigurable device, element, board, and wiring. Alternatively, the network load distribution device may be configured by a combination of software and hardware, and further by a combination of firmware. Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD. The program is read and executed by the CPU. In other words, the program causes the computer to function as the network load distribution apparatus according to the present embodiment. Alternatively, the computer executes each step of the network load distribution apparatus.
本発明は、小資源のハードウェア上で実施されるパケットの送出先制御に適用することができる。 The present invention can be applied to packet destination control implemented on small resource hardware.
1…ハッシュ値演算部、2…優先制御部、3…負荷分散制御部、4…パケット転送制御部、5−1〜5−6…データバッファ、6…ハッシュ値演算制御部、7…テーブル割り当て制御部、20…優先経路選択テーブル、21…優先経路制御部、30…負荷分散ハッシュ値演算部、31…負荷分散経路選択テーブル、32…負荷分散経路制御部。
DESCRIPTION OF
Claims (8)
前記パケットの送出先の通信経路ごとに設けられるデータバッファと、
前記第1のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御手段と、
前記第1のハッシュ値に基づく第2のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御手段と、
前記優先制御手段あるいは前記負荷分散制御手段が決定した送出先の通信経路に従って、この通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御手段とを備えることを特徴とするネットワーク負荷分散装置。 Hash value calculation means for calculating a first hash value based on a field value included in the received packet;
A data buffer provided for each communication path of the packet destination;
Priority control means for detecting a specific packet subject to priority control based on the first hash value and determining a communication path of a destination of the packet;
Load distribution control means for determining a communication path of a transmission destination of a packet not subject to priority control by a second hash value based on the first hash value while satisfying load distribution of the data buffer;
A network load distribution apparatus comprising: packet transfer control means for transmitting the packet to a data buffer corresponding to the communication path in accordance with a destination communication path determined by the priority control means or the load distribution control means. .
前記ハッシュ値演算手段は、前記パケット内の、外部から予め指定された位置にあるフィールド値を取得し、このフィールド値と外部から予め設定されたキー値とに基づいて前記第1のハッシュ値を演算することを特徴とするネットワーク負荷分散装置。 The network load distribution apparatus according to claim 1,
The hash value calculation means acquires a field value at a position designated in advance from the outside in the packet, and calculates the first hash value based on the field value and a key value set in advance from the outside. A network load balancer characterized by computing.
前記優先制御手段は、
前記ハッシュ値演算手段が演算する第1のハッシュ値のとり得る値と送出先の通信経路とを対応付けて予め記憶する優先経路選択テーブルと、
前記第1のハッシュ値と同一の値が前記優先経路選択テーブルに登録されている場合に、前記第1のハッシュ値と対応する送出先の通信経路の情報を前記優先経路選択テーブルから取得する優先経路制御手段とを備えることを特徴とするネットワーク負荷分散装置。 The network load distribution apparatus according to claim 1 or 2,
The priority control means includes
A priority route selection table that stores in advance a correspondence between a value that can be taken by the first hash value calculated by the hash value calculation means and a communication path of a transmission destination;
Priority for acquiring information on the destination communication path corresponding to the first hash value from the priority path selection table when the same value as the first hash value is registered in the priority path selection table A network load distribution apparatus comprising: a path control unit.
前記負荷分散制御手段は、
前記ハッシュ値演算手段が演算した第1のハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから第2のハッシュ値を演算する負荷分散ハッシュ値演算手段と、
この負荷分散ハッシュ値演算手段が演算する第2のハッシュ値のとり得る値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路とから予め設定される負荷分散経路選択テーブルと、
前記負荷分散ハッシュ値演算手段が演算した第2のハッシュ値と対応する送出先の通信経路の情報を前記負荷分散経路選択テーブルから取得する負荷分散経路制御手段とを備えることを特徴とするネットワーク負荷分散装置。 The network load distribution apparatus according to any one of claims 1 to 3,
The load distribution control means includes
Load balancing hash value computing means for computing a second hash value from the first hash value computed by the hash value computing means and information on a predetermined destination usable in load balancing control;
Load distribution set in advance from a possible value of the second hash value calculated by the load distribution hash value calculation means, load distribution setting data set from the outside, and a destination communication path that can be used in load distribution control A route selection table;
A network load comprising: a load distribution path control unit that acquires information about a destination communication path corresponding to the second hash value calculated by the load distribution hash value calculation unit from the load distribution path selection table. Distributed device.
前記負荷分散経路選択テーブルに登録される送出先の通信経路は、前記負荷分散ハッシュ値演算手段が演算する第2のハッシュ値のとり得る全ての値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路の情報とから、前記負荷分散ハッシュ値演算手段が演算する第2のハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が前記負荷分散設定データで規定される負荷状況と合致するように決定されていることを特徴とするネットワーク負荷分散装置。 The network load distribution apparatus according to claim 4, wherein
The destination communication path registered in the load distribution path selection table includes all possible values of the second hash value calculated by the load distribution hash value calculation means, load distribution setting data and load set from the outside When a packet is distributed to a data buffer that can be used for load distribution control according to a second hash value calculated by the load distribution hash value calculation means, based on information on a destination communication path that can be used for distribution control A network load distribution apparatus, wherein a load condition of each data buffer is determined so as to match a load condition defined by the load distribution setting data.
前記第1のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御ステップと、
前記第1のハッシュ値に基づく第2のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御ステップと、
前記優先制御ステップあるいは前記負荷分散制御ステップで決定した送出先の通信経路に従って、この通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御ステップとを含むことを特徴とするネットワーク負荷分散方法。 A hash value calculation step of calculating a first hash value based on a field value included in the received packet;
A priority control step of detecting a specific packet subject to priority control based on the first hash value and determining a communication path of a destination of the packet;
A load distribution control step of determining a communication path of a transmission destination of a packet not subject to priority control based on a second hash value based on the first hash value while satisfying load distribution of the data buffer;
And a packet transfer control step of transmitting the packet to a data buffer corresponding to the communication path according to the destination communication path determined in the priority control step or the load distribution control step. .
前記ハッシュ値演算ステップは、前記パケット内の、外部から予め指定された位置にあるフィールド値を取得し、このフィールド値と外部から予め設定されたキー値とに基づいて前記第1のハッシュ値を演算するステップを含み、
前記優先制御ステップは、
前記第1のハッシュ値のとり得る値と送出先の通信経路とを対応付けて予め記憶する優先経路選択テーブルを参照し、前記第1のハッシュ値と同一の値が前記優先経路選択テーブルに登録されている場合に、前記第1のハッシュ値と対応する送出先の通信経路の情報を前記優先経路選択テーブルから取得する優先経路制御ステップを含み、
前記負荷分散制御ステップは、
前記第1のハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから第2のハッシュ値を演算する負荷分散ハッシュ値演算ステップと、
前記第2のハッシュ値のとり得る値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路とから予め設定される負荷分散経路選択テーブルを参照し、前記負荷分散ハッシュ値演算ステップで演算した第2のハッシュ値と対応する送出先の通信経路の情報を前記負荷分散経路選択テーブルから取得する負荷分散経路制御ステップとを含むことを特徴とするネットワーク負荷分散方法。 The network load balancing method according to claim 6, wherein
The hash value calculation step acquires a field value at a position designated in advance from the outside in the packet, and calculates the first hash value based on the field value and a key value set in advance from the outside. Including a step of calculating,
The priority control step includes:
Reference is made to a priority route selection table in which values that can be taken by the first hash value and destination communication routes are stored in advance, and the same value as the first hash value is registered in the priority route selection table. A priority route control step of obtaining information of a communication route of a transmission destination corresponding to the first hash value from the priority route selection table,
The load balancing control step includes
A load distribution hash value calculation step of calculating a second hash value from the first hash value and information of a predetermined destination available in load distribution control;
Refer to a load distribution route selection table set in advance from values that can be taken by the second hash value, load distribution setting data set from the outside, and communication routes of destinations that can be used in load distribution control, and the load A load distribution path control step of acquiring from the load distribution path selection table information on a destination communication path corresponding to the second hash value calculated in the distributed hash value calculation step. .
前記負荷分散経路選択テーブルに登録される送出先の通信経路は、前記負荷分散ハッシュ値演算ステップで演算する第2のハッシュ値のとり得る全ての値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路の情報とから、前記負荷分散ハッシュ値演算ステップで演算する第2のハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が前記負荷分散設定データで規定される負荷状況と合致するように決定されていることを特徴とするネットワーク負荷分散方法。 The network load balancing method according to claim 7,
The destination communication path registered in the load distribution path selection table includes all possible values of the second hash value calculated in the load distribution hash value calculation step, load distribution setting data and load set from the outside. When a packet is distributed to a data buffer that can be used in load distribution control according to the second hash value calculated in the load distribution hash value calculation step, based on information on the destination communication path that can be used in distribution control A network load balancing method, wherein the load situation of each data buffer is determined so as to match the load situation defined by the load balancing setting data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016018628A JP6461834B2 (en) | 2016-02-03 | 2016-02-03 | Network load balancing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016018628A JP6461834B2 (en) | 2016-02-03 | 2016-02-03 | Network load balancing apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017139597A JP2017139597A (en) | 2017-08-10 |
JP6461834B2 true JP6461834B2 (en) | 2019-01-30 |
Family
ID=59565175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016018628A Active JP6461834B2 (en) | 2016-02-03 | 2016-02-03 | Network load balancing apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6461834B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6977621B2 (en) * | 2018-03-02 | 2021-12-08 | 日本電信電話株式会社 | Control device and control method |
JP6965838B2 (en) * | 2018-07-09 | 2021-11-10 | 日本電信電話株式会社 | Network load balancer and method |
JP7077825B2 (en) * | 2018-07-09 | 2022-05-31 | 日本電信電話株式会社 | Network load balancer and method |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4431315B2 (en) * | 2003-01-14 | 2010-03-10 | 株式会社日立製作所 | Packet communication method and packet communication apparatus |
JP2007053564A (en) * | 2005-08-17 | 2007-03-01 | Fujitsu Ltd | Network switching device |
JP4771988B2 (en) * | 2007-04-12 | 2011-09-14 | アラクサラネットワークス株式会社 | Load balancing device and network device |
JP4998507B2 (en) * | 2009-04-23 | 2012-08-15 | 富士通株式会社 | Network equipment |
JP2012205048A (en) * | 2011-03-25 | 2012-10-22 | Nec Corp | Packet transmission device, packet transmission method, and computer program |
-
2016
- 2016-02-03 JP JP2016018628A patent/JP6461834B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017139597A (en) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9614755B2 (en) | Combined hardware/software forwarding mechanism and method | |
WO2020092045A1 (en) | Scalable network slice based queuing using segment routing flexible algorithm | |
US7983299B1 (en) | Weight-based bandwidth allocation for network traffic | |
EP2720422A1 (en) | Queue monitoring to filter the trend for enhanced buffer management and dynamic queue threshold in 4G IP network/equipment for better traffic performance | |
JP7288980B2 (en) | Quality of Service in Virtual Service Networks | |
KR100961712B1 (en) | Apparatus, method and computer program product providing high performance communication bus having preferred path source routing, multi-guarantee QoS and resource reservation, management and release | |
WO2015187946A1 (en) | Adaptive load balancer and methods for intelligent data traffic steering | |
US9197570B2 (en) | Congestion control in packet switches | |
KR20160041631A (en) | Apparatus and method for quality of service aware routing control | |
JP6461834B2 (en) | Network load balancing apparatus and method | |
Chahlaoui et al. | Performance analysis of load balancing mechanisms in SDN networks | |
KR102033402B1 (en) | Smart gateway supporting iot and realtime traffic shaping method for the same | |
Thapeta et al. | Nimble: Scalable tcp-friendly programmable in-network rate-limiting | |
Huang et al. | Modeling and performance analysis for multimedia data flows scheduling in software defined networks | |
Caraguay et al. | Framework for optimized multimedia routing over software defined networks | |
JP6829156B2 (en) | Network load balancer and method | |
Rezende et al. | Analysis of monitoring and multipath support on top of OpenFlow specification | |
Challa et al. | CentFlow: centrality-based flow balancing and traffic distribution for higher network utilization | |
Thazin et al. | End-to-end dynamic bandwidth resource allocation based on QoS demand in SDN | |
Regencia et al. | Introducing a test framework for quality of service mechanisms in the context of software-defined networking | |
Szymanski | Low latency energy efficient communications in global-scale cloud computing systems | |
Motohashi et al. | Implementation of p4-based schedulers for multipath communication | |
JP6965838B2 (en) | Network load balancer and method | |
Lhamo et al. | RED-SP-CoDel: Random early detection with static priority scheduling and controlled delay AQM in programmable data planes | |
US8804521B1 (en) | Quality of service for inbound network traffic flows during slow-start phases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181210 |
|
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: 20181225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6461834 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |