(57)【要約】負荷の測定及び負荷分散制御を効率よく高速に行い、通信品質、信頼性の向上を図る。送信バイト数取得部（２７）は、入力フレームから宛先アドレスとフレーム長とを取得して、宛先アドレス毎の送信バイト数を測定する。送信バイト数保存部（２８）は、送信バイト数を累積加算した値を送信バイト数保存テーブル（Ｔ２）に保存する。送信バイト数通知部（２９）は、送信バイト数保存テーブル（Ｔ２）で保存されている送信バイト数を一定期間毎に転送する。過負荷装置検出部（３２ａ）は、転送された送信バイト数と負荷分散装置（１０−１）〜（１０−ｎ）が受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出する。振り分け量調整部（３２ｂ）は、過負荷と検出された負荷分散装置への割り当て分を減らし、トラフィックの振り分け量を調整する。
2004088940.tif 000002
【特許請求の範囲】
【請求項１】
トラフィックの負荷分散を行う負荷分散システムにおいて、
振り分けられたトラフィックを受信して負荷分散を行う複数の負荷分散装置と、
フレームから送信バイト数を取得する送信バイト数取得部と、前記送信バイト数を宛先アドレス毎に累積加算した値を送信バイト数保存テーブルに保存する送信バイト数保存部と、前記送信バイト数保存テーブルで保存されている前記送信バイト数を一定期間毎に通知する送信バイト数通知部と、から構成され、負荷分散装置の前段に配置する前段振分装置と、
通知された送信バイト数と負荷分散装置が受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出する過負荷装置検出部と、過負荷と検出された負荷分散装置への割り当て分を減らし、トラフィックの振り分け量を調整する振り分け量調整部と、から構成される管理装置と、
を有することを特徴とする負荷分散システム。
【請求項２】
前記前段振分装置は、ハッシュ値に対応して負荷分散装置を割り当てるための振り分け先対応テーブルと、前記管理装置から送信されたトラフィックの割り当て内容を前記振り分け先対応テーブルに書き込むテーブル書き込み部と、入力フレームの発信元アドレスにハッシュ関数を適用して、ハッシュ値を取得し、ハッシュ値に対応する負荷分散装置のアドレスを前記振り分け先対応テーブルから検索して、振り分け先アドレスを決定する振り分け先決定部と、前記振り分け先アドレスで、入力フレームの宛先アドレスを書き替えて、宛先アドレス変更後のフレームを前記送信バイト数取得部に転送する宛先アドレス書替部とをさらに有することを特徴とする請求の範囲第１項記載の負荷分散システム。
【請求項３】
前記振り分け量調整部は、トラフィック振り分け前の負荷分散装置及びトラフィック振り分け後の負荷分散装置の組の切替回数を管理し、振り分け前と振り分け後の負荷分散装置が互いに逆で、切替回数がゼロでなくて値が同じ、または差分が１の切替回数があった場合は、ハッシュ関数の分散粒度を上げる制御を行うことを特徴とする請求の範囲第１項記載の負荷分散システム。
【請求項４】
前記振り分け量調整部は、過負荷と検出された負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第１項記載の負荷分散システム。
【請求項５】
前記振り分け量調整部は、過負荷と検出された第１の負荷分散装置に対する割り当てを、最も送信バイト数の少ない第２の負荷分散装置に変更しようとしたときに、前記第２の負荷分散装置が過負荷に近い状態であったならば、前記第１の負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第１項記載の負荷分散システム。
【請求項６】
負荷分散装置の前段に配置して、トラフィックの振り分けを行う前段振分装置において、
フレームから送信バイト数を取得する送信バイト数取得部と、
前記送信バイト数を宛先アドレス毎に累積加算した値を送信バイト数保存テーブルに保存する送信バイト数保存部と、
前記送信バイト数保存テーブルで保存されている前記送信バイト数を一定期間毎に通知する送信バイト数通知部と、
を有することを特徴とする前段振分装置。
【請求項７】
ハッシュ値に対応して負荷分散装置を割り当てるための振り分け先対応テーブルと、前記管理装置から送信されたトラフィックの割り当て内容を前記振り分け先対応テーブルに書き込むテーブル書き込み部と、入力フレームの発信元アドレスにハッシュ関数を適用して、ハッシュ値を取得し、ハッシュ値に対応する負荷分散装置のアドレスを前記振り分け先対応テーブルから検索して、振り分け先アドレスを決定する振り分け先決定部と、前記振り分け先アドレスで、入力フレームの宛先アドレスを書き替えて、宛先アドレス変更後のフレームを前記送信バイト数取得部に転送する宛先アドレス書替部とをさらに有することを特徴とする請求の範囲第６項記載の前段振分装置。
【請求項８】
トラフィックの振り分け制御を行う管理装置において、
測定された送信バイト数と負荷分散装置が受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出する過負荷装置検出部と、
過負荷と検出された負荷分散装置への割り当て分を減らし、トラフィックの振り分け量を調整する振り分け量調整部と、
を有することを特徴とする管理装置。
【請求項９】
前記振り分け量調整部は、トラフィック振り分け前の負荷分散装置及びトラフィック振り分け後の負荷分散装置の組の切替回数を管理し、振り分け前と振り分け後の負荷分散装置が互いに逆で、切替回数がゼロでなくて値が同じ、または差分が１の切替回数があった場合は、ハッシュ関数の分散粒度を上げる制御を行うことを特徴とする請求の範囲第８項記載の管理装置。
【請求項１０】
前記振り分け量調整部は、過負荷と検出された負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第８項記載の管理装置。
【請求項１１】
前記振り分け量調整部は、過負荷と検出された第１の負荷分散装置に対する割り当てを、最も送信バイト数の少ない第２の負荷分散装置に変更しようとしたときに、前記第２の負荷分散装置が過負荷に近い状態であったならば、前記第１の負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第８項記載の管理装置。
【請求項１２】
トラフィックの負荷分散を行う負荷分散システムにおいて、
振り分けられたトラフィックを受信して負荷分散を行う複数の負荷分散装置と、
フレームから送信バイト数を取得する送信バイト数取得部と、前記送信バイト数を宛先アドレス毎に累積加算した値を、ユーザ毎に送信バイト数保存テーブルに保存する送信バイト数保存部と、前記送信バイト数保存テーブルで保存されている前記送信バイト数を一定期間毎に通知する送信バイト数通知部と、から構成され、前記負荷分散装置の前段に配置する前段振分装置と、
通知された送信バイト数を負荷分散装置毎に加算した加算値と、負荷分散装置が受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出する過負荷装置検出部と、過負荷と検出された負荷分散装置に対して最もトラフィック量の多いユーザを検出し、前記ユーザへの割り当て分を減らして、トラフィックの振り分け量を調整する振り分け量調整部と、から構成される管理装置と、
を有することを特徴とする負荷分散システム。
【請求項１３】
前記前段振分装置は、ハッシュ値に対応して負荷分散装置を割り当てるためのユーザ毎の振り分け先対応テーブルと、前記管理装置から送信されたトラフィックの割り当て内容を前記振り分け先対応テーブルに書き込むテーブル書き込み部と、入力フレームの発信元アドレスにハッシュ関数を適用して、ハッシュ値を取得し、ハッシュ値に対応する負荷分散装置のアドレスを前記振り分け先対応テーブルから検索して、振り分け先アドレスを決定する振り分け先決定部と、前記振り分け先アドレスで、入力フレームの宛先アドレスを書き替えて、宛先アドレス変更後のフレームを前記送信バイト数取得部に転送する宛先アドレス書替部とをさらに有することを特徴とする請求の範囲第１２項記載の負荷分散システム。
【請求項１４】
前記振り分け量調整部は、トラフィック振り分け前の負荷分散装置及びトラフィック振り分け後の負荷分散装置の組の切替回数を管理し、振り分け前と振り分け後の負荷分散装置が互いに逆で、切替回数がゼロでなくて値が同じ、または差分が１の切替回数があった場合は、ハッシュ関数の分散粒度を上げる制御を行うことを特徴とする請求の範囲第１２項記載の負荷分散システム。
【請求項１５】
前記振り分け量調整部は、過負荷と検出された負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第１２項記載の負荷分散システム。
【請求項１６】
前記振り分け量調整部は、過負荷と検出された第１の負荷分散装置に対する割り当てを、最も送信バイト数の少ない第２の負荷分散装置に変更しようとしたときに、前記第２の負荷分散装置が過負荷に近い状態であったならば、前記第１の負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第１２項記載の負荷分散システム。
【請求項１７】
負荷分散装置の前段に配置して、トラフィックの振り分けを行う前段振分装置において、
フレームから送信バイト数を取得する送信バイト数取得部と、
前記送信バイト数を宛先アドレス毎に累積加算した値を、ユーザ毎に送信バイト数保存テーブルに保存する送信バイト数保存部と、
前記送信バイト数保存テーブルで保存されている前記送信バイト数を一定期間毎に通知する送信バイト数通知部と、
を有することを特徴とする前段振分装置。
【請求項１８】
ハッシュ値に対応して負荷分散装置を割り当てるためのユーザ毎の振り分け先対応テーブルと、前記管理装置から送信されたトラフィックの割り当て内容を前記振り分け先対応テーブルに書き込むテーブル書き込み部と、入力フレームの発信元アドレスにハッシュ関数を適用して、ハッシュ値を取得し、ハッシュ値に対応する負荷分散装置のアドレスを前記振り分け先対応テーブルから検索して、振り分け先アドレスを決定する振り分け先決定部と、前記振り分け先アドレスで、入力フレームの宛先アドレスを書き替えて、宛先アドレス変更後のフレームを前記送信バイト数取得部に転送する宛先アドレス書替部とをさらに有することを特徴とする請求の範囲第１７項記載の前段振分装置。
【請求項１９】
トラフィックの振り分け制御を行う管理装置において、
測定された送信バイト数を負荷分散装置毎に加算した加算値と、負荷分散装置が受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出する過負荷装置検出部と、
過負荷と検出された負荷分散装置に対して最もトラフィック量の多いユーザを検出し、前記ユーザへの割り当て分を減らして、トラフィックの振り分け量を調整する振り分け量調整部と、
を有することを特徴とする管理装置。
【請求項２０】
前記振り分け量調整部は、トラフィック振り分け前の負荷分散装置及びトラフィック振り分け後の負荷分散装置の組の切替回数を管理し、振り分け前と振り分け後の負荷分散装置が互いに逆で、切替回数がゼロでなくて値が同じ、または差分が１の切替回数があった場合は、ハッシュ関数の分散粒度を上げる制御を行うことを特徴とする請求の範囲第１９項記載の管理装置。
【請求項２１】
前記振り分け量調整部は、過負荷と検出された負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第１９項記載の管理装置。
【請求項２２】
前記振り分け量調整部は、過負荷と検出された第１の負荷分散装置に対する割り当てを、最も送信バイト数の少ない第２の負荷分散装置に変更しようとしたときに、前記第２の負荷分散装置が過負荷に近い状態であったならば、前記第１の負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第１９項記載の管理装置。
【請求項２３】
トラフィックの負荷分散を行う負荷分散方法において、
フレームから送信バイト数を取得し、
前記送信バイト数を宛先アドレス毎に累積加算した値を送信バイト数保存テーブルに保存し、
前記送信バイト数保存テーブルで保存されている前記送信バイト数を一定期間毎に通知し、
通知された送信バイト数と負荷分散装置が受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出し、
過負荷と検出された負荷分散装置への割り当て分を減らし、トラフィックの振り分け量を調整することを特徴とする負荷分散方法。
【請求項２４】
マルチユーザに対応する場合は、前記送信バイト数を宛先アドレス毎に累積加算した値を、ユーザ毎に送信バイト数保存テーブルに保存し、通知された送信バイト数を負荷分散装置毎に加算した加算値と、負荷分散装置が受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出し、かつ過負荷と検出された負荷分散装置に対して最もトラフィック量の多いユーザを検出して、前記ユーザへの割り当て分を減らし、トラフィックの振り分け量を調整することを特徴とする請求の範囲第２３項記載の負荷分散方法。
【請求項２５】
トラフィック振り分け前の負荷分散装置及びトラフィック振り分け後の負荷分散装置の組の切替回数を管理し、振り分け前と振り分け後の負荷分散装置が互いに逆で、切替回数がゼロでなくて値が同じ、または差分が１の切替回数があった場合は、ハッシュ関数の分散粒度を上げることを特徴とする請求の範囲第２３項記載の負荷分散方法。
【請求項２６】
過負荷と検出された負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第２３項記載の負荷分散方法。
【請求項２７】
過負荷と検出された第１の負荷分散装置に対する割り当てを、最も送信バイト数の少ない第２の負荷分散装置に変更しようとしたときに、前記第２の負荷分散装置が過負荷に近い状態であったならば、前記第１の負荷分散装置に対するフレームの廃棄設定を行うことを特徴とする請求の範囲第２３項記載の負荷分散方法。
【発明の詳細な説明】
【技術分野】  本発明は負荷分散システムに関し、特にトラフィックの負荷分散を行う負荷分散システムに関する。
【背景技術】  近年、情報通信ネットワークは、多様な形態が構築されており、伝送容量の増大に伴い、通信品質及びサービス性のさらなる向上が期待されている。このような状況の中で、ネットワーク内の負荷は急激に増加しており、負荷に耐え切れずにネットワークがダウンすることのないよう、ネットワーク負荷を効率よく分散させる負荷分散制御の重要性がますます高まってきている。今日の高速・大容量のネットワークに対応した負荷分散を行うためには、負荷を効率よく測定し、高速に負荷分散を実行する機能を実現することが必須である。
このため、従来、未処理のファイルアクセス要求数を測定することで負荷を測定して負荷分散を行っている技術や、処理中トランザクション数とＥＰＵ系に滞在する業務処理プロセス数から負荷を測定して負荷分散を行っている技術が提案されている。
【特許文献１】      特開平６−３３２７８２号公報（段落番号〔００１０〕〜〔００１７〕，第１図）
【特許文献２】      特開２００２−２７８９４５号公報（段落番号〔００１２〕〜〔００２７〕，第１図）
しかし、特許文献１では、未処理ファイルアクセス要求数を測定するために、ファイルという単位での管理を行っているが、このファイル管理の処理自体が負荷分散を高速に行う上でのボトルネックとなるおそれがあり、負荷分散を容易に高速化することは困難であるといった問題があった。
また、特許文献２では、処理中トランザクション数とＥＰＵ系に滞在する業務処理プロセス数を測定するために、トランザクション及びプロセス状態の把握が必要であるが、トランザクション及びプロセス状態を監視する処理自体が負荷分散を高速に行う上でのボトルネックとなるおそれがあり、負荷分散を容易に高速化することは困難であるといった問題があった。
【発明の開示】
本発明はこのような点に鑑みてなされたものであり、負荷の測定及び負荷分散制御を効率よく高速に行って、通信品質、信頼性の向上を図った負荷分散システムを提供することを目的とする。
本発明では上記課題を解決するために、図１に示すような、トラフィックの負荷分散を行う負荷分散システム１において、振り分けられたトラフィックを受信して負荷分散を行う複数の負荷分散装置１０−１〜１０−ｎと、フレームから送信バイト数を取得する送信バイト数取得部２７と、送信バイト数を宛先アドレス毎に累積加算した値を送信バイト数保存テーブルＴ２に保存する送信バイト数保存部２８と、送信バイト数保存テーブルＴ２で保存されている送信バイト数を一定期間毎に通知する送信バイト数通知部２９と、から構成され、負荷分散装置１０−１〜１０−ｎの前段に配置する前段振分装置２０と、通知された送信バイト数と負荷分散装置１０−１〜１０−ｎが受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出する過負荷装置検出部３２ａと、過負荷と検出された負荷分散装置への割り当て分を減らし、トラフィックの振り分け量を調整する振り分け量調整部３２ｂと、から構成される管理装置３０と、を有することを特徴とする負荷分散システム１が提供される。
ここで、負荷分散装置１０−１〜１０−ｎは、振り分けられたトラフィックを受信して負荷分散を行う。送信バイト数取得部２７は、フレームから送信バイト数を取得する。送信バイト数保存部２８は、送信バイト数を宛先アドレス毎に累積加算した値を送信バイト数保存テーブルＴ２に保存する。送信バイト数通知部２９は、送信バイト数保存テーブルＴ２で保存されている送信バイト数を一定期間毎に通知する。過負荷装置検出部３２ａは、通知された送信バイト数と負荷分散装置１０−１〜１０−ｎが受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出する。振り分け量調整部３２ｂは、過負荷と検出された負荷分散装置への割り当て分を減らし、トラフィックの振り分け量を調整する。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】  図１は、本発明の負荷分散システムの原理図である。
図２は、トラフィック偏り修正の概要を示す図である。
図３は、クライアントサーバ通信システムの構成を示す図である。
図４は、負荷分散システムの構成を示す図である。
図５は、振り分け先テーブルの設定内容を示す図である。
図６は、フレーム振り分け先決定の動作シーケンスを示す図である
図７は、送信バイト数測定の概要を示す図である。
図８は、送信バイト数測定の動作シーケンスを示す図である。
図９は、送信バイト数測定の結果通知の動作シーケンスを示す図である。
図１０は、再割り当て内容決定の動作シーケンスを示す図である。
図１１は、過負荷装置検出処理を説明するための図である。
図１２は、再割り当て内容転送の動作シーケンスを示す図である。
図１３は、振り分け先対応テーブル設定の動作シーケンスを示す図である。
図１４は、振り分け先対応テーブルの割り当て変更の様子を示す図である。
図１５は、ユーザ毎に独立した振り分け先対応テーブルを示す図である。
図１６は、送信バイト数測定の概要を示す図である。
図１７は、負荷分散装置毎の総送信バイト数の算出の様子を示す図である。
図１８は、最も大量のフレームを送信しているユーザの検出動作を示す図である。
図１９は、切替回数保存テーブルを示す図である。
【発明を実施するための最良の形態】  以下、本発明の実施の形態を図面を参照して説明する。図１は本発明の負荷分散システムの原理図である。負荷分散システム１は、負荷分散装置１０−１〜１０−ｎ、前段振分装置２０、管理装置３０を含み、ネットワークのトラフィック負荷を分散させるシステムである。
本発明では、１台の負荷分散装置では処理しきれない量のトラフィックに対し、負荷分散装置を複数台用意し、その負荷分散装置の前段に前段振分装置２０及び管理装置３０を配置して、前段振分装置２０及び管理装置３０により、負荷分散装置１０−１〜１０−ｎへ送信すべきトラフィックを振り分ける構成をとる。なお、管理装置３０の機能は、前段振分装置２０に含まれるような構成としてもよい。
負荷分散装置１０−１〜１０−ｎは、管理装置３０によって振り分け調整されたトラフィックを前段振分装置２０から受信して負荷分散を行う。
前段振分装置２０は、送信バイト数取得部２７、送信バイト数保存テーブルＴ２、送信バイト数保存部２８から構成される。送信バイト数取得部２７は、フレーム（またはパケット）から宛先アドレス（振り分け先の負荷分散装置のアドレス）とフレーム長とを取得する。このフレーム長が宛先アドレスに対応した送信バイト数（送信フレームのバイト数）となる。
送信バイト数保存部２８は、送信バイト数を累積加算した値を送信バイト数保存テーブルＴ２に保存する。すなわち、送信バイト数取得部２７で取得された送信バイト数（フレーム長）を、宛先アドレスに対応して累積加算して得られる値としてテーブルに保存する（この送信バイト数保存テーブルＴ２に保存されている情報から、負荷分散装置１０−１〜１０−ｎそれぞれに対し、どれだけのトラフィック量を過去に振り分けたかを認識できる）。送信バイト数通知部２９は、送信バイト数保存テーブルＴ２で保存されている送信バイト数を一定期間毎に管理装置３０へ通知する。
管理装置３０は、過負荷装置検出部３２ａ、振り分け量調整部３２ｂから構成される。過負荷装置検出部３２ａは、通知された送信バイト数と、負荷分散装置１０−１〜１０−ｎが受信可能なバイト数（あらかじめ設定されている）とを比較して、過負荷状態になっている負荷分散装置を検出する。
振り分け量調整部３２ｂは、過負荷と検出された負荷分散装置への割り当て分を減らし、トラフィックの振り分け量を調整して、特定の負荷分散装置だけにトラフィックが集中することのないように、トラフィックの偏りを動的に修正する。
次に負荷分散装置１０−１〜１０−ｎに対する本発明のトラフィック偏り修正について説明する。図２はトラフィック偏り修正の概要を示す図である。左側の状態Ａ１では、負荷分散装置１０−１〜１０−３に対し、トラフィック量が偏った状態でフレームが振り分けられている様子を示している。このような状態が生じると、例えば、最も大量のフレームを受信している負荷分散装置１０−１では、フレーム受信バッファが溢れてしまい、フレーム廃棄がなされることになる。フレーム廃棄は、ユーザへのサービス低下を招いてしまう。
一方、右側の状態Ａ２では、トラフィック偏り修正が施されている様子を示している。本発明の振り分け機能によって、実際にフレームがどのように振り分けられたか、その送信データ量を測定しておき（具体的には、送信バイト数を測定しておく）、この測定結果をもとにして、トラフィックの偏りを修正する。これにより、特定の負荷分散装置に対するフレーム集中が起きないので、フレーム廃棄が生じることがなく、サービス品質の低下を防ぐことが可能になる。
次に本発明の負荷分散システム１の適用例として、クライアントサーバ通信システムに本発明を適用した場合について説明する。図３はクライアントサーバ通信システムの構成を示す図である。クライアントサーバ通信システム１００は、クライアント５０−１〜５０−ｎ、ネットワーク１１０、前段振分装置２０、管理装置３０、負荷分散装置１０−１〜１０−ｎ、スイッチＳＷ、サーバ群６０−１〜６０−ｎから構成される。なお、サーバ群６０−１〜６０−ｎはそれぞれ複数のサーバで構成される。
接続関係としては、ネットワーク１１０にクライアント５０−１〜５０−ｎと前段振分装置２０が接続する。前段振分装置２０には、管理装置３０と、負荷分散装置１０−１〜１０−ｎが接続する。また、負荷分散装置１０−１〜１０−ｎは、スイッチＳＷと接続し、スイッチＳＷはサーバ群６０−１〜６０−ｎと接続する。
クライアントサーバ通信システム１００では、多数のクライアント５０−１〜５０−ｎからのリクエストを受け付けるサーバの構成として、同一内容、同一処理を行うサーバを複数台用意し、サーバ群６０−１〜６０−ｎの前段に、スイッチＳＷを介して、負荷分散装置１０−１〜１０−ｎを配置している。
そして、ネットワーク１１０を介して、クライアント５０−１〜５０−ｎから送信されたリクエストを、前段振分装置２０及び管理装置３０によって、負荷分散装置１０−１〜１０−ｎに振り分け、負荷分散装置１０−１〜１０−ｎではリクエストを適当なサーバに振り分けて大量のトラフィックを処理する。
なお、負荷分散装置１０−１〜１０−ｎは、クライアントからのリクエスト内容を解析し、その内容に応じて適切なサーバを選び、リクエストの宛先をサーバの宛先に書き換えて、サーバに転送する処理を行う。
次に本発明の前段振分装置２０による送信バイト数測定機能と、管理装置３０による振り分け制御機能との設計方針及び特徴について説明する。まず、送信バイト数測定機能から説明する。
負荷分散装置１０−１〜１０−ｎ（総称する場合は負荷分散装置１０）において、フレーム受信バッファ溢れによるフレーム（パケット）廃棄を防ぐ方法としては、従来、負荷分散装置１０の受信バッファの状態を監視し、それを例えば前段振分装置にある、フレーム振り分け機能を持ったフレーム振り分け部へ通知して、該当の負荷分散装置宛の送信量を減少させる方法や、バッファサイズを大きくする方法などがあった。
しかし、負荷分散装置１０から情報を通知してもらい、その情報をフレーム振り分け部で受信してトラフィック量を減少させる前者の方法では、フレーム振り分け部において必要となる機能が複雑になりすぎ、必要な高速性を実現することができない。また、後者のバッファサイズを大きくする方法では、バッファサイズからの取り出し速度に対し、入力過多である状況においては、バッファサイズを拡大したとしても本質的な問題を解決できない。
また、フレーム溢れ防止に関連して、負荷分散装置１０に対するトラフィック割り当て制御として、入力フレームの発信元アドレスからハッシュ（Ｈａｓｈ）演算処理を行い、ハッシュ値に対応する負荷分散装置にフレームを転送する方法が考えられる（なお、ハッシュ演算とは、与えられた原文（データ）から固定長の疑似乱数を生成する演算手法のことであり、生成した擬似乱数値はハッシュ値と呼ばれる）。
この場合、入力トラフィックの発信元アドレスが均一に分布していれば、トラフィックの偏りはなくなるが、発信元アドレスが実際には均一になっていない場合が存在する。
例えば、特定の発信元アドレスを持つクライアントのみが集中的にトラフィックを発生する場合や、同じハッシュ値となる発信元アドレスを持つクライアント群が集中している場合などである。
このような入力トラフィックを受け付けると、意図していたようなトラフィックの振り分けを行うことができない。すなわち、入力トラフィックの発信元アドレスが偏っていれば、特定の負荷分散装置に対して偏ったトラフィック振り分けを行ってしまうことになる（結局、図２の状態Ａ１のようになってしまう）。
その結果として、処理可能な量を超えたトラフィックが、特定の負荷分散装置に集中してしまい、負荷分散装置のフレーム受信バッファが溢れ、負荷分散装置において廃棄が発生することになる。
一方、本発明では、送信バイト数を測定することで負荷分散装置１０に対するトラフィック割り当ての一機能を実現する。これは、送信トラフィック量をもって負荷分散装置１０の負荷を測定する方法である。
負荷分散装置１０においては、受信できたフレームについてはすべてＣＰＵで処理が可能な構成（ＣＰＵ処理能力を超える入力は受け付けられない構成）と考えられるため、負荷分散装置１０の負荷状況（サービスレベルの低下状況）を把握するためには、フレームが受信できるかどうか、すなわち受信バッファ溢れが発生していないことを測定すればよい。
したがって、受信バッファ溢れが発生しているかどうかは、送信トラフィック量（送信バイト数）を測定して、それが負荷分散装置のもつ受信可能能力を超えているか否かを判別すればよいことになる。
本発明による送信バイト数の測定処理（送信バイト数の取得、累積加算、通知の一連の処理）では、振り分け先からのフィードバックをせずに制御を行える点、また条件判断等を含まない単純な処理のみで済ませられるという点から、複雑なソフトウェアを介在せずにハードウェアで実行できるため、高速処理が可能になる。
次に振り分け制御機能について説明する。振り分け制御機能では、前段振分装置２０で測定した送信バイト数の測定結果（前段振分装置２０でフレーム化されて管理装置３０へ転送される）にもとづいて、管理装置３０での再割り当て（トラフィック偏り修正）内容を決定する。ポイントは、送信バイト数測定機能と、判断を行う振り分け制御機能とは独立しているというところにある。
上述のように送信バイト数測定機能には高速処理が必要であるが、判断を行う機能は、一般的に処理が複雑であり、また高速処理は必要とされない（常に振り分け先を見直しているのではなく、定期的に見直しを行えば十分であるため）。したがって２つの機能は独立させておけばよく、２つの機能間で連携が行えればよい。
２つの機能間の連携は、前段振分装置２０と負荷分散装置１０−１〜１０−ｎとの連携に比べて容易に実現可能である。前段振分装置２０と負荷分散装置１０−１〜１０−ｎ間での連携では、前段振分装置２０は、複数の負荷分散装置１０−１〜１０−ｎとの通信が必要であり、また複数の負荷分散装置１０−１〜１０−ｎから受け取った情報を総合する必要がある。これに対し、前段振分装置２０の送信バイト数測定機能と管理装置３０の振り分け制御機能との間では１：１の関係であり、情報の統合などの処理を必要としない。
管理装置３０では、送信バイト数の測定内容にもとづいて、負荷分散装置１０においてフレーム受信バッファの溢れが発生しているかを検出する。これは、送信バイト数が、負荷分散装置１０が処理可能なバイト数を超えているかどうかで判断する。
そして、過負荷状態に陥っていると検出された場合には、その負荷分散装置への振り分け量を減少させるように、後述の振分先対応テーブルの内容を修正する（具体的には、過負荷となっている負荷分散装置への割り当てとなっているハッシュ値に対応するエントリを、別の負荷分散装置への割り当てに変更する）。なお、決定された再割り当て内容は、管理装置３０から前段振分装置２０へと転送し、振分先対応テーブルへ設定することになる。
次に前段振分装置２０と管理装置３０の詳細な構成及び動作について説明する。図４は負荷分散システム１の構成を示す図である。前段振分装置２０に対し、フレーム送受信部２１ａは、クライアントとの通信インタフェースを行うフレーム送受信機能を有し、入力フレームを受信する。フレーム送受信部２１ｂは、管理装置３０との通信インタフェースを行うフレーム送受信機能を有する。
フレーム送受信部２１ｃ−１〜２１ｃ−ｎそれぞれは、負荷分散装置１０−１〜１０−ｎと通信インタフェースを行うフレーム送受信機能を有する。出力ポート決定部２２は、所定の情報を、前段振分装置２０内の対応する構成ブロックに送信、または対応する構成ブロックから受信する機能を有する。
制御フレーム判別部２３は、フレーム送受信部２１ａ及び出力ポート決定部２２を介して受信した入力フレームを、負荷分散装置１０−１〜１０−ｎ宛に振り分ける対象として、振り分け先決定部２５へ転送するものか、前段振分装置２０自身への制御フレームとして、テーブル書き込み部２４へ転送するものかを判別する（判別は、フレームのデータ部にあるフラグ等で行う）。
テーブル書き込み部２４は、管理装置３０から送信された制御フレームからデータを取り出し、データを振り分け先対応テーブルＴ１に書き込む。振り分け先対応テーブルＴ１は、ハッシュ値に対して負荷分散装置を割り当てるためのテーブルである。
なお、ハッシュ関数の出力値（ハッシュ値）をそのまま負荷分散装置１０−１〜１０−ｎと１：１対応で割り当てるのではなく、ハッシュ関数の出力値に対するテーブルを用意し、そのテーブルにどの負荷分散装置へ振り分けるかの設定を行う（なぜなら、例えばハッシュ関数の出力値が８値で負荷分散装置が３台なら、テーブルが無ければ、５／８の確率で振り分け先が存在しない状態になってしまうから）。
振り分け先決定部２５は、ハッシュ演算部２５ａと、振り分け先アドレス返信部２５ｂとから構成され、入力フレームから振り分け先を決定する機能を有する。ハッシュ演算部２５ａは、入力フレームの発信元アドレスにハッシュ関数を適用し、ハッシュ値を得る。使用されるハッシュ関数は８値、１６値などがあるが、前段振分装置２０が振り分け対象とする振り分け先の負荷分散装置数よりも出力値は大きくなければいけない。
振り分け先アドレス返信部２５ｂは、得られたハッシュ値で振り分け先対応テーブルＴ１を検索し、該当の負荷分散装置のアドレス（振り分け先アドレス）を得て、この負荷分散装置のアドレスを宛先アドレス書替部２６へ返信する。宛先アドレス書替部２６は、入力フレームの宛先アドレスを、振り分け先アドレス返信部２５ｂから受信した負荷分散装置のアドレスに書き替える。
送信バイト数取得部２７は、宛先アドレス書替部２６から送信されたフレームから宛先アドレスとフレーム長とを取得して、宛先アドレス毎の送信バイト数を取得する。送信バイト数保存部２８は、送信バイト数保存テーブルＴ２に送信バイト数を保存する。送信バイト数転送部２９は、蓄積された送信バイト数を一定期間毎に出力ポート決定部２２へ転送し、送信バイト数は、出力ポート決定部２２及びフレーム送受信部２１ｂを介して、管理装置３０へ転送される。
一方、管理装置３０に対し、フレーム送受信部３１は、前段振分装置２０との通信インタフェースを行うフレーム送受信機能を有する。振り分け先制御部３２は、過負荷装置検出部３２ａ、振り分け量調整部３２ｂから構成され、トラフィックの偏りを検出し、その偏り具合に応じて振り分け先対応テーブルＴ１の内容を修正する制御を行う（修正内容は、フレーム化して前段振分装置２０へ転送する）。
過負荷装置検出部３２ａは、前段振分装置２０から受信した送信バイト数から、過負荷状態になっている負荷分散装置を検出する。この場合、転送された送信バイト数と、負荷分散装置１０−１〜１０−ｎが受信可能なバイト数とを比較して、負荷分散装置が受け取れるトラフィック量（あらかじめ管理装置に設定されているものとする）を超えているか否かで判断する。
振り分け量調整部３２ｂは、過負荷装置検出部３２ａで検出された負荷分散装置への割り当て分を減らし、最も送信トラフィック量の少ない負荷分散装置へ割り当て直すように、振り分け先対応テーブルＴ１を修正する。
次に本発明の動作についてさらに詳しく説明する。システム動作の項目としては、フレームの振り分け先決定、送信バイト数測定、測定結果の通知、再割り当て内容の決定、再割り当て内容の転送、振り分け先対応テーブルＴ１への設定、に大きく分けられる。それぞれについて説明する。
〔フレームの振り分け先決定〕
入力トラフィック量に対し、３台の負荷分散装置Ａ、Ｂ、Ｃに、各々どの程度のトラフィックを割り当てるかを、その比で設定する。図５は振り分け先テーブルＴ１の設定内容を示す図である。前段振分装置２０にて、３台の負荷分散装置Ａ、Ｂ、Ｃに対して負荷を割り当てる例を示している。ここでは入力トラフィック量８０Ｍｂｐｓとし、それぞれ３：３：２でトラフィックを処理させるものとする。
ハッシュ演算部２５ａは、入力フレームの発信元アドレスにハッシュ関数（８値とする）を適用し、ハッシュ値を算出し、振り分け先アドレス返信部２５ｂへ送信する。
振り分け先アドレス返信部２５ｂは、受信したハッシュ値から振り分け先対応テーブルＴ１を参照し、振り分け先の負荷分散装置のアドレスを取得し、宛先アドレス書替部２６へ送信する。
宛先アドレス書替部２６は、入力フレームの宛先アドレスを、振り分け先の負荷分散装置のアドレスに書き替える。このように設定することで、負荷分散装置Ａ〜Ｃには、３０Ｍｂｐｓ、３０Ｍｂｐｓ、２０Ｍｂｐｓのトラフィックが振り分けられることが期待される。
なお、比率は、任意に設定できるため、３：３：２ではなく、例えば４：２：２のようにしてもよい。ただし、ここでは、比の合計（３＋３＋２、４＋２＋２）は、ハッシュ値の数と同様の８である必要がある（これらの比率の実際の設定は、管理装置３０から行う）。
図６はフレーム振り分け先決定の動作シーケンスを示す図である。
〔Ｓ１〕フレーム送受信部２１ａは、クライアントからのフレームを受信する。出力ポート決定部２２は、受信したフレームの宛先アドレスを確認し、それが前段振分装置２０のアドレスである場合には、制御フレーム判別部２３へ転送する。
〔Ｓ２〕制御フレーム判別部２３は、フレームのデータ部をチェックし、それが振り分け先対応テーブルＴ１に設定すべきテーブル内容であるか、一般のデータフレームであるかを判別する。データフレームの場合は振り分け先決定部２５へ転送する。
〔Ｓ３〕フレームを受信した振り分け先決定部２５は、ハッシュ演算部２５ａにおいて、発信元アドレスを抽出し、それを８値ハッシュ関数へ入力して演算し、演算結果を振り分け先アドレス返信部２５ｂへ転送する。
〔Ｓ４〕振り分け先アドレス返信部２５ｂは、ハッシュ関数が出力したハッシュ値から、対応する振り分け先対応テーブルＴ１のエントリ内容（負荷分散装置のアドレス）を取得する。
〔Ｓ５〕振り分け先決定部２５は、フレームと、負荷分散装置のアドレスとを、宛先アドレス書替部２６へ転送する。
〔Ｓ６〕宛先アドレス書替部２６は、フレームの宛先アドレスを、負荷分散装置のアドレスに書き替える。
〔Ｓ７〕宛先アドレス書替部２６は、宛先アドレス書き替え後のフレームを、送信バイト数取得部２７へ転送する。
〔送信バイト数測定〕
図７は送信バイト数測定の概要を示す図である。送信バイト数取得部２７は、宛先アドレス書き替え後のフレームのフレーム長を取得する。送信バイト数保存部２８は、送信バイト数保存テーブルＴ２で保存されている宛先アドレスに対応するエントリにフレーム長を加算する。
図の場合、例えば、フレーム長が６４バイトで、宛先アドレスが負荷分散装置Ａのアドレスであったならば、４５，０００，０００に６４を加算する。このように、フレーム長を加算していき、負荷分散装置それぞれに対する累積量を保存することで、送信バイト数を測定できる。
図８は送信バイト数測定の動作シーケンスを示す図である。なお、ステップＳ１１〜ステップＳ１３が送信バイト数測定であり、ステップＳ１４、Ｓ１５は、フレームの負荷分散装置への振り分け動作を示している。
〔Ｓ１１〕宛先アドレス書替部２６は、宛先アドレス書替後のフレームを、送信バイト数取得部２７へ転送する。
〔Ｓ１２〕送信バイト数取得部２７は、受信したフレームから、宛先アドレスとフレーム長を取得し、送信バイト数保存部２８へ転送する。
〔Ｓ１３〕送信バイト数保存部２８は、送信バイト数保存テーブルＴ２の宛先アドレスに対応するエントリに、フレーム長を加算する。
〔Ｓ１４〕宛先アドレス書替部２６は、宛先アドレス書替後のフレームを、出力ポート決定部２２へ転送する。
〔Ｓ１５〕出力ポート決定部２２は、宛先アドレスに対応したフレーム送受信部２１ｃへフレームを転送し、フレーム送受信部２１ｃは、受信したフレームを該当の負荷分散装置へ送信する。なお、入力フレームがデータフレームの場合には、上記のステップＳ１からステップＳ１５までを繰り返し行う。
〔測定結果の通知〕
送信バイト数通知部２９は、一定時間間隔（例えば１分に１回、５分に１回など）で、送信バイト数保存テーブルＴ２の内容をフレーム化し、管理装置３０へ通知する。
図９は送信バイト数測定の結果通知の動作シーケンスを示す図である。
〔Ｓ２１〕送信バイト数通知部２９は、送信バイト数保存テーブルＴ２の内容（送信バイト数情報）を宛先アドレスが管理装置３０のフレームとしてフレーム化し、出力ポート決定部２２へ転送する。
〔Ｓ２２〕送信バイト数通知部２９は、ステップＳ２１の転送と同時に、送信バイト数保存テーブルＴ２の内容をクリアする。
〔Ｓ２３〕出力ポート決定部２２は、受信したフレームを管理装置３０へ転送するために、フレーム送受信部２１ｂへ転送する。
〔Ｓ２４〕フレーム送受信部２１ｂは、送信バイト数情報のフレームを管理装置３０へ転送する。なお、管理装置３０では、フレーム送受信部３１でこれを受信し、振り分け先制御部３２へ転送する。
〔再割り当て内容の決定〕
管理装置３０の振り分け先制御部３２では、過負荷となっている負荷分散装置を検出し、その装置宛の振り分けトラフィック量を調整する。図１０は再割り当て内容決定の動作シーケンスを示す図である。
〔Ｓ３１〕過負荷装置検出部３２ａは、通知された送信バイト数を、負荷分散装置の受信可能バイト数と比較する。負荷分散装置の受信可能バイト数はあらかじめ設定されているものとする。比較した結果、過負荷装置が検出された場合には、その装置の情報を振り分け量調整部３２ｂへ転送する。
〔Ｓ３２〕振り分け量調整部３２ｂは、振り分け先対応テーブルＴ１の、過負荷装置に対する割り当てを、別の装置（例えば最も送信バイト数の少ない装置）に変更する情報を生成する。
図１１は過負荷装置検出処理を説明するための図である。送信バイト数保存テーブルＴ２に、負荷分散装置Ａ〜Ｃに対応する送信バイト数が登録されている。負荷分散装置Ａが４５，０００，０００（４５Ｍ  ｂｙｔｅ）、負荷分散装置Ｂが１１，２５０，０００（１１．２５Ｍ  ｂｙｔｅ）、負荷分散装置Ｃが３，７５０，０００（３．７５Ｍ  ｂｙｔｅ）となっている。
ここで、負荷分散装置の受信可能バイト数を５０Ｍｂｐｓとする。５０Ｍｂｐｓを８で割ってバイト単位にすると６．２５Ｍ  ｂｙｔｅ／ｓｅｃであり、さらに６０を掛けて単位をｂｙｔｅ／ｍｉｎにすると３７．５Ｍ  ｂｙｔｅ／ｍｉｎとなる。したがって、３７．５Ｍ  ｂｙｔｅ／ｍｉｎを超えているのは負荷分散装置Ａとなり、負荷分散装置Ａにトラフィックが偏っていることになるので、負荷分散装置Ａが過負荷装置として検出される。
〔再割り当て内容の転送〕
図１２は再割り当て内容転送の動作シーケンスを示す図である。
〔Ｓ４１〕振り分け量調整部３２ｂは、変更した再割り当て内容をフレーム化する。この場合、宛先アドレスを前段振分装置２０にし、データ部に再割り当て内容を設定し、変更内容を含むフレームが制御フレームであることを示すフラグをセットする。そして、フレーム送受信部３１へ転送する。
〔Ｓ４２〕フレーム送受信部３１は、変更内容を含む制御フレームを前段振分装置２０へ転送する。
〔振り分け先対応テーブルＴ１への設定〕
図１３は振り分け先対応テーブルＴ１設定の動作シーケンスを示す図である。
〔Ｓ５１〕フレーム送受信部２１ｂでフレームを受け取った前段振分装置２０は、フレームを出力ポート決定部２２へ転送する。
〔Ｓ５２〕出力ポート決定部２２は、受信したフレームの宛先アドレスを確認する。ここでのフレームのアドレスは前段振分装置２０のアドレスであるので、制御フレーム判別部２３へ転送する。
〔Ｓ５３〕制御フレーム判別部２３は、フレームのデータ部をチェックし、それが振り分け先対応テーブルＴ１に設定すべきテーブル内容であるか、一般のデータフレームであるかを判別する。このフレームは制御フレームと認識され、テーブル書き込み部２４へ転送する。
〔Ｓ５４〕テーブル書き込み部２４は、制御フレームからデータを取り出し、その内容を振り分け先対応テーブルＴ１へ上書きする。
図１４は振り分け先対応テーブルＴ１の割り当て変更の様子を示す図である。振り分け先対応テーブルＴ１ａでは、ハッシュ値０〜２が負荷分散装置Ａ、ハッシュ値３〜５が負荷分散装置Ｂ、ハッシュ値６、７が負荷分散装置Ｃとなっている。ここで、負荷分散装置Ａが過負荷と判断された場合、例えば、最もトラフィック量の少ない負荷分散装置Ｃに変更する。
変更後の振り分け先対応テーブルＴ１ｂでは、ハッシュ値０、１が負荷分散装置Ａ、ハッシュ値３〜５が負荷分散装置Ｂ、ハッシュ値２、６、７が負荷分散装置Ｃと割り当て内容が変更されている。
次に本発明の変形例について説明する。変形例はマルチユーザ対応の機能を負荷分散システム１に設けたものである（以下、変形例のシステムを負荷分散システム１ａと呼ぶ）。近年、ネットワークの構築・維持・管理を、各企業が独自に行うのではなく、ＩＤＣ（インターネットデータセンター）と呼ばれる専門の業者に委託する形態が多く見られている。ＩＤＣの提供するネットワークでは、内部に論理的に独立した複数のネットワーク構造をもち、それを複数の企業（ユーザ）に貸し出す。
このようなネットワーク形態においては、単独のユーザでは問題にならないトラフィック量であっても、それが多重された状態では、複数ユーザ間での相互干渉が発生するおそれがある。
本発明の変形例では、このようなマルチユーザ環境にあっても、負荷の測定及び負荷分散制御を効率よく高速に行って、多重された複数のユーザ間での相互干渉の発生を防ぎ、通信品質、信頼性の向上を図るものである。なお、変形例の負荷分散システム１ａの構成は基本的には、図４で示した負荷分散システム１の構成と同じであるので、差異のある構成、動作を中心にして以降説明する。
機能ブロックの相違点として、前段振分装置２０における送信バイト数測定機能では、フレームの宛先アドレス、フレーム長、ユーザ識別子を取得し、ユーザ識別子毎、かつ宛先アドレス毎の送信バイト数を送信バイト数保存テーブルＴ２に書き込み、送信バイト数保存テーブルＴ２では、ユーザ毎かつ宛先アドレス毎の送信バイト数を保存する。
一方、管理装置３０における振り分け先制御では、ユーザ毎に独立した設定を振り分け先対応テーブルＴ１の内容としてフレーム化する機能のほかに、すべてのユーザのトラフィック量を総合して負荷分散装置１０−１〜１０−ｎへのトラフィックの偏りを検出し、その偏り具合に応じて特定ユーザの振り分け先対応テーブルＴ１の内容を修正する機能を持つ。
具体的には、過負荷装置検出機能として、すべてのユーザの送信バイト数を総合したうえで送信バイト数を比較し、その最大値が、負荷分散装置が受け取れるトラフィック量（あらかじめ管理装置に設定されているものとする）を超えているか否かで過負荷装置を判断する。
また、振り分け量調整機能としては、過負荷装置として検出された負荷分散装置に対してトラフィックを送信しているユーザ群から、再割り当て対象とするユーザを選択する。そして、選択したユーザに対する負荷分散装置への割り当て分を減らし、最も送信トラフィック量の少ない負荷分散装置へ割り当て直すように、振り分け先対応テーブルＴ１を修正する。
次にマルチユーザ対応の負荷分散システム１ａの動作についてさらに詳しく説明する。ただし、図１〜図１４で上述した負荷分散システム１に対する差分の動作のみ説明する。
〔フレームの振り分け先決定〕
図１５はユーザ毎に独立した振り分け先対応テーブルを示す図である。振り分け先対応テーブルＴ１−１〜Ｔ１−ｎは、図に示したように、ユーザ毎に独立して存在している。
フレームを受信した振り分け先決定部２５−１は、ユーザ識別子及び発信元アドレスを抽出し、ハッシュ演算部２５ａ−１により、ユーザ識別子に対応する８値ハッシュ関数へ発信元アドレスを入力する。
振り分け先アドレス返信部２５ｂ−１は、ユーザ毎のハッシュ関数が出力したハッシュ値に対応するユーザ毎の振り分け先対応テーブルのエントリ内容（負荷分散装置のアドレス）を宛先アドレス書替部２６−１へ転送する。
〔送信バイト数測定〕
図１６は送信バイト数測定の概要を示す図である。宛先アドレス書替部２６−１からフレームを受け取った送信バイト数取得部２７−１は、フレームから宛先アドレス、フレーム長、ユーザ識別子を取得する。そして、送信バイト数保存部２８−１は、ユーザ識別子に該当する送信バイト数保存テーブルＴ２ａの宛先アドレスに対応するエントリに、フレーム長を加算していく。図では、複数のユーザ（ユーザ識別子）の負荷分散装置１０−１〜１０−ｎに対し、ユーザ毎に送信バイト数が保存されている様子が示されている。
〔再割り当て内容の決定〕
図１７は負荷分散装置毎の総送信バイト数の算出の様子を示す図である。過負荷装置検出部３２ａ−１では、送信バイト数通知部２９−１から受け取った送信バイト数を、負荷分散装置１０−１〜１０−ｎ毎に加算した値を算出する。
そして、加算結果を負荷分散装置の受信可能バイト数と比較する。負荷分散装置の受信可能バイト数はあらかじめ設定されているものとする。比較した結果、過負荷装置が検出された場合には、その装置を振り分け量調整部３２ｂ−１へ転送する。
図１８は最も大量のフレームを送信しているユーザの検出動作を示す図である。振り分け量調整部３２ｂ−１では、過負荷装置として検出された負荷分散装置に対して、フレームを送信している（送信バイト数が０でない）ユーザのうち、送信バイト数が最大のユーザを検出する。図の場合、過負荷装置が負荷分散装置１０−１であり、この中でトラフィック量の多いユーザはユーザ識別子１０番である。
そして、過負荷と検出された負荷分散装置に対応するユーザへの割り当て分を減らし、トラフィックの振り分け量を調整する（例えば、最も送信バイト数の少ない装置）に変更する（変更内容を生成する）。
次にハッシュ関数をより細かいものにして、振り分けの分散粒度（以下、単に粒度）を上げて（細かくして）振り分け処理を行う場合について説明する。なお、粒度とは、分散比の細かさのことで、粒度がＮならば、１／Ｎの単位で負荷分散を行うことができる（粒度が８ならばハッシュ値は０〜７、粒度が１６ならばハッシュ値は０〜１５の値を取る）。
負荷分散システム１、１ａにおける処理を行い、継続して送信バイト数を計測し続けた結果、２つの負荷分散装置間で割り当てを切り替えあっている（反復）状況が発生する場合がある。
ここで、８値のハッシュ演算を行っているときは、８つの振り分け、すなわち振り分け単位は、全トラフィックに対して１／８ということである。この場合、例えば、ｎステップ目で負荷分散装置Ａにトラフィックを割り当てたら過負荷となったので、負荷分散装置Ｂへ振り分け、次のｎ＋１ステップ目では負荷分散装置Ｂにトラフィックを割り当てたら過負荷となったので、負荷分散装置Ａへ振り分ける、といったことが反復して起こることがある。
このような現象は粒度が粗いために生じるものなので、２つの負荷分散装置間で割り当ての切り替えを相互に行っている状況を検出した場合には、例えば、８値を１６値へ、または８値を３２値へというように、ハッシュ関数の粒度をより細かくするように制御する。
図１９は切替回数保存テーブルを示す図である。切替回数保存テーブルＴ３は、振り分け量調整部３２ｂで管理される。振り分け量調整部３２ｂは、決定した割り当て内容から、振り分け前の負荷分散装置と、振り分け後の負荷分散装置との組をテーブルエントリとして、切替回数を切替回数保存テーブルＴ３に書き込む。
ここで、適当な時間間隔（例えば１時間）経過した時点で、切替回数保存テーブルＴ３を参照し、振り分け前の負荷分散装置（切替元）と振り分け後（切替先）の負荷分散装置が、互いに逆になっていて、切替回数が同じ（ゼロではない）、または差分が１となっているものを探す。
図の場合、負荷分散装置Ａ→負荷分散装置Ｃの切替回数が１０、負荷分散装置Ｃ→負荷分散装置Ａの切替回数が９なので、負荷分散装置Ａと負荷分散装置Ｃとの間で反復状況が起きていることがわかる。したがって、振り分け量調整部３２ｂは、ハッシュ関数の粒度を上げる内容を制御フレームに挿入して、前段振分装置２０へ送信する。なお、ハッシュ関数の粒度を再設定する制御は、負荷分散しシステム１、１ａの両方に適用するものである。
次にフレーム廃棄処理について説明する。負荷分散システム１、１ａにおける処理を行い、管理装置３０で振り分け先を変更するにあたって、別の負荷分散装置に振り分けるのではなく、該当のフレームを廃棄するようにする。
具体的な動作について説明すると、過負荷装置検出部３２ａが、負荷分散装置Ａを過負荷と判断したとする。また、同時に負荷分散装置Ｂ、Ｃは受信バイト数ちょうどで処理を行っていたとする。このとき、負荷分散装置Ａのトラフィックを負荷分散装置Ｂ、Ｃに振り分けたとしても、振り分けられた負荷分散装置Ｂ、Ｃが今度は過負荷状態になってしまう。
このような場合、振り分け量調整部３２ｂは、振り分け先対応テーブルＴ１の負荷分散装置Ａへの割り当てを「廃棄」に設定する（なお、上記の条件に限らず、単に過負荷と検出された負荷分散装置に対してフレーム廃棄を設定してもよい）。そして、前段振分装置２０の送信バイト数測定機能では、宛先が「廃棄」のフレームについては、バイト数のカウントを行わず、そのまま出力ポート決定部２２へ転送する（または、廃棄先を計測するカウンタを送信バイト数保存テーブルＴ２に用意し、そのバイト数をカウントしてから出力ポート決定部２２へ転送してもよい）。
出力ポート決定部２２では、フレームの宛先が「廃棄」である場合、どこにも転送せず、そのまま廃棄する（実際には、どこにも出力されないため、新しいフレームで上書きされる）。なお、フレーム廃棄処理は、負荷分散システム１、１ａの両方に適用するものである。
以上説明したように、本発明によれば、高速性を維持したまま、トラフィック振り分けの偏りを修正することができるので、トラフィックが振り分けられた先の装置でフレーム溢れ発生を防ぐことが可能になる。また、ユーザ多重を考慮して、高速で偏りの少ないトラフィックの振り分けを実現するので、高速性を維持したまま、多重された複数ユーザ間での相互干渉の発生を防ぐことが可能になる。
以上説明したように、本発明の負荷分散システムは、前段振分装置では、入力フレームから送信バイト数を測定し、管理装置では、送信バイト数と負荷分散装置が受信可能なバイト数とを比較して、過負荷状態になっている負荷分散装置を検出し、負荷分散装置へのトラフィックの振り分け量を調整する構成とした。これにより、負荷の測定及び負荷分散制御を効率よく高速に行うことができるので、通信品質、信頼性の向上を図ることが可能になる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【図１】
2004088940.tif 000003
【図２】
2004088940.tif 000004
【図３】
2004088940.tif 000005
【図４】
2004088940.tif 000006
【図５】
2004088940.tif 000007
【図６】
2004088940.tif 000008
【図７】
2004088940.tif 000009
【図８】
2004088940.tif 000010
【図９】
2004088940.tif 000011
【図１０】
2004088940.tif 000012
【図１１】
2004088940.tif 000013
【図１２】
2004088940.tif 000014
【図１３】
2004088940.tif 000015
【図１４】
2004088940.tif 000016
【図１５】
2004088940.tif 000017
【図１６】
2004088940.tif 000018
【図１７】
2004088940.tif 000019
【図１８】
2004088940.tif 000020
【図１９】
2004088940.tif 000021
【国際調査報告】
2004088940.tif 000022
2004088940.tif 000023
2004088940.tif 000024
2004088940.tif 000025