(57)【特許請求の範囲】
【請求項１】
データを受信し処理する第１情報処理装置の負荷を監視する負荷監視部と、
前記第１情報処理装置の負荷が閾値以上になった場合、前記第１情報処理装置のＩＰアドレスと自装置のＭＡＣアドレスとを対応付けるように、前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを該指定されたＩＰアドレスに対応付けられたＭＡＣアドレスに向けて送信する第２情報処理装置に指示する対応指示部と、
前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを前記第２情報処理装置から受信するデータ受信部と、
前記データ受信部が受信したデータを所定の送信レートで前記第１情報処理装置に送信する送信部と
を備えたことを特徴とする通信中継装置。
【請求項２】
前記対応指示部は、前記第２情報処理装置が有するＡＲＰテーブルを更新させることにより、ＩＰアドレスとＭＡＣアドレスの対応を変更させることを特徴とする請求項１に記載の通信中継装置。
【請求項３】
前記対応指示部は、ＧＡＲＰを用いて前記第２情報処理装置のＡＲＰテーブルを更新させることを特徴とする請求項１又は請求項２に記載の通信中継装置。
【請求項４】
前記対応指示部は、前記第１情報処理装置の負荷が閾値以上になった場合、前記第２情報処理装置における前記第１情報処理装置のＩＰアドレスとＭＡＣアドレスとの対応付けを消去させ、前記第２情報処理装置から前記第１情報処理装置のＩＰアドレスに対応するＭＡＣアドレスの通知要求を受けて、前記第１情報処理装置のＩＰアドレスと対応するＭＡＣアドレスとして自装置のアドレスを通知することで、前記第１情報処理装置のＩＰアドレスと自装置のＭＡＣアドレスとを対応付けるように第２情報処理装置に指示することを特徴とする請求項１又は請求項２に記載の通信中継装置。
【請求項５】
前記対応指示部は、前記第１情報処理装置の負荷が閾値未満になった場合に、前記第１情報処理装置のＩＰアドレスと前記第１情報処理装置のＭＡＣアドレスとを対応付けるように前記第２情報処理装置に対して指示することを特徴とする請求項１に記載の通信中継装置。
【請求項６】
データを処理する第１情報処理装置と、データを前記第１情報処理装置へ送信する第２情報処理装置と、通信中継装置とを備えた通信中継システムであって、
前記通信中継装置は、
データを受信し処理する第１情報処理装置の負荷を監視する負荷監視部と、
前記第１情報処理装置の負荷が閾値以上になった場合、前記第１情報処理装置のＩＰアドレスと自装置のＭＡＣアドレスとを対応付けるように、前記第２情報処理装置に指示する対応指示部と、
前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを前記第２情報処理装置から受信するデータ受信部と、
前記データ受信部が受信したデータを所定の送信レートで前記第１情報処理装置に送信する送信部とを備え
前記第２情報処理装置は、
前記第１情報処理装置のＩＰアドレスと対応するＭＡＣアドレスを記憶する記憶部と、
前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを該指定されたＩＰアドレスに対応付けられたＭＡＣアドレスに向けて送信するデータ送信部と
前記中継装置からの対応付けの指示を受けて、前記第１情報処理装置のＩＰアドレスに対応付けて前記中継装置のＭＡＣアドレスを記憶部に記憶させる対応変更部とを備えた
ことを特徴とする通信中継システム。
【請求項７】
前記中継装置の前記対応指示部は、前記第１情報処理装置の負荷が閾値以上になった場合、前記第２情報処理装置における前記第１情報処理装置のＩＰアドレスとＭＡＣアドレスとの対応付けを消去させ、前記第２情報処理装置から前記第１情報処理装置のＩＰアドレスに対応するＭＡＣアドレスの通知要求を受けて、前記第１情報処理装置のＩＰアドレスと対応するＭＡＣアドレスとして自装置のアドレスを通知することで、前記第１情報処理装置のＩＰアドレスと自装置のＭＡＣアドレスとを対応付けるように第２情報処理装置に指示し、
前記第２情報処理装置は、前記第１情報処理装置のＩＰアドレスに対応するＭＡＣアドレスの情報が前記記憶部にない場合、前記中継装置に対して前記第１情報処理装置のＩＰアドレスに対応するＭＡＣアドレスの通知要求を送信する通知要求送信部をさらに備え、
前記対応変更部は、前記第１情報処理装置のＩＰアドレスとＭＡＣアドレスとの対応付けの消去指示を受けて、自己が記憶する前記第１情報処理装置のＩＰアドレスとＭＡＣアドレスとの対応付けを前記記憶部から消去し、前記中継装置からの指示を受けて、前記第１情報処理装置のＩＰアドレスに対応付けて前記中継装置のＭＡＣアドレスを記憶部に記憶させる
ことを特徴とする請求項６に記載の通信中継システム。
【請求項８】
通信中継装置を制御する制御方法であって、
前記通信中継装置が、
データを受信し処理する第１情報処理装置の負荷を監視し、
前記第１情報処理装置の負荷が閾値以上になった場合、前記第１情報処理装置のＩＰアドレスと自装置のＭＡＣアドレスとを対応付けるように、前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを該指定されたＩＰアドレスに対応付けられたＭＡＣアドレスに向けて送信する第２情報処理装置に指示し、
前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを前記第２情報処理装置から受信し、
受信した前記データを所定の送信レートで前記第１情報処理装置に送信する
ことを特徴とする通信中継装置制御方法。
【請求項９】
データを受信し処理する第１情報処理装置の負荷を監視し、
前記第１情報処理装置の負荷が閾値以上になった場合、前記第１情報処理装置のＩＰアドレスと中継処理装置のＭＡＣアドレスとを対応付けるように、前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを該指定されたＩＰアドレスに対応付けられたＭＡＣアドレスに向けて送信する第２情報処理装置に指示し、
前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを前記第２情報処理装置から受信し、
受信した前記データを所定の送信レートで前記第１情報処理装置に送信する
処理をコンピュータに実行させることを特徴とする通信中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信中継装置、通信中継システム、通信中継装置制御方法及び通信中継プログラムに関する。
【背景技術】
【０００２】
アプリケーションを実行している情報処理装置の処理能力の低下は、アプリケーション利用者の体感性能に大きく影響を及ぼす。例えば、情報処理装置が処理能力以上の過剰なリクエストを受信するようなケースでは、過剰なリクエスト受付処理により他の内部処理に遅延が発生し、その情報処理装置に著しい処理能力低下を引き起こす。
【０００３】
特に、ＣＰＵ（Central  Processing  Unit）の使用率が１００％を超えた場合、８０％や９０％の使用率で稼動している場合に比べて、情報処理装置の処理能力は格段に落ちてしまう。
【０００４】
そこで、サーバの処理能力に対して定常的な過負荷状態が発生しているケースにおいて、例えば、サーバロードバランサを導入して負荷を複数のサーバに分散させる従来技術がある。また、他の処理装置にデータを配信するサーバにおいて、過負荷になった場合に、他の処理装置から１台を選び、選択した処理装置にデータの配信を肩代わりさせる従来技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２７３２０号公報
【特許文献２】特開２００５−３２２０３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ロードバランサを用いた従来技術では、ロードバランサによる負荷分散偏りが発生する場合や、１つのフローが膨大なリクエストを送信する場合などには、１台の情報処理装置に大きな負荷がかかってしまうおそれがある。この場合、大きな負荷がかかった情報処理装置ではやはり、著しい性能低下を引き起こすおそれがある。
【０００７】
また、他の処理装置に処理を肩代わりさせる従来技術であっても、１つのフローが膨大なリクエストを送信する場合などには、やはり１台の情報処理装置に大きな負荷がかかってしまうおそれがある。
【０００８】
さらに、短期的な過負荷状態を解消する方法として、リクエスト送信元へリクエストの送信の抑制指示を通知して過負荷を解消することも考えられる。しかし、このような方法では、リクエスト送信側及びリクエスト受信側の双方の情報処理装置に、複雑な機構を追加することが必要となり、データを受信する情報処理装置の処理負荷を緩和することは容易ではない。
【０００９】
１つの側面では、本発明は、受信データによる情報処理装置の処理負荷を容易に緩和する通信中継装置、通信中継システム、通信中継装置制御方法及び通信中継プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示する通信中継装置、通信中継システム、通信中継装置制御方法及び通信中継プログラムは、一つの態様において、負荷監視部は、データを受信し処理する第１情報処理装置の負荷を監視する。対応指示部は、前記第１情報処理装置の負荷が閾値以上になった場合、前記第１情報処理装置のＩＰアドレスと自装置のＭＡＣアドレスとを対応付けるように、前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを該指定されたＩＰアドレスに対応付けられたＭＡＣアドレスに向けて送信する第２情報処理装置に指示する。データ受信部は、前記第１情報処理装置のＩＰアドレスが送信先として指定されたデータを前記第２情報処理装置から受信する。送信部は、前記データ受信部が受信したデータを所定の送信レートで前記第１情報処理装置に送信する。
【発明の効果】
【００１１】
１実施態様では、受信データによる情報処理装置の処理負荷を容易に緩和できるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１に係る通信中継装置を含む通信中継システムのブロック図である。
【図２】図２は、ＡＲＰのフォーマットの一例を示す図である。
【図３】図３は、実施例１においてデータ中継機能の活性化時に生成されるＧＡＲＰの内容を表す図である。
【図４】図４は、実施例１においてデータ中継機能の非活性化時に生成されるＧＡＲＰの内容を表す図である。
【図５】図５は、サーバが過負荷になる前のデータ送信状態を表す図である。
【図６】図６は、サーバが過負荷になったときのＧＡＲＰの送信状態を表す図である。
【図７】図７は、サーバが過負荷になったときのＡＲＰテーブルの遷移を表す図である。
【図８】図８は、送信レートを調整している場合のデータ送信状態を表す図である。
【図９】図９は、サーバが低負荷になったときのＡＲＰテーブルの遷移を表す図である。
【図１０】図１０は、実施例１に係る通信中継装置によるデータ中継の処理のフローチャートである。
【図１１】図１１は、実施例２に係る通信中継装置を含む通信中継システムのブロック図である。
【図１２】図１２は、実施例２においてデータ中継機能活性化時に生成されるＧＡＲＰの内容を表す図である。
【図１３】図１３は、実施例２においてデータ中継機能非活性化時に生成されるＧＡＲＰの内容を表す図である。
【図１４】図１４は、サーバが過負荷になったときのＡＲＰテーブルクリアメッセージの送信状態を表す図である。
【図１５】図１５は、サーバが過負荷になったときのＡＲＰテーブルの遷移を表す図である。
【図１６】図１６は、ＡＲＰリクエスト及びＡＲＰ応答を送受信している状態を表す図である。
【図１７】図１７は、ＡＲＰリクエスト及びＡＲＰ応答の送受信によるＡＲＰテーブルの遷移を表す図である。
【図１８】図１８は、送信レートを調整している場合のデータ送信状態を表す図である。
【図１９】図１９は、サーバが低負荷になったときのＡＲＰテーブルの遷移を表す図である。
【図２０】図２０は、実施例２に係る通信中継装置によるデータ中継の処理のフローチャートである。
【図２１】図２１は、実施例２に係るクライアントにおけるＡＲＰ受信時の処理のフローチャートである。
【図２２】図２２は、実施例２に係るクライアントにおけるＡＲＰリクエストの送信処理のフローチャートである。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する通信中継装置、通信中継システム、通信中継装置制御方法及び通信中継プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する通信中継装置、通信中継システム、通信中継装置制御方法及び通信中継プログラムが限定されるものではない。
【実施例１】
【００１４】
図１は、実施例１に係る通信中継装置を含む通信中継システムのブロック図である。本実施例に係る通信中継システムは、図１に示すように、通信中継装置１、クライアント２及びサーバ３を有する。図２は、ＡＲＰのフォーマットの一例を示す図である。ここで、本実施例では、サーバ３に対してクライアント２がデータを送信する場合で説明するがこれに限らず、データの送信側及び受信側のいずれのホストもデータ通信を行う情報処理装置であれば特に制限はない。例えば、データの送信側のホストがサーバで受信側のホストがクライアントでもよいし、データの送信側及び受信側のいずれのホストもクライアントでもよい。通信中継装置１、クライアント２及びサーバ３は、Ｌ２（Layer  2）ネットワークで接続されている。
【００１５】
通信中継装置１は、ＣＰＵ負荷監視部１１、ＡＲＰ(Address  Resolution  Protocol)テーブル変更指示部１２、データ中継部１３及び送信レート調整部１４を備える。
【００１６】
ＣＰＵ負荷監視部１１は、サーバ３のＣＰＵの負荷を監視している。そして、ＣＰＵ負荷監視部１１は、ＣＰＵの負荷が閾値以上となった場合（以下では、「過負荷」という場合がある。）、データ中継機能の活性化をＡＲＰテーブル変更指示部１２へ通知する。ＣＰＵの負荷の閾値は、例えば「ＣＰＵの使用率が８０％」などと予め設定されている。
【００１７】
また、ＣＰＵ負荷監視部１１は、ＣＰＵの負荷が閾値未満になった場合（以下では、「低負荷」という場合がある。）、データ中継機能の非活性化の通知をＡＲＰテーブル変更指示部１２へ送信し、データ中継機能の非活性化を指示する。ここで、本実施例では、ＣＰＵ負荷監視部１１は、１つの閾値以上か未満かを基準にＡＲＰテーブル変更指示部１２に通知を行っているが、これは他の方法でもよい。例えば、ＣＰＵ負荷監視部１１は、ＣＰＵ使用率が８０％以上の場合、データ中継機能の活性化をＡＲＰテーブル変更指示部１２に通知する。その後、ＣＰＵ負荷監視部１１は、ＣＰＵ使用率が５０％未満になった場合、データ中継機能の非活性化をＡＲＰテーブル変更指示部１２に通知する。このように、データ中継機能の活性化と非活性化とにおいて異なる閾値を用いてもよい。
【００１８】
ＡＲＰテーブル変更指示部１２は、ＣＰＵ負荷監視部１１からデータ中継機能の活性化の通知を受けると、ＧＡＲＰ（Gratuitous  ARP）を作成する。
【００１９】
ここで、ＧＡＲＰについて説明する。ＡＲＰは、図２に示すようなフォーマットを有する。図２は、ＡＲＰのフォーマットの一例を示す図である。ＡＲＰは、宛先ＭＡＣアドレス１０１、ソースＭＡＣアドレス１０２、ＡＲＰフレーム識別子コード値１０３及びペイロード１０４を有している。宛先ＭＡＣアドレスは、ＡＲＰ自体の宛先を表すＭＡＣアドレスである。ＩＰアドレスに対応するＭＡＣアドレスを問い合わせるための通常のＡＲＰ要求であれば、宛先ＭＡＣアドレスはブロードキャストになる。ソースＭＡＣアドレスは、ＡＲＰ自体の送信元を表すＭＡＣアドレスである。ＡＲＰフレーム識別コード値は、ＡＲＰであることを表す値である。
【００２０】
ペイロード１０４は、ハードウェアタイプ１４１、プロトコルタイプ１４２、ハードウェア長１４３、プロトコル長１４４及びオペレーションコード１４５を有している。さらに、ペイロード１０４は、送信元ＭＡＣアドレス１４６、送信元ＩＰアドレス１４７、送信先ＭＡＣアドレス１４８及び送信元ＩＰアドレス１４９を有している。
【００２１】
ハードウェアタイプ１４１は、どのようなネットワークを用いているかを表す。プロトコルタイプ１４２は、ネットワーク層のプロトコルに何を用いているかを表す。ハードウェア長１４３は、ＭＡＣアドレスの長さを表す。プロトコル長１４４は、ＩＰアドレスの長さを表す。オペレーションコード１４５は、ＡＲＰリクエストかＡＲＰリプライかを表す。
【００２２】
送信元ＭＡＣアドレス１４６は、当該ＡＲＰを送信した送信元のＭＡＣアドレスである。送信元ＩＰアドレス１４７は、当該ＡＲＰを送信した送信元のＩＰアドレスである。送信先ＩＰアドレス１４９は、ＡＲＰリクエストの場合、送信元の装置が取得を要求するＭＡＣアドレスに対応するＩＰアドレスである。送信先ＭＡＣアドレス１４８は、送信先ＩＰアドレスに対応するＭＡＣアドレスである。言い換えれば、ＡＲＰリクエストの場合、送信元の装置が取得を要求するＭＡＣアドレスである。
【００２３】
特定のＩＰアドレスに対応するＭＡＣアドレスを要求する通常のＡＲＰであれば、送信元ＩＰアドレス１４７と送信先ＩＰアドレス１４９とは異なるものとなる。これに対して、ＧＡＲＰは、送信元ＩＰアドレスと送信先ＩＰアドレスとが同じＡＲＰを指す。本実施例では、クライアント２は、ＧＡＲＰを受信した場合、そのＧＡＲＰの送信元ＩＰアドレス及び送信先ＩＰアドレスに記載されたＩＰアドレスに対応するＭＡＣアドレスを、送信元ＭＡＣアドレスに書き換えることで、後述するＡＲＰテーブルを更新する。このような機能を有するクライアントを「ＧＡＲＰに対応したクライアント」と呼ぶ場合がある。
【００２４】
ＡＲＰテーブル変更指示部１２は、ＣＰＵ負荷監視部１１からデータ中継機能の活性化の通知を受けたときに、サーバ３のＩＰアドレスに対応するＭＡＣアドレスを自装置のＭＡＣアドレスに変更するためのＧＡＲＰを生成する。すなわち、このＧＡＲＰは、サーバ３へ送信されるデータを通信中継装置１に送信させるための擬似情報である。図３は、実施例１においてデータ中継機能の活性化時に生成されるＧＡＲＰの内容を表す図である。具体的には、送信元ＩＰアドレス１４７及び送信先ＩＰアドレス１４９はいずれも、サーバ３のＩＰアドレスとなっている。これにより、当該ＡＲＰが、ＧＡＲＰであることが特定できる。また、送信元ＭＡＣアドレス１４６及び送信先ＭＡＣアドレス１４８はいずれも、自装置である通信中継装置１のＭＡＣアドレスとなっている。これにより、このＧＡＲＰを受信したクライアントは、ＡＲＰテーブルに記載されたサーバ３のＩＰアドレスに対応するＭＡＣアドレスを通信中継装置１のＭＡＣアドレスに書き換える。
【００２５】
さらに、ＡＲＰテーブル変更指示部１２は、過負荷となったサーバ３のＩＰアドレス及びＭＡＣアドレスとともに、データ中継機能の活性化をデータ中継部１３へ通知する。
【００２６】
また、ＡＲＰテーブル変更指示部１２は、サーバ３へのデータの送信を中継している状態でデータ中継機能の非活性化の通知を受けると、サーバ３のＩＰアドレスに対応するＭＡＣアドレスをサーバ３のＭＡＣアドレスに戻すためのＧＡＲＰを生成する。すなわち、このＧＡＲＰは、サーバ３へ送信するデータを、そのサーバ３に正しく送信させるようにするための正規情報である。図４は、実施例１においてデータ中継機能の非活性化時に生成されるＧＡＲＰの内容を表す図である。具体的には、送信元ＩＰアドレス１４７及び送信先ＩＰアドレス１４９はいずれも、サーバ３のＩＰアドレスとなっている。これにより、当該ＡＲＰが、ＧＡＲＰであることが特定できる。また、送信元ＭＡＣアドレス１４６及び送信先ＭＡＣアドレス１４８はいずれも、サーバ３のＭＡＣアドレスとなっている。これにより、このＧＡＲＰを受信したクライアントは、ＡＲＰテーブルに記載されたサーバ３のＩＰアドレスに対応するＭＡＣアドレスをサーバ３のＭＡＣアドレスに書き換える。
【００２７】
さらに、ＡＲＰテーブル変更指示部１２は、データ中継機能の非活性化の通知をデータ中継部１３へ送信する。
【００２８】
データ中継部１３は、過負荷となったサーバ３のＩＰアドレス及びＭＡＣアドレスとともに、サーバ３宛のデータの中継を行う通知をＡＲＰテーブル変更指示部１２から受信する。データ中継部１３は、受信したサーバ３のＩＰアドレス及びＭＡＣアドレスを保持する。そして、データ中継部１３は、メッセージ中継機能を活性化する。
【００２９】
メッセージ中継機能が活性化されたデータ中継部１３は、クライアント２のデータ送信部２１からサーバ３宛のデータを受信する。クライアント２のデータ送信部２１から送信されたサーバ３宛のデータにはサーバ３のＩＰアドレスが含まれている。そこで、データ中継部１３は、保持しているＩＰアドレスに対応するＭＡＣアドレスの情報から、サーバ３のＭＡＣアドレスを取得する。そして、データ中継部１３は、サーバ３宛のデータの送信先のＭＡＣアドレスをサーバ３のＭＡＣアドレスに変更する。その後、データ中継部１３は、サーバ３宛のデータを送信レート調整部１４へ出力する。
【００３０】
また、データ中継部１３は、メッセージ中継機能が活性化された状態で、サーバ３のデータ中継機能の非活性化の通知をＡＲＰテーブル変更指示部１２から受信すると、メッセージ中継機能を非活性化する。
【００３１】
送信レート調整部１４は、サーバ３宛のデータの入力をデータ中継部１３から受ける。さらに、送信レート調整部１４は、サーバ３のＣＰＵの負荷状態をＣＰＵ負荷監視部１１から取得する。そして、送信レート調整部１４は、受信したデータを蓄積し、サーバ３のＣＰＵの負荷が所定値を超えないように送信レートを調整しながら、データをサーバ３へ送信する。例えば、送信レート調整部１４は、段階的な送信レートの抑制率を記憶しておき、低い抑制率を用いて送信レートを調整し、それでもＣＰＵの負荷が所定値を超える場合には、より高い抑制率を用いて調整レートを調整する。具体的例を、送信レート調整部１４は、抑制率として１０％、２０％及び５０％を記憶しており、所定値としてＣＰＵ使用率９０％を記憶している場合で説明する。ここで、１０％の抑制率とは、送信レートを抑制せずにデータをサーバ３に送信する場合に比較して送信レートを１０％絞って送信することを指す。送信レート調整部１４は、抑制率１０％でサーバ３へのデータ送信を行う。そして、送信レート調整部１４は、サーバ３のＣＰＵ使用率をＣＰＵ負荷監視部１１から受ける。この状態でサーバ３の使用率が９０％を下回って入れば送信レート調整部１４は、抑制率１０％を維持する。一方、この状態でサーバ３の使用率が９０％を上回っていれば、送信レート調整部１４は、抑制率を２０％に引き上げる。それでも、サーバ３の使用率が９０％を上回っていれば、送信レート調整部１４は、抑制率を５０％に引き上げる。この送信レート調整部１４が、「送信部」の一例にあたる。
【００３２】
ここでは、抑制率を引き上げる場合のみ説明したが、抑制率の引き下げも同様であり、送信レート調整部１４は、ＣＰＵの負荷に合わせて抑制率を順次下げていく。
【００３３】
また、本実施例では、データ中継機能の活性化の閾値と抑制率決定の所定値とを異ならせているが、これらは同じ値でもよい。例えば、上述したように、データ中継機能の活性化の閾値とデータ中継機能の非活性化の閾値とを異ならせて、データ中継機能の活性化の閾値と抑制率決定の所定値とを一致させることもできる。
【００３４】
クライアント２は、データ送信部２１、ＡＲＰテーブル変更部２２及び記憶部２３を有している。
【００３５】
記憶部２３は、ＡＲＰテーブル２３０を記憶している。ＡＲＰテーブル２３０は、ＩＰアドレスとＭＡＣアドレスとの対応を記載したテーブルである。
【００３６】
データ送信部２１は、ＡＲＰテーブル２３０を参照してデータに含まれる送信先のＩＰアドレスに対応するＭＡＣアドレスを取得する。そして、データ送信部２１は、取得したＭＡＣアドレスに向けてデータを送信する。
【００３７】
例えば、サーバ３のＩＰアドレスに対応させてサーバ３のＭＡＣアドレスがＡＲＰテーブル２３０に登録されている場合を説明する。データ送信部２１は、サーバ３宛のデータに含まれるサーバ３のＩＰアドレスを取得する。そして、データ送信部２１は、サーバ３のＩＰに対応するＭＡＣアドレスとしてサーバ３のＭＡＣアドレスをＡＲＰテーブル２３０から取得する。そして、データ送信部２１は、サーバ３のＭＡＣアドレスに向けてデータを送信する。この場合、データ送信部２１は、サーバ３宛のデータを正規の宛先であるサーバ３に送信する。
【００３８】
次に、サーバ３のＩＰアドレスに対応させて通信中継装置１のＭＡＣアドレスがＡＲＰテーブル２３０に登録されている場合を説明する。データ送信部２１は、サーバ３宛のデータに含まれるサーバ３のＩＰアドレスを取得する。そして、データ送信部２１は、サーバ３のＩＰに対応するＭＡＣアドレスとして通信中継装置１のＭＡＣアドレスをＡＲＰテーブル２３０から取得する。そして、データ送信部２１は、通信中継装置１のＭＡＣアドレスに向けてデータを送信する。この場合、データ送信部２１は、サーバ３宛のデータを擬似の宛先である通信中継装置１に送信する。
【００３９】
ＡＲＰテーブル変更部２２は、ＧＡＲＰをＡＲＰテーブル変更指示部１２から受信する。そして、ＡＲＰテーブル変更部２２は、ＧＲＡＰの送信元ＩＰアドレス及び送信先ＩＰアドレスに記載されたＩＰアドレスに対応するＭＡＣアドレスが、ＧＡＲＰの送信元ＭＡＣアドレスになるように、ＡＲＰテーブルを書き換える。
【００４０】
例えば、図３に示す擬似情報を有するＧＡＲＰを受信した場合、ＡＲＰテーブル変更部２２は、サーバ３のＩＰアドレスに対応するＭＡＣアドレスを通信中継装置１のＭＡＣアドレスに書き換える。また、図４に示す正規情報を有するＧＡＲＰを受信した場合、ＡＲＰテーブル変更部２２は、サーバ３のＩＰアドレスに対応するＭＡＣアドレスをサーバ３のＭＡＣアドレスに書き換える。
【００４１】
サーバ３は、データ送信部２１及び送信レート調整部１４からデータを受信する。そして、サーバ３は、ＣＰＵを用いてデータを処理する。
【００４２】
次に、図５〜図９を参照して、サーバ３が過負荷になった場合及び低負荷になった場合のデータの流れの遷移及びＡＲＰテーブルの遷移を説明する。図５は、サーバが過負荷になる前のデータ送信状態を表す図である。図６は、サーバが過負荷になったときのＧＡＲＰの送信状態を表す図である。図７は、サーバが過負荷になったときのＡＲＰテーブルの遷移を表す図である。図８は、送信レートを調整している場合のデータ送信状態を表す図である。図９は、サーバが低負荷になったときのＡＲＰテーブルの遷移を表す図である。
【００４３】
ここでは、クライアント２として、クライアント２Ａ〜２Ｄが配置されている場合で説明する。通信中継装置１、クライアント２Ａ〜２Ｄ及びサーバ３は、Ｌ２ネットワークで接続されている。以下では、通信中継装置１のＭＡＣアドレスをｍａｃｇとする。また、クライアント２Ａ〜２ＤのＩＰアドレスをそれぞれｉｐ２Ａ〜２Ｄとし、ＭＡＣアドレスをそれぞれｍａｃ２Ａ〜２Ｄとする。さらに、サーバ３のＩＰアドレスをｉｐＳとし、ＭＡＣアドレスをｍａｃＳとする。
【００４４】
図５に示すように、サーバ３が過負荷でない場合は、各クライアント２Ａ〜２Ｄがそれぞれ直接サーバ３にデータを送信している。通信中継装置１はサーバ３のＣＰＵ負荷を監視している。
【００４５】
図５の状態で、通信中継装置１がサーバ３のＣＰＵの過負荷を検出すると、図６のように、通信中継装置１は、サーバ３のＩＰアドレスに対応するＭＡＣアドレスを通信中継装置１のＭＡＣアドレスに変更させるＧＡＲＰをブロードキャストする。これにより、各クライアント２Ａ〜２ＤにおけるＡＲＰテーブル２３０が更新される。
【００４６】
例えば、クライアント２ＣにおけるＡＲＰテーブル２３０について説明する。図７のテーブル２０１は、サーバが過負荷になる前のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。また、テーブル２０２は、サーバが過負荷になった後のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。テーブル２０１では、ＩＰ欄２１１にはサーバ３のＩＰアドレスであるｉｐＳが記載され、それに対応するＭＡＣ欄２１２にはサーバ３のＭＡＣアドレスであるｍａｃＳが記載されている。そして、クライアント２が通信中継装置１から擬似情報のＧＡＲＰを受け取ると、テーブル２０１は、テーブル２０２のように書き換えられる。テーブル２０２では、ＩＰ欄２２１にはサーバ３のＩＰアドレスであるｉｐＳが記載され、それに対応するＭＡＣ欄２２２には通信中継装置１のＭＡＣアドレスであるｍａｃｇが記載されている。このように、各クライアント２Ａ〜２ＤのＡＲＰテーブル２３０が書き換えられる。
【００４７】
その後、クライアント２Ａ〜２Ｄは、テーブル２０２の状態のＡＲＰテーブル２３０を参照してサーバ３宛のデータを送信するので、実際には、図８のように、クライアント２Ａ〜２Ｄは、サーバ３宛のデータを通信中継装置１へ送信する。そして、通信中継装置１は、クライアント２Ａ〜２Ｄから受信したデータを、送信レートを調整しながらサーバ３へ送信する。図８では一例として、点線矢印でクライアント２Ｃがサーバ３へ向けてデータを送信した場合のデータの流れを表し、実線矢印でクライアント２Ａがサーバ３へ向けてデータを送信した場合のデータの流れを表している。
【００４８】
図８の状態で、通信中継装置１がサーバ３のＣＰＵの低負荷を検出すると、通信中継装置１は、サーバ３のＩＰアドレスに対応するＭＡＣアドレスをサーバ３のＭＡＣアドレスに変更させるＧＡＲＰをブロードキャストする。これにより、各クライアント２Ａ〜２ＤにおけるＡＲＰテーブル２３０が更新される。
【００４９】
例えば、クライアント２ＣにおけるＡＲＰテーブル２３０について説明する。図９のテーブル２０２は、図８におけるテーブル２０２と同じものであり、サーバが過負荷の状態のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。また、テーブル２０３は、サーバが低負荷になった後のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。テーブル２０２では、ＩＰ欄２２１にはサーバ３のＩＰアドレスであるｉｐＳが記載され、それに対応するＭＡＣ欄２２２には通信中継装置１のＭＡＣアドレスであるｍａｃｇが記載されている。そして、クライアント２が通信中継装置１から正規情報のＧＡＲＰを受け取ると、テーブル２０２は、テーブル２０３のように書き換えられる。テーブル２０３では、ＩＰ欄２３１にはサーバ３のＩＰアドレスであるｉｐＳが記載され、それに対応するＭＡＣ欄２３２にはサーバ３のＭＡＣアドレスであるｍａｃＳが記載されている。このように、各クライアント２Ａ〜２ＤのＡＲＰテーブル２３０が書き換えられる。
【００５０】
その後、クライアント２Ａ〜２Ｄは、テーブル２０３の状態のＡＲＰテーブル２３０を参照してサーバ３宛のデータを送信する。この場合、過負荷になる前の状態である図５のように、クライアント２Ａ〜２Ｄは、サーバ３宛のデータを直接サーバ３へ送信する。
【００５１】
次に、図１０を参照して、実施例１に係る通信中継装置１によるデータ中継の処理について説明する。図１０は、実施例１に係る通信中継装置によるデータ中継の処理のフローチャートである。
【００５２】
ＣＰＵ負荷監視部１１は、サーバ３のＣＰＵの負荷を監視する（ステップＳ１０１）。そして、ＣＰＵ負荷監視部１１は、ＣＰＵの負荷が閾値以上か否かを判定する（ステップＳ１０２）。ＣＰＵの負荷が閾値未満の場合（ステップＳ１０２：否定）、  ＣＰＵ負荷監視部１１は、ステップＳ１０１に戻る。
【００５３】
これに対して、ＣＰＵの負荷が閾値以上の場合（ステップＳ１０２：肯定）、ＣＰＵ負荷監視部１１は、データ中継機能の活性化をＡＲＰテーブル変更指示部１２へ通知する。これを受けて、ＡＲＰテーブル変更指示部１２は、擬似情報を含むＧＡＲＰをブロードキャストで送信する（ステップＳ１０３）。
【００５４】
さらに、ＡＲＰテーブル変更指示部１２は、サーバ３のＩＰアドレス及びＭＡＣアドレスとともに、データ中継機能の活性化をデータ中継部１３へ通知する。これを受けて、データ中継部１３は、サーバ３のＩＰアドレス及びＭＡＣアドレスを保持するともに、データ中継機能を活性化させる（ステップＳ１０４）。
【００５５】
その後、データ中継部１３は、サーバ３宛のデータをクライアント２から受信する（ステップＳ１０５）。そして、データ中継部１３は、保持しているサーバ３のＩＰアドレス及びＭＡＣアドレスを用いて、受信したデータの宛先ＭＡＣアドレスをサーバ３のＭＡＣアドレスに変換する（ステップＳ１０６）。その後、データ中継部１３は、データを送信レート調整部１４へ出力する。
【００５６】
送信レート調整部１４は、サーバ３のＣＰＵの負荷に合わせて送信レートを調整する（ステップＳ１０７）。そして、送信レート調整部１４は、データをサーバ３へ送信する（ステップＳ１０８）。
【００５７】
その後、ＣＰＵ負荷監視部１１は、ＣＰＵの負荷が閾値未満か否かを判定する（ステップＳ１０９）。ＣＰＵの負荷が閾値以上の場合（ステップＳ１０９：否定）、ＡＲＰテーブル変更指示部１２は、一定時間が経過したか否かを判定する（ステップＳ１１０）。一定時間経過していない場合、処理はステップＳ１０５へ戻る。これに対して、一定時間が経過している場合、ＡＲＰテーブル変更指示部１２は、ステップＳ１０３に戻る。
【００５８】
一方、ＣＰＵの負荷が閾値未満の場合（ステップＳ１０９：肯定）、ＡＲＰテーブル変更指示部１２は、正規情報のＧＡＲＰをクライアント２へ送信する（ステップＳ１１１）。そして、ＡＲＰテーブル変更指示部１２は、データ中継機能の非活性化をデータ中継装置に通知する。これを受けて、データ中継部１３は、データ中継機能を非活性化する（ステップＳ１１２）。
【００５９】
ここで、図１０のフローでは、サーバが過負荷になってから低負荷に戻るまでの一連の流れを説明したが、実際は、通信中継装置１は、図１０のフローを繰り返す。
【００６０】
以上に説明したように、本実施例に係る通信中継装置は、サーバの負荷が閾値を超えた場合に、クライアントからサーバ宛のデータを受信し、送信レートを調整しながらサーバにデータを送信する。これにより、データを受信する情報処理装置において、受信データによりＣＰＵの負荷が高騰する危険を軽減することができる。また、本実施例に係る通信中継装置によれば、長期的な過負荷及び短期的な過負荷いずれの場合にも、受信データによる情報処理装置の処理負荷を緩和することができる。
【００６１】
また、本実施例に係る通信中継装置は単純な構成によりデータを受信する情報処理装置の処理負荷を緩和する。特に、クライアント側はＧＡＲＰに対応していればよく、特別な機能の追加を要求しない。そのため、受信データによる情報処理装置の処理負荷の緩和を容易に実現することができる。
【実施例２】
【００６２】
図１１は、実施例２に係る通信中継装置を含む通信中継システムのブロック図である。本実施例に係る通信中継システムは、クライアント２がＧＡＲＰに対応していない場合における、受信データによるサーバ３の処理負荷の緩和を実現する構成である。個々での説明では、実施例１と同じ機能については説明を省略する。
【００６３】
本実施例に係る通信中継装置１は、実施例１の通信中継装置にさらにＡＲＰ応答部１５が加わった構成である。また、クライアント２は、実施例１のクライアントにＡＲＰ中継部２５及びＡＲＰ作成部２４がさらに加わった構成である。
【００６４】
ＡＲＰテーブル変更指示部１２は、ＣＰＵ負荷監視部１１からデータ中継機能活性化の通知を受けると、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスの情報をＡＲＰテーブル２３０から削除する指示（以下では、「ＡＲＰテーブルクリアメッセージ」という。）をＡＲＰテーブル変更部２２へ通知する。ここで、本実施例では、ＡＲＰテーブルクリアメッセージとしてＧＡＲＰを用いる。この場合、ＡＲＰテーブル変更指示部１２は、図１２に示すような内容を有するＧＡＲＰをＡＲＰテーブル変更部２２へ送信する。図１２は、実施例２においてデータ中継機能活性化時に生成されるＧＡＲＰの内容を表す図である。図１２に示すように、送信元ＩＰアドレス及び送信先ＩＰアドレスには、サーバ３のＩＰアドレスが記載される。これにより、クライアント２は、このＡＲＰがＧＡＲＰだと判断することができる。また、送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスには、サーバ３のＭＡＣアドレスが記載される。
【００６５】
また、ＡＲＰテーブル変更指示部１２は、過負荷となったサーバ３のＩＰアドレス及びＭＡＣアドレスをデータ中継部１３及びＡＲＰ応答部１５へ通知する。
【００６６】
また、ＡＲＰテーブル変更指示部１２は、ＣＰＵ負荷監視部１１からデータ中継機能非活性化の通知を受けると、ＡＲＰテーブルクリアメッセージをＡＲＰテーブル変更部２２へ通知する。この場合、ＡＲＰテーブル変更指示部１２は、図１３に示すような内容を有するＧＡＲＰをＡＲＰテーブル変更部２２へ送信する。図１３は、実施例２においてデータ中継機能非活性化時に生成されるＧＡＲＰの内容を表す図である。図１３に示すように、送信元ＩＰアドレス及び送信先ＩＰアドレスには、サーバ３のＩＰアドレスが記載される。これにより、クライアント２は、このＡＲＰがＧＡＲＰだと判断することができる。また、送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスには、通信中継装置１のＭＡＣアドレスが記載される。
【００６７】
ＡＲＰ応答部１５は、ＡＲＰテーブル変更指示部１２から受信した過負荷となったサーバ３のＩＰアドレス及びＭＡＣアドレスの情報を保持しておく。ＡＲＰ応答部１５は、ＡＲＰリクエストをクライアント２のＡＲＰ中継部２５から受信する。そして、ＡＲＰ応答部１５は、ＡＲＰリクエストが過負荷となったサーバ３のＭＡＣアドレスを要求する場合、サーバ３のＩＰアドレスに対応するＭＡＣアドレスは通信中継装置１のＭＡＣアドレスである旨の情報を含むＡＲＰ応答を、クライアント２へ返す。
【００６８】
クライアント２のＡＲＰテーブル変更部２２は、ＧＡＲＰであるＡＲＰテーブルクリアメッセージをＡＲＰテーブル変更指示部１２から受ける。そして、ＡＲＰテーブル変更部２２は、ＧＡＲＰの送信元ＩＰアドレス及び送信先ＩＰアドレスに記載されているＩＰアドレス及びそのＩＰアドレスに対応するＭＡＣアドレスをＡＲＰテーブル２３０から削除する。
【００６９】
さらに、ＡＲＰテーブル変更部２２は、受信したＧＡＲＰの送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスが通信中継装置１のＭＡＣアドレス以外の場合、ＡＲＰ中継機能活性化の指示をＡＲＰ中継部２５に通知する。また、受信したＧＡＲＰの送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスが通信中継装置１のＭＡＣアドレスの場合、ＡＲＰテーブル変更部２２は、ＡＲＰ中継機能非活性化の指示をＡＲＰ中継部２５に通知する。
【００７０】
ＡＲＰ中継機能活性化の指示をＡＲＰ中継部２５に通知した場合、ＡＲＰテーブル変更部２２は、サーバ３のＩＰアドレスに対応するＭＡＣアドレスは通信中継装置１のＭＡＣアドレスである旨の情報を含むＡＲＰ応答を受信する。そして、ＡＲＰテーブル変更部２２は、ＡＲＰテーブル２３０にサーバ３のＩＰアドレスと通信中継装置１のＭＡＣアドレスを対応させて登録する。
【００７１】
データ送信部２１は、サーバ３へのデータ送信時にＡＲＰテーブル２３０を参照し、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスが登録されていない場合、ＡＲＰ作成部２４にＡＲＰリクエストの作成を依頼する。
【００７２】
また、データ送信部２１は、サーバ３へのデータ送信時にＡＲＰテーブル２３０を参照し、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスが登録されている場合、登録されているＭＡＣアドレスに向けてデータを送信する。
【００７３】
ＡＲＰ作成部２４は、ＡＲＰリクエストの作成指示をデータ送信部２１から受けて、指定されたＩＰアドレスに対応するＭＡＣアドレスを要求するＡＲＰリクエストを作成する。ＡＲＰ作成部２４が作成するＡＲＰリクエストは、宛先ＭＡＣアドレスがブロードキャストになっている。そして、ＡＲＰ作成部２４は、作成したＡＲＰをＡＲＰ中継部２５へ送信する。
【００７４】
ＡＲＰ中継部２５は、ＡＲＰ中継機能の活性化又は非活性化の指示をＡＲＰテーブル変更部２２から受ける。そして、ＡＲＰ中継部２５は、指示に従い、ＡＲＰ中継機能の活性化又は非活性化を行う。
【００７５】
ＡＲＰ中継部２５は、ＡＲＰリクエストをＡＲＰ作成部２４から受信する。そして、ＡＲＰ中継機能が活性化している場合、ＡＲＰ中継部２５は、ＡＲＰリクエストの宛先ＭＡＣアドレスを通信中継装置１のＭＡＣアドレスに書き換え、ユニキャストのメッセージとする。その後、ＡＲＰ中継部２５は、ＡＲＰリクエストを通信中継装置１へ送信する。
【００７６】
一方、ＡＲＰ中継機能が活性化していない場合、ＡＲＰ中継部２５は、受信したＡＲＰリクエストをブロードキャストで送信する。
【００７７】
次に、図１４〜図１９を参照して、サーバ３が過負荷になった場合及び低負荷になった場合のデータの流れの遷移及びＡＲＰテーブルの遷移を説明する。図１４は、サーバが過負荷になったときのＡＲＰテーブルクリアメッセージの送信状態を表す図である。図１５は、サーバが過負荷になったときのＡＲＰテーブルの遷移を表す図である。図１６は、ＡＲＰリクエスト及びＡＲＰ応答を送受信している状態を表す図である。図１７は、ＡＲＰリクエスト及びＡＲＰ応答の送受信によるＡＲＰテーブルの遷移を表す図である。図１８は、送信レートを調整している場合のデータ送信状態を表す図である。図１９は、サーバが低負荷になったときのＡＲＰテーブルの遷移を表す図である。
【００７８】
ここでは、クライアント２として、クライアント２Ａ〜２Ｄが配置されている場合で説明する。通信中継装置１、クライアント２Ａ〜２Ｄ及びサーバ３は、Ｌ２ネットワークで接続されている。以下では、通信中継装置１のＭＡＣアドレスをｍａｃｇとする。また、クライアント２Ａ〜２ＤのＩＰアドレスをそれぞれｉｐ２Ａ〜２Ｄとし、ＭＡＣアドレスをそれぞれｍａｃ２Ａ〜２Ｄとする。さらに、サーバ３のＩＰアドレスをｉｐＳとし、ＭＡＣアドレスをｍａｃＳとする。
【００７９】
サーバ３が過負荷でない場合は、実施例１と同様に図５の状態となっている。そして、図５の状態で、通信中継装置１がサーバ３のＣＰＵの過負荷を検出すると、図１７のように、通信中継装置１は、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスを削除させるＡＲＰテーブルクリアメッセージをブロードキャストする。本実施例では、ＡＲＰテーブルクリアメッセージとしてＧＡＲＰを用いる。これにより、各クライアント２Ａ〜２ＤにおけるＡＲＰテーブル２３０からサーバ３のＩＰアドレス及び対応するＭＡＣアドレスが削除される。
【００８０】
例えば、クライアント２ＣにおけるＡＲＰテーブル２３０について説明する。図１５のテーブル３０１は、サーバが過負荷になる前のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。また、テーブル３０２は、サーバが過負荷になった後のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。テーブル３０１では、ＩＰ欄３１１にはサーバ３のＩＰアドレスであるｉｐＳが記載され、それに対応するＭＡＣ欄３１２にはサーバ３のＭＡＣアドレスであるｍａｃＳが記載されている。そして、クライアント２が通信中継装置１からＡＲＰテーブルクリアメッセージであるＧＡＲＰを受け取ると、テーブル３０１は、テーブル３０２のように書き換えられる。テーブル３０２では、ＩＰ欄３２１及びＭＡＣ欄３２２からサーバ３のＩＰアドレス及び対応するＭＡＣアドレスが削除されている。このように、各クライアント２Ａ〜２ＤのＡＲＰテーブル２３０が書き換えられる。
【００８１】
その後、クライアント２Ｃは、サーバ３にデータを送信する場合、テーブル３０２の状態のＡＲＰテーブル２３０を参照する。そして、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスがＡＲＰテーブル２３０にないので、図１６のように、クライアント２Ｃは、サーバ３のＩＰアドレスに対応するＭＡＣアドレスを要求するＡＲＰリクエストを通信中継装置１に送信する。そして、通信中継装置１は、クライアント２Ｃから受信したＡＲＰリクエストに対して、サーバ３のＩＰアドレスに対応するＭＡＣアドレスとして通信中継装置１のＭＡＣアドレスを指定したＡＲＰ応答をクライアント２Ｃへ送信する。このＡＲＰ応答を受けて、クライアント２Ｃは、サーバ３のＩＰアドレスに対応させて通信中継装置１のＭＡＣアドレスをＡＲＰテーブル２３０に登録する。
【００８２】
図１７のテーブル３０２は、図１５におけるテーブル３０２と同じものであり、ＡＲＰ応答を受ける前のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。また、テーブル３０３は、ＡＲＰ応答を受けた後のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。テーブル３０２では、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスは登録されていない。そして、クライアント２が通信中継装置１からＡＲＰ応答を受け取ると、テーブル３０２は、テーブル３０３のように書き換えられる。テーブル３０３では、ＩＰ欄３３１にはサーバ３のＩＰアドレスであるｉｐＳが記載され、それに対応するＭＡＣ欄３３２には通信中継装置１のＭＡＣアドレスであるｍａｃｇが記載されている。このように、各クライアント２Ａ〜２ＤのＡＲＰテーブル２３０が書き換えられる。
【００８３】
その後、クライアント２Ａ〜２Ｄは、テーブル３０３の状態のＡＲＰテーブル２３０を参照してサーバ３宛のデータを送信するので、実際には、図１８のように、クライアント２Ａ〜２Ｄは、サーバ３宛のデータを通信中継装置１へ送信する。そして、通信中継装置１は、クライアント２Ａ〜２Ｄから受信したデータを、送信レートを調整しながらサーバ３へ送信する。図１８では一例として、点線矢印でクライアント２Ｃがサーバ３へ向けてデータを送信した場合のデータの流れを表し、実線矢印でクライアント２Ａがサーバ３へ向けてデータを送信した場合のデータの流れを表している。
【００８４】
図１８の状態で、通信中継装置１がサーバ３のＣＰＵの低負荷を検出すると、通信中継装置１は、ＡＲＰテーブルクリアメッセージであるＧＡＲＰをブロードキャストする。これにより、各クライアント２Ａ〜２ＤにおけるＡＲＰテーブル２３０からサーバ３のＩＰアドレス及び対応するＭＡＣアドレスが削除される。その後、クライアント２Ａ〜２Ｄは、サーバ３へデータを送信する場合に、ＡＲＰ要求をブロードキャストし、サーバ３からＭＡＣアドレスを受けることで、ＡＲＰテーブル２３０にサーバ３のＩＰアドレスと対応するＭＡＣアドレスとを登録する。これにより、クライアント２Ａ〜２Ｄは、直接サーバ３へデータを送信するようになる。
【００８５】
図１９のテーブル３０３は、図１７におけるテーブル３０３と同じものであり、サーバ３が過負荷の状態のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。また、テーブル３０４は、サーバ３が低負荷になりＡＲＰテーブルクリアメッセージを受けた後のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。また、テーブル３０４は、サーバ３からＡＲＰ応答を受けた後のクライアント２Ｃが有するＡＲＰテーブル２３０を表している。テーブル３０３では、ＩＰ欄２２１にはサーバ３のＩＰアドレスであるｉｐＳが記載され、それに対応するＭＡＣ欄２２２には通信中継装置１のＭＡＣアドレスであるｍａｃｇが記載されている。そして、クライアント２が通信中継装置１からＡＲＰテーブルクリアメッセージを受け取ると、テーブル３０３は、テーブル３０４のように書き換えられる。テーブル３０４では、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスは登録されていない。その後、クライアント２がサーバ３からＡＲＰ応答を受信すると、テーブル３０４は、テーブル３０５のように書き換えられる。ＩＰ欄３５１にはサーバ３のＩＰアドレスであるｉｐＳが記載され、それに対応するＭＡＣ欄３５２にはサーバ３のＭＡＣアドレスであるｍａｃＳが記載されている。このように、各クライアント２Ａ〜２ＤのＡＲＰテーブル２３０が書き換えられる。
【００８６】
その後、クライアント２Ａ〜２Ｄは、テーブル２０３の状態のＡＲＰテーブル２３０を参照してサーバ３宛のデータを送信する。この場合、過負荷になる前の状態である図５のように、クライアント２Ａ〜２Ｄは、サーバ３宛のデータを直接サーバ３へ送信する。
【００８７】
次に、図２０を参照して、実施例２に係る通信中継装置１によるデータ中継の処理について説明する。図２０は、実施例２に係る通信中継装置によるデータ中継の処理のフローチャートである。
【００８８】
ＣＰＵ負荷監視部１１は、サーバ３のＣＰＵの負荷を監視する（ステップＳ２０１）。そして、ＣＰＵ負荷監視部１１は、ＣＰＵの負荷が閾値以上か否かを判定する（ステップＳ２０２）。ＣＰＵの負荷が閾値未満の場合（ステップＳ２０２：否定）、  ＣＰＵ負荷監視部１１は、ステップＳ２０１に戻る。
【００８９】
これに対して、ＣＰＵの負荷が閾値以上の場合（ステップＳ２０２：肯定）、ＣＰＵ負荷監視部１１は、データ中継機能の活性化をＡＲＰテーブル変更指示部１２へ通知する。これを受けて、ＡＲＰテーブル変更指示部１２は、ＡＲＰテーブルクリアメッセージであるＧＡＲＰをブロードキャストで送信する（ステップＳ２０３）。このＡＲＰテーブルクリアメッセージは、送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスとして通信中継装置１以外のＭＡＣアドレスが指定されている。
【００９０】
さらに、ＡＲＰテーブル変更指示部１２は、サーバ３のＩＰアドレス及びＭＡＣアドレスとともに、データ中継機能の活性化をデータ中継部１３へ通知する。これを受けて、データ中継部１３は、サーバ３のＩＰアドレス及びＭＡＣアドレスを保持するともに、データ中継機能を活性化させる（ステップＳ２０４）。
【００９１】
その後、ＡＲＰ応答部１５は、サーバ３のＩＰアドレスに対応するＭＡＣアドレスを要求するＡＲＰリクエストをクライアント２から受ける（ステップＳ２０５）。ＡＲＰ応答部１５は、サーバ３のＩＰアドレスに対応するＭＡＣアドレスとして通信中継装置１のＭＡＣアドレスを通知するＡＲＰ応答をクライアント２へ送信する（ステップＳ２０６）。
【００９２】
その後、データ中継部１３は、サーバ３宛のデータをクライアント２から受信する（ステップＳ２０７）。そして、データ中継部１３は、保持しているサーバ３のＩＰアドレス及びＭＡＣアドレスを用いて、受信したデータの宛先ＭＡＣアドレスをサーバ３のＭＡＣアドレスに変換する（ステップＳ２０８）。その後、データ中継部１３は、データを送信レート調整部１４へ出力する。
【００９３】
送信レート調整部１４は、サーバ３のＣＰＵの負荷に合わせて送信レートを調整する（ステップＳ２０９）。そして、送信レート調整部１４は、データをサーバ３へ送信する（ステップＳ２１０）。
【００９４】
その後、ＣＰＵ負荷監視部１１は、ＣＰＵの負荷が閾値未満か否かを判定する（ステップＳ２１１）。ＣＰＵの負荷が閾値以上の場合（ステップＳ２１１：否定）、ＣＰＵ負荷監視部１１は、ステップＳ２１１を繰り返す。
【００９５】
これに対して、ＣＰＵの負荷が閾値未満の場合（ステップＳ２１１：肯定）、ＡＲＰテーブル変更指示部１２は、ＡＲＰテーブルクリアメッセージであるＧＡＲＰをクライアント２へ送信する（ステップＳ２１２）。このＡＲＰテーブルクリアメッセージは、送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスとして通信中継装置１のＭＡＣアドレスが指定されている。そして、ＡＲＰテーブル変更指示部１２は、データ中継機能の非活性化をデータ中継装置に通知する。これを受けて、データ中継部１３は、データ中継機能を非活性化する（ステップＳ２１３）。
【００９６】
ここで、図１０のフローでは、サーバが過負荷になってから低負荷に戻るまでの一連の流れを説明したが、実際は、通信中継装置１は、図１０のフローを繰り返す。
【００９７】
次に、図２１を参照して、本実施例に係るクライアント２におけるＡＲＰテーブルクリアメッセージ受信時の処理について説明する。図２１は、実施例２に係るクライアントにおけるＡＲＰ受信時の処理のフローチャートである。
【００９８】
クライアント２は、ＡＲＰを受信する（ステップＳ３０１）。ＡＲＰテーブル変更部２２は、受信したＡＲＰのソースＭＡＣアドレスが通信中継装置１のＭＡＣアドレスであり、且つ送信元ＩＰアドレス及び送信先ＩＰアドレスが同じか否かを判定する（ステップＳ３０２）。ソースＭＡＣアドレスが通信中継装置１のＭＡＣアドレスでない、もしくは、送信ＩＰアドレスと送信先ＩＰアドレスとが同じでない場合（ステップＳ３０２：否定）、クライアント２は、通常のＡＲＰ処理を行う（ステップＳ３０３）。
【００９９】
一方、ソースＭＡＣアドレスが通信中継装置１のＭＡＣアドレス、且つ送信元ＩＰアドレス及び送信先ＩＰアドレスが同じ場合（ステップＳ３０２：肯定）、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスをＡＲＰテーブルから削除する（ステップＳ３０４）。
【０１００】
そして、ＡＲＰテーブル変更部２２は、送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスが通信中継装置１のＭＡＣアドレスか否かを判定する（ステップＳ３０５）。送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスが通信中継装置１のＭＡＣアドレスでない場合（ステップＳ３０５：否定）、ＡＲＰ中継部２５は、ＡＲＰ中継機能を非活性化する（ステップＳ３０６）。
【０１０１】
これに対して、送信元ＭＡＣアドレス及び送信先ＭＡＣアドレスが通信中継装置１のＭＡＣアドレスの場合（ステップＳ３０５：肯定）、ＡＲＰ中継部２５は、ＡＲＰテーブル変更部２２からサーバ３のＩＰアドレスを取得し保持する（ステップＳ３０７）。その後、ＡＲＰ中継機能を活性化する（ステップＳ３０８）。
【０１０２】
次に、図２２を参照して、本実施例に係るクライアント２におけるＡＲＰリクエストの送信処理について説明する。図２２は、実施例２に係るクライアントにおけるＡＲＰリクエストの送信処理のフローチャートである。
【０１０３】
データ送信部２１は、データをサーバ３に送るときに、ＡＲＰテーブル２３０を参照し、サーバ３のＩＰアドレス及び対応するＭＡＣアドレスがないこと確認する（ステップＳ４０１）。
【０１０４】
ＡＲＰ作成部２４は、宛先ＭＡＣアドレスがブロードキャストであるＡＲＰリクエストを作成する（ステップＳ４０２）。
【０１０５】
ＡＲＰ中継部２５は、ＡＲＰ作成部２４が作成したＡＲＰリクエストを受信し、ＡＲＰ機能が活性化中か否かを判定する（ステップＳ４０３）。ＡＲＰ機能が活性化中でない場合（ステップＳ４０３：否定）、ＡＲＰ中継部２５は、ステップＳ４０６へ進む。
【０１０６】
これに対して、ＡＲＰ機能が活性化中の場合（ステップＳ４０３：肯定）、ＡＲＰ中継部２５は、保持している過負荷になったサーバのＩＰアドレス（図中の「保持ＩＰアドレス」）と宛先ＩＰアドレスとが一致しているか否かを判定する（ステップＳ４０４）。保持ＩＰアドレスと宛先ＩＰアドレスとが異なる場合（ステップＳ４０４：否定）、ＡＲＰ中継部２５は、ステップＳ４０６へ進む。
【０１０７】
これに対して、保持ＩＰアドレスと宛先ＩＰアドレスとが一致している場合（ステップＳ４０４：肯定）、ＡＲＰ中継部２５は、ＡＲＰリクエストの宛先ＭＡＣアドレスを通信中継装置１のＭＡＣアドレスに変換する（ステップＳ４０５）。そして、ＡＲＰ中継部２５は、ＡＲＰリクエストを通信中継装置１へ送信する（ステップＳ４０６）。
【０１０８】
以上に説明したように、本実施例に係る通信中継システムは、ＧＡＲＰにクライアントが対応していない場合でも、クライアントのＡＲＰテーブルを書き換えて、サーバ３宛のデータを通信中継装置が受信して、送信レートを変更してサーバへ送信することができる。これにより、ＧＡＲＰにクライアントが対応していない場合でも、受信データによる情報処理装置の処理負荷の緩和を容易に実現することができる。
【符号の説明】
【０１０９】
１  通信中継装置
２  クライアント
３  サーバ
１１  ＣＰＵ負荷監視部
１２  ＡＲＰテーブル変更指示部
１３  データ中継部
１４  送信レート調整部
１５  ＡＲＰ応答部
２１  データ送信部
２２  ＡＲＰテーブル変更部
２３  記憶部
２４  ＡＲＰ作成部
２５  ＡＲＰ中継部
２３０  ＡＲＰテーブル
【図１】
0005831314.tif 000002
【図２】
0005831314.tif 000003
【図３】
0005831314.tif 000004
【図４】
0005831314.tif 000005
【図５】
0005831314.tif 000006
【図６】
0005831314.tif 000007
【図７】
0005831314.tif 000008
【図８】
0005831314.tif 000009
【図９】
0005831314.tif 000010
【図１０】
0005831314.tif 000011
【図１１】
0005831314.tif 000012
【図１２】
0005831314.tif 000013
【図１３】
0005831314.tif 000014
【図１４】
0005831314.tif 000015
【図１５】
0005831314.tif 000016
【図１６】
0005831314.tif 000017
【図１７】
0005831314.tif 000018
【図１８】
0005831314.tif 000019
【図１９】
0005831314.tif 000020
【図２０】
0005831314.tif 000021
【図２１】
0005831314.tif 000022
【図２２】
0005831314.tif 000023