(57)【特許請求の範囲】
【請求項１】
複数の入力回線と出力回線と、
宛先検索部と、を備え、
前記宛先検索部は、
前記入力回線のいずれかを介して受信したパケットについて、出力回線番号とNext Hop  IP  アドレスを判定する経路検索部と、
負荷分散対象装置の負荷を、負荷分散対象装置宛に出力される送信パケット及び当該送信パケットに対して負荷分散対象装置から入力される応答パケットの入出力の履歴に基づいて特定する負荷特定部と、
前記入力回線のいずれかを介して受信したパケットについて、
負荷分散対象パケットであるか否かを判定し、負荷分散対象パケットであると判定されたパケットの入力物理回線番号、または入力論理回線番号、またはパケットヘッダ情報のうち少なくとも一つ以上の情報により識別されるパケットの集合から構成されるフロー毎、またはフロー毎の通信が開始されてから終了するまでのパケットの集合から構成されるセッション毎に優先度を判定する優先度判定部と、
パケットの宛先を、前記判定された優先度の高いパケットから順に、前記負荷特定部により特定された負荷の低い順の負荷分散対象装置と判定する負荷分散判定部と、を有する
ことを特徴とするパケット中継装置。
【請求項２】
請求項１記載のパケット中継装置であって、
さらに、制御部を備え、
前記前記送信パケット及び前記応答パケットの入出力の履歴は、パケットが前記制御部あるいは宛先検索部から送信され、負荷分散対象装置に入力して処理されて、負荷分散対象装置において該パケットに対して生成された応答パケットを該パケット中継装置が受信するまでの遅延時間、
または負荷分散対象装置への送信パケットレート、
または負荷分散対象装置への送信ビットレート、
または負荷分散対象装置へのセッション数、
または出力回線への送信パケットレート、
または出力回線への送信ビットレート、
または出力回線のセッション数であることを特徴とするパケット中継装置。
【請求項３】
請求項２記載のパケット中継装置であって、
前記制御部は、遅延時間測定用パケットを生成し、
前記遅延時間測定用パケットを負荷分散対象装置に送信してから、該遅延時間測定用パケットに対する応答パケットをパケット中継装置が受信するまでの時間を測定し、
前記負荷特定部は、前記測定された時間を遅延時間とすることを特徴とするパケット中継装置。
【請求項４】
請求項１記載のパケット中継装置であって、
前記負荷特定部は、パケットの出力回線または宛先の負荷分散対象装置毎の負荷である、遅延時間または送信パケットレートまたは送信ビットレートまたはセッション数を、各々負荷の小さい順に並べて記載した負荷順位表を備え、
パケットの優先度の高い順に、負荷順位表の高い順位に登録されたパケットの出力回線または宛先の負荷分散対象装置から送信することを特徴とするパケット中継装置。
【請求項５】
請求項１記載のセッション毎に優先度を判定するパケット中継装置であって、
接続要求パケットの宛先である出力回線または負荷分散対象装置を、接続要求パケットの後続パケットの宛先とすることを特徴とするパケット中継装置。
【請求項６】
請求項５記載のパケット中継装置であって、
セッションを識別する条件が、
IPプロトコルの送信元IPアドレスと宛先IPアドレスとTCPプロトコルの送信元ポート番号と宛先ポート番号とSYNフラグとFINフラグのいずれかで構成されることを特徴とするパケット中継装置。
【請求項７】
請求項１記載のパケット中継装置であって、
フロー毎またはセッション毎の通信持続時間、またはバースト性または帯域等の指標に基づいて優先度を変更することを特徴とするパケット中継装置。
【請求項８】
請求項１ないし７いずれかに記載のパケット中継装置であって、
さらに、所定の処理を実行する複数のモジュールを備え、
前記宛先検索部は、前記受信したパケットについて前記経路検索部あるいは前記負荷分散判定部により特定された宛先に従って前記モジュールのいずれかにパケットを出力し、前記モジュールのいずれかから入力されたパケットについて出力回線を介してネットワークに送信する、ことを特徴とするパケット中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置に関し、特に、パケットの優先度に基づいたパケット処理装置に関する。
【背景技術】
【０００２】
近年注目を集めているクラウドコンピューティングでは、ネットワーク上に存在する多数のサーバ群を、多数のユーザで共有することにより、低コストなサービス処理を実現する。多数のユーザによるサービス処理が集中することに伴う過大な負荷を分散するため、各サーバに対しユーザ毎のサービス要求を振り分けることでサーバにかかるパケット処理の負荷を分散するサーバロードバランス（特許文献１）や、複数の通信経路に対しルータまたはスイッチからの送信パケットを振り分けることで通信負荷を分散するリンクアグリゲーション、マルチパス等の負荷分散技術が知られている。
【０００３】
その一方、クラウドコンピューティングでは、ローカルのサーバやPCでサービスを処理することに代わり、ネットワークを介して接続され物理的に遠く離れたデータセンタにおいてサービスを処理する形態となる。そのため、サービス要求の集中によるレスポンス性能の低下や、ネットワークにおける輻輳遅延によるレスポンス性能低下に対する対応が必要である。
【０００４】
レスポンス性能の低下防止が強く求められるネットワークの一例として、証券取引所でのアルゴリズム取引に適用される基幹網等があげられる。これら証券取引所の基幹ネットワークにおけるレスポンスの制約時間には、既にミリ秒オーダーの遅延時間が求められている。証券取引では取引のスピードが証券会社の収益を大きく左右するため、低遅延レスポンスに対するニーズは高まっており、その要求はマイクロ秒オーダー、ナノ秒オーダーにまで突入することが予想される。また、証券取引において、通常の売買注文や情報伝達に対して、約定取り消しに関する注文などは取引上の優先度が高い、といったように注文の種別に応じた優先度の違いが存在しうる。特に、優先度の高い注文に対して、低遅延レスポンスであることを保証することは、証券取引を行う顧客に対する安心感の高いサービスを提供することであると考えられる。
【０００５】
以上により、クラウドコンピューティングをはじめとした遠隔コンピューティングにおいては、多数のユーザによって共有されるサービスサーバのレスポンス性能低下の防止、すなわち、低遅延を実現する負荷分散技術が重要になると考えられる。
【０００６】
低遅延を実現する従来技術として、特許文献２があげられる。特許文献２では、優先方路のトラヒックが閾値を超えた場合に、優先度の低い順に別の方路へ転送することに付いての記載がある。例えば、パケットＰ１、Ｐ２、Ｐ３の優先度ｐ１、ｐ２、ｐ３の大きさが、ｐ１＞ｐ２＞ｐ３であり、優先方路にＰ１、Ｐ２、Ｐ３が収容されている場合、Ｐ１、Ｐ２、Ｐ３のトラヒック合計が優先方路における閾値を越えた場合、Ｐ３を別の方路に転送する仕組みについて開示されている。特許文献２には、トラヒック監視部を設け、逆に閾値を下回った場合に、他の方路に収容されているパケットを優先方路に転送する仕組みもまた開示されている。
【０００７】
さらに、特許文献３では、通信の優先度を高・低の二種類に分類して、それぞれの優先度の通信が使用する方路が重複しないように予めテーブルを作成する。そうすることで、低優先の通信が、高優先の通信を阻害することが無いようにする方式が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２４５８４１
【特許文献２】特開平９−３２１７９５
【特許文献３】特開平８−１９１３２８
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献２では、しかし、先にパケットＰ２、Ｐ３が優先方路に収容されており、後に到着したＰ１がサービス要求した場合において、Ｐ１を収容したとすると優先方路の閾値を越える場合、Ｐ１を収容することはできない。遠隔コンピューティングにおけるサーバのロードバランスに適用しようとした場合、セッション途中で別のサーバに転送することは容易ではない。
【００１０】
特許文献３では、これは優先度を二分類にした場合の技術にすぎない。また、特許文献２と同様に方路の負荷分散についての技術であり、サーバに対する負荷分散のようにセッション途中での乗り換え処理が発生する場合についての言及はなされていない。
【００１１】
複数のサービス要求を、複数のサーバ間に分散して処理させるシステムにおいて、優先度の低いサービス要求の処理に影響をうけて、優先度が高いサービス要求の処理が遅延する。
【課題を解決するための手段】
【００１２】
本発明の態様は、上述の課題の少なくとも一を解決するためになされたものであり、第一の態様であるパケット中継装置は、複数の入力回線と出力回線を備え、入力回線から受信したパケットの入力物理回線番号、または入力論理回線番号、またはパケットヘッダ情報のうち少なくとも一つ以上の情報により識別されるパケットの集合から構成されるフロー毎、またはフロー毎の通信が開始されてから終了するまでのパケットの集合から構成されるセッション毎に優先度を判定し、パケットを送信する複数の出力回線毎または複数の宛先の負荷分散対象装置毎の負荷を測定し、パケットの宛先を、優先度の高い順に、負荷の低い順の出力回線または負荷分散対象装置と判定する、態様である。
【００１３】
第一の態様によれば、遅延時間が最小となる方路の帯域資源は、優先度の高いパケットP1のために割り当てられる。従って、優先度の高いP1の遅延時間は、優先度の低いP2、P3がもたらす遅延時間の増大の影響を受け難くなる。またP2、P3は各々、常に遅延時間が二番目、三番目の方路に送出されるので、P1、P2、P3の間の優先関係も遅延時間の大小関係として満たされる。
【００１４】
他の態様は、実施形態でさらに述べる。
【発明の効果】
【００１５】
本発明の態様によると、パケット処理装置の負荷に応じたパケット転送先の分散をおこなうことができる。
【図面の簡単な説明】
【００１６】
【図１】パケット中継装置1を含むシステム構成
【図２】パケット中継装置内で、宛先回線・Next Hop IPアドレス判定前のパケットヘッダ情報
【図３】パケット中継装置内で、宛先回線・Next Hop IPアドレス判定後のパケットヘッダ情報
【図４】本発明を備えるパケット中継装置1の回線対応部10
【図５】本発明を備えるパケット中継装置1の負荷分散判定部132で遅延時間を負荷とする構成
【図６】負荷分散対象フロー判定テーブル1320の構成
【図７】優先度判定テーブル1321の構成
【図８】遅延時間テーブル1322-Aの構成
【図９】負荷順位テーブル1322-Bの構成
【図１０】本発明を備えるパケット中継装置1の負荷分散判定部132でセッション数を負荷とする構成
【図１１】セッション数テーブル1323-Aの構成
【図１２】本発明を備えるパケット中継装置1の負荷分散判定部132でパケットレートを負荷とする構成
【図１３】パケットレートテーブル1324-Aの構成
【図１４】本発明を備えるパケット中継装置1の回線対応部10にビット長判定機能を備えた構成
【図１５】パケット中継装置内で、宛先回線・Next Hop IPアドレス判定前かつビット長判定後のパケットヘッダ情報
【図１６】本発明を備えるパケット中継装置1の負荷分散判定部132でビットレートを負荷とする構成
【図１７】ビットレートテーブル1325-Aの構成
【図１８】セッション毎に優先度を判定する場合の優先度判定テーブル1321-Aの構成
【図１９】フロー毎に優先度を判定する場合の、本発明の負荷分散に関するユーザインタフェースの設定例
【図２０】フロー毎に優先度を判定する場合の、本発明の負荷分散に関するユーザインタフェースの設定例
【図２１】パケット中継装置が負荷分散対象装置を直収する場合の構成図
【図２２】パケット中継装置が輻輳していないネットワークを経由して負荷分散対象装置と接続する場合の構成図
【図２３】パケット中継装置が輻輳しているネットワークを経由して負荷分散対象装置と接続する場合の構成図
【図２４】パケット中継装置の負荷分散判定部の構成
【図２５】通信持続時間測定テーブルの構成
【図２６】SYNパケットに関する処理
【図２７】ＳＹＮパケットに後続するパケットに関する処理
【発明を実施するための形態】
【００１７】
以下に、本発明を実施するための形態を説明する。
【実施例１】
【００１８】
図１は、本実施例のネットワークシステム０００１の構成を示す。ネットワークシステム０００１は、パケット中継装置１、サーバ２−１、２−２、２−３、管理端末を有する。パケット中継装置１は、ネットワーク２を介して、計算機や情報処理端末、例えばサーバ２−１、２−２、２−３や、クライアント計算機に接続される通信装置の一例である。例えば、クライアント計算機からのパケットをパケット中継装置が、サーバ２−１、２−２、２−３のいずれかに転送し、サーバからの応答パケットを、パケット中継装置１が、クライアント計算機に送る。管理端末３は、パケット中継装置1に接続し、管理するための、パケット中継装置1内の制御部40を介して回線対応部10、拡張処理部20、スイッチ30を制御し、設定やその変更を行う。
【００１９】
パケット中継装置１は、複数の回線対応部１０（以下、回線対応部１０は、特に断りのない場合は、いずれかの回線対応部である）、スイッチ３０、制御部４０、拡張処理部２０を有し、それぞれ、ＢＵＳで接続されている。
【００２０】
パケット中継装置1は、回線対応部10-4に接続される入力回線からパケットを受信する。  回線対応部１０は、経路検索または負荷分散判定して宛先を特定し、宛先である他のパケット中継装置１や自身の拡張処理部２０にパケット転送する。
【００２１】
スイッチ30は、回線対応部10-1〜10-4で判定された結果に従って、パケットを所定の回線対応部10-1〜10-8のいずれかに送信する。
【００２２】
図２は、図１のパケット中継装置が、送受信するパケットヘッダ情報の一例である。なお、パケットヘッダ情報には図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パケットであるものとして説明するが、他のプロトコルのパケットであっても構わない。
【００２３】
図１に戻り、システム全体の流れの説明を続ける。サーバ2-1〜2-3が、ネットワーク２からパケットを受信すると、所定のアプリケーション処理を実行し、実行結果に基づく応答パケットをパケット中継装置1の回線対応部10-1〜10-3に対し送信する
パケットが、スイッチ３０により回線対応部10-1〜10-3のいずれかに送信された場合、回線対応部10-1〜10-3は、ネットワーク２にパケットを送信する。回線対応部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でメディア検索がなされた後、回線対応部に接続する出力回線から応答パケットは送信される。
【００２４】
回線対応部10-1で経路検索または負荷分散判定を実施して、出力回線番号、次に転送すべきルータ等のパケット中継装置、またはサーバやパケット中継装置1内の拡張処理部20等のネットワークノードのIPアドレスを示すNext Hop IPアドレスを判定し、スイッチ30に送信する。
【００２５】
図３は、回線対応部１０−１からスイッチに出力されるパケットヘッダ情報5001の一例である。図３のパケットヘッダ情報５００１は、図２のパケットヘッダ情報に対し、回線対応部10-1で判定された出力回線番号511、Next Hop IPアドレス512を内部ヘッダ51として、回線対応部10-1にて付加される構成である。
【００２６】
スイッチ30は、図３のようなパケットヘッダ情報を有するパケットに含まれる回線対応部10-1〜10-4で判定された出力回線番号511に従って、パケットを所定の回線対応部10-1〜10-8のいずれかに送信する。
【００２７】
パケットが回線対応部10-1〜10-3のいずれかにスイッチから送信された場合、回線対応部10-1〜10-3ではNext Hop IPアドレス512から宛先MACアドレス520を判定するメディア検索を実施して、新たに判定されたMACアドレス520に書き換えた上で出力回線からパケットをネットワーク２に送信する。回線対応部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でメディア検索がなされた後、回線対応部に接続する出力回線から応答パケットは送信される。
【００２９】
一方、パケットが回線対応部10-5〜10-8のいずれかにスイッチ３０から送信された場合、回線対応部10-5〜10-8ではNext Hop IPアドレス512から宛先MACアドレス520を判定するメディア検索を実施して、パケットを各々拡張処理部20-1〜20-4に送信する。
【００３０】
拡張処理部20-1〜20-4ではパケットに関する暗号化処理やアプリケーション処理、NAT(Network Address Translation)/NAPT(Network Address Port Translation)等の拡張処理を実施して、出力回線番号511、宛先MACアドレス520、宛先IPアドレス534を記載した応答パケットを回線対応部10-5〜10-8に送信する。
【００３１】
応答パケットが回線対応部10-5〜10-8に到着すると、回線対応部１０−５〜１０−９は、経路検索を実施し、出力回線番号511、Next Hop IPアドレス512を判定し、スイッチ30に送信する。
【００３２】
スイッチ30は、回線対応部10-1〜10-4で判定された出力回線番号511に従って、応答パケットを所定の回線対応部10-1〜10-4のいずれかに送信する。そして、回線対応部10-1〜10-4は、メディア検索を行い、回線対応部１０に接続する出力回線から応答パケットをネットワーク２に送信する。
【００３３】
図４は、回線対応部10の構成を示す。回線対応部１０は、パケット検索部１３、受信パケットバッファ１７、レイヤ１受信処理部１１、メディア検索部１４、送信パケットバッファ、１５、レイヤ１送信処理部１６とを有する。まず、パケット受信時の処理では、ネットワーク2からパケット中継装置1に入力したパケットは、まず回線対応部10に入力する。
【００３４】
レイヤ1受信処理部11は、入力されたパケットに対して、光−電気変換処理等の物理レイヤ処理を行う。電気信号となったパケットは、受信パケットバッファ12にて保持される。
【００３５】
パケット検索部１３は、受信パケットバッファ１２から順次パケットを受け、経路検索部131にて宛先IPアドレス534から出力回線番号511とNext Hop IPアドレス512を判定するのと並行して、負荷分散判定部132で、当該パケットが、負荷分散対象パケットであるかを判定する。当該パケットが負荷分散対象パケットであると判定されれば、負荷分散による宛先と判定された出力回線番号511とNext Hop IPアドレス512を判定する。検索結果統合部133では、負荷分散判定部１３２での判定結果、負荷分散の対象でないパケットである場合には経路検索部131の判定結果の出力回線番号511とNext Hop IPアドレス512を、負荷分散の対象のパケットである場合には、負荷分散判定部132の判定結果の出力回線番号511とNext Hop IPアドレス512をパケットヘッダ情報5001の内部ヘッダ51に書き込み、パケットをスイッチ30に送信する。一方、パケット送信時の処理では、回線対応部10は、スイッチ30からパケットの入力を受け、メディア検索部14に送信される。
【００３６】
メディア検索部14は、パケットヘッダ情報5001の内部ヘッダ51のNext Hop IPアドレス512に対応する宛先MACアドレス520を判定し、新たに判定されたMACアドレス520に書き換えた上で送信パケットバッファ15にバッファリングする。送信パケットバッファ15にバッファリングされたパケットは、順次、レイヤ1送信処理部16に送信され、電気−光変換等の物理レイヤ処理がなされ、出力回線からパケットは送信される。
【００３７】
図５は、負荷分散判定部132の構成を示す。負荷分散判定部１３２は、優先度判定テーブル１３２１及び負荷分散対象フロー判定テーブル１３２０を有する。
【００３８】
図６は、負荷分散対象フロー判定テーブル1320の構成の一例を示す。負荷分散対象フロー判定テーブル1320は、入力回線番号、宛先MACアドレス、送信元MACアドレス、イーサタイプ、IPバージョン、TOS、L4プロトコル、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号等のフローを判定する条件の組み合わせとして設定される負荷分散対象フローエントリ1320-1〜1320-mから構成される。負荷分散対象フロー判定テーブル1320の設定は、制御部40を通じてなされる。負荷分散対象フロー判定テーブル1320は、物理的にはCAM（Contents Addressable Memory）またはRAM（Random Access Memory）で構成することができる。
【００３９】
図５に戻り、負荷分散判定部１３２は、受信パケットバッファからパケットを受け取ると、負荷分散対象フロー判定テーブル１３２０を参照し、パケットのヘッダ情報に一致するフローがあるかを検索する。
【００４０】
負荷分散対象フロー判定テーブル1320をCAMで構成する場合、負荷分散判定部１３２は、パケットヘッダ情報5000のうちフローの決定に必要な入力回線番号、宛先MACアドレス、送信元MACアドレス、イーサタイプ、IPバージョン、TOS、L4プロトコル、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号をCAMに入力すると、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mのアドレスをCAMから出力する。
【００４１】
RAMの場合の負荷分散対象フローの判定は、RAMから負荷分散対象フローエントリ1320-1〜1320-mを逐次読み出し、読み出された負荷分散対象フローエントリの条件と、パケットヘッダ情報5000のうちフローの決定に必要な入力回線番号、宛先MACアドレス、送信元MACアドレス、イーサタイプ、IPバージョン、TOS、L4プロトコル、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号の値を比較することによって、いずれの負荷分散対象フローエントリ1320-1〜1320-mが一致するかを判定することにより、負荷分散対象フローエントリ1320-mのアドレスが得られることによってなされる。
【００４２】
図７は、優先度判定テーブル１３２１の構成を示す。優先度判定テーブル1321は、例えばRAMで構成することができ、負荷分散対象フローエントリ1320-mのアドレスそれぞれに対応した各負荷分散対象フローエントリ1320-1〜1320-mの優先度が、各々優先度判定テーブルのエントリ1321-1〜1321-ｍに設定される。この設定は、制御部40を通じてなされる。なお、この優先度の種類はｎ個あり、負荷分散の対象となる出力回線または負荷分散対象装置の数に対応する。また、優先度1のパケットが最も優先的に、つまり遅延時間をはじめとする負荷の小さい出力回線または負荷分散対象装置に送信すべきパケットであり、優先度2のパケットがその次に優先的に、つまり遅延時間をはじめとする負荷の小さい出力回線または負荷分散対象装置に送信すべきパケットであり、以下の優先度についても順次同様であり、優先度nのパケットが最も非優先的に、つまり遅延時間をはじめとする負荷の大きい出力回線または負荷分散対象装置に送信すべきパケットである。
【００４３】
図５に戻り、負荷分散判定部１３２は、負荷分散対象フローエントリ1320-mのアドレスを取得し、取得した負荷分散対象フローエントリ1320-mのアドレスに基づいて図7に示す優先度判定テーブル1321を参照して、パケットの優先度を判定する。
【００４４】
図９は、負荷順位テーブル1322-Bの構成を示す。負荷順位テーブル1322-Bを構成するエントリ1322B-1〜1322B-nに対し、そのアドレスの小さい順に、遅延時間の小さい負荷分散対象装置に対する回線番号とNext Hop IPアドレスが設定されることとなる。なお、パケット中継装置1の運用の初期状態で遅延時間を未測定の場合には、回線番号の順で負荷順位テーブル1322-Bに回線番号とNext Hop IPアドレスを登録しておけばよい。
【００４５】
図５に戻り、負荷分散判定部１３２は、優先度判定テーブル1321に基づいて優先度が判定されたパケットに対し、この優先度の値に基づいて求まるアドレスをリードアドレスとして負荷順位テーブル1322-Bを読み出し、このパケットに対して負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスを特定する。負荷分散判定部１３２は、特定した回線番号とＮｅｘｔ  Hop ＩＰアドレスを、検索結果統合部１３３に出力する。
【００４６】
図４に戻り、検索結果統合部133は、経路検索部131の判定結果と負荷分散判定部の判定結果とに基づき、パケットの宛先を特定する。負荷分散判定部132の負荷分散対象フロー判定テーブル1320に登録された負荷分散対象フローエントリに一致するフローがなかった場合には、検索結果統合部１３３は、経路検索部131で判定された回線番号とNext Hop IPアドレスをパケットヘッダ情報5001の出力回線番号511とNext Hop IPアドレス512として、スイッチ30に送信する。
【００４７】
一方、負荷分散判定部132の負荷分散対象フロー判定テーブル1320に登録された負荷分散対象フローエントリに一致するフローがあった場合には、検索結果統合部１３３は、負荷分散判定部132で判定された回線番号とNext Hop IPアドレスをパケットヘッダ情報5001の出力回線番号511とNext Hop IPアドレス512として、スイッチ30に送信する。この出力回線番号511とNext Hop IPアドレス512は、負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスである。この宛先にパケットが送信されることにより、高優先のパケットは遅延時間の小さい負荷分散対象装置に送信され、低優先のパケットは遅延時間の大きい負荷分散対象装置に送信されることとなる。
【００４８】
以下、パケット中継装置と負荷分散対象装置との接続関係に応じた三つの構成例での遅延時間に基づいた負荷分散について説明する。
【００４９】
(i)図21のように、パケット中継装置が負荷分散対象装置を直収する場合
(ii)図22のように、パケット中継装置が負荷分散対象装置を直収せず、ネットワークを経由して負荷分散対象装置と接続する場合、かつネットワークにおいて輻輳が生じていない場合
(iii) 図23のように、パケット中継装置が負荷分散対象装置を直収せず、ネットワークを経由して負荷分散対象装置と接続する場合、かつネットワークにおいて輻輳が生じている場合
(i)の場合には、装置の処理遅延が遅延時間となる。（ii）の場合も、パケット中継装置と負荷分散対象装置の物理的距離が回線遅延を無視できる程度であれば、装置の処理遅延が遅延時間の支配項となる。従って、(i)(ii)の場合には、負荷分散対象装置毎の遅延時間に基づいて負荷分散することとなる。(iii)の場合には、回線遅延が遅延時間の支配項となるので、出力回線毎の遅延時間に基づいて負荷分散することとなる
まず、(i)(ii)の場合の遅延時間順位判定部1322について説明する。遅延時間順位判定部1322には、負荷分散対象装置毎にパケット中継装置1から遅延時間測定パケットを送信してから、負荷分散対象装置から応答パケットがパケット中継装置1に返って来るまでの遅延時間が設定される。この処理は、次のようになされる。
【００５０】
例えば制御部40は、送信パケットバッファ15に対し定期的にあるいは所定のタイミングで、出力回線または負荷分散対象装置毎にpingパケット（ICMPのecho requestパケット（Type=8）)を送信する。パケット検索部１３は、送信するpingパケットの宛先を判定し、その宛先である負荷分散対象装置に、スイッチ30、送信側の回線対応部10を介して送信する。これに対する応答パケットを、負荷分散対象装置からパケット中継装置１が受信した場合、その応答パケットは、回線対応部10に入力され、レイヤ1受信処理部を経由して受信パケットバッファ12に格納される。
【００５１】
ping応答パケット判定部１７は、受信パケットバッファ12の前段に設けられ、ICMPのecho reply（Type=0）のパケットをpingパケットの応答パケットと判定する。ping応答パケット判定部17にてパケットがpingパケットの応答パケットであることが検出されると、このパケットはping応答パケット判定部17から制御部40に送信され、管理端末3に送信される。管理端末3に搭載されたソフトウェアにてpingパケットの応答パケットを受信したことが認識されると、このパケットを処理した出力回線または負荷分散対象装置の情報と、pingパケットを送出してから応答パケットが返ってくるまでの遅延時間の情報が得られるので、この情報を制御部40経由で負荷分散判定部132に送信する。
【００５２】
図８は、負荷分散判定部132の遅延時間テーブル1322-Aの構成を示す。遅延時間テーブル1322-Aは、負荷分散対象装置毎の遅延時間を、遅延時間テーブル1322-Aの所定のアドレスのエントリに設定する構成である。所定のアドレスは、負荷分散対象装置毎に対応づけられている。負荷分散判定部１３２は、pingパケットに対する応答パケットの送信元である負荷分散対象装置の情報と、応答パケットから得られた遅延時間の情報を受信し、負荷分散対象装置に対応づけられる遅延時間エントリ1322A-1〜1322A-nに遅延時間を書き込む。これを各負荷分散対象装置に対し順次実行していくことにより、複数の負荷分散対象装置に対応する遅延時間エントリ1322A-1〜1322A-nが設定される。
【００５３】
制御部４０は、所定のタイミングあるいは定期的に、負荷分散対象装置に対する遅延時間を1322A-1〜1322A-nから読み出し、遅延時間を比較する。比較した結果、特定される負荷分散対象装置に対する遅延時間の大小関係に従って、遅延時間の小さい順に、負荷分散対象装置に対応する回線番号とNext Hop IPアドレスとを負荷順位テーブル1322-Bに順次書き込んでいく。
【００５４】
(iii)の場合には、負荷分散対象装置を出力回線と読み替えれば良い。
なお、負荷順位テーブル1322-Bに登録する回線番号とNext Hop IPアドレスを、リンクアグリゲーションに属する複数の物理回線または論理回線（VLANなど）を束ねた仮想リンクの回線番号とNext Hop IPアドレスと置き換え、リンクアグリゲーションに属する回線番号とNext Hop IPアドレスに関して、遅延時間が小さい出力回線に優先度高いパケットに割り当て、負荷分散を行う。
【００５５】
また、負荷順位テーブル1322-Bに登録する回線番号とNext Hop IPアドレスを、マルチパスに属する複数の物理回線または論理回線（VLANなど）の回線番号とNext Hop IPアドレスと置き換えることにより、マルチパスに属する回線番号とNext Hop IPアドレスを優先度に対応付け、負荷分散を行ってもよい。
【００５６】
図１９は、フロー毎またはセッション毎の優先度を設定する設定例を、図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（最低優先）とする設定である。
【００５７】
以上で、遅延時間の変動に基づいて、パケットの転送先であるサーバの優先順位を変更するパケット中継装置について説明した。  次に、変形例１として、遅延時間ではなく、負荷分散対象装置であるサーバが処理するセッション数を監視し、動的にパケットの処理を行うサーバの優先度を変更する。以下に説明する変形例２におけるパケット中継装置は、実施例１と異なる部分について主に説明し、それ以外については、実施例１の説明に従う。
【００５８】
図10は、変形例１における負荷分散判定部１３２の構成を示す。実施例１の図５の遅延時間順位判定部1322の代わりに、図１０の負荷分散判定部１３２はセッション数順位判定部1323を有する。
【００５９】
図１１は、セッション数順位判定部1323が有するセッション数テーブル1323-Aの構成を示す。セッション数テーブル1323-Aは、出力回線または負荷分散対象装置毎に、出力回線に対応する負荷分散対象装置や、負荷分散対象装置の処理中のセッション数が設定される構成となっている。
【００６０】
負荷分散対象フローの判定は、実施例1と同様の手順にて、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mが定まる。負荷分散対象フローエントリ1320-mに対応する優先度判定テーブル1321のエントリ1321-ｍを読み出すことにより、このパケットの優先度nが判定されるので、この優先度に対応する負荷順位テーブル1322-Bのエントリ1322B-nを読み出せば、送信すべき負荷分散対象装置の出力回線番号とNext Hop IPアドレスが定まる。
【００６１】
変形例１では、負荷順位テーブル1322-Bは、出力回線または負荷分散対象装置のセッション数の少ない順に構成される。この負荷順位テーブル1322-Bの生成方法について説明する。入力されるパケットのうち、負荷分散対象フローエントリ1320-mに対応するパケットヘッダ情報5000が検出された場合、当該パケットのＳＹＮフラグを参照する。
当該パケットのSYNフラグ542が’1’であった場合には、セッションの接続が開始されるので、該当するパケットが送信される負荷分散対象装置の出力回線番号とNext Hop IPアドレスが定まった後に、負荷分散判定部１３２は、この出力回線または負荷分散対象装置に対応するセッション数テーブル1323-Aのエントリ1323A-nのセッション数のフィールド値に1を加算する。
【００６２】
次に、ＳＹＮフラグ542が’０’であった場合は、負荷分散判定部１３２は、当該パケットのFINフラグ543を参照する。参照結果、当該パケットのFINフラグ543が’1’であった場合には、セッションの接続が終了されるので、負荷分散判定部１３２は、該当するパケットが送信される負荷分散対象装置の出力回線番号とNext Hop IPアドレスを特定し、この負荷分散対象装置に対応するセッション数テーブル1323-Aのエントリ1323A-nのセッション数のフィールド値から1を減算する。これにより、セッション数テーブル1323-Aのエントリ1323A-nのセッション数のフィールドには、負荷分散対象装置毎に、処理中のセッション数が設定されることとなる。
【００６３】
制御部４０は、全ての負荷分散対象装置に対するセッション数を1323A-1〜1323A-nから読み出し、負荷分散対象装置に対するセッション数の大小関係を判定する。制御部４０は、その判定結果に従って、セッション数の小さい順に、負荷分散対象装置に対する回線番号とNext Hop IPアドレスを負荷順位テーブル1322-Bに並び変えて書き込む。すると、負荷順位テーブル1322-Bには、負荷順位テーブル1322-Bのアドレスの小さい順に、セッション数の小さい負荷分散対象装置に対する回線番号とNext Hop IPアドレスが設定されることとなる。
【００６４】
なお、パケット中継装置1の運用の初期状態でセッション数を未測定の場合には、回線番号の順で負荷順位テーブル1322-Bに回線番号とNext Hop IPアドレスを登録する。負荷分散判定部１３２は、優先度判定テーブル1321に基づいて優先度が判定されたパケットに対し、この優先度の値に基づいて求まるアドレスをリードアドレスとして負荷順位テーブル1322-Bを読み出すと、このパケットに対して本発明の負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスを判定する。
【００６５】
以上が、変形例１の説明である。
【００６６】
次に、実施例１の変形例２を説明する。変形例２のパケット中継装置は、負荷分散対象装置毎のパケットレートを監視することにより、パケットの転送先の優先順位を動的に変更する。
【００６７】
以下、変形例２の説明として、主に、実施例1と異なる部分について説明する。図12は、変形例２における負荷分散判定部１３２の構成である。変形例２の負荷分散判定部132は、遅延時間順位判定部1322の代わりにパケットレート順位判定部1324を有する。また、変形例２の負荷分散判定部１３２は、遅延時間テーブル1322-Aの代わりにパケットレートテーブル１３２４−Ａを有する。
【００６８】
図13は、パケットレートテーブル1324-Aの構成を示す。パケットレートテーブル1324-Aには、負荷分散対象装置毎のパケットレートが設定される構成となっている。
【００６９】
負荷分散対象フローの判定は、実施例1と同様の手順にて、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mが定まる。負荷分散対象フローエントリ1320-mに対応する優先度判定テーブル1321のエントリ1321-ｍを読み出すことにより、このパケットの優先度nが判定されるので、この優先度に対応する負荷順位テーブル1322-Bのエントリ1322B-nを読み出せば、送信すべき負荷分散対象装置の出力回線番号とNext Hop IPアドレスが定まる。
【００７０】
負荷順位テーブル1322-Bの設定は、負荷分散対象装置のパケットレートの少ない順となっている。この負荷順位テーブル1322-Bの生成方法について説明する。入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mが定まった際に、該当するパケットの負荷分散対象装置の出力回線番号とNext Hop IPアドレスが定まった後に、この負荷分散対象装置に対応するパケットレートテーブル1324-Aのエントリ1324A-nのパケットレートのフィールド値に1を加算する。パケット入力の都度この処理を繰り返し、一定周期で全ての負荷分散対象装置のパケットレートのフィールド値を0に戻すことを繰り返すことにより、一定周期の間のパケットレートに比例する値が、パケットレートテーブル1324-Aのエントリ1324A-nのパケットレートのフィールドに設定されることとなる。
【００７１】
定期的にあるいは所定のタイミングで、制御部４０は、全ての負荷分散対象装置に対するパケットレートを1324A-1〜1324A-nから読み出し、負荷分散対象装置に対するパケットレートの大小関係を判定する。判定結果、パケットレートの大小関係に従って、制御部４０は、パケットレートの小さい順に、負荷分散対象装置に対する回線番号とNext Hop IPアドレスを負荷順位テーブル1322-Bに書き込む。すると、負荷順位テーブル1322-Bには、負荷順位テーブル1322-Bのアドレスの小さい順に、パケットレートの小さい負荷分散対象装置に対する回線番号とNext Hop IPアドレスが設定されることとなる。
【００７２】
なお、パケット中継装置1の運用の初期状態でパケットレートを未測定の場合には、回線番号の順で負荷順位テーブル1322-Bに回線番号とNext Hop IPアドレスを登録しておけばよい。優先度判定テーブル1321に基づいて優先度が判定されたパケットに対し、この優先度の値に基づいて求まるアドレスをリードアドレスとして負荷順位テーブル1322-Bを読み出すと、このパケットに対して本発明の負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスが判定される。以上が変形例２の説明である。
【００７３】
次に、実施例１の変形例３について説明する。変形例３は、出力回線毎のビットレートを監視し、負荷分散対象装置のいずれかにパケットを転送するパケット中継装置である。以下、変形例４の説明は、主に、実施例1と異なる部分について説明する。
【００７４】
図14は、変形例３におけるパケット中継装置１の構成である。実施例１の図１と異なり、ビット長判定部18が追加される構成である。ビット長判定部１８は、受信パケットバッファ12から読み尾出したパケットのビット長を測定して、パケットヘッダ情報５００２に書き込む。
【００７５】
図１５は、変形例３におけるパケットヘッダ情報5002の内部ヘッダ部51の構成である。図１５のパケットヘッダ情報５００２は、ビット長フィールド513を有する。。
【００７６】
図16は、変形例３における負荷分散判定部132の構成である。負荷分散判定部１３２は、変形例３では遅延時間順位判定部1322の代わりにビットレート順位判定部1325を有する。
【００７７】
図１７は、変形例３のビットレートテーブル1325-Aの構成を示す。実施例１の遅延時間テーブル1322-Aの代わりに、変形例３における負荷分散判定部１３２が有するビットレートテーブル1325-Aには、出力回線毎のビットレートが設定される構成となっている。
【００７８】
負荷分散対象フローの判定は、実施例1と同様の手順にて、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mが定まる。負荷分散対象フローエントリ1320-mに対応する優先度判定テーブル1321のエントリ1321-ｍを読み出すことにより、このパケットの優先度nが判定されるので、この優先度に対応する負荷順位テーブル1322-Bのエントリ1322B-nを読み出せば、送信すべき出力回線の出力回線番号とNext Hop IPアドレスが定まる。
【００７９】
変形例３における負荷順位テーブル1322-Bの設定は、出力回線のビットレートの少ない順となっている。変形例３における負荷順位テーブル1322-Bの生成方法について説明する。変形例３における負荷分散判定部１３２は、入力されたパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mについて、該当するパケットの出力回線の出力回線番号とNext Hop IPアドレスを特定し、この出力回線に対応するビットレートテーブル1325-Aのエントリ1325A-nのビットレートのフィールド値にビット長513の値を加算する。
【００８０】
負荷分散判定部１３２は、パケット入力の都度この処理を繰り返し、所定の周期で全ての出力回線のビットレートのフィールド値を0に戻すことを繰り返すことにより、一定周期の間のビットレートに比例する値が、ビットレートテーブル1325-Aのエントリ1325A-nのビットレートのフィールドに設定されることとなる。
【００８１】
制御部４０は、所定のタイミングであるいは定期的に、ビットレートテーブルを参照し、出力回線に対するビットレートを1325A-1〜1325A-nから読み出すと、出力回線に対するビットレートの大小関係を判定する。判定結果、制御部４０は、この大小関係に従って、ビットレートの小さい順に、出力回線に対する回線番号とNext Hop IPアドレスを書き込み、負荷順位テーブル1322-Bを更新する。そして、負荷分散判定部１３２は、負荷順位テーブル1322-Bには、負荷順位テーブル1322-Bのアドレスの小さい順に、ビットレートの小さい出力回線に対する回線番号とNext Hop IPアドレスを設定することとなる。
【００８２】
なお、変形例３におけるパケット中継装置1の運用の初期状態でビットレートを未測定の場合には、回線番号の順で負荷順位テーブル1322-Bに回線番号とNext Hop IPアドレスを登録しておけばよい。優先度判定テーブル1321に基づいて優先度が判定されたパケットに対し、この優先度の値に基づいて求まるアドレスをリードアドレスとして負荷順位テーブル1322-Bを読み出すと、このパケットに対して本発明の負荷分散を実施する際に送信すべき回線番号とNext Hop IPアドレスが判定される。
【実施例２】
【００８３】
実施例２では、２フロー以上の負荷分散対象フローエントリが、同一の優先度に対応づけられる設定がされている場合に、優先度を動的に変更するパケット中継装置の例である。
【００８４】
まず、m個のフローエントリからn個の優先度に割り当てるクラシファイ方式について説明する。nが4個であれば、例えばDiffservのAF PHBの4種の遅延クラスAF4*/AF3*/AF2*/AF1*(*は1〜3の廃棄クラスに対応する値)に対応するフローをそれぞれ4個の優先度、優先度1/優先度2/優先度3/優先度4の負荷分散対象装置に割り当てれば良い。
【００８５】
このような設定ベースの静的なクラシファイ方式に対し、nがより大きくなった場合のクラシファイ方式として、統計ベースの動的なクラシファイを加重する連携方式を考えることができる。ユーザフローの優先度を、動的に変更する処理について説明する。例えばn=8で、上述のように設定ベースの静的なクラシファイ方式により4種に分類されたフローを、更に2倍の8種に分類し、8個の負荷分散対象装置に割り当てる場合で説明する。設定ベースで4種に分類されたフローに対し、フローを構成するユーザ毎に通信開始後の通信持続時間（例えば、TCPのSYNパケットで通信開始されてからFINパケットで通信終了するまでの時間。あるいはUDPで一定のタイムアウト時間を超過して通信が途絶えるまでの時間）を測定する。
【００８６】
測定の結果、長時間通信を継続してサービスを占有しがちである特定ユーザフローを検出した場合、そのユーザフローに対する優先度を1段階落とすものとする。これにより、同一クラスのサービスを利用するユーザ間で、一般のユーザフローに対するサービス性能が特定ユーザフローにより低下させられることを防止することができる。同様に、統計項目としてバースト性や帯域等の別の指標を用いた統計ベースの動的なクラシファイ方式と連携させることもできる。以下、詳細に説明する。
【００８７】
図２４は、例として、TCPフローに関する通信持続時間に基づいて動的なクラシファイを実現する場合のパケット中継装置の負荷分散判定部1352の構成を示す。図２４では、図5に示した負荷分散判定部132の構成に対し、通信持続時間測定テーブル1326とタイマー1327が追加された構成となる。
【００８８】
図２５は、通信持続時間測定テーブル1326の構成を示す。通信持続時間測定テーブル1326の通信持続時間測定エントリ1326-kは、送信元IPアドレス（SIP)、宛先IPアドレス(DIP)、送信元ポート番号(SPORT)、宛先ポート番号(DPORT)を含む組み合わせで、フローを特定する条件と、SYNパケット到着時刻（TIM）とで構成される。通信持続時間測定テーブル1326はCAM/RAMいずれで構成してもよい。以下ではSIP、DIP、SPORT、DPORTというフローを特定する条件に関しては、登録フローを簡易に検出できるCAM1326-Aで、TIMに関してはRAM1326-Bで構成する場合について説明する。
【００８９】
図２４に戻り、通信持続時間を測定する処理の流れを以下に説明する。まず、負荷分散判定部132は、入力されたパケットヘッダ情報5000に基づいて、これに一致する負荷分散対象フロー判定テーブル1320の負荷分散対象フローエントリ1320-m1があるかを検索する。
【００９０】
このパケットがTCPのSYNパケットであった場合、該当する負荷分散対象フローエントリがあった場合には、負荷分散判定部１３５２は、パケットヘッダ情報5000のうちSIP、DIP、SPORT、DPORTの値を、通信持続時間測定テーブル1326-Aの通信持続時間測定エントリ1326-A-kに登録する。また、負荷分散判定部１３５２は、このときのタイマー1327の値もTIMとして通信持続時間測定エントリ1326-B-kに登録する。
【００９１】
TCPのFINパケットが到着した場合には、負荷分散判定部１３５２は、このパケットヘッダ情報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に登録されていた場合には、このフローは通信終了したので、負荷分散判定部１３５２は、通信持続時間測定エントリ1326-A-kを削除する。
【００９２】
制御部40は、所定のタイミングで通信持続時間測定テーブル1326-Bに登録された有効な通信持続時間測定エントリ1326-B-kそれぞれのTIMを巡回して読み出す。そのときのタイマー1327の値とTIMの差分から、制御部４０は、SYNパケットが到着してからの通信持続時間ΔTを得る。ΔTが、予め定められた通信持続時間の基準値TIM0を超過しているか判別し、制御部４０は、判別結果基準値ＴＩＭ０を超えていた場合は、当該の通信持続時間測定エントリ1326-B-kに対応して登録された通信持続時間測定エントリ1326-A-kのフローは、長時間通信を継続してサービスを占有しがちである特定ユーザフローであるとみなし、そのユーザフローに対する優先度を1段階低い値とする。
【００９３】
優先度を一段階低い値にするため、制御部４０は、当該の通信持続時間測定エントリ1326-A-kのフローに一致する条件を負荷分散対象フロー判定テーブル1320に負荷分散対象フローエントリ1320-m2として登録する。なおこのとき、負荷分散対象フローエントリ1320-m2に相当するフローのパケットは、負荷分散対象フローエントリ1320-m1には一致することのないように登録する必要がある。たとえば、CAMでは、複数のエントリに一致する場合にはより上位のCAMのアドレスのエントリが優先して一致と判定されるので、制御部４０は、負荷分散対象フローエントリ1320-m2は負荷分散対象フローエントリ1320-m1よりも上位のCAMのアドレスに登録する。
【００９４】
また、制御部４０は、負荷分散対象フローエントリ1320-m2に対応して読み出すべき優先度判定テーブル1321のエントリ1321-ｍ2には、負荷分散対象フローエントリ1320-m1に対応して読み出すべき優先度判定テーブル1321のエントリ1321-ｍ1に登録された優先度よりも1段階低い値を登録する。FINパケットが到着し、通信持続時間測定エントリ1326-A-kを削除するときには、負荷分散対象フローエントリ1320-m2と優先度判定テーブル1321のエントリ1321-m2も削除する。
【００９５】
以上の処理により、パケット中継装置１は、登録された負荷分散対象フローエントリ1320-m1に含まれる複数のフローのうち、通信持続時間が基準値TIM0を超過するフローを検出して分離し、その優先度を変更する。また、当該フローの通信が終了したときには、分離したフローは本来設定されていた負荷分散対象フローエントリ1320-m1に統合される。
【実施例３】
【００９６】
実施例３を説明する。本実施例１では、通信状況やサーバの処理状況で、動的に優先度を変更し、パケット毎に優先度を判定し、優先度にあわせた転送先にパケットを転送するパケット中継装置を説明した。
【００９７】
実施例３では、セッション毎に優先度を対応付け、パケット転送を、セッション毎の優先度に基づいて行うパケット中継装置を含むシステムの例である。
負荷分散対象装置にかかる負荷は時間的に変動するので、優先度毎に対応して送信先と判定される負荷分散対象装置も、時間的に変化する。従って、実施例１では、セッション毎に優先度を判定する場合であっても、SYNパケットの送信先と判定される負荷分散対象装置と、SYNパケットに後続するパケットの送信先と判定される負荷分散対象装置は異なる場合が生じる。
【００９８】
すると、同一セッションであってもパケット毎に処理される負荷分散対象装置が異なることとなる。例えば、アプリケーションを処理する負荷分散対象装置（サーバ）において、サーバに送信されたパケットデータの内容に応じてアプリケーション処理の状態が変化するような場合には、パケット毎に処理サーバが異なるので、アプリケーション処理の状態の整合性をサーバ間で保持しなければならないという課題がある。
【００９９】
実施例３では、セッション毎に優先度を判定する場合のサーバ処理に関し、パケット中継装置1の構成を示す。変形例１と異なる部分について、説明する。
【０１００】
図１８は、優先度判定テーブル1321-Aの構成を示す。優先度判定テーブル1321-Aは、図７の優先度判定テーブルと異なり、負荷分散対象フロー（セッション）毎のエントリ1321A-1〜1321A-nには優先度に加え、送信すべき負荷分散対象装置の出力回線番号とNext Hop IPアドレスが登録される。
【０１０１】
実施例１の変形例１のように、負荷分散判定部１３２は、負荷分散対象フロー判定テーブル1320に基づいて、入力されたパケットのパケットヘッダ情報5000に一致する負荷分散対象フローエントリ1320-mを検出した場合、そのパケットのＳＹＮフラグを参照する。当該パケットのSYNフラグ542が’1’であった場合には、これをSYNパケットとしてセッションの接続が開始される。
【０１０２】
負荷分散判定部１３２は、このSYNパケットに対しては負荷分散対象フローエントリ1320-mに対応する図１８の優先度判定テーブル1321-Aのエントリ1321A-mを参照し、エントリ1321A-mに記載された優先度nに基づいて負荷順位テーブル1322-Bのエントリ1322B-nを参照する。エントリ1322B-n に記載の回線番号とNext Hop IPアドレスが、SYNパケットを送信すべき負荷分散対象装置の属する回線番号とNext Hop IPアドレスとなる。そして、負荷分散判定部１３２は、エントリ1322B-n に記載の回線番号とNext Hop IPアドレスを、優先度判定テーブル1321-Aのエントリ1321A-mの回線番号とNext Hop IPアドレスとして登録する。上述のSYNパケットを入力した場合を除いては、優先度判定テーブル1321-Aのエントリに対する回線番号とNextHop IPの登録は行わないものとする。このSYNパケットに関する処理を図２６に示す。
【０１０３】
図26では、セッション0に属するパケット0（２６１０）、パケット1（２６２０）、パケット2（２６３０）が順番にパケット中継装置に入力する状況を示している。パケット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に登録する。
【０１０４】
SYNパケットに後続する、SYNパケットと同一の負荷分散対象フローエントリ1320-mと判定されたパケット(SYN=0)を送信すべき回線番号とNext Hop IPアドレスは、上述のSYNパケットの受信時にエントリ1321A-mに記載された回線番号とNext Hop IPアドレスと判定される。このSYNパケットの後続するパケットに関する処理の特徴を図２７に示す。
【０１０５】
図27では、パケット0(2610)がサーバA(2-1)に送信された後にパケット中継装置１が受信したパケット1（2620）がどのように処理されるかを示している。パケット1（2620）はパケット0と同じセッション0に属するので、優先度0に相当するパケットである。このときのサーバ毎の遅延時間は、サーバA(300ms)、サーバB(100ms)、サーバC（200ms)となっているが、パケット中継装置はパケット1を、遅延時間が最も短いサーバBに送信するのではなく、パケット0の送信時に優先度0のパケットに対応する送信先情報として登録されたサーバAに送信する。これにより、同一セッションに属するパケットは、遅延時間の変化によらず常にSYNパケットが送信されたサーバと同一のサーバに送信されることとなる。その結果、同一セッションであってもパケット毎に処理される負荷分散対象装置が異なる場合の、パケット毎に処理サーバが異なるので、アプリケーション処理の状態の整合性をサーバ間でとる必要がなくなる。
【０１０６】
図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パケットが割り当てられた出力回線または負荷分散対象装置のままで、セッション中で割り当てられる出力回線または負荷分散対象装置は変化しない。
【０１０７】
実施例３のパケット中継装置1では、同一セッションに属する複数のパケットを中継している間に負荷順位テーブル1322-Bのエントリ構成、即ち負荷分散対象装置にかかる負荷の順位が変化した場合であっても、同一セッションに属する複数のパケットの全てを、SYNパケットを送信した負荷分散対象装置と負荷分散対象装置に送信する。従って、アプリケーション処理の状態の整合性を負荷分散対象装置間（サーバ間）で保持せずにすむ。また、同一セッションに属する複数のパケットの間で、負荷分散対象装置に到着するパケットの順序逆転を防止することもできる。
【０１０８】
上述の種々の実施例によると、パケットの出力回線の負荷、または宛先となる負荷分散対象装置の負荷を測定し、測定された負荷情報とパケットの優先度に基づいて、パケットの優先度の高い順に宛先を負荷の低い順の出力回線または負荷分散対象装置と判定するパケット中継装置を提供する。
【０１０９】
また、低優先パケットの負荷がどんなに高くても、あるいはどんなタイミングでパケット中継装置が優先度の高いパケットを受信しても、低優先パケットによる影響を受けていない最も負荷の低い出力回線または負荷分散対象装置に高優先パケットを送信することができるので、高優先パケットのレスポンス性能を最善とすることができる。
【０１１０】
また、種々の実施例に基づいて、本発明の態様は下記の態様も含む。
他の第一態様のパケット中継装置であって、パケットがパケット中継装置から送信され、負荷分散対象装置に入力して処理されて、負荷分散対象装置において該パケットに対して生成された応答パケットを該パケット中継装置が受信するまでの遅延時間、または負荷分散対象装置への送信パケットレート、または負荷分散対象装置への送信ビットレート、
または負荷分散対象装置へのセッション数、  または出力回線への送信パケットレート、
または出力回線への送信ビットレート、または出力回線のセッション数に基づいて負荷を求める態様である。この態様によれば、遅延時間、パケットレートやビットレート等の帯域、セッション数の低い出力回線または負荷分散対象装置は、優先度の高いパケットのために確保される。従って、高優先パケットのレスポンス性能を最善としやすくすることができる。
【０１１１】
別の態様として、さらに、パケット中継装置は、遅延時間測定用パケットを生成し、
前記遅延時間測定用パケットを負荷分散対象装置に送信してから、該遅延時間測定用パケットに対する応答パケットをパケット中継装置が受信するまでの時間を測定し、
前記測定された時間を遅延時間として負荷を求めてもよい。これにより、遅延時間測定用パケットを用いて測定した遅延時間の低い出力回線または負荷分散対象装置は、優先度の高いパケットのために確保される。従って、高優先パケットのレスポンス性能を最善とすることができる。
【０１１２】
別の態様として、パケット中継装置は、パケットの出力回線または宛先の負荷分散対象装置毎の負荷である、遅延時間または送信パケットレートまたは送信ビットレートまたはセッション数を、各々負荷の小さい順に並べて記載した負荷順位表を備え、パケットの優先度の高い順に、負荷順位表の高い順位に登録されたパケットの出力回線または宛先の負荷分散対象装置から送信する態様であってもよい。この態様によれば、負荷順位表の高い順位に登録されたパケットの出力回線または宛先の負荷分散対象装置から高優先パケットを送信する。従って、高優先パケットのレスポンス性能を維持することができる。
【０１１３】
その他の態様として、優先度を判定するパケット中継装置が、接続要求パケットの宛先である出力回線または負荷分散対象装置を、接続要求パケットの後続パケットの宛先から特定する態様である。この態様によれば、出力回線または負荷分散対象装置の負荷順位の分布が変化した場合にも、接続要求パケットの宛先と接続要求パケットの後続パケットの宛先を一致させることができる。従って、負荷順位の分布が変化した場合にも同一セッションの接続先を一意に保つことができ、同一セッションを構成するパケット間での順序逆転が発生せずに済む。
【０１１４】
その他の態様として、パケット中継装置が、セッションを識別するときの条件を  IPプロトコルの送信元IPアドレスと宛先IPアドレスとTCPプロトコルの送信元ポート番号と宛先ポート番号とSYNフラグとFINフラグのいずれかで構成し、セッションを識別してもよい。この態様によれば、IPプロトコルの送信元IPアドレスと宛先IPアドレスとTCPプロトコルの送信元ポート番号と宛先ポート番号とSYNフラグとFINフラグのいずれかでセッションを識別できる。
【０１１５】
その他態様として、パケット中継装置が、フロー毎またはセッション毎の優先度を設定するユーザインタフェースを備える態様としてもよい。この態様によれば、パケット中継装置の運用者はユーザインタフェースを通じて、フロー毎またはセッション毎の優先度を設定することができる。
【符号の説明】
【０１１６】
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…パケットヘッダ情報
【図１】
0005637749.tif 000002
【図２】
0005637749.tif 000003
【図３】
0005637749.tif 000004
【図４】
0005637749.tif 000005
【図５】
0005637749.tif 000006
【図６】
0005637749.tif 000007
【図７】
0005637749.tif 000008
【図８】
0005637749.tif 000009
【図９】
0005637749.tif 000010
【図１０】
0005637749.tif 000011
【図１１】
0005637749.tif 000012
【図１２】
0005637749.tif 000013
【図１３】
0005637749.tif 000014
【図１４】
0005637749.tif 000015
【図１５】
0005637749.tif 000016
【図１６】
0005637749.tif 000017
【図１７】
0005637749.tif 000018
【図１８】
0005637749.tif 000019
【図１９】
0005637749.tif 000020
【図２０】
0005637749.tif 000021
【図２１】
0005637749.tif 000022
【図２２】
0005637749.tif 000023
【図２３】
0005637749.tif 000024
【図２４】
0005637749.tif 000025
【図２５】
0005637749.tif 000026
【図２６】
0005637749.tif 000027
【図２７】
0005637749.tif 000028