説明

パケット中継装置

【課題】 パケット中継装置において負荷分散を行う際、異なる優先度のパケットを遅延時間が最小となる同一の出力回線から送信すると、優先度の高いパケットの遅延時間が優先度の低いパケットの影響を受けて増大してしまう。
【解決手段】 パケット中継装置において、パケットの出力回線の負荷、または宛先となる負荷分散対象装置の負荷を測定し、測定された負荷情報とパケットの優先度に基づいて、パケットの優先度の高い順に宛先を負荷の低い順の出力回線または負荷分散対象装置と判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置に関し、特に、パケットの優先度に基づいたパケット処理装置に関する。
【背景技術】
【0002】
近年注目を集めているクラウドコンピューティングでは、ネットワーク上に存在する多数のサーバ群を、多数のユーザで共有することにより、低コストなサービス処理を実現する。多数のユーザによるサービス処理が集中することに伴う過大な負荷を分散するため、各サーバに対しユーザ毎のサービス要求を振り分けることでサーバにかかるパケット処理の負荷を分散するサーバロードバランス(特許文献1)や、複数の通信経路に対しルータまたはスイッチからの送信パケットを振り分けることで通信負荷を分散するリンクアグリゲーション、マルチパス等の負荷分散技術が知られている。
【0003】
その一方、クラウドコンピューティングでは、ローカルのサーバやPCでサービスを処理することに代わり、ネットワークを介して接続され物理的に遠く離れたデータセンタにおいてサービスを処理する形態となる。そのため、サービス要求の集中によるレスポンス性能の低下や、ネットワークにおける輻輳遅延によるレスポンス性能低下に対する対応が必要である。
【0004】
レスポンス性能の低下防止が強く求められるネットワークの一例として、証券取引所でのアルゴリズム取引に適用される基幹網等があげられる。これら証券取引所の基幹ネットワークにおけるレスポンスの制約時間には、既にミリ秒オーダーの遅延時間が求められている。証券取引では取引のスピードが証券会社の収益を大きく左右するため、低遅延レスポンスに対するニーズは高まっており、その要求はマイクロ秒オーダー、ナノ秒オーダーにまで突入することが予想される。また、証券取引において、通常の売買注文や情報伝達に対して、約定取り消しに関する注文などは取引上の優先度が高い、といったように注文の種別に応じた優先度の違いが存在しうる。特に、優先度の高い注文に対して、低遅延レスポンスであることを保証することは、証券取引を行う顧客に対する安心感の高いサービスを提供することであると考えられる。
【0005】
以上により、クラウドコンピューティングをはじめとした遠隔コンピューティングにおいては、多数のユーザによって共有されるサービスサーバのレスポンス性能低下の防止、すなわち、低遅延を実現する負荷分散技術が重要になると考えられる。
【0006】
低遅延を実現する従来技術として、特許文献2があげられる。特許文献2では、優先方路のトラヒックが閾値を超えた場合に、優先度の低い順に別の方路へ転送することに付いての記載がある。例えば、パケットP1、P2、P3の優先度p1、p2、p3の大きさが、p1>p2>p3であり、優先方路にP1、P2、P3が収容されている場合、P1、P2、P3のトラヒック合計が優先方路における閾値を越えた場合、P3を別の方路に転送する仕組みについて開示されている。特許文献2には、トラヒック監視部を設け、逆に閾値を下回った場合に、他の方路に収容されているパケットを優先方路に転送する仕組みもまた開示されている。
【0007】
さらに、特許文献3では、通信の優先度を高・低の二種類に分類して、それぞれの優先度の通信が使用する方路が重複しないように予めテーブルを作成する。そうすることで、低優先の通信が、高優先の通信を阻害することが無いようにする方式が提案されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2006−245841
【特許文献2】特開平9−321795
【特許文献3】特開平8−191328
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献2では、しかし、先にパケットP2、P3が優先方路に収容されており、後に到着したP1がサービス要求した場合において、P1を収容したとすると優先方路の閾値を越える場合、P1を収容することはできない。遠隔コンピューティングにおけるサーバのロードバランスに適用しようとした場合、セッション途中で別のサーバに転送することは容易ではない。
【0010】
特許文献3では、これは優先度を二分類にした場合の技術にすぎない。また、特許文献2と同様に方路の負荷分散についての技術であり、サーバに対する負荷分散のようにセッション途中での乗り換え処理が発生する場合についての言及はなされていない。
【0011】
複数のサービス要求を、複数のサーバ間に分散して処理させるシステムにおいて、優先度の低いサービス要求の処理に影響をうけて、優先度が高いサービス要求の処理が遅延する。
【課題を解決するための手段】
【0012】
本発明の態様は、上述の課題の少なくとも一を解決するためになされたものであり、第一の態様であるパケット中継装置は、複数の入力回線と出力回線を備え、入力回線から受信したパケットの入力物理回線番号、または入力論理回線番号、またはパケットヘッダ情報のうち少なくとも一つ以上の情報により識別されるパケットの集合から構成されるフロー毎、またはフロー毎の通信が開始されてから終了するまでのパケットの集合から構成されるセッション毎に優先度を判定し、パケットを送信する複数の出力回線毎または複数の宛先の負荷分散対象装置毎の負荷を測定し、パケットの宛先を、優先度の高い順に、負荷の低い順の出力回線または負荷分散対象装置と判定する、態様である。
【0013】
第一の態様によれば、遅延時間が最小となる方路の帯域資源は、優先度の高いパケットP1のために割り当てられる。従って、優先度の高いP1の遅延時間は、優先度の低いP2、P3がもたらす遅延時間の増大の影響を受け難くなる。またP2、P3は各々、常に遅延時間が二番目、三番目の方路に送出されるので、P1、P2、P3の間の優先関係も遅延時間の大小関係として満たされる。
【0014】
他の態様は、実施形態でさらに述べる。
【発明の効果】
【0015】
本発明の態様によると、パケット処理装置の負荷に応じたパケット転送先の分散をおこなうことができる。
【図面の簡単な説明】
【0016】
【図1】パケット中継装置1を含むシステム構成
【図2】パケット中継装置内で、宛先回線・Next Hop IPアドレス判定前のパケットヘッダ情報
【図3】パケット中継装置内で、宛先回線・Next Hop IPアドレス判定後のパケットヘッダ情報
【図4】本発明を備えるパケット中継装置1の回線対応部10
【図5】本発明を備えるパケット中継装置1の負荷分散判定部132で遅延時間を負荷とする構成
【図6】負荷分散対象フロー判定テーブル1320の構成
【図7】優先度判定テーブル1321の構成
【図8】遅延時間テーブル1322-Aの構成
【図9】負荷順位テーブル1322-Bの構成
【図10】本発明を備えるパケット中継装置1の負荷分散判定部132でセッション数を負荷とする構成
【図11】セッション数テーブル1323-Aの構成
【図12】本発明を備えるパケット中継装置1の負荷分散判定部132でパケットレートを負荷とする構成
【図13】パケットレートテーブル1324-Aの構成
【図14】本発明を備えるパケット中継装置1の回線対応部10にビット長判定機能を備えた構成
【図15】パケット中継装置内で、宛先回線・Next Hop IPアドレス判定前かつビット長判定後のパケットヘッダ情報
【図16】本発明を備えるパケット中継装置1の負荷分散判定部132でビットレートを負荷とする構成
【図17】ビットレートテーブル1325-Aの構成
【図18】セッション毎に優先度を判定する場合の優先度判定テーブル1321-Aの構成
【図19】フロー毎に優先度を判定する場合の、本発明の負荷分散に関するユーザインタフェースの設定例
【図20】フロー毎に優先度を判定する場合の、本発明の負荷分散に関するユーザインタフェースの設定例
【図21】パケット中継装置が負荷分散対象装置を直収する場合の構成図
【図22】パケット中継装置が輻輳していないネットワークを経由して負荷分散対象装置と接続する場合の構成図
【図23】パケット中継装置が輻輳しているネットワークを経由して負荷分散対象装置と接続する場合の構成図
【図24】パケット中継装置の負荷分散判定部の構成
【図25】通信持続時間測定テーブルの構成
【図26】SYNパケットに関する処理
【図27】SYNパケットに後続するパケットに関する処理
【発明を実施するための形態】
【0017】
以下に、本発明を実施するための形態を説明する。
【実施例1】
【0018】
図1は、本実施例のネットワークシステム0001の構成を示す。ネットワークシステム0001は、パケット中継装置1、サーバ2−1、2−2、2−3、管理端末を有する。パケット中継装置1は、ネットワーク2を介して、計算機や情報処理端末、例えばサーバ2−1、2−2、2−3や、クライアント計算機に接続される通信装置の一例である。例えば、クライアント計算機からのパケットをパケット中継装置が、サーバ2−1、2−2、2−3のいずれかに転送し、サーバからの応答パケットを、パケット中継装置1が、クライアント計算機に送る。管理端末3は、パケット中継装置1に接続し、管理するための、パケット中継装置1内の制御部40を介して回線対応部10、拡張処理部20、スイッチ30を制御し、設定やその変更を行う。
【0019】
パケット中継装置1は、複数の回線対応部10(以下、回線対応部10は、特に断りのない場合は、いずれかの回線対応部である)、スイッチ30、制御部40、拡張処理部20を有し、それぞれ、BUSで接続されている。
【0020】
パケット中継装置1は、回線対応部10-4に接続される入力回線からパケットを受信する。 回線対応部10は、経路検索または負荷分散判定して宛先を特定し、宛先である他のパケット中継装置1や自身の拡張処理部20にパケット転送する。
【0021】
スイッチ30は、回線対応部10-1〜10-4で判定された結果に従って、パケットを所定の回線対応部10-1〜10-8のいずれかに送信する。
【0022】
図2は、図1のパケット中継装置が、送受信するパケットヘッダ情報の一例である。なお、パケットヘッダ情報には図2に示さないフィールドも存在するが、代表的なフィールドのみ記載する。パケットヘッダ情報500は、受信パケットのL2ヘッダ部52として宛先MACアドレス520、送信元MACアドレス521、イーサタイプ522、L3ヘッダ部53としてIPバージョン530、TOS(Type of Service)531、L4プロトコル532、送信元IPアドレス533、宛先IPアドレス534、L4ヘッダ部54として送信元ポート番号540、宛先ポート番号541、SYN542、ACK543、そして回線対応部10-4にて付加される内部ヘッダ51として入力回線番号510から構成される。なお、本実施例ではパケットはTCP/IPパケットであるものとして説明するが、他のプロトコルのパケットであっても構わない。
【0023】
図1に戻り、システム全体の流れの説明を続ける。サーバ2-1〜2-3が、ネットワーク2からパケットを受信すると、所定のアプリケーション処理を実行し、実行結果に基づく応答パケットをパケット中継装置1の回線対応部10-1〜10-3に対し送信する
パケットが、スイッチ30により回線対応部10-1〜10-3のいずれかに送信された場合、回線対応部10-1〜10-3は、ネットワーク2にパケットを送信する。回線対応部10-1〜10-3から送信されたパケットは、ネットワーク2を経由して各々、サーバ2-1〜2-3に送信される。サーバ2-1〜2-3がパケットを受信すると、所定のアプリケーション処理を実行した後、応答パケットをパケット中継装置1の回線対応部10-1〜10-3の入力回線に対し送信する。応答パケットがパケット中継装置1の回線対応部10-1〜10-3に到着すると、経路検索が実施され、出力回線番号511、Next Hop IPアドレス512を判定し、スイッチ30に送信する。スイッチ30では、回線対応部10-1〜10-3で判定された出力回線番号511に従って、応答パケットを所定の回線対応部10-1〜10-4のいずれかに送信し、回線対応部10-1〜10-4でメディア検索がなされた後、回線対応部に接続する出力回線から応答パケットは送信される。
【0024】
回線対応部10-1で経路検索または負荷分散判定を実施して、出力回線番号、次に転送すべきルータ等のパケット中継装置、またはサーバやパケット中継装置1内の拡張処理部20等のネットワークノードのIPアドレスを示すNext Hop IPアドレスを判定し、スイッチ30に送信する。
【0025】
図3は、回線対応部10−1からスイッチに出力されるパケットヘッダ情報5001の一例である。図3のパケットヘッダ情報5001は、図2のパケットヘッダ情報に対し、回線対応部10-1で判定された出力回線番号511、Next Hop IPアドレス512を内部ヘッダ51として、回線対応部10-1にて付加される構成である。
【0026】
スイッチ30は、図3のようなパケットヘッダ情報を有するパケットに含まれる回線対応部10-1〜10-4で判定された出力回線番号511に従って、パケットを所定の回線対応部10-1〜10-8のいずれかに送信する。
【0027】
パケットが回線対応部10-1〜10-3のいずれかにスイッチから送信された場合、回線対応部10-1〜10-3ではNext Hop IPアドレス512から宛先MACアドレス520を判定するメディア検索を実施して、新たに判定されたMACアドレス520に書き換えた上で出力回線からパケットをネットワーク2に送信する。回線対応部10-1〜10-3から送信されたパケットは、ネットワーク2を経由して各々、サーバ2-1〜2-3に送信される。サーバ2-1〜2-3がパケットを受信すると、所定のアプリケーション処理を実行した後、応答パケットをパケット中継装置1の回線対応部10-1〜10-3の入力回線に対し送信する。応答パケットがパケット中継装置1の回線対応部10-1〜10-3に到着すると、回線対応部10−1〜10−3いずれかが、経路検索をし、出力回線番号511、Next Hop IPアドレス512を追加したパケットヘッダ情報を含むパケットをスイッチ30に送信する。
【0028】
スイッチ30は、回線対応部10-1〜10-3で判定された出力回線番号511に従って、応答パケットを所定の回線対応部10-1〜10-4のいずれかに送信し、回線対応部10-1〜10-4でメディア検索がなされた後、回線対応部に接続する出力回線から応答パケットは送信される。
【0029】
一方、パケットが回線対応部10-5〜10-8のいずれかにスイッチ30から送信された場合、回線対応部10-5〜10-8ではNext Hop IPアドレス512から宛先MACアドレス520を判定するメディア検索を実施して、パケットを各々拡張処理部20-1〜20-4に送信する。
【0030】
拡張処理部20-1〜20-4ではパケットに関する暗号化処理やアプリケーション処理、NAT(Network Address Translation)/NAPT(Network Address Port Translation)等の拡張処理を実施して、出力回線番号511、宛先MACアドレス520、宛先IPアドレス534を記載した応答パケットを回線対応部10-5〜10-8に送信する。
【0031】
応答パケットが回線対応部10-5〜10-8に到着すると、回線対応部10−5〜10−9は、経路検索を実施し、出力回線番号511、Next Hop IPアドレス512を判定し、スイッチ30に送信する。
【0032】
スイッチ30は、回線対応部10-1〜10-4で判定された出力回線番号511に従って、応答パケットを所定の回線対応部10-1〜10-4のいずれかに送信する。そして、回線対応部10-1〜10-4は、メディア検索を行い、回線対応部10に接続する出力回線から応答パケットをネットワーク2に送信する。
【0033】
図4は、回線対応部10の構成を示す。回線対応部10は、パケット検索部13、受信パケットバッファ17、レイヤ1受信処理部11、メディア検索部14、送信パケットバッファ、15、レイヤ1送信処理部16とを有する。まず、パケット受信時の処理では、ネットワーク2からパケット中継装置1に入力したパケットは、まず回線対応部10に入力する。
【0034】
レイヤ1受信処理部11は、入力されたパケットに対して、光−電気変換処理等の物理レイヤ処理を行う。電気信号となったパケットは、受信パケットバッファ12にて保持される。
【0035】
パケット検索部13は、受信パケットバッファ12から順次パケットを受け、経路検索部131にて宛先IPアドレス534から出力回線番号511とNext Hop IPアドレス512を判定するのと並行して、負荷分散判定部132で、当該パケットが、負荷分散対象パケットであるかを判定する。当該パケットが負荷分散対象パケットであると判定されれば、負荷分散による宛先と判定された出力回線番号511とNext Hop IPアドレス512を判定する。検索結果統合部133では、負荷分散判定部132での判定結果、負荷分散の対象でないパケットである場合には経路検索部131の判定結果の出力回線番号511とNext Hop IPアドレス512を、負荷分散の対象のパケットである場合には、負荷分散判定部132の判定結果の出力回線番号511とNext Hop IPアドレス512をパケットヘッダ情報5001の内部ヘッダ51に書き込み、パケットをスイッチ30に送信する。一方、パケット送信時の処理では、回線対応部10は、スイッチ30からパケットの入力を受け、メディア検索部14に送信される。
【0036】
メディア検索部14は、パケットヘッダ情報5001の内部ヘッダ51のNext Hop IPアドレス512に対応する宛先MACアドレス520を判定し、新たに判定されたMACアドレス520に書き換えた上で送信パケットバッファ15にバッファリングする。送信パケットバッファ15にバッファリングされたパケットは、順次、レイヤ1送信処理部16に送信され、電気−光変換等の物理レイヤ処理がなされ、出力回線からパケットは送信される。
【0037】
図5は、負荷分散判定部132の構成を示す。負荷分散判定部132は、優先度判定テーブル1321及び負荷分散対象フロー判定テーブル1320を有する。
【0038】
図6は、負荷分散対象フロー判定テーブル1320の構成の一例を示す。負荷分散対象フロー判定テーブル1320は、入力回線番号、宛先MACアドレス、送信元MACアドレス、イーサタイプ、IPバージョン、TOS、L4プロトコル、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号等のフローを判定する条件の組み合わせとして設定される負荷分散対象フローエントリ1320-1〜1320-mから構成される。負荷分散対象フロー判定テーブル1320の設定は、制御部40を通じてなされる。負荷分散対象フロー判定テーブル1320は、物理的にはCAM(Contents Addressable Memory)またはRAM(Random Access Memory)で構成することができる。
【0039】
図5に戻り、負荷分散判定部132は、受信パケットバッファからパケットを受け取ると、負荷分散対象フロー判定テーブル1320を参照し、パケットのヘッダ情報に一致するフローがあるかを検索する。
【0040】
負荷分散対象フロー判定テーブル1320をCAMで構成する場合、負荷分散判定部132は、パケットヘッダ情報5000のうちフローの決定に必要な入力回線番号、宛先MACアドレス、送信元MACアドレス、イーサタイプ、IPバージョン、TOS、L4プロトコル、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号をCAMに入力すると、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mのアドレスをCAMから出力する。
【0041】
RAMの場合の負荷分散対象フローの判定は、RAMから負荷分散対象フローエントリ1320-1〜1320-mを逐次読み出し、読み出された負荷分散対象フローエントリの条件と、パケットヘッダ情報5000のうちフローの決定に必要な入力回線番号、宛先MACアドレス、送信元MACアドレス、イーサタイプ、IPバージョン、TOS、L4プロトコル、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号の値を比較することによって、いずれの負荷分散対象フローエントリ1320-1〜1320-mが一致するかを判定することにより、負荷分散対象フローエントリ1320-mのアドレスが得られることによってなされる。
【0042】
図7は、優先度判定テーブル1321の構成を示す。優先度判定テーブル1321は、例えばRAMで構成することができ、負荷分散対象フローエントリ1320-mのアドレスそれぞれに対応した各負荷分散対象フローエントリ1320-1〜1320-mの優先度が、各々優先度判定テーブルのエントリ1321-1〜1321-mに設定される。この設定は、制御部40を通じてなされる。なお、この優先度の種類はn個あり、負荷分散の対象となる出力回線または負荷分散対象装置の数に対応する。また、優先度1のパケットが最も優先的に、つまり遅延時間をはじめとする負荷の小さい出力回線または負荷分散対象装置に送信すべきパケットであり、優先度2のパケットがその次に優先的に、つまり遅延時間をはじめとする負荷の小さい出力回線または負荷分散対象装置に送信すべきパケットであり、以下の優先度についても順次同様であり、優先度nのパケットが最も非優先的に、つまり遅延時間をはじめとする負荷の大きい出力回線または負荷分散対象装置に送信すべきパケットである。
【0043】
図5に戻り、負荷分散判定部132は、負荷分散対象フローエントリ1320-mのアドレスを取得し、取得した負荷分散対象フローエントリ1320-mのアドレスに基づいて図7に示す優先度判定テーブル1321を参照して、パケットの優先度を判定する。
【0044】
図9は、負荷順位テーブル1322-Bの構成を示す。負荷順位テーブル1322-Bを構成するエントリ1322B-1〜1322B-nに対し、そのアドレスの小さい順に、遅延時間の小さい負荷分散対象装置に対する回線番号とNext Hop IPアドレスが設定されることとなる。なお、パケット中継装置1の運用の初期状態で遅延時間を未測定の場合には、回線番号の順で負荷順位テーブル1322-Bに回線番号とNext Hop IPアドレスを登録しておけばよい。
【0045】
図5に戻り、負荷分散判定部132は、優先度判定テーブル1321に基づいて優先度が判定されたパケットに対し、この優先度の値に基づいて求まるアドレスをリードアドレスとして負荷順位テーブル1322-Bを読み出し、このパケットに対して負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスを特定する。負荷分散判定部132は、特定した回線番号とNext Hop IPアドレスを、検索結果統合部133に出力する。
【0046】
図4に戻り、検索結果統合部133は、経路検索部131の判定結果と負荷分散判定部の判定結果とに基づき、パケットの宛先を特定する。負荷分散判定部132の負荷分散対象フロー判定テーブル1320に登録された負荷分散対象フローエントリに一致するフローがなかった場合には、検索結果統合部133は、経路検索部131で判定された回線番号とNext Hop IPアドレスをパケットヘッダ情報5001の出力回線番号511とNext Hop IPアドレス512として、スイッチ30に送信する。
【0047】
一方、負荷分散判定部132の負荷分散対象フロー判定テーブル1320に登録された負荷分散対象フローエントリに一致するフローがあった場合には、検索結果統合部133は、負荷分散判定部132で判定された回線番号とNext Hop IPアドレスをパケットヘッダ情報5001の出力回線番号511とNext Hop IPアドレス512として、スイッチ30に送信する。この出力回線番号511とNext Hop IPアドレス512は、負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスである。この宛先にパケットが送信されることにより、高優先のパケットは遅延時間の小さい負荷分散対象装置に送信され、低優先のパケットは遅延時間の大きい負荷分散対象装置に送信されることとなる。
【0048】
以下、パケット中継装置と負荷分散対象装置との接続関係に応じた三つの構成例での遅延時間に基づいた負荷分散について説明する。
【0049】
(i)図21のように、パケット中継装置が負荷分散対象装置を直収する場合
(ii)図22のように、パケット中継装置が負荷分散対象装置を直収せず、ネットワークを経由して負荷分散対象装置と接続する場合、かつネットワークにおいて輻輳が生じていない場合
(iii) 図23のように、パケット中継装置が負荷分散対象装置を直収せず、ネットワークを経由して負荷分散対象装置と接続する場合、かつネットワークにおいて輻輳が生じている場合
(i)の場合には、装置の処理遅延が遅延時間となる。(ii)の場合も、パケット中継装置と負荷分散対象装置の物理的距離が回線遅延を無視できる程度であれば、装置の処理遅延が遅延時間の支配項となる。従って、(i)(ii)の場合には、負荷分散対象装置毎の遅延時間に基づいて負荷分散することとなる。(iii)の場合には、回線遅延が遅延時間の支配項となるので、出力回線毎の遅延時間に基づいて負荷分散することとなる
まず、(i)(ii)の場合の遅延時間順位判定部1322について説明する。遅延時間順位判定部1322には、負荷分散対象装置毎にパケット中継装置1から遅延時間測定パケットを送信してから、負荷分散対象装置から応答パケットがパケット中継装置1に返って来るまでの遅延時間が設定される。この処理は、次のようになされる。
【0050】
例えば制御部40は、送信パケットバッファ15に対し定期的にあるいは所定のタイミングで、出力回線または負荷分散対象装置毎にpingパケット(ICMPのecho requestパケット(Type=8))を送信する。パケット検索部13は、送信するpingパケットの宛先を判定し、その宛先である負荷分散対象装置に、スイッチ30、送信側の回線対応部10を介して送信する。これに対する応答パケットを、負荷分散対象装置からパケット中継装置1が受信した場合、その応答パケットは、回線対応部10に入力され、レイヤ1受信処理部を経由して受信パケットバッファ12に格納される。
【0051】
ping応答パケット判定部17は、受信パケットバッファ12の前段に設けられ、ICMPのecho reply(Type=0)のパケットをpingパケットの応答パケットと判定する。ping応答パケット判定部17にてパケットがpingパケットの応答パケットであることが検出されると、このパケットはping応答パケット判定部17から制御部40に送信され、管理端末3に送信される。管理端末3に搭載されたソフトウェアにてpingパケットの応答パケットを受信したことが認識されると、このパケットを処理した出力回線または負荷分散対象装置の情報と、pingパケットを送出してから応答パケットが返ってくるまでの遅延時間の情報が得られるので、この情報を制御部40経由で負荷分散判定部132に送信する。
【0052】
図8は、負荷分散判定部132の遅延時間テーブル1322-Aの構成を示す。遅延時間テーブル1322-Aは、負荷分散対象装置毎の遅延時間を、遅延時間テーブル1322-Aの所定のアドレスのエントリに設定する構成である。所定のアドレスは、負荷分散対象装置毎に対応づけられている。負荷分散判定部132は、pingパケットに対する応答パケットの送信元である負荷分散対象装置の情報と、応答パケットから得られた遅延時間の情報を受信し、負荷分散対象装置に対応づけられる遅延時間エントリ1322A-1〜1322A-nに遅延時間を書き込む。これを各負荷分散対象装置に対し順次実行していくことにより、複数の負荷分散対象装置に対応する遅延時間エントリ1322A-1〜1322A-nが設定される。
【0053】
制御部40は、所定のタイミングあるいは定期的に、負荷分散対象装置に対する遅延時間を1322A-1〜1322A-nから読み出し、遅延時間を比較する。比較した結果、特定される負荷分散対象装置に対する遅延時間の大小関係に従って、遅延時間の小さい順に、負荷分散対象装置に対応する回線番号とNext Hop IPアドレスとを負荷順位テーブル1322-Bに順次書き込んでいく。
【0054】
(iii)の場合には、負荷分散対象装置を出力回線と読み替えれば良い。
なお、負荷順位テーブル1322-Bに登録する回線番号とNext Hop IPアドレスを、リンクアグリゲーションに属する複数の物理回線または論理回線(VLANなど)を束ねた仮想リンクの回線番号とNext Hop IPアドレスと置き換え、リンクアグリゲーションに属する回線番号とNext Hop IPアドレスに関して、遅延時間が小さい出力回線に優先度高いパケットに割り当て、負荷分散を行う。
【0055】
また、負荷順位テーブル1322-Bに登録する回線番号とNext Hop IPアドレスを、マルチパスに属する複数の物理回線または論理回線(VLANなど)の回線番号とNext Hop IPアドレスと置き換えることにより、マルチパスに属する回線番号とNext Hop IPアドレスを優先度に対応付け、負荷分散を行ってもよい。
【0056】
図19は、フロー毎またはセッション毎の優先度を設定する設定例を、図19に示す。図19では、4つのフローを優先度順に、負荷の低い方から順に4つの出力回線または負荷分散対象装置に対し割り当てるエントリ構成としている。1エントリ目は、TCP/IPパケットで、送信元IPアドレス(sip)が1.2.3.4かつ宛先IPアドレス(dip)が5.6.7.8かつ送信元ポート番号が9かつ宛先ポート番号が10であるフローの負荷分散の優先度(lbpri)を1(最高優先)とする設定である。以下順に、2エントリ目は、TCP/IPパケットで、送信元IPアドレスが11.12.13.14かつ宛先IPアドレスが15.16.17.18かつ送信元ポート番号が19かつ宛先ポート番号が20であるフローの負荷分散の優先度を2とする設定である。3エントリ目は、TCP/IPパケットで、送信元IPアドレスが21.22.23.24かつ宛先IPアドレスが25.26.27.28かつ送信元ポート番号が29かつ宛先ポート番号が30であるフローの負荷分散の優先度を3とする設定である。4エントリ目は、TCP/IPパケットで、送信元IPアドレスが31.32.33.34かつ宛先IPアドレスが35.36.37.38かつ送信元ポート番号が39かつ宛先ポート番号が40であるフローの負荷分散の優先度を4(最低優先)とする設定である。
【0057】
以上で、遅延時間の変動に基づいて、パケットの転送先であるサーバの優先順位を変更するパケット中継装置について説明した。 次に、変形例1として、遅延時間ではなく、負荷分散対象装置であるサーバが処理するセッション数を監視し、動的にパケットの処理を行うサーバの優先度を変更する。以下に説明する変形例2におけるパケット中継装置は、実施例1と異なる部分について主に説明し、それ以外については、実施例1の説明に従う。
【0058】
図10は、変形例1における負荷分散判定部132の構成を示す。実施例1の図5の遅延時間順位判定部1322の代わりに、図10の負荷分散判定部132はセッション数順位判定部1323を有する。
【0059】
図11は、セッション数順位判定部1323が有するセッション数テーブル1323-Aの構成を示す。セッション数テーブル1323-Aは、出力回線または負荷分散対象装置毎に、出力回線に対応する負荷分散対象装置や、負荷分散対象装置の処理中のセッション数が設定される構成となっている。
【0060】
負荷分散対象フローの判定は、実施例1と同様の手順にて、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mが定まる。負荷分散対象フローエントリ1320-mに対応する優先度判定テーブル1321のエントリ1321-mを読み出すことにより、このパケットの優先度nが判定されるので、この優先度に対応する負荷順位テーブル1322-Bのエントリ1322B-nを読み出せば、送信すべき負荷分散対象装置の出力回線番号とNext Hop IPアドレスが定まる。
【0061】
変形例1では、負荷順位テーブル1322-Bは、出力回線または負荷分散対象装置のセッション数の少ない順に構成される。この負荷順位テーブル1322-Bの生成方法について説明する。入力されるパケットのうち、負荷分散対象フローエントリ1320-mに対応するパケットヘッダ情報5000が検出された場合、当該パケットのSYNフラグを参照する。
当該パケットのSYNフラグ542が’1’であった場合には、セッションの接続が開始されるので、該当するパケットが送信される負荷分散対象装置の出力回線番号とNext Hop IPアドレスが定まった後に、負荷分散判定部132は、この出力回線または負荷分散対象装置に対応するセッション数テーブル1323-Aのエントリ1323A-nのセッション数のフィールド値に1を加算する。
【0062】
次に、SYNフラグ542が’0’であった場合は、負荷分散判定部132は、当該パケットのFINフラグ543を参照する。参照結果、当該パケットのFINフラグ543が’1’であった場合には、セッションの接続が終了されるので、負荷分散判定部132は、該当するパケットが送信される負荷分散対象装置の出力回線番号とNext Hop IPアドレスを特定し、この負荷分散対象装置に対応するセッション数テーブル1323-Aのエントリ1323A-nのセッション数のフィールド値から1を減算する。これにより、セッション数テーブル1323-Aのエントリ1323A-nのセッション数のフィールドには、負荷分散対象装置毎に、処理中のセッション数が設定されることとなる。
【0063】
制御部40は、全ての負荷分散対象装置に対するセッション数を1323A-1〜1323A-nから読み出し、負荷分散対象装置に対するセッション数の大小関係を判定する。制御部40は、その判定結果に従って、セッション数の小さい順に、負荷分散対象装置に対する回線番号とNext Hop IPアドレスを負荷順位テーブル1322-Bに並び変えて書き込む。すると、負荷順位テーブル1322-Bには、負荷順位テーブル1322-Bのアドレスの小さい順に、セッション数の小さい負荷分散対象装置に対する回線番号とNext Hop IPアドレスが設定されることとなる。
【0064】
なお、パケット中継装置1の運用の初期状態でセッション数を未測定の場合には、回線番号の順で負荷順位テーブル1322-Bに回線番号とNext Hop IPアドレスを登録する。負荷分散判定部132は、優先度判定テーブル1321に基づいて優先度が判定されたパケットに対し、この優先度の値に基づいて求まるアドレスをリードアドレスとして負荷順位テーブル1322-Bを読み出すと、このパケットに対して本発明の負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスを判定する。
【0065】
以上が、変形例1の説明である。
【0066】
次に、実施例1の変形例2を説明する。変形例2のパケット中継装置は、負荷分散対象装置毎のパケットレートを監視することにより、パケットの転送先の優先順位を動的に変更する。
【0067】
以下、変形例2の説明として、主に、実施例1と異なる部分について説明する。図12は、変形例2における負荷分散判定部132の構成である。変形例2の負荷分散判定部132は、遅延時間順位判定部1322の代わりにパケットレート順位判定部1324を有する。また、変形例2の負荷分散判定部132は、遅延時間テーブル1322-Aの代わりにパケットレートテーブル1324−Aを有する。
【0068】
図13は、パケットレートテーブル1324-Aの構成を示す。パケットレートテーブル1324-Aには、負荷分散対象装置毎のパケットレートが設定される構成となっている。
【0069】
負荷分散対象フローの判定は、実施例1と同様の手順にて、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mが定まる。負荷分散対象フローエントリ1320-mに対応する優先度判定テーブル1321のエントリ1321-mを読み出すことにより、このパケットの優先度nが判定されるので、この優先度に対応する負荷順位テーブル1322-Bのエントリ1322B-nを読み出せば、送信すべき負荷分散対象装置の出力回線番号とNext Hop IPアドレスが定まる。
【0070】
負荷順位テーブル1322-Bの設定は、負荷分散対象装置のパケットレートの少ない順となっている。この負荷順位テーブル1322-Bの生成方法について説明する。入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mが定まった際に、該当するパケットの負荷分散対象装置の出力回線番号とNext Hop IPアドレスが定まった後に、この負荷分散対象装置に対応するパケットレートテーブル1324-Aのエントリ1324A-nのパケットレートのフィールド値に1を加算する。パケット入力の都度この処理を繰り返し、一定周期で全ての負荷分散対象装置のパケットレートのフィールド値を0に戻すことを繰り返すことにより、一定周期の間のパケットレートに比例する値が、パケットレートテーブル1324-Aのエントリ1324A-nのパケットレートのフィールドに設定されることとなる。
【0071】
定期的にあるいは所定のタイミングで、制御部40は、全ての負荷分散対象装置に対するパケットレートを1324A-1〜1324A-nから読み出し、負荷分散対象装置に対するパケットレートの大小関係を判定する。判定結果、パケットレートの大小関係に従って、制御部40は、パケットレートの小さい順に、負荷分散対象装置に対する回線番号とNext Hop IPアドレスを負荷順位テーブル1322-Bに書き込む。すると、負荷順位テーブル1322-Bには、負荷順位テーブル1322-Bのアドレスの小さい順に、パケットレートの小さい負荷分散対象装置に対する回線番号とNext Hop IPアドレスが設定されることとなる。
【0072】
なお、パケット中継装置1の運用の初期状態でパケットレートを未測定の場合には、回線番号の順で負荷順位テーブル1322-Bに回線番号とNext Hop IPアドレスを登録しておけばよい。優先度判定テーブル1321に基づいて優先度が判定されたパケットに対し、この優先度の値に基づいて求まるアドレスをリードアドレスとして負荷順位テーブル1322-Bを読み出すと、このパケットに対して本発明の負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスが判定される。以上が変形例2の説明である。
【0073】
次に、実施例1の変形例3について説明する。変形例3は、出力回線毎のビットレートを監視し、負荷分散対象装置のいずれかにパケットを転送するパケット中継装置である。以下、変形例4の説明は、主に、実施例1と異なる部分について説明する。
【0074】
図14は、変形例3におけるパケット中継装置1の構成である。実施例1の図1と異なり、ビット長判定部18が追加される構成である。ビット長判定部18は、受信パケットバッファ12から読み尾出したパケットのビット長を測定して、パケットヘッダ情報5002に書き込む。
【0075】
図15は、変形例3におけるパケットヘッダ情報5002の内部ヘッダ部51の構成である。図15のパケットヘッダ情報5002は、ビット長フィールド513を有する。。
【0076】
図16は、変形例3における負荷分散判定部132の構成である。負荷分散判定部132は、変形例3では遅延時間順位判定部1322の代わりにビットレート順位判定部1325を有する。
【0077】
図17は、変形例3のビットレートテーブル1325-Aの構成を示す。実施例1の遅延時間テーブル1322-Aの代わりに、変形例3における負荷分散判定部132が有するビットレートテーブル1325-Aには、出力回線毎のビットレートが設定される構成となっている。
【0078】
負荷分散対象フローの判定は、実施例1と同様の手順にて、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mが定まる。負荷分散対象フローエントリ1320-mに対応する優先度判定テーブル1321のエントリ1321-mを読み出すことにより、このパケットの優先度nが判定されるので、この優先度に対応する負荷順位テーブル1322-Bのエントリ1322B-nを読み出せば、送信すべき出力回線の出力回線番号とNext Hop IPアドレスが定まる。
【0079】
変形例3における負荷順位テーブル1322-Bの設定は、出力回線のビットレートの少ない順となっている。変形例3における負荷順位テーブル1322-Bの生成方法について説明する。変形例3における負荷分散判定部132は、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mについて、該当するパケットの出力回線の出力回線番号とNext Hop IPアドレスを特定し、この出力回線に対応するビットレートテーブル1325-Aのエントリ1325A-nのビットレートのフィールド値にビット長513の値を加算する。
【0080】
負荷分散判定部132は、パケット入力の都度この処理を繰り返し、所定の周期で全ての出力回線のビットレートのフィールド値を0に戻すことを繰り返すことにより、一定周期の間のビットレートに比例する値が、ビットレートテーブル1325-Aのエントリ1325A-nのビットレートのフィールドに設定されることとなる。
【0081】
制御部40は、所定のタイミングであるいは定期的に、ビットレートテーブルを参照し、出力回線に対するビットレートを1325A-1〜1325A-nから読み出すと、出力回線に対するビットレートの大小関係を判定する。判定結果、制御部40は、この大小関係に従って、ビットレートの小さい順に、出力回線に対する回線番号とNext Hop IPアドレスを書き込み、負荷順位テーブル1322-Bを更新する。そして、負荷分散判定部132は、負荷順位テーブル1322-Bには、負荷順位テーブル1322-Bのアドレスの小さい順に、ビットレートの小さい出力回線に対する回線番号とNext Hop IPアドレスを設定することとなる。
【0082】
なお、変形例3におけるパケット中継装置1の運用の初期状態でビットレートを未測定の場合には、回線番号の順で負荷順位テーブル1322-Bに回線番号とNext Hop IPアドレスを登録しておけばよい。優先度判定テーブル1321に基づいて優先度が判定されたパケットに対し、この優先度の値に基づいて求まるアドレスをリードアドレスとして負荷順位テーブル1322-Bを読み出すと、このパケットに対して本発明の負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスが判定される。
【実施例2】
【0083】
実施例2では、2フロー以上の負荷分散対象フローエントリが、同一の優先度に対応づけられる設定がされている場合に、優先度を動的に変更するパケット中継装置の例である。
【0084】
まず、m個のフローエントリからn個の優先度に割り当てるクラシファイ方式について説明する。nが4個であれば、例えばDiffservのAF PHBの4種の遅延クラスAF4*/AF3*/AF2*/AF1*(*は1〜3の廃棄クラスに対応する値)に対応するフローをそれぞれ4個の優先度、優先度1/優先度2/優先度3/優先度4の負荷分散対象装置に割り当てれば良い。
【0085】
このような設定ベースの静的なクラシファイ方式に対し、nがより大きくなった場合のクラシファイ方式として、統計ベースの動的なクラシファイを加重する連携方式を考えることができる。ユーザフローの優先度を、動的に変更する処理について説明する。例えばn=8で、上述のように設定ベースの静的なクラシファイ方式により4種に分類されたフローを、更に2倍の8種に分類し、8個の負荷分散対象装置に割り当てる場合で説明する。設定ベースで4種に分類されたフローに対し、フローを構成するユーザ毎に通信開始後の通信持続時間(例えば、TCPのSYNパケットで通信開始されてからFINパケットで通信終了するまでの時間。あるいはUDPで一定のタイムアウト時間を超過して通信が途絶えるまでの時間)を測定する。
【0086】
測定の結果、長時間通信を継続してサービスを占有しがちである特定ユーザフローを検出した場合、そのユーザフローに対する優先度を1段階落とすものとする。これにより、同一クラスのサービスを利用するユーザ間で、一般のユーザフローに対するサービス性能が特定ユーザフローにより低下させられることを防止することができる。同様に、統計項目としてバースト性や帯域等の別の指標を用いた統計ベースの動的なクラシファイ方式と連携させることもできる。以下、詳細に説明する。
【0087】
図24は、例として、TCPフローに関する通信持続時間に基づいて動的なクラシファイを実現する場合のパケット中継装置の負荷分散判定部1352の構成を示す。図24では、図5に示した負荷分散判定部132の構成に対し、通信持続時間測定テーブル1326とタイマー1327が追加された構成となる。
【0088】
図25は、通信持続時間測定テーブル1326の構成を示す。通信持続時間測定テーブル1326の通信持続時間測定エントリ1326-kは、送信元IPアドレス(SIP)、宛先IPアドレス(DIP)、送信元ポート番号(SPORT)、宛先ポート番号(DPORT)を含む組み合わせで、フローを特定する条件と、SYNパケット到着時刻(TIM)とで構成される。通信持続時間測定テーブル1326はCAM/RAMいずれで構成してもよい。以下ではSIP、DIP、SPORT、DPORTというフローを特定する条件に関しては、登録フローを簡易に検出できるCAM1326-Aで、TIMに関してはRAM1326-Bで構成する場合について説明する。
【0089】
図24に戻り、通信持続時間を測定する処理の流れを以下に説明する。まず、負荷分散判定部132は、入力されたパケットヘッダ情報5000に基づいて、これに一致する負荷分散対象フロー判定テーブル1320の負荷分散対象フローエントリ1320-m1があるかを検索する。
【0090】
このパケットがTCPのSYNパケットであった場合、該当する負荷分散対象フローエントリがあった場合には、負荷分散判定部1352は、パケットヘッダ情報5000のうちSIP、DIP、SPORT、DPORTの値を、通信持続時間測定テーブル1326-Aの通信持続時間測定エントリ1326-A-kに登録する。また、負荷分散判定部1352は、このときのタイマー1327の値もTIMとして通信持続時間測定エントリ1326-B-kに登録する。
【0091】
TCPのFINパケットが到着した場合には、負荷分散判定部1352は、このパケットヘッダ情報5000のうちSIP、DIP、SPORT、DPORTの値を通信持続時間測定テーブル1326-Aに入力する。通信持続時間測定テーブル1326-AはCAMで構成されているので、FINパケットが属するフローが通信持続時間測定エントリ1326-A-kとして通信持続時間測定テーブル1326-Aに登録されている場合には、通信持続時間測定エントリ1326-A-kのアドレスが通信持続時間測定テーブル1326-Aから出力される。FINパケットが到着し、このFINパケットが属するフローが通信持続時間測定エントリ1326-A-kとして通信持続時間測定テーブル1326-Aに登録されていた場合には、このフローは通信終了したので、負荷分散判定部1352は、通信持続時間測定エントリ1326-A-kを削除する。
【0092】
制御部40は、所定のタイミングで通信持続時間測定テーブル1326-Bに登録された有効な通信持続時間測定エントリ1326-B-kそれぞれのTIMを巡回して読み出す。そのときのタイマー1327の値とTIMの差分から、制御部40は、SYNパケットが到着してからの通信持続時間ΔTを得る。ΔTが、予め定められた通信持続時間の基準値TIM0を超過しているか判別し、制御部40は、判別結果基準値TIM0を超えていた場合は、当該の通信持続時間測定エントリ1326-B-kに対応して登録された通信持続時間測定エントリ1326-A-kのフローは、長時間通信を継続してサービスを占有しがちである特定ユーザフローであるとみなし、そのユーザフローに対する優先度を1段階低い値とする。
【0093】
優先度を一段階低い値にするため、制御部40は、当該の通信持続時間測定エントリ1326-A-kのフローに一致する条件を負荷分散対象フロー判定テーブル1320に負荷分散対象フローエントリ1320-m2として登録する。なおこのとき、負荷分散対象フローエントリ1320-m2に相当するフローのパケットは、負荷分散対象フローエントリ1320-m1には一致することのないように登録する必要がある。たとえば、CAMでは、複数のエントリに一致する場合にはより上位のCAMのアドレスのエントリが優先して一致と判定されるので、制御部40は、負荷分散対象フローエントリ1320-m2は負荷分散対象フローエントリ1320-m1よりも上位のCAMのアドレスに登録する。
【0094】
また、制御部40は、負荷分散対象フローエントリ1320-m2に対応して読み出すべき優先度判定テーブル1321のエントリ1321-m2には、負荷分散対象フローエントリ1320-m1に対応して読み出すべき優先度判定テーブル1321のエントリ1321-m1に登録された優先度よりも1段階低い値を登録する。FINパケットが到着し、通信持続時間測定エントリ1326-A-kを削除するときには、負荷分散対象フローエントリ1320-m2と優先度判定テーブル1321のエントリ1321-m2も削除する。
【0095】
以上の処理により、パケット中継装置1は、登録された負荷分散対象フローエントリ1320-m1に含まれる複数のフローのうち、通信持続時間が基準値TIM0を超過するフローを検出して分離し、その優先度を変更する。また、当該フローの通信が終了したときには、分離したフローは本来設定されていた負荷分散対象フローエントリ1320-m1に統合される。
【実施例3】
【0096】
実施例3を説明する。本実施例1では、通信状況やサーバの処理状況で、動的に優先度を変更し、パケット毎に優先度を判定し、優先度にあわせた転送先にパケットを転送するパケット中継装置を説明した。
【0097】
実施例3では、セッション毎に優先度を対応付け、パケット転送を、セッション毎の優先度に基づいて行うパケット中継装置を含むシステムの例である。
負荷分散対象装置にかかる負荷は時間的に変動するので、優先度毎に対応して送信先と判定される負荷分散対象装置も、時間的に変化する。従って、実施例1では、セッション毎に優先度を判定する場合であっても、SYNパケットの送信先と判定される負荷分散対象装置と、SYNパケットに後続するパケットの送信先と判定される負荷分散対象装置は異なる場合が生じる。
【0098】
すると、同一セッションであってもパケット毎に処理される負荷分散対象装置が異なることとなる。例えば、アプリケーションを処理する負荷分散対象装置(サーバ)において、サーバに送信されたパケットデータの内容に応じてアプリケーション処理の状態が変化するような場合には、パケット毎に処理サーバが異なるので、アプリケーション処理の状態の整合性をサーバ間で保持しなければならないという課題がある。
【0099】
実施例3では、セッション毎に優先度を判定する場合のサーバ処理に関し、パケット中継装置1の構成を示す。変形例1と異なる部分について、説明する。
【0100】
図18は、優先度判定テーブル1321-Aの構成を示す。優先度判定テーブル1321-Aは、図7の優先度判定テーブルと異なり、負荷分散対象フロー(セッション)毎のエントリ1321A-1〜1321A-nには優先度に加え、送信すべき負荷分散対象装置の出力回線番号とNext Hop IPアドレスが登録される。
【0101】
実施例1の変形例1のように、負荷分散判定部132は、負荷分散対象フロー判定テーブル1320に基づいて、入力されたパケットのパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mを検出した場合、そのパケットのSYNフラグを参照する。当該パケットのSYNフラグ542が’1’であった場合には、これをSYNパケットとしてセッションの接続が開始される。
【0102】
負荷分散判定部132は、このSYNパケットに対しては負荷分散対象フローエントリ1320-mに対応する図18の優先度判定テーブル1321-Aのエントリ1321A-mを参照し、エントリ1321A-mに記載された優先度nに基づいて負荷順位テーブル1322-Bのエントリ1322B-nを参照する。エントリ1322B-n に記載の回線番号とNext Hop IPアドレスが、SYNパケットを送信すべき負荷分散対象装置の属する回線番号とNext Hop IPアドレスとなる。そして、負荷分散判定部132は、エントリ1322B-n に記載の回線番号とNext Hop IPアドレスを、優先度判定テーブル1321-Aのエントリ1321A-mの回線番号とNext Hop IPアドレスとして登録する。上述のSYNパケットを入力した場合を除いては、優先度判定テーブル1321-Aのエントリに対する回線番号とNextHop IPの登録は行わないものとする。このSYNパケットに関する処理を図26に示す。
【0103】
図26では、セッション0に属するパケット0(2610)、パケット1(2620)、パケット2(2630)が順番にパケット中継装置に入力する状況を示している。パケット0が、セッション0を開始するSYNパケットである。ここで、パケット0は最高の優先度0に相当するパケットであるものとする。パケット中継装置1は、パケット中継装置に入力したパケット0を、サーバA(2-1)(遅延時間100ms)、サーバB(2-2)(遅延時間200ms)、サーバC(2-3)(遅延時間300ms)のうち最も遅延時間の短いサーバAに送信する。このときパケット中継装置1では、SYNパケット0を送信するときの遅延時間が最も短いサーバAの回線番号0とNext Hop IPアドレスAを、優先度0のパケットに対応する送信先情報として、パケット中継装置内の負荷分散判定部132が負荷順位テーブル1322-Bに登録する。
【0104】
SYNパケットに後続する、SYNパケットと同一の負荷分散対象フローエントリ1320-mと判定されたパケット(SYN=0)を送信すべき回線番号とNext Hop IPアドレスは、上述のSYNパケットの受信時にエントリ1321A-mに記載された回線番号とNext Hop IPアドレスと判定される。このSYNパケットの後続するパケットに関する処理の特徴を図27に示す。
【0105】
図27では、パケット0(2610)がサーバA(2-1)に送信された後にパケット中継装置1が受信したパケット1(2620)がどのように処理されるかを示している。パケット1(2620)はパケット0と同じセッション0に属するので、優先度0に相当するパケットである。このときのサーバ毎の遅延時間は、サーバA(300ms)、サーバB(100ms)、サーバC(200ms)となっているが、パケット中継装置はパケット1を、遅延時間が最も短いサーバBに送信するのではなく、パケット0の送信時に優先度0のパケットに対応する送信先情報として登録されたサーバAに送信する。これにより、同一セッションに属するパケットは、遅延時間の変化によらず常にSYNパケットが送信されたサーバと同一のサーバに送信されることとなる。その結果、同一セッションであってもパケット毎に処理される負荷分散対象装置が異なる場合の、パケット毎に処理サーバが異なるので、アプリケーション処理の状態の整合性をサーバ間でとる必要がなくなる。
【0106】
図20は、4つのフローを優先度順に、負荷の低い方から順に4つの出力回線または負荷分散対象装置に対し割り当てるエントリ構成を示す。1エントリ目は、TCP/IPパケットで、送信元IPアドレス(sip)が1.2.3.4かつ宛先IPアドレス(dip)が5.6.7.8かつ送信元ポート番号が9かつ宛先ポート番号が10であるセッションの負荷分散の優先度(lbpri)を1(最高優先)とする設定である。以下順に、2エントリ目は、TCP/IPパケットで、送信元IPアドレスが11.12.13.14かつ宛先IPアドレスが15.16.17.18かつ送信元ポート番号が19かつ宛先ポート番号が20であるセッションの負荷分散の優先度を2とする設定である。3エントリ目は、TCP/IPパケットで、送信元IPアドレスが21.22.23.24かつ宛先IPアドレスが25.26.27.28かつ送信元ポート番号が29かつ宛先ポート番号が30であるセッションの負荷分散の優先度を3とする設定である。4エントリ目は、TCP/IPパケットで、送信元IPアドレスが31.32.33.34かつ宛先IPアドレスが35.36.37.38かつ送信元ポート番号が39かつ宛先ポート番号が40であるセッションの負荷分散の優先度を4(最低優先)とする設定である。フロー毎の設定例との違いは、以下の点にある。フロー毎に優先度を設定する場合には、同一フロー内の同一セッションであっても、出力回線または負荷分散対象装置の負荷がセッション中で変化した場合には、割り当てられる出力回線または負荷分散対象装置が変化する。それに対し、セッション毎に優先度を設定する場合には、同一フロー内の同一セッションであれば、出力回線または負荷分散対象装置の負荷がセッション中で変化した場合であっても、割り当てられる出力回線または負荷分散対象装置はセッション開始のSYNパケットが割り当てられた出力回線または負荷分散対象装置のままで、セッション中で割り当てられる出力回線または負荷分散対象装置は変化しない。
【0107】
実施例3のパケット中継装置1では、同一セッションに属する複数のパケットを中継している間に負荷順位テーブル1322-Bのエントリ構成、即ち負荷分散対象装置にかかる負荷の順位が変化した場合であっても、同一セッションに属する複数のパケットの全てを、SYNパケットを送信した負荷分散対象装置と負荷分散対象装置に送信する。従って、アプリケーション処理の状態の整合性を負荷分散対象装置間(サーバ間)で保持せずにすむ。また、同一セッションに属する複数のパケットの間で、負荷分散対象装置に到着するパケットの順序逆転を防止することもできる。
【0108】
上述の種々の実施例によると、パケットの出力回線の負荷、または宛先となる負荷分散対象装置の負荷を測定し、測定された負荷情報とパケットの優先度に基づいて、パケットの優先度の高い順に宛先を負荷の低い順の出力回線または負荷分散対象装置と判定するパケット中継装置を提供する。
【0109】
また、低優先パケットの負荷がどんなに高くても、あるいはどんなタイミングでパケット中継装置が優先度の高いパケットを受信しても、低優先パケットによる影響を受けていない最も負荷の低い出力回線または負荷分散対象装置に高優先パケットを送信することができるので、高優先パケットのレスポンス性能を最善とすることができる。
【0110】
また、種々の実施例に基づいて、本発明の態様は下記の態様も含む。
他の第一態様のパケット中継装置であって、パケットがパケット中継装置から送信され、負荷分散対象装置に入力して処理されて、負荷分散対象装置において該パケットに対して生成された応答パケットを該パケット中継装置が受信するまでの遅延時間、または負荷分散対象装置への送信パケットレート、または負荷分散対象装置への送信ビットレート、
または負荷分散対象装置へのセッション数、 または出力回線への送信パケットレート、
または出力回線への送信ビットレート、または出力回線のセッション数に基づいて負荷を求める態様である。この態様によれば、遅延時間、パケットレートやビットレート等の帯域、セッション数の低い出力回線または負荷分散対象装置は、優先度の高いパケットのために確保される。従って、高優先パケットのレスポンス性能を最善としやすくすることができる。
【0111】
別の態様として、さらに、パケット中継装置は、遅延時間測定用パケットを生成し、
前記遅延時間測定用パケットを負荷分散対象装置に送信してから、該遅延時間測定用パケットに対する応答パケットをパケット中継装置が受信するまでの時間を測定し、
前記測定された時間を遅延時間として負荷を求めてもよい。これにより、遅延時間測定用パケットを用いて測定した遅延時間の低い出力回線または負荷分散対象装置は、優先度の高いパケットのために確保される。従って、高優先パケットのレスポンス性能を最善とすることができる。
【0112】
別の態様として、パケット中継装置は、パケットの出力回線または宛先の負荷分散対象装置毎の負荷である、遅延時間または送信パケットレートまたは送信ビットレートまたはセッション数を、各々負荷の小さい順に並べて記載した負荷順位表を備え、パケットの優先度の高い順に、負荷順位表の高い順位に登録されたパケットの出力回線または宛先の負荷分散対象装置から送信する態様であってもよい。この態様によれば、負荷順位表の高い順位に登録されたパケットの出力回線または宛先の負荷分散対象装置から高優先パケットを送信する。従って、高優先パケットのレスポンス性能を維持することができる。
【0113】
その他の態様として、優先度を判定するパケット中継装置が、接続要求パケットの宛先である出力回線または負荷分散対象装置を、接続要求パケットの後続パケットの宛先から特定する態様である。この態様によれば、出力回線または負荷分散対象装置の負荷順位の分布が変化した場合にも、接続要求パケットの宛先と接続要求パケットの後続パケットの宛先を一致させることができる。従って、負荷順位の分布が変化した場合にも同一セッションの接続先を一意に保つことができ、同一セッションを構成するパケット間での順序逆転が発生せずに済む。
【0114】
その他の態様として、パケット中継装置が、セッションを識別するときの条件を IPプロトコルの送信元IPアドレスと宛先IPアドレスとTCPプロトコルの送信元ポート番号と宛先ポート番号とSYNフラグとFINフラグのいずれかで構成し、セッションを識別してもよい。この態様によれば、IPプロトコルの送信元IPアドレスと宛先IPアドレスとTCPプロトコルの送信元ポート番号と宛先ポート番号とSYNフラグとFINフラグのいずれかでセッションを識別できる。
【0115】
その他態様として、パケット中継装置が、フロー毎またはセッション毎の優先度を設定するユーザインタフェースを備える態様としてもよい。この態様によれば、パケット中継装置の運用者はユーザインタフェースを通じて、フロー毎またはセッション毎の優先度を設定することができる。
【符号の説明】
【0116】
1…パケット中継装置
2…サーバ
3…管理端末
10…回線対応部
11…レイヤ1受信処理部
12…受信パケットバッファ
13…パケット検索部
14…メディア検索部
15…送信パケットバッファ
16…レイヤ1送信処理部
17…ping応答パケット判定部
20…拡張処理部
30…スイッチ
40…制御部
51…内部ヘッダ部
52…L2ヘッダ部
53…L3ヘッダ部
54…L4ヘッダ部
131…経路検索部
132…負荷分散判定部
133…検索結果統合部
542…SYNフラグ
543…FINフラグ
1320…負荷分散対象フロー判定テーブル
1321…優先度判定テーブル
1322…遅延時間順位判定部
1322-A…遅延時間テーブル
1322-B…負荷順位テーブル
1323…セッション数順位判定部
1323-A…セッション数テーブル
1324…パケットレート順位判定部
1324-A…パケットレートテーブル
1325…ビットレート順位判定部
1325-A…ビットレートテーブル
5000…パケットヘッダ情報


