(57)【特許請求の範囲】
【請求項１】
第１ネットワークと第２ネットワークとの間に介在し通信を中継するゲートウェイ装置であって、
当該ゲートウェイ装置が有するアプリケーションプログラム毎に、前記アプリケーションプログラムの機能が有効であるか否かの情報と、前記アプリケーションプログラムの少なくとも２段階に区別される優先度の情報と、機能が有効である際に前記アプリケーションプログラムが使用する最小のメモリ容量である空転時使用メモリの情報および前記アプリケーションプログラムが使用する最大のメモリ容量である最大運用中メモリの情報を含むメモリ使用量の情報とが記憶されるメモリ管理テーブルと、
当該ゲートウェイ装置に搭載されたメモリ領域のうちの空きメモリ容量の情報を保持し、機能が有効であり前記優先度が高い前記アプリケーションプログラムの、前記最大運用中メモリと前記空転時使用メモリとの差分値をメモリ容量閾値として求めるメモリ管理部と、
現在の前記空きメモリ容量に応じて、前記第１ネットワーク及び前記第２ネットワークと当該ゲートウェイ装置との間で確立させる通信コネクションの数を制御する通信コネクション制御部と、を備え、
前記通信コネクション制御部は、
新規の通信コネクションのパケットを送受信する際、現在の前記空きメモリ容量と前記メモリ容量閾値とを比較し、
前記空きメモリ容量が前記メモリ容量閾値よりも大きい場合、当該新規の通信コネクションを確立させる
ことを特徴とするゲートウェイ装置。
【請求項２】
前記第１ネットワーク及び前記第２ネットワークと当該ゲートウェイ装置との間で確立中の通信コネクションの情報が記憶される通信コネクション管理テーブルを備え、
前記通信コネクション制御部は、
前記通信コネクション管理テーブルに未登録である新規の通信コネクションのパケットを送受信する際、現在の前記空きメモリ容量と前記メモリ容量閾値とを比較し、
前記空きメモリ容量が前記メモリ容量閾値よりも大きい場合、当該新規の通信コネクションの情報を前記通信コネクション管理テーブルに登録し、
前記空きメモリ容量が前記メモリ容量閾値以下の場合、当該新規の通信コネクションのパケットを破棄する
ことを特徴とする請求項１に記載のゲートウェイ装置。
【請求項３】
前記メモリ使用量の情報は、
前記空転時使用メモリよりも大きく前記最大運用中メモリよりも小さいメモリ容量である通常運用中メモリの情報を更に有し、
前記優先度は、３段階に区別され、
前記メモリ管理部は、
機能が有効である前記アプリケーションプログラムであって、前記優先度が最も高い前記アプリケーションプログラムの、前記最大運用中メモリと前記空転時使用メモリとの差分値と、
機能が有効である前記アプリケーションプログラムであって、前記優先度が２段階目の前記アプリケーションプログラムの、前記通常運用中メモリと前記空転時使用メモリとの差分値と、の合計値を前記メモリ容量閾値とする
ことを特徴とする請求項１に記載のゲートウェイ装置。
【請求項４】
第１ネットワークと第２ネットワークとの間に介在し通信を中継するゲートウェイ装置の通信コネクション管理方法であって、
前記ゲートウェイ装置に搭載されたメモリ領域のうち、現在の空きメモリ容量の情報を取得するステップと、
当該ゲートウェイ装置が有するアプリケーションプログラムのうち、機能が有効であり、前記アプリケーションプログラムの少なくとも２段階に区別される優先度が高い前記アプリケーションプログラムの、機能が有効である際に前記アプリケーションプログラムが使用する最大のメモリ容量である最大運用中メモリと、前記アプリケーションプログラムが使用する最小のメモリ容量である空転時使用メモリとの差分値をメモリ容量閾値として求めるステップと、
前記第１ネットワーク及び前記第２ネットワークと前記ゲートウェイ装置との間で確立させる新規の通信コネクションのパケットを送受信する際、現在の前記空きメモリ容量と前記メモリ容量閾値とを比較し、前記空きメモリ容量が前記メモリ容量閾値よりも大きい場合、当該新規の通信コネクションを確立させるステップと、を有する
ことを特徴とする通信コネクション管理方法。
【請求項５】
第１ネットワークと第２ネットワークとの間に介在し通信を中継するゲートウェイ装置のコンピュータを、
当該ゲートウェイ装置が有するアプリケーションプログラム毎に、前記アプリケーションプログラムの機能が有効であるか否かの情報と、前記アプリケーションプログラムの少なくとも２段階に区別される優先度の情報と、機能が有効である際に前記アプリケーションプログラムが使用する最小のメモリ容量である空転時使用メモリの情報および前記アプリケーションプログラムが使用する最大のメモリ容量である最大運用中メモリの情報を含むメモリ使用量の情報とが記憶されるメモリ管理テーブルと、
前記ゲートウェイ装置に搭載されたメモリ領域のうちの空きメモリ容量の情報を保持し、機能が有効であり前記優先度が高い前記アプリケーションプログラムの、前記最大運用中メモリと前記空転時使用メモリとの差分値をメモリ容量閾値として求めるメモリ管理部と、
現在の前記空きメモリ容量に応じて、前記第１ネットワーク及び前記第２ネットワークと当該ゲートウェイ装置との間で確立させる通信コネクションの数を制御する通信コネクション制御部として機能させ、
前記通信コネクション制御部は、
新規の通信コネクションのパケットを送受信する際、現在の前記空きメモリ容量と前記メモリ容量閾値とを比較し、
前記空きメモリ容量が前記メモリ容量閾値よりも大きい場合、当該新規の通信コネクションを確立させる
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のネットワークの間に介在し通信を中継するゲートウェイ装置、通信コネクション管理方法、及びプログラムに関するものである。
【背景技術】
【０００２】
一般に、複数のネットワークの間に介在し通信を中継するゲートウェイ装置（パケット中継装置）は、フィルタ処理を備えており、例えばステートフル・パケット・インスペクションと呼ばれる技術により、ＩＰ層よりも上位の通信コネクションの状態を監視して、パケットの転送許可又は不許可の制御を実現している。例えばステートフル・パケット・インスペクションでは、パケットの送受信の度に、通信コネクションを認識し、各通信コネクションの状態を更新して、フィルタ条件と付き合わせてパケットの転送可否を判断する処理となる。このため、全ての通信コネクションの状態を管理しておく必要がある。
【０００３】
従来の技術においては、通信コネクションの管理の処理負荷を軽減するため、受信パケットを中継処理する中継部（パケット中継装置）と、サーバとを備えた階層型パケット処理システムを構築し、中継部に代わってサーバが通信コネクションの管理を行うものが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２９５２６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、中継部とは別個にサーバ等を追加して階層型パケット処理システムを構築する必要があり、システムの規模が大きくなるという欠点がある。例えば、家庭内ネットワークと公衆回線網との間に介在するゲートウェイ装置（以下「ホームゲートウェイ」という）においては、サーバ等を追加して階層型パケット処理システムを構築することは困難である。
【０００６】
近年、ホームゲートウェイにおいては、高機能携帯電話（スマートフォン）などのモバイル端末の普及により、例えばＬＡＮ（Local Area Network）などの家庭内ネットワーク側に収容される下部端末が増加傾向にある。このような家庭内ネットワーク側に収容される下部端末の増加に伴い、ゲートウェイ装置を介しての通信コネクション数も増大している。
【０００７】
従来のゲートウェイ装置においては、管理可能な通信コネクション数は、ゲートウェイ装置に搭載されるメモリ領域に依存して、固定的に決定されるのが一般的である。つまり、ゲートウェイ装置において通信コネクションの状態を管理するには、通信コネクションの１エントリの管理に必要となるメモリサイズに、管理する通信コネクションの数を乗じた値のメモリ容量が必要となる。
【０００８】
そのため、従来のゲートウェイ装置においては、ゲートウェイ装置に搭載されたメモリ容量と、ゲートウェイ装置の各サービス機能を実現するために必要となるソフトウェアプログラムが最大負荷条件で使用するメモリ容量等を考慮して、管理可能な通信コネクションの上限数を予め固定値として設定している。例えば、ゲートウェイ装置の各サービス機能の最大負荷条件における空きメモリ容量を、通信コネクションの１エントリの管理に必要となるメモリサイズで除算した値を通信コネクションの上限数として固定的に設定している。そして、通信コネクションの数が予め設定した上限数に達した状態で、新規の通信コネクションのパケット送信又はパケット受信が発生した場合には、パケットの転送を許可せず、パケットを破棄する処理を行うのが一般的である。
【０００９】
しかしながら、従来のゲートウェイ装置では、最大負荷状態における空きメモリ容量を考慮して通信コネクション数の上限数を固定的に設定している。このため、最大負荷状態ではない実際の運用状態において空きメモリが十分存在するにも関わらず、通信コネクションの数が予め設定した上限数に達すると、新規の通信コネクションのパケットが破棄され、正常に通信ができない事象が発生する。
【００１０】
一方、ゲートウェイ装置に搭載するメモリ容量を増やすことで、管理可能な通信コネクション数の上限数を増やすことは可能である。
しかしながら、ゲートウェイ装置に搭載するメモリ容量を増やすことにより、装置自体の部品コストが上がってしまうという欠点がある。また、既に市場へリリース済みのゲートウェイ装置のメモリ容量を変更することは、ハード変更となるため困難となる欠点がある。
【００１１】
したがって、ゲートウェイ装置に搭載されたメモリ領域を増加させることなく管理可能な通信コネクションの数を向上することができるゲートウェイ装置、通信コネクション管理方法、及びプログラムが望まれていた。
【課題を解決するための手段】
【００１２】
本発明に係るゲートウェイ装置は、第１ネットワークと第２ネットワークとの間に介在し通信を中継するゲートウェイ装置であって、当該ゲートウェイ装置が有するアプリケーションプログラム毎に、前記アプリケーションプログラムの機能が有効であるか否かの情報と、前記アプリケーションプログラムの少なくとも２段階に区別される優先度の情報と、機能が有効である際に前記アプリケーションプログラムが使用する最小のメモリ容量である空転時使用メモリの情報および前記アプリケーションプログラムが使用する最大のメモリ容量である最大運用中メモリの情報を含むメモリ使用量の情報とが記憶されるメモリ管理テーブルと、当該ゲートウェイ装置に搭載されたメモリ領域のうちの空きメモリ容量の情報を保持し、機能が有効であり前記優先度が高い前記アプリケーションプログラムの、前記最大運用中メモリと前記空転時使用メモリとの差分値をメモリ容量閾値として求めるメモリ管理部と、現在の前記空きメモリ容量に応じて、前記第１ネットワーク及び前記第２ネットワークと当該ゲートウェイ装置との間で確立させる通信コネクションの数を制御する通信コネクション制御部と、を備え、前記通信コネクション制御部は、新規の通信コネクションのパケットを送受信する際、現在の前記空きメモリ容量と前記メモリ容量閾値とを比較し、前記空きメモリ容量が前記メモリ容量閾値よりも大きい場合、当該新規の通信コネクションを確立させることを特徴とする。
【００１３】
本発明に係る通信コネクション管理方法は、第１ネットワークと第２ネットワークとの間に介在し通信を中継するゲートウェイ装置の通信コネクション管理方法であって、前記ゲートウェイ装置に搭載されたメモリ領域のうち、現在の空きメモリ容量の情報を取得するステップと、当該ゲートウェイ装置が有するアプリケーションプログラムのうち、機能が有効であり、前記アプリケーションプログラムの少なくとも２段階に区別される優先度が高い前記アプリケーションプログラムの、機能が有効である際に前記アプリケーションプログラムが使用する最大のメモリ容量である最大運用中メモリと、前記アプリケーションプログラムが使用する最小のメモリ容量である空転時使用メモリとの差分値をメモリ容量閾値として求めるステップと、前記第１ネットワーク及び前記第２ネットワークと前記ゲートウェイ装置との間で確立させる新規の通信コネクションのパケットを送受信する際、現在の前記空きメモリ容量と前記メモリ容量閾値とを比較し、前記空きメモリ容量が前記メモリ容量閾値よりも大きい場合、当該新規の通信コネクションを確立させるステップと、を有することを特徴とする。
【００１４】
本発明に係るプログラムは、第１ネットワークと第２ネットワークとの間に介在し通信を中継するゲートウェイ装置のコンピュータを、当該ゲートウェイ装置が有するアプリケーションプログラム毎に、前記アプリケーションプログラムの機能が有効であるか否かの情報と、前記アプリケーションプログラムの少なくとも２段階に区別される優先度の情報と、機能が有効である際に前記アプリケーションプログラムが使用する最小のメモリ容量である空転時使用メモリの情報および前記アプリケーションプログラムが使用する最大のメモリ容量である最大運用中メモリの情報を含むメモリ使用量の情報とが記憶されるメモリ管理テーブルと、前記ゲートウェイ装置に搭載されたメモリ領域のうちの空きメモリ容量の情報を保持し、機能が有効であり前記優先度が高い前記アプリケーションプログラムの、前記最大運用中メモリと前記空転時使用メモリとの差分値をメモリ容量閾値として求めるメモリ管理部と、現在の前記空きメモリ容量に応じて、前記第１ネットワーク及び前記第２ネットワークと当該ゲートウェイ装置との間で確立させる通信コネクションの数を制御する通信コネクション制御部として機能させ、前記通信コネクション制御部は、新規の通信コネクションのパケットを送受信する際、現在の前記空きメモリ容量と前記メモリ容量閾値とを比較し、前記空きメモリ容量が前記メモリ容量閾値よりも大きい場合、当該新規の通信コネクションを確立させることを特徴とする。
【発明の効果】
【００１５】
本発明は、現在の空きメモリ容量に応じて通信コネクションの数を制御することにより、ゲートウェイ装置に搭載されたメモリ領域を増加させることなく管理可能な通信コネクションの数を向上することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１におけるホームゲートウェイ装置の構成図である。
【図２】実施の形態１における通信コネクション管理テーブルＡの構成を示す図である。
【図３】実施の形態１における通信コネクション制御部１の動作を示すフローチャートである。
【図４】実施の形態２におけるホームゲートウェイ装置の構成図である。
【図５】実施の形態２におけるメモリ管理テーブルＤの構成を示す図である。
【図６】実施の形態２における閾値計算アルゴリズムを示すフローチャートである。
【発明を実施するための形態】
【００１７】
実施の形態１．
図１は、実施の形態１におけるホームゲートウェイ装置の構成図である。
図１に示すように、ホームゲートウェイ装置１００は、ＷＡＮ（Wide Area Network）ポート１０、ＬＡＮポート・無線ＬＡＮ２０、ユーザ空間のアプリケーション３０、及びカーネル４０を備える。
ＷＡＮポート１０には、例えば網側ＮＷ（Network）２００が接続される。ＬＡＮポート・無線ＬＡＮ２０には、ＰＣ端末３００、スマートフォン等の携帯端末３１０、及びＩＰ電話端末４００が、有線又は無線で接続される。
ユーザ空間のアプリケーション３０として、ＨＴＴＰ（HyperText Transfer Protocol）アプリケーション、ＤＮＳ（Domain Name Server）Ｐｒｏｘｙアプリケーション、ＶｏＩＰ（Voice over Internet Protocol）アプリケーション、ＤＨＣＰ（Dynamic Host Configuration Protocol）アプリケーションなどの通信制御に関わるアプリケーションプログラムを有する。
【００１８】
カーネル４０は、ＯＳ（Operating System）の基本機能を実装したソフトウェアであり、アプリケーションの監視、メモリ等の資源の管理、割りこみ処理などの基本機能を提供する。また、カーネル４０は、通信コネクション制御部１と、メモリ管理部２とを有する。
【００１９】
通信コネクション制御部１は、ホームゲートウェイ装置１００における通信コネクションの数を制御する。通信コネクション制御部１は、通信コネクション管理テーブルＡを有する。詳細は後述する。
【００２０】
メモリ管理部２は、空きメモリ容量Ｂの情報と、メモリ容量閾値Ｃの情報とを有する。
空きメモリ容量Ｂは、ホームゲートウェイ装置１００に搭載されたメモリ領域のうち、現在使用されていないメモリ領域の容量である。ホームゲートウェイ装置１００に搭載されたメモリ領域としては、例えば主記憶装置や補助記憶装置においてカーネル４０が管理するメモリ領域（システムメモリ）が相当する。
メモリ容量閾値Ｃは、予め設定された情報であってもよいし、ユーザ設定用のインタフェースを設け、ユーザの入力により設定可能としてもよい。メモリ容量閾値Ｃは、例えば、カーネル４０が、通信コネクションの管理に際し１つの通信コネクションあたりに消費するメモリ容量以上の値に設定する。
【００２１】
なお、本実施の形態１では、カーネル４０が通信コネクション制御部１及びメモリ管理部２を有する構成を説明するが、これに限らず、カーネル４０とは別に通信コネクション制御部１及びメモリ管理部２を設けても良い。また、通信コネクション管理テーブルＡを別の記憶領域に設けても良い。また、通信コネクション制御部１及びメモリ管理部２は、これらの機能をホームゲートウェイ装置１００に実現させるプログラムによって構成することができる。また、通信コネクション制御部１及びメモリ管理部２は、例えばホームゲートウェイ装置１００に搭載されたファームウエアを更新する更新プログラムによって構成しても良い。
【００２２】
なお、カーネル４０は、ＷＡＮポート１０（網側ＮＷ２００）とＬＡＮポート・無線ＬＡＮ２０（各ＰＣ端末３００、携帯端末３１０、及びＩＰ電話端末４００）との間のネットワークアドレス変換（ＩＰやポート番号等の変換）を行うネットワークアドレス変換（ＮＡＴ（Network Address Translation）やＮＡＰＴ（Network Address Port Translation））手段を有してもよい。この場合、カーネル４０が受信したパケットを破棄しない場合にネットワークアドレス変換を行いつつパケットの中継を行うようにしてもよい。
【００２３】
図２は、実施の形態１における通信コネクション管理テーブルＡの構成を示す図である。
図２に示すように、通信コネクション管理テーブルＡで管理する情報としては、Ｌａｙｅｒ３プロトコル、Ｌａｙｅｒ４プロトコル、コネクション状態、タイマ、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号等の情報を保持し、通信コネクションを管理する。
通信コネクションのエントリは、Ｌａｙｅｒ４のプロトコル毎に維持しておくべきタイマが設定されており、該当の通信コネクションのパケット送受信が発生する度に、そのタイマが更新される。タイマが満了するまで、該当の通信コネクションのパケット送受信がない場合に、エントリが削除される動作となる。
このように、通信コネクション管理テーブルＡは、網側ＮＷ２００、各ＰＣ端末３００、携帯端末３１０、及びＩＰ電話端末４００とホームゲートウェイ装置１００との間で確立中の通信コネクションの情報が記憶される。つまり、通信コネクション管理テーブルＡによって、ホームゲートウェイ装置１００全体としての通信コネクションが管理される。
【００２４】
次に、本実施の形態１における通信コネクション制御部１の通信コネクション管理動作について説明する。
【００２５】
図３は、実施の形態１における通信コネクション制御部１の動作を示すフローチャートである。以下、図３の各ステップに基づき説明する。
（Ｓ１０）
網側ＮＷ２００、各ＰＣ端末３００、携帯端末３１０、及びＩＰ電話端末４００からのパケットを受信した場合、又は、当該ホームゲートウェイ装置からパケットを送信する場合（以下「送受信」という）、通信コネクション制御部１は、通信コネクション管理動作を開始する。
（Ｓ１１）
通信コネクション制御部１は、通信コネクション管理テーブルＡを参照し、送受信するパケットのＩＰヘッダやＴＣＰ／ＵＤＰ／ＩＣＭＰヘッダの情報が、既に通信コネクション管理テーブルＡに登録されているかを確認し、登録されていない場合は、新規の通信コネクションであると判断する。
【００２６】
（Ｓ１２）
送受信するパケットに対応する通信コネクションが、既に通信コネクション管理テーブルＡに登録されており、新規の通信コネクションでない場合（Ｓ１１：ＮＯ）、通信コネクション制御部１は、通信コネクション管理テーブルＡの当該通信コネクションエントリのタイマを更新し、ステップＳ１６へ進む。
（Ｓ１３）
一方、新規の通信コネクションのパケットであると判断した場合（Ｓ１１：ＹＥＳ）、通信コネクション制御部１は、当該新規の通信コネクションのパケットの送受信時点での空きメモリ容量Ｂと、メモリ容量閾値Ｃとを比較する。
（Ｓ１４）
空きメモリ容量Ｂがメモリ容量閾値Ｃ以下である場合（Ｓ１３：ＮＯ）、当該通信コネクションのパケットを破棄し、動作を終了する。
【００２７】
（Ｓ１５）
一方、空きメモリ容量Ｂがメモリ容量閾値Ｃよりも大きい場合（Ｓ１３：ＹＥＳ）、通信コネクション制御部１は、通信コネクション管理テーブルＡに、当該新規の通信コネクションの情報を登録し、ステップＳ１６へ進む。
【００２８】
（Ｓ１６）
ステップＳ１２又はステップＳ１５の後、通信コネクション制御部１は、通常のパケット処理を継続する。
【００２９】
このように、通信コネクション制御部１は、新規の通信コネクションのパケットを送受信する際、現在の空きメモリ容量Ｂがメモリ容量閾値Ｃよりも大きい場合、当該新規の通信コネクションを確立させる。よって、現在の運用状態における空きメモリ容量Ｂに応じて、通信コネクション制御部１が管理する通信コネクションの数をダイナミックに変化させることが可能となる。
【００３０】
以上のように本実施の形態１においては、現在の空きメモリ容量Ｂに応じて、通信コネクション制御部１が管理する通信コネクションの数を制御するので、メモリリソースを効率よく活用することができ、管理可能な通信コネクションの数を向上することができる。即ち、実際の運用状態において空きメモリ容量Ｂが十分存在するにも関わらず、新規の通信コネクションのパケットが破棄されることがなく、メモリリソースを効率よく活用した通信コネクション管理が可能になる。
【００３１】
また、メモリリソースを効率よく活用することができるため、ホームゲートウェイ装置１００に搭載するメモリ領域を増加させることなく管理可能な通信コネクションの数を向上することができる。また、通信コネクションを管理するためのサーバ等を追加することなく、管理可能な通信コネクションの数を向上することができる。
【００３２】
実施の形態２．
本実施の形態２では、メモリ容量閾値Ｃをダイナミックに決定することにより、ホームゲートウェイ装置１００のメモリリソースを更に効率よく活用する形態について説明する。
【００３３】
図４は、実施の形態２におけるホームゲートウェイ装置の構成図である。
図４に示すように、実施の形態２におけるホームゲートウェイ装置１００は、上記実施の形態１の構成に加え、メモリ管理部２がメモリ管理テーブルＤを有する。
なお、その他の構成は上記実施の形態１と同様の構成であり、同一部分には同一の符号を付する。
【００３４】
図５は、実施の形態２におけるメモリ管理テーブルＤの構成を示す図である。
メモリ管理テーブルＤは、ユーザ空間のアプリケーション３０に対応して１つ又は複数設けられている。図５（ａ）はＶｏＩＰアプリケーションに対応するメモリ管理テーブルＤのエントリ例を示し、図５（ｂ）はＤＨＣＰアプリケーションに対応するメモリ管理テーブルＤのエントリ例を示す。
図５（ａ）、（ｂ）に示すように、メモリ管理テーブルＤは、アプリケーション名、設定状態（ＯＮ／ＯＦＦ）、空転時使用メモリ、通常運用中メモリ、最大運用中メモリ、優先度（高：中：低）等の情報を有する。このメモリ管理テーブルＤは、アプリケーション毎のエントリをテーブルとして保持する。
【００３５】
アプリケーション名は、ユーザ空間のアプリケーション３０におけるアプリケーションプログラムの名称である。なお、名称に限らずアプリケーションを識別できる情報であればよい。
設定状態（ＯＮ／ＯＦＦ）は、当該アプリケーションの機能が有効であるか否かの情報である。設定状態が「ＯＮ」である場合は当該アプリケーションの機能が有効（動作しうる状態）であり、設定状態が「ＯＦＦ」である場合には無効（動作しない状態）であることを示す。この設定状態（ＯＮ／ＯＦＦ）は、現在の運用状態と連動する情報であり、設定の更新に連動してメモリ管理テーブルＤのエントリも更新される。
【００３６】
空転時使用メモリは、当該アプリケーションの機能が有効である際に使用する最小のメモリ容量である。例えば通信がアクティブではない状態において当該アプリケーションが使用するメモリ容量である。
通常運用中メモリは、一般的に想定される運用状況において当該アプリケーションが使用するメモリ容量である。即ち、通常運用中メモリは、空転時使用メモリよりも大きく最大運用中メモリよりも小さいメモリ容量である。
最大運用中メモリは、当該アプリケーションが使用する最大のメモリ容量である。例えば、最大負荷条件で使用するメモリ容量である。
【００３７】
なお、空転時使用メモリ、通常運用中メモリ、最大運用中メモリは、本発明における「メモリ使用量」に相当する。
【００３８】
優先度（高：中：低）は、当該アプリケーションの優先度を識別する情報である。例えば、「高」、「中」、「低」の３段階の優先度に区分される。なお、優先度の情報は、優先度の高低を識別できる情報であればよく、数値、記号、文字列など任意の情報でよい。優先度（高：中：低）の情報は、予め設定された情報であってもよいし、ユーザ設定用のインタフェースを設け、ユーザの入力により設定可能としてもよい。
【００３９】
（メモリ容量閾値Ｃの決定動作）
次に、メモリ管理テーブルＤに基づき、メモリ容量閾値Ｃをダイナミックに決定する動作について説明する。
本実施の形態２では、機能が有効（設定状態「ＯＮ」）であるアプリケーションについて、優先度に応じてメモリ領域を確保するメモリ容量閾値Ｃの決定方法について説明する。即ち、優先度「高」のアプリケーションについては、最大運用中メモリを確保し、優先度「中」のアプリケーションについては、通常運用中メモリを確保し、優先度「低」のアプリケーションについては、空転時使用メモリのみを確保するメモリ容量閾値Ｃの決定方法について説明する。
【００４０】
図６は、実施の形態２におけるメモリ管理テーブルを使った閾値計算アルゴリズムを示すフローチャートである。以下、図６の各ステップに基づき説明する。
（Ｓ２０）
メモリ管理部２は、メモリ管理テーブルＤのエントリが更新される度に、閾値計算アルゴリズムを開始する。
（Ｓ２１）
メモリ管理部２は、閾値の初期値としてゼロを設定する。
（Ｓ２２）
メモリ管理部２は、アプリケーション毎のメモリ管理テーブルＤのうち先頭（最初）のテーブル情報を参照する。
【００４１】
（Ｓ２３）
メモリ管理部２は、参照するメモリ管理テーブルＤの有無を判断し、参照するメモリ管理テーブルＤが有る場合には、ステップＳ２４へ進む。
（Ｓ２４）
メモリ管理部２は、参照したメモリ管理テーブルＤの設定状態（ＯＮ／ＯＦＦ）が「ＯＮ」であるか否かを判断する。即ち、当該メモリ管理テーブルＤに対応するアプリケーションの機能が有効であるか否かを判断する。
設定状態（ＯＮ／ＯＦＦ）が「ＯＮ」でない場合、ステップＳ２８へ進む。
（Ｓ２５）
一方、設定状態（ＯＮ／ＯＦＦ）が「ＯＮ」である場合、当該メモリ管理テーブルＤの優先度を判定する。
優先度が「低」の場合、ステップＳ２８へ進む。
【００４２】
（Ｓ２６）
優先度が「高」の場合、メモリ管理部２は、閾値計算処理Ａを実行する。
閾値計算処理Ａでは、当該メモリ管理テーブルＤの「最大運用中メモリ」から「空転時使用メモリ」を減算した値を現在の閾値に加算し、新たな閾値として更新する。
即ち、優先度が「高」であるアプリケーションについては、空転時使用メモリを消費している状態から最大運用中メモリを消費する運用状態に変化した場合に増加するメモリ容量を、閾値に加算する。
閾値計算処理Ａを実行した後、ステップＳ２８へ進む。
【００４３】
（Ｓ２７）
優先度が「中」の場合、メモリ管理部２は、閾値計算処理Ｂを実行する。
閾値計算処理Ｂでは、当該メモリ管理テーブルＤの「通常運用中メモリ」から「空転時使用メモリ」を減算した値を現在の閾値に加算し、新たな閾値として更新する。
即ち、優先度が「中」であるアプリケーションについては、空転時使用メモリを消費している状態から通常運用中メモリを消費する運用状態に変化した場合に増加するメモリ容量を、閾値に加算する。
閾値計算処理Ｂを実行した後、ステップＳ２８へ進む。
【００４４】
（Ｓ２８）
メモリ管理部２は、アプリケーション毎のメモリ管理テーブルＤのうち、次のテーブル情報を参照する。以降、ステップＳ２３〜Ｓ２８を繰り返し、アプリケーション毎に対応するメモリ管理テーブルＤを順次参照し、閾値を更新する。
【００４５】
（Ｓ２９）
全てのアプリケーションのメモリ管理テーブルＤを参照し終わり、ステップＳ２３にてメモリ管理テーブルＤがないと判断した場合、メモリ管理部２は、閾値計算アルゴリズムで計算した閾値を、メモリ容量閾値Ｃとして保持し、処理を終了する。
【００４６】
以上の動作により、機能が有効且つ優先度が「高」であるアプリケーションの「最大運用中メモリ」と「空転時使用メモリ」との差分値の合計値と、機能が有効且つ優先度が「中」のアプリケーションの「通常運用中メモリ」と「空転時使用メモリ」との差分値の合計値と、を合計した値が、メモリ容量閾値Ｃとして決定される。
【００４７】
メモリ管理部２は、各アプリケーションの設定状態や、優先度設定が変更された時点で、閾値計算アルゴリズムによる閾値の再計算を行うことにより、運用状態、設定状態に応じたメモリ容量閾値Ｃがダイナミックに決定されることになる。
【００４８】
なお、本実施の形態２では、３段階の優先度に区分する場合を説明したが、本発明はこれに限定されず、２段階以上の任意の段階に区分しても良い。
また、本実施の形態２では、空転時使用メモリ、通常運用中メモリ、最大運用中メモリの３つのメモリ使用量の情報を保持する場合を説明したが、本発明はこれに限定されず、少なくとも２つのメモリ使用量の情報を保持すればよい。
【００４９】
例えば優先度を２段階に区分し、空転時使用メモリと最大運用中メモリのみを保持しても良い。機能が有効且つ優先度が高いアプリケーションプログラムの「最大運用中メモリ」と「空転時使用メモリ」との差分値の合計値を、メモリ容量閾値Ｃとして決定しても良い。
なお、優先度の段階数と、優先度に対応するメモリ使用量との組み合わせはこれに限定されない。即ち、複数の優先度に対応したメモリ使用量の情報を保持し、各アプリケーションに設定された優先度と、対応するメモリ使用量とに基づき、メモリ容量閾値Ｃを設定すればよい。
【００５０】
（通信コネクション管理動作）
本実施の形態２における通信コネクション制御部１の通信コネクション管理動作は、上記実施の形態１（図３）と同様である。即ち、本実施の形態２における通信コネクション制御部１は、実施の形態１と同様に、図３の各ステップを実行する。これにより、ステップＳ１３においては、空きメモリ容量Ｂと、閾値計算アルゴリズムによって決定されたメモリ容量閾値Ｃとが比較される。
【００５１】
このような動作により、空きメモリ容量Ｂが、閾値計算アルゴリズムによって決定されたメモリ容量閾値Ｃよりも大きい場合に、新規の通信コネクションが確立される。
これにより、機能が有効且つ優先度が「高」と「中」のアプリケーションが消費するメモリ容量を確保した上で、メモリリソースを最大限活用して、通信コネクションの生成が可能となる。
【００５２】
以上のように本実施の形態２においては、機能が有効であるアプリケーションのメモリ使用量に基づき、メモリ容量閾値Ｃを決定する。このため、機能が有効であるアプリケーションが消費するメモリ容量を確保しつつ、実際の運用状態において空きメモリ容量Ｂが十分存在するにも関わらず、新規の通信コネクションのパケットが破棄されることがなく、メモリリソースを効率よく活用した通信コネクション管理が可能になる。
また、優先度に対応するメモリ使用量に基づき、メモリ容量閾値Ｃを決定するので、優先度に応じて確保するメモリ容量を設定することが可能となる。
【００５３】
また、メモリ管理テーブルＤの更新に伴いメモリ容量閾値Ｃをダイナミックに決定することにより、上記実施の形態１よりも更に効率よくメモリリソースを活用して、通信コネクション数の制御を行うことができる。
【００５４】
なお、上記実施の形態１及び２では、複数のネットワークの間に介在し通信を中継するホームゲートウェイ装置１００に本発明を適用した例を説明したが、これに限るものではない。つまり、通信装置として、フィルタ機能を有して、通信コネクションを数多く扱う必要がある通信装置、また、運用形態に応じて、各サービス機能の有効無効設定が可能となる通信装置に適用すると好適なものである。
【００５５】
なお、上記実施の形態１では、メモリ容量閾値Ｃを固定とする例を説明し、上記実施の形態２では、メモリ管理テーブルＤを用いてメモリ容量閾値Ｃをダイナミックに決定する例を説明したが、これらを組み合わせても良い。例えば、最低限確保しておきたい空きメモリ容量Ｂをメモリ容量閾値Ｃの固定値として設定しておき、空きメモリ容量Ｂがそれ以上であれば、上記実施の形態２における閾値計算アルゴリズムによってメモリ容量閾値Ｃをダイナミックに決定する動作を行ってもよい。
【００５６】
なお、上記実施の形態２では、閾値計算アルゴリズムにおいて、メモリ管理テーブルＤの設定状態と優先度とを用いてメモリ容量閾値Ｃを決定する動作を説明したが、本発明はこれに限定されない。例えば、メモリ管理テーブルＤに、通信装置特有の他のパラメータを追加して、追加したパラメータを考慮して閾値を決定する方法も適用可能である。
【符号の説明】
【００５７】
１  通信コネクション制御部、２  メモリ管理部、１０  ＷＡＮポート、２０  ＬＡＮポート・無線ＬＡＮ、３０  ユーザ空間のアプリケーション、４０  カーネル、１００  ホームゲートウェイ装置、３００  ＰＣ端末、３１０  携帯端末、２００  網側ＮＷ、４００  ＩＰ電話端末、Ａ  通信コネクション管理テーブル、Ｂ  空きメモリ容量、Ｃ  メモリ容量閾値、Ｄ  メモリ管理テーブル。
【図１】
0006693072.tif 000002
【図２】
0006693072.tif 000003
【図３】
0006693072.tif 000004
【図４】
0006693072.tif 000005
【図５】
0006693072.tif 000006
【図６】
0006693072.tif 000007