(57)【特許請求の範囲】
【請求項１】
通信コネクション要求を受信し、コネクション確立処理を実行する通信処理装置において、
コネクション要求に対するコネクション確立可否の決定処理を実行する制御手段と、
コネクション要求元に対応し優先度毎に区分された利用者識別子と、優先度毎に区分された利用者毎の使用可能な通信処理用リソース領域情報を含むリソース使用条件とを対応付けたテーブルであり、高優先度の利用者に対応する配分リソースとして、低優先度の利用者に対応する配分リソースに含まれない占有リソース領域をリソース使用条件として設定したリソース使用条件テーブルとを有し、
前記制御手段は、
コネクション要求データに基づいて、コネクション要求元に対応する利用者の識別処理を実行し、該利用者識別処理において識別された利用者識別子に基づいて、前記リソース使用条件テーブルの検索を実行し、利用者識別子の属する優先度に対応して設定された通信処理用リソースの空きの確認を条件として、リソース使用条件テーブルに基づいて決定されるリソースを適用したコネクション確立処理を実行する構成を有することを特徴とする通信処理装置。
【請求項２】
前記通信処理用リソースは、複数の領域に分割されたメモリまたは記憶装置の記憶領域を含み、
前記リソース使用条件テーブルは、
コネクション要求元に対応する利用者識別子と、前記記憶領域の各々とを対応付け、利用者毎の使用可能な記憶領域を設定した構成を有し、
前記制御手段は、
前記利用者識別処理に基づいて識別された利用者に基づいて、リソース使用条件テーブルの検索を実行して、利用可能なリソースとしての記憶領域の判別を実行する構成であることを特徴とする請求項１に記載の通信処理装置。
【請求項３】
前記通信処理用リソースは、設定可能なコネクション数を含み、
前記リソース使用条件テーブルは、
コネクション要求元に対応する利用者識別子と、コネクション数とを対応付け、利用者毎の使用可能なコネクションを設定した構成を有し、
前記制御手段は、
前記利用者識別処理に基づいて識別された利用者に基づいて、リソース使用条件テーブルの検索を実行して、利用可能なコネクションの有無の判別を実行する構成であることを特徴とする請求項１に記載の通信処理装置。
【請求項４】
前記制御手段は、
前記利用者識別処理において、コネクション要求の送信元ＩＰアドレスまたは送信元ＭＡＣアドレスの少なくともいずれかを利用者情報として取得する処理を実行する構成であることを特徴とする請求項１に記載の通信処理装置。
【請求項５】
前記制御手段は、
前記利用者識別処理において、コネクション要求の送信先ポート番号を利用者情報として取得し、
取得した送信先ポート番号に対応して設定された通信処理用リソースの空きの確認を条件としてコネクション確立処理を実行する構成を有することを特徴とする請求項１に記載の通信処理装置。
【請求項６】
前記制御手段は、
アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理と、
前記リソース使用条件テーブルに基づいて利用者に対応するリソース使用条件を決定するリソース使用条件決定処理と、
リソース領域情報と、リソース空き情報とを対応付けたリソース管理情報テーブルに基づいてコネクション要求利用者に対するコネクション適用リソース領域を設定するリソース領域決定処理と、
を順次実行してコネクション確立処理を実行する構成を有することを特徴とする請求項１に記載の通信処理装置。
【請求項７】
前記制御手段は、
アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理と、
前記リソース使用条件テーブルに基づいて利用者に対応するリソース使用条件を決定するリソース使用条件決定処理と、
リソース領域情報と、リソース空き情報とを対応付けたリソース管理情報テーブルに基づいてコネクション要求利用者に対するコネクション適用リソース領域を設定するリソース領域決定処理と、を順次実行してコネクション確立処理を実行する構成を有し、
前記リソース使用条件テーブルは、優先度の高い利用者の利用者識別子に対するリソース使用条件としてのリソース領域の配分比率を高く設定した構成であることを特徴とする請求項１に記載の通信処理装置。
【請求項８】
前記制御手段は、
アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理と、
利用者識別子とグループ識別子と、最大コネクション数、および現在のコネクション数とを対応付けたリソース使用条件テーブルに基づいて、前記利用者識別処理によって取得した利用者識別データに基づく該リソース使用条件テーブルのエントリ検索により、利用可能なコネクションの有無を判定してリソース使用可否を判定するリソース使用条件決定処理と、
を順次実行してコネクション確立処理を実行する構成を有することを特徴とする請求項１に記載の通信処理装置。
【請求項９】
前記制御手段は、
アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理と、
利用者識別子とグループ識別子と、最大コネクション数、および現在のコネクション数とを対応付けたリソース使用条件テーブルに基づいて、前記利用者識別処理によって取得した利用者識別データに基づく該リソース使用条件テーブルのエントリ検索により、利用可能なコネクションの有無を判定してリソース使用可否を判定するリソース使用条件決定処理とを順次実行してコネクション確立処理を実行する構成を有し、
前記リソース使用条件テーブルは、優先度の高い利用者の利用者識別子を複数の異なるグループ識別子に対応付けて格納した構成であることを特徴とする請求項１に記載の通信処理装置。
【請求項１０】
前記制御手段は、
コネクション要求としてＴＣＰコネクション要求に含まれるＳＹＮパケットの受信に応じて、コネクション確立可否の決定処理を実行する構成であり、
ＳＹＮパケットに含まれる送信元識別データに基づいて利用者の識別を実行する構成であることを特徴とする請求項１に記載の通信処理装置。
【請求項１１】
通信コネクション要求を受信し、コネクション確立処理を実行する通信処理方法において、
コネクション要求データに基づいて、コネクション要求元に対応する利用者の識別処理を実行する利用者識別処理ステップと、
前記利用者識別処理において識別された利用者識別子に基づいて、コネクション要求元に対応し優先度毎に区分された利用者識別子と、優先度毎に区分された利用者毎の使用可能な通信処理用リソース領域情報を含むリソース使用条件とを対応付けたテーブルであり、高優先度の利用者に対応する配分リソースとして、低優先度の利用者に対応する配分リソースに含まれない占有リソース領域をリソース使用条件として設定したリソース使用条件テーブルの検索を実行し、利用者識別子の属する優先度に対応して設定された通信処理用リソースの空きの確認を条件として、リソース使用条件テーブルに基づいて決定されるリソースを適用したコネクション確立処理を実行するリソース決定処理ステップと、
を有することを特徴とする通信処理方法。
【請求項１２】
前記通信処理方法において、
前記通信処理用リソースは、複数の領域に分割されたメモリまたは記憶装置の記憶領域を含み、前記リソース使用条件テーブルは、コネクション要求元に対応する利用者識別子と、前記記憶領域の各々とを対応付け、利用者毎の使用可能な記憶領域を設定したテーブルであり、
前記リソース決定処理ステップは、
前記利用者識別処理に基づいて識別された利用者に基づいて、
前記リソース使用条件テーブルの検索を実行して、利用可能なリソースとしての記憶領域の判別を実行するステップを含むことを特徴とする請求項１１に記載の通信処理方法。
【請求項１３】
前記通信処理方法において、
前記通信処理用リソースは、設定可能なコネクション数を含み、前記リソース使用条件テーブルは、コネクション要求元に対応する利用者識別子と、コネクション数とを対応付け、利用者毎の使用可能なコネクションを設定したテーブルであり、
前記リソース決定処理ステップは、
前記利用者識別処理に基づいて識別された利用者に基づいて、
前記リソース使用条件テーブルの検索を実行して、利用可能なコネクションの有無の判別を実行するステップを含むことを特徴とする請求項１１に記載の通信処理方法。
【請求項１４】
前記利用者識別処理ステップは、
コネクション要求の送信元ＩＰアドレスまたは送信元ＭＡＣアドレスの少なくともいずれかを利用者情報として取得する処理を実行することを特徴とする請求項１１に記載の通信処理方法。
【請求項１５】
前記利用者識別処理ステップは、
コネクション要求の送信先ポート番号を利用者情報として取得し、
前記リソース決定処理ステップは、
取得した送信先ポート番号に対応して設定された通信処理用リソースの空きの確認を条件としてコネクション確立処理を実行することを特徴とする請求項１１に記載の通信処理方法。
【請求項１６】
前記通信処理方法は、
アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理ステップと、
利用者識別子とリソース領域情報を含むリソース使用条件とを対応付けたリソース使用条件テーブルに基づいて利用者に対応するリソース使用条件を決定するリソース使用条件決定処理ステップと、
リソース領域情報と、リソース空き情報とを対応付けたリソース管理情報テーブルに基づいてコネクション要求利用者に対するコネクション適用リソース領域を設定するリソース領域決定処理ステップと、
を順次実行してコネクション確立処理を実行することを特徴とする請求項１１に記載の通信処理方法。
【請求項１７】
前記通信処理方法は、
アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理ステップと、
利用者識別子とグループ識別子と、最大コネクション数、および現在のコネクション数とを対応付けたリソース使用条件テーブルに基づいて、前記利用者識別処理によって取得した利用者識別データに基づく該リソース使用条件テーブルのエントリ検索により、利用可能なコネクションの有無を判定してリソース使用可否を判定するリソース使用条件決定処理ステップと、
を順次実行してコネクション確立処理を実行することを特徴とする請求項１１に記載の通信処理方法。
【請求項１８】
前記利用者識別処理ステップは、
コネクション要求としてＴＣＰコネクション要求に含まれるＳＹＮパケットの受信に応じて、ＳＹＮパケットに含まれる送信元識別データに基づいて利用者の識別を実行するステップを含むことを特徴とする請求項１１に記載の通信処理方法。
【請求項１９】
通信コネクション要求を受信し、コネクション確立処理を実行する通信処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムであって、
コネクション要求データに基づいて、コネクション要求元に対応する利用者の識別処理を実行する利用者識別処理ステップと、
前記利用者識別処理において識別された利用者識別子に基づいて、コネクション要求元に対応し優先度毎に区分された利用者識別子と、優先度毎に区分された利用者毎の使用可能な通信処理用リソース領域情報を含むリソース使用条件とを対応付けたテーブルであり、高優先度の利用者に対応する配分リソースとして、低優先度の利用者に対応する配分リソースに含まれない占有リソース領域をリソース使用条件として設定したリソース使用条件テーブルの検索を実行し、利用者識別子の属する優先度に対応して設定された通信処理用リソースの空きの確認を条件として、リソース使用条件テーブルに基づいて決定されるリソースを適用したコネクション確立処理を実行するリソース決定処理ステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信処理装置、および通信処理方法、並びにコンピュータ・プログラムに関する。詳細には、ネットワークに接続されたサーバ等における例えばＴＣＰを用いた通信コネクション処理において、サーバで使用可能なコネクション処理用のリソース量を通信相手に応じて制限することにより、優先度の高い通信相手との通信を優先度の低い通信相手との通信によって妨げられることを防止した通信処理装置、および通信処理方法、並びにコンピュータ・プログラムに関する。
【０００２】
【従来の技術】
インターネット回線の高速化及び常時接続の普及により、個人が自宅でＰＣをインターネットに常時接続しサーバとして使用することが可能となりつつある。例えばこのような自宅のＰＣをサーバとして使用する場合のサーバの利用者を想定すると、家庭内のサーバ利用者は、主に次の３種類の対象が存在する。
サーバ所有者
サーバ所有者の家族、友人
上記以外の不特定な対象
【０００３】
特に、現在は、日記やＷｅｂページ、デジタル写真画像、自分の作成した映像、音声データをインターネットで一般に公開したいという要望は高まってきており、個人のサーバにおいても不特定な利用者からのアクセスは十分想定される。ここで個人のサーバにおける要求として、サービス使用に対して優先度を設定したいという要求が存在する。基本的に所有者の利用が第一に優先され、不特定な利用者のサービス使用により所有者のサービス使用が妨害を受けることは避けられることが要求される。
【０００４】
しかしながら、従来のサーバではサービスに使われるＴＣＰコネクション確立の際に、利用者に応じて優先度を設定するような機能は存在していない。ＴＣＰトラフィック処理用のリソース（メモリ領域、ディスク領域）は一定量確保されており、ＴＣＰコネクション及びコネクション要求の処理時に利用者は考慮されず、同じリソースが制限なく使用されている。
【０００５】
このため、個人のサーバのように利用者に対して優先度を設定することが望まれる環境では、ＴＣＰトラフィック処理用のリソースが優先度の低い利用者により使い切られてしまうと、優先度の高い利用者がサーバを使用できなくなるという問題がある。優先度の低い利用者によりＴＣＰトラフィック処理用のリソースが使い切られるのは次の２つの場合である。
【０００６】
(ケース１)
優先度の低い複数の利用者により、多量のＴＣＰコネクションが確立された場合。
(ケース２)
優先度の低い利用者から、ＴＣＰトラフィック処理用のリソースに対するＤｏＳ（denial of services）攻撃が行われた場合。ＤｏＳ攻撃は正当な使用者が使用するはずのリソースを、不正な使用者が使い切る、もしくはリソースを使えない状態にすることで、正当な使用者によるリソース使用を妨げるハッキング行為である。例えば大量のデータや不正パケットを送り付けたり、ＯＳやアプリケーションのバグを利用して不正なコマンドを送ることによってシステムをダウンさせる攻撃である。
【０００７】
ＴＣＰトラフィック処理用のリソースに対するＤｏＳ攻撃としては、主に次の２つが挙げられる。
・ＳＹＮ  Ｆｌｏｏｄ攻撃
・ＴＣＰコネクションを大量に確立するＤｏＳ攻撃
【０００８】
ＳＹＮ  Ｆｌｏｏｄ攻撃は、ＴＣＰ／ＩＰでコネクションを確立するために行われる３ウェイハンドシェークプロトコルにおいて確立途中の状態を管理するキューのデータサイズが有限であることを利用した攻撃である。ターゲットサーバにＴＣＰコネクションの確立を要求するＳＹＮパケットを大量に送り、３ウェイハンドシュークプロトコルを終了しないことで確立途中の状態を大量に作る。この攻撃によりターゲットサーバの確立途中の状態を管理するキューが溢れ、新たなＴＣＰコネクションを確立することを一時的に不可能にする。
【０００９】
ＴＣＰコネクションを大量に作るというＤｏＳ攻撃の概要を以下説明する。ＴＣＰコネクションが確立される度にメモリ、ＣＰＵなどのリソースが使用されるため、一度に処理可能なＴＣＰコネクション数には上限が存在する。そこでターゲットサーバに対し複数のマシンを用いて大量のＴＣＰコネクションを確立し、上限までリソースを使い切ってしまうと、ターゲットサーバは新たなＴＣＰコネクションを確立不能になる。ターゲットサーバの能力によっては処理速度の低下やシステムの停止といった現象が起こる。
【００１０】
従来のＤｏＳ攻撃に対する防御策として、ファイアウォール（Firewall）やルータ（Router）を用いてフィルタリングを行う方法がある。これらのフィルタリング方法ではＴＣＰコネクションの確立の際に送信元ＩＰアドレス、使用ポートに関し制限を行うことが可能であり、条件を満たさないＴＣＰコネクション要求は廃棄される。
【００１１】
フィルタリングを使用することによりサーバの利用者に対して使用するサービスを限定することができ、利用の許可されていない不正な利用者からのＤｏＳ攻撃を防ぐことができる。しかしながら、サービスの使用が許可されている利用者間では、サーバのＴＣＰコネクションリソースの使用権限に差がないため、上記した(ケース1),(ケース2)の場合をどちらも防ぐことができない。
【００１２】
また、ＳＹＮ  Ｆｌｏｏｄ攻撃に対する防御策に関しては、“ＳＹＮ  ｃｏｏｋｉｅｓ”という方法が存在する。これはＬｉｎｕｘＯＳのkernel version 2.0.30以降でオプションとしてつけられた機能である。従来のＴＣＰコネクション要求処理では、要求であるＳＹＮパケット受信時に、コネクションに対するリソースが確保されるが、ＳＹＮ  ｃｏｏｋｉｅｓでは、リソースを確保せずにＳＹＮパケットへの応答であるＳＹＮ−ＡＣＫパケットを返し、ＡＣＫパケットを受けとりコネクションが確立された時点で初めてリソースを確保する。この方法によりＳＹＮ  Ｆｌｏｏｄ攻撃を防ぐ。
【００１３】
この手法では、上記の（ケース２）におけるＳＹＮ  Ｆｌｏｏｄ攻撃を防ぐことができるが、従来のＴＣＰトラフィック処理と同様に利用者の優先度を区別する仕組みがないため、（ケース１）及び（ケース２）におけるＴＣＰコネクションを多量に確立することによるＤｏＳ攻撃の場合には、優先度の低い利用者のＴＣＰコネクションによりリソースが使い切られてしまう。
【００１４】
また、ＳＹＮ  Ｆｌｏｏｄ攻撃に対する別の防御手段としてMicrosoft社が WindowsNT4.0SP2 以降に導入した方法が存在する。これは、ＳＹＮ  Ｆｌｏｏｄ攻撃により確立途中のＴＣＰコネクションの状態を管理するキューが溢れた際に、キューのサイズの増加、タイムアウト時間設定値の減少などの防衛手段を行う。この方法もＳＹＮ  Ｆｌｏｏｄ攻撃を効きにくくする効果はあるが、“ＳＹＮ  ｃｏｏｋｉｅｓ”と同様に（ケース１）及び（ケース２）におけるＴＣＰコネクションを多量に確立することによるＤｏＳ攻撃の場合には、優先度の低い利用者のＴＣＰコネクションによりリソースが使い切られてしまうという問題が発生する。
【００１５】
【発明が解決しようとする課題】
個人のサーバのように利用者に対して優先度を設定することが望まれる環境では、ＴＣＰトラフィック処理用のリソースが優先度の低い利用者により使い切られてしまうと、優先度の高い利用者がサーバを使用できなくなるという問題がある。問題が生じるのは、上述した次の２つの場合である。
(ケース１)  複数の優先度の低い利用者により、多量のＴＣＰコネクションが確立された場合。
(ケース２)  優先度の低い利用者から、ＴＣＰトラフィック処理用のリソースに対するＤｏＳ攻撃が行われた場合。
【００１６】
この２つの場合にも優先度の高い利用者がＴＣＰコネクションを確立し、サーバを使用できるようにすることが必要である。
【００１７】
本発明は、上述の問題点を解決することを目的とするものであり、上述の(ケース１)、 (ケース２)のような場合にも、優先度の高い利用者がＴＣＰコネクションを確立し、サーバを使用できるようにすることを可能とする通信処理装置、および通信処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明の第１の側面は、
通信コネクション要求を受信し、コネクション確立処理を実行する通信処理装置において、
コネクション要求に対するコネクション確立可否の決定処理を実行する制御手段と、
コネクション要求元に対応し優先度毎に区分された利用者識別子と、優先度毎に区分された利用者毎の使用可能な通信処理用リソース領域情報を含むリソース使用条件とを対応付けたテーブルであり、高優先度の利用者に対応する配分リソースとして、低優先度の利用者に対応する配分リソースに含まれない占有リソース領域をリソース使用条件として設定したリソース使用条件テーブルとを有し、
前記制御手段は、
コネクション要求データに基づいて、コネクション要求元に対応する利用者の識別処理を実行し、該利用者識別処理において識別された利用者識別子に基づいて、前記リソース使用条件テーブルの検索を実行し、利用者識別子の属する優先度に対応して設定された通信処理用リソースの空きの確認を条件として、リソース使用条件テーブルに基づいて決定されるリソースを適用したコネクション確立処理を実行する構成を有することを特徴とする通信処理装置にある。
【００１９】
さらに、本発明の通信処理装置の一実施態様において、前記通信処理用リソースは、複数の領域に分割されたメモリまたは記憶装置の記憶領域を含み、前記リソース使用条件テーブルは、コネクション要求元に対応する利用者識別子と、前記記憶領域の各々とを対応付け、利用者毎の使用可能な記憶領域を設定した構成を有し、前記制御手段は、前記利用者識別処理に基づいて識別された利用者に基づいて、リソース使用条件テーブルの検索を実行して、利用可能なリソースとしての記憶領域の判別を実行する構成であることを特徴とする。
【００２０】
さらに、本発明の通信処理装置の一実施態様において、前記通信処理用リソースは、設定可能なコネクション数を含み、前記リソース使用条件テーブルは、コネクション要求元に対応する利用者識別子と、コネクション数とを対応付け、利用者毎の使用可能なコネクションを設定した構成を有し、前記制御手段は、前記利用者識別処理に基づいて識別された利用者に基づいて、リソース使用条件テーブルの検索を実行して、利用可能なコネクションの有無の判別を実行する構成であることを特徴とする。
【００２１】
さらに、本発明の通信処理装置の一実施態様において、前記制御手段は、前記利用者識別処理において、コネクション要求の送信元ＩＰアドレスまたは送信元ＭＡＣアドレスの少なくともいずれかを利用者情報として取得する処理を実行する構成であることを特徴とする。
【００２２】
さらに、本発明の通信処理装置の一実施態様において、前記制御手段は、前記利用者識別処理において、コネクション要求の送信先ポート番号を利用者情報として取得し、取得した送信先ポート番号に対応して設定された通信処理用リソースの空きの確認を条件としてコネクション確立処理を実行する構成を有することを特徴とする。
【００２３】
さらに、本発明の通信処理装置の一実施態様において、前記制御手段は、アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理と、前記リソース使用条件テーブルに基づいて利用者に対応するリソース使用条件を決定するリソース使用条件決定処理と、リソース領域情報と、リソース空き情報とを対応付けたリソース管理情報テーブルに基づいてコネクション要求利用者に対するコネクション適用リソース領域を設定するリソース領域決定処理と、を順次実行してコネクション確立処理を実行する構成を有することを特徴とする。
【００２４】
さらに、本発明の通信処理装置の一実施態様において、前記制御手段は、アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理と、前記リソース使用条件テーブルに基づいて利用者に対応するリソース使用条件を決定するリソース使用条件決定処理と、リソース領域情報と、リソース空き情報とを対応付けたリソース管理情報テーブルに基づいてコネクション要求利用者に対するコネクション適用リソース領域を設定するリソース領域決定処理と、を順次実行してコネクション確立処理を実行する構成を有し、前記リソース使用条件テーブルは、優先度の高い利用者の利用者識別子に対するリソース使用条件としてのリソース領域の配分比率を高く設定した構成であることを特徴とする。
【００２５】
さらに、本発明の通信処理装置の一実施態様において、前記制御手段は、アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理と、利用者識別子とグループ識別子と、最大コネクション数、および現在のコネクション数とを対応付けたリソース使用条件テーブルに基づいて、前記利用者識別処理によって取得した利用者識別データに基づく該リソース使用条件テーブルのエントリ検索により、利用可能なコネクションの有無を判定してリソース使用可否を判定するリソース使用条件決定処理と、を順次実行してコネクション確立処理を実行する構成を有することを特徴とする。
【００２６】
さらに、本発明の通信処理装置の一実施態様において、前記制御手段は、アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理と、利用者識別子とグループ識別子と、最大コネクション数、および現在のコネクション数とを対応付けたリソース使用条件テーブルに基づいて、前記利用者識別処理によって取得した利用者識別データに基づく該リソース使用条件テーブルのエントリ検索により、利用可能なコネクションの有無を判定してリソース使用可否を判定するリソース使用条件決定処理とを順次実行してコネクション確立処理を実行する構成を有し、前記リソース使用条件テーブルは、優先度の高い利用者の利用者識別子を複数の異なるグループ識別子に対応付けて格納した構成であることを特徴とする。
【００２７】
さらに、本発明の通信処理装置の一実施態様において、前記制御手段は、コネクション要求としてＴＣＰコネクション要求に含まれるＳＹＮパケットの受信に応じて、コネクション確立可否の決定処理を実行する構成であり、ＳＹＮパケットに含まれる送信元識別データに基づいて利用者の識別を実行する構成であることを特徴とする。
【００２８】
さらに、本発明の第２の側面は、
通信コネクション要求を受信し、コネクション確立処理を実行する通信処理方法において、
コネクション要求データに基づいて、コネクション要求元に対応する利用者の識別処理を実行する利用者識別処理ステップと、
前記利用者識別処理において識別された利用者識別子に基づいて、コネクション要求元に対応し優先度毎に区分された利用者識別子と、優先度毎に区分された利用者毎の使用可能な通信処理用リソース領域情報を含むリソース使用条件とを対応付けたテーブルであり、高優先度の利用者に対応する配分リソースとして、低優先度の利用者に対応する配分リソースに含まれない占有リソース領域をリソース使用条件として設定したリソース使用条件テーブルの検索を実行し、利用者識別子の属する優先度に対応して設定された通信処理用リソースの空きの確認を条件として、リソース使用条件テーブルに基づいて決定されるリソースを適用したコネクション確立処理を実行するリソース決定処理ステップと、
を有することを特徴とする通信処理方法にある。
【００２９】
さらに、本発明の通信処理方法の一実施態様において、前記通信処理方法において、前記通信処理用リソースは、複数の領域に分割されたメモリまたは記憶装置の記憶領域を含み、前記リソース使用条件テーブルは、コネクション要求元に対応する利用者識別子と、前記記憶領域の各々とを対応付け、利用者毎の使用可能な記憶領域を設定したテーブルであり、前記リソース決定処理ステップは、前記利用者識別処理に基づいて識別された利用者に基づいて、前記リソース使用条件テーブルの検索を実行して、利用可能なリソースとしての記憶領域の判別を実行するステップを含むことを特徴とする。
【００３０】
さらに、本発明の通信処理方法の一実施態様において、前記通信処理方法において、前記通信処理用リソースは、設定可能なコネクション数を含み、前記リソース使用条件テーブルは、コネクション要求元に対応する利用者識別子と、コネクション数とを対応付け、利用者毎の使用可能なコネクションを設定したテーブルであり、前記リソース決定処理ステップは、前記利用者識別処理に基づいて識別された利用者に基づいて、前記リソース使用条件テーブルの検索を実行して、利用可能なコネクションの有無の判別を実行するステップを含むことを特徴とする。
【００３１】
さらに、本発明の通信処理方法の一実施態様において、前記利用者識別処理ステップは、コネクション要求の送信元ＩＰアドレスまたは送信元ＭＡＣアドレスの少なくともいずれかを利用者情報として取得する処理を実行することを特徴とする。
【００３２】
さらに、本発明の通信処理方法の一実施態様において、前記利用者識別処理ステップは、コネクション要求の送信先ポート番号を利用者情報として取得し、前記リソース決定処理ステップは、取得した送信先ポート番号に対応して設定された通信処理用リソースの空きの確認を条件としてコネクション確立処理を実行することを特徴とする。
【００３３】
さらに、本発明の通信処理方法の一実施態様において、前記通信処理方法は、アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理ステップと、利用者識別子とリソース領域情報を含むリソース使用条件とを対応付けたリソース使用条件テーブルに基づいて利用者に対応するリソース使用条件を決定するリソース使用条件決定処理ステップと、リソース領域情報と、リソース空き情報とを対応付けたリソース管理情報テーブルに基づいてコネクション要求利用者に対するコネクション適用リソース領域を設定するリソース領域決定処理ステップと、を順次実行してコネクション確立処理を実行することを特徴とする。
【００３４】
さらに、本発明の通信処理方法の一実施態様において、前記通信処理方法は、アドレス情報と利用者識別子とを対応付けた利用者テーブルに基づいてコネクション要求元に対応する利用者を識別する利用者識別処理ステップと、利用者識別子とグループ識別子と、最大コネクション数、および現在のコネクション数とを対応付けたリソース使用条件テーブルに基づいて、前記利用者識別処理によって取得した利用者識別データに基づく該リソース使用条件テーブルのエントリ検索により、利用可能なコネクションの有無を判定してリソース使用可否を判定するリソース使用条件決定処理ステップと、を順次実行してコネクション確立処理を実行することを特徴とする。
【００３５】
さらに、本発明の通信処理方法の一実施態様において、前記利用者識別処理ステップは、コネクション要求としてＴＣＰコネクション要求に含まれるＳＹＮパケットの受信に応じて、ＳＹＮパケットに含まれる送信元識別データに基づいて利用者の識別を実行するステップを含むことを特徴とする。
【００３６】
さらに、本発明の第３の側面は、
通信コネクション要求を受信し、コネクション確立処理を実行する通信処理をコンピュータ・システム上で実行せしめるコンピュータ・プログラムであって、
コネクション要求データに基づいて、コネクション要求元に対応する利用者の識別処理を実行する利用者識別処理ステップと、
前記利用者識別処理において識別された利用者識別子に基づいて、コネクション要求元に対応し優先度毎に区分された利用者識別子と、優先度毎に区分された利用者毎の使用可能な通信処理用リソース領域情報を含むリソース使用条件とを対応付けたテーブルであり、高優先度の利用者に対応する配分リソースとして、低優先度の利用者に対応する配分リソースに含まれない占有リソース領域をリソース使用条件として設定したリソース使用条件テーブルの検索を実行し、利用者識別子の属する優先度に対応して設定された通信処理用リソースの空きの確認を条件として、リソース使用条件テーブルに基づいて決定されるリソースを適用したコネクション確立処理を実行するリソース決定処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００３７】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００３８】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【００３９】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施態様の詳細について説明する。
【００４０】
ネットワーク端末におけるＴＣＰコネクションに関する処理の概略について、図1を参照して説明する。
【００４１】
物理ネットワークは、ＯＳＩ参照モデルの第１層に相当し、電気信号や光信号によるデータ送受信の確立、コネクタ、ケーブル等のデータ伝送路における処理を行なう。ネットワークインタフェース層処理は、ＯＳＩ参照モデル第２層に相当し、通信機器間でのパケットの認識、送受信処理を行なう。インターネット層は、ＯＳＩ参照モデル第３層に相当し、アドレス管理および伝送経路の選択処理を行なう。トランスポート層処理は、ＯＳＩ参照モデル第４層に相当し、通信機器間のデータ転送制御と、データ転送の信頼性確率処理を行なう。アプリケーション層処理は、ＯＳＩ参照モデル第７層に相当し、アプリケーションが送受信を行なうための通信処理制御や、アプリケーションの固有処理の対応を行なう。
【００４２】
本発明は図1におけるトランスポート層処理内に存在するＴＣＰコネクション処理手法の改善に関するものであり、従来のＴＣＰコネクション処理手法に加え、次の手段を具備する。
【００４３】
・ＴＣＰコネクション要求トラフィックデータから利用者を識別する手段
・各利用者のリソース使用条件を取得する手段
・各利用者に対しリソース使用条件を考慮し使用可能なリソースの有無を確認する手段
・現在のリソースの使用状況を管理する手段
・各利用者のリソース使用条件を設定する手段
【００４４】
なお、上記記載において、利用者とは、通信処理装置に対して接続要求を行なってきた通信要求者、あるいは通信要求端末であり、リソースとは、ＴＣＰトラフィック処理用のリソース（メモリ領域、ディスク領域）のことである。
【００４５】
本発明の通信処理装置は、予め利用者、すなわち通信要求者、あるいは通信要求端末毎のリソース使用条件の設定情報を通信処理装置内に有し、通信要求を受信した場合に、リソース使用条件設定情報に従って、設定された条件の下でのリソースを使用した通信が可能か否かを判定して、可能な場合にのみ設定条件の下でのリソース処理を行なって通信を実行する。
【００４６】
図２に通信装置間で送受信される通信パケットの構成例として、ＩＰパケットのＴＣＰ(Transmission Control protocol)フォーマットを示す。ＴＣＰヘッダには、送信元ポート番号、宛先ポート番号、データパケットの先頭がそのデータの送信初めから何バイトにあたるかをバイト数で示したデータ順序を示すシーケンス番号、相手から次に送られるデータの送信シーケンス番号を示す受信確認番号、ヘッダ長、ＴＣＰセグメントの処理方法などのコードビットからなるヘッダ情報、データの残り受信可能バイト数を示すウィンドウサイズ、ＴＣＰパケットの信頼性保証値としてのチェックサム、緊急処理を要するデータ一を示す緊急ポインタを有する。
【００４７】
次に、図３にＩＰパケット構成のＩＰヘッダの詳細を示す。ＩＰｖ４、ＩＰｖ６等のバージョンを示すバージョン、ヘッダ長、さらに、優先度情報を格納したＴＯＳ（Type of Service）フィールド、パケットの長さ、パケットの識別子、ＩＰ層でのデータ分割（フラグメント）に関する制御情報としてのフラグ、分割（フラグメント）されたデータの場所を示す断片オフセット、データの破棄までの時間情報を示すＴＴＬ（Time to Live）、上位層で利用されるプロトコル（４：ＩＰ，ＴＣＰ：７，ＵＤＰ：１７…）ヘッダのチェックサム、送信元ＩＰアドレス、宛て先ＩＰアドレスを有する。
【００４８】
本発明の通信処理装置によるＴＣＰコネクション要求受信時の処理の流れを図４のフローチャートを参照して説明する。
【００４９】
通信処理装置は、ステップＳ０１において、ＴＣＰコネクション要求のトラフィックデータを受信する。ＴＣＰでは、コネクション確立時にＳＹＮパケット、ＳＹＮＡＣＫ、ＡＣＫの送受信を３ウェイハンドシェーク制御メッセージ交換処理として実行する。この際のトラフィックデータはＳＹＮパケットの内容、ＳＹＮパケットの含まれていたフレーム（パケット）のフレームヘッダ、データグラムヘッダである。
【００５０】
通信処理装置は、ステップＳ０２において、受信したトラフィックデータとしてのフレーム（パケット）を解析して利用者を識別する。利用者識別処理としては、例えば送信元ＭＡＣアドレス、送信元ＩＰアドレス、送信元ポート番号、送信先ポート番号の各値に関する条件の組み合わせを取得する処理として実行される。
【００５１】
次にステップＳ０３において、利用者に対するリソース使用条件を取得する。利用者に対するリソース使用条件は、通信処理装置において、利用者に対応付けて予め設定された条件であり、この具体例については後述する。ステップＳ０４において、取得したリソース使用条件とリソースの使用状況を元に現在使用可能なリソースが存在するか確認する。現在使用可能なリソースが存在する場合（Ｓ０５においてＹｅｓ）には、リソースの使用状況を変更し（ステップＳ０６）、通常のＴＣＰコネクション要求処理を行う（ステップＳ０７）。使用可能なリソースが存在しない場合（Ｓ０５においてＮｏ）は、このＴＣＰコネクション要求を棄却する。（ステップＳ０８）
【００５２】
また、３ウェイハンドシューク途中のタイムアウト及び、コネクションの終了時などＴＣＰコネクション要求処理以外のＴＣＰコネクション処理においてリソースが開放される場合には、リソース開放後にリソースの使用状況の変更処理を行う。
【００５３】
本構成により、利用者に応じてリソースの使用条件の設定を行うことが可能となり、優先度の低い利用者の使用可能なリソース量を制限することが可能となる。
【００５４】
優先度の低い利用者の使用可能なリソースを制限することで、優先度の低い利用者がＴＣＰコネクション処理に関わる全リソースを使い切ることが防止されるとともに、優先度の高い利用者専用のリソースを確保することが可能となるため、優先度の低い利用者によりサーバが混んでいる際にも、優先度の高い利用者は優先的に効率的にサーバを利用することができる。
【００５５】
優先度の低い利用者は、ＴＣＰコネクションに関するＤｏＳ攻撃により優先度の低い利用者に対してサービス利用を妨害することは可能であるが、攻撃が行われている間でも優先度の高い利用者は、優先度の低い利用者が使用できないリソースを使用してサービスを利用することが可能であり(前述したケース２)の問題を解決することが可能である。
【００５６】
また、同様に優先度の低い利用者による多量のアクセスが発生していサービス使用の効率が落ちている場合であっても、優先度の高い利用者は専用のリソースを使用することでサービスを優先的に使用することが可能であり(前述したケース１)の問題を解決することが可能である。
【００５７】
優先度に応じて利用者毎にリソースを割り当てる具体的構成例について以下、リソース決定処理例１およびリソース決定処理例２として説明する。リソース決定処理例１はリソースを複数の領域に分けて管理し利用者ごとに使用可能なリソース領域を制限して、制限領域の使用状況に応じて優先度に応じた利用者毎のコネクションの設定可否を判定する方法である。リソース決定処理例２は、利用者ごとにコネクション数を制限して、優先度に応じた利用者毎のコネクションの設定可否を判定する方法である。
【００５８】
[リソース決定処理例１]
従来のＴＣＰコネクション処理では、使用するリソース、すなわち、ＴＣＰトラフィック処理用のリソース（メモリ領域、ディスク領域）は利用者、すなわち通信相手となる通信要求者、あるいは通信要求端末によらず、一定の領域内で使用される。以下に説明する本発明の通信処理装置におけるリソース決定処理例１は、これを改良し、リソースを複数の領域に分けて管理し、利用者に対しリソース領域ごとに使用制限を与える。
【００５９】
本発明の通信処理装置は、従来のＴＣＰコネクション処理に加えて、次の処理を実行する。すなわち以下の処理を実行する機能拡張された構成を持つ。
・ＴＣＰコネクション処理に用いるリソースの複数の領域への分割
・ＴＣＰコネクション処理においてコネクションごとの使用リソース領域の指定
・ＴＣＰコネクション要求処理の直前へのリソース決定処理の追加
【００６０】
この機能拡張により、コネクションごとに利用者を識別して、利用者に応じたリソース領域を指定したＴＣＰコネクションが可能となる。本発明の通信処理装置は、ＴＣＰコネクション処理に用いるリソースを複数の領域へ分割した構成を持ち、図１に示したＴＣＰコネクション処理中のトランスポート層処理内の処理として、コネクション要求に応じて、コネクションごとの利用者を判別して使用リソース領域の決定処理を行なう。
【００６１】
リソース決定処理は、３つのフェーズによって構成される。
第１フェーズは、ＴＣＰコネクション要求のトラフィックデータの情報から利用者を識別、または利用者及び利用するサービスの双方を識別する利用者識別処理、
第２フェーズは、識別された利用者に応じて、リソースの使用条件を与えるリソース使用条件決定処理、
第３フェーズは、リソース使用条件から使用するリソース領域を決定するリソース領域決定処理、
である。この３フェーズからなるリソース決定処理により、利用者に応じてリソース領域の使用を制限することが可能となる。
【００６２】
図５に、本発明の通信処理装置に対するＴＣＰコネクション要求に対して、通信処理装置において通信処理制御を実行する制御手段の実行するリソース決定処理の詳細を説明する図を示す。
【００６３】
ＴＣＰコネクション処理用リソース１５０は、ＴＣＰトラフィック処理用のリソース（メモリ領域、ディスク領域）をまとめて示している。リソース１５０は、図に示すように複数の領域１〜Ｎに分割されている。
【００６４】
図６に本発明の通信処理装置におけるＴＣＰコネクション要求に対して実行されるリソース決定処理の概略を説明するフローを示す。ＴＣＰコネクション要求、すなわち３ウェイハンドシェークプロトコルに従ったＳＹＮパケットを受信すると、リソース決定処理部１３０において、上述した３つのフェーズの処理が実行される。
【００６５】
図６のステップＳ１１において、ＴＣＰコネクション要求のトラフィックデータの情報から利用者を識別、または利用者及び利用するサービスの双方を識別する利用者識別処理が実行され、次にステップＳ１２において、識別された利用者に応じて、リソースの使用条件を与えるリソース使用条件決定処理が実行され、次に、ステップＳ１３において、リソース使用条件から使用するリソース領域を決定するリソース領域決定処理が実行され、リソースの使用の可否判定に基づいてＴＣＰコネクション要求に対する応答を行なう。すなわちリソース使用可能であり通信コネクションを設定可能な状態（Ｓ１４でＹｅｓ）であれば、ＳＹＮＡＣＫパケットの送信を実行し、リソース使用不可の場合（Ｓ１４でＮｏ）には、受信ＳＹＮパケットの破棄（Ｓ１５）を実行する。
【００６６】
図５に示すように、３つのフェーズの処理、すなわち、利用者識別処理、リソース使用条件決定処理、リソース領域決定処理において、記憶装置１４０に記憶された各テーブル、すなわち利用者テーブル１１１、リソース使用条件テーブル１１２、リソース管理情報テーブル１１３を参照した処理が実行される。これらの各テーブルに対する情報格納、更新処理は、それぞれ利用者設定処理部１２１、リソース使用条件設定処理部１２２、リソース管理情報設定処理部１２３が行なう。
【００６７】
以下、各テーブル構成例を図面に示し、図を参照しながらリソース決定処理部１３０におけるリソース決定処理の各フェーズにおける処理の詳細について説明する。
【００６８】
（フェーズ１：利用者識別処理）
利用者識別処理は、通信処理装置が受信したＳＹＮパケットから利用者、すなわち通信処理装置に対して接続要求を行なってきた通信要求者、あるいは通信要求端末を識別する処理である。この利用者識別処理は、利用者テーブル１１１を参照した処理として実行される。
【００６９】
利用者テーブルの構成例を図７に示し、利用者テーブルを参照した利用者識別処理の処理フローを図８に示す。利用者テーブルは、図７に示すように、利用者ＩＤ、送信元ＭＡＣアドレス、送信元ＩＰアドレス、送信先ポート番号の各フィールドを有する。
【００７０】
図７に示す利用者テーブルでは、空欄は任意の値が可能であることを表している。各利用者ＩＤに対して１つまたは複数の識別条件を設定できる。例えば図７の例では、ＳＹＮパケットの送信元ＭＡＣアドレスが35.42.1.56.1375または送信元ＩＰアドレスが45.87.123.245であれば利用者ＩＤは所有ユーザであると識別する。
【００７１】
また、送信元ＩＰアドレスが42.134.78.95であれば利用者ＩＤは友人Ａであると識別する。その他の送信元ＭＡＣアドレス、送信元ＩＰアドレスが受信ＳＹＮパケットから得られた場合は、一般、すなわち所有ユーザおよび友人Ａ以外からのコネクション要求であると判定することができる。
【００７２】
利用者テーブルを参照した利用者識別処理の詳細を図８のフローチャートを参照して説明する。
【００７３】
通信処理装置は、まず、ＴＣＰコネクション要求として受け取ったＳＹＮパケットから送信元ＩＰアドレス、送信先ポート番号を抽出する。（ステップＳ２１）。これらの情報は、ＳＹＮパケットのＩＰヘッダ（図３参照）、ＴＣＰヘッダ（図２参照）から取得可能である。次にこのＳＹＮパケットのフレームヘッダを得ることができれば送信元ＭＡＣアドレスを抽出する。（ステップＳ２２）。これらの抽出した情報を用いて利用者テーブルを検索し（ステップＳ２３）、利用者ＩＤを取得し、次のリソース使用条件決定処理に渡す（ステップＳ２４、Ｓ２５）。利用者テーブルから利用者ＩＤが取得できなかった場合は、ステップＳ２６で「ｎｕｌｌ」を結果として、次のリソース使用条件決定処理に渡す。
【００７４】
（フェーズ２：リソース使用条件決定処理）
リソース使用条件決定処理は、上述した利用者識別処理において識別された利用者に応じて、リソース使用条件を決定する処理である。このリソース使用条件決定処理は、リソース使用条件決定テーブル１１２を参照した処理として実行される。
【００７５】
リソース使用条件決定テーブルの構成例を図９に示し、リソース使用条件決定テーブルを参照したリソース使用条件決定処理の処理フローを図１０に示す。リソース使用条件決定テーブルは、図９に示すように、利用者ＩＤに対して、リソース使用条件としての使用可能なリソース領域番号を対応付けたテーブルとして構成される。テーブルのリソース使用条件フィールドには、各利用者ＩＤに対応して利用可能なリソース領域番号が格納され、後述するフェーズ３のリソース領域決定処理において、空き領域を探索する順番に領域番号がシーケンシャルに並べられて格納される。例えばユーザＩＤ＝Ａの利用可能なリソース領域番号が、１，２，３，４，７であり、領域探索の指定順序も１，２，３，４，７の順である場合、テーブルのリソース使用条件フィールドには、１，２−４，７のようにデータが格納される。
【００７６】
図９に示すテーブル例では、上述の利用者識別処理において取得された利用者ＩＤが、例えば所有ユーザ１であった場合は、使用可能なリソース領域は１〜９の領域であることを示し、友人Ａである場合は、使用可能なリソース領域は３〜９の領域、一般である場合は、８〜９の領域、その他、すなわち［ｎｕｌｌ］である場合は、９のリソース領域のみが使用可能であることを示している。すなわち、上述の利用者識別処理において取得された利用者ＩＤに基づいて、リソース使用条件決定テーブルから使用可能なリソース領域番号を取得する処理が、リソース使用条件決定処理として実行される。
【００７７】
図１０を参照して、リソース使用条件決定処理の処理について説明する。リソース使用条件決定処理は、前述のフェーズ１の利用者識別処理の結果を取得して実行される。利用者識別処理の結果として、利用者ＩＤを受け取り、その値でリソース使用条件テーブルを検索する。（ステップＳ３１）。この検索処理において、利用者ＩＤに対応するエントリがあれば（Ｓ３２でＹｅｓ）エントリのリソース使用条件を次のリソース領域決定処理に渡す（ステップＳ３３）。対応するエントリがない場合（Ｓ３２でＮｏ）には「ｎｕｌｌ」を結果として渡す（ステップＳ３４）。
【００７８】
（フェーズ３：リソース領域決定処理）
リソース領域決定処理は、上述したリソース使用条件決定処理において決定されたリソース使用条件に応じて、空き領域があるリソース領域を探し、使用するリソースを決定する処理である。このリソース領域決定処理は、リソース管理情報テーブル１１３を参照した処理として実行される。
【００７９】
リソース管理情報テーブルの構成例を図１１に示し、リソース管理情報テーブルを参照したリソース領域決定処理の処理フローを図１２に示す。リソース管理情報テーブルは、図１１に示すように、リソース領域番号、最大コネクション数、受信キューサイズ、空き領域の有無、リソース領域開始アドレスの各データを対応付けたテーブルである。
【００８０】
リソース管理情報テーブルでは、リソース領域はリソース領域番号により識別される。最大コネクション数はリソース領域で管理可能なＴＣＰコネクション数である。受信キューサイズは、３ウェイハンドシェークプロトコルが終了していないコネクション確立途中の状態の保持可能な個数である。この図１１に示す例は、この２つの数値、すなわち、リソース領域で管理可能なＴＣＰコネクション数と、３ウェイハンドシェークプロトコルが終了していないコネクション確立途中のコネクション待機数とにより各リソース領域を区分し、リソース領域のサイズを決定する構成としたテーブル例であるが、これらの構成に限らず、例えばコネクション数、キューサイズに関して、バイト数または全リソース中に占める割合を設定値として、これらの設定値に基づいて、領域の区分を行なう構成としてもよい。
【００８１】
空き領域の有無はリソース領域にコネクション要求を処理できる空き領域が存在するか否かを表す。この値はＴＣＰコネクション処理において、コネクション数または確立途中のコネクション用のキューが一杯になった時に「無」に変更され、空きができた際に「有」に変更され、コネクション状態に応じて、逐次、更新される。リソース領域開始アドレスはＴＣＰコネクション処理がリソース領域を使うために使用するアドレスであり、メモリ領域、ディスク領域のポインタに対応する。
【００８２】
リソース領域決定処理は、図１１に示すようなリソース管理情報テーブルを使用して、利用者識別処理、およびリソース使用条件決定処理において決定されたリソース選択条件の順番で、空き領域があるリソース領域を探し、使用するリソースを決定する。
【００８３】
リソース領域決定処理の流れを図１２に示すフローチャートを参照して説明する。リソース領域決定処理は、前述のフェーズ２のリソース使用条件決定処理の結果を取得して実行される。まず、ステップＳ４１において、リソース使用条件決定処理の結果であるリソース使用条件として、前述のリソース使用条件テーブルから選択されたリソース領域番号を取得する。ステップＳ４２では、取得したリソース領域番号にしたがって、順番に使用可能なリソース領域に空き領域があるかをリソース管理情報テーブルを用いて探索する。
【００８４】
例えばリソース使用条件決定処理の結果であるリソース使用条件として、前述のリソース使用条件テーブルから選択されたリソース領域番号が１であれば、図１１のテーブルの領域番号１のエントリを参照し、空き領域の有無を確認する。図１１に示す例では、「有」であり、空きがあることを示している。
【００８５】
空き領域のある使用可能なリソース領域が見つかった場合（ステップＳ４３でＹｅｓ）にはそれを結果として返す（ステップＳ４５）。リソース領域が見つからない場合（ステップＳ４３でＮｏ）は、リソース領域がないことを結果（例えば０を使用する）で返す（ステップＳ４６）。
【００８６】
（コネクション管理）
上述した３つのフェーズによるコネクション決定により、利用者に応じたリソースが割り当てられてコネクションが確立することになる。本発明の通信処理装置は、リソース領域毎のコネクショの管理をリソース領域対応テーブル（図５，１０１）を用いて実行する。なお、図５においてリソース領域対応テーブル１０１は、ＴＣＰコネクション処理用リソース１５０内に示され、リソースとして適用されるメモリ内にテーブルを格納する構成として示されているが、リソース領域対応テーブル１０１は、外部の記憶装置１４０に格納する構成としてもよい。
【００８７】
図１３にリソース領域対応テーブルのデータ構成例を示す。リソース領域対応テーブルは図１３に示すように、送信元のＩＰアドレスまたはポート番号、または両者の組合わせデータからなるエンドポイントと、コネクションに使用されているリソース領域番号とを対応付けたテーブルとして構成される。
【００８８】
このテーブルにおいて、通信端末装置が実行中のコネクション数、使用リソース領域番号が取得され、例えばリソース領域対応テーブルのあるリソース領域に対応して設定されたコネクション数が前述のリソース管理情報テーブル（図１１参照）の最大コネクション数に等しくなった場合は、リソース管理情報テーブルの「空き領域の有無」のデータフィールドが「有」から「無」に更新されることになる。
【００８９】
以上、説明したように、リソース決定処理例１は、
第１フェーズ：ＴＣＰコネクション要求のトラフィックデータの情報から利用者を識別、または利用者及び利用するサービスの双方を識別する利用者識別処理、
第２フェーズ：識別された利用者に応じて、リソースの使用条件を与えるリソース使用条件決定処理、
第３フェーズ：リソース使用条件から使用するリソース領域を決定するリソース領域決定処理、
これらの３フェーズからなるリソース決定処理により、利用者に応じてリソース領域の使用を制限することを可能としている。従って、優先度の低いユーザは一部のリソース領域しか使用できないが、優先度の高いユーザは全リソースを使用できるといった条件付けが実現できる。
【００９０】
なお、上述の説明では、利用者としてコネクション要求元、すなわち送信元ＩＰアドレス、送信元ＭＡＣアドレスに基づいて利用者識別を行なう処理例について説明したが、さらに、ＳＹＮパケットのヘッダ情報から送信先ポート番号を取得して、送信先ポート番号に応じたリソースの割り当てを実行する構成としてもよい。本構成とすることにより、送信先ポート番号、すなわちプロトコルに応じてリソースの使用率を設定することが可能となる。
【００９１】
[リソース決定処理例２]
次に、利用者ごとにコネクション数を制限して、優先度に応じた利用者毎のコネクションの設定可否を判定する構成について、リソース決定処理例２として説明する。
【００９２】
図１４に、通信処理装置に対するＴＣＰコネクション要求に対して、通信処理装置において通信処理制御を実行する制御手段の実行するリソース決定処理の詳細を説明する図を示す。
【００９３】
ＴＣＰコネクション処理用リソース２５０は、ＴＣＰトラフィック処理用のリソース（メモリ領域、ディスク領域）をまとめて示している。リソース２５０は、先に説明したリソース決定処理例１とは異なり、複数の領域に分割されたものとはなっていない。
【００９４】
図１４に示すリソース使用可能判定処理部２３０は、２つの処理フェーズａ，ｂを実行する。
処理フェーズａは、前述のリソース決定処理例１における第１フェーズと同様、ＴＣＰコネクション要求のトラフィックデータの情報から利用者を識別、または利用者及び利用するサービスの双方を識別する利用者識別処理である。
処理フェーズｂは、リソース決定処理例２に固有の処理であり、ユーザＩＤ毎に対応付けられた設定可能なコネクション数と現コネクション数を比較し、ユーザＩＤ毎に対応付けられた設定可能なコネクション数を超えない場合は、コネクションを確立させ、超える場合は、他のユーザＩＤに対応して設定されたコネクション数に空きがあるかを判定し、空きがある場合にコネクションを確立させる処理を実行する。
【００９５】
図１４に示すように、２つのフェーズの処理、すなわち、利用者識別処理、リソース使用条件決定処理において、記憶装置２４０に記憶された各テーブル、すなわち利用者テーブル２１１、リソース使用条件テーブル２１２を参照した処理が実行される。これらの各テーブルに対する情報格納、更新処理は、それぞれ利用者設定処理部２２１、リソース使用条件設定処理部２２２が行なう。また、リソースの使用状況を管理するためにリソース使用状況テーブル２０１が使用される。
【００９６】
以下、各テーブル構成例を図面に示し、図を参照しながらリソース使用可能判定処理部２３０におけるリソース使用可能判定処理の各フェーズにおける処理の詳細について説明する。
【００９７】
（フェーズａ：利用者識別処理）
利用者識別処理は、通信処理装置が受信したＳＹＮパケットから利用者、すなわち通信処理装置に対して接続要求を行なってきた通信要求者、あるいは通信要求端末を識別する処理である。この利用者識別処理は、前述のリソース決定処理例１における第１フェーズと同様の処理であるので詳細な説明は省略する。
【００９８】
すなわち、ＴＣＰコネクション要求のトラフィックデータの情報から利用者を識別、または利用者及び利用するサービスの双方を識別する利用者識別処理であり、利用者テーブル（図７参照）を参照した処理として実行され、利用者テーブルから利用者ＩＤを取得する処理として実行される。
【００９９】
（フェーズｂ：リソース使用条件決定処理）
リソース使用条件決定処理は、上述の利用者識別処理において識別された利用者に応じて、リソース使用条件を決定する処理である。このリソース使用条件決定処理は、リソース使用条件決定テーブル２１２を参照した処理として実行される。
【０１００】
リソース使用条件決定テーブルの構成例を図１５に示し、リソース使用条件決定テーブルを参照したリソース使用条件決定処理の処理フローを図１６に示す。リソース使用条件決定テーブルは、図１５に示すように、グループＩＤ、利用者ＩＤに対して、リソース使用条件としての使用可能な最大コネクション数、および現在のコネクション数を対応付けたテーブルとして構成される。
【０１０１】
グループＩＤはリソース使用条件を識別するための識別子（ＩＤ）である。利用者ＩＤはこのグループＩＤに所属する利用者ＩＤのリストである。同じ利用者ＩＤが複数のグループＩＤに含まれることが可能である。最大コネクション数は各グループＩＤ内の利用者に接続を許す最大のコネクション数である。現在のコネクション数は、そのグループＩＤに属する利用者によって使用され接続している現在のコネクション数を表す。
【０１０２】
あるコネクション要求に対して、コネクション確立の可否を判定する場合は、フェーズａにおいて取得した利用者ＩＤに基づくリソース使用条件決定テーブルの検索が実行される。テーブルの下のグループＩＤから順に、フェーズａにおいて取得した利用者ＩＤが含まれているかを確認し、利用者ＩＤが含まれているグループＩＤで最大コネクション数より現在のコネクション数が小さければコネクション確立が可能でありそのグループＩＤのコネクションとして接続する。
【０１０３】
図１６を参照して、リソース使用条件決定処理の処理について説明する。リソース使用条件決定処理は、前述のフェーズａの利用者識別処理の結果を取得して実行される。利用者識別処理の結果として、利用者ＩＤを受け取り、その値に基づいて、リソース使用条件テーブル（図１５）を一番下のグループＩＤのエントリから検索し、利用者識別処理で識別された利用者ＩＤが各エントリに含まれるか否かを確認する(ステップＳ５１)。
【０１０４】
利用者識別処理の結果として取得した利用者ＩＤが含まれたエントリが検索されると（Ｓ５２でＹｅｓ）、リソース使用条件決定テーブルの当該エントリの現在のコネクション数と最大コネクション数との比較処理を実行する（ステップＳ５３）。
【０１０５】
[現在のコネクション数]＜[最大コネクション数]の場合（ステップＳ５４でＮｏ）は、使用可能なリソースが存在すると判断し、リソース使用条件決定テーブルの当該エントリに対応付けられたグループＩＤを返す（ステップＳ５５）。
【０１０６】
利用者識別処理の結果として取得した利用者ＩＤが含まれていないエントリである場合（Ｓ５２でＮｏ）、もしくは利用者識別処理の結果として取得した利用者ＩＤが含まれているエントリにおいて、現在のコネクション数＝最大コネクション数の場合（ステップＳ５４でＹｅｓ）には、リソース使用条件決定テーブルの一つ上のグループＩＤのエントリを調べる（ステップＳ５６）。このループを繰り返し、リソース使用条件決定テーブルの全てのグループＩＤに対応するデータエントリを調べても利用者識別処理の結果として取得した利用者ＩＤが含まれたエントリが見つからなかった場合、あるいは利用者ＩＤが含まれたエントリであっても現在のコネクション数＝最大コネクション数のエントリしか存在しなかった場合には使用可能なリソースが見つからなかったことを示すｎｕｌｌを返す（ステップＳ５８）。
【０１０７】
リソース使用条件決定処理の後、結果がｎｕｌｌであれば、使用可能なリソースがないため、このＴＣＰコネクション要求のＳＹＮパケットは棄却される。リソース使用条件決定処理結果としてグループＩＤが取得されれば、通常どおりのＴＣＰコネクション要求処理が行われる。
【０１０８】
（コネクション管理）
上述した２つのフェーズによるコネクション決定により、利用者に応じたリソースが割り当てられてコネクションが確立することになる。本実施例の通信処理装置は、リソース領域毎のコネクショの管理をリソース使用状況テーブル（図１４，２０１）を用いて実行する。
【０１０９】
図１７にリソース使用状況テーブルのデータ構成例を示す。リソース使用状況テーブルは図１７に示すように、送信元のＩＰアドレスまたはポート番号、または両者の組合わせデータからなるエンドポイントと、コネクションに使用されているグループＩＤとを対応付けたテーブルとして構成される。
【０１１０】
ＴＣＰコネクション処理用のリソース確保時に、ＴＣＰコネクション処理はリソース使用状況テーブルに、コネクションのエンドポイントとリソース使用条件決定処理の結果のグループＩＤを書き込み、リソース使用条件テーブルにおけるそのグループＩＤに対応する現在のコネクション数を１増加させる。
【０１１１】
また、コネクションの終了時には、リソースを開放する際に、図１７に示すようなリソース使用状況テーブルを閲覧してこのコネクションのエンドポイントに対応するグループＩＤを得て、リソース使用条件テーブルのそのグループＩＤに対応する現在のコネクション数を１減少させる。その後にリソース使用状況テーブル中のこのコネクションに関するエントリを消去する。
【０１１２】
以上、説明したように、リソース決定処理例２は、
フェーズａ：ＴＣＰコネクション要求のトラフィックデータの情報から利用者を識別、または利用者及び利用するサービスの双方を識別する利用者識別処理、フェーズｂ：ユーザＩＤ毎に対応付けられた設定可能なコネクション数と現コネクション数を比較し、ユーザＩＤ毎に対応付けられた設定可能なコネクション数を超えない場合は、コネクションを確立させ、超える場合は、他のユーザＩＤに対応して設定されたコネクション数に空きがあるかを判定し、空きがある場合にコネクションを確立させる処理、
これらの２フェーズからなるリソース決定処理により、利用者に応じて確立コネクション数を制限することを可能としている。従って、優先度の低いユーザは少ないコネクション数しか使用できないが、優先度の高いユーザは多くのコネクションを使用できるといった条件付けが実現できる。このように、利用者ごとにコネクション数を制限することができ、利用者を複数のグループＩＤに所属させることにより、柔軟なコネクション数制限が可能となる。
【０１１３】
なお、上述の説明では、利用者としてコネクション要求元、すなわち送信元ＩＰアドレス、送信元ＭＡＣアドレスに基づいて利用者識別を行なう処理例について説明したが、さらに、ＳＹＮパケットのヘッダ情報から送信先ポート番号を取得して、送信先ポート番号に応じたリソースの割り当てを実行する構成としてもよい。本構成とすることにより、送信先ポート番号、すなわちプロトコルに応じて確立コネクション数を設定することが可能となる。
【０１１４】
［通信処理装置構成例］
次に通信処理装置の構成例について図１８を用いて説明する。図１８には、通信処理装置の構成例を示す。ＣＰＵ(Central processing Unit)５０１は、各種アプリケーションプログラムや、ＯＳ（Operating System）を実行する演算ユニットである。ＲＯＭ（Read-Only-Memory）５０２は、ＣＰＵ５０１が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。ＲＡＭ（Random Access Memory）５０３は、ＣＰＵ５０１の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。
【０１１５】
ホストバス５０４はブリッジ５０５を介してＰＣＩ（Peripheral Component Internet/Interface）バスなどの外部バス５０６に接続されている。
【０１１６】
キーボード５０８はＣＰＵ５０１に各種の指令を入力するためにユーザにより操作され、ポインティングデバイス５０９はディスプレイ５１０の画面上の位置指定、コマンド指定などの際にユーザによって操作される。ディスプレイ５１０は例えばＣＲＴ、液晶ディスプレイ等であり、各種情報をテキストまたはイメージ等により表示する。ＨＤＤ(Hard Disk Drive)５１１は、情報記憶媒体としてのハードディスクを駆動し、ハードディスクからのプログラム、データの読み取りまたはハードディスクに対するプログラム、データの書き込みを実行する。
【０１１７】
ドライブ５１２は、フロッピーディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体５1３の記録再生を実行するドライブであり、各リムーバブル記録媒体５１３からのプログラムまたはデータ再生、リムーバブル記録媒体５１３に対するプログラムまたはデータ格納を実行する。
【０１１８】
各記憶媒体に記録されたプログラムまたはデータを読み出してＣＰＵ５０１において実行または処理を行なう場合は、読み出したプログラム、データはインタフェース５０７、外部バス５０６、ブリッジ５０５、ホストバス５０４を介して例えば接続されているＲＡＭ５０３に供給する。
【０１１９】
キーボード５０８乃至ドライブ５１２はインタフェース５０７に接続されており、インタフェース５０７は外部バス５０６、ブリッジ５０５、およびホストバス５０４を介してＣＰＵ５０１に接続されている。
【０１２０】
通信部５１４は通信処理装置の接続された例えばルータ等を介して他の端末またはサーバと通信し、ＣＰＵ５０１、ＨＤＤ５１１等から供給されたデータをパケット化して送信したり、ルータを介してパケットを受信する処理を実行する。通信部５０３は外部バス５０６、ブリッジ５０５、およびホストバス５０４を介してＣＰＵ５０１に接続されている。
【０１２１】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１２２】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【０１２３】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフロッピーディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１２４】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１２５】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【０１２６】
【発明の効果】
以上、説明したように、本発明の通信処理装置、および通信処理方法によれば、コネクション要求の利用者を識別し、識別された利用者に応じて設定されたリソースの使用条件に従って使用するリソース領域を決定する構成としたので、優先度の高い利用者に使用可能なリソースを多く設定するなどの処理により、不特定多数の利用者からのコネクション要求がある通信処理装置において、特定のユーザに対して優先的にコネクションを確立することが可能となる。
【０１２７】
また、本発明の通信処理装置、および通信処理方法によれば、利用者に応じて利用可能なコネクション数を設定し、識別された利用者に応じて設定されたコネクション設定数に従ってコネクションの可否を判定する構成としたので、優先度の高い利用者に使用可能なコネクションを多く設定する処理により、不特定多数の利用者からのコネクション要求がある通信処理装置において、特定のユーザに対して優先的にコネクションを確立することが可能となる。
【０１２８】
また、本発明の通信処理装置、および通信処理方法において、利用者情報としてコネクション要求元のＩＰアドレス、ＭＡＣアドレス、さらに送信先ポート番号を取得して、送信先ポート番号に応じたリソースの割り当てを実行する構成によれば、送信先ポート番号、すなわちプロトコルに応じたリソースの使用率を設定し、利用に応じた優先使用の設定をすることが可能となる。
【０１２９】
また、本発明の通信処理装置、および通信処理方法によれば、複数の優先度の低い利用者により、多量のＴＣＰコネクションが確立されたり、優先度の低い利用者から、ＴＣＰトラフィック処理用のリソースに対するＤｏＳ攻撃が行われて、コネクションの確立が困難になるなどの状況の発生を効果的に防止することが可能となる。
【図面の簡単な説明】
【図１】ＴＣＰコネクションの処理の概要を説明する図である。
【図２】ＩＰパケットにおけるＴＣＰヘッダの構成を説明する図である。
【図３】ＩＰパケットにおけるＩＰヘッダの構成を説明する図である。
【図４】本発明の通信処理装置におけるＴＣＰコネクション要求処理の処理概要を説明するフロー図である。
【図５】本発明の通信処理装置におけるＴＣＰコネクション要求処理の処理概要を説明する図である。
【図６】本発明の通信処理装置におけるリソース領域選択処理の処理概要を説明するフロー図である。
【図７】本発明の通信処理装置における利用者識別処理において適用される利用者テーブルの構成例を示す図である。
【図８】本発明の通信処理装置における利用者識別処理を説明するフロー図である。
【図９】本発明の通信処理装置におけるリソース使用条件決定処理において適用されるリソース使用条件テーブルの構成例を示す図である。
【図１０】本発明の通信処理装置におけるリソース使用条件決定処理を説明するフロー図である。
【図１１】本発明の通信処理装置におけるリソース領域決定処理において適用されるリソース管理情報テーブルの構成例を示す図である。
【図１２】本発明の通信処理装置におけるリソース領域決定処理を説明するフロー図である。
【図１３】本発明の通信処理装置におけるコネクション管理処理において適用されるリソース領域対応テーブルの構成例を示す図である。
【図１４】本発明の通信処理装置におけるＴＣＰコネクション要求処理の処理概要（例２）を説明する図である。
【図１５】本発明の通信処理装置におけるリソース使用条件決定処理（例２）を説明するフロー図である。
【図１６】本発明の通信処理装置におけるリソース領域決定処理（例２）において適用されるリソース管理情報テーブルの構成例を示す図である。
【図１７】本発明の通信処理装置におけるコネクション管理処理（例２）において適用されるリソース使用状況テーブルの構成例を示す図である。
【図１８】本発明の通信処理装置の構成例を示す図である。
【符号の説明】
１０１  リソース領域対応テーブル
１１１  利用者テーブル
１１２  リソース使用条件テーブル
１１３  リソース管理情報テーブル
１２１  利用者設定処理部
１２２  リソース使用条件決定処理部
１２３  リソース設定処理部
１３０  リソース決定処理部
１４０  記憶装置
１５０  ＴＣＰコネクション処理用リソース
２０１  リソース使用状況テーブル
２１１  利用者テーブル
２１２  リソース使用条件テーブル
２２１  利用者設定処理部
２２２  リソース使用条件決定処理部
２３０  リソース使用可能判定処理部
２４０  記憶装置
２５０  ＴＣＰコネクション処理用リソース
５０１  ＣＰＵ(Central processing Unit)
５０２  ＲＯＭ（Read-Only-Memory）
５０３  ＲＡＭ（Random Access Memory）
５０５  ブリッジ
５０８  キーボード
５０９  ポインティングデバイス
５１０  ディスプレイ
５１１  ＨＤＤ
５１２  ドライブ
５１３  リムーバブル記憶媒体
５１４  通信部
【図１】
0003663627.tif 000002
【図２】
0003663627.tif 000003
【図３】
0003663627.tif 000004
【図４】
0003663627.tif 000005
【図５】
0003663627.tif 000006
【図６】
0003663627.tif 000007
【図７】
0003663627.tif 000008
【図８】
0003663627.tif 000009
【図９】
0003663627.tif 000010
【図１０】
0003663627.tif 000011
【図１１】
0003663627.tif 000012
【図１２】
0003663627.tif 000013
【図１３】
0003663627.tif 000014
【図１４】
0003663627.tif 000015
【図１５】
0003663627.tif 000016
【図１６】
0003663627.tif 000017
【図１７】
0003663627.tif 000018
【図１８】
0003663627.tif 000019