(57)【特許請求の範囲】
【請求項１】
受信したパケットに含まれるフィールド値を基に第１のハッシュ値を演算するハッシュ値演算手段と、
前記パケットの送出先の通信経路ごとに設けられるデータバッファと、
前記第１のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御手段と、
前記第１のハッシュ値に基づく第２のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御手段と、
前記優先制御手段あるいは前記負荷分散制御手段が決定した送出先の通信経路に従って、この通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御手段とを備えることを特徴とするネットワーク負荷分散装置。
【請求項２】
請求項１記載のネットワーク負荷分散装置において、
前記ハッシュ値演算手段は、前記パケット内の、外部から予め指定された位置にあるフィールド値を取得し、このフィールド値と外部から予め設定されたキー値とに基づいて前記第１のハッシュ値を演算することを特徴とするネットワーク負荷分散装置。
【請求項３】
請求項１または２記載のネットワーク負荷分散装置において、
前記優先制御手段は、
前記ハッシュ値演算手段が演算する第１のハッシュ値のとり得る値と送出先の通信経路とを対応付けて予め記憶する優先経路選択テーブルと、
前記第１のハッシュ値と同一の値が前記優先経路選択テーブルに登録されている場合に、前記第１のハッシュ値と対応する送出先の通信経路の情報を前記優先経路選択テーブルから取得する優先経路制御手段とを備えることを特徴とするネットワーク負荷分散装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のネットワーク負荷分散装置において、
前記負荷分散制御手段は、
前記ハッシュ値演算手段が演算した第１のハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから第２のハッシュ値を演算する負荷分散ハッシュ値演算手段と、
この負荷分散ハッシュ値演算手段が演算する第２のハッシュ値のとり得る値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路とから予め設定される負荷分散経路選択テーブルと、
前記負荷分散ハッシュ値演算手段が演算した第２のハッシュ値と対応する送出先の通信経路の情報を前記負荷分散経路選択テーブルから取得する負荷分散経路制御手段とを備えることを特徴とするネットワーク負荷分散装置。
【請求項５】
請求項４記載のネットワーク負荷分散装置において、
前記負荷分散経路選択テーブルに登録される送出先の通信経路は、前記負荷分散ハッシュ値演算手段が演算する第２のハッシュ値のとり得る全ての値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路の情報とから、前記負荷分散ハッシュ値演算手段が演算する第２のハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が前記負荷分散設定データで規定される負荷状況と合致するように決定されていることを特徴とするネットワーク負荷分散装置。
【請求項６】
受信したパケットに含まれるフィールド値を基に第１のハッシュ値を演算するハッシュ値演算ステップと、
前記第１のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御ステップと、
前記第１のハッシュ値に基づく第２のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御ステップと、
前記優先制御ステップあるいは前記負荷分散制御ステップで決定した送出先の通信経路に従って、この通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御ステップとを含むことを特徴とするネットワーク負荷分散方法。
【請求項７】
請求項６記載のネットワーク負荷分散方法において、
前記ハッシュ値演算ステップは、前記パケット内の、外部から予め指定された位置にあるフィールド値を取得し、このフィールド値と外部から予め設定されたキー値とに基づいて前記第１のハッシュ値を演算するステップを含み、
前記優先制御ステップは、
前記第１のハッシュ値のとり得る値と送出先の通信経路とを対応付けて予め記憶する優先経路選択テーブルを参照し、前記第１のハッシュ値と同一の値が前記優先経路選択テーブルに登録されている場合に、前記第１のハッシュ値と対応する送出先の通信経路の情報を前記優先経路選択テーブルから取得する優先経路制御ステップを含み、
前記負荷分散制御ステップは、
前記第１のハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから第２のハッシュ値を演算する負荷分散ハッシュ値演算ステップと、
前記第２のハッシュ値のとり得る値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路とから予め設定される負荷分散経路選択テーブルを参照し、前記負荷分散ハッシュ値演算ステップで演算した第２のハッシュ値と対応する送出先の通信経路の情報を前記負荷分散経路選択テーブルから取得する負荷分散経路制御ステップとを含むことを特徴とするネットワーク負荷分散方法。
【請求項８】
請求項７記載のネットワーク負荷分散方法において、
前記負荷分散経路選択テーブルに登録される送出先の通信経路は、前記負荷分散ハッシュ値演算ステップで演算する第２のハッシュ値のとり得る全ての値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路の情報とから、前記負荷分散ハッシュ値演算ステップで演算する第２のハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が前記負荷分散設定データで規定される負荷状況と合致するように決定されていることを特徴とするネットワーク負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの送出先を制御するための装置に係り、特に通信サーバ補助装置内での特定のパケットに対する優先制御と負荷分散とを両立させることによってＱｏＳ（Quality of Service）の確保とスループット性能の向上とを実現するネットワーク負荷分散装置および方法に関するものである。
【背景技術】
【０００２】
一般的なＳＤＮ（Software Defined Networking）／ＮＦＶ（Network Functions Virtualization）の考え方に基づいて構成されるネットワークにおいて利用される汎用ネットワーク機器のフロントエンドハードウェアにおいて実現されている優先制御の構成例が非特許文献１に開示されている。
【０００３】
図４は非特許文献１に開示された優先制御技術の一部を説明する図である。図４の例では、着信パケットのイーサタイプ値が所定値と一致すれば（図４ステップＳ１００においてＹｅｓ）、着信パケットを優先制御対象のフローであるとしてキュー２００に分類する（図４ステップＳ１０１）。また、着信パケットのＦＣｏＥ（Fibre Channel over Ethernet）のタイプ値が所定値と一致すれば（図４ステップＳ１０２においてＹｅｓ）、着信パケットを優先制御対象のフローであるとしてキュー２０１に分類する（図４ステップＳ１０３）。
【０００４】
このように一般的に汎用のＮＩＣ（Network Interface Card）を利用した優先制御では、各プロトコル毎に固有のキューに優先制御対象のフローがフィルタリングされる。しかしながら、非特許文献１に開示された技術では、予め用意されたプロトコル毎に固定のフィールド値に対するフィルタリングのみを実施するため、特殊な条件（例えば複数フィールドにまたがるフィルタリング条件）への対応が難しく、また将来の拡張性に問題があった。また、非特許文献１に開示された技術では、各プロトコルに割り当てられたキューの数が固定であるため、特定のサービスに特化してリソースを利用することが困難であった。さらに、非特許文献１に開示された技術では、所定のフィルタリング条件に該当しなかったパケットを単一のキューに分類するため、フィルタリング条件に該当しないパケットが多いユースケースにおいて転送性能が悪化する懸念があり、高スループットの実現が困難であった。
【０００５】
一方、マルチキューを用いて高スループットを実現する負荷分散の一般例としてはロードバランサなどで利用されているラウンドロビン制御があげられる。しかし、一般的なラウンドロビン制御では、各キュー内における処理時間に変動があり、結果としてフロー内での順序逆転が発生してしまう。この問題に対する解決策として特許文献１のようなルータ上で提案されている負荷分散制御が挙げられる。
【０００６】
図５は特許文献１に開示された負荷分散制御技術を説明する図である。特許文献１に開示された技術では、パケットの宛先を決定し、宛先への経路に対応するデータバッファにパケットを転送する。パケットは、データバッファから適宜読み出されて宛先へ送信される。このとき、負荷分散制御部３００は、それぞれ経路Ａ，Ｂ，Ｃに対応するデータバッファ３００−１，３００−２，３００−３の負荷状況を監視して経路を選択する動的な経路割り当てを行い、選択した経路に対応するデータバッファにパケットを転送する。
【０００７】
このようなルータ上で提案されているフロー内順序を保障する負荷分散制御では、ラウンドロビン制御における課題を解決することができる。しかしながら、特許文献１に開示された技術では、データバッファの負荷状況を監視して動的な経路割り当てを行うため、バッファ切り替えのタイミングでフロー内での順序逆転が起こり得るという問題点があった。また、特許文献１で提案されている構成では、専用ハードウェアを用いることを前提としており、装置内に十分大きなハードウェア資源が存在するため、優先制御などとの協調制御は考慮されておらず、ＮＩＣ上の限られたハードウェアでの実装に適していないという問題点があった。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２６３４３６号公報
【非特許文献】
【０００９】
【非特許文献１】“Intel Ethernet（登録商標） Controller XL710 Datasheet”，2015，＜http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以上のように汎用のＮＩＣを利用した、非特許文献１に開示された技術では、柔軟な優先制御が難しく、また高スループットの実現が困難であった。
また、特許文献１に開示された技術では、パケットの送信順序の保証と優先制御とを実現できず、またＮＩＣ上の限られたハードウェアに実装し難いという問題点があった。
【００１１】
本発明は、上記課題を解決するためになされたもので、ＳＤＮ／ＮＦＶのフロントエンドハードウェアであるＮＩＣ上に実装できる小資源のハードウェア上で柔軟な優先制御と高スループットの共存を実現することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のネットワーク負荷分散装置は、受信したパケットに含まれるフィールド値を基に第１のハッシュ値を演算するハッシュ値演算手段と、前記パケットの送出先の通信経路ごとに設けられるデータバッファと、前記第１のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御手段と、前記第１のハッシュ値に基づく第２のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御手段と、前記優先制御手段あるいは前記負荷分散制御手段が決定した送出先の通信経路に従って、この通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御手段とを備えることを特徴とするものである。
また、本発明のネットワーク負荷分散装置の１構成例において、前記ハッシュ値演算手段は、前記パケット内の、外部から予め指定された位置にあるフィールド値を取得し、このフィールド値と外部から予め設定されたキー値とに基づいて前記第１のハッシュ値を演算することを特徴とするものである。
また、本発明のネットワーク負荷分散装置の１構成例において、前記優先制御手段は、前記ハッシュ値演算手段が演算する第１のハッシュ値のとり得る値と送出先の通信経路とを対応付けて予め記憶する優先経路選択テーブルと、前記第１のハッシュ値と同一の値が前記優先経路選択テーブルに登録されている場合に、前記第１のハッシュ値と対応する送出先の通信経路の情報を前記優先経路選択テーブルから取得する優先経路制御手段とを備えることを特徴とするものである。
【００１３】
また、本発明のネットワーク負荷分散装置の１構成例において、前記負荷分散制御手段は、前記ハッシュ値演算手段が演算した第１のハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから第２のハッシュ値を演算する負荷分散ハッシュ値演算手段と、この負荷分散ハッシュ値演算手段が演算する第２のハッシュ値のとり得る値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路とから予め設定される負荷分散経路選択テーブルと、前記負荷分散ハッシュ値演算手段が演算した第２のハッシュ値と対応する送出先の通信経路の情報を前記負荷分散経路選択テーブルから取得する負荷分散経路制御手段とを備えることを特徴とするものである。
また、本発明のネットワーク負荷分散装置の１構成例において、前記負荷分散経路選択テーブルに登録される送出先の通信経路は、前記負荷分散ハッシュ値演算手段が演算する第２のハッシュ値のとり得る全ての値と外部から設定される負荷分散設定データと負荷分散制御で利用可能な送出先の通信経路の情報とから、前記負荷分散ハッシュ値演算手段が演算する第２のハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が前記負荷分散設定データで規定される負荷状況と合致するように決定されていることを特徴とするものである。
【００１４】
また、本発明のネットワーク負荷分散方法は、受信したパケットに含まれるフィールド値を基に第１のハッシュ値を演算するハッシュ値演算ステップと、前記第１のハッシュ値に基づいて優先制御の対象となる特定のパケットを検出し、このパケットの送出先の通信経路を決定する優先制御ステップと、前記第１のハッシュ値に基づく第２のハッシュ値により前記優先制御の対象外のパケットの送出先の通信経路を、前記データバッファの負荷分散を満たしつつ決定する負荷分散制御ステップと、前記優先制御ステップあるいは前記負荷分散制御ステップで決定した送出先の通信経路に従って、この通信経路に対応するデータバッファに前記パケットを送信するパケット転送制御ステップとを含むことを特徴とするものである。
【発明の効果】
【００１５】
本発明によれば、パケットの振り分け処理を優先制御と負荷分散制御に分け、優先制御と負荷分散制御を協調させることで限られたデータバッファを効率的に活用することができ、小資源のハードウェア上で柔軟な優先制御と負荷分散による高スループットの共存を実現することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るネットワーク負荷分散装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係るネットワーク負荷分散装置の動作を説明するフローチャートである。
【図３】本発明の実施の形態におけるデータバッファの割り付けの概念を説明する図である。
【図４】従来の優先制御技術を説明する図である。
【図５】従来の負荷分散制御技術を説明する図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について図面を参照して説明する。図１は本発明の実施の形態に係るネットワーク負荷分散装置の構成を示すブロック図である。ネットワーク負荷分散装置は、ハッシュ値演算部１と、優先制御部２と、負荷分散制御部３と、パケット転送制御部４と、データバッファ５−１〜５−３と、ハッシュ値演算制御部６と、テーブル割り当て制御部７とを備えている。なお、図１の例では、パケットの送出先の通信経路ごとに設けられるデータバッファを、データバッファ５−１〜５−３の３個としているが、データバッファの個数はこれに限るものではない。
【００１８】
優先制御部２は、優先経路選択テーブル２０と、優先経路制御部２１とから構成され、負荷分散制御部３は、負荷分散ハッシュ値演算部３０と、負荷分散経路選択テーブル３１と、負荷分散経路制御部３２とから構成される。
【００１９】
ネットワーク負荷分散装置は、典型的にはＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）等のデバイスと、当該デバイス上で動作するプログラムあるいはデバイスの回路データを用いて実現される。プログラムで実現する場合、デバイスのプロセッサは、メモリに格納されたプログラムに従って以下のような処理を実行し、ネットワーク負荷分散装置として機能する。また、これに限るものではなく一般に利用されるスイッチまたはルータのような汎用デバイス上でのプログラムあるいは汎用サーバ上の仮想スイッチなどを利用して本実施の形態のネットワーク負荷分散装置を実現することもできる。
【００２０】
以下、本実施の形態のネットワーク負荷分散装置の動作を図２のフローチャートを用いて説明する。本実施の形態はパケット受信端での利用を想定しており、ネットワーク負荷分散装置にはパケット形式のデータが入力される。パケットは、一般にヘッダデータとして、そのパケットの属性を表す付加データを有している。
【００２１】
ネットワーク負荷分散装置のハッシュ値演算部１は、パケットを受信すると（図２ステップＳ１）、このパケットのヘッダデータ中の所定の位置にあるフィールド値を取得し、取得したフィールド値と予め設定されたキー（key）値とからパケットの属性に固有のハッシュ値を演算する（図２ステップＳ２）。ハッシュ値演算部１が演算したハッシュ値は、優先制御部２に通知される。
【００２２】
パケットのヘッダデータ中の取得するフィールド値の位置は、ハッシュ値演算部１に対して外部からハッシュ値演算制御部６を介して予め指定される。同様に、キー値についても、外部からハッシュ値演算制御部６を介して予め設定される。
【００２３】
次に、優先制御部２の優先経路選択テーブル２０には、ハッシュ値演算部１が演算するハッシュ値のとり得る値と送出先の通信経路とが対応付けて予め記憶されている。この優先経路選択テーブル２０は、外部からテーブル割り当て制御部７を介して予め設定される。
【００２４】
優先制御部２の優先経路制御部２１は、ハッシュ値演算部１が演算したハッシュ値と優先経路選択テーブル２０とを照合し、ハッシュ値演算部１が演算したハッシュ値と同一の値が優先経路選択テーブル２０に登録されている場合（図２ステップＳ３においてＹＥＳ）、このハッシュ値と対応する送出先の通信経路の情報を優先経路選択テーブル２０から取得して、送出先の通信経路の情報をパケット転送制御部４へ通知する（図２ステップＳ４）。
【００２５】
優先経路制御部２１は、ハッシュ値演算部１が演算したハッシュ値と同一の値が優先経路選択テーブル２０に登録されていない場合（ステップＳ３においてＮＯ）、ハッシュ値演算部１が演算したハッシュ値を負荷分散制御部３へ通知する（図２ステップＳ５）。
【００２６】
負荷分散制御部３の負荷分散経路選択テーブル３１には、後述する負荷分散ハッシュ値演算部３０が演算するハッシュ値のとり得る値と送出先の通信経路とが対応付けて予め記憶されている。この負荷分散経路選択テーブル３１の作成方法については後述する。
【００２７】
負荷分散制御部３の負荷分散ハッシュ値演算部３０は、ハッシュ値演算部１が演算したハッシュ値と負荷分散制御で利用可能な所定の送出先の情報とから負荷分散処理に利用するハッシュ値を演算する（図２ステップＳ６）。具体的には、負荷分散ハッシュ値演算部３０は、ハッシュ値演算部１が演算したハッシュ値を負荷分散制御で利用可能な送出先の通信経路の数（負荷分散制御で利用可能なデータバッファ５−１〜５−３の数）で除算すればよい。
【００２８】
送出先の通信経路（データバッファ５−１〜５−３）には、優先制御のみで利用されるものと、負荷分散制御のみで利用されるものと、優先制御と負荷分散制御で共有されるものとがある。したがって、負荷分散制御で利用可能な送出先の通信経路としては、負荷分散制御のみで利用されるものと、優先制御と負荷分散制御で共有されるものとがある。負荷分散制御で利用可能な送出先の通信経路（負荷分散制御で利用可能なデータバッファ５−１〜５−３）の情報は、外部からテーブル割り当て制御部７を介して予め通知される。
【００２９】
上記のとおり、ハッシュ値演算部１が演算するハッシュ値は、パケットの属性に固有の値である。一方、負荷分散ハッシュ値演算部３０が演算するハッシュ値は、パケットの属性に固有の値であるとは限らず、異なる属性について同一の値が算出される場合が有り得る。
【００３０】
負荷分散制御部３の負荷分散経路制御部３２は、負荷分散ハッシュ値演算部３０が演算したハッシュ値と負荷分散経路選択テーブル３１とを照合し、負荷分散ハッシュ値演算部３０が演算したハッシュ値と対応する送出先の通信経路の情報を負荷分散経路選択テーブル３１から取得して、送出先の通信経路の情報をパケット転送制御部４へ通知する（図２ステップＳ７）。
【００３１】
次に、パケット転送制御部４は、受信したパケットを、優先制御部２あるいは負荷分散制御部３から通知される送出先の通信経路の情報に従って、データバッファ５−１〜５−３のいずれかへ送信する（図２ステップＳ８）。具体的には、パケット転送制御部４は、優先制御部２の優先経路制御部２１から送出先の通信経路の情報を受け取った場合には、データバッファ５−１〜５−１のうち、優先経路制御部２１から通知された送出先の通信経路に対応するデータバッファにパケットを送信し、負荷分散制御部３の負荷分散経路制御部３２から送出先の通信経路の情報を受け取った場合には、負荷分散経路制御部３２から通知された送出先の通信経路に対応するデータバッファにパケットを送信する。パケットは、データバッファ５−１〜５−３から対応する通信経路へ適宜出力されて宛先へ送信される。
【００３２】
次に、負荷分散制御部３の負荷分散経路選択テーブル３１の作成方法について説明する。負荷分散経路選択テーブル３１を作成するためには、負荷分散ハッシュ値演算部３０が演算するハッシュ値のとり得る全ての値と、外部から設定される負荷分散設定データと、負荷分散制御で利用可能な送出先の通信経路（負荷分散制御で利用可能なデータバッファ５−１〜５−３）の情報とから、負荷分散ハッシュ値演算部３０が演算するハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が負荷分散設定データで規定される負荷状況と合致するように、送出先の通信経路を決定すればよい。こうして、負荷分散ハッシュ値演算部３０が演算するハッシュ値と送出先の通信経路とが対応付けられ、負荷分散経路選択テーブル３１を設定することが可能になる。
【００３３】
負荷分散設定データとしては、各データバッファの所望の利用率データと、各データバッファの共有設定データ（例えば優先制御によるデータバッファの利用と負荷分散制御によるデータバッファの利用の所望の割合）とがある。
【００３４】
負荷分散経路選択テーブル３１は、基本的には負荷分散制御で利用可能なデータバッファについて全てのデータバッファの利用率が一定となる均一なパケットの振り分けが実現されるように予め作成されるが、外部から設定される負荷分散設定データによっては、必ずしも全てのデータバッファの利用率が同一になるとは限らない。このようなデータバッファの割り付けの概念を表したものが図３である。
【００３５】
図３の例では、データバッファ５−１，５−２が優先制御のみで利用されるバッファであり、データバッファ５−３が優先制御と負荷分散制御で共有されるバッファであり、データバッファ５−４〜５−６が負荷分散制御のみで利用されるバッファである。ある属性を有するフロー（パケット）＃１は優先制御によりデータバッファ５−１に送信され、別の属性を有するフロー＃２は優先制御によりデータバッファ５−２または５−３に送信され、その他のフローは負荷分散制御によりデータバッファ５−３〜５−６のいずれかに送信される。
【００３６】
なお、負荷分散経路選択テーブル３１は以上の方法により負荷分散経路制御部３２が作成して設定してもよいし、外部で作成した負荷分散経路選択テーブル３１をテーブル割り当て制御部７を介して負荷分散制御部３に設定するようにしてもよい。
【００３７】
また、負荷分散制御部３では、優先制御部２の優先経路制御部２１から通知された全てのハッシュ値に対して、負荷分散経路選択テーブル３１と合致するように新たなハッシュ値が演算される。このときの演算方法は、上記のとおり、通知されたハッシュ値を負荷分散制御で利用可能な送出先の通信経路の数（負荷分散制御で利用可能なデータバッファの数）で除算すればよい。
【００３８】
ただし、負荷分散ハッシュ値演算部３０でハッシュ値を演算せずに、優先制御部２の優先経路制御部２１から通知されたハッシュ値をそのまま用いてもよい。この場合、負荷分散経路選択テーブル３１を作成するためには、ハッシュ値演算部１が演算するハッシュ値のとり得る全ての値と、外部から設定される負荷分散設定データと、負荷分散制御で利用可能な送出先の通信経路の情報とから、ハッシュ値演算部１が演算するハッシュ値に応じてパケットを負荷分散制御で利用可能なデータバッファに振り分けたときの各データバッファの負荷状況が負荷分散設定データで規定される負荷状況と合致するように、送出先の通信経路を決定すればよい。
【００３９】
本実施の形態では、パケットのヘッダデータ中の取得するフィールド値の位置を外部から指定できるようにしたことにより、非特許文献１に開示されたような固定のフィールド値ではなく、任意の長さを持つ任意のフィールド値に対するパケット識別処理を実現することができる。また、本実施の形態では、特殊な条件（例えば複数のフィールドからのフィールド値の取得）に対応することが可能であり、将来の拡張性を確保することができる。
【００４０】
また、本実施の形態では、特許文献１および非特許文献１に開示された技術と異なり、優先制御に利用するデータバッファと負荷分散に利用するデータバッファの自由な割り当てを実現することができ、これによりＮＩＣ等の省資源なオンチップ上での効率的なサ−ビスを実現することができる。
【００４１】
また、本実施の形態では、優先制御でのデータバッファの割り当てのためのハッシュ演算に加えて、負荷分散制御で利用可能なデータバッファに適したハッシュ演算を再度実施することで、負荷分散制御の対象外になるパケットを無くすことができ、パケットが単一のデータバッファに振り分けられることによるスループットの低下を回避することができる。また、本実施の形態では、ハッシュ演算によるパケット識別とデータバッファ割り当てによりパケットの順序逆転が起こらないことを保障することができる。
【００４２】
以上で本発明の実施の形態が示され、説明がなされた。本実施の形態のネットワーク負荷分散装置は、回路であってもよいし、機器であってもよい。本実施の形態で示したネットワーク負荷分散装置が、ＱｏＳ機能実現の優先制御処理機能と高スループットを実現する負荷分散処理機能とを具備する構成を最良の形態と見なしているものの、本実施の形態のネットワーク負荷分散装置は、ＲＯＭに記憶されたファームウェアおよび再構成型デバイス、素子、基板、配線などのハードウェアで実現されていても構わない。或いは、ネットワーク負荷分散装置は、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで構成されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵにより読み出されて実行される。すなわち、プログラムは、本実施の形態のネットワーク負荷分散装置としてコンピュータを機能させるものである。あるいは、ネットワーク負荷分散装置の各ステップをコンピュータに実行させるものである。
【産業上の利用可能性】
【００４３】
本発明は、小資源のハードウェア上で実施されるパケットの送出先制御に適用することができる。
【符号の説明】
【００４４】
１…ハッシュ値演算部、２…優先制御部、３…負荷分散制御部、４…パケット転送制御部、５−１〜５−６…データバッファ、６…ハッシュ値演算制御部、７…テーブル割り当て制御部、２０…優先経路選択テーブル、２１…優先経路制御部、３０…負荷分散ハッシュ値演算部、３１…負荷分散経路選択テーブル、３２…負荷分散経路制御部。
【図１】
0006461834.tif 000002
【図２】
0006461834.tif 000003
【図３】
0006461834.tif 000004
【図４】
0006461834.tif 000005
【図５】
0006461834.tif 000006