(57)【要約】【課題】ルーティングを行う経路毎の負荷を適切に制御できるようにする。【解決手段】ルーティング手段１ａ〜１ｃにより、第１のネットワーク２経由で入力されたパケットが、第２のネットワーク４へルーティングされる。また、負荷判断手段１ｄにより、ルーティング手段１ａ〜１ｃの負荷が監視され、負荷が所定値を超えたことが判断される。負荷判断手段１ｄによりルーティング手段１ａ〜１ｃの負荷が所定値を超えたと判断された場合には、パケット廃棄手段１ｇにより、ルーティング手段１ａ〜１ｃがルーティングすべきパケットの少なくとも一部が廃棄される。【選択図】図１
2007049731.tif 000002
【特許請求の範囲】
【請求項１】
パケットのルーティングを行うフロントエンドプロセッサにおいて、
第１のネットワーク経由で入力されたパケットを、第２のネットワークへルーティングするルーティング手段と、
前記ルーティング手段の負荷を監視し、負荷が所定値を超えたことを判断する負荷判断手段と、
前記負荷判断手段により前記ルーティング手段の負荷が所定値を超えたと判断された場合には、前記ルーティング手段がルーティングすべきパケットの少なくとも一部を廃棄するパケット廃棄手段と、
を有することを特徴とするフロントエンドプロセッサ。
【請求項２】
前記パケット廃棄手段は、前記負荷判断手段により前記ルーティング手段の負荷が所定値を超えたと判断された場合には、前記第２のネットワーク上のサーバコンピュータと現実には存在しない経路で通信するためのルート情報を、ルータに対して送信することを特徴とする請求項１記載のフロントエンドプロセッサ。
【請求項３】
第１のネットワークから第２のネットワークへのパケットのルーティングを管理するルーティング管理方法であって、
ルーティングを行う中継経路上の負荷を監視し、
前記中継経路上の負荷が所定値を超えた場合には、前記第１のネットワーク上の所定のルータから出力されるパケットの少なくとも一部を廃棄する、
ことを特徴とするルーティング管理方法。
【請求項４】
第１のネットワークから第２のネットワークへのパケットのルーティングを管理するためのルーティング管理プログラムであって、
コンピュータに、
ルーティングを行う中継経路上の負荷を監視し、
前記中継経路上の負荷が所定値を超えた場合には、前記第１のネットワーク上の所定のルータから出力されるパケットの少なくとも一部を廃棄する、
処理を実行させることを特徴とするルーティング管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はサーバとクライアントとの間のパケットのルーティングを行うフロントエンドプロセッサ、ルーティング管理方法、ルーティング管理プログラムに関し、特に複数のプロセッサモジュールを搭載したフロントエンドプロセッサ、ルーティング管理方法、ルーティング管理プログラムに関する。
【背景技術】
【０００２】
複数のサーバコンピュータ（以下、単にサーバという）で構成されるホストシステムによって、多数のクライアントコンピュータ（以下、単にクライアントという）に対して、サービスを提供することができる。ホストシステムを構成する各サーバの機能は、異なっていても良い。その場合、ホストシステムとクライアントとの間に、フロントエンドプロセッサ（以下、ＦＥＰという）と呼ばれるコンピュータが配置される。
【０００３】
ＦＥＰは、サーバとクライアントとの間でパケットのルーティングを行う。パケットのルーティングを行うとき、ＦＥＰは、サーバ側の設計要件や運用要件に沿って配置された業務を、クライアントの利用者がその所在を意識せずに利用できるように、処理要求のパケットの管理／振り分けを行う。
【０００４】
このように、サーバとクライアントとの間にＦＥＰを設けた場合、ＦＥＰが停止してしまうと、サーバが提供するサービスが全て停止してしまう。そこで、ＦＥＰには複数のプロセッサモジュール（ＰＭ）が実装される。各プロセッサモジュールが、サーバとクライアントとの間のパケットのルーティング機能（パケットの振り分け機能を含む）を有している。これにより、ホストシステムの安定運用を図ることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来、複数のＰＭを実装したＦＥＰにおいて、各ＰＭの処理負荷を適切に制御することができなかった。
たとえば、ＦＥＰが動的ルーティングを行う場合、それぞれのＰＭから、各サーバに対する全てのルート情報（ＲＩＰ：Routing Information Protocol）が送信される。どのＰＭを通信に使用するかは、ルート情報（ＲＩＰ）を受信した他のルータの判断に依存している。他のルータは、ＦＥＰ内のＰＭの負荷を考慮しないため、通信を行うＰＭに偏りが生じ、負荷を均等に保つことができなかった。
【０００６】
また、従来のＦＥＰでは、同時に多数の相手から大量にデータを受信し続けた場合、受信したデータを、システム能力を越えてまでも可能な限り処理しようとしていた。その結果、ＦＥＰ全体がスローダウン状態となり、全ての相手との通信が正常に働かない事態が生じていた。
【０００７】
本発明はこのような点に鑑みてなされたものであり、ルーティングを行う経路毎の負荷を適切に制御することができるフロントエンドプロセッサ、ルーティング管理方法、ルーティング管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では上記課題を解決するために、図１に示すようなフロントエンドプロセッサ１が提供される。図１に示すフロントエンドプロセッサ１は、パケットのルーティングを行うものである。
【０００９】
フロントエンドプロセッサ１は、第１のネットワーク経由で入力されたパケットを、第２のネットワークへルーティングするルーティング手段１ａ〜１ｃと、ルーティング手段１ａ〜１ｃの負荷を監視し、負荷が所定値を超えたことを判断する負荷判断手段１ｄと、負荷判断手段１ｄによりルーティング手段の負荷が所定値を超えたと判断された場合には、ルーティング手段１ａ〜１ｃがルーティングすべきパケットの少なくとも一部を廃棄するパケット廃棄手段１ｇと、を有する。
【００１０】
このようなフロントエンドプロセッサ１によれば、ルーティング手段１ａ〜１ｃにより、第１のネットワーク経由で入力されたパケットが、第２のネットワークへルーティングされる。また、負荷判断手段１ｄにより、ルーティング手段１ａ〜１ｃの負荷が監視され、負荷が所定値を超えたことが判断される。負荷判断手段１ｄによりルーティング手段１ａ〜１ｃの負荷が所定値を超えたと判断された場合には、パケット廃棄手段１ｇにより、ルーティング手段１ａ〜１ｃがルーティングすべきパケットの少なくとも一部が廃棄される。
【００１１】
また、本発明では上記課題を解決するために、第１のネットワーク２から第２のネットワーク４へのパケットのルーティングを管理するルーティング管理方法であって、ルーティングを行う中継経路上の負荷を監視し、中継経路上の負荷が所定値を超えた場合には、第１のネットワーク２上の所定のルータから出力されるパケットの少なくとも一部を廃棄する、ことを特徴とするルーティング管理方法が提供される。
【００１２】
このようなルーティング管理方法によれば、ルーティングを行う中継経路上の負荷が監視され、中継経路上の負荷が所定値を超えた場合には、第１のネットワーク２上の所定のルータから出力されるパケットの少なくとも一部が廃棄される。
【００１３】
さらに、本発明では上記課題を解決するために、第１のネットワークから第２のネットワークへのパケットのルーティングを管理するためのルーティング管理プログラムであって、コンピュータに、ルーティングを行う中継経路上の負荷を監視し、前記中継経路上の負荷が所定値を超えた場合には、前記第１のネットワーク上の所定のルータから出力されるパケットの少なくとも一部を廃棄する、処理を実行させることを特徴とするルーティング管理プログラムが提供される。
【００１４】
このようなルーティング管理プログラムをコンピュータに実行させれば、そのコンピュータにより、ルーティングを行う中継経路上の負荷が監視され、中継経路上の負荷が所定値を超えた場合には、第１のネットワーク２上の所定のルータから出力されるパケットの少なくとも一部が廃棄される。
【発明の効果】
【００１５】
本発明では、ルーティングを行うルーティング手段の負荷を監視し、負荷が所定値を超えた場合には、第１のネットワーク上の所定のルータから出力されるパケットの少なくとも一部を廃棄するようにしたため、負荷が過大となった際にパケットを廃棄し、システム全体の応答速度の低下を防止することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態を図面を参照して説明する。
まず、本発明の実施の形態に適用される発明の概要について説明し、その後、本発明の実施の形態の具体的な内容を説明する。
【００１７】
図１は、本発明の実施の形態に適用される発明の概念図である。本発明に係るフロントエンドプロセッサ１は、第１のネットワーク２を介して複数のルータ３ａ〜３ｃに接続されている。図１の例では、ルータ３ａの識別情報を「ルータ＃１」、ルータ３ｂの識別情報を「ルータ＃２」、ルータ３ｃの識別情報を「ルータ＃３」とする。
【００１８】
また、フロントエンドプロセッサ１は、第２のネットワーク４を介して複数のサーバコンピュータ５ａ〜５ｃに接続されている。フロントエンドプロセッサ１は、第１のネットワーク２から送られるパケットを第２のネットワーク４にルーティングする。そのために、フロントエンドプロセッサ１は、複数のルーティング手段１ａ〜１ｃ、負荷判断手段１ｄ、割り当て手段１ｅ、ルート情報送信手段１ｆ、およびパケット廃棄手段１ｇを有している。
【００１９】
ルーティング手段１ａ〜１ｃは、第１のネットワーク２経由で入力されたパケットを、第２のネットワーク４へルーティングする。すなわち、各ルーティング手段１ａ〜１ｃが、ルーティングの際の個別の中継経路を構成している。なお、ルーティング手段１ａ〜１ｃは、ルーティングの際、パケットで要求されている処理の内容に適したサーバコンピュータに、そのパケットを振り分ける。
【００２０】
ルーティング手段１ａ〜１ｃは、たとえば、それぞれ個別のモジュールで構成される。その場合、各モジュールは、プロセッサモジュールと呼ばれる。図１の例では、ルーティング手段１ａの識別情報を「ＰＭ＃１」、ルーティング手段１ｂの識別情報を「ＰＭ＃２」、ルーティング手段１ｃの識別情報を「ＰＭ＃３」とする。
【００２１】
負荷判断手段１ｄは、ルーティング手段１ａ〜１ｃの負荷を監視し、各ルーティング手段１ａ〜１ｃの負荷が所定値を超えたことを判断する。また、負荷判断手段１ｄは、フロントエンドプロセッサ１全体としての負荷が所定値を超えたことも判断する。
【００２２】
割り当て手段１ｅは、ルーティング手段１ａ〜１ｃに対して、第１のネットワーク２上のルータを割り当てる。割り当ては、たとえば、ルーティング手段１ａ〜１ｃの識別情報と、ルータ３ａ〜３ｃの識別情報の対応関係で示される。図１の例では、ルーティング手段１ａに対してルータ３ａを割り当て、ルーティング手段１ｂに対してルータ３ｂを割り当て、ルーティング手段１ｃに対してルータ３ｃを割り当てている。
【００２３】
ルート情報送信手段１ｆは、第２のネットワーク４上のサーバコンピュータ５ａ〜５ｃへのルーティング手段１ａ〜１ｃ経由の通信経路を示すルート情報を、割り当て手段１ｅによって割り当てられたルータ３ａ〜３ｃに対して送信する。すなわち、ルーティング手段１ａ経由の通信経路を示すルート情報がルータ３ａに送信される。ルーティング手段１ｂ経由の通信経路を示すルート情報がルータ３ｂに送信される。ルーティング手段１ｃ経由の通信経路を示すルート情報がルータ３ｃに送信される。
【００２４】
なお、ルート情報送信手段１ｆは、負荷判断手段１ｄにおいて負荷が所定値を超えた（高負荷）と判断されたルーティング手段に対して割り当てられているルータを、他のルーティング手段に割り当てることができる。
【００２５】
パケット廃棄手段１ｇは、フロントエンドプロセッサ１全体としての負荷が所定値を超えた（高負荷）と判断された場合、所定のルータ（たとえば、予め設定されている優先度の低いルータ）からのパケットの少なくとも一部を廃棄する。また、パケット廃棄手段１ｇは、何れかのルーティング手段１ａ〜１ｃの負荷が所定値を超えた（高負荷）と判断された場合、そのルーティング手段に対して割り当てられているルータからのパケットの少なくとも一部を、廃棄することができる。
【００２６】
パケットを廃棄する場合、たとえば、パケット廃棄手段１ｇは、パケット廃棄対象のルータに対して、実際には存在しないルーティング手段経由のルート情報を送信する。これにより、そのルート情報を受け取ったルータを経由したパケットは、実際には存在しないルーティング手段宛に送信され、廃棄される。
【００２７】
このようなフロントエンドプロセッサ１によれば、各ルーティング手段１ａ〜１ｃ経由のルート情報は、ブロードキャストされずに、ルータ割り当て手段１ｅで割り当てられたルータに対して送信される。各ルータ３ａ〜３ｃは、ルート情報で通知された経路でしかサーバコンピュータ５ａ〜５ｃにアクセスできないため、ルータ割り当て手段１ｅで割り当てられたルーティング手段１ａ〜１ｃを経由してサーバコンピュータ５ａ〜５ｃにアクセスする。これにより、各ルーティング手段１ａ〜１ｃ間の負荷バランスを、フロントエンドプロセッサ１において管理することができるようになる。
【００２８】
たとえば、負荷が過大となったルーティング手段へのルータの割り当てを減らすことで、そのルーティング手段の負荷を減らすことができる。
また、フロントエンドプロセッサ１全体の負荷が過大となったら、パケット廃棄手段１ｇによって、任意のサーバから出力されるパケットを廃棄させることで、システム全体の処理速度の低下を防止することができる。たとえば、同時に多数の相手から大量にパケットを受信し続けた場合、そのパケットの送信元のルータからのパケットを廃棄することで、大量パケットの受信による機能低下を防御することができる。
【００２９】
このように、ルータ３ａ〜３ｃからのパケットの中継経路を、負荷の高いルーティング手段から負荷の低いルーティング手段への切り換え、それでも負荷が解消されない場合は、パケットの廃棄処理を行うことで受信するデータの総量を制御することで、システムの安定稼働を図ることができる。
【００３０】
以下、本発明の実施の形態を具体的に説明する。
図２は、本発明の実施の形態のシステム構成図である。図２に示すように、フロントエンドプロセッサ（ＦＥＰ）１００は、２つのネットワーク１１，１２の間に配置されている。ネットワーク１１には、複数のサーバ２１〜２３が接続されている。ネットワーク１２には、複数のルータ３１〜３４が接続されている。
【００３１】
ルータ３１は、ネットワーク４１を介して、複数のクライアント５１、５２に接続されている。ルータ３２は、ネットワーク４２を介して、複数のクライアント５３，５４に接続されている。ルータ３３は、ネットワーク４３を介して、複数のクライアント５５，５６に接続されている。ルータ３４は、ネットワーク４４を介して、複数のクライアント５７，５８に接続されている。
【００３２】
ＦＥＰ１００は、ルータ３１〜３４に対して、サーバ２１〜２３への通信経路を表すルート情報を通知する。また、ＦＥＰ１００は、ルータ３１〜３４を介して、クライアント５１〜５８からサーバ２１〜２３に対する処理を要求するパケットを受け取ると、そのパケットを各サーバ２１〜２３の機能に応じて、いずれかのサーバに振り分ける。
【００３３】
複数のサーバ２１〜２３は、クライアント５１〜５８に処理機能を提供するホストシステムを構成している。各サーバ２１〜２３は、クライアント５１〜５８からの処理要求のパケットをＦＥＰ１００を介して受け取り、そのパケットに応答して、各種処理を実行する。
【００３４】
ルータ３１〜３４は、通信相手（クライアント５１〜５８）とＦＥＰ１００とを接続する中継装置である。ルータ３１〜３４は、ＦＥＰ１００から送られるルート情報に基づいて、クライアント５１〜５８から出力されたパケットを、ＦＥＰ１００に転送する。また、各ルータ３１〜３４は、ルート情報（ＲＩＰ：Routing Information Protocol）およびＡＲＰ(Address Resolution Protocol)を受信することにより、ネットワーク１２、４１〜４４を介して接続されている装置のＩＰアドレスおよびＭＡＣアドレスを認識する。なお、ルータ３１のネットワーク１２側のＩＰアドレスは「IPadd#31」である。ルータ３２のネットワーク１２側のＩＰアドレスは「IPadd#32」である。ルータ３３のネットワーク１２側のＩＰアドレスは「IPadd#33」である。ルータ３４のネットワーク１２側のＩＰアドレスは「IPadd#34」である。
【００３５】
クライアント５１〜５８は、目的／用途／地域等でグループ化されている。クライアント５１〜５８は、ユーザの操作入力に応答して、グループごとに専用の中継装置（ルータ３１〜３４）を介して、複数のサーバ２１〜２３で構成されるホストシステムに対して処理を要求するパケットを出力する。そのパケットは、ＦＥＰ１００により振り分けられる。これにより、クライアント５１〜５８とサーバ２１〜２３との間で通信が行われる。
【００３６】
図３は、ＦＥＰの内部構成を示すブロック図である。ＦＥＰ１００は、２つの通信アダプタ１１０，１２０と、複数のプロセッサモジュール（ＰＭ）１３０，１４０，１５０とを有している。各ＰＭ１３０，１４０，１５０には、識別情報が設定されている。ＰＭ１３０の識別情報は「ＰＭ＃１」、ＰＭ１４０の識別情報は「ＰＭ＃２」、ＰＭ１５０の識別情報は「ＰＭ＃３」である。なお、ＦＥＰ１００内には、実際には存在しないＰＭ用の識別情報「ＰＭ＃４」も定義されている。
【００３７】
通信アダプタ１１０は、ネットワーク１１に接続されているとともに、接続ポート１１１〜１１４を介して、各ＰＭ１３０，１４０，１５０に接続されている。そして、通信アダプタ１１０は、ＰＭ１３０，１４０，１５０とネットワーク１１との間のパケットを、相互に伝達する。
【００３８】
また、通信アダプタ１１０には、複数のＭＡＣアドレス（物理アドレス）が定義されており、各ＰＭ１３０，１４０，１５０に接続する接続ポート１１１〜１１４に対して、それぞれ１つずつのＭＡＣアドレスを割り当てている。図３の例では、ＰＭ１３０が接続された接続ポート１１１には、ＭＡＣアドレス「MACadd#11」が割り当てられている。ＰＭ１４０が接続された接続ポート１１２には、ＭＡＣアドレス「MACadd#12」が割り当てられている。ＰＭ１５０が接続された接続ポート１１３には、ＭＡＣアドレス「MACadd#13」が割り当てられている。また、通信アダプタ１１０は、実際には存在しないＰＭ（ＰＭ＃４）に対応する接続ポート１１４に対しても、ＭＡＣアドレス「MACadd#14」を割り当てている。
【００３９】
通信アダプタ１２０は、ネットワーク１２に接続されているとともに、接続ポート１２１〜１２４を介して、各ＰＭ１３０，１４０，１５０に接続されている。そして、通信アダプタ１２０は、ＰＭ１３０，１４０，１５０とネットワーク１２との間のパケットを相互に伝達する。
【００４０】
また、通信アダプタ１２０には、複数のＭＡＣアドレスが定義されており、各ＰＭ１３０，１４０，１５０に接続する接続ポート１２１〜１２４に対して、それぞれ１つずつのＭＡＣアドレスを割り当てている。図３の例では、ＰＭ１３０が接続された接続ポート１２１には、ＭＡＣアドレス「MACadd#21」が割り当てられている。ＰＭ１４０が接続された接続ポート１２２には、ＭＡＣアドレス「MACadd#22」が割り当てられている。ＰＭ１５０が接続された接続ポート１２３には、ＭＡＣアドレス「MACadd#23」が割り当てられている。また、通信アダプタ１２０は、実際には存在しないＰＭ（ＰＭ＃４）に対応する接続ポート１２４に対しても、ＭＡＣアドレス「MACadd#24」を割り当てている。
【００４１】
複数のＰＭ１３０，１４０，１５０は、それぞれＣＰＵ(Central Processing Unit)やＲＡＭ(Random Access Memory)を内蔵しており、各ＰＭ１３０，１４０，１５０が個別のコンピュータとしての機能を有している。各ＰＭ１３０，１４０，１５０は、互いにバス１０１によって通信可能に接続されている。また、各ＰＭ１３０，１４０，１５０は、それぞれ２つの通信ポートを有している。一方の通信ポート１３１，１４１，１５１は通信アダプタ１１０に接続され、他方の通信ポート１３２，１４２，１５２は通信アダプタ１２０に接続されている。
【００４２】
ＰＭ１３０，１４０，１５０では、各通信ポート１３１，１３２，１４１，１４２，１５１，１５２に対して、ＩＰアドレスが割り振られている。ＰＭ１３０では、通信アダプタ１１０に接続された通信ポート１３１に、ＩＰアドレス「IPadd#11」が設定されており、通信アダプタ１２０に接続された通信ポート１３２に、ＩＰアドレス「IPadd#21」が設定されている。ＰＭ１４０では、通信アダプタ１１０に接続された通信ポート１４１に、ＩＰアドレス「IPadd#12」が設定されており、通信アダプタ１２０に接続された通信ポート１４２に、ＩＰアドレス「IPadd#22」が設定されている。ＰＭ１５０では、通信アダプタ１１０に接続された通信ポート１５１に、ＩＰアドレス「IPadd#13」が設定されており、通信アダプタ１２０に接続された通信ポート１５２に、ＩＰアドレス「IPadd#23」が設定されている。
【００４３】
また、ＦＥＰ１００では、実際には存在しないＰＭ（ＰＭ＃４）に対してもＩＰアドレスが割り振られている。実際には存在しないＰＭ（ＰＭ＃４）では、通信アダプタ１１０に接続される通信ポートに、ＩＰアドレス「IPadd#14」が設定されており、通信アダプタ１２０に接続される通信ポートに、ＩＰアドレス「IPadd#24」が設定されている。
【００４４】
なお、実際には存在しないＰＭ（ＰＭ＃４）に関する定義内容は、実在するＰＭ１３０，１４０，１５０の何れか１つの内部に格納されている。
次に、ＦＥＰ１００内の各ＰＭ１３０，１４０，１５０における処理機能について説明する。
【００４５】
まず、図４〜６を参照して、本実施の形態で行われるパケット転送の状態遷移について概念的に説明する。本実施の形態のＦＥＰ１００では、ＰＭへのルータの割り当てのとき、あるＰＭの負荷が過大となったとき、およびＦＥＰ全体の負荷が過大となったときに、ルート情報の内容が変更され、パケットの転送経路が変化する。
【００４６】
図４は、各ＰＭへのルータの割り当てのときの状態遷移を示す図である。
［ステップＳ１］各ＰＭ１３０，１４０，１５０に対してルータ３１〜３４が割り当てられると、ＰＭ１３０，１４０，１５０からルータ３１〜３４へ、ルート情報が送信される。図４の例では、ＰＭ１３０にルータ３１，３２が割り当てられ、ＰＭ１４０にルータ３３が割り当てられ、ＰＭ１５０にルータ３４が割り当てられている。このとき、各ＰＭ１３０，１４０，１５０は、自己に割り当てられたルータに対してのみ、ＰＭ１３０，１４０，１５０を経由してサーバ２１〜２３が接続されていること示すルート情報６１〜６４を送信する。すなわち、ＰＭ１３０は、ルータ３１，３２に対して、ＰＭ１３０を経由してサーバ２１〜２３が接続されていること示すルート情報６１，６２を送信する。ＰＭ１４０は、ルータ３３に対して、ＰＭ１４０を経由してサーバ２１〜２３が接続されていること示すルート情報６３を送信する。ＰＭ１５０は、ルータ３４に対して、ＰＭ１５０を経由してサーバ２１〜２３が接続されていること示すルート情報６４を送信する。
【００４７】
［ステップＳ２］各ルータ３１〜３４は、サーバ２１〜２３への経路を示すルート情報を送信してきたＰＭ１３０，１４０，１５０を中継して、サーバ２１〜２３へパケットを送信する。すなわち、ルータ３１、３２はＰＭ１３０経由でサーバ２１〜２３へパケットを送信し、ルータ３３はＰＭ１４０経由でサーバ２１〜２３へパケットを送信し、ルータ３４はＰＭ１５０経由でサーバ２１〜２３へパケットを送信する。
【００４８】
このように、各ＰＭ１３０，１４０，１５０が、割り当てられたルータにしかルート情報を通知しないようにしたことで、各ルータ３１〜３４がサーバ２１〜２３に対してパケットを送信するときの中継先を、ＦＥＰ１００において制御することができる。これにより、多数のルータ３１〜３４から送信されたパケットが一部のＰＭに集中することを、防止することができる。すなわち、ＦＥＰ１００側の制御によって、各ＰＭの負荷を適切に分散させることが可能となる。
【００４９】
その後、あるＰＭにおいて負荷が過大となると、そのＰＭに割り当てられていたルータの割当先が、他のＰＭに変更される。
図５は、ＰＭ単体での負荷が過大となったときの状態遷移を示す図である。
【００５０】
［ステップＳ３］たとえば、ＰＭ１３０の負荷が過大になると、ＰＭ１３０に割り当てられていたルータ３２に対して、パケット転送経路変更のためのルート情報６５が送信される。図５の例では、ＰＭ１４０からルータ３２に対して、ルート情報６５が送信されている。ルート情報６５では、ＰＭ１３０を経由してサーバ２１〜２３が接続されていないこと、およびＰＭ１４０を経由してサーバ２１〜２３が接続されていることが示されている。
【００５１】
［ステップＳ４］ルータ３２がサーバ２１〜２３へパケットを送信する際の中継先のＰＭが変更される。他のルータ３１，３３，３４は、以前と同じ経路でパケットを送信する。すなわち、ルータ３１はＰＭ１３０経由でサーバ２１〜２３へパケットを送信し、ルータ３２，３３はＰＭ１４０経由でサーバ２１〜２３へパケットを送信し、ルータ３４はＰＭ１５０経由でサーバ２１〜２３へパケットを送信する。
【００５２】
このように、負荷が過大となったＰＭへのルータの割り当てを減らし、別のＰＭに割り当てることにより、複数のＰＭ間の負荷分散を動的に行うことができる。
その後、ＦＥＰ１００全体での負荷が過大となると、最も優先順の低いルータを経由したパケットが廃棄される。
【００５３】
図６は、ＦＥＰ全体での負荷が過大となったときの状態遷移を示す図である。
［ステップＳ５］たとえば、ルータ３２の優先順が最も低かった場合、ＦＥＰ１００全体の負荷が過大になると、ルータ３２に対して、実在しないＰＭへパケット転送経路を変更させるためのルート情報６６が送信される。図６の例では、ＰＭ１４０からルータ３２に対して、ルート情報６６が送信されている。ルート情報６６では、ＰＭ１４０を経由してサーバ２１〜２３が接続されていないこと、および実在しないＰＭ（ＰＭ＃４）を経由してサーバ２１〜２３が接続されていることが示されている。
【００５４】
［ステップＳ６］各ルータ３２がサーバ２１〜２３へパケットを送信する際の中継先のＰＭが変更される。他のルータ３１，３３，３４は、以前と同じ経路でパケットを送信する。すなわち、ルータ３１はＰＭ１３０経由でサーバ２１〜２３へパケットを送信し、ルータ３２は、実際には存在しないＰＭ（ＰＭ＃４）に対してパケットを送信し、ルータ３３はＰＭ１４０経由でサーバ２１〜２３へパケットを送信し、ルータ３４はＰＭ１５０経由でサーバ２１〜２３へパケットを送信する。
【００５５】
このように、ルータ３２に対して、実際には存在しないＰＭ（ＰＭ＃４）に対してパケットを送信させることで、ルータ３２経由で送られてくるパケットは廃棄される。すなわち、ＦＥＰ１００全体の負荷が過大となったときは、任意のルータ経由で送られてくるパケットが廃棄される。これにより、ＦＥＰ１００全体の負荷が過大となったことによるＦＥＰ１００の機能低下を回避することができる。
【００５６】
以上のような処理を実現するためのＦＥＰ１００内の処理機能について、以下に説明する。
図７は、ＦＥＰ内のＰＭの処理機能を示す機能ブロック図である。ＰＭ１３０は、通信ポート１３１，１３２、サーバ側通信部１３３、クライアント側通信部１３４、ルーティング処理部１３５、および通信情報管理部１３６で構成されている。サーバ側通信部１３３は、通信ポート１３１を介して、ネットワーク１１に接続されており、ネットワーク１１を介した通信を制御する。クライアント側通信部１３４は、通信ポート１３２を介して、ネットワーク１２に接続されており、ネットワーク１２を介した通信を制御する。
【００５７】
ルーティング処理部１３５は、サーバ側通信部１３３とクライアント側通信部１３４とに接続されており、サーバ側通信部１３３とクライアント側通信部１３４との間で交換されるパケットのルーティング処理を行う。なお、ルーティング処理部１３５は、クライアント側通信部１３４から受け取ったパケットのルーティングを行う際には、ネットワーク１１に接続された各サーバの能力等を判断し、パケットの宛先の振り分け先を決定する。そして、ルーティング処理部１３５は、決定された振り分け先のサーバのアドレスをパケットの宛先に設定し、そのパケットをサーバ側通信部１３３に渡す。
【００５８】
なお、ルーティング処理部１３５は、サーバ２１〜２３への通信経路を示すルート情報（ＲＩＰ）の同報送信は行わず、通信情報管理部１３６から通知されたルータに対してのみルート情報を送信する。すなわち、ルーティング処理部１３５は、通信情報管理部１３６から、ＰＭ１３０に割り当てられたルータのＩＰアドレスを受け取ると、サーバ２１〜２３へＰＭ１３０経由の通信経路を示すルート情報を生成する。そして、ルーティング処理部１３５は、ＰＭ１３０に割り当てられたルータのＩＰアドレスを宛先として、ルート情報をクライアント側通信部１３４に渡す。
【００５９】
また、ルーティング処理部１３５は、通信情報管理部１３６からの要求に応じて生成した各種ルート情報を、クライアント側通信部１３４を介してネットワーク１２に出力する。たとえば、ルーティング処理部１３５は、他のＰＭに割り当てられていたルータのＰＭ１３０への割り当て要求を、通信情報管理部１３６から受け取ると、割り当ての変更に応じたルート情報を生成する。そのルート情報には、ルータが割り当てられていた元のＰＭを介した通信ができないこと、およびＰＭ１３０を介した通信が可能であることを示す情報が含まれる。
【００６０】
また、ルーティング処理部１３５は、あるルータから出力されるパケットの廃棄要求を、通信情報管理部１３６から受け取ると、廃棄要求に応じたルート情報を生成する。そのルート情報には、ルータが割り当てられていた元のＰＭを介した通信ができないこと、および実際には存在しないＰＭ（ＰＭ＃４）を介した通信が可能であることを示す情報が含まれる。
【００６１】
通信情報管理部１３６は、ルーティング処理部１３５における処理の内容を監視している。そして、通信情報管理部１３６は、ルーティング処理部１３５の処理状況を示す情報を、ＰＭ１５０の負荷制御部１５７に通知する。処理状況を示す情報には、たとえば、ルーティング処理部１３５を介して確立されたコネクションの数や、単位時間当たりにルーティング処理部１３５が中継したパケット数が含まれる。
【００６２】
また、通信情報管理部１３６は、負荷制御部１５７からルータの割り当てに関する情報を受け取ると、割り当てられたルータのＩＰアドレスをルーティング処理部１３５に通知する。割り当てられたルータが、以前別のＰＭに割り当てられていた場合には、通信情報管理部１３６は、以前割り当てられていたＰＭのＩＰアドレスを含めてルーティング処理部１３５に通知する。さらに、通信情報管理部１３６は、負荷制御部１５７からあるルータから出力されるパケットの廃棄が指示されると、そのルータのＩＰアドレスを指定したパケットの廃棄要求をルーティング処理部１３５に渡す。
【００６３】
ＰＭ１４０は、通信ポート１４１，１４２、サーバ側通信部１４３、クライアント側通信部１４４、ルーティング処理部１４５、および通信情報管理部１４６で構成されている。サーバ側通信部１４３は、通信ポート１４１を介して、ネットワーク１１に接続されており、ネットワーク１１を介した通信を制御する。クライアント側通信部１４４は、通信ポート１４２を介して、ネットワーク１２に接続されており、ネットワーク１２を介した通信を制御する。ルーティング処理部１４５の機能は、ＰＭ１３０のルーティング処理部１３５と同様である。また、通信情報管理部１４６の機能は、ＰＭ１３０の通信情報管理部１３６と同様である。
【００６４】
ＰＭ１５０は、通信ポート１５１，１５２、サーバ側通信部１５３、クライアント側通信部１５４、ルーティング処理部１５５、通信情報管理部１５６、および負荷制御部１５７で構成されている。サーバ側通信部１５３は、通信ポート１５１を介して、ネットワーク１１に接続されており、ネットワーク１１を介した通信を制御する。クライアント側通信部１５４は、通信ポート１５２を介して、ネットワーク１２に接続されており、ネットワーク１２を介した通信を制御する。ルーティング処理部１５５の機能は、ＰＭ１３０のルーティング処理部１３５と同様である。また、通信情報管理部１５６の機能は、ＰＭ１３０の通信情報管理部１３６と同様である。
【００６５】
負荷制御部１５７は、各ＰＭ１３０，１４０，１５０の通信情報管理部１３６，１４６，１５６に接続されている。そして、負荷制御部１５７は、各通信情報管理部１３６，１４６，１５６から、ルーティング処理状況を示す情報を収集する。そして、負荷制御部１５７は、収集した情報に基づいて、各ＰＭ１３０，１４０，１５０の処理負荷を判断する。
【００６６】
図８は、負荷制御部の機能の詳細を示すブロック図である。負荷制御部１５７は、ルータ割り当て定義テーブル１５７ａ、負荷情報管理テーブル１５７ｂ、廃棄パケット管理情報１５７ｃ、担当グループ通知部１５７ｄ、負荷監視部１５７ｅ、処理代行依頼部１５７ｆ、およびパケット廃棄依頼部１５７ｇを有している。
【００６７】
ルータ割り当て定義テーブル１５７ａには、各ＰＭ１３０，１４０，１５０に割り当てるルータのＩＰアドレスが予め設定されている。
負荷情報管理テーブル１５７ｂには、各ＰＭ１３０，１４０，１５０の処理能力、許容負荷、および現在負荷の情報が登録されている。
【００６８】
廃棄パケット管理情報１５７ｃには、ルータ優先順テーブル１５７ｃａと廃棄パケット用ＩＰアドレス１５７ｃｂとが含まれている。ルータ優先順テーブル１５７ｃａは、各ルータに関して、通信可能な状態を保持する順位が設定されている。廃棄パケット用ＩＰアドレス１５７ｃｂには、廃棄パケットの送信先となるＩＰアドレスが設定される。本実施の形態では、実際には存在しないＰＭ（ＰＭ＃４）のＩＰアドレス「IPadd#24」が、廃棄パケット用ＩＰアドレス１５７ｃｂとして設定される。
【００６９】
担当グループ通知部１５７ｄは、ルータ割り当て定義テーブル１５７ａと各ＰＭ１３０，１４０，１５０の通信情報管理部１３６，１４６，１５６とに接続されている。担当グループ通知部１５７ｄは、ルータ割り当て定義テーブル１５７ａを参照し、各通信情報管理部１３６，１４６，１５６に対して、対応するＰＭ１３０，１４０，１５０に割り当てられたルータのＩＰアドレスを通知する。
【００７０】
負荷監視部１５７ｅは、負荷情報管理テーブル１５７ｂと各ＰＭ１３０，１４０，１５０の通信情報管理部１３６，１４６，１５６とに接続されている。負荷監視部１５７ｅは、通信情報管理部１３６，１４６，１５６から各ＰＭ１３０，１４０，１５０の処理状況を示す情報（コネクション数や単位時間当たりのパケット数）などを収集し、負荷情報管理テーブル１５７ｂに登録する。また、負荷監視部１５７ｅは、負荷情報管理テーブル１５７ｂを参照し、ＦＥＰ１００全体での負荷が許容値を超えていないかどうか、およびＰＭ単体での負荷が許容値を超えたＰＭが有るか否かを判断する。
【００７１】
ＦＥＰ１００全体での負荷が許容値を超えた場合には、負荷監視部１５７ｅは、パケット廃棄依頼部１５７ｇに対して、負荷の軽減を要求する。また、負荷監視部１５７ｅは、単体での負荷が許容値を超えたＰＭがあった場合、そのＰＭへの負荷の軽減を、処理代行依頼部１５７ｆに要求する。負荷の軽減を要求する際、負荷監視部１５７ｅは、負荷情報管理テーブル１５７ｂを参照し、処理能力に余裕のあるＰＭを判断し、そのＰＭを指定する情報を、処理代行依頼部１５７ｆやパケット廃棄依頼部１５７ｇに通知する。
【００７２】
処理代行依頼部１５７ｆは、負荷監視部１５７ｅから、負荷が許容値を超えたＰＭの負荷の軽減要求を受け取ると、ルータ割り当て定義テーブル１５７ａを参照し、負荷が許容値を超えたＰＭに割り当てられているルータのＩＰアドレスを取得する。そして、処理代行依頼部１５７ｆは、負荷に余裕のあるＰＭに対して処理の代行を依頼する。処理の代行の依頼では、負荷が許容値を超えたＰＭに割り当てられていたルータを、負荷に余裕のあるＰＭに振り替えることが通知される。具体的には、処理の代行の依頼において、負荷が許容値を超えたＰＭの通信アダプタ１２０に接続されたポートのＩＰアドレス、そのＰＭに割り当てられていたルータのＩＰアドレスが通知される。
【００７３】
パケット廃棄依頼部１５７ｇは、負荷監視部１５７ｅから、ＦＥＰ１００の負荷が許容値を超えたことによる負荷の軽減要求を受け取ると、廃棄パケット管理情報１５７ｃのルータ優先順テーブル１５７ｃａを参照する。そして、パケット廃棄依頼部１５７ｇは、ルータ優先順テーブル１５７ｃａから、まだパケットが廃棄対象となっていないルータの中で、最も優先順が低いルータのＩＰアドレスを取得する。
【００７４】
さらに、パケット廃棄依頼部１５７ｇは、廃棄パケット管理情報１５７ｃを参照し、廃棄パケット用ＩＰアドレス１５７ｃｂに登録されているＩＰアドレスを取得する。そして、パケット廃棄依頼部１５７ｇは、負荷に余裕のあるＰＭに対して、パケットの廃棄を依頼する。パケットの廃棄依頼には、ルータ優先順テーブル１５７ｃａから取得した優先順の低いルータのＩＰアドレスと、廃棄パケット用のＩＰアドレスとが含まれる。
【００７５】
図９は、ルータ割り当て定義テーブルのデータ構造例を示す図である。ルータ割り当て定義テーブル１５７ａには、ＰＭ番号の欄とルータＩＰアドレスの欄とが設けられている。各欄の横に並べられた情報同士が互いに関連づけられている。
【００７６】
ＰＭ番号の欄には、ＦＥＰ１００内に実装された各ＰＭ１３０，１４０，１５０の識別番号が登録される。ルータＩＰアドレスの欄には、各ＰＭ１３０，１４０，１５０に割り当てられたルータのＩＰアドレスが登録されている。
【００７７】
図９の例では、ＰＭ番号「ＰＭ＃１」のＰＭ１３０に、ＩＰアドレス「IPadd#31」のルータ３１とＩＰアドレス「IPadd#32」のルータ３２とが割り当てられている。ＰＭ番号「ＰＭ＃２」のＰＭ１４０に、ＩＰアドレス「IPadd#33」のルータ３３が割り当てられている。ＰＭ番号「ＰＭ＃３」のＰＭ１５０に、ＩＰアドレス「IPadd#34」のルータ３４が割り当てられている。
【００７８】
図１０は、負荷情報管理テーブルのデータ構造例を示す図である。負荷情報管理テーブル１５７ｂには、管理対象、処理能力、許容負荷、および現在負荷の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００７９】
管理対象の欄には、ＦＥＰ１００内に実装された各ＰＭ１３０，１４０，１５０の識別番号、またはＦＥＰ全体の指定情報が登録される。処理能力の欄には、各ＰＭ１３０，１４０，１５０の処理能力がコネクション数換算で登録されている。許容負荷の欄には、各ＰＭ１３０，１４０，１５０が円滑に処理を実行可能な負荷の許容値が、処理能力に対する割合で示されている。現在負荷の欄には、各ＰＭ１３０，１４０，１５０の現在の処理負荷がコネクション数換算で登録されている。実際の処理をコネクション数に換算する場合、たとえば、１００パケットを１コネクションに換算する。
【００８０】
図１０の例では、ＰＭ番号「ＰＭ＃１」のＰＭ１３０の処理能力は、「２０００（コネクション）」であり、許容負荷は「８０％（１６００コネクション）」であり、現在負荷は「１５２１（コネクション）」である。ＰＭ番号「ＰＭ＃２」のＰＭ１４０の処理能力は、「１５００（コネクション）」であり、許容負荷は「８０％（１２００コネクション）」であり、現在負荷は「８４５（コネクション）」である。ＰＭ番号「ＰＭ＃３」のＰＭ１５０の処理能力は、「１７００（コネクション）」であり、許容負荷は「７５％（１２７５コネクション）」であり、現在負荷は「１３００（コネクション）」である。ＦＥＰ１００全体の処理能力は「５２００（コネクション）」であり、許容負荷は「７５％（３９００コネクション）」であり、現在負荷は「３６６６（コネクション）」である。
【００８１】
この例では、ＰＭ１５０の現在負荷が許容負荷を超えており、ＰＭ１５０に割り当てられているルータ３４を別のＰＭに割り当てる必要がある。なお、各ＰＭ１３０，１４０，１５０の処理能力は、搭載されているメモリの容量などによって変化する。
【００８２】
図１１は、ルータ優先順テーブルのデータ構造例を示す図である。ルータ優先順テーブル１５７ｃａには、優先順の欄、ルータＩＰアドレスの欄、および状態の欄が設けられている。各欄の横方向に並べられた情報同士が互いに関連づけられている。
【００８３】
優先順の欄には、各ルータに設定される優先順を表す数値が登録される。数値が小さいほど、優先順が高いものとする。ルータＩＰアドレスの欄には、優先順に対応するルータのＩＰアドレスが登録される。状態の欄には、優先順に対応するルータの状態が登録される。状態には「通信可」と「廃棄」とがある。ルータからホストシステムへのパケットの送信が可能な場合、そのルータの状態は「通信可」となる。ルータから出力されたパケットが廃棄されている場合、そのルータの状態は「廃棄」となる。
【００８４】
以上のような構成のＦＥＰ１００において実行される処理の詳細を、以下に説明する。
まず、各ＰＭに割り当てられたルータに対して、ルート情報を送信する処理について説明する。
【００８５】
図１２は、ＰＭに割り当てられたルータへのルート情報送信処理の手順を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。この処理は、たとえば、ＦＥＰ１００が起動した際に実行される。
【００８６】
［ステップＳ１１］負荷制御部１５７の担当グループ通知部１５７ｄは、ルータ割り当て定義テーブル１５７ａを参照する。
［ステップＳ１２］担当グループ通知部１５７ｄは、ルータ割り当て定義テーブル１５７ａから未処理のＰＭを１つ選択する。
【００８７】
［ステップＳ１３］担当グループ通知部１５７ｄは、ステップＳ１２で選択したＰＭに割り当てられたルータのＩＰアドレスを、選択したＰＭの通信情報管理部に通知する。
［ステップＳ１４］ルータのＩＰアドレスを受け取った通信情報管理部は、ルーティング処理部に、ルータのＩＰアドレスを渡す。ルーティング処理部は、渡されたＩＰアドレスを宛先として、ネットワーク１１に接続された各サーバ２１〜２３への通信経路を示すルート情報を生成する。
【００８８】
［ステップＳ１５］ルーティング処理部は、生成したルート情報を、クライアント側通信部に渡す。クライアント側通信部は、ＰＭに割り当てられたルータへルート情報を送信する。以後、ルーティング処理部は、ＰＭに割り当てられたルータへのルート情報の送信を定期的（たとえば、３０秒間隔）に行う。
【００８９】
［ステップＳ１６］負荷制御部１５７の担当グループ通知部１５７ｄは、未選択のＰＭがあるか否かを判断する。未選択のＰＭがあれば処理がステップＳ１２に進められる。未選択のＰＭがなければ処理が終了する。
【００９０】
次に、処理負荷に応じたルータ割り当ての振り替え処理について説明する。
図１３は、ルータ割り当て振り替え処理の手順を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。なお、この処理は、所定の周期で繰り返し実行される。
【００９１】
［ステップＳ２１］負荷制御部１５７の負荷監視部１５７ｅは、各ＰＭ１３０，１４０，１５０の通信情報管理部１３６，１４６，１５６から処理状況を示す情報を収集する。
［ステップＳ２２］負荷監視部１５７ｅは、各ＰＭ１３０，１４０，１５０の負荷を、コネクション数に換算する。そして、負荷監視部１５７ｅは、負荷情報管理テーブル１５７ｂの現在負荷の欄の値を更新する。
【００９２】
［ステップＳ２３］負荷監視部１５７ｅは、負荷情報管理テーブル１５７ｂを参照し、ＦＥＰ１００のシステム全体の負荷が、許容負荷を超えているか否かを判断する。システム全体の負荷が許容負荷を超えている場合には、処理がステップＳ２９に進められる。システム全体の負荷が許容負荷を超えていない場合には、処理がステップＳ２４に進められる。
【００９３】
［ステップＳ２４］負荷監視部１５７ｅは、負荷情報管理テーブル１５７ｂを参照し、単体で処理負荷が許容負荷を超えたＰＭがあるか否かを判断する。許容負荷を超えたＰＭがある場合には、処理がステップＳ２５に進められる。許容負荷を超えたＰＭがない場合には、処理が終了する。
【００９４】
［ステップＳ２５］負荷監視部１５７ｅは、負荷情報管理テーブル１５７ｂを参照し、負荷に余裕のあるＰＭを選択する。たとえば、現在負荷が許容負荷を超えていないＰＭのなかで、許容負荷（コネクション数換算）と現在負荷（コネクション数換算）との間の差分が最も大きいＰＭが選択される。
【００９５】
［ステップＳ２６］負荷監視部１５７ｅは、処理負荷を超えたＰＭのＰＭ番号とステップＳ２５で選択したＰＭ（負荷に余裕のあるＰＭ）のＰＭ番号とを含む負荷の軽減要求を、処理代行依頼部１５７ｆに渡す。処理代行依頼部１５７ｆは、ルータ割り当て定義テーブル１５７ａを参照し、負荷が許容値を超えたＰＭに割り当てられているルータのＩＰアドレスを取得する。そして、処理代行依頼部１５７ｆは、負荷に余裕のあるＰＭに対して処理の代行を依頼する。
【００９６】
［ステップＳ２７］処理の代行依頼を受け取ったＰＭの通信情報管理部は、新たに割り当てられたルータのＩＰアドレスと、そのルータが以前割り当てられていたＰＭのＩＰアドレスとを、ルーティング処理部に渡す。すると、ルーティング処理部は、振り替え対象のルータを宛先として、選択されたＰＭを経由した通信のルート情報を生成する。そのルート情報には、許容負荷を超えたＰＭを経由した通信が不可能であることを示す情報が含まれている。
【００９７】
［ステップＳ２８］ルーティング処理部は、生成したルート情報をクライアント側通信部に渡す。クライアント側通信部は、振り替え対象のルータへ、ルート情報を送信する。その後、処理が終了する。なお、このルート情報は、その後も定期的に送信される。
【００９８】
［ステップＳ２９］負荷監視部１５７ｅは、負荷情報管理テーブル１５７ｂを参照し、負荷に余裕のあるＰＭを選択する。そして、負荷監視部１５７ｅは、パケット廃棄依頼部１５７ｇに対して、負荷の軽減要求を渡す。
【００９９】
［ステップＳ３０］パケット廃棄依頼部１５７ｇは、ルータ優先順テーブル１５７ｃａを参照し、まだパケットが廃棄対象となっていないルータ（状態が「通信可」）の中で、最も優先順が低いルータを選択する。
【０１００】
［ステップＳ３１］パケット廃棄依頼部１５７ｇは、廃棄パケット用ＩＰアドレス１５７ｃｂを参照して、廃棄用のＩＰアドレスを認識する。そして、パケット廃棄依頼部１５７ｇは、負荷に余裕のあるＰＭに対して、パケットの廃棄を依頼する。
【０１０１】
［ステップＳ３２］負荷に余裕のあるＰＭの通信情報管理部は、廃棄用のＩＰアドレスと、実在しないＰＭに割り当てられるルータのＩＰアドレスとを、ルーティング処理部に渡す。ルーティング処理部は、振り替え対象のルータを宛先として、実在しないＰＭを経由した通信のルート情報を生成する。このルート情報には、ルータに割り当てられていたＰＭを経由した通信が不可能であることを示す情報が含まれている。
【０１０２】
［ステップＳ３３］ルーティング処理部は、生成したルート情報をクライアント側通信部に渡す。クライアント側通信部は、振り替え対象のルータへ、ルート情報を送信する。その後、処理が終了する。なお、このルート情報は、その後も定期的に送信される。
【０１０３】
次に、ルート情報の具体例について説明する。
図１４は、ＰＭ自身に割り当てられたルータに対するルート情報の一例を示す図である。このルート情報２００は、ＰＭ１３０が、自身に割り当てられたルータ３１に対して送信するルート情報である。
【０１０４】
ルート情報２００は、ＩＰヘッダ２１０、ＵＤＰ(User Datagram Protocol)ヘッダ２２０、およびデータ２３０で構成される。
ＩＰヘッダ２１０には、宛先ＩＰアドレスと送信元ＩＰアドレスとが含まれている。この例では、宛先ＩＰアドレスに、ルータ３１のＩＰアドレス「IPadd#31」が設定されている。また、送信元ＩＰアドレスに、ＰＭ１３０のＩＰアドレス（通信アダプタ１２０側）「IPadd#21」が設定されている。
【０１０５】
ＵＤＰヘッダ２２０には、ポート番号が含まれている。この例では、ポート番号に「５２０」が設定されている。ポート番号５２０は、このルート情報２００のパケットが、ＲＩＰであることを示している。
【０１０６】
データ２３０には、サーバ毎の経路定義２３１，２３２，・・・が登録されている。各経路定義２３１，２３２，・・・には、サーバＩＰアドレスとメトリックとが含まれている。メトリックは、対応するサーバまでの距離（中継するルータの数）を表している。メトリックは、１〜１５が有効な値である、メトリックに１６が設定された場合、対応するサーバへの通信が不可能であることを示している。
【０１０７】
この例では、サーバ２１に対応する経路定義２３１のサーバＩＰアドレスに、サーバ２１のＩＰアドレス「IPadd#11」が設定されている。サーバ２１に対応する経路定義２３１のメトリックは１である。また、サーバ２２に対応する経路定義２３２のサーバＩＰアドレスに、サーバ２２のＩＰアドレス「IPadd#12」が設定されている。サーバ２２に対応する経路定義２３２のメトリックは１である。同様に、他のサーバに対応する経路定義においても、メトリックを１〜１５の有効な値とすることで、送信元であるＰＭ１３０を経由して、各サーバ２１〜２３にアクセスできることが示される。
【０１０８】
このようなルート情報を、ＰＭ１３０に割り当てられたルータ３１にのみ送信することで、ルータ３１のみが、ＰＭ１３０を経由したサーバ２１〜２３へのアクセスを行うことができる。その結果、以後、ルータ３１経由でサーバ２１〜２３へ送られるパケットは、ＰＭ１３０を介して転送される。
【０１０９】
図１５は、他のＰＭから振り替えられたルータに対するルート情報の一例を示す図である。このルート情報３００は、ＰＭ１４０が、ルータ３１の割当先を、ＰＭ１３０からＰＭ１４０に振り替えるためのルート情報である。
【０１１０】
ルート情報３００は、ＩＰヘッダ３１０、ＵＤＰ(User Datagram Protocol)ヘッダ３２０、およびデータ３３０で構成される。
ＩＰヘッダ３１０には、宛先ＩＰアドレスと送信元ＩＰアドレスとが含まれている。この例では、宛先ＩＰアドレスに、ルータ３１のＩＰアドレス「IPadd#31」が設定されている。また、送信元ＩＰアドレスに、ＰＭ１４０のＩＰアドレス（通信アダプタ１２０側）「IPadd#22」が設定されている。
【０１１１】
ＵＤＰヘッダ３２０には、ポート番号が含まれている。この例では、ポート番号に「５２０」が設定されている。データ３３０には、サーバ毎の経路定義３３１，３３２，・・・が登録されている。各経路定義３３１，３３２，・・・には、サーバＩＰアドレスとメトリックとの組、並びにサーバＩＰアドレス、ネクストホップ、およびメトリックの組が含まれている。
【０１１２】
この例では、サーバ２１に対応する経路定義３３１のサーバＩＰアドレスとメトリックとの組には、それぞれサーバ２１のＩＰアドレス「IPadd#11」、メトリック１が設定されている。サーバ２１に対応する経路定義３３１のサーバＩＰアドレス、ネクストホップ、およびメトリックの組には、それぞれサーバ２１のＩＰアドレス「IPadd#11」、ＰＭ１３０のＩＰアドレス「IPadd#21」、メトリック１６が設定されている。サーバ２２に対応する経路定義３３２のサーバＩＰアドレスとメトリックとの組には、それぞれサーバ２２のＩＰアドレス「IPadd#12」、メトリック１が設定されている。サーバ２２に対応する経路定義３３２のサーバＩＰアドレス、ネクストホップ、およびメトリックの組には、それぞれサーバ２２のＩＰアドレス「IPadd#12」、ＰＭ１３０のＩＰアドレス「IPadd#21」、メトリック１６が設定されている。
【０１１３】
このようなルート情報３００を、ＰＭ１３０に割り当てられたルータ３１にのみ送信することで、ルータ３１は、ＰＭ１３０を経由したサーバ２１〜２３へのアクセスができないこと、およびＰＭ１４０を経由したサーバ２１〜２３へのアクセスが可能であることを認識できる。すなわち、各サーバの経路定義において、ネクストホップに設定されたＰＭ１３０のメトリックが１６であることにより、ルータ３１は、ＰＭ１３０を経由した経路上に、サーバ２１〜２３が存在しないものと認識する。その結果、以後、ルータ１３０経由でサーバ２１〜２３へ送られるパケットは、ＰＭ１４０を介して転送される。
【０１１４】
図１６は、パケット廃棄対象のルータに対するルート情報の一例を示す図である。このルート情報４００は、ＰＭ１４０が、ルータ３１の割当先を、実際には存在しないＰＭ（ＰＭ＃４）に振り替えるためのルート情報である。このルート情報は、ルータ３１を経由したパケットを廃棄することが決定されたときに出力される。
【０１１５】
ルート情報４００は、ＩＰヘッダ４１０、ＵＤＰ(User Datagram Protocol)ヘッダ４２０、およびデータ４３０で構成される。
ＩＰヘッダ４１０には、宛先ＩＰアドレスと送信元ＩＰアドレスとが含まれている。この例では、宛先ＩＰアドレスに、ルータ３１のＩＰアドレス「IPadd#31」が設定されている。また、送信元ＩＰアドレスに、ＰＭ１４０のＩＰアドレス（通信アダプタ１２０側）「IPadd#22」が設定されている。
【０１１６】
ＵＤＰヘッダ４２０には、ポート番号が含まれている。この例では、ポート番号に「５２０」が設定されている。データ４３０には、サーバ毎の経路定義４３１，４３２，・・・が登録されている。各経路定義４３１，４３２，・・・には、サーバＩＰアドレスとメトリックとの組、並びにサーバＩＰアドレス、ネクストホップ、およびメトリックの組が含まれている。
【０１１７】
この例では、サーバ２１に対応する経路定義４３１のサーバＩＰアドレスとメトリックとの組には、それぞれサーバ２１のＩＰアドレス「IPadd#11」、メトリック１６が設定されている。サーバ２１に対応する経路定義４３１のサーバＩＰアドレス、ネクストホップ、およびメトリックの組には、それぞれサーバ２１のＩＰアドレス「IPadd#11」、実在しないＰＭ（ＰＭ＃４）のＩＰアドレス「IPadd#24」、メトリック１が設定されている。サーバ２２に対応する経路定義４３２のサーバＩＰアドレスとメトリックとの組には、それぞれサーバ２２のＩＰアドレス「IPadd#12」、メトリック１６が設定されている。サーバ２２に対応する経路定義４３２のサーバＩＰアドレス、ネクストホップ、およびメトリックの組には、それぞれサーバ２２のＩＰアドレス「IPadd#12」、実在しないＰＭ（ＰＭ＃４）のＩＰアドレス「IPadd#24」、メトリック１が設定されている。
【０１１８】
このようなルート情報４００を、ＰＭ１３０に割り当てられたルータ３１にのみ送信することで、ルータ３１は、ＰＭ１３０を経由したサーバ２１〜２３へのアクセスができないこと、および実在しないＰＭ（ＰＭ＃４）を経由したサーバ２１〜２３へのアクセスが可能であることを認識する。すなわち、各サーバの経路定義において、ネクストホップに設定された実在しないＰＭ（ＰＭ＃４）のメトリックが１であることにより、ルータ３１は、ＰＭ（ＰＭ＃４）を経由した経路上に、サーバ２１〜２３が最も近い距離で存在するものと認識する。その結果、以後、ルータ１３０経由でサーバ２１〜２３へ送られるパケットは、実在しないＰＭ（ＰＭ＃４）宛に送信され、ＦＥＰ１００において廃棄される。
【０１１９】
以上説明した通り、本実施の形態によれば、ＰＭから送信するルート情報を制御することにより、ＦＥＰの各ＰＭが受信するＩＰパケット量を制御することができるようになる。これにより、不特定多数の通信相手から大量にデータを受信した場合でも優先度の高い通信を保証することができる。
【０１２０】
通信相手（クライアント５１〜５８）からの通信が想定量以上に集中すると、ＦＥＰ１００の能力オーバとなる。このような場合に、ルータ３１〜３４から見てパケットの送信先（ルータ３１〜３４におけるルート情報のゲートウェイ）を、一時的に、通信に使用しないＭＡＣアドレス／ＩＰアドレスに振り向ける。これにより、ＦＥＰ１００全体の負荷を軽減し、優先度の高い業務または相手との通信を保証することができる。
【０１２１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、フロントエンドプロセッサが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disc)などがある。
【０１２２】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１２３】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【図面の簡単な説明】
【０１２４】
【図１】本発明の実施の形態に適用される発明の概念図である。
【図２】本発明の実施の形態のシステム構成図である。
【図３】ＦＥＰの内部構成を示すブロック図である。
【図４】各ＰＭへのルータの割り当てのときの状態遷移を示す図である。
【図５】ＰＭ単体での負荷が過大となったときの状態遷移を示す図である。
【図６】ＦＥＰ全体での負荷が過大となったときの状態遷移を示す図である。
【図７】ＦＥＰ内のＰＭの処理機能を示す機能ブロック図である。
【図８】負荷制御部の機能の詳細を示すブロック図である。
【図９】ルータ割り当て定義テーブルのデータ構造例を示す図である。
【図１０】負荷情報管理テーブルのデータ構造例を示す図である。
【図１１】ルータ優先順テーブルのデータ構造例を示す図である。
【図１２】ＰＭに割り当てられたルータへのルート情報送信処理の手順を示すフローチャートである。
【図１３】ルータ割り当て振り替え処理の手順を示すフローチャートである。
【図１４】ＰＭ自身に割り当てられたルータに対するルート情報の一例を示す図である。
【図１５】他のＰＭから振り替えられたルータに対するルート情報の一例を示す図である。
【図１６】パケット廃棄対象のルータに対するルート情報の一例を示す図である。
【符号の説明】
【０１２５】
１  フロントエンドプロセッサ
１ａ〜１ｃ  ルーティング手段
１ｄ  負荷判断手段
１ｅ  割り当て手段
１ｆ  ルート情報送信手段
１ｇ  パケット廃棄手段
２  第１のネットワーク
３ａ〜３ｃ  ルータ
４  第２のネットワーク
５ａ〜５ｃ  サーバコンピュータ
１００  フロントエンドプロセッサ
１１０，１２０  通信アダプタ
１３０，１４０，１５０  プロセッサモジュール
【図１】
2007049731.tif 000003
【図２】
2007049731.tif 000004
【図３】
2007049731.tif 000005
【図４】
2007049731.tif 000006
【図５】
2007049731.tif 000007
【図６】
2007049731.tif 000008
【図７】
2007049731.tif 000009
【図８】
2007049731.tif 000010
【図９】
2007049731.tif 000011
【図１０】
2007049731.tif 000012
【図１１】
2007049731.tif 000013
【図１２】
2007049731.tif 000014
【図１３】
2007049731.tif 000015
【図１４】
2007049731.tif 000016
【図１５】
2007049731.tif 000017
【図１６】
2007049731.tif 000018