(57)【要約】【課題】転送性能の向上を図ること。【解決手段】選択装置は、パケット転送が可能な複数の転送部の中から選択された特定の転送部が参照したアドレスを検出し、特定の転送部の負荷の上昇を示す使用率が所定値以上であるか否かを判断し、アドレスの検出後所定時間内に負荷の上昇率が所定値以上であると判断された場合、アドレスに対し、負荷の上昇に起因することを示す識別情報を設定し、アドレスが再検出された場合、再検出時の使用率と、識別情報が設定されたときの負荷の上昇率と、に基づいて、特定の転送部のアドレスに対する予測使用率を算出し、複数の転送部の中から、算出された予測使用率に応じた数の転送部を選択する。【選択図】  図３
2014123863.tif 000002
【特許請求の範囲】
【請求項１】
パケット転送が可能な複数の転送部の中から選択されたパケット転送を実行する特定の転送部が参照したアドレスを検出する検出部と、
前記特定の転送部のパケット転送による負荷の上昇を示す値が所定値以上であるか否かを判断する判断部と、
前記検出部による前記アドレスの検出後所定時間内に前記判断部によって前記負荷の上昇を示す値が前記所定値以上であると判断された場合、前記アドレスに対し、前記負荷の上昇に起因することを示す識別情報を設定する設定部と、
前記検出部によって前記アドレスが再検出された場合、再検出時の負荷を示す値と、前記設定部によって前記識別情報が設定されたときの前記負荷の上昇を示す値と、に基づいて、前記特定の転送部の前記アドレスに対するパケット転送による予測負荷を示す値を算出する算出部と、
前記複数の転送部の中から、前記算出部によって算出された予測負荷を示す値に応じた数の転送部を選択する選択部と、
を有することを特徴とする選択装置。
【請求項２】
前記算出部は、前記検出部による複数のタイミングで前記設定部によって前記識別情報が設定済みである場合、前記再検出時の負荷を示す値と、各タイミングでの前記負荷の上昇を示す値と、前記識別情報の数と、に基づいて、前記予測負荷を示す値を算出することを特徴とする請求項１に記載の選択装置。
【請求項３】
前記算出部は、前記識別情報の数が所定の基準を満たしている場合、前記再検出時の負荷を示す値と、前記負荷の上昇を示す値と、前記識別情報の数と、に基づいて、前記予測負荷を示す値を算出することを特徴とする請求項２に記載の選択装置。
【請求項４】
前記算出部は、前記検出部によって複数のアドレスが再検出された場合、前記複数のアドレスの各々の再検出時の負荷の上昇を示す値のうち、再検出時の負荷の上昇を示す特定の値を採用し、前記再検出時の負荷を示す値と、前記負荷の上昇を示す特定の値と、前記負荷の上昇を示す特定の値に対応する前記識別情報の数と、に基づいて、前記負荷の上昇を示す特定の値が採用されたアドレスについてのパケット転送による予測負荷を示す値を算出することを特徴とする請求項１に記載の選択装置。
【請求項５】
前記算出部は、前記複数のアドレスのうち前記識別情報の数が所定の基準を満たしている特定のアドレスの再検出時の負荷の上昇を示す値を採用し、前記特定のアドレスの前記再検出時の負荷を示す値と、前記特定のアドレスの再検出時の負荷の上昇を示す値と、前記特定のアドレスについての前記識別情報の数と、に基づいて、前記特定の転送部の前記特定のアドレスに対するパケット転送による予測負荷を示す値を算出することを特徴とする請求項４に記載の選択装置。
【請求項６】
パケット転送が可能な複数の転送部の中から選択されたパケット転送を実行する特定の転送部が参照したアドレスを検出する検出工程と、
前記特定の転送部のパケット転送による負荷の上昇を示す値が所定値以上であるか否かを判断する判断工程と、
前記検出工程による前記アドレスの検出後所定時間内に前記判断工程によって前記負荷の上昇を示す値が前記所定値以上であると判断された場合、前記アドレスに対し、前記負荷の上昇に起因することを示す識別情報を設定する設定工程と、
前記検出工程によって前記アドレスが再検出された場合、再検出時の負荷を示す値と、前記設定工程によって前記識別情報が設定されたときの前記負荷の上昇を示す値と、に基づいて、前記特定の転送部の前記アドレスに対するパケット転送による予測負荷を示す値を算出する算出工程と、
前記複数の転送部の中から、前記算出工程によって算出された予測負荷を示す値に応じた数の転送部を選択する選択工程と、
を有することを特徴とする選択方法。
【請求項７】
前記算出工程は、前記検出工程による複数のタイミングで前記設定工程によって前記識別情報が設定済みである場合、前記再検出時の負荷を示す値と、各タイミングでの前記負荷の上昇を示す値と、前記識別情報の数と、に基づいて、前記予測負荷を示す値を算出することを特徴とする請求項６に記載の選択方法。
【請求項８】
前記算出工程は、前記識別情報の数が所定の基準を満たしている場合、前記再検出時の負荷を示す値と、前記負荷の上昇を示す値と、前記識別情報の数と、に基づいて、前記予測負荷を示す値を算出することを特徴とする請求項７に記載の選択方法。
【請求項９】
前記算出工程は、前記検出工程によって複数のアドレスが再検出された場合、前記複数のアドレスの各々の再検出時の負荷の上昇を示す値のうち、再検出時の負荷の上昇を示す特定の値を採用し、前記再検出時の負荷を示す値と、前記負荷の上昇を示す特定の値と、前記負荷の上昇を示す特定の値に対応する前記識別情報の数と、に基づいて、前記負荷の上昇を示す特定の値が採用されたアドレスについてのパケット転送による予測負荷を示す値を算出することを特徴とする請求項６に記載の選択方法。
【請求項１０】
前記算出工程は、前記複数のアドレスのうち前記識別情報の数が所定の基準を満たしている特定のアドレスの再検出時の負荷の上昇を示す値を採用し、前記特定のアドレスの前記再検出時の負荷を示す値と、前記特定のアドレスの再検出時の負荷の上昇を示す値と、前記特定のアドレスについての前記識別情報の数と、に基づいて、前記特定の転送部の前記特定のアドレスに対するパケット転送による予測負荷を示す値を算出することを特徴とする請求項９に記載の選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット転送が可能な複数の転送部の中から転送部を選択する選択装置および選択方法に関する。
【背景技術】
【０００２】
ホームゲートウェイやブロードバンドルータに使用されるＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）では、高速なパケット転送を実現するため、パケット転送処理専用のパケット転送エンジンを搭載することが一般的である。しかし、ホームゲートウェイのようなコンシューマ向け通信装置の利用形態では、パケット転送エンジンが最大スループットで動作する時間は、当該通信装置の稼働時間と比較すると極めて短い。
【０００３】
そのため、パケット転送エンジンを常に最大パフォーマンスで動作させることは無駄な消費電力の増加につながる。したがって、パケット転送処理が発生しない時間帯には、パケット転送エンジンを省電力モードに切り替え、パケット転送エンジンの消費電力を削減する必要がある。省電力モードを制御する手法として、下記の公知例がある。
【０００４】
特許文献１は、様々な要因によって生じる通信レートの変動や通信装置の動作状態の変化に応じて、適切な動作モードを設定し、データ通信を行う技術である。具体的には、装置の実効スループットの時間的な変化を測定する。そして、実効スループットが高い場合は、高速にパケット処理を実行する必要があると判断し、処理能力が高く消費電力が高い動作モードで動作させる。反対に、実効スループットが低い場合は高速に処理を実行する必要がないと判断し、処理能力が低く消費電力が低い動作モードで動作させる。
【０００５】
特許文献２は、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のデータを認識し、トラヒックが増大する制御パケットを解析し、転送されるデータ量を先読みする伝送装置である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１７６５１７号
【特許文献２】特開２０００−５９４２９号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述のように、ホームゲートウェイやブロードバンドルータに使用されるＳｏＣの消費電力の削減には、通信処理を実行しない時間帯に、パケット処理を担うパケット転送エンジンを省電力モードに切り替える手法が有効である。しかしながら、上記特許文献１では、大容量のパケット転送要求が突然発生すると、パケット転送エンジンの処理量が急激に増加する。そのため、実行スループットやパケット転送エンジンの使用率の上昇の検出をトリガーとしてパケット転送エンジンの動作モードを制御したのでは、通信要求に対して後追いの動作となり、初動の転送性能が劣化する。
【０００８】
また、先読みした通信データ量に基づき動作モードを制御する特許文献２の手法では、データ転送の開始前に、転送データ量の情報を含んだ制御パケットが流れるプロトコル以外には適応することができず、プロトコルの種類が限定される。
【０００９】
本発明は、転送性能の向上を図ることを目的とする。
【課題を解決するための手段】
【００１０】
本願において開示される発明の一側面となる選択装置および選択方法は、パケット転送が可能な複数の転送部の中から選択された前記パケット転送を実行する特定の転送部が参照したアドレスを検出し、前記特定の転送部の前記パケット転送による負荷の上昇を示す値が所定値以上であるか否かを判断し、前記アドレスの検出後所定時間内に前記負荷の上昇を示す値が前記所定値以上であると判断された場合、前記アドレスに対し、前記負荷の上昇に起因することを示す識別情報を設定し、前記アドレスが再検出された場合、再検出時の負荷を示す値と、前記識別情報が設定されたときの前記負荷の上昇を示す値と、に基づいて、前記特定の転送部の前記アドレスに対するパケット転送による予測負荷を示す値を算出し、前記複数の転送部の中から、算出された予測負荷を示す値に応じた数の転送部を選択する。
【発明の効果】
【００１１】
本発明の代表的な実施の形態によれば、転送性能の向上を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施例であるホームゲートウェイの利用例を示す説明図である。
【図２】本発明の一実施例であるＳｏＣのハードウェア構成例を示すブロック図である。
【図３】パケット転送エンジンの構成例を示すブロック図である。
【図４】使用率の検出例を示すグラフである。
【図５】上昇率の算出例を示すグラフである。
【図６】記憶部に記憶される管理テーブルの記憶内容例を示す説明図である。
【図７】選択テーブルの記憶内容例を示す説明図である。
【図８】監視部による使用率の算出処理手順例を示すフローチャートである。
【図９】検出部による参照カウンタの動作処理手順を示すフローチャートである。
【図１０】管理テーブルの更新処理手順例を示すフローチャートである。
【図１１】選択部および算出部による転送部の選択処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
図１は、本発明の一実施例であるホームゲートウェイの利用例を示す説明図である。ホームゲートウェイ１００は、ホームゲートウェイ１００に備えたＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ポートを介して、ネットワーク機器と接続し、家庭内ＬＡＮを形成する。ネットワーク機器は、例えば、有線ＬＡＮで接続したパーソナルコンピュータ１０１、ＩＰ電話１０２、および無線ＬＡＮで接続したノートパソコン１０３や携帯電話端末である。また、ホームゲートウェイ１００は、ホームゲートウェイ１００に備えたＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ポートを介してインターネット網１０４とも接続される。ホームゲートウェイ１００は家庭内ＬＡＮとインターネット網１０４との間でやりとりされる通信パケットの中継および経路制御をおこなう。
【００１４】
図２は、本発明の一実施例であるＳｏＣのハードウェア構成例を示すブロック図である。ＳｏＣ２００は、ホームゲートウェイ１００またはブロードバンドルータといったネットワーク装置に搭載されるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）であり、ネットワーク関連の処理を実行する専用プロセッサである。なお、本実施例では、ホームゲートウェイ１００に内蔵されるＳｏＣ２００について説明するが、ネットワーク装置に限らず、携帯端末などの通信装置にも適用可能である。
【００１５】
ＳｏＣ２００は、ＣＰＵ２０１と、メモリコントローラ２０２と、インターフェース用コントローラ２０３と、パケット転送エンジン２０４と、を有する。ＣＰＵ２０１、メモリコントローラ２０２、インターフェース用コントローラ２０３、およびパケット転送エンジン２０４は、システムバス２０５により接続される。
【００１６】
ＣＰＵ２０１は、ＳｏＣ２００を制御する。メモリコントローラ２０２は、ＳｏＣ２００外の図示しないメモリと接続される。インターフェース用コントローラ２０３は、ＳｏＣ２００外の図示しないインターフェースと接続される。ＣＰＵ２０１、インターフェース用コントローラ２０３、およびパケット転送エンジン２０４は、メモリコントローラ２０２に対してリード/ライト等のアクセスが可能である。パケット転送エンジン２０４は、パケット転送処理専用の回路である。パケット転送エンジン２０４は、パケット転送処理に特化した設計により、高速なパケット処理を実現する。
【００１７】
図３は、パケット転送エンジン２０４の構成例を示すブロック図である。パケット転送エンジン２０４は、通信部３０１と、複数の転送部３０２と、検出部３０３と、記憶部３０７と、監視部３０４と、判断部３０５と、設定部３０６と、算出部３０８と、選択部３０９と、を有する。複数の転送部３０２は、図３では一例として４個であるが、２個以上であればよい。
【００１８】
通信部３０１は、ＬＡＮポートおよびＷＡＮポートから送受信されるパケットに対して、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）より下位のプロトコルに基づいた通信制御を行うインターフェースである。通信部３０１は、例えば、イーサネット（登録商標）であればＩＥＥＥ８０２．３に準拠して、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスに基づいた送受信の制御を行う。
【００１９】
通信部３０１は、パケットの送信時には、複数の転送部３０２のうち動作中のいずれかの転送部から受信したパケットに送信先ＭＡＣアドレスおよび送信元ＭＡＣアドレス等の制御情報を付加してＬＡＮポートまたはＷＡＮポートへ送信する。通信部３０１は、パケットの受信時には、ＬＡＮポートまたはＷＡＮポートから受信したパケットから、ＭＡＣアドレス等の制御情報を削除し、複数の転送部３０２のうち動作中のいずれかの転送部へ送信する。
【００２０】
複数の転送部３０２は、それぞれパケットのヘッダのチェックを行い、宛先アドレス等のヘッダ情報に基づいて処理内容を判断し、適切なポートにパケットを転送する回路である。複数の転送部３０２は、ホームゲートウェイ１００が送受信するパケットを処理する。本実施例では、性能向上と低消費電力化のため、各転送部３２１〜３２４は、それぞれ、同様の機能および処理能力を持つ。パケット転送エンジン２０４は、複数の転送部３０２を動作させ処理を分担することで高い処理能力を実現する。
【００２１】
一方で、動作する転送部の数が増えるほど消費電力が増加する。転送部３２１〜３２４はそれぞれが独立した構成をとり、各転送部を他の転送部の動作モードに影響を与えずに動作モードを制御することが可能である。ここで、動作モードは、パケット処理を実行可能なアクティブモードと、動作クロックの停止や電源供給を停止することにより消費電力を削減するスタンバイモードと、を有する。動作モードの制御とは、アクティブモードとスタンバイモードとを切り替えることである。
【００２２】
検出部３０３は、パケット転送が可能な複数の転送部３０２の中から選択されたパケット転送を実行する特定の転送部が参照したアドレスを検出する回路である。具体的には、たとえば、検出部３０３は、動作モードがアクティブモードである転送部がパケット処理において参照したＩＰアドレスを検出する。検出部３０３は、検出したＩＰアドレスを記憶部３０７に送る。
【００２３】
監視部３０４は、特定の転送部の負荷を監視する回路である。負荷とは、たとえば、アクティブモードである転送部の使用率により表現される。使用率とは、具体的には、たとえば、単位時間のうちアクティブモードである転送部が処理を実行している時間の割合を表す。すなわち、単位時間内に全く処理を実行しない場合は使用率０［％］、単位時間内に常に処理を実行し続けている場合は使用率１００［％］となる。監視部３０４は、アクティブモードである転送部の負荷を、使用率として算出する。また、アクティブモードである特定の転送部が複数個動作している場合は、監視部３０４は、アクティブモードである各転送部の使用率の平均値を算出する。監視部３０４は、算出した使用率を判断部３０５に送る。
【００２４】
判断部３０５は、特定の転送部のパケット転送による負荷の上昇を示す値が所定値以上であるか否かを判断する回路である。具体的には、たとえば、判断部３０５は、アクティブモードである転送部について、２つの時刻での使用率の差分を上昇率として算出し、算出した上昇率が所定の上昇率以上であるか否かを判断する。たとえば、判断部３０５は、時刻ｔ（ｎ＋１）での使用率Ｌ（ｎ＋１）とその前の時刻ｔ（ｎ）での使用率Ｌ（ｎ）との差分｛Ｌ（ｎ＋１）−Ｌ（ｎ）｝を上昇率Ｕ（ｎ）として算出する。そして、判断部３０５は、Ｕ（ｎ）≧Ｕｔｈを満たすか否かを判断する。Ｕｔｈは所定の上昇率である。
【００２５】
また、判断部３０５は、２つの時刻ではなく２つの時間帯の使用率の平均値の差分を上昇率として算出し、算出した上昇率が所定の上昇率以上であるか否かを判断することとしてもよい。例えば、判断部３０５は、時刻ｔ（ｎ＋１）〜時刻ｔ（ｎ＋ｍ）の時間帯の平均使用率Ｌ（ｎ＋１）と、時刻ｔ（ｎ−ｍ）〜時刻ｔ（ｎ）の時間帯の平均使用率Ｌ（ｎ）と、の差分を上昇率Ｕ（ｎ）として算出する。そして、判断部３０５は、Ｕ（ｎ）≧Ｕｔｈを満たすか否かを判断する。なお、上昇率の算出は、監視部３０４が実行してもよい。この場合、監視部３０４は、判断部３０５に対し、算出した上昇率を送ることになる。なお、判断部３０５は、判断結果にかかわらず、上昇率を記憶部３０７に送る。
【００２６】
設定部３０６は、検出部３０３によるアドレスの検出後所定時間内に判断部３０５によって負荷の上昇を示す値が所定値以上であると判断された場合、検出部３０３により検出されたアドレスに対し負荷の上昇に起因することを示す識別情報を設定する回路である。具体的には、たとえば、設定部３０６は、判断部３０５によってＵ（ｎ）≧Ｕｔｈと判断された場合、検出したＩＰアドレスを、負荷の上昇に起因するアドレスとみなして、その旨の識別情報を付与する。設定部３０６は、識別情報の付与を、判断部３０５によってＵ（ｎ）≧Ｕｔｈと判断されたＩＰアドレスごとに経時的におこなう。これにより、パケット転送エンジン２０４は、どのＩＰアドレスが負荷の上昇に起因するアドレスであるかを学習することができる。
【００２７】
記憶部３０７は、たとえば、メモリなどの記憶装置であり、２つのテーブルを記憶する。記憶部３０７に記憶されるテーブルは、管理テーブルと選択テーブルである。管理テーブルは、検出部３０３によって検出されたＩＰアドレスを記憶する。また、管理テーブルは、ＩＰアドレスごとに、設定部３０６によって設定される識別情報を記憶する。また、管理テーブルは、判断部３０５からの上昇率を記憶する。管理テーブルの詳細については図６において後述する。
【００２８】
選択テーブルは、アクティブモードとして動作させる転送部の個数を選択するテーブルである。具体的には、選択テーブルでは、予測使用率に応じてアクティブモードとして動作させる転送部の個数が対応付けられる。選択テーブルの詳細については図７において後述する。
【００２９】
算出部３０８は、検出部３０３によってアドレスが検出された場合、特定の転送部のアドレスに対するパケット転送による予測負荷を示す値を算出する回路である。具体的には、たとえば、検出部３０３によって識別情報が設定済みのＩＰアドレスが検出されると、そのＩＰアドレス（以下、「検出ＩＰアドレス」）について所定時間カウントダウンが実行される。
【００３０】
算出部３０８は、監視部３０４で得られた特定の転送部の使用率と、これ以前に検出ＩＰアドレスについて識別情報が設定されたときの特定の転送部の負荷の上昇率と、を加算する。これにより、特定の転送部のアドレスに対するパケット転送による予測負荷を示す値である予測使用率が算出される。算出された値が、アドレス検出後の所定時間経過後におけるアクティブモードの転送部の予測使用率となる。これにより、負荷上昇後の使用率が予測される。
【００３１】
また、検出ＩＰアドレスについて識別情報が複数設定されている場合、算出部３０８は、識別情報ごとの上昇率の平均値である平均上昇率を算出する。この場合、算出部３０８は、監視部３０４で得られた特定の転送部の使用率と、平均上昇率と、を加算する。これにより、特定の転送部のアドレスに対するパケット転送による予測負荷を示す値である予測使用率が算出される。
【００３２】
また、検出ＩＰアドレスが複数存在する場合、算出部３０８は、検出ＩＰアドレスごとに平均上昇率を算出する。この場合、算出部３０８は、複数の平均上昇率のうち最大値を採用して、予測使用率を算出する。
【００３３】
また、算出部３０８は、識別情報が複数ある場合、識別情報の数（後述の関連度Ｓ）が所定の基準を満たしているか否かを判断する。所定の基準としては、たとえば、しきい値以上であるか否かといった判断基準や、所定順位内であるかといった判断基準がある。そして、算出部３０８は、所定の基準を満たした平均使用率を採用して、予測使用率を算出する。識別情報の数は、上昇イベントの発生回数を示す。したがって、識別情報の数が所定の基準を満たしていないが、平均上昇率が高い場合、偶発的に平均上昇率が高い可能性がある。そのような場合を排除するため、識別情報の数に制約を設定することにより、採用される平均上昇率の信頼性の向上を図ることができる。
【００３４】
選択部３０９は、複数の転送部３０２の中から、算出部３０８によって算出された予測負荷を示す値に応じた数の転送部を選択する回路である。具体的には、たとえば、選択部３０９は、選択テーブルを参照して、算出されたた予測使用率に応じた数の転送部を選択する。より具体的には、選択部３０９は、選択した転送部をアクティブモードに切替制御する。なお、選択部３０９は、どの転送部をアクティブモードにするかは、あらかじめ決めておいてもよい。たとえば、図３の示したように転送部が４個の場合、転送部１は常時アクティブモードとし、転送部２は、２個以上選択される場合に選択される転送部、転送部３は、３個以上選択される場合に選択される転送部、転送部４は、４個選択される場合に選択される転送部としてもよい。
【００３５】
図４は、使用率の検出例を示すグラフである。図４において、横軸が経過時間であり、縦軸が使用率［％］である。図４中、楕円で囲われている箇所が、使用率が急激に上昇している箇所である。本実施例では、このような箇所を上昇イベントと称す。図４では、３回の上昇イベントＲ１、Ｒ２、Ｒ３が検出される。
【００３６】
図５は、上昇率の算出例を示すグラフである。図５のグラフは、図４の一部を部分的に拡大したグラフである。上述したように、上昇率Ｕ（ｎ）は、時刻ｔ（ｎ＋１）での使用率Ｌ（ｎ＋１）とその前の時刻ｔ（ｎ）での使用率Ｌ（ｎ）との差分｛Ｌ（ｎ＋１）−Ｌ（ｎ）｝として算出される。
【００３７】
図６は、記憶部３０７に記憶される管理テーブルの記憶内容例を示す説明図である。図６において、管理テーブル６００は、ＩＰアドレス項目と、参照カウンタ項目と、上昇イベント項目と、上昇率項目と、関連度項目と、平均上昇率項目と、を有する。ＩＰアドレス項目には、検出部３０３によって検出されたＩＰアドレスが格納される。
【００３８】
参照カウンタ項目には、参照カウンタが格納される。参照カウンタとは、ＩＰアドレスの検出後所定時間を計時するためのカウンタである。参照カウンタＣの初期値はＣ＝ｔ（＞０の自然数）である。ｔは任意に設定可能である。参照カウンタは、ＩＰアドレスの検出後にＣ＝ｔからデクリメントされ、０になるとデクリメントが停止される。図６の例では、ＩＰアドレス「ｘ．ｘ．ｘ．１」、「ｚ．ｚ．ｚ．３」、「ｂ．ｂ．ｂ．５」および「ｃ．ｃ．ｃ．６」の参照カウンタがデクリメント中である。
【００３９】
上昇イベント項目には、上昇イベントが格納される。上昇イベントとは、ＩＰアドレスごとに負荷の上昇に起因する／しないことを示す識別情報列である。識別情報の一例として、負荷の上昇に起因する場合は「１」、負荷の上昇に起因しない場合は「０」が格納される。具体的には、上昇イベント発生時に、参照カウンタＣ≠０であるＩＰアドレスに、負荷の上昇に起因する識別情報「１」が設定される。それ以外は「０」のままである。
【００４０】
たとえば，上昇イベントＲ１では、転送部が参照したＩＰアドレスは、「ｘ．ｘ．ｘ．１」および「ｚ．ｚ．ｚ．３」であり、「ｙ．ｙ．ｙ．２」、「ａ．ａ．ａ．４」、「ｂ．ｂ．ｂ．５」および「ｃ．ｃ．ｃ．６」は参照していないことがわかる。
【００４１】
上昇イベントは、検出される都度、その識別情報列が格納される。図６では、上昇イベントＲ１〜Ｒ１００が格納される。ここでは、上昇イベントＲ＃（＃は数字）の＃が大きいほど新しい上昇イベントとする。すなわち、上昇イベントＲ１が最古の上昇イベントであり、上昇イベントＲ１００が最新の上昇イベントとなる。このあと、さらに上昇イベントが追加される場合、最古の上昇イベントＲ１の識別情報列「１０１０００」が削除され、あらたな上昇イベントの識別情報列が追加される。
【００４２】
上昇率項目には、上昇イベント発生時の上昇率が格納される。たとえば、上昇イベントＲ１の上昇率Ｕ（１）は６２［％］であり、上昇イベントＲ２の上昇率Ｕ（２）は２７［％］である。
【００４３】
関連度項目には、関連度Ｓが格納される。関連度Ｓとは、そのＩＰアドレスにおける上昇イベント列Ｒ１〜Ｒ１００の識別情報の総和である。たとえば、ＩＰアドレス「ｚ．ｚ．ｚ．３」では、Ｒ１からＲ１００までのうち、６０回の上昇イベントに起因し、識別情報「１」が設定され、その総和として関連度Ｓ＝６０が設定されている。
【００４４】
平均上昇率項目には、平均上昇率が格納される。平均上昇率とは、そのＩＰアドレスにおいて所定の上昇率Ｕｔｈ以上となった上昇率の平均値である。たとえば、ＩＰアドレス「ｚ．ｚ．ｚ．３」では、関連度Ｓ＝６０であるから、識別情報「１」が設定された６０回の上昇イベントの上昇率（図６ではＵ（１）、Ｕ（２）、Ｕ（１００）など）の総和を関連度Ｓ＝６０で割った値が、ＩＰアドレス検出時の平均上昇率５２［％］となる。
【００４５】
このように、上昇イベントの識別情報列を経時的に設定し、平均上昇率をとることにより、アクティブモードである転送部がどのＩＰアドレスを参照する場合に、転送部の負荷がどの程度上昇するかを学習することができる。
【００４６】
図７は、選択テーブル７００の記憶内容例を示す説明図である。選択テーブル７００は、予測使用率項目とアクティブモード数項目とを有する。予測使用率項目には、予測使用率の適用範囲が格納される。予測使用率Ｘとは、現在アクティブモードである転送部の使用率と、そのときの上昇イベント時における平均上昇率との和である。
【００４７】
たとえば、現在アクティブモードである転送部の使用率が２０［％］で、管理テーブル６００が図６の状態のときに、ＩＰアドレス「ｘ．ｘ．ｘ．１」が参照された場合、ＩＰアドレス「ｘ．ｘ．ｘ．１」の平均上昇率である５９．５［％］が採用される。したがって、したがって、予測使用率Ｘは、２０［％］＋５９．５［％］＝７９．５［％］となる。これにより、Ｘ≧７０％に該当するため、選択部３０９は「４」を読み出すことになる。また、ＩＰアドレス「ｘ．ｘ．ｘ．１」および「ｚ．ｚ．ｚ．３」が同じタイミングで参照された場合、それぞれの平均上昇率は、５９．５［％］、５２［％］である。この中で最大となる平均上昇率は、ＩＰアドレス「ｘ．ｘ．ｘ．１」の５９．５［％］である。したがって、予測使用率Ｘは、２０［％］＋５９．５［％］＝７９．５［％］となる。これにより、Ｘ≧７０％に該当するため、選択部３０９は「４」を読み出すことになる。
【００４８】
なお、平均上昇率を採用する場合、関連度Ｓの大きさを考慮してもよい。関連度Ｓの大きさは、そのＩＰアドレスについての上昇イベントの発生回数を示す。すなわち、関連度Ｓが低いが平均上昇率が高い場合、偶発的に平均上昇率が高い可能性がある。そのような平均上昇率を不採用とするため、参照されたＩＰアドレスの平均上昇率のうち、関連度Ｓがしきい値Ｓｔｈ以上である平均上昇率や、たとえば上位１０位までの平均上昇率を採用候補とする。なお、平均上昇率の採用候補が複数ある場合、最大値のほか、採用候補の平均上昇率の中央値や平均値を採用してもよい。
【００４９】
図８は、監視部３０４による使用率の算出処理手順例を示すフローチャートである。まず、監視部３０４は、一定時間経過するまで待ち受け（ステップＳ８０１：Ｎｏ）、一定時間経過した場合（ステップＳ８０１：Ｙｅｓ）、アクティブモードである転送部の実行時間を検出する（ステップＳ８０２）。アクティブモードである転送部が複数ある場合は、監視部３０４は、転送部ごとに検出する。
【００５０】
そして、監視部３０４は、検出された実行時間とステップＳ８０１の一定時間とにより、使用率を算出する（ステップＳ８０３）。アクティブモードである転送部が複数ある場合は、監視部３０４は、使用率の平均値を算出する。このあと、監視部３０４は、算出した使用率を判断部３０５に出力し（ステップＳ８０４）、ステップＳ８０１に戻る。これにより、監視部３０４は、一定時間ごとに、アクティブモードである転送部の使用率を算出することができる。
【００５１】
図９は、検出部３０３による参照カウンタの動作処理手順を示すフローチャートである。まず、検出部３０３は、アクティブモードである転送部からＩＰアドレスを検出するまで待機する（ステップＳ９０１：Ｎｏ）。そして、ＩＰアドレスを検出した場合（ステップＳ９０１：Ｙｅｓ）、検出部３０３は、管理テーブル６００を参照して、未登録アドレスであるか否かを判断する（ステップＳ９０２）。未登録アドレスである場合（ステップＳ９０２：Ｙｅｓ）、検出部３０３は、管理テーブル６００に対し、検出したＩＰアドレスを登録して（ステップＳ９０３）、ステップＳ９０４に移行する。一方、未登録アドレスでない場合（ステップＳ９０２：Ｎｏ）、ステップＳ９０４に移行する。
【００５２】
ステップＳ９０４において、検出部３０３は、管理テーブル６００にアクセスして、検出したＩＰアドレスの参照カウンタＣをリセット（Ｃ＝ｔ）する（ステップＳ９０４）。これにより、参照カウンタＣのデクリメントが開始される。検出部３０３は、Ｃ＝０であるか否かを判断し（ステップＳ９０５）、Ｃ＝０でない場合（ステップＳ９０５：Ｎｏ）、参照カウンタをデクリメントして（ステップＳ９０６）、ステップＳ９０５に戻る。一方、Ｃ＝０の場合（ステップＳ９０５：Ｙｅｓ）、ステップＳ９０１に戻る。これにより、ＩＰアドレスが検出される都度、参照カウンタによる計時が実行される。
【００５３】
図１０は、管理テーブル６００の更新処理手順例を示すフローチャートである。まず、判断部３０５が、検出タイミングを待ち受ける（ステップＳ１００１：Ｎｏ）。検出タイミングは、図８のステップＳ８０１の一定時間経過時でもよい。
【００５４】
検出タイミングである場合（ステップＳ１００１：Ｙｅｓ）、判断部３０５は、上昇率を算出する（ステップＳ１００２）。そして、判断部３０５は、上昇イベントであるか否かを判断する（ステップＳ１００３）。具体的には、たとえば、判断部３０５は、上昇率が所定の上昇率以上であるか否かを判断する。所定の上昇率以上である場合は上昇イベントとなる。
【００５５】
上昇イベントでない場合（ステップＳ１００３：Ｎｏ）、ステップＳ１００１に戻る。一方、上昇イベントである場合（ステップＳ１００３：Ｙｅｓ）、設定部３０６は、上昇イベントについて識別情報列を設定し、管理テーブル６００に登録されているＩＰアドレスについての関連度を更新する（ステップＳ１００４）。また、算出部３０８は、管理テーブル６００に登録されているＩＰアドレスごとに、平均上昇率を算出し（ステップＳ１００５）、ステップＳ１００１に戻る。これにより、転送部の負荷の上昇傾向を学習することができる。
【００５６】
図１１は、選択部３０９および算出部３０８による転送部の選択処理手順例を示すフローチャートである。まず、選択部３０９は、選択タイミングになるのを待ち受ける（ステップＳ１１０１：Ｎｏ）。選択タイミングは、一定時間間隔でもよく、また、上昇イベントの検出時でもよい。選択タイミングである場合（ステップＳ１１０１：Ｙｅｓ）、選択部３０９は、管理テーブル６００を参照して、参照カウンタＣ≠０のＩＰアドレスがあるか否かを判断する（ステップＳ１１０２）。
【００５７】
参照カウンタＣ≠０のＩＰアドレスがない場合（ステップＳ１１０２：Ｎｏ）、すなわち、登録されているすべてのＩＰアドレスについて参照カウンタＣがＣ＝０である場合、ステップＳ１１０７に移行する。一方、参照カウンタＣ≠０のアドレスがある場合（ステップＳ１１０２：Ｙｅｓ）、算出部３０８は、管理テーブル６００から、参照カウンタＣ≠０のＩＰアドレスの平均上昇率を抽出する（ステップＳ１１０３）。また、関連度Ｓに対ししきい値Ｓｔｈが設定されている場合は、算出部３０８は、参照カウンタＣ≠０のＩＰアドレスについて、関連度Ｓ≧Ｓｔｈとなる平均上昇率を抽出する。また、関連度Ｓに対し所定順位（たとえば、上位１０位）までを抽出候補にする場合は、算出部３０８は、参照カウンタＣ≠０のＩＰアドレスについて、関連度Ｓが上位１０位までの平均上昇率を抽出する。採用候補の平均上昇率が複数ある場合は、算出部３０８は、その中から最大平均上昇率を抽出する。
【００５８】
そして、算出部３０８は、抽出された平均上昇率と現在の使用率とを加算して、予測使用率を算出する（ステップＳ１１０４）。つぎに、選択部３０９は、選択テーブル７００を参照して、算出された予測使用率に対応する転送部の数を抽出する（ステップＳ１１０５）。そして、選択部３０９は、抽出数の転送部を選択する（ステップＳ１１０６）。すなわち、選択部３０９は、抽出数の転送部をアクティブモードに切り替える。
【００５９】
このあと、所定時間、たとえば、参照カウンタの計時時間ｔが経過するまで待ち受け（ステップＳ１１０７：Ｎｏ）、所定時間経過した場合（ステップＳ１１０７：Ｙｅｓ）、選択部３０９は、所定時間経過後のあらたな使用率を検出部３０３から取得する（ステップＳ１１０８）。そして、選択部３０９は、選択テーブル７００を参照して、算出された予測使用率に対応する転送部の数を抽出する（ステップＳ１１０９）。そして、選択部３０９は、抽出数の転送部を選択する（ステップＳ１１０６）。すなわち、選択部３０９は、抽出数の転送部をアクティブモードに切り替える。このあと、ステップＳ１１０１に戻る。これにより、管理テーブル６００の学習内容により、使用率の上昇に応じた転送部の選択をおこなうことができる。
【００６０】
このように、本実施例によれば、転送部の負荷の上昇を予測するため、負荷上昇時に対応可能なだけの転送部を用いてパケット転送をおこなうことができる。したがって、初動の転送性能の向上を図ることができる。また、データ転送の開始前に、転送データ量の情報を含んだ制御パケットを流さなくても、転送部の負荷の上昇を予測することができるため、プロトコルに依存しない転送制御が可能となり、汎用性の向上を図ることができる。
【００６１】
また、負荷の上昇に起因するＩＰアドレスに対し、複数回上昇イベントを蓄積することにより、負荷の上昇に起因するＩＰアドレスが参照された場合、どの程度負荷が上昇するかといった上昇傾向を把握することができる。したがって、この上昇傾向に応じてアクティブモードに切り替えるべき転送部の数を選択でき、負荷上昇時に対応可能なだけの転送部を用いてパケット転送をおこなうことができる。
【００６２】
また、負荷の上昇に起因するＩＰアドレスが複数ある場合は、当該複数のＩＰアドレスの平均上昇率の中から最大平均上昇率を採用することで、負荷の上昇に耐えられるだけの転送部を選択することができる。また、負荷の上昇に起因する複数のＩＰアドレスの各平均上昇率の平均値や中央値を採用することで、転送部の数を抑制しつつ負荷上昇時に対応できる転送部を用いてパケット転送をおこなうことができる。
【００６３】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【符号の説明】
【００６４】
３０１  通信部
３０２  複数の転送部
３０３  検出部
３０４  監視部
３０５  判断部
３０６  設定部
３０７  記憶部
３０８  算出部
３０９  選択部
６００  管理テーブル
７００  選択テーブル
【図１】
2014123863.tif 000003
【図２】
2014123863.tif 000004
【図３】
2014123863.tif 000005
【図４】
2014123863.tif 000006
【図５】
2014123863.tif 000007
【図６】
2014123863.tif 000008
【図７】
2014123863.tif 000009
【図８】
2014123863.tif 000010
【図９】
2014123863.tif 000011
【図１０】
2014123863.tif 000012
【図１１】
2014123863.tif 000013