【特許請求の範囲】
【請求項1】
複数の入力回線と出力回線を備え、
入力回線から受信したパケットの入力物理回線番号、または入力論理回線番号、またはパケットヘッダ情報のうち少なくとも一つ以上の情報により識別されるパケットの集合から構成されるフロー毎、またはフロー毎の通信が開始されてから終了するまでのパケットの集合から構成されるセッション毎に優先度を判定し、
パケットを送信する複数の出力回線毎または複数の宛先の負荷分散対象装置毎の負荷を測定し、
パケットの宛先を、優先度の高い順に、負荷の低い順の出力回線または負荷分散対象装置と判定することを特徴とするパケット中継装置。
【請求項2】
請求項1記載のパケット中継装置であって、
パケットがパケット中継装置から送信され、負荷分散対象装置に入力して処理されて、負荷分散対象装置において該パケットに対して生成された応答パケットを該パケット中継装置が受信するまでの遅延時間、
または負荷分散対象装置への送信パケットレート、
または負荷分散対象装置への送信ビットレート、
または負荷分散対象装置へのセッション数、
または出力回線への送信パケットレート、
または出力回線への送信ビットレート、
または出力回線のセッション数を負荷とすることを特徴とするパケット中継装置。
【請求項3】
請求項2記載のパケット中継装置であって、
遅延時間測定用パケットを生成し、
前記遅延時間測定用パケットを負荷分散対象装置に送信してから、該遅延時間測定用パケットに対する応答パケットをパケット中継装置が受信するまでの時間を測定し、
前記測定された時間を遅延時間とすることを特徴とするパケット中継装置。
【請求項4】
請求項1記載のパケット中継装置であって、
パケットの出力回線または宛先の負荷分散対象装置毎の負荷である、
遅延時間または送信パケットレートまたは送信ビットレートまたはセッション数を、各々負荷の小さい順に並べて記載した負荷順位表を備え、
パケットの優先度の高い順に、負荷順位表の高い順位に登録されたパケットの出力回線または宛先の負荷分散対象装置から送信することを特徴とするパケット中継装置。
【請求項5】
請求項1記載のセッション毎に優先度を判定するパケット中継装置であって、
接続要求パケットの宛先である出力回線または負荷分散対象装置を、接続要求パケットの後続パケットの宛先とすることを特徴とするパケット中継装置。
【請求項6】
請求項5記載のパケット中継装置であって、
セッションを識別する条件が、
IPプロトコルの送信元IPアドレスと宛先IPアドレスとTCPプロトコルの送信元ポート番号と宛先ポート番号とSYNフラグとFINフラグのいずれかで構成されることを特徴とするパケット中継装置。
【請求項7】
請求項1記載のパケット中継装置であって、
フロー毎またはセッション毎の通信持続時間、またはバースト性または帯域等の指標に基づいて優先度を分割して割り当てることを特徴とするパケット中継装置。
【請求項8】
請求項1のいずれか記載のパケット中継装置であって、
フロー毎またはセッション毎の優先度を設定するユーザインタフェースを備えることを特徴とするパケット中継装置。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate