(57)【要約】【課題】高速なデータ処理を実現する技術を提供する。【解決手段】通信データを制御する方法を判断する基準となる基準データと、その基準データを含む通信データを制御する方法とを対応づけて格納したデータベースと、取得した通信データに含まれる基準データをデータベースから検索する検索回路と、検索回路の検索結果に応じて通信データを制御する処理実行回路と、を備える通信制御装置１０において、ＰＨＹ処理部５ａは、宛先のアドレスが自装置のアドレスであるか否かを確認する処理を省略して、取得した通信データを検索回路へ供給する。データベースは、連想メモリにより構成される。【選択図】図３４
2009181361.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークから受信した信号をデータ列に変換する受信回路と、
通信データを制御する方法を判断する基準となる基準データと、その基準データを含む通信データを制御する方法とを対応づけて格納したデータベースと、
前記受信部が取得した通信データに含まれる基準データを前記データベースから検索する検索回路と、
前記検索回路の検索結果に応じて、前記通信データを制御する方法を前記データベースから取得し、その方法にしたがって前記通信データを制御する処理実行回路と、
前記処理実行回路から出力された通信データを信号に変換してネットワークへ送出する送信回路と、を備え、
前記受信部は、宛先のアドレスが自装置のアドレスであるか否かを確認する処理を省略して、取得した通信データを前記検索回路へ供給し、
前記データベースは、連想メモリにより構成されることを特徴とするデータ処理装置。
【請求項２】
複数回の条件判断分岐を経て実行すべき処理が判定される際に、取得したデータの中から、前記条件判断分岐のために用いられる複数の判定用データを抽出し、それらを連結することにより比較対象データを生成する比較対象抽出回路と、
前記複数の判定用データのそれぞれが取り得る値を連結した基準データと、前記基準データに含まれる前記複数の判定用データの値の組合せに対して前記複数回の条件判断分岐を経て判定された実行すべき処理の内容とを対応づけて格納したデータベースと、
前記比較対象データを前記データベースから検索することにより前記複数回の条件判断分岐をまとめて実行し、前記比較対象データに合致する前記基準データに対応づけられた実行すべき処理の内容を出力する検索回路と、
を備え、
前記データベースは、連想メモリにより構成されることを特徴とするデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関し、特に、通信データを処理するデータ処理装置に関する。
【背景技術】
【０００２】
インターネットのインフラが整備され、携帯電話端末、パーソナルコンピュータ、ＶｏＩＰ（Voice over Internet Protocol）電話端末などの通信端末が広く普及した現在、インターネットの利用者は爆発的に増加している。このような状況下、コンピュータウイルス、ハッキング、スパムメールなど、セキュリティに関する問題が顕在化しており、通信を適切に制御する技術が求められている。
【特許文献１】国際公開ＷＯ２００６−０８７８３２号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００３】
通信環境の向上に伴って通信量も膨大になっており、大容量のデータを高速に処理する通信制御装置の必要性が増している。
【０００４】
本発明はこうした状況に鑑みてなされたものであり、その目的は、高速なデータ処理を実現する技術の提供にある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、データ処理装置に関する。このデータ処理装置は、ネットワークから受信した信号をデータ列に変換する受信回路と、通信データを制御する方法を判断する基準となる基準データと、その基準データを含む通信データを制御する方法とを対応づけて格納したデータベースと、前記受信部が取得した通信データに含まれる基準データを前記データベースから検索する検索回路と、前記検索回路の検索結果に応じて、前記通信データを制御する方法を前記データベースから取得し、その方法にしたがって前記通信データを制御する処理実行回路と、前記処理実行回路から出力された通信データを信号に変換してネットワークへ送出する送信回路と、を備え、前記受信部は、宛先のアドレスが自装置のアドレスであるか否かを確認する処理を省略して、取得した通信データを前記検索回路へ供給し、前記データベースは、連想メモリにより構成されることを特徴とする。
【０００６】
本発明の別の態様も、データ処理装置に関する。このデータ処理装置は、複数回の条件判断分岐を経て実行すべき処理が判定される際に、取得したデータの中から、前記条件判断分岐のために用いられる複数の判定用データを抽出し、それらを連結することにより比較対象データを生成する比較対象抽出回路と、前記複数の判定用データのそれぞれが取り得る値を連結した基準データと、前記基準データに含まれる前記複数の判定用データの値の組合せに対して前記複数回の条件判断分岐を経て判定された実行すべき処理の内容とを対応づけて格納したデータベースと、前記比較対象データを前記データベースから検索することにより前記複数回の条件判断分岐をまとめて実行し、前記比較対象データに合致する前記基準データに対応づけられた実行すべき処理の内容を出力する検索回路と、を備え、前記データベースは、連想メモリにより構成されることを特徴とする。
【０００７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、高速なデータ処理を実現する技術を提供することができる。
【発明を実施するための最良の形態】
【０００９】
（前提技術）
図１は、前提技術に係る通信制御システムの構成を示す。通信制御システム１００は、通信制御装置１０と、通信制御装置１０の動作を支援するために設けられた各種の周辺装置を含む。前提技術の通信制御装置１０は、インターネットサービスプロバイダなどにより提供されるパケットフィルタリング機能を実現する。ネットワークの経路に設けられた通信制御装置１０は、ネットワークを介して送受信されるパケットを取得して、その内容を解析し、通信の許否を判断する。通信が許可される場合は、通信制御装置１０は、そのパケットをネットワークへ送出する。通信が禁止される場合は、通信制御装置１０は、そのパケットを破棄し、必要であれば送信元に対して警告メッセージなどを返信する。
【００１０】
前提技術の通信制御システム１００では、複数の通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、が設けられており、それらを協働させて、１台の通信制御装置１０として機能させているが、以下、個々の通信制御装置１０ａ、１０ｂ、１０ｃ、・・・も、それらの総称も区別せずに通信制御装置１０と呼ぶ。
【００１１】
本前提技術の通信制御システム１００では、それぞれの通信制御装置１０は、パケットの処理に必要なデータベースの少なくとも一部を分割して保持しているが、分割して保持するのに必要な台数よりも少なくとも１台以上余分に設けられる。例えば、データ数が３０万件以上４０万件未満である場合、運用に必要な通信制御装置の台数は４台であるが、いずれかの通信制御装置１０が故障したときに代わって運用させるための待機用として、また、通信制御装置１０に含まれるデータベースを更新するときの待機用として、１台以上の通信制御装置１０を設け、合計で最低５台の通信制御装置１０を設ける。従来は、フォールトトレラントのために、システム全体を二重化させる必要があったが、本前提技術の技術によれば、分割された単位の通信制御装置１０を余分に設けておけばよいので、コストを低減することができる。これら複数の通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、の運用状況は、運用監視サーバ１１０により管理される。本前提技術の運用監視サーバ１１０は、通信制御装置の運用状況を管理するための管理テーブルを有する。
【００１２】
周辺装置は、運用監視サーバ１１０、接続管理サーバ１２０、メッセージ出力サーバ１３０、ログ管理サーバ１４０、及びデータベースサーバ１５０を含む。接続管理サーバ１２０は、通信制御装置１０に対する接続を管理する。接続管理サーバ１２０は、例えば、携帯電話端末から送出されたパケットを通信制御装置１０で処理する際に、パケットに含まれる携帯電話端末を一意に識別する情報を用いて、通信制御システム１００のサービスを享受可能なユーザであることを認証する。いったん認証されると、その携帯電話端末に一時的に付されたＩＰアドレスから送出されたパケットは、一定の期間は接続管理サーバ１２０で認証せずに通信制御装置１０へ送られて処理される。メッセージ出力サーバ１３０は、通信制御装置１０により判定された通信の許否の結果に応じて、パケットの送信先又は送信元に対するメッセージを出力する。ログ管理サーバ１４０は、通信制御装置１０の運用履歴を管理する。データベースサーバ１５０は、外部から最新のデータベースを取得し、通信制御装置１０に入力する。通信制御装置１０の運用を止めずにデータベースを更新するために、通信制御装置１０はバックアップ用のデータベースを有してもよい。運用監視サーバ１１０は、通信制御装置１０と、接続管理サーバ１２０、メッセージ出力サーバ１３０、ログ管理サーバ１４０、データベースサーバ１５０などの周辺装置の運用状況を監視する。運用監視サーバ１１０は、通信制御システム１００の中で最も優先度が高く、通信制御装置１０及び全ての周辺装置の監視制御を行う。通信制御装置１０は、後述するように、専用のハードウェア回路により構成されるが、運用監視サーバ１１０は、本出願人による特許第３０４１３４０号などの技術を利用して、バウンダリスキャン回路を利用して監視のためのデータを通信制御装置１０などとの間で入出力することにより、通信制御装置１０の運用中にも運用状況を監視することができる。
【００１３】
前提技術の通信制御システム１００は、以下に説明するように、高速化のために専用のハードウェア回路により構成された通信制御装置１０を、周辺に接続された各種の機能を有するサーバ群により制御する構成とすることにより、サーバ群のソフトウェアを適当に入れ替えることで、同様の構成により各種の機能を実現することができる。前提技術によれば、このような柔軟性の高い通信制御システムを提供することができる。
【００１４】
図２は、従来の通信制御装置１の構成を示す。従来の通信制御装置１は、受信側の通信制御部２と、パケット処理部３と、送出側の通信制御部４とを備える。通信制御部２及び４は、それぞれ、パケットの物理層の処理を行うＰＨＹ処理部５ａ及び５ｂと、パケットのＭＡＣ層の処理を行うＭＡＣ処理部６ａ及び６ｂとを備える。パケット処理部３は、ＩＰ（Internet Protocol）のプロトコル処理を行うＩＰ処理部７、ＴＣＰ（Transport Control Protocol）のプロトコル処理を行うＴＣＰ処理部８など、プロトコルに応じた処理を行うプロトコル処理部と、アプリケーション層の処理を行うＡＰ処理部９とを備える。ＡＰ処理部９は、パケットに含まれるデータに応じて、フィルタリングなどの処理を実行する。
【００１５】
従来の通信制御装置１では、パケット処理部３は、汎用プロセッサであるＣＰＵと、ＣＰＵ上で動作するＯＳとを利用して、ソフトウェアにより実現されていた。しかしながら、このような構成では、通信制御装置１の性能はＣＰＵの性能に依存することになり、高速に大容量のパケットを処理可能な通信制御装置を実現しようとしても、自ずと限界がある。例えば、６４ビットのＣＰＵであれば、一度に同時に処理可能なデータ量は最大で６４ビットであり、それ以上の性能を有する通信制御装置は存在しなかった。また、汎用的な機能を有するＯＳの存在を前提としていたので、セキュリティホールなどが存在する可能性が絶無ではなく、ＯＳのバージョンアップなどのメンテナンス作業を必要としていた。
【００１６】
図３は、前提技術に係る通信制御装置の構成を示す。本前提技術の通信制御装置１０は、従来の通信制御装置においてはＣＰＵ及びＯＳを含むソフトウェアにより実現されていたパケット処理部に代えて、ワイヤードロジック回路による専用のハードウェアにより構成されたパケット処理回路２０を備える。汎用処理回路であるＣＰＵにおいて動作するＯＳとソフトウェアにより通信データを処理するのではなく、通信データを処理するための専用のハードウェア回路を設けることにより、ＣＰＵやＯＳなどに起因する性能の限界を克服し、処理能力の高い通信制御装置を実現することが可能となる。
【００１７】
例えば、パケットフィルタリングなどを実行するために、パケットに含まれるデータに、フィルタリングの判断基準となる基準データが含まれるか否かを検索する場合に、ＣＰＵを用いて通信データと基準データを比較すると、一度に高々６４ビットしか比較することができず、処理速度を向上させようとしてもＣＰＵの性能で頭打ちになるという問題があった。ＣＰＵでは、通信データから６４ビットをメモリへ読み上げ、基準データとの比較を行い、つづいて、次の６４ビットをメモリへ読み上げる、という処理を何度も繰り返し行う必要があるので、メモリへの読み上げ時間が律速となり、処理速度に限界がある。
【００１８】
それに対し、本前提技術では、通信データと基準データとを比較するために、ワイヤードロジック回路により構成された専用のハードウェア回路を設ける。この回路は、６４ビットよりも長いデータ長、例えば、１０２４ビットのデータ長の比較を可能とするために、並列に設けられた複数の比較器を含む。このように、専用のハードウェアを設けることにより、同時に並列して多数のビットマッチングを実行することができる。従来のＣＰＵを用いた通信制御装置１では一度に６４ビットしか処理できなかったところを、一度に１０２４ビットの処理を可能にすることで、飛躍的に処理速度を向上させることができる。比較器の数を多くすれば処理能力も向上するが、コストやサイズも増大するので、所望の処理性能と、コスト、サイズ、などを考慮して、最適なハードウェア回路を設計すればよい。
【００１９】
また、本前提技術の通信制御装置１０は、ワイヤードロジック回路による専用のハードウェアにより構成されるので、ＯＳ（Operating System）を必要としない。このため、ＯＳのインストール、バグ対応、バージョンアップなどの作業が必要なく、管理やメンテナンスのためのコストや工数を低減させることができる。また、汎用的な機能が求められるＣＰＵとは異なり、不必要な機能を包含していないので、余計なリソースを用いることがなく、低コスト化、回路面積の低減、処理速度の向上などが望める。さらに、ＯＳを利用していた従来の通信制御装置とは異なり、余分な機能を有しないので、セキュリティホールなどが発生する可能性が低く、ネットワークを介した悪意ある第三者からの攻撃に対する耐性に優れている。
【００２０】
従来の通信制御装置１は、ＣＰＵとＯＳを前提としたソフトウェアによりパケットを処理しており、パケットの全てのデータを受信してからプロトコル処理を行い、データがアプリケーションに渡される。それに対して、本前提技術の通信制御装置１０では、専用のハードウェア回路により処理を行うので、パケットの全てのデータを受信してから処理を開始する必要はなく、処理に必要なデータを受信すれば、後続のデータの受信を待たずに、任意の時点で処理を開始することができる。例えば、後述する位置検出回路における位置検出処理は、比較対象データの位置を特定するための位置特定データを受信した時点で開始することができる。このように、全てのデータの受信を待たずに様々な処理をフローティングで実行することができるので、パケットのデータを処理するのに要する時間を短縮することができる。
【００２１】
図４は、パケット処理回路の内部構成を示す。パケット処理回路２０は、通信データに対して実行する処理の内容を決定するための基準となる基準データを記憶する第１データベース５０Ａ、５０Ｂ、及び５０Ｃ（これらを総称して「第１データベース５０」という）と、受信された通信データの中に基準データが含まれているか否かを、通信データと基準データとを比較することにより検索する検索回路３０と、検索回路３０による検索結果と通信データに対して実行する処理の内容とを対応づけて記憶する第２データベース６０と、検索回路３０による検索結果と第２データベース６０に記憶された条件とに基づいて通信データを処理する処理実行回路４０とを含む。
【００２２】
検索回路３０は、通信データの中から基準データと比較すべき比較対象データの位置を検出する位置検出回路３２と、第１データベース５０に記憶された基準データを３以上の範囲に分割したとき、比較対象データがそれらの範囲のうちいずれに属するかを判定する判定回路の一例であるインデックス回路３４と、判定された範囲の中で比較対象データと合致する基準データを検索するバイナリサーチ回路３６とを含む。比較対象データを基準データの中から検索する方法としては、任意の検索技術を利用可能であるが、本前提技術ではバイナリサーチ法を用いる。本前提技術では、後述するように、改良されたバイナリサーチ法を用いるので、そのために第１データベース５０を３つ設けている。第１データベース５０Ａ、５０Ｂ、及び５０Ｃには、同じ基準データが格納されている。
【００２３】
図５は、位置検出回路の内部構成を示す。位置検出回路３２は、比較対象データの位置を特定するための位置特定データと通信データとを比較するための複数の比較回路３３ａ〜３３ｆを含む。ここでは、６個の比較回路３３ａ〜３３ｆが設けられているが、後述するように、比較回路の個数は任意でよい。それぞれの比較回路３３ａ〜３３ｆには、通信データが、所定のデータ長、例えば、１バイトずつずらして入力される。そして、これら複数の比較回路３３ａ〜３３ｆにおいて、同時に並列して、検出すべき位置特定データと通信データとの比較がなされる。
【００２４】
本前提技術においては、通信制御装置１０の動作を説明するための例として、通信データ中に含まれる「Ｎｏ．  ＃＃＃」という文字列を検出し、その文字列中に含まれる数字「＃＃＃」を基準データと比較して、基準データに合致した場合はパケットの通過を許可し、合致しなかった場合はパケットを破棄する処理を行う場合について説明する。
【００２５】
図５の例では、通信データの中から、数字「＃＃＃」の位置を特定するための位置特定データ「Ｎｏ．」を検出するために、通信データ「０１Ｎｏ．  ３６１・・・」を、１文字ずつずらして比較回路３３ａ〜３３ｆに入力している。すなわち、比較回路３３ａには「０１Ｎ」が、比較回路３３ｂには「１Ｎｏ」が、比較回路３３ｃには「Ｎｏ．」が、比較回路３３ｄには「ｏ．  」が、比較回路３３ｅには「．  ３」が、比較回路３３ｆには「  ３６」が、それぞれ入力される。ここで、比較回路３３ａ〜３３ｆが同時に位置特定データ「Ｎｏ．」との比較を実行する。これにより、比較回路３３ｃがマッチし、通信データの先頭から３文字目に「Ｎｏ．」という文字列が存在することが検出される。こうして、位置検出回路３２により検出された位置特定データ「Ｎｏ．」の次に、比較対象データである数字のデータが存在することが検出される。
【００２６】
ＣＰＵにより同様の処理を行うならば、まず、文字列「０１Ｎ」を「Ｎｏ．」と比較し、続いて、文字列「１Ｎｏ」を「Ｎｏ．」と比較する、というように、先頭から順に１つずつ比較処理を実行する必要があるため、検出速度の向上は望めない。これに対し、本前提技術の通信制御装置１０では、複数の比較回路３３ａ〜３３ｆを並列に設けることにより、ＣＰＵではなしえなかった同時並列的な比較処理が可能となり、処理速度を格段に向上させることができる。比較回路は多ければ多いほど同時に比較可能な位置が多くなるので、検出速度も向上するが、コスト、サイズ、などを考慮の上、所望の検出速度を得られるのに十分な数の比較回路を設ければよい。
【００２７】
位置検出回路３２は、位置特定データを検出するためだけでなく、汎用的に文字列を検出する回路として利用されてもよい。また、文字列だけでなく、ビット単位で位置特定データを検出するように構成されてもよい。
【００２８】
図６は、位置検出回路の別の例を示す。図６に示した例では、位置検出回路３２に設けられたそれぞれの比較回路３３ａ〜３３ｆのデータ長よりも位置特定データの方が短い場合は、位置特定データの後に所定のデータ、例えば、「００Ｈ」又は「０１Ｈ」などをパディングする。また、位置特定データと比較する通信データについても、位置特定データと同じデータ長のみを抜き出して、その後に、位置特定データにパディングしたデータと同じデータをパディングする。このとき、通信データ自身を改変しないために、通信データをワークとしてコピーし、コピーしたデータを加工して比較回路３３ａ〜３３ｆに入力してもよい。これにより、位置特定データのデータ長によらず、位置検出回路３２を汎用的に用いることができる。
【００２９】
図７は、位置検出回路の更に別の例を示す。図７に示した例では、図６に示した例と同様に、位置特定データの後に所定のデータをパディングするが、このデータをワイルドカードとして扱う。すなわち、比較回路３３ａ〜３３ｆは、ワイルドカードであるデータが入力されると、比較対象のデータが何であっても無条件に合致したと判定する。これにより、位置特定データのデータ長によらず、位置検出回路３２を汎用的に用いることができる。
【００３０】
図８は、第１データベースの内部データの例を示す。第１データベース５０には、パケットのフィルタリング、ルーティング、スイッチング、置換などの処理の内容を決定するための基準となる基準データが、何らかのソート条件にしたがって昇順又は降順にソートされて格納されている。図８の例では、１０００個の基準データが記憶されている。
【００３１】
インデックス回路３４は、第１データベース５０に格納されている基準データを３以上の範囲５２ａ〜５２ｄに分割したとき、比較対象データがそれらの範囲のうちいずれに属するかを判定する。図８の例では、１０００個の基準データは、２５０個ずつ４つの範囲５２ａ〜５２ｄに分割されている。インデックス回路３４は、範囲の境界の基準データと比較対象データとを比較する複数の比較回路３５ａ〜３５ｃを含む。比較回路３５ａ〜３５ｃにより比較対象データと境界の基準データとを同時に並列して比較することにより、比較対象データがいずれの範囲に属するかを１度の比較処理で判定することができる。
【００３２】
インデックス回路３４の比較回路３５ａ〜３５ｃに入力される境界の基準データは、通信制御装置１０の外部に設けられた装置により設定されてもよいし、予め第１データベース５０の所定位置の基準データが自動的に入力されるようにしてもよい。後者の場合、第１データベース５０を更新しても、自動的に第１データベース５０の所定位置の基準データが比較回路３５ａ〜３５ｃに入力されるので、初期設定などを必要とせず、直ちに通信制御処理を実行させることができる。
【００３３】
前述したように、ＣＰＵによりバイナリサーチを実行する場合は、同時に複数の比較を実行することができないが、本前提技術の通信制御装置１０では、複数の比較回路３５ａ〜３５ｃを並列に設けることにより、同時並列的な比較処理を可能とし、検索速度を格段に向上させることができる。
【００３４】
インデックス回路３４により範囲が判定されると、バイナリサーチ回路３６がバイナリサーチ法により検索を実行する。バイナリサーチ回路３６は、インデックス回路３４により判定された範囲をさらに２ｎ個に分割し、その境界位置にある基準データと比較対象データとを比較することにより、いずれの範囲に属するかを判定する。バイナリサーチ回路３６は、基準データと比較対象データとをビット単位で比較する比較器を複数個、例えば本前提技術では１０２４個含んでおり、１０２４ビットのビットマッチングを同時に実行する。２ｎ分割された範囲のいずれに属するかが判定されると、さらに、その範囲を２ｎ分割して境界位置にある基準データを読み出し、比較対象データと比較する。以降、この処理を繰り返すことにより範囲をさらに限定し、最終的に比較対象データと合致する基準データを検索する。
【００３５】
前述した例を用いてさらに詳細に動作を説明する。インデックス回路３４の比較回路３５ａ〜３５ｃには、比較対象データとして「３６１」が入力され、基準データとして、比較回路３５ａには、範囲５２ａと５２ｂの境界にある基準データ「３７８」が、比較回路３５ｂには、範囲５２ｂと５２ｃの境界にある基準データ「７０４」が、比較回路３５ｃには、範囲５２ｃと５２ｄの境界にある基準データ「９３７」が、それぞれ入力される。比較回路３５ａ〜３５ｃにより同時に比較が行われ、比較対象データ「３６１」が範囲５２ａに属することが判定される。以降、バイナリサーチ回路３６が基準データの中に比較対象データ「３６１」が存在するか否かを検索する。
【００３６】
図９は、第１データベースの内部データの別の例を示す。図９に示した例では、基準データのデータ数が、第１データベース５０に保持可能なデータ数、ここでは１０００個よりも少ない。このとき、第１データベース５０には、最終データ位置から降順に基準データが格納される。そして、残りのデータには０が格納される。データベースのローディング方法として、先頭からデータを配置せずにローディングエリアの後方から配置し、ローディングエリア先頭に空きが生じた場合は全ての空きをゼロサプレスすることで、データーベースは常にフルの状態になり、バイナリー検索する場合の検索時間を一定にすることができる。また、バイナリサーチ回路３６は、検索中に基準データとして「０」を読み込んだときには、比較結果が自明であるから、比較を行わずに範囲を特定して、次の比較にうつることができる。これにより、検索速度を向上させることができる。
【００３７】
ＣＰＵによるソフトウェア処理においては、第１データベース５０に基準データを格納する際に、最初のデータ位置から昇順に基準データが格納される。残りのデータには、例えば最大値が格納されることになるが、この場合、バイナリサーチにおいて、上述したような比較処理の省略はできない。上述した比較技術は、専用のハードウェア回路により検索回路３０を構成したことにより実現される。
【００３８】
図１０は、第１データベースの内部データのさらに別の例を示す。図１０に示した例では、基準データを均等に３以上の範囲に分割するのではなく、範囲５２ａは５００個、範囲５２ｂは１００個というように、範囲に属する基準データの数が不均一になっている。これらの範囲は、通信データ中における基準データの出現頻度の分布に応じて設定されてもよい。すなわち、それぞれの範囲に属する基準データの出現頻度の和がほぼ同じになるように範囲が設定されてもよい。これにより、検索効率を向上させることができる。インデックス回路３４の比較回路３５ａ〜３５ｃに入力される基準データは、外部から変更可能になっていてもよい。これにより、範囲を動的に設定することができ、検索効率を最適化することができる。
【００３９】
図１１は、インデックス回路の別の例を示す。図８〜１０に示した例では、インデックス回路３４は、３つの比較回路３５ａ〜３５ｃを用いて、比較対象データが第１データベース５０の４つの範囲５２ａ〜５２ｄのいずれに属するかを判定したが、図１１の例では、インデックス回路３４には、比較対象データが、４つの範囲５２ａ〜５２ｄのそれぞれに含まれるか否かを判定するための４つの比較回路３５ｄ〜３５ｇが設けられている。例えば、比較回路３５ｄには、第１データベース５０の０件目の基準データと、２５０件目の基準データと、比較対象データとが入力され、それぞれの基準データと比較対象データとを比較することにより、基準データが範囲５２ａに含まれるか否かを判定する。それぞれの比較回路３５ｄ〜３５ｇの比較結果は判定回路３５ｚに入力され、判定回路３５ｚから、基準データがいずれの範囲に含まれているかが出力される。比較回路３５ｄ〜３５ｇは、基準データが入力された２つの基準データの間に含まれるか否かを出力してもよいし、範囲よりも大きい、範囲に含まれる、範囲よりも小さい、のいずれかを出力してもよい。比較対象データが、範囲５２ａ〜５２ｄのいずれにも含まれないと判定された場合は、比較対象データが第１データベース５０中に存在しないことが分かるので、以降のバイナリサーチを行うまでもなく、検索を終了することができる。
【００４０】
図１２は、バイナリサーチ回路に含まれる比較回路の構成を示す。前述したように、バイナリサーチ回路３６に含まれる比較回路は、１０２４個の比較器３６ａ、３６ｂ、・・・、を含む。それぞれの比較器３６ａ、３６ｂ、・・・、には、基準データ５４と比較対象データ５６が１ビットずつ入力され、それらの大小が比較される。インデックス回路３４の各比較回路３５ａ〜３５ｃの内部構成も同様である。このように、専用のハードウェア回路で比較処理を実行することにより、多数の比較回路を並列して動作させ、多数のビットを同時に比較することができるので、比較処理を高速化することができる。
【００４１】
図１３は、バイナリサーチ回路の構成を示す。バイナリサーチ回路３６は、図１２に示した１０２４個の比較器３６ａ、３６ｂ、・・・を含む比較回路３６Ａ、３６Ｂ、及び３６Ｃと、それらの比較回路を制御する制御回路３６Ｚを含む。
【００４２】
従来のバイナリサーチ法では、まず１回目は、データが昇順又は降順に整列されたデータベースの探索対象範囲の１／２の位置にあるデータを読み出して比較対象データと比較する。データが昇順に並べられている場合、比較対象データの方が小さければ、比較対象データは探索対象範囲の前半に存在するので、２回目は前半を探索対象範囲としてその１／２、すなわち最初の探索対象範囲の１／４の位置にあるデータを読み出して比較対象データと比較する。逆に、比較対象データの方が大きければ、比較対象データは探索対象範囲の後半に存在するので、２回目は後半を探索対象範囲としてその１／２、すなわち最初の探索対象範囲の３／４の位置にあるデータを読み出して比較対象データと比較する。このように、探索対象範囲を半分ずつ絞っていき、最終的に対象データに到達する。
【００４３】
本前提技術では、バイナリサーチのための比較回路を３つ設けているので、１回目の探索のために探索対象範囲の１／２の位置にあるデータと比較対象データとを比較させるときに、同時に並行して、２回目の探索のために探索対象範囲の１／４及び３／４の位置にあるデータと比較対象データとを比較させる。これにより、２回分の探索を一度に行うことができるので、データベースからデータを読み上げる時間を短縮することができる。また、３つの比較回路を同時に並列して動作させることにより、比較の回数を半分に抑え、探索に要する時間を短縮することができる。
【００４４】
図１３の例では、２回分の探索を同時に行うために、３つの比較回路を設けたが、一般に、ｎ回分の探索を同時に並行して行うためには、２ｎ−１個の比較回路を設ければよい。制御回路３６Ｚは、探索対象範囲の１／２ｎ、２／２ｎ、・・・、（２ｎ−１）／２ｎの位置のデータを、２ｎ−１個の比較回路のそれぞれに入力させ、それらを同時に並列して動作させて比較対象データと比較させる。制御回路３６Ｚは、それぞれの比較回路の比較結果を取得して、比較対象データが探索されたか否かを判定する。制御回路３６Ｚは、いずれかの比較回路が、データが一致した旨の信号を出力した場合、比較対象データが探索されたと判定して、バイナリサーチを終了する。一致した旨の信号が出力されなかった場合、次回の探索に移る。比較対象データがデータベースに存在するならば、２ｎ−１個の比較回路の比較結果が反転する範囲に存在するはずである。例えば、１５個の比較回路が設けられているときに、５／１６の位置のデータが比較対象データより小さく、６／１６の位置のデータが比較対象データより大きければ、５／１６から６／１６の間の範囲に比較対象データがある。したがって、制御回路３６Ｚは、各比較回路の比較結果を取得して、比較結果が反転した範囲を次回の探索対象範囲と決定し、決定された次回の探索対象範囲の１／２ｎ、２／２ｎ、・・・、（２ｎ−１）／２ｎの位置のデータをそれぞれの比較回路へ入力させる。
【００４５】
本前提技術では、第１データベース５０を３つ設けており、第１データベース５０Ａは比較回路３６Ａに接続されて探索対象範囲の１／４の位置にあるデータを比較回路３６Ａに供給し、第２データベース５０Ｂは比較回路３６Ｂに接続されて探索対象範囲の２／４の位置にあるデータを比較回路３６Ｂに供給し、第１データベース５０Ｃは比較回路３６Ｃに接続されて探索対象範囲の３／４の位置にあるデータを比較回路３６Ｃに供給する。これにより、それぞれの比較回路にデータを同時に並行して読み上げることができるので、データの読み上げに要する時間を更に短縮し、バイナリサーチを高速化することができる。
【００４６】
比較回路は多ければ多いほど探索速度も向上するが、コスト、サイズなどを考慮の上、所望の探索速度を得られるのに十分な数の比較回路を設ければよい。また、比較回路の数と同じだけ第１データベースを設けるのが好ましいが、コスト、サイズなどを考慮の上、いくつかの比較回路でデータベースを共用してもよい。
【００４７】
図１４は、第１データベースの内部データの更に別の例を示す。図１４に示した第１データベース５０は、フィルタリングの対象となるコンテンツのＵＲＬを格納している。第１データベース５０に格納されるデータは、ワイルドカードとして認識される所定のデータ、例えば、「００Ｈ」又は「０１Ｈ」などを含んでもよい。図１４に示した例において、「http://www.xx.xx/*********」は、「*********」がワイルドカードとして認識され、比較器３６ａ、３６ｂ、・・・において、比較対象データが何であっても合致すると判定される。したがって、「http://www.xx.xx/」で始まる文字列は全てバイナリサーチ回路３６により検出される。これにより、例えば、ドメイン「http://www.xx.xx/」の配下にあるコンテンツの全てにフィルタリングをかける処理などを容易に行うことができる。
【００４８】
図１５は、第２データベースの内部データの例を示す。第２データベース６０は、検索回路３０による検索結果を格納する検索結果欄６２と、通信データに対して実行する処理の内容を格納する処理内容欄６４とを含み、検索結果と処理内容とを対応づけて保持する。図１５の例では、通信データに基準データが含まれている場合は、そのパケットの通過を許可し、含まれていない場合は、そのパケットを破棄するという条件が設定されている。処理実行回路４０は、検索結果に基づいて第２データベース６０から処理内容を検索し、通信データに対して処理を実行する。処理実行回路４０も、ワイヤードロジック回路により実現されてもよい。
【００４９】
図１６は、第２データベースの内部データの別の例を示す。図１６の例では、基準データごとに、処理内容が設定されている。パケットの置換を行う場合、置換先のデータを第２データベース６０に格納しておいてもよい。パケットのルーティングやスイッチングを行う場合、経路に関する情報を第２データベース６０に格納しておいてもよい。処理実行回路４０は、検索回路３０による検索結果に応じて、第２データベース６０に格納された、フィルタリング、ルーティング、スイッチング、置換などの処理を実行する。図１６のように、基準データごとに処理内容を設定する場合、第１データベース５０と第２データベース６０とを統合してもよい。
【００５０】
第１のデータベース及び第２のデータベースは、外部から書き換え可能に設けられる。これらのデータベースを入れ替えることにより、同じ通信制御装置１０を用いて、さまざまなデータ処理や通信制御を実現することができる。また、検索対象となる基準データを格納したデータベースを２以上設けて、多段階の検索処理を行ってもよい。このとき、検索結果と処理内容とを対応づけて格納したデータベースを２以上設けて、より複雑な条件分岐を実現してもよい。このように、データベースを複数設けて多段階の検索を行う場合に、位置検出回路３２、インデックス回路３４、バイナリサーチ回路３６などを複数設けてもよい。
【００５１】
上述した比較に用いられるデータは、同じ圧縮ロジックにより圧縮されてもよい。比較に際して、比較元のデータと比較先のデータが同じ方式で圧縮されていれば、通常と同様の比較が可能である。これにより、比較の際にローディングするデータ量を低減することができる。ローディングするデータ量が少なくなれば、メモリからデータを読み出すのに要する時間が短縮されるので、全体の処理時間も短縮することができる。また、比較器の量を削減することができるので、装置の小型化、軽量化、低コスト化に寄与することができる。比較に用いられるデータは、圧縮された形式で格納されていてもよいし、メモリから読み出した後、比較の前に圧縮されてもよい。
【００５２】
図１７は、前提技術の通信制御装置の別の構成例を示す。本図に示した通信制御装置１０は、図４に示した通信制御装置１０と同様の構成を備える通信制御ユニット１２を２つ有している。また、それぞれの通信制御ユニット１２の動作を制御する切替制御部１４が設けられている。それぞれの通信制御ユニット１２は、２つの入出力インタフェース１６を有しており、それぞれの入出力インタフェース１６を介して、上流側、下流側の２つのネットワークに接続されている。通信制御ユニット１２は、いずれか一方のネットワークから通信データを入力し、処理したデータを他方のネットワークに出力する。切替制御部１４は、それぞれの通信制御ユニット１２に設けられた入出力インタフェース１６の入出力を切り替えることにより、通信制御ユニット１２における通信データの流れの方向を切り替える。これにより、一方向だけではなく、双方向の通信制御が可能となる。
【００５３】
切替制御部１４は、通信制御ユニット１２の一方がインバウンド、他方がアウトバウンドのパケットを処理するように制御してもよいし、双方がインバウンドのパケットを処理するように制御してもよいし、双方がアウトバウンドのパケットを処理するように制御してもよい。これにより、例えばトラフィックの状況や目的などに応じて、制御する通信の方向を可変とすることができる。
【００５４】
切替制御部１４は、各通信制御ユニット１２の動作状況を取得し、その動作状況に応じて通信制御の方向を切り替えてもよい。例えば、一方の通信制御ユニット１２を待機状態として、他方の通信制御ユニット１２を動作させている場合に、その通信制御ユニット１２が故障などにより停止したことを検知したときに、代替として待機中の通信制御ユニット１２を動作させてもよい。これにより、通信制御装置１０のフォールトトレランスを向上させることができる。また、一方の通信制御ユニット１２に対して、データベースの更新などのメンテナンスを行うときに、他方の通信制御ユニット１２を代替として動作させてもよい。これにより、通信制御装置１０の運用を停止させずに、適切にメンテナンスを行うことができる。
【００５５】
通信制御装置１０に３以上の通信制御ユニット１２が設けられてもよい。切替制御部１４は、例えば、トラフィックの状況を取得して、通信量の多い方向の通信制御処理に、より多くの通信制御ユニット１２を割り当てるように、各通信制御ユニット１２の通信の方向を制御してもよい。これにより、ある方向の通信量が増加しても、通信速度の低下を最小限に抑えることができる。
【００５６】
図１８は、複数の通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、を含む通信制御装置１０の構成を示す。第１データベース５０は、データ数に比例して大きな容量を必要とするので、分割して通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、に保持させる。後述するように、本前提技術の通信制御システム１００では、処理すべき通信パケットを、運用中の全ての通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、に供給し、それぞれの通信制御装置１０が受け取ったパケットを処理する。例えば、通信制御装置１０ａは、データＩＤが「０００００１」から「１０００００」まで、通信制御装置１０ｂは、データＩＤが「１００００１」から「２０００００」まで、通信制御装置１０ｃは、データＩＤが「２００００１」から「３０００００」までのデータを保持しており、それぞれが保持するデータを参照してパケットを処理する。
【００５７】
図１９は、運用監視サーバ１１０に設けられた管理テーブル１１１の内部データの例を示す。管理テーブル１１１には、装置ＩＤ欄１１２、運用状況欄１１３、データＩＤ欄１１４が設けられている。装置ＩＤ欄１１２には、通信制御装置１０ａ、１０ｂ、・・・、の装置ＩＤが格納され、運用状況欄１１３には、その通信制御装置の運用状況が格納され、データＩＤ欄１１４には、その通信制御装置が担当すべきデータＩＤの範囲が格納される。運用状況には、例えば、「運用中」、「スタンバイ」、「故障中」、「データ更新中」などがある。運用状況欄１１３は、通信制御装置１０ａ、１０ｂ、・・・、の運用状況が変更されるたびに、運用監視サーバ１１０により更新される。図１９に示した例では、「４６５１８３」件のデータが第１データベース５０に格納されるので、装置ＩＤ「１」〜「５」の５台の通信制御装置１０が運用されており、装置ＩＤ「６」の通信制御装置１０はスタンバイ状態となっている。
【００５８】
運用監視サーバ１１０は、複数の通信制御装置１０の運用状況を監視し、いずれかの通信制御装置１０においてトラブルが発生して運用不可能な状態になったことを検知したときには、スタンバイ状態となっている通信制御装置１０に、運用が停止した通信制御装置１０と同じデータを格納し、その通信制御装置１０に運用を切り替える。例えば、図２０に示すように、装置ＩＤ「２」の通信制御装置１０が故障により運用停止した場合、スタンバイ状態であった装置ＩＤ「６」の通信制御装置１０に、データＩＤ「１００００１〜２０００００」のデータを格納して運用を開始させる。これにより、何らかのトラブルで通信制御装置１０が停止されるような状況になっても、適切に運用を継続することができる。スタンバイ中の通信制御装置１０には、予めいずれかのデータを格納しておき、ホットスタンバイ状態にしておいてもよいし、コールドスタンバイ状態にしておいてもよい。
【００５９】
次に、通信制御装置１０に含まれるデータベースを更新する手順について説明する。データベースサーバ１５０は、所定のタイミングで外部のデータベースから最新のデータベースを取得して保持する。運用監視サーバ１１０は、所定のタイミングで、データベースサーバ１５０に保持された最新のデータベースを通信制御装置１０に反映させるために、データベースサーバ１５０から通信制御装置１０にデータを転送して格納させる。
【００６０】
図２１（ａ）（ｂ）（ｃ）は、データベースを更新する様子を説明するための図である。図２１（ａ）は、図１９と同様に、装置ＩＤ「１」〜「５」の通信制御装置１０が運用中であり、装置ＩＤ「６」の通信制御装置１０がスタンバイ中である状況を示す。運用監視サーバ１１０は、データベースを更新するタイミングが到来すると、現在スタンバイ状態である通信制御装置１０を特定し、その通信制御装置１０に対してデータを格納するようデータベースサーバ１５０に指示する。図２１（ａ）の例では、装置ＩＤ「６」の通信制御装置１０がスタンバイ中であるから、この通信制御装置１０にデータベースサーバ１５０からデータが格納される。このとき、運用監視サーバ１１０は、装置ＩＤ「６」の運用状況欄１１３を「データ更新中」に変更する。
【００６１】
図２１（ｂ）は、通信制御装置１０のデータベースが更新中である状況を示す。データベースサーバ１５０は、運用中の通信制御装置１０のいずれかが担当するデータを、スタンバイ中であった装置ＩＤ「６」の通信制御装置１０の第１データベース５０に格納する。図２１（ｂ）の例では、装置ＩＤ「１」の通信制御装置１０が担当していた、データＩＤ「０００００１〜１０００００」のデータを、装置ＩＤ「６」の通信制御装置１０に格納している。
【００６２】
図２１（ｃ）は、装置ＩＤ「６」の通信制御装置１０のデータベースが更新されて運用が開始され、代わって装置ＩＤ「１」の通信制御装置１０がスタンバイ状態となった状況を示す。運用監視サーバ１１０は、装置ＩＤ「６」の通信制御装置１０に対するデータの格納が終了すると、更新後のデータベースを保持する装置ＩＤ「６」の通信制御装置１０の運用を開始すると同時に、更新前のデータベースを保持する装置ＩＤ「１」の通信制御装置１０の運用を停止してスタンバイ状態にする。これにより、データベースが更新された通信制御装置１０に運用が切り替えられる。つづいて、装置ＩＤ「１」の通信制御装置１０に、データＩＤ「１００００１〜２０００００」のデータを格納した後、装置ＩＤ「１」の通信制御装置１０を運用開始し、装置ＩＤ「２」の通信制御装置１０の運用を停止する。以降、同様に、巡回的にデータベースを更新していくことで、通信制御システム１００の運用を停止することなく、全ての通信制御装置１０のデータベースを背後で更新することができる。
【００６３】
このように、本前提技術の通信制御装置１０では、各通信制御装置１０に格納されているデータは固定的ではなく、あるデータがいずれの通信制御装置１０に格納されているかは、時間によって移り変わる。各通信制御装置１０にパケットを送る前に、いずれの通信制御装置１０にそのユーザのデータが存在するかを判定する処理を行うと、その処理に要する時間が余分にかかる。そのため、本実施の形態では、受信したパケットを全ての通信制御装置１０へ供給し、各通信制御装置１０がパケットを処理する。以下、このような仕組みを実現するための技術について説明する。
【００６４】
図２２は、複数の通信制御装置１０によりパケットを処理するために設けられた通信経路制御装置の構成を示す。通信経路制御装置１９０は、スイッチ１９１、データ供給ユニットの一例である光スプリッタ１９２、及びスイッチ１９３を備える。スイッチ１９１は、受信したパケットを通信制御装置１０へ送信する。ここで、スイッチ１９１と通信制御装置１０の間には、複数の通信制御装置１０ａ、１０ｂ、１０ｃにパケットを並行して供給するための光スプリッタ１９２が設けられており、スイッチ１９１は、実際には光スプリッタ１９２へパケットを送信し、光スプリッタ１９２が各通信制御装置へパケットを並行して送信する。
【００６５】
複数の通信制御装置１０ａ、１０ｂ、１０ｃへパケットを送信するために、パケットをブロードキャストに変換すると、例えばヘッダにタイムスタンプを追加するなどの余分な処理が発生し、処理速度が低下してしまう。そのため、パケットに変更を加えずに、光スプリッタ１９２により分割して、ユニキャストのまま複数の通信制御装置１０ａ、１０ｂ、１０ｃへパケットを送信する。この方式を、本明細書では「パラレルキャスト」と呼ぶ。
【００６６】
各通信制御装置は、自装置のＭＡＣアドレス宛のパケットのみを受信するモードではなく、宛先のＭＡＣアドレスに関係なく全てのパケットを受信するプロミスキャスモードに設定される。各通信制御装置は、光スプリッタ１９２からパラレルキャストされたパケットを受信すると、ＭＡＣアドレスのマッチング処理を省き、全てのパケットを取得して処理する。
【００６７】
通信制御装置１０ｃは、通信が禁止された場合など、送信元宛にパケットを返信する場合には、光スプリッタ１９２を介さずにスイッチ１９１へ応答パケットを送信する。通信制御装置１０ｃは、パケットを処理した結果、通信が許可された場合は、そのパケットをネットワークへ送出する。ここで、通信制御装置１０と上流の通信回線の間には、複数の通信制御装置１０ａ、１０ｂ、１０ｃから送出されるパケットを集約するためのスイッチ１９３が設けられており、通信制御装置１０ｃは、実際にはスイッチ１９３へパケットを送信し、スイッチ１９３が上流の通信回線へパケットを送出する。
【００６８】
パケットの送信先から返信されたパケットをスイッチ１９３が受信したときに、返信されたパケットが通信制御装置１０による処理を必要としない場合は、スイッチ１９３のポート１９５からスイッチ１９１のポート１９４へ送信され、スイッチ１９１から送信元に向けて送出される。通常、インターネットでは、パケットに対する応答パケットが確実に送信元に返信されるよう、返信経路を確保するために、送信時の経路がパケットに記録される。しかし、本実施の形態では、通信経路制御装置１９０内における返信経路が予め用意されているので、経路を記録せずに、すなわち、パケットを加工せずに装置間の通信を行う。これにより、無駄な処理を省き、処理速度を向上させることができる。
【００６９】
図２２の例では、送信元から発信されたパケットを送信先へ送出する場合にのみパケットを処理し、送信先から送信元へ送出された応答パケットは処理せずに通過させる場合の構成を示しているが、通信制御装置１０が両方向のパケットを処理するように構成してもよい。この場合、通信制御装置１０の両側に光スプリッタ１９２を設ければよい。また、スイッチ１９３からスイッチ１９１へのバイパス経路は設けなくてもよい。
【００７０】
このように、複数の通信制御装置のうち、パケットを処理すべき通信制御装置を予め特定しなくても、全ての通信制御装置に同じパケットをパラレルキャストすることにより、処理すべき通信制御装置に適切にパケットを処理させることができる。
【００７１】
これらの通信制御装置は、上述したように、通信経路制御装置１９０からパラレルキャストされる全てのパケットを受信して処理又は破棄するので、インターネット上で装置を一意に識別するためのＩＰアドレスを付与しておく必要がない。サーバ装置などにより、上述したようなパケット処理を実行する場合は、サーバ装置に対する攻撃を考慮する必要があるが、本実施の形態の通信制御装置は、インターネットを介して悪意ある第三者から直接攻撃を受けることがないので、安全に通信制御を行うことができる。
【００７２】
つづいて、上述した通信制御装置１０を利用した通信制御の一例として、ＵＲＬフィルタリング技術について説明する。以下では、フィッシングサイトやウイルスサイトなどの悪質なサイトへのアクセスを的確に抑止する技術を提案する。また、このようなアクセス制御技術を利用して、ユーザが安心してネットワークサービスを享受することができるような通信システムを構築する技術を提案する。
【００７３】
図２３は、ＵＲＬフィルタリングのためのパケット処理回路２０の内部構成を示す。パケット処理回路２０は、第１データベース５０として、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４を備える。通信制御装置１０がコンテンツに対するアクセス要求を取得すると、コンテンツに対するアクセスの許否を判断するために、コンテンツのＵＲＬが、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４に照合される。
【００７４】
ウイルス／フィッシングサイトリスト１６１は、コンピュータウイルスを含むコンテンツのＵＲＬのリストと、フィッシング詐欺に用いられる「罠」のサイトのＵＲＬのリストとを格納する。ウイルス／フィッシングサイトリスト１６１に格納されたＵＲＬのコンテンツに対するアクセス要求は拒否される。これにより、ユーザが気づかずに、又は騙されて、ウイルスサイトやフィッシングサイトにアクセスしようとする場合であっても、適切にアクセスを禁止し、ウイルスやフィッシング詐欺の被害からユーザを保護することができる。また、ユーザの端末にウイルスサイトやフィッシングサイトのリストを格納させて端末側でアクセス制限を行うのではなく、通信経路に設けられた通信制御装置１０で一元的にアクセス制限を行うので、より確実かつ効率的にアクセス制限を行うことができる。通信制御装置１０は、ウイルスサイトやフィッシングサイトではない正当なサイトであることが認証機関により証明された認証済みサイトのリストを取得して保持し、そのリストに格納されたＵＲＬに対するアクセスを許可するようにしてもよい。また、正当なサイトがハッキングなどにより乗っ取られて、ウイルスが組み込まれたり、フィッシング詐欺に利用されたりする事態が生じた場合、正当なサイトの運営者などがウイルス／フィッシングサイトリスト１６１に乗っ取られたサイトのＵＲＬを登録し、サイトが正常な状態に回復するまでの間、一時的にアクセスを禁止できるようにしてもよい。また、ＵＲＬのリストとともに、ＩＰ番号、ＴＣＰ番号、ＭＡＣアドレス等の情報を組み合わせてチェックしてもよい。これにより、更に精度の高い禁止条件を設定することができるので、より確実にウイルスサイトやフィッシングサイトをフィルタリングすることができる。
【００７５】
ホワイトリスト１６２は、アクセスを許可するコンテンツのＵＲＬのリストを格納する。ブラックリスト１６３は、アクセスを禁止するコンテンツのＵＲＬのリストを格納する。図２４（ａ）は、ウイルス／フィッシングサイトリスト１６１の内部データの例を示し、図２４（ｂ）は、ホワイトリスト１６２の内部データの例を示し、図２４（ｃ）は、ブラックリスト１６３の内部データの例を示す。ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、及びブラックリスト１６３には、それぞれ、カテゴリ番号欄１６５、ＵＲＬ欄１６６、及びタイトル欄１６７が設けられている。ＵＲＬ欄１６６には、アクセスが許可される、又は禁止されるコンテンツのＵＲＬが格納される。カテゴリ番号欄１６５には、コンテンツのカテゴリの番号が格納される。タイトル欄１６７には、コンテンツのタイトルが格納される。
【００７６】
共通カテゴリリスト１６４は、ＵＲＬで示されるコンテンツを複数のカテゴリに分類するためのリストを格納する。図２５は、共通カテゴリリスト１６４の内部データの例を示す。共通カテゴリリスト１６４にも、カテゴリ番号欄１６５、ＵＲＬ欄１６６、及びタイトル欄１６７が設けられている。
【００７７】
通信制御装置１０は、「ＧＥＴ」リクエストメッセージ等の中に含まれるＵＲＬを抽出し、そのＵＲＬが、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、又は共通カテゴリリスト１６４に含まれるか否かを検索回路３０により検索する。このとき、例えば、位置検出回路３２により「http://」という文字列を検出し、その文字列に続くデータ列を対象データとして抽出してもよい。抽出されたＵＲＬは、インデックス回路３４及びバイナリサーチ回路３６により、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４の基準データとマッチングされる。
【００７８】
図２６（ａ）、（ｂ）、（ｃ）、及び（ｄ）は、ＵＲＬフィルタリングのための第２データベース６０の内部データの例を示す。図２６（ａ）は、ウイルス／フィッシングサイトリスト１６１に対する検索結果と処理内容を示す。ＧＥＴリクエスト等に含まれるＵＲＬが、ウイルス／フィッシングサイトリスト１６１に含まれるＵＲＬに合致した場合、そのＵＲＬに対するアクセスは禁止される。図２６（ｂ）は、ホワイトリスト１６２に対する検索結果と処理内容を示す。ＧＥＴリクエスト等に含まれるＵＲＬが、ホワイトリスト１６２に含まれるＵＲＬに合致した場合、そのＵＲＬに対するアクセスは許可される。図２６（ｃ）は、ブラックリスト１６３に対する検索結果と処理内容を示す。ＧＥＴリクエスト等に含まれるＵＲＬが、ブラックリスト１６３に含まれるＵＲＬに合致した場合、そのＵＲＬに対するアクセスは禁止される。
【００７９】
図２６（ｄ）は、共通カテゴリリスト１６４に対する検索結果と処理内容を示す。図２６（ｄ）に示すように、共通カテゴリリスト１６４に対する検索結果に対して、そのカテゴリに属するコンテンツに対するアクセスを許可するか禁止するかが個別に設定される。共通カテゴリリスト１６４に関する第２データベース６０には、カテゴリ欄１６９が設けられている。カテゴリ欄１６９には、５７種に分類されたカテゴリのそれぞれについて、カテゴリに属するコンテンツに対するアクセスを許可するか否かを示す情報が格納される。ＧＥＴリクエストに含まれるＵＲＬが、共通カテゴリリスト１６４に含まれるＵＲＬに合致した場合、そのＵＲＬのカテゴリに基づいて、そのＵＲＬに対するアクセスの許否が判定される。なお、図２６（ｄ）では、共通カテゴリの数が５７であるが、それ以外であってもよい。
【００８０】
図２７は、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４の優先度を示す。本前提技術では、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、共通カテゴリリスト１６４の順に優先度が高く、例えば、ホワイトリスト１６２に格納されたアクセスが許可されるコンテンツのＵＲＬであったとしても、そのＵＲＬがウイルス／フィッシングサイトリスト１６１に格納されていれば、コンピュータウイルスを含むコンテンツ、又はフィッシング詐欺に用いられるコンテンツであるとしてアクセスが禁止される。
【００８１】
従来、ソフトウェアを用いて、このような優先度を考慮したマッチングを行うときは、例えば、優先度の高いリストから順にマッチングを行って最初にヒットしたものを採用するか、優先度の低いリストから順にマッチングを行って後からヒットしたものを上書きするか、いずれかの方法がとられていた。しかしながら、前提技術では、専用のハードウェア回路により構成された通信制御装置１０を利用することにより、ウイルス／フィッシングサイトリスト１６１のマッチングを行う検索回路３０ａと、ホワイトリスト１６２のマッチングを行う検索回路３０ｂと、ブラックリスト１６３のマッチングを行う検索回路３０ｃと、共通カテゴリリスト１６４のマッチングを行う検索回路３０ｄとを設けて、それぞれの検索回路３０において同時に並列してマッチングを行う。そして、複数のリストでヒットした場合は、優先度の高いものを採用する。これにより、複数のデータベースが設けられ、それらに優先度が設定されている場合であっても、検索時間を大幅に短縮することができる。
【００８２】
ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４のいずれを優先してアクセスの許否を判断するかは、例えば、第２データベース６０に設定されていてもよい。いずれのリストを優先するかに応じて第２データベース６０の条件を書き換えてもよい。
【００８３】
このように、複数のデータベースを利用してＵＲＬに基づいたフィルタリングを行う際に、データベースに優先度を設定して優先度に応じたフィルタリング処理を行うことができるように構成し、かつ、ウイルス／フィッシングサイトリスト１６１によるフィルタリングを最優先することで、ユーザによるホワイトリスト１６２などの設定状況にかかわらず、ウイルスサイトやフィッシングサイトへのアクセスを確実に禁止することができる。これにより、ウイルスやフィッシング詐欺の被害からユーザを適切に保護することができる。
【００８４】
コンテンツに対するアクセスが許可された場合は、処理実行回路４０は、メッセージ出力サーバ１３０にその旨を通知するための信号を出力する。メッセージ出力サーバ１３０は、コンテンツを保持するサーバに向けて「ＧＥＴ」リクエストメッセージを送出する。コンテンツに対するアクセスが禁止された場合は、処理実行回路４０が、メッセージ出力サーバ１３０にその旨を通知するための信号を出力すると、メッセージ出力サーバ１３０は、アクセス先のサーバに「ＧＥＴ」リクエストメッセージを送信せずに破棄する。このとき、アクセスが禁止された旨の応答メッセージを要求元に送信してもよい。また、強制的に別のウェブページに転送させてもよい。この場合、処理実行回路４０は、デスティネーションアドレスとＵＲＬを転送先のものに書き換えて送出する。応答メッセージや転送先のＵＲＬなどの情報は、第２データベース６０やメッセージ出力サーバ１３０などに格納されていてもよい。
【００８５】
メッセージ出力サーバ１３０は、ｐｉｎｇコマンドなどを用いて、要求元が実際に存在することを確認し、また、存在する場合はその状態を確認してから、要求元に対してメッセージを出力してもよい。メッセージ出力サーバ１３０から要求元へ送信されるメッセージは、アクセス先のコンテンツごとに、カテゴリごとに、又は、ホワイトリスト１６２やブラックリスト１６３などのデータベースごとに、設定可能としてもよい。例えば、アクセスが禁止されたときに表示される画面をカテゴリごとにカスタマイズしてメッセージ出力サーバ１３０に登録できるようにしてもよい。また、上述したように、正当なサイトがハッキングされてアクセスを一時的に制限しているときに、正規サイトが一時的に閲覧不可能になっていることをユーザに告知するメッセージや、正当なサイトのミラーサイトへ誘導するメッセージを出力するようにしてもよい。
【００８６】
メッセージ出力サーバ１３０は、メッセージの送出履歴を管理し、そのメッセージ送出履歴情報を各種制御に利用してもよい。例えば、同一の要求元から短時間に多数のアクセス要求が発信されている場合、サービス妨害攻撃（Denial of Service attack：ＤｏＳアタック）などである可能性があるので、その要求元をアクセス拒否リストに登録し、その要求元からのパケットを要求先へ送らずに遮断してもよい。また、メッセージの送出履歴を統計処理し、ウェブサイトの管理者などへ提供してもよい。これにより、ユーザのアクセス履歴をマーケティングに利用したり、通信状況の制御などに活用したりすることができる。また、状況に応じてメッセージの送出回数を少なくしたり、逆に増やしたりする事もできる。たとえば特定のＩＰ番号からアクセス要求が発信された場合に、その１通のリクエストメッセージに対して、何倍ものメッセージを送ることもできる。
【００８７】
以上の構成及び動作により、不適切なコンテンツに対するアクセスを禁止することができる。また、検索回路３０がＦＰＧＡなどにより構成された専用のハードウェア回路であるから、上述したように高速な検索処理が実現され、トラフィックに与える影響を最小限に抑えつつ、フィルタリング処理を実行することができる。インターネットサービスプロバイダなどが、このようなフィルタリングのサービスを提供することにより、付加価値が高まり、より多くのユーザを集めることができる。
【００８８】
図２８は、通信制御システムの配置例を示す。本図は、ユーザ端末の一例として、携帯電話端末２６０が用いられる例を示している。携帯電話端末２６０から発せられるアクセス要求は、キャリアが設置した基地局装置２６２、局舎に設けられた制御局装置２６４を介してインターネット２００へ送出され、インターネット２００を介してウェブサーバ２５０へ到達する。本図の例では、基地局装置２６２に通信制御システム１００が設けられる。この場合、第１データベース５０を基地局装置２６２ごとに変えて、基地局装置２６２がカバーする領域ごとに異なるフィルタリングを行ってもよい。基地局装置２６２に通信制御システム１００を設ける場合、必要最低限の機能のみを搭載することにより通信制御システム１００の小型化を図ってもよい。例えば、接続管理サーバ１２０、ログ管理サーバ１４０などの構成を省略してもよい。基地局装置２６２に通信制御システム１００を設けることにより、フィルタリング処理が分散されるので、小規模な通信制御システム１００を設ければよく、装置を小型化・軽量化できるとともに、コストを低減することができる。また、携帯電話端末２６０から発せられたアクセス要求を制御局装置２６４へ送出する前にフィルタリングすることができるので、通信量を低減することができる。また、携帯電話端末２６０と直接通信する基地局装置２６２においてパケットをフィルタリングするので、より確実にフィルタリングを実行することができる。
【００８９】
図２９は、通信制御システムの別の配置例を示す。本図も、携帯電話端末２６０が用いられる例を示しているが、図２８に示した例とは異なり、制御局装置２６４に通信制御システム１００が設けられる。局舎に設けられた制御局装置２６４において一元的にフィルタリングを実行するので、システムのメンテナンスが容易である。
【００９０】
図３０は、通信制御システムの更に別の配置例を示す。本図でも、ユーザ端末の一例として、携帯電話端末２６０が用いられる。携帯電話端末２６０から発せられるアクセス要求は、無線ＬＡＮのアクセスポイント２７２、ルータ装置２７４を介してインターネット２００へ送出され、インターネット２００を介してウェブサーバ２５０へ到達する。本図の例では、アクセスポイント２７２に通信制御システム１００が設けられる。図２８に示した例と同様に、携帯電話端末２６０に近い装置でパケットをフィルタリングすることにより、無駄な通信を削減することができる。また、例えば企業内の無線ＬＡＮの場合、従業員が勤務時間中に不適切なウェブサイトにアクセスすることができないようにすることができる。
【００９１】
図３１は、通信制御システムの更に別の配置例を示す。本図も、無線ＬＡＮの例を示しているが、図３０とは異なり、ルータ装置２７４に通信制御システム１００が設けられる。ルータ装置２７４に通信制御システム１００を設けることにより、通信制御システム１００の設置数を低減することができ、メンテナンスも容易となる。
【００９２】
図３２及び図３３は、通信制御システムの更に別の配置例を示す。本図では、ユーザ端末の一例として、パーソナルコンピュータ（ＰＣ）２９０が用いられる例を示している。ＰＣ２９０から発せられるアクセス要求は、ＬＡＮのルータ装置２８２及び２８４を介してインターネット２００へ送出され、インターネット２００を介してウェブサーバ２５０へ到達する。図３２は、ルータ装置２８２に通信制御システム１００が設けられる例を示しており、図３３は、ルータ装置２８４に通信制御システム１００が設けられる例を示している。
【００９３】
上記の例では、ネットワークを構成する装置に通信制御システム１００を組み込む例を示したが、通信制御システム１００は、これらの装置とは別に、ネットワークの任意の位置に設けられてもよい。
【００９４】
これらの配置例において、基地局装置２６２やアクセスポイント２７２のアンテナ、制御局装置２６４やルータ装置２７４、２８２、又は２８４のネットワークインタフェースなどの受信部により受信された通信データは、アクセス制御の要否を判定することなく、パケット処理回路２０により処理されてもよい。すなわち、通信制御システム１００は、受信した通信データのアクセス制御の要否に関わらず、通過する全てのパケットを捕捉してフィルタリングしてもよい。また、通信制御システム１００は、アクセスを禁止すると判断したパケットを破棄してもよいし、ログを記録するだけでネットワークへ再送出してもよい。
【００９５】
（実施の形態１）
つづいて、上述した通信制御装置１０を利用した新しい通信制御技術について説明する。
【００９６】
図３４は、実施の形態に係る通信制御装置の構成を示す。本実施の形態の通信制御装置１０においては、図３に示した前提技術の通信制御装置１０の構成から、ＭＡＣ処理部６ａ及び６ｂが省略されている。その他の構成及び動作は、前提技術と同様である。
【００９７】
通信制御装置１０は、ＯＳＩ参照モデルの第１層である物理層のプロトコルを実装したＰＨＹ処理部５ａにより、ケーブルなどのネットワーク媒体から受信した電気信号をデータ列に変換すると、上位のプロトコル、すなわち、第２層のデータリンク層、第３層のネットワーク層、第４層のトランスポート層、第５層のセッション層、第６層のプレゼンテーション層、及び第７層のアプリケーション層に関する処理を省略して、データ列をパケット処理回路２０の検索回路３０へ直接供給する。つまり、受信した通信データの宛先のＭＡＣアドレスやＩＰアドレスの確認など、通信データの着信に必要な処理を省略し、全ての通信データを取り込んで検索回路３０へ供給する。
【００９８】
検索回路３０は、ＰＨＹ処理部５ａが受信したフレーム内の任意のデータにアクセスして、ビットマッチングにより検索を実行する。パケット処理回路２０は、通信データに対して、複製、転送、追加、削除、変更、圧縮、暗号化、復号化など、任意の編集処理を行って、通信データを出力する。パケット処理回路２０から出力された通信データは、宛先のＭＡＣアドレスを変更せずに、ＰＨＹ処理部５ｂからネットワークへ再送出される。
【００９９】
図３５は、実施の形態に係る通信制御技術を説明するための概念図である。通信制御装置１０は、通信装置５０２と通信装置５０４との間で送受信されている通信データを抜き出して、各種の通信制御を行う。通信装置５０２が通信装置５０４へ送信した通信データには、データリンク層における宛先のＭＡＣアドレスとして通信装置５０４のＭＡＣアドレスが設定されているが、通信制御装置１０は、宛先のＭＡＣアドレスを確認せずに通信データを取り込むので、通信装置５０４に宛てた通信データも取り込んで制御することができる。また、通信制御装置１０は、宛先のＭＡＣアドレスを変更せずにネットワークへ再送出するので、通信制御装置１０により処理された通信データは、そのまま元の宛先である通信装置５０４へ送信される。したがって、通信装置５０２及び５０４は、通信制御装置１０の存在を全く意識することなく、通常のプロトコルを用いて通信を行うことができる。図３５において、実際には、実線で示した経路により通信データが送受信されるが、通信装置５０２及び５０４からは、点線で示したように、お互いの間で直接通信を行っているように見えている。通信装置５０４から通信装置５０２へ送信される通信データについても同様である。
【０１００】
このように、本実施の形態の通信制御装置１０は、ＭＡＣアドレスやＩＰアドレスを確認せずに、ネットワークを流れる通信データを抜き出して制御し、通信制御装置１０にＭＡＣアドレスやＩＰアドレスを割り当てる必要がない。また、宛先のＭＡＣアドレスを書き換えずに、元の宛先のＭＡＣアドレスへ通信データを再送出するので、ネットワークの設定を複雑に変更することなく通信制御装置１０をネットワークへ導入することができる。
【０１０１】
本実施の形態の通信制御装置１０では、ネットワークにおける通信速度と同等の速度で通信制御処理を完了できるように、検索回路３０の比較器の個数やメモリの容量などを設計している。したがって、受信したデータ列を受信バッファにいったん蓄積し、読み出しながら処理を行うのではなく、受信したデータ列を受信バッファに蓄積させず、そのまま即座に検索回路へ供給し、処理を行うことができる。
【０１０２】
従来の通信制御装置は、例えば、プロトコル番号を参照してプロトコルの種別を判断し、プロトコルに応じた処理を行うが、本実施の形態の通信制御装置１０は、プロトコル処理を行わずに、フレーム内のデータに直接アクセスして通信制御を行うので、プロトコルに依存しない汎用的な通信制御を行うことができる。したがって、少量多品種の通信制御装置として利用可能である。
【０１０３】
特定の通信装置に対して、その通信装置の機械的限界まで通信データを送りつけることにより、通信装置を動作停止に追い込む攻撃があるが、本実施の形態の通信制御装置１０は、アドレスを有しないので、攻撃者は通信制御装置１０に対して明示的に通信データを送りつけることができない。また、通信制御装置１０以外の通信装置に対して攻撃がなされた場合であっても、通信制御装置１０は通過中の通信データを抜き出して制御することができるので、その通信装置へ到達する前に、攻撃を意図した通信データを検知して削除することができる。また、通信経路の途中のルータのメモリの故障や、プログラムのバグなどにより通信データが破壊された場合であっても、通信制御装置１０により検知して削除することができるので、ネットワークや通信装置の負荷を低減させることができる。
【０１０４】
通信制御に必要な情報を収集するなどの目的で、他の通信装置との間で通信を行う必要がある場合には、仮想的なＩＰアドレスを用いて通信を行ってもよい。例えば、通信装置との間で通信を行う際に、通信制御装置１０よりも下流のネットワークに接続されている通信装置のＩＰアドレスを仮想的に通信制御装置１０に割り当てて通信を行う。
【０１０５】
図３６は、実施の形態に係る通信制御装置の別の構成例を示す。図３６に示した通信制御装置１０は、図３４に示した通信制御装置１０の構成に加えて、判定部５１０及び仮想通信装置５２０を更に備える。その他の構成及び動作は、図３４に示した通信制御装置１０と同様である。
【０１０６】
仮想通信装置５２０は、通信制御装置１０における通信制御に必要な情報を、他の通信装置との間で送受信する。例えば、通信制御装置１０をルータ装置として機能させる場合、仮想通信装置５２０は、ＢＧＰ４（Border Gateway Protocol 4）などのプロトコルにしたがって、他のルータ装置との間で経路情報をやり取りする。このとき、仮想通信装置５２０は、ＢＧＰ４による通信を行う相手のルータ装置の方向を上流とすると、自装置よりも下流のネットワークに接続された他の通信装置に割り当てられたＩＰアドレスを取得し、そのＩＰアドレスを仮想通信装置５２０の仮想ＩＰアドレスとして判定部５１０へ通知する。また、仮想通信装置５２０は、仮想ＩＰアドレスを用いて他の装置との間で通信を行うプロトコルのプロトコル番号を判定部５１０へ通知する。このように、仮想通信装置５２０は、下流の通信装置から取得したＩＰアドレスを仮想的に自装置のＩＰアドレスに設定して、他の装置との間で通信を行う。
【０１０７】
判定部５１０は、ＰＨＹ処理部５ａが受信した通信データのうち、送信先のＩＰアドレスが、仮想通信装置５２０から通知された仮想ＩＰアドレスに一致し、かつ、プロトコル番号が、仮想通信装置５２０から通知されたプロトコル番号に一致する通信データを、パケット処理回路２０へ供給せずに、仮想通信装置５２０へ送る。仮想通信装置５２０は、判定部５１０から送られた通信データを処理する。例えば、他のルータ装置から送信された経路情報を取得してルーティングテーブルを再計算し、パケット処理回路２０へ投入する。仮想通信装置５２０は、他の通信装置へ通信データを送信する場合は、送信元のＩＰアドレスに仮想ＩＰアドレスを設定し、ＰＨＹ処理部５ｂを介してネットワークへ送出する。
【０１０８】
図３７は、実施の形態に係る通信制御技術を説明するための概念図である。通信制御装置１０は、通信装置５０２が通信装置５０４へ送信した通信データのうち、実際には仮想通信装置５２０が受信すべき通信データを抜き出して、仮想通信装置５２０へ送る。また、仮想通信装置５２０は、通信装置５０２に通信データを送信するときに、送信元のＩＰアドレスとして、通信装置５０４のＩＰアドレスを設定する。図３７において、実際には、実線で示した経路により通信データが送受信されるが、通信装置５０２は、点線で示したように、通信装置５０４との間で通信を行っているように見えている。これにより、実際にはＩＰアドレスを有しない仮想通信装置５２０が、他の通信装置５０２との間で通信を行うことが可能となる。
【０１０９】
（実施の形態２）
つづいて、上述した通信制御装置１０において実行すべき処理を高速に判定する技術について説明する。
【０１１０】
図３８は、実施の形態に係るパケット処理回路２０の構成を示す。図３８に示したパケット処理回路２０は、本発明に係る判定装置の一例であり、図４に示した前提技術に係るパケット処理回路２０の構成に加えて、比較対象抽出回路３００を更に備える。その他の構成及び動作は、前提技術と同様である。
【０１１１】
図３９は、通信制御装置１０が取得した通信データの例を示す。通信データ３１０には、通信プロトコルの種別に応じたパケットレイアウトでデータが格納されている。図３９では、説明の便宜のため、データエリアに番号を付している。例えば、データエリアが「１」であるデータを、「データ１」と表記する。
【０１１２】
図４０は、通信制御装置１０において実行すべき処理を判定するためのフローチャートの例を示す。図４０の例では、通信制御装置１０が取得した通信データ３１０のうち、データ１、データ５、及びデータ７を判定基準として用い、それらのデータをもとに複数回の条件判断分岐を経て、実行すべき処理が判定されている。このフローチャートにしたがって一連の処理を実行するためには、２〜３回の条件判断分岐が必要となる。
【０１１３】
図４１は、本実施の形態に係る判定方法を説明するための図である。比較対象抽出回路３００は、通信制御装置１０が取得した通信データ３１０の中から、実行すべき処理を判定するために用いられる複数の判定用データを抽出し、それらを連結することにより比較対象データ３２０を生成する。図４０に示したフローチャートの例では、通信データ３１０の中から、データ１の「Ａ」、データ５の「Ｅ」、及びデータ７の「Ｆ」を抽出し、それらを連結することにより、比較対象データ３２０として「ＡＥＦ」を生成する。比較対象抽出回路３００は、生成した比較対象データ３２０をインデックス回路３４及びバイナリサーチ回路３６へ供給する。比較対象抽出回路３００は、通信データ３１０の中から判定用データを抽出する際に、位置検出回路３２を用いてその判定用データの位置を検出してもよい。
【０１１４】
図４２は、本実施の形態に係る第１データベース５０及び第２データベース６０の内部データの例を示す。第１データベース５０には、データ１、データ５、データ７のそれぞれが取り得る値を連結した基準データが格納されている。また、第２データベース６０には、データ１、データ５、データ７の値の組合せに対して、図４０に示したフローチャートにしたがって複数回の条件判断分岐を経て判定された実行すべき処理の内容が基準データに対応づけて格納されている。例えば、データ１が「Ａ」、データ５が「Ｅ」、データ７が「Ｆ」という組合せであれば、基準データは「ＡＥＦ」となり、図４０のフローチャートから分かるように、実行すべき処理の内容は「処理ａ＋処理ｅ」となる。バイナリサーチ回路３６は、比較対象抽出回路３００により生成された比較対象データ３２０を第１データベース５０から検索することにより、複数回の条件判断分岐をまとめて実行し、比較対象データに合致する基準データに対応づけられた実行すべき処理の内容を出力する。処理実行回路４０は、検索回路３０により判定された処理の内容を実行する。
【０１１５】
このように、予め通信データの中から判定の基準となるデータを抽出し、それらを連結して比較対象データを生成するとともに、生成される比較対象データの答えを予想したデータベースを用意しておくことにより、実行すべき処理を判定するための複数の条件判断分岐を逐次実行するのではなく、まとめて同時に実行することができる。これにより、実行すべき処理を高速に判定することができる。
【０１１６】
また、複数の条件判断分岐を含むロジックをデータで表現することができるので、ロジックを変更する際に、ソフトウェア全体を変更する代わりに、第１データベース５０又は第２データベース６０を変更すればよい。これにより、工数を低減することができる。
【０１１７】
図４３は、本実施の形態に係る第１データベース５０及び第２データベース６０の内部データの別の例を示す。図４３の例では、基準データに含まれる複数の判定用データの値の組合せにおいて、複数回の条件判断分岐に用いられない判定用データがある場合には、その判定用データはマスクされている。例えば、図４０に示したフローチャートにおいて、データ１が「Ａ」であれば、データ５に関する条件判断分岐は実行されないので、データ５がいかなるデータであっても同じ結果となる。したがって、データ１として「Ａ」を含む基準データには、データ５としてワイルドカードが格納されている。
【０１１８】
データをマスクして比較するには、前提技術において説明したように、比較対象データと基準データの双方のマスクする位置のデータを所定のデータ、例えば「０」に置換してから比較回路へ入力してもよいし、マスクする位置のデータを比較する比較回路に、両者が一致した旨の出力信号を出力させてもよいし、マスクする位置のデータの比較結果として、比較回路を介さずに両者が一致した旨の出力信号を供給してもよいし、それぞれの比較回路の出力信号を取得して比較結果を判定する回路において、マスクする位置のデータの比較結果を無視してもよい。
【０１１９】
このような構成を採用することにより、第１データベース５０の容量を低減することができるとともに、比較処理の効率を向上させることができる。
【０１２０】
図４４は、本実施の形態に係る判定方法の別の例を説明するための図である。比較対象抽出回路３００は、通信データ３１０の中から、条件判断分岐のために用いられる複数の判定用データを含むように予め定められた所定位置から所定長の比較対象データを抽出する。図４４の例では、判定用データであるデータ１、データ５、及びデータ７を含むように、データ１からデータ７までのデータが比較対象データとして抽出される。この場合、第１データベース５０には、図４５に示すように、比較対象データと同じデータ長の基準データが格納される。
【０１２１】
図４５は、本実施の形態に係る第１データベース５０及び第２データベース６０の内部データの別の例を示す。図４５の例では、判定用データとして用いられないデータも含んだ形式で基準データが格納されている。第１データベース５０の基準データは、比較対象データとして抽出されるデータ１からデータ７までのデータと同じデータ長を有し、それぞれの判定用データの位置に、判定用データのそれぞれが取り得る値が格納されている。判定用データ以外の位置には、ワイルドカードが格納されている。
【０１２２】
インデックス回路３４及びバイナリサーチ回路３６は、複数の判定用データ以外のデータをマスクして比較対象データをデータベースから検索する。これにより、複数回の条件判断分岐をまとめて実行し、比較対象データに合致する前記基準データに対応づけられた実行すべき処理の内容を高速に判定することができる。
【０１２３】
図４６は、実施の形態に係るパケット処理回路２０の別の構成例を示す。図４６に示したパケット処理回路２０は、図３８に示したパケット処理回路２０の構成に加えて、比較対象設定回路３３０を更に備え、複数の第１データベース５０ａ及び５０ｂを備える。比較対象設定回路３３０は、比較対象抽出回路３００が抽出すべきデータを設定する。比較対象抽出回路３００は、比較対象設定回路３３０により設定されたデータを抽出して比較対象データを生成する。その他の構成及び動作は、図３８に示したパケット処理回路２０と同様である。
【０１２４】
図４７は、本実施の形態に係る判定方法の別の例を説明するための図である。図４７の例では、比較対象設定回路３３０により、データ１、データ５、及びデータ７に代えて、データ３、データ６、及びデータ１０を抽出するように設定されている。比較対象抽出回路３００は、この設定にしたがって、通信データ３１０の中からデータ３、データ６、及びデータ１０を抽出して比較対象データ３２０を生成する。これにより、比較対象データとして抽出する判定用データを任意に設定することができる。設定の変更に合わせて、第１データベース５０の基準データを切り替えることで、実行すべき処理を判定するためのロジックを容易に変更することができる。
【０１２５】
比較対象設定回路３３０は、比較対象抽出回路３００が抽出すべきデータを動的に切り替えてもよい。この場合、比較対象設定回路３３０は、適用すべき第１データベース５０を動的に切り替えてもよい。これにより、比較対象データと基準データの双方を動的に切り替え、異なるロジックで実行すべき処理を決定することができるので、例えば、１台の通信制御装置１０により異なる複数の通信プロトコルの処理を実行したり、複数のユーザの設定に応じたフィルタリング処理を実行したりすることができる。
【０１２６】
図４８は、実施の形態に係るパケット処理回路２０の別の構成例を示す。図４８に示したパケット処理回路２０は、図３８に示したパケット処理回路２０の構成に加えて、報知回路３４０を更に備える。報知回路３４０は、比較対象データが第１データベース５０の基準データのいずれにも合致しなかった場合に、その旨を外部の装置へ報知する。その他の構成及び動作は、図３８に示したパケット処理回路２０と同様である。
【０１２７】
比較対象データが第１データベース５０の基準データのいずれにも合致しなかった場合、実行すべき処理を判定するためのロジックに漏れがあることになる。このとき、報知回路３４０にその旨を報知させることにより、第１データベース５０及び第２データベース６０を適切に修正し、ロジックの漏れを無くすことができる。図４８の例では、報知回路３４０は、第１データベース５０の基準データのいずれにも合致しなかった比較対象データをデータベースサーバ１５０へ報知する。データベースサーバ１５０は、オペレータなどから、この比較対象データに対して実行すべき処理の内容を受け付け、第１データベース５０に、この比較対象データと同じ基準データのレコードを追加するとともに、第２データベース６０に、受け付けた処理の内容をこの基準データに対応づけて格納する。データベースサーバ１５０は、修正済みの第１データベース５０及び第２データベース６０を通信制御装置１０へ再投入し、データベースの修正を反映させる。
【０１２８】
（実施の形態３）
つづいて、上述した通信制御装置１０の異常を検知する技術について説明する。
【０１２９】
図４９は、実施の形態に係る検知回路の構成を示す。検知回路２０１は、通信ケーブルを通信制御装置に接続するためのコネクタが抜けたり接触不良を生じたりするなどの物理的な異常により通信データを受信できない状態に陥っていることを検知する。近年、インターネットにおける通信量が飛躍的に増大しているとともに、ダイナミック・ルーティングを実現するためのＲＩＰ（Routing Information Protocol）などのプロトコルによりルータ間で常時通信が行われていたり、ポーリングなどによる通信が行われていることが多いので、通信制御装置が通信データを長時間受信しない状況になることはほとんどない。したがって、検知回路は、所定時間以上通信データを受信しなかったことを検知して、コネクタが抜けている旨の警告を発する。
【０１３０】
検知回路２０１は、入力部２０２、カウンタ回路２０４、及び報知部２０６を含む。入力部２０２は、通信ケーブルから着信した通信データを取得し、通信制御部２へ送る。入力部２０２は、通信データを取得したときに、カウンタ回路２０４へリセット信号を送る。入力部２０２は、ディジタル形式で取得した通信データ自体をリセット信号としてカウンタ回路２０４へ送ってもよい。この場合、「１」の通信データを取得するたびにカウンタ回路２０４がリセットされる。また、入力部２０２は、通信データの波形の立ち上がり又は立ち下がりに同期してリセット信号をカウンタ回路２０４へ送ってもよい。要は、入力部２０２が取得した通信データからカウンタ回路２０４のリセット信号が生成されてカウンタ回路２０４へ入力されるようになっており、入力部２０２が通信データを取得している間はカウンタ回路２０４がリセットされ続けるように構成されていればよい。報知部２０６は、カウンタ回路２０４のカウンタ値が所定値を超えたときに、その旨を報知する。以上のような構成により、簡易な構成で、通信制御装置１０の物理的な異常を的確に検知して報知することができるので、通信制御の安全性を高めることができる。また、主となる通信制御装置１０の構成とは別に、検知回路を追加することもできる。
【０１３１】
例えば、従来の公衆交換電話網では、交換機と加入者電話端末が電気的に接続され、閉じた回路を形成していたので、交換機のコネクタが外れてしまうなどの物理的な異常を容易に検知することができたが、ＩＰ電話網における交換機として前提技術の通信制御装置１０を利用する場合には、通信制御装置１０と端末との間での電気的な接続はないので、本実施の形態の技術が特に有効である。
【０１３２】
（実施の形態４）
つづいて、上述した通信制御装置１０において、複数の種別の通信データを制御する技術について説明する。例えば、ＩＰｖ４におけるＩＰアドレスの枯渇により、より広大なアドレス空間が用意されたＩＰｖ６への移行が進行しているが、移行の過渡期においては、ＩＰｖ４とＩＰｖ６の双方のパケットが通信されるので、双方のパケットを適切に制御する技術が求められる。本実施の形態では、複数の種別の通信データのうち、通信データの種別に応じて、検索対象となるデータのみを残して他のデータをマスクすることにより、検索対象となるデータを切り替える技術について説明する。
【０１３３】
図５０は、実施の形態に係る通信制御装置のパケット処理回路の構成を示す。図５０に示したパケット処理回路２０は、図１３に示した前提技術の通信制御装置１０のパケット処理回路２０の構成に加えて、マスク回路３８０及びワークメモリ３８２を更に備える。その他の構成及び動作は、前提技術と同様である。
【０１３４】
本実施の形態では、通信制御装置１０が取得したＩＰパケットの送信元ＩＰアドレスを、正当なユーザの端末のＩＰアドレスを格納したユーザデータベース５７から検索することにより、送信元のユーザを認証する例について説明する。
【０１３５】
本実施の形態では、位置検出回路３２は、通信データの所定位置から所定長のデータを比較対象データとして抽出する抽出部として機能する。位置検出回路３２が比較対象データを抽出する通信データの位置とデータ長は、通信データの種別によらず、検索回路３０において検索対象となる検索対象データが含まれるように設定される。本実施の形態の例では、ＩＰｖ４パケットにおいても、ＩＰｖ６パケットにおいても、検索対象となる送信元ＩＰアドレスが含まれるように、比較対象データが抽出される。
【０１３６】
ＩＰｖ６においては、ＩＰヘッダの先頭から６５ビット目以降に、１２８ビット分の「送信元ＩＰアドレス（Source Address）」が格納されている。ＩＰｖ４においては、パケットヘッダの先頭から６５ビット目以降には、８ビットの「生存時間（Time to Live）」、８ビットの「プロトコル（Protocol）」、１６ビットの「ヘッダチェックサム（Header Checksum）」、３２ビットの「送信元ＩＰアドレス（Source Address）」、３２ビットの「送信先ＩＰアドレス（Destination Address）」、可変長の「オプション（Option）」及び「パディング（Padding）」が格納されている。したがって、位置検出回路３２は、いずれのパケットであっても検索対象データとなる送信元ＩＰアドレスが含まれるように、ＩＰヘッダの６５ビット目から１２８ビット分を比較対象データとして抽出し、マスク回路３８０へ送る。
【０１３７】
この場合、ＩＰｖ６パケットであれば、位置検出回路３２は、ちょうど「送信元ＩＰアドレス」を比較対象データとして取り出すことになるが、ＩＰｖ４パケットであれば、「送信元ＩＰアドレス」以外のデータも含んだ形で比較対象データが取り出される。位置検出回路３２は、マスク回路３８０の動作のために、ＩＰヘッダに格納されているＩＰのバージョン番号をマスク回路３８０へ通知する。
【０１３８】
マスク回路３８０は、取得した通信データの種別に応じて、位置検出回路３２により抽出された比較対象データのうち、検索回路３０が検索対象とする検索対象データ以外のデータをマスクして検索回路３０へ供給する。マスク回路３８０は、位置検出回路３２から通知されるＩＰヘッダの「バージョン（Version）」を参照し、バージョンが「６」であれば、取り出された比較対象データをそのままインデックス回路３４へ送る。バージョンが「４」であれば、マスク回路３８０は、取り出された比較対象データをいったんワークメモリ３８２へ格納し、比較対象データのうち、「送信元ＩＰアドレス」以外のデータをマスクする。すなわち、マスク回路３８０は、比較対象データの先頭から３２ビット分と、６５ビット目から６４ビット分をマスクする。これにより、ＩＰｖ４パケットから生成された比較対象データは、検索対象となる「送信元ＩＰアドレス」のみを残してマスクされる。マスク回路３８０は、マスクした比較対象データをインデックス回路３４へ送る。
【０１３９】
図５１は、ユーザデータベース５７の内部データの例を示す。ユーザデータベース５７は、通信制御装置１０が通信データの送信元のユーザを認証するために、ユーザの端末のＩＰアドレスのリストを基準データとして格納している。ユーザデータベース５７には、ＩＰｖ６のＩＰアドレス及びＩＰｖ４のＩＰアドレスが格納されているが、いずれの基準データも、位置検出回路３２において抽出される比較対象データと同じデータ長を有しており、その基準データが比較されるべき通信データの種別に応じて、比較対象データにおける検索対象データの位置以外の位置のデータがマスクされている。すなわち、ＩＰｖ６の１２８ビットのＩＰアドレスは、そのままの形で格納されるが、ＩＰｖ４の３２ビットのＩＰアドレスは、ＩＰｖ６のＩＰアドレスのビット長と同じ１２８ビットのビット列のうち、先頭から３３ビット目から６４ビット目までに格納され、残りのビットには「０」がセットされている。
【０１４０】
マスク回路３８０は、ユーザデータベース５７に格納された基準データのうち、比較対象データにおける検索対象データの位置以外の位置に格納されているデータと同じデータを、比較対象データのうち検索対象データ以外の位置に格納する。したがって、本実施の形態の例では、マスク回路３８０は、比較対象データのマスクすべき位置に「０」を格納する。マスクすべき位置に格納するデータは、ユーザデータベース５７の基準データと共通に使用されていれば任意のデータであってよい。
【０１４１】
インデックス回路３４及びバイナリサーチ回路３６は、前提技術で説明した方法と同様に、マスク回路３８０から供給された比較対象データをユーザデータベース５７から検索する。このように、比較対象データにおける検索対象データの位置が、通信データの種別に応じて異なる場合であっても、第１データベース５０に格納される基準データと、位置検出回路３２により抽出される比較対象データの双方を、同じ位置に検索対象データが含まれるようにマスクしているので、同じインデックス回路３４及びバイナリサーチ回路３６を用いて検索を実行することができる。したがって、簡易な構成により、通信データのうち所望のデータを検索対象とすることができる。
【０１４２】
処理実行回路４０は、マスク回路３８０がマスクする前の通信データを必要とする場合は、ワークメモリ３８２からマスクされていない元の通信データを読み出して必要な制御を行う。このように、本実施の形態の技術によれば、複数の種別の通信データを適切に制御することができる。
【０１４３】
マスク回路３８０は、比較対象データのうち、検索対象データ以外の位置に、ワイルドカードとして機能するデータを格納してもよい。インデックス回路３４及びバイナリサーチ回路３６の比較器は、ワイルドカードとして機能するデータが入力されると、両者が一致する旨の信号を出力する。ワイルドカードが格納された位置のデータを比較する比較器には、データが入力されるまでもなく、両者が一致する旨の信号が出力されたものとして扱われてもよい。この場合、ユーザデータベース５７の基準データのうち、マスクすべき位置には、任意のデータが格納されてもよい。
【０１４４】
ユーザデータベース５７の基準データのうち、比較対象データにおける検索対象データの位置以外の位置に、ワイルドカードとして機能するデータを格納してもよい。この場合、マスク回路３８０及びワークメモリ３８２は設けられなくてもよい。
【０１４５】
処理実行回路４０は、認証に成功したユーザのＩＰアドレスを変換してもよい。例えば、第１データベース５０、第２データベース６０、又は他の通信機などにおいて、ＩＰｖ４のＩＰアドレスを用いてユーザが識別される場合には、処理実行回路４０は、ＩＰｖ４のＩＰアドレスはそのままとし、ＩＰｖ６のＩＰアドレスをＩＰｖ４のＩＰアドレスへ変換することにより、ＩＰｖ４に統一してもよい。逆に、ＩＰｖ４のＩＰアドレスをＩＰｖ６のＩＰアドレスに変換することにより、ＩＰｖ６に変換してもよい。また、第１データベース５０、第２データベース６０、又は他の通信機などにおいて、ユーザのＩＤを用いてユーザが識別される場合には、処理実行回路４０は、ＩＰｖ４及びＩＰｖ６のＩＰアドレスをユーザＩＤに変換してもよい。
【０１４６】
（実施の形態５）
図５２は、実施の形態に係る通信管理システムの構成を示す。通信管理システム６００は、パケットフィルタリングなどの機能を有する通信制御装置１０を用いて、ボットを操作するための通信など、不適切な通信を検知して遮断するための処理を行う。
【０１４７】
前述したように、ボットは、ユーザ端末６１０に感染して被害をもたらす。ボットが感染したユーザ端末（以下、「ボット６２０」という）は、攻撃者の意のままに操られ、攻撃者の端末として振る舞う。したがって、ボット６２０を操作する通信や、ボット６２０が他のユーザ端末６１０を攻撃する通信を検知して遮断することが望まれる。
【０１４８】
しかし、ソースコードが公開されたボットをもとに、新しい亜種が次々と登場しているので、ボット６２０や、複数のボット６２０により構成されるボットネット６２２に対して送受信される不適切な通信データの全てを確実に検知することは難しい。
【０１４９】
したがって、本実施の形態では、発想を逆転させ、正常な通信のシグネチャリストを作成して正常な通信を通過させる一方、正常ではない通信を逐一エスカレーションして解析し、正常な通信のシグネチャリストと異常な通信のシグネチャリストを随時更新していく技術を提案する。この技術により、ボットネットによる被害が軽減されることが期待されるため、本発明の社会的な貢献度は非常に高いと言える。
【０１５０】
通信管理システム６００において、ユーザ端末６１０とインターネット６９０の間に通信制御装置１０が設けられており、インターネット６９０を介して送受信される通信データが制御される。通信制御装置１０は、正常でない通信データを検知すると、運用者端末６４０へ通知する。運用者端末６４０において、該当する通信データが解析され、その通信データが正常であるか否かが判定される。正常であると判定された通信データのシグネチャは通信制御装置１０に反映され、以降、この通信データと同種の通信データは送受信を許可される。異常であると判定された通信データのシグネチャも通信制御装置１０に反映され、以降、この通信データと同種の通信データは送受信を禁止され遮断される。このようにして、通信制御装置１０は、ボット６２０とボットネット６２２との間の通信や、インターネット６９０を介してボット６２０を操作するための通信などを検知して遮断する。
【０１５１】
本実施の形態の通信制御装置１０には、第１データベース５０として、正常シグネチャリスト６３２、異常シグネチャリスト６３４、及びルールデータベース６３６が設けられている。正常シグネチャリスト６３２は、正常な通信として通過させるべき通信データのシグネチャのリストを格納する。異常シグネチャリスト６３４は、異常な通信として遮断すべき通信データのシグネチャのリストを格納する。ルールデータベース６３６は、解析を要する通信データを抽出するためのルールを格納する。
【０１５２】
第１データベース５０が３つ設けられているのに合わせて、検索回路３０も３つ設けられている。検索回路３０Ａは、取得した通信データが正常シグネチャリスト６３２に格納された正常な通信のシグネチャに合致するか否かを検索する第１の検索部として機能する。検索回路３０Ｂは、取得した通信データが異常シグネチャリスト６３４に格納された異常な通信のシグネチャに合致するか否かを検索する第２の検索部として機能する。検索回路３０Ｃは、取得した通信データがルールデータベース６３６に格納されたルールに合致するか否かを検索する第３の検索部として機能する。これらの検索回路３０のうち少なくとも２つ、好ましくは全ての検索回路３０が、同時に並列して検索を実行する。これにより、スループットを低下させることなく、正常な通信、異常な通信、抽出すべき通信を高速に検知することができる。通信データを３つの検索回路３０へ同時に供給するために、図２２に示した技術を利用してもよい。
【０１５３】
第２データベース６０には、正常シグネチャリスト６３２に格納された正常な通信のシグネチャに合致しない通信データを検知したときに、警告を発する旨の処理内容が格納されている。これに応じて、処理実行回路４０は、検索回路３０Ａが正常シグネチャリスト６３２に格納されたシグネチャに合致しない通信データを検知すると、警告を発して運用者端末６４０へ通知する警告部として機能する。
【０１５４】
また、第２データベース６０には、異常シグネチャリスト６３４に格納された遮断すべき通信のシグネチャに合致する通信データを検知したときに、その通信データを遮断する旨の処理内容が格納されている。これに応じて、処理実行回路４０は、検索回路３０Ｂが異常シグネチャリスト６３４に格納されたシグネチャに合致する通信データを検知すると、その通信データを破棄して遮断する遮断部として機能する。
【０１５５】
運用者端末６４０では、警告取得部６４２が通信制御装置１０から警告を取得すると、その旨を表示又は音声などにより運用者へ報知する。このとき、通信データ取得部６４４は、警告を発せられた通信データを通信制御装置１０から取得する。解析部６４６は、警告を発せられた、正常な通信のシグネチャに合致しない通信データを解析し、正常な通信であるか否かを判定して判定結果取得部６４８へ伝達する。判定結果取得部６４８は、通信データを解析した運用者から判定結果を取得してもよい。また、運用者からエスカレーションされたセキュリティベンダーなどから判定結果を取得してもよい。
【０１５６】
判定結果取得部６４８は、警告を発せられた通信データが正常な通信データであるとの判定結果を取得したときに、正常シグネチャリスト６６２にその通信データのシグネチャを追加するよう正常シグネチャリスト更新部６５２へ指示する。正常シグネチャリスト更新部６５２は、正常シグネチャリスト６６２に、正常であると判定された通信データのシグネチャを追加する。
【０１５７】
判定結果取得部６４８は、警告を発せられた通信データが遮断すべき通信データであるとの判定結果を取得したときに、異常シグネチャリスト６６４にその通信データのシグネチャを追加するよう異常シグネチャリスト更新部６５４へ指示する。異常シグネチャリスト更新部６５４は、異常シグネチャリスト６６４に、遮断すべきと判定された通信データのシグネチャを追加する。
【０１５８】
更新された正常シグネチャリスト６６２及び異常シグネチャリスト６６４は、データベースサーバ１５０により、所定のタイミングで通信制御装置１０の正常シグネチャリスト６３２及び異常シグネチャリスト６３４へ反映される。データベースの更新は、前提技術で説明した手順により行われてもよい。また、正常シグネチャリスト更新部６５２及び異常シグネチャリスト更新部６５４が、正常シグネチャリスト６３２及び異常シグネチャリスト６３４へ直接アクセスして更新してもよい。複数の通信制御装置１０が設けられる場合は、データベースサーバ１５０が、それぞれの通信制御装置１０により警告を発せられた通信データの判定結果を集約した正常シグネチャリスト６６２を作成し、集約された正常シグネチャリスト６６２をそれぞれの通信制御装置１０の正常シグネチャリスト６３２に反映させる。
【０１５９】
このように、異常な通信のみをシグネチャにより抽出して遮断するのではなく、正常な通信のみをシグネチャにより抽出して通過させ、それ以外の通信を解析し、正常か否かを判定して判定結果を反映させる。これにより、ボットネット６２２などにおいて新しい通信プロトコルにより不適切な通信が行われたとしても、それは正常な通信ではないので、確実に検知することができる。また、いったん遮断すべき通信データを検知すると、そのシグネチャを異常シグネチャリスト６３４に登録するので、以降は適切に遮断することができる。正常シグネチャリスト６３２及び異常シグネチャリスト６６４のシグネチャの量はかなり多くなるが、前提技術で説明したように、本実施の形態の通信制御装置１０は、専用のハードウェアにより構成されていて、非常に高速な検索が可能であるから、スループットを低下させることなく適切に通信を管理することができる。
【０１６０】
第２データベース６０には、さらに、ルールデータベース６６６に格納されたルールに合致する通信データを検知したときに、その通信データを複製して出力する旨の処理内容が格納されている。これに応じて、処理実行回路４０は、検索回路３０Ｃがルールデータベース６３６に格納されたルールに合致する通信データを検知すると、その通信データの複製を出力ポートから運用者端末６４０へ出力する抽出部として機能する。
【０１６１】
例えば、警告が発せられた通信データが正常であるか遮断すべきであるかを判定するにあたって、同じ送信元から送られた他の通信データや、同じ送信先へ送られた他の通信データなどを参照して解析する必要がある場合がある。このような場合に、警告が発せられた通信データの送信元のＩＰアドレス、送信先のＩＰアドレス、ペイロードの内容などをルールとしてルールデータベース６３６に登録しておけば、そのルールに合致した通信データを収集して解析することができる。前提技術で説明したように、本実施の形態の通信制御装置１０は、送信元又は送信先のＩＰアドレスなど、ヘッダに格納された情報だけでなく、ペイロード部分に格納された情報も検索対象とすることができるので、より細かいルールの設定が可能である。
【０１６２】
運用者は、警告を発せられた通信データを解析する際に、他の通信データも参照して解析すべきと判断した場合、ルールデータベース更新部６５６を介して、関連した通信データを抽出するためのルールをルールデータベース６６６に追加することができる。更新されたルールデータベース６６６は、データベースサーバ１５０により、通信制御装置１０のルールデータベース６３６に反映される。これにより、シグネチャを随時変更可能なパケットキャプチャ装置を実現することができる。
【０１６３】
（実施の形態６）
実施の形態では、異なる複数の種別の通信制御のための複数のデータベースを設け、それらを切り替えて適用させることにより、１つの通信制御装置に複数の種別の通信制御を実行させる技術について説明する。
【０１６４】
図５３は、実施の形態に係るパケット処理回路２０の構成を示す。図５３に示したパケット処理回路２６は、図４に示した前提技術のパケット処理回路２０の構成に加えて、切替部１８０を更に備える。また、第１データベース５０及び第２データベース６０として、複数の種別の通信制御用に設けられた複数のデータベースを備える。図５３の例では、ネットワークを介したコンテンツに対するアクセスを制御するためのＵＲＬフィルタリング用データベース１８１と、スパムメールをフィルタリングするためのスパムメールフィルタリング用データベース１８２と、Ｐ２Ｐ通信の帯域制御を行うためのＰ２Ｐ帯域制御用データベース１８３が設けられている。
【０１６５】
切替部１８０は、第１データベース５０及び第２データベース６０を、異なる複数の通信制御用のデータベースの間で切り替えることにより、通信制御装置１０を異なる複数の通信制御に利用可能とする。切替部１８０は、チップセレクト信号などを用いて、使用するデータベースが格納されたＲＯＭ又はＲＡＭなどのメモリ装置を切り替えてもよい。
【０１６６】
切替部１８０は、第１データベース５０及び第２データベース６０を切り替える際に、位置検出回路３２が検出すべき位置特定データを、切り替えた後のデータベースに格納された基準データの格納位置を特定するための位置特定データに切り替えてもよい。例えば、通信制御装置１０にＵＲＬフィルタリングの機能を持たせる際には、第１データベース５０及び第２データベース６０をＵＲＬフィルタリング用データベース１８１に切り替えるとともに、位置検出回路３２の位置特定データとして「http::/」という文字列を設定し、アクセス先のコンテンツのＵＲＬの格納位置を検出させる。また、通信制御装置１０にスパムメールフィルタリングの機能を持たせる際には、第１データベース５０及び第２データベース６０をスパムメールフィルタリング用データベース１８２に切り替えるとともに、位置検出回路３２の位置特定データとして「DATA」という文字列を設定し、電子メールの本文の格納位置を検出させる。
【０１６７】
切替部１８０は、通信データの種別に応じて動的に適用すべきデータベースを切り替えてもよい。例えば、検索回路３０を、パケットの種別を判定するための判定回路として用い、検索回路３０によりパケットのポート番号を検出して切替部１８０へ通知させる。切替部１８０は、通知されたポート番号、すなわちパケットの種別に応じて、第１データベース５０及び第２データベース６０を切り替える。例えば、ポート番号が「８０」であればＨＴＴＰパケットであるから、ＵＲＬフィルタリング用データベース１８１に切り替え、ポート番号が「２５」であればＳＭＴＰパケットであるから、スパムメールフィルタリング用データベース１８２に切り替えてもよい。これにより、１つの通信制御装置１０の機能を動的に切り替え、パケットの種別に応じて異なる複数の通信制御を行うことができる。この場合、切替部１８０は、検索回路３０から出力されるポート番号の信号から、それぞれの第１データベース５０及び第２データベース６０に対するチップセレクト信号を生成して供給するための回路であってもよい。
【０１６８】
（実施の形態７）
つづいて、上述した通信制御装置１０におけるバイナリサーチを実現するための新たな技術について説明する。
【０１６９】
図５４は、バイナリサーチ回路の別の構成例を示す。図５４に示した例では、４回分の探索を一度に実行するために、１５個の比較回路３６Ａ〜３６Ｏが設けられている。制御回路３６Ｚは、１５個の比較回路３６Ａ〜３６Ｏのそれぞれに接続された第１データベース５０から、探索対象範囲の１／１６、２／１６、・・・、１５／１６の位置のデータを同時に並列して読み上げて比較回路３６Ａ〜３６Ｏに入力する。また、比較対象データｘをそれぞれの比較回路３６Ａ〜３６Ｏに入力する。
【０１７０】
制御回路３６Ｚは、まず、第１段階として、探索対象範囲の４／１６、８／１６、１２／１６の位置のデータが入力された３個の比較回路３６Ａ、３６Ｂ、３６Ｃにより、比較対象データｘが、探索対象範囲を４個に分割した範囲のいずれに属するかを判定する。つづいて、第２段階として、第１段階で判定された範囲の１／４、２／４、３／４の位置のデータが入力された３個の比較回路により、比較対象データｘが、探索対象範囲を１６個に分割した範囲のいずれに属するかを判定する。
【０１７１】
バイナリサーチ回路３６には、第１段階の比較回路３６Ａ、３６Ｂ、３６Ｃの比較結果を示す出力信号から、次の第２段階の比較回路３６Ｄ〜３６Ｏのうち第１段階で判定された範囲のデータが入力されている比較回路に比較を実行させるトリガ信号を生成して第２段階の比較回路３６Ｄ〜３６Ｏに入力するトリガ回路として、否定回路３７及び排他的論理和回路３８Ａ、３８Ｂを更に備えている。ここで、比較回路３６Ａ〜３６Ｏは、比較対象データｘが参照データよりも大きいときに「１」、小さいときに「０」を出力するものとする。
【０１７２】
まず、第１段階の比較回路３６Ａ、３６Ｂ、３６Ｃにトリガ信号が入力され、同時に並列して比較が実行される。比較回路３６Ａの出力が「０」であれば、比較対象データｘは、第１データベース５０の探索対象範囲のうち０／１６〜４／１６の範囲に属するので、その範囲の参照データが入力されている比較回路３６Ｄ、３６Ｅ、３６Ｆに、否定回路３７を介して、トリガ信号「１」が入力される。これにより、第２段階の比較回路３６Ｄ〜３６Ｏのうち、探索対象範囲の１／１６、２／１６、３／１６の位置の参照データが入力されている比較回路３６Ｄ、３６Ｅ、３６Ｆのみが起動され、同時に並列して第２段階の比較を実行する。比較対象データｘが、探索対象範囲のうち４／１６〜１６／１６の範囲に属する場合は、比較回路３６Ａの出力が「１」となるので、否定回路３７からは「０」が出力され、比較回路３６Ｄ、３６Ｅ、３６Ｆには、トリガ信号が入力されない。
【０１７３】
比較回路３６Ａの出力が「１」で、比較回路３６Ｂの出力が「０」であれば、比較対象データｘは、探索対象範囲のうち４／１６〜８／１６の範囲に属するので、その範囲の参照データが入力されている比較回路３６Ｇ、３６Ｈ、３６Ｉに、排他的論理和回路３８Ａを介して、トリガ信号「１」が入力される。これにより、第２段階の比較回路３６Ｄ〜３６Ｏのうち、探索対象範囲の５／１６、６／１６、７／１６の位置の参照データが入力されている比較回路３６Ｇ、３６Ｈ、３６Ｉのみが起動され、同時に並列して第２段階の比較を実行する。比較対象データｘが、探索対象範囲のうち４／１６〜８／１６の範囲に属さない場合は、比較回路３６Ａ及び３６Ｂの出力が同じになるので、排他的論理和回路３８Ａからは「０」が出力され、３６Ｇ、３６Ｈ、３６Ｉには、トリガ信号は入力されない。
【０１７４】
比較回路３６Ｂの出力が「１」で、比較回路３６Ｃの出力が「０」であれば、比較対象データｘは、探索対象範囲のうち８／１６〜１２／１６の範囲に属するので、その範囲の参照データが入力されている比較回路３６Ｊ、３６Ｋ、３６Ｌに、排他的論理和回路３８Ｂを介して、トリガ信号「１」が入力される。これにより、第２段階の比較回路３６Ｄ〜３６Ｏのうち、探索対象範囲の９／１６、１０／１６、１１／１６の位置の参照データが入力されている比較回路３６Ｊ、３６Ｋ、３６Ｌのみが起動され、同時に並列して第２段階の比較を実行する。比較対象データｘが、探索対象範囲のうち８／１６〜１２／１６の範囲に属さない場合は、比較回路３６Ｂ及び３６Ｃの出力が同じになるので、排他的論理和回路３８Ｂからは「０」が出力され、３６Ｊ、３６Ｋ、３６Ｌには、トリガ信号は入力されない。
【０１７５】
比較回路３６Ｃの出力が「１」であれば、比較対象データｘは、探索対象範囲のうち１２／１６〜１６／１６の範囲に属するので、その範囲の参照データが入力されている比較回路３６Ｍ、３６Ｎ、３６Ｏに、比較回路３６Ｃの出力信号がトリガ信号「１」として入力される。これにより、第２段階の比較回路３６Ｄ〜３６Ｏのうち、探索対象範囲の１３／１６、１４／１６、１５／１６の位置の参照データが入力されている比較回路３６Ｍ、３６Ｎ、３６Ｏのみが起動され、同時に並列して第２段階の比較を実行する。比較対象データｘが、探索対象範囲のうち０／１６〜１２／１６の範囲に属する場合は、比較回路３６Ｃの出力が「０」となるので、３６Ｍ、３６Ｎ、３６Ｏには、トリガ信号は入力されない。
【０１７６】
こうして、図５４に示した例では、２段階の比較処理で４回分の探索を実行することができる。この４回分の探索において比較対象データｘが探索されなかった場合は、制御回路３６Ｚは、新たに、第２段階で判定された範囲の１／１６、２／１６、・・・、１５／１６の位置のデータを、１５個の比較回路３６Ａ〜３６Ｏのそれぞれに入力させ、次の４回分の探索を実行する。
【０１７７】
このように、ｎ回分の探索を行うための比較回路を複数の段階に階層化させ、第２段階以降は、前段階までに判定された範囲の比較回路のみを動作させるので、消費電力を低減させることができる。
【０１７８】
図５４の例では、４回分の探索を同時に行うために、１５個の比較回路を設けたが、一般に、ｎ回分の探索を同時に並行して行うためには、２ｎ−１個の比較回路を設ければよい。制御回路３６Ｚは、第１データベース５０の探索対象範囲を２ｎ個に分割したとき、比較対象データｘと、探索対象範囲の１／２ｎ、２／２ｎ、・・・、（２ｎ−１）／２ｎの位置のデータとを、２ｎ−１個の比較回路のそれぞれに入力させる。まず、第１段階として、探索対象範囲の１／２ｎ１、２／２ｎ１、・・・、（２ｎ１−１）／２ｎ１の位置のデータが入力された２ｎ１−１個の比較回路により、比較対象データｘが、探索対象範囲を２ｎ１個に分割した範囲のいずれに属するかを判定する。つづいて、第２段階として、第１段階で判定された範囲の１／２ｎ２、２／２ｎ２、・・・、（２ｎ２−１）／２ｎ２の位置のデータが入力された２ｎ２−１個の比較回路により、比較対象データｘが、探索対象範囲を２ｎ１＋ｎ２個に分割した範囲のいずれに属するかを判定する。以降同様にして、第Ｎ段階（ただし、ｎ１＋ｎ２＋・・・＋ｎＮ＝ｎ）まで繰り返すことにより、ｎ回分の探索を実行する。ｎ回分の探索において比較対象データｘが探索されなかった場合は、新たに、第Ｎ段階で判定された範囲の１／２ｎ、２／２ｎ、・・・、（２ｎ−１）／２ｎの位置のデータを、２ｎ−１個の比較回路のそれぞれに入力させ、次のｎ回分の探索を実行する。
【０１７９】
この場合、トリガ回路は、第ｍ（１≦ｍ＜Ｎ）段階の比較回路の比較結果を示す出力信号から、次の第（ｍ＋１）段階の比較回路のうち第ｍ段階で判定された範囲のデータが入力されている比較回路に比較を実行させるトリガ信号を生成して第（ｍ＋１）段階の比較回路に入力する。具体的には、第ｍ段階の２ｍ−１個の比較回路のうち、隣接する比較回路から異なる比較結果を示す出力信号が出力されたときに、それらの比較回路に入力されているデータの間の範囲のデータが入力された第（ｍ＋１）段階の比較回路にトリガ信号を入力すればよい。また、第ｍ段階で判定される２ｍの範囲のうち、最小の範囲と、最大の範囲のデータが入力された第（ｍ＋１）段階の比較回路には、第ｍ段階の２ｍ−１個の比較回路のうち、最小と最大の参照データが入力された比較回路の比較結果に応じてトリガ信号を入力すればよい。
【０１８０】
図５５は、バイナリサーチ回路の更に別の構成例を示す。図５５に示した例では、バイナリサーチ回路３６は、３つの比較回路３６Ａ〜３６Ｃを用いて、比較対象データｘが第１データベース５０の探索対象範囲を４つに分割した範囲のいずれに属するかを判定したが、図５５の例では、比較対象データｘが、４つの範囲のそれぞれに含まれるか否かを判定するための４つの比較回路３６Ｐ〜３６Ｓが設けられている。例えば、比較回路３６Ｐには、第１データベース５０の探索対象範囲の０／１６の位置にある基準データと、４／１６の位置にある基準データと、比較対象データｘとが入力され、それぞれの基準データと比較対象データｘとを比較することにより、基準データが探索対象範囲の０／１６から４／１６の範囲に含まれるか否かを判定する。範囲に含まれる場合には、比較回路３６Ｐから、その範囲に含まれるデータが参照データとして入力されている比較回路３６Ｄ、３６Ｅ、３６Ｆに、トリガ信号が入力される。これにより、第２段階では、第１段階で判定された範囲の比較回路のみが比較を実行するので、消費電力を低減させることができる。
【０１８１】
なお、図５４及び図５５に示した例では、ｎ回分の探索を一度に行うための２ｎ−１個の比較回路のうち、１／２ｎ１、２／２ｎ１、・・・、（２ｎ１−１）／２ｎ１の位置のデータが入力された２ｎ１−１個の比較回路を第１段階の比較回路としたが、これに限らず、任意の位置のデータが入力された比較回路を第１段階の比較回路としてもよい。要は、複数の比較回路を階層化し、前段階までに判定された範囲の比較回路のみを動作させるようにすればよい。
【０１８２】
第１のデータベース及び第２のデータベースは、外部から書き換え可能に設けられる。これらのデータベースを入れ替えることにより、同じ通信制御装置１０を用いて、さまざまなデータ処理や通信制御を実現することができる。また、検索対象となる基準データを格納したデータベースを２以上設けて、多段階の検索処理を行ってもよい。このとき、検索結果と処理内容とを対応づけて格納したデータベースを２以上設けて、より複雑な条件分岐を実現してもよい。このように、データベースを複数設けて多段階の検索を行う場合に、位置検出回路３２、インデックス回路３４、バイナリサーチ回路３６などを複数設けてもよい。
【０１８３】
上述した比較に用いられるデータは、同じ圧縮ロジックにより圧縮されてもよい。比較に際して、比較元のデータと比較先のデータが同じ方式で圧縮されていれば、通常と同様の比較が可能である。これにより、比較の際にローディングするデータ量を低減することができる。ローディングするデータ量が少なくなれば、メモリからデータを読み出すのに要する時間が短縮されるので、全体の処理時間も短縮することができる。また、比較器の量を削減することができるので、装置の小型化、軽量化、低コスト化に寄与することができる。比較に用いられるデータは、圧縮された形式で格納されていてもよいし、メモリから読み出した後、比較の前に圧縮されてもよい。
【０１８４】
（実施の形態８）
つづいて、上述した通信制御装置１０において、ユーザの端末を識別する技術について説明する。インターネットサービスプロバイダにダイアルアップ接続している端末や、携帯電話端末などは、インターネットに接続するときに、接続を管理するサーバからＩＰアドレスを付与されるので、接続のたびにＩＰアドレスが変化する。そのため、ＩＰアドレスのみではユーザの端末を一意に識別することができない。本実施の形態では、端末の接続を管理するサーバから、端末に付与したＩＰアドレスを取得して、端末を一意に識別する技術について説明する。
【０１８５】
図５６は、実施の形態に係る通信制御装置のパケット処理回路の構成を示す。図５６に示したパケット処理回路２０は、図４に示した前提技術の通信制御装置１０のパケット処理回路２０の構成に加えて、ユーザデータベース更新部４６０を更に備える。その他の構成及び動作は、前提技術と同様である。
【０１８６】
接続管理サーバ１２０は、インターネットに接続しようとするユーザの端末を認証し、認証に成功した端末にＩＰアドレスを付与する。接続管理サーバ１２０は、ユーザの端末に付与可能なＩＰアドレスのテーブルを有しており、空いているＩＰアドレスを端末に動的に付与する。接続管理サーバ１２０は、端末の認証及びアカウンティングを行うＲＡＤＩＵＳ（Remote Authentication Dial In User Service）サーバであってもよいし、ＲＡＤＩＵＳサーバにユーザの端末の認証を要求するＲＡＤＩＵＳクライアントであってもよい。接続管理サーバ１２０は、認証に成功したユーザの端末に付与したＩＰアドレスと、その端末のユーザのユーザＩＤとを通信制御装置１０へ通知する。ユーザデータベース更新部４６０は、接続管理サーバ１２０から取得したユーザのＩＤとＩＰアドレスの組をユーザデータベース５７に登録する。
【０１８７】
図５７は、ユーザデータベース５７の内部データの例を示す。ユーザデータベース５７には、ＩＰアドレス欄４０１及びユーザＩＤ欄４０２が設けられている。ＩＰアドレス欄４０１には、ユーザの端末に割り当てられる可能性のある全てのＩＰアドレスが昇順又は降順にソートして格納されている。ユーザデータベース更新部４６０は、接続管理サーバ１２０から、ユーザのユーザＩＤと、ユーザの端末に現在割り当てられているＩＰアドレスとを取得すると、該当するＩＰアドレスのレコードに、ユーザＩＤを登録する。これにより、以降は、ＩＰアドレスからユーザを識別することが可能となる。
【０１８８】
通信制御装置１０は、通信データを受信すると、まず、検索回路３０により、通信データの送信元又は送信先のＩＰアドレスをユーザデータベース５７のＩＰアドレス欄４０１から検索し、該当するＩＰアドレスに対応するユーザＩＤを取得する。ユーザデータベース５７のＩＰアドレス欄４０１が昇順又は降順にソートされている場合は、検索回路３０は、バイナリサーチにより送信元又は送信先のＩＰアドレスを検索する。このとき、検索回路３０は、通信データの送信元又は送信先の端末のユーザを識別するユーザ識別部として機能する。
【０１８９】
つづいて、検索回路３０は、通信データに含まれる基準データを第１データベース５０から検索し、検索結果に応じて第２データベース６０から実行すべき処理の内容を読み出して通信データを制御する。このとき、第２データベース６０の共通カテゴリリストなど、ユーザごとにデータベースが設けられていて、ユーザＩＤが対応づけてデータベースに格納されている場合は、該当するユーザＩＤのレコードを参照して検索を実行する。これにより、ユーザごとに設定された制御を適切に実行することができる。
【０１９０】
通信制御装置１０は、ＩＰアドレスを検索するための検索回路３０を更に備えてもよい。この場合、ＩＰアドレスの検索と、通信データに含まれる基準データの検索を、同時に並行して実行することができるので、より高速な通信制御を実現することができる。
【０１９１】
上記のように、本実施の形態に係る技術によれば、ＩＰ電話においても、発呼した端末を一意に識別することができる。固定加入電話網においては、電話交換機と加入者端末が直接電気的に接続されているので、発呼した端末を確実に識別することができるという特性を有していた。固定加入電話網からＩＰ電話網への切り替えに際して、この特性が喪われてしまうことに大きな危惧がもたれていたが、本実施の形態の技術を利用することにより、ＩＰ電話網においても同様に、電話のライフラインとしての特性を維持することができる。例えば、緊急通報において、通報者が落ち着いて名乗れなかったり、発声に障害があったり、危険な状況に陥ってうまく発声できない状態になっていたりしても、緊急通報機関側で発呼した端末を特定することができる。また、発呼者が特定されるので、迷惑電話を防止する技術としても重要である。
【０１９２】
（実施の形態９）
実施の形態では、前提技術において説明した通信制御装置において、通信データを編集したり複製したりする技術について説明する。
【０１９３】
図５８は、実施の形態に係るパケット処理回路２０の構成を示す。本実施の形態のパケット処理回路２０は、図４に示した前提技術のパケット処理回路２０の構成に加えて、編集部４２及び複製部４４を更に備える。その他の構成及び動作は、前提技術に係る通信制御装置１０と同様である。
【０１９４】
編集部４２は、通信制御装置１０が取得した通信データをネットワークへ送出する前に、通信データに対して様々な編集を加える。編集部４２は、第１データベース５０及び第２データベース６０に格納された条件にしたがって、通信データを編集する。第１データベース５０及び第２データベース６０は、複数の条件に応じて複数設けられてもよいし、ユーザごと、ユーザのグループごと、又は通信プロトコルごとに設けられてもよい。第１データベース５０及び第２データベース６０は、通信の方向に応じて、又は所定のタイミングで切り替えられてもよい。
【０１９５】
編集部４２は、所定のデータを通信データから削除する機能を有する。編集部４２は、所定の条件にしたがって、パケットのペイロードに格納されている通信文やコンテンツなどを削除してもよい。
【０１９６】
編集部４２は、所定のデータを通信データに追加する機能を有する。編集部４２は、所定の条件にしたがって、広告などのコンテンツ、通信制御装置１０の位置情報、地域情報、ＩＰアドレスなどをパケットのペイロードに追加してもよい。
【０１９７】
編集部４２は、通信データの所定のデータを別のデータに変更する機能を有する。編集部４２は、所定の条件にしたがって、パケットの送信元又は送信先のＩＰアドレス、ＭＡＣアドレスなどを変更してもよいし、スパムメールなどの禁止キーワードをスペースなどに置換してもよい。
【０１９８】
編集部４２は、通信データを圧縮又は解凍する機能を有する。編集部４２は、所定の条件にしたがって、パケットのペイロードに格納されたデータを圧縮したり、圧縮されたデータを解凍したりしてもよい。編集部４２は、パケットのペイロードに格納された所定のデータのハッシュ値を算出し、算出されたハッシュ値に置換してもよい。
【０１９９】
編集部４２は、通信データを暗号化又は復号化する機能を有する。編集部４２は、所定の条件にしたがって、パケットのペイロードに格納された平文のデータを暗号化したり、暗号化されたデータを復号化したりしてもよい。
【０２００】
編集部４２は、通信データに含まれる文字又は文章のデータを翻訳したり、文字コードを変更したりする機能を有する。編集部４２は、所定の条件にしたがって、パケットのペイロードに格納された文字又は文章のデータを所定の言語に翻訳してもよい。編集部４２は、所定の条件にしたがって、パケットのペイロードに格納された文字又は文章のデータの文字コードを正規化してもよい。編集部４２は、所定の条件にしたがって、パケットのペイロードに格納されたデータのデータ名や添付ファイルのファイル名などに含まれるスペース、記号、制御文字などを置換することにより、データ名又はファイル名を正規化してもよい。これにより、送信元のコンピュータと送信先のコンピュータのファイルシステムの差異などにより、文字データを読むことができなかったり、ファイルを開くことができなかったりする事態を低減させることができる。また、データ名やファイル名を他の名称に置換しておくことで、データが誤って第三者に渡ったとしても、データを保護することができる。
【０２０１】
編集部４２は、上記のような機能により通信データを編集したときに、編集した回数やデータ量などをカウントしてもよい。このカウント値は、編集部４２や、通信制御装置１０の他の構成に供給され、通信制御に利用されてもよい。編集部４２は、上記のような機能により通信データを編集したときに、必要であれば、巡回冗長検査（ＣＲＣ：Cyclic Redundancy Check）を再計算して更新する。
【０２０２】
複製部４４は、処理実行回路４０が送出する通信データとは別に、所定の条件にしたがって通信データを複製し、記憶装置４６にバックアップする。複製部４４は、例えば、企業におけるコンプライアンス対策として、企業のメールサーバのメールアドレスに対して送受信された電子メールの通信データを複製して記憶装置４６にバックアップしてもよい。このとき、同じ企業の複数のメールアドレスに宛てて電子メールが送信された場合は、１件分の通信データのみを複製し、その他を破棄してもよい。また、警察による捜査などのために、所定の条件に合致する通信データを複製して記憶装置４６にバックアップしてもよい。複製部４４は、全てのデータを無条件に複製して記憶装置４６にバックアップしてもよい。複製部４４は、編集部４２による編集前の通信データをバックアップしてもよいし、編集後の通信データをバックアップしてもよい。
【０２０３】
図５９は、実施の形態に係る通信制御システムの構成を示す。図５９の例では、基地局装置２６２に通信制御システム１００ａが、制御局装置２６４に通信制御システム１００ｂが、インターネット２００と送信先端末２３０との間の通信経路に通信制御システム１００ｃが、それぞれ設けられている。
【０２０４】
送信元の携帯電話端末２６０に最も近い通信制御システム１００ａの編集部４２は、携帯電話端末２６０が送出する通信データを暗号化し、携帯電話端末２６０へ送出する通信データを復号する。また、送信先端末２３０に最も近い通信制御システム１００ｃの編集部４２は、送信先端末２３０へ送出する通信データを復号し、送信先端末２３０が送出する通信データを暗号化する。
【０２０５】
すなわち、図５９に示したように、携帯電話端末２６０が送出した通信データ２７０は、基地局装置２６２の通信制御システム１００ａにより暗号化される。暗号化された通信データ２７１は、制御局装置２６４を介してインターネット２００へ送信される。通信制御システム１００ｃは、暗号化された通信データ２７１を復号して送信先端末２３０へ送信する。これにより、通信制御システム１００ａと通信制御システム１００ｃとの間では、通信データが暗号化されて送受信されるので、安全な通信路を構築することができる。
【０２０６】
上述したように、本実施の形態の通信制御装置１０は、ＩＰアドレスを有さず、物理的な着信を要しない透過型の通信機であるため、ＶＰＮなどのように既存のネットワークの設定を複雑に改変することなく、容易に安全なプライベートネットワークを構築することができる。
【０２０７】
図５９に示した通信制御システムにおいて、通信制御システム１００の編集部４２は、端末が送出した通信データを圧縮し、端末へ送出する圧縮された通信データを解凍してもよい。これにより、通信制御システム１００間の通信量を低減することができる。
【０２０８】
（実施の形態１０）
実施の形態では、前提技術で説明した通信制御システムを、インターネットなどのネットワークを利用した電話網における緊急通報に利用する技術について説明する。
【０２０９】
ＶｏＩＰなどの技術を利用したＩＰ電話が実現されているが、現状では、ＩＰ電話から緊急通報を行うことはできないようになっている。これは、緊急通報のために加入電話に求められている以下の要件をＩＰ電話が充足していないからである。
（１）通報者の位置に応じて、その位置を管轄区域とする緊急通報機関に接続すること。
（２）通報者から通話を終了できないようにするとともに、緊急通報機関から通報者を呼び出すことができるようにすること。
（３）通報者の電話番号や位置情報を緊急通報機関に通知すること。
【０２１０】
本実施の形態では、前提技術の通信制御システム１００を利用して、上記の要件を充足したＩＰ電話又は携帯電話による緊急通報を実現する技術を提案する。
【０２１１】
本実施の形態の通信制御システム１００は、緊急電話番号が格納された第１データベース５０を利用して、通信制御装置１０の検索回路３０により緊急電話番号を発呼する通信データを検出し、緊急通報の通話を制御する。この通信制御システム１００は、緊急電話の発呼元の電話端末と、緊急通報機関との間の通信経路に設けられる。以下、通信制御システム１００の配置例を列挙する。
【０２１２】
図６０は、通信制御システムの配置例を示す。本図は、発呼元の電話端末の一例として、携帯電話端末２６０が用いられる例を示している。携帯電話端末２６０から発せられる通信データは、キャリアが設置した基地局装置２６２、局舎に設けられた制御局装置２６４を介してインターネット２００へ送出され、インターネット２００を介して発呼先の電話端末２１０又は緊急通報機関２２０へ到達する。本図の例では、基地局装置２６２に通信制御システム１００が設けられる。この場合、必要最低限の機能のみを搭載することにより通信制御システム１００の小型化を図ってもよい。例えば、接続管理サーバ１２０、ログ管理サーバ１４０などの構成を省略してもよい。
【０２１３】
図６１は、通信制御システムの別の配置例を示す。本図も、携帯電話端末２６０が用いられる例を示しているが、図６０に示した例とは異なり、制御局装置２６４に通信制御システム１００が設けられる。局舎に設けられた制御局装置２６４において一元的に緊急通報を制御するので、システムのメンテナンスが容易である。
【０２１４】
図６２及び図６３は、通信制御システムの更に別の配置例を示す。本図では、電話端末の一例として、インターネットに接続されたＩＰ電話端末２８０が用いられる例を示している。ＩＰ電話端末２８０から発せられる通信データは、ＬＡＮ又はＷＡＮなどのルータ装置２８２及び２８４を介してインターネット２００へ送出され、インターネット２００を介して発呼先の電話端末２１０又は緊急通報機関２２０へ到達する。図６２は、ルータ装置２８２に通信制御システム１００が設けられる例を示しており、図６３は、ルータ装置２８４に通信制御システム１００が設けられる例を示している。通信制御システム１００は、回線業者により設けられてもよいし、ＩＳＰにより設けられてもよい。
【０２１５】
上記の例では、ネットワークを構成する装置に通信制御システム１００を組み込む例を示したが、通信制御システム１００は、これらの装置とは別に、ネットワークの任意の位置に設けられてもよい。
【０２１６】
図６４は、実施の形態に係る通信制御システムの構成を示す。本実施の形態の通信制御システム１００では、メッセージ出力サーバ１３０が、緊急電話制御部１３７及び位置情報保持部１３８を備える。その他の構成及び動作は、図１に示した前提技術の通信制御システム１００と同様である。緊急電話制御部１３７は、通信制御装置１０が緊急電話番号を発呼する通信データを検出したときに、その緊急電話の通話を制御する。位置情報保持部１３８は、発呼元の電話端末又は通信制御システム１００の位置に関する情報を保持する。この位置情報は、位置情報付加部としても機能する緊急電話制御部１３７により、緊急通報機関２２０へ送信される通信データに付加され、緊急通報機関２２０へ通知される。
【０２１７】
図６２又は図６３に示したＩＰ電話端末２８０を用いた緊急通報のための通信制御システム１００においては、位置情報保持部１３８に、郵便番号、住所コード、住所などの情報を格納してもよい。これらの情報は、通信制御システム１００の設置位置の情報であってもよいし、個々のＩＰ電話端末２８０の設置位置の情報であってもよい。後者の場合、位置情報保持部１３８は、電気通信回線事業者の登録ユーザのＩＰ電話端末２８０の電話番号、郵便番号、住所コード、住所などを格納する。この場合、位置情報保持部１３８を通信制御装置１０の第１データベース５０として機能させ、検索回路３０により緊急通報を発信したＩＰ電話端末２８０の電話番号を検索し、該当するＩＰ電話端末２８０の位置情報を得てもよい。図６０又は図６１に示した携帯電話端末２６０を用いた緊急通報のための通信制御システム１００においては、位置情報保持部１３８に、基地局装置２６２の緯度、経度及び精度情報を格納してもよい。この場合、緯度及び軽度の単位は度表記で小数点以下五位とし、精度情報の単位はメートルとしてもよい。
【０２１８】
図６５は、実施の形態に係る通信制御方法の手順を示すシーケンス図である。図６５は、通信制御システム１００が発呼元の電話端末との間で接続を確立するまでの手順を示す。この手順は、主にＴＣＰ／ＩＰ通信におけるスリーウェイハンドシェイクを想定しているが、別の通信プロトコルに適用されてもよい。発呼元の電話端末が携帯電話端末２６０である場合は、これらの手順を省略してもよい。
【０２１９】
ユーザが緊急電話番号を発呼すると、発呼元の電話端末２８０は、緊急電話番号の接続先へ接続を要求するための「ＳＹＮ」パケットを発信する（Ｓ１０）。通信制御装置１０は、この「ＳＹＮ」パケットを取得し、緊急電話番号のリストが格納された第１データベース５０を参照して、検索回路３０により発呼先の電話番号が緊急電話番号であるか否かを判定する（Ｓ１２）。発呼先の電話番号が一般の電話番号である場合は、通信制御装置１０は「ＳＹＮ」パケットをインターネットへ送出し、発呼先の電話端末２１０へ送信する。発呼先の電話番号が緊急電話番号である場合は、通信制御装置１０はその旨を緊急電話制御部１３７へ通知する（Ｓ１４）。
【０２２０】
緊急電話制御部１３７は、緊急電話の発呼を通知されると、発呼元の電話端末２８０の存在を確認するために、発呼元の電話端末２８０へ「ｐｉｎｇ」コマンドを発する（Ｓ１６）。発呼元の電話端末２８０は、「ｐｉｎｇ」コマンドを受信すると、それに対する応答を返信する（Ｓ１８）。発呼元の電話端末２８０から応答が得られない場合は、ＩＰアドレスや電話番号などを偽装している可能性があるので、緊急電話制御部１３７は、「ＳＹＮ」パケットを破棄し、緊急電話の接続を禁止する。これにより、緊急電話の発信者のなりすましを抑止することができる。
【０２２１】
緊急電話制御部１３７は、「ｐｉｎｇ」コマンドにより、発呼元の電話端末２８０に対する疎通が正常であることが確認されると、発呼元の電話端末２８０に「ＦＩＮ」パケットを送信する（Ｓ２０）。「ＦＩＮ」パケットは、通常、接続の終了を要求するときに送信されるので、発呼元の電話端末２８０は、いったん接続を終了しようとして、ハーフクローズ（CLOSE_WAIT）又は再送待機（TIME_WAIT）状態となる。この間に、緊急電話制御部１３７は、発呼元の電話端末２８０に、接続要求に対する確認応答と接続の確立を要求するための「ＳＹＮ／ＡＣＫ」パケットを送信する（Ｓ２２）。発呼元の電話端末２８０は、応答確認のための「ＡＣＫ」パケットを緊急電話制御部１３７に送信する（Ｓ２４）。以上の手順により、発呼先の電話端末に代わって、緊急電話制御部１３７が発呼元の電話端末２８０との間で接続を確立する。これにより、発呼元の電話端末２８０から通話を終了することができなくするとともに、緊急通報機関が緊急電話制御部１３７を介して通報者を呼び出すことが可能となり、上述した要件の（２）を充足することができる。
【０２２２】
図６６は、実施の形態に係る通信制御方法の手順を示すシーケンス図である。図６６は、通信制御システム１００が発呼元の電話端末２６０又は２８０と緊急通報機関２２０との間の通話を制御する手順を示す。緊急電話制御部１３７は、発呼元の電話端末２６０又は２８０との間で接続を確立すると、接続すべき緊急通報機関を選択する（Ｓ３０）。図６０に示した通信制御システム１００においては、基地局装置２６２から数百メートル程度の範囲内に発呼元の携帯電話端末２６０が存在するので、緊急電話制御部１３７は、発呼先の電話番号に応じて、自身の設置場所の位置を管轄とする緊急通報機関を選択する。図６１に示した通信制御システム１００においては、後述するように、基地局装置２６２の通信制御システム１００が通信データに付加した位置情報を参照して発呼元の携帯電話端末２６０の位置を判定し、発呼先の緊急電話番号に応じて、判定された発呼元の携帯電話端末２６０の位置を管轄とする緊急通報機関を選択する。図６２又は６３に示した通信制御システム１００においては、後述するように、発呼元のＩＰ電話端末２８０が発した通信データに付加された位置情報を参照して発呼元のＩＰ電話端末２８０の位置を判定し、発呼先の緊急電話番号に応じて、判定された発呼元のＩＰ電話端末２８０の位置を管轄とする緊急通報機関を選択する。これにより、発呼元の電話端末の位置を管轄区域とする緊急通報機関に接続することができるので、上述した要件の（１）を充足することができる。
【０２２３】
緊急電話制御部１３７は、緊急通報機関を選択すると、その緊急通報機関の電話端末を発呼するための通信データに、発呼元の電話端末の電話番号と、位置情報保持部１３８に保持された位置情報を付加する（Ｓ３２）。このとき、上流の通信制御システム１００により既に位置情報が付加されていた場合は、位置情報を付加しなくてもよいし、更に位置情報を付加してもよい。後者の場合、発呼元の電話端末から緊急通報機関に至るまでの通信経路を把握することが可能となる。これにより、通報者の電話番号や位置情報を緊急通報機関に通知することができるので、上述した要件の（３）を充足することができる。
【０２２４】
緊急電話制御部１３７は、位置情報が付加された通信データを緊急通報機関へ送り、緊急通報機関の電話端末を発呼する（Ｓ３４）。緊急電話制御部１３７は、インターネットを利用したＩＰ電話網を用いて緊急通報機関の電話端末を発呼してもよいし、固定電話網や専用線などを用いて緊急通報機関の電話端末を発呼してもよい。緊急通報機関との間で接続が確立されると（Ｓ３６）、緊急電話制御部１３７は、発呼元の電話端末と緊急通報機関との間の通話を中継し、通信を制御する（Ｓ３８）。
【０２２５】
緊急通報機関が終話信号を発すると（Ｓ４０）、緊急電話制御部１３７は、発呼元の電話端末との間の接続を開放し（Ｓ４２）、緊急通報機関との間の接続を開放する（Ｓ４４）。これにより、両者の接続が切断される。緊急電話制御部１３７は、緊急通報機関から終話信号を受信しない限り、発呼元の電話端末との間の接続を開放しない。これにより、上述した要件の（２）を充足することができる。
【０２２６】
通信経路に、位置情報付加機能を有する通信制御システム１００を複数設け、通信制御システム１００を通過するごとに、その通信制御システム１００の位置情報を通信データに付加してもよい。例えば、既に付加された上流の通信制御システム１００の位置情報の後に、自身の位置情報を付加してもよい。これにより、通信データが通過した経路をトレースすることができる。
【０２２７】
実施の形態では、位置情報保持部１３８に保持された、通信制御システム１００の位置を示す情報を通信データに付加したが、通信制御システム１００が設けられた基地局装置２６２、制御局装置２６４、ルータ装置２８２又は２８４などの識別情報などを付加してもよいし、発呼元の電話端末から通知されたＧＰＳ情報などを付加してもよいし、発呼元の電話端末と通信中の複数の基地局装置２６２の位置情報に基づいて三角測量などにより発呼元の電話端末の位置を算出し、算出された位置情報を付加してもよい。
【０２２８】
上記のように、本実施の形態に係る技術によれば、ＩＰ電話においても、緊急通報の発呼者の位置情報を緊急通報機関へ的確に通知することができる。緊急通報においては、緊急通報機関が通報者の位置を正確に把握することが非常に重要である。固定加入電話網は、緊急通報に求められている上述した要件を全て具備していたので、とにかく通報者が発呼しさえすれば緊急通報機関側で位置情報などを割り出して対処することができるという意味で、ライフラインとしての優れた特性を有していた。固定加入電話網からＩＰ電話網への切り替えに際して、この特性が喪われてしまうことに大きな危惧がもたれていたが、本実施の形態の技術を利用することにより、ＩＰ電話網にも同様の特性を与えることができるので、通報者が落ち着いて自分の位置を正確に伝えられなかったり、発声に障害があったり、危険な状況に陥ってうまく発声できない状態になっていたりしても、緊急通報を発呼することにより緊急通報機関へ通報者の位置情報が通知されるので、適切な対処を受けることができる。
【０２２９】
図６７は、実施の形態に係る通信制御システムの別の構成例を示す。図６７に示した通信制御システム１００は、図６０に示した通信制御システム１００の構成に加えて、返信部１３９を更に備える。返信部１３９は、位置情報付加部の一例である緊急電話制御部１３７により位置情報が付加された通信データを発呼元の電話端末２６０へ返信する。その他の構成及び動作は、図６０に示した通信制御システム１００と同様である。
【０２３０】
図６８は、電話端末が他の電話端末を発呼するための通信データが送信される様子を示す。携帯電話端末２６０が発した緊急通報のための通信データ２７０は、基地局装置２６２、制御局装置２６４、インターネット２００を介して、緊急通報機関２２０へ送信される。基地局装置２６２に設けられた通信制御システム１００ａ、制御局装置２６４に設けられた通信制御システム１００ｂ、及びインターネットプロバイダなどにより通信経路に設けられた通信制御システム１００ｃは、通信データ２７０を通過させる際に、緊急電話制御部１３７により自装置の位置情報を通信データ２７０に付加する。このとき、緊急電話制御部１３７は、通信データ２７０に既に付加された上流の通信制御システム１００の位置情報があれば、それに加えて更に自装置の位置情報を付加する。例えば、基地局装置２６２の通信制御システム１００ａから送出された通信データ２７０には、通信制御システム１００ａの位置情報である「東京都千代田区霞が関１００」が付加されている。また、通信制御システム１００ｃから送出された通信データ２７０には、それまでに通過した通信制御システム１００ａ及び１００ｂの位置情報とともに、通信制御システム１００ｃの位置情報である「東京都千代田区霞が関３００」が付加されている。
【０２３１】
なお、前述した発呼元端末と緊急通報機関との間で接続を確立するための制御は、いずれか１つの通信制御システム１００において実行されればよく、その他の通信制御システム１００は、自装置の位置情報を通信データ２７０に付加して送出すればよい。
【０２３２】
通信制御システム１００ａ、１００ｂ、及び１００ｃのうち少なくともいずれかは、図６７に示したように返信部１３９を備えており、それまでに通過した通信制御システム１００の位置情報が付加された通信データ２７０を発呼元の携帯電話端末２６０へ返信する。発呼元の携帯電話端末２６０に近い位置にある通信制御システム、例えば基地局装置２６２の通信制御システム１００ａが通信データ２７０を返信してもよい。これにより、発呼元の携帯電話端末２６０へ即座に返信することができるので、ユーザは自身のいる場所の位置情報をすぐに把握することができる。発呼先の電話端末、例えば緊急通報機関２２０の電話端末に近い位置にある通信制御システム１００ｃが通信データ２７０を返信してもよい。これにより、ユーザは自身のいる位置とともに、自身のいる位置から最寄りの緊急通報機関２２０の位置情報を把握することができる。
【０２３３】
緊急電話制御部１３７は、自装置の位置情報として、郵便番号、住所、住所コードなどを通信データ２７０に付加してもよい。また、これらの情報を文字データとして通信データ２７０に付加してもよい。これにより、発呼元のユーザに位置情報を可読性のある文字データとして提供することができるので、ユーザの利便性を向上させることができる。また、位置情報に、建物の階数や、場所に関する詳細情報などを含めてもよい。これにより、ＧＰＳなどでは取得し得ない情報をユーザに提供することができ、ユーザの利便性を向上させることができる。
【０２３４】
前述したように、通信制御装置１０には、緊急通報機関の電話番号を格納した緊急通報機関データベースとして機能する第１データベース５０と、通信データに含まれる発呼先の電話番号が緊急通報機関データベース中に存在するか否かを検索する検索回路３０とが備えられているので、返信部１３９は、通信データ２７０に含まれる発呼先の電話番号が緊急通報機関データベース中に存在していたとき、すなわち、緊急通報であったときに、位置情報が付加された通信データ２７０を発呼元の電話端末２６０へ返信してもよい。
【０２３５】
また、通信制御装置１０に、本実施の形態で説明したサービスを享受するユーザの電話端末の電話番号を格納したユーザデータベースを設けておき、検索回路３０により、通信データ２７０に含まれる発呼元の電話端末の電話番号がユーザデータベース中に存在するか否かを検索し、存在していたときに、返信部１３９が通信データ２７０を発呼元の電話端末へ返信するようにしてもよい。この場合、通信制御装置１０は、発呼元の電話端末の電話番号がユーザデータベースに存在していれば、通信データ２７０を返信すべき旨を返信部１３９へ通知し、返信部１３９は、通信制御装置１０から通知を受けたときに通信データ２７０を返信する。または、メッセージ出力サーバ１３０にユーザデータベース及び検索回路３０を設けてもよい。このような構成により、特定のユーザに対して本サービスを提供することができる。特定のユーザに対してサービスを提供する場合であっても、緊急通報の場合には全てのユーザに対して通信データ２７０を返信するようにしてもよい。
【０２３６】
本実施の形態の通信制御装置１０は、ＩＰアドレスを有しない完全透過型の通信機であり、通信データを物理的に着信せずに上記の機能を実行する。つまり、通信制御装置１０は、ネットワークを通過中の通信データを取り込み、プロトコル処理など物理的な着信に要する処理を省略して、上述した処理を行い、位置情報を付加した通信データを発呼元へ返信する。従来の通信機は、自装置宛の通信データを受信して制御していたが、本実施の形態の通信制御装置１０は、自装置宛に送信されたのではない通過中の通信データを取り込んで制御する。したがって、発呼元及び発呼先の装置や、通信経路に設けられた他の通信装置は、通信制御装置１０が設けられることによる設定等の変更を何ら必要とすることなく、通信制御装置１０の存在を全く意識せずに通信を行うことができる。したがって、本実施の形態の技術によれば、通信システムに大きな改変を行うことなく、上記のようなシステムを構築することができる。また、本実施の形態の通信制御装置１０はＩＰアドレスを有しないので、悪意あるハッカーなどから攻撃を受けることがなく、セキュリティ性に優れている。
【０２３７】
（実施の形態１１）
つづいて、アクセス要求元に対してメッセージを出力する技術を提案する。また、このメッセージを利用したビジネスモデルを提案する。更に、このメッセージを利用して、悪意ある攻撃に対して適切な防御策を講じる技術を提案する。
【０２３８】
前提技術で説明したように、通信制御装置１０は、コンテンツに対するアクセス要求のパケットを受信し、そのアクセスの可否を判定して、アクセスが禁止された場合は、メッセージ出力サーバ１３０にエラーメッセージなどのメッセージの出力を指示する。本実施の形態では、このメッセージ出力サーバ１３０によりアクセス要求元へ出力されるメッセージを、アクセス要求元のユーザごと、アクセス先のＵＲＬごと、カテゴリごと、データベースごとなど、柔軟に設定可能とし、状況に応じて適切なメッセージを出力することを可能とする。アクセスが禁止された場合に限らず、コンテンツとメッセージを対応づけて保持しておき、コンテンツに対するアクセス要求を発信したユーザに対して、そのコンテンツに対応づけられたメッセージを出力するようにしてもよい。
【０２３９】
図６９は、実施の形態に係るメッセージ出力サーバ１３０の構成を示す。本実施の形態のメッセージ出力サーバ１３０は、メッセージ出力部１３１、メッセージ保持部１３２、履歴保持部１３３、評価部１３４、登録受付部１３５、及び課金部１３６を含む。
【０２４０】
メッセージ保持部１３２は、アクセス要求元に対して出力するメッセージを保持する。メッセージは、ユーザごとに設定されてもよい。この場合、メッセージ保持部１３２は、ユーザを識別する情報と、そのユーザに出力するメッセージ又はそのメッセージを格納したファイルのファイル名などを対応づけて格納する。メッセージは、カテゴリリストにおけるカテゴリごとに設定されてもよいし、アクセス先のＵＲＬごとに設定されてもよい。例えば、サイト運営者が、ＵＲＬごとに広告情報などをメッセージとして設定してもよい。メッセージ保持部１３２が、ユーザごと、ＵＲＬごとなど、複数の条件に応じたメッセージを設定可能である場合には、いずれのメッセージを優先するかを示す情報を更に格納してもよい。
【０２４１】
登録受付部１３５は、メッセージの登録を受け付ける。メッセージをユーザごとに設定可能とする場合、登録受付部１３５は、ユーザからメッセージの登録を受け付け、メッセージ保持部１３２に登録する。その他、コンテンツの提供者、広告提供事業者などから、メッセージの登録を受け付けてもよい。メッセージの登録者に対して登録料を課金する場合は、登録受付部１３５は、メッセージの登録を受け付けると、登録料を課金するよう課金部１３６に指示する。課金部１３６は、登録者のアカウントから登録料を減じる処理を行う。
【０２４２】
メッセージがアクセス要求元のユーザごとに設定されている場合、メッセージ出力部１３１は、アクセス要求のパケットを処理する接続管理サーバ１２０又は通信制御装置１０から、アクセス要求元のユーザのユーザＩＤなどを取得し、メッセージ保持部１３２を参照して、そのユーザに設定されたメッセージを出力する。メッセージがアクセス先のＵＲＬ、カテゴリごとに設定されている場合、メッセージ出力部１３１は、通信制御装置１０から、アクセス先のＵＲＬ又はカテゴリの識別情報などを取得し、メッセージ保持部１３２を参照して、そのＵＲＬ又はカテゴリに設定されたメッセージを出力する。メッセージ出力部１３１は、メッセージを出力した履歴を履歴保持部１３３に登録する。また、メッセージの出力に対してメッセージの登録者又はメッセージの受信者に対価を課金する場合は、課金部１３６に課金を指示する。
【０２４３】
第１データベース５０のリストごとにメッセージを設定する場合、例えば、ウイルス／フィッシングサイトリスト１６１に登録されたＵＲＬへのアクセスを要求したユーザに、「ウイルス感染サイトであるため、アクセスが制限されました。」「フィッシングサイトであるため、アクセスが制限されました。」など、アクセスを禁止した理由をメッセージとして出力することができる。また、共通カテゴリリスト１６４のカテゴリごとにメッセージを設定する場合も、例えば、「閲覧禁止カテゴリであるため、アクセスが制限されました。」など、アクセスを禁止した理由をメッセージとして出力することができる。それぞれのリストに登録されているＵＲＬごとにメッセージを設定する場合も同様である。
【０２４４】
アクセス要求元のユーザごとにメッセージを設定する場合、例えば、企業などにおいて役職等に応じたアクセス権限が設定されているときに、「このサイトにアクセスする権限がありません。」などのメッセージを出力することができる。また、親が子供に携帯電話などを与える場合に、子供が不適切なサイトへアクセスしようとしたとき、別の健全な又は優良なサイトへのリンクを含むメッセージを出力し、そのリンク先へ誘導してもよい。
【０２４５】
アクセス先のカテゴリやＵＲＬごとに、広告などを含むメッセージを設定してもよい。例えば、サイトの内容に関連した広告をメッセージに含ませてもよい。これにより、ユーザが閲覧しようとしたサイトに関連する広告を提供することができるので、広告効果を高めることができる。また、ユーザごとに、広告などを含むメッセージを設定してもよい。例えば、ユーザが、関心のある分野を設定しておき、それに属する広告などの情報をメッセージに含ませてもよい。
【０２４６】
メッセージは、別のサイトへのリンクを含んでもよい。別のサイトへのリンクの例として、広告を提供するサイトへのリンク、アクセス先のコンテンツに関連するサイトへのリンク、人気ランキングの上位のサイトへのリンク、認証局により認定された安全なサイトへのリンク、などを含んでもよい。例えば、正規のサイトがハッキングを受けて閉鎖されているような場合に、そのサイトへアクセスしようとするユーザに対して、ミラーサイトへのリンクを含むメッセージを出力してもよい。また、サイトのＵＲＬを移転した場合に、移転前のＵＲＬへアクセスしようとするユーザに対して、移転先のＵＲＬへのリンクを含むメッセージを出力してもよい。また、メッセージ出力部１３１は、アクセス先のコンテンツに関連するサイトのうち、関連度の高いサイト、人気のあるサイト、優良度の高いサイト、認証局により認証されたサイトなどを抽出してリストを作成し、メッセージに含ませてもよい。
【０２４７】
評価部１３４は、履歴保持部１３３に保持されたメッセージ出力履歴を参照して、通信状況やアクセス要求元の状況などを評価する。評価部１３４は、メッセージの送出履歴を統計処理し、ウェブサイトの管理者などへ提供してもよい。これにより、ユーザのアクセス履歴をマーケティングに利用したり、通信状況の制御などに活用したりすることができる。また、ユーザの端末が定期的にアクセス要求を発信するように設定しておき、それに対するメッセージの送出履歴を参照して、ユーザの行動履歴などを把握して利用できるようにしてもよい。
【０２４８】
評価部１３４は、同一の要求元から短時間に多数のアクセス要求が発信されている場合、サービス妨害攻撃（Denial of Service attack：ＤｏＳアタック）などである可能性があると評価して、その要求元をアクセス拒否リストに登録し、その要求元からのパケットを要求先へ送らずに遮断してもよい。このとき、評価部１３４は、ｐｉｎｇコマンドなどを用いて要求元が実際に存在することを確認し、また、存在する場合はその状態を確認してもよい。サービス妨害攻撃など不正なアクセス要求を発信している要求元を特定した場合、メッセージ出力部１３１は、その要求元に対してメッセージを出力してもよい。本実施の形態の通信制御装置１０は、上述したように、ＯＳ及びＣＰＵを持たない完全透過型の通信装置であり、ＩＰアドレスも有しないので、攻撃を受けることはない。逆に、メッセージ出力サーバ１３０から攻撃者に対してメッセージを「はね返す」ことにより、攻撃者の装置に負荷を与えることができる。この場合、通信制御システム１００は、不正なアクセス要求を通さずにはね返すので、いわば鏡（ミラー）のような役割を果たすことになる。１つのアクセス要求に対して、複数のメッセージを送出することもできる。
【０２４９】
（実施の形態１２）
実施の形態では、前提技術において説明した通信制御装置が出力するログをフィルタリングする技術について説明する。
【０２５０】
図７０は、実施の形態に係る通信制御装置１０の構成を示す。本実施の形態の通信制御装置１０は、図３に示した前提技術に係る通信制御装置１０の構成に加えて、ログ出力制御装置１４５を更に備える。ログ出力制御装置１４５は、ログ出力制御回路１４１ａ及び１４１ｂ、ログ出力設定部１４２、及び複数のログ出力ポート１４３ａ〜１４３ｆを備える。これらの構成は、ログ管理サーバ１４０に備えられてもよい。その他の構成及び動作は、前提技術に係る通信制御装置１０と同様である。
【０２５１】
ログ出力制御回路１４１は、通信制御装置１０のパケット処理回路２０における処理のログの出力を制御する。ログ出力制御回路１４１は、図４に示したパケット処理回路２０の構成と同様の構成を含んでおり、パケット処理回路２０から出力されるログに含まれるデータに基づいて、ログを出力する方法を決定する。ログ出力制御回路１４１は、ログに含まれるデータに基づいて、ログを出力するポート、ログ出力先などを決定し、必要であればログを編集して出力する。
【０２５２】
図７１は、ログ出力制御回路１４１に備えられた第１データベース５０及び第２データベース６０の内部データの例を示す。第１データベース５０には、送信元ＩＰアドレス欄７１、送信先ＩＰアドレス欄７２、プロトコル番号欄７３、及びポート番号欄７４が設けられている。第２データベース６０には、処理欄８１、出力ポート欄８２、及び出力先欄８３が設けられている。ログ出力制御回路１４１に設けられた検索回路３０は、パケット処理回路２０から出力されたログ、又は、そのログのもとになった通信データに含まれる送信元ＩＰアドレス、送信先ＩＰアドレス、プロトコル番号、ポート番号などを取得して第１データベース５０を検索する。ログ出力制御回路１４１に設けられた処理実行回路４０は、検索回路３０による検索結果に基づいて、第２データベース６０から実行すべき処理、出力ポート、出力先を取得し、必要な処理を実行した後、指定されたログ出力ポート１４３から出力先へログを出力する。
【０２５３】
ログ出力制御回路１４１は、ログの出力方法を決定する基準となるデータの種別の数に応じて、複数の検索回路３０を有してもよい。例えば、図７１の例のように、送信元ＩＰアドレス、送信先ＩＰアドレス、プロトコル番号、及びポート番号を基準としてログの出力方法を決定する場合は、それぞれの検索のために４つの検索回路３０が設けられ、同時に並列して複数の種別のデータを検索可能としてもよい。これにより、より高速にログの出力を制御することができる。ログ出力制御回路１４１は、送信元又は送信先のＭＡＣアドレス、通信ステータス、その他通信データ中に存在する任意のデータやビットを単独で又は複数組み合わせて、ログ出力方法を決定する基準としてもよい。
【０２５４】
ログ出力制御回路１４１は、ログを出力する前に、ログを圧縮したり、暗号化したり、所定のデータのみを抽出したり、所定のデータを削除したり、所定のデータを追加したり、文字コードを変更したり、送信元や送信先のＭＡＣアドレスやＩＰアドレスなどを変更したり、プロトコルを変更したりして、ログを編集する機能を有していてもよい。
【０２５５】
ログ出力制御回路１４１は、複数のログをまとめてログ出力ポート１４３から出力させてもよい。例えば、所定の数又は所定のデータ量のログがパケット処理回路２０から出力されるまで、出力されたログを一時メモリに保持し、一時メモリに蓄積されたログが所定の数又は所定のデータ量に達すると、一時メモリからログのデータを読み出して、それらをまとめてログ出力ポート１４３から出力させてもよい。
【０２５６】
ログ出力設定部１４２は、ログ出力制御回路１４１によるログの出力方法を設定する。ログ出力設定部１４２は、ログ出力制御回路１４１に設けられた第１データベース５０及び第２データベース６０を書き換えることにより、ログの出力方法を切り替える。本実施の形態では、ログ出力制御回路として、ログ出力制御回路１４１ａとログ出力制御回路１４１ｂの２つを設けているので、ログ出力設定部１４２がいずれか一方のログ出力制御回路１４１のデータベースを書き換えてログ出力方法を更新している間にも、他方のログ出力制御回路１４１により運用を継続することができる。ログ出力設定部１４２は、チップセレクト信号などを用いて運用するログ出力制御回路１４１を切り替えてもよい。これにより、運用を停止することなくログ出力方法を変更することができる。
【０２５７】
前提技術で説明したメッセージ出力サーバ１３０により、本実施の形態のログ出力制御機能を実現してもよい。また、逆に、前提技術で説明したメッセージ出力サーバ１３０の機能を、本実施の形態のログ出力制御回路１４１などにより実現してもよい。例えば、ＤｏＳ攻撃を企図した通信データをパケット処理回路２０が処理したときに、ログ出力制御回路１４１がその通信データの発信元へ通信データを返送してミラーリングしてもよい。また、通信制御装置１０から何らかのデータを外部へ出力するための予備のポートとしてログ出力ポート１４３を利用してもよい。
【０２５８】
ログ出力制御回路１４１は、ログ出力ポート１４３の使用状況に応じて、使用するログ出力ポート１４３を決定してもよい。例えば、ログ出力ポート１４３ａから出力すべきログが大量に出力されたとき、それらを全てログ出力ポート１４３ａから出力する代わりに、輻輳していない他のログ出力ポート１４３から出力させてもよい。これにより、ログ出力ポート１４３の負荷を分散し、効率良くログを出力させることができる。
【０２５９】
ログ出力制御回路１４１は、メッセージ出力サーバ１３０の状況も更に考慮して、使用するログ出力ポート１４３を決定してもよい。例えば、メッセージ出力サーバ１３０が大量のメッセージを出力する必要が生じたときに、そのメッセージをメッセージ出力サーバ１３０から受け付けて、ログ出力ポート１４３から出力してもよい。また、逆に、全てのログ出力ポート１４３が輻輳しているときに、出力すべきログのデータをメッセージ出力サーバ１３０へ送り、メッセージ出力サーバ１３０から出力させてもよい。このように、ログ出力制御回路１４１は、メッセージ出力サーバ１３０と協働して負荷分散を行ってもよい。これにより、更に効率良くメッセージやログを出力させることができる。
【０２６０】
ログ出力制御回路１４１は、通信データの送信先の装置に異常が生じて通信データを受信できない状況に陥っているときに、その通信データを他の装置へ転送してもよい。例えば、電子メールの宛先のＳＭＴＰサーバがダウンしているときに、そのＳＭＴＰサーバ宛の電子メールの通信データをスプール先の装置へ転送し、一時的にスプールさせてもよい。異常が生じている装置及び転送先の装置のＩＰアドレス又はＭＡＣアドレスは、外部の装置からパケット処理回路２０を介して、又は直接ログ出力設定部１４２へ伝達され、ログ出力設定部１４２からログ出力制御回路１４１へ設定されてもよい。これにより、通信データの送信先の装置に異常が生じている場合であっても、適切に通信データを制御することができる。
【０２６１】
（実施の形態１３）
実施の形態では、前提技術において説明したメッセージ出力サーバ１３０の機能を利用して、通信データの送信先の装置の負荷を分散する技術について説明する。
【０２６２】
図７２は、実施の形態に係るメッセージ出力サーバ１３０の構成を示す。本実施の形態のメッセージ出力サーバ１３０は、メッセージ出力制御回路１７１ａ及び１７１ｂ、メッセージ出力設定部１７２、複数のメッセージ出力ポート１７３ａ〜１７３ｆ、及び負荷状況保持部１７４を備える。メッセージ出力サーバ１３０は、負荷分散装置として機能し、メッセージ出力制御回路１７１は送信先制御部及び送出部として、メッセージ出力設定部１７２は設定部として、それぞれ機能する。
【０２６３】
図７３は、負荷状況保持部１７４の内部データの例を示す。負荷状況保持部１７４には、送信先ＩＰアドレス欄９１、グループＩＤ欄９２、及び負荷状況欄９３が設けられている。負荷状況保持部１７４には、ウェブサーバのミラーサーバや、ダウンロードサイトなど、同じ機能を有する複数の装置が用意されている場合に、それらの装置がグループ化して登録されており、それぞれの装置の負荷状況が格納される。例えば、図７３の例では、ＩＰアドレスが「xxx.100.0.1」の装置と「xxx.100.0.2」の装置と「xxx.100.0.3」の装置は、それぞれ同じ機能を有していて、いずれの装置に通信データが送信されても同じ処理がなされるものとする。このとき、これらの装置のＩＰアドレスが、グループＩＤ「１」の装置群として負荷状況保持部１７４に登録され、それぞれの装置の負荷状況が格納される。それぞれの装置の負荷状況は、通信制御装置１０を介してそれぞれの装置から受信し、メッセージ出力設定部１７２により自動的に格納されてもよいし、外部の装置から負荷状況保持部１７４を更新可能に構成してもよい。
【０２６４】
本実施の形態では、通信制御装置１０の第１データベース５０には、負荷状況保持部１７４の送信先ＩＰアドレス欄９１と同じデータが基準データとして格納されており、検索回路３０は、通信制御装置１０が取得した通信データの送信先ＩＰアドレスが、第１データベース５０に登録されているか否かを検索する。通信データの送信先ＩＰアドレスが第１データベース５０に登録されている場合には、その送信先ＩＰアドレスに対応づけられいてるグループＩＤがメッセージ出力サーバ１３０に通知される。
【０２６５】
メッセージ出力制御回路１７１は、通信制御装置１０から通知されたグループＩＤと同一のグループＩＤを有する装置の負荷状況を負荷状況保持部１７４から読み出し、それぞれの装置の負荷状況に応じて、その通信データの送信先を決定する。メッセージ出力制御回路１７１は、最も負荷の低い装置へ通信データを送信してもよいし、それまでにメッセージ出力サーバ１３０から出力した送信先の履歴に基づいて送信先を決定してもよい。また、メッセージ出力制御回路１７１は、負荷状況の時間変化に応じて通信データの送信先を決定してもよい。例えば、負荷状況が減少している装置へ通信データを送信してもよい。メッセージ出力制御回路１７１は、何らかの異常が発生している装置は、送信先として選択しないようにする。
【０２６６】
メッセージ出力制御回路１７１は、メッセージ出力ポート１７３を介して、決定した送信先の装置へ通信データを送出する。決定した送信先の装置が、通信データに設定されていた送信先の装置とは異なる場合、メッセージ出力制御回路１７１は、新たに決定した送信先の装置のＩＰアドレスを負荷状況保持部１７４から読み出し、通信データの送信先ＩＰアドレスに設定して送出する。以上のような技術により、通信データの送信先の装置の負荷を適切に分散し、効率よく通信データを処理させることができる。
【０２６７】
メッセージ出力制御回路１７１は、複数のメッセージ出力ポート１７３の中から、送信先の装置に応じて、通信データを出力するメッセージ出力ポート１７３を決定してもよい。例えば、それぞれのメッセージ出力ポート１７３が異なるネットワークに接続されている場合、送信先の装置のＩＰアドレスに応じて、適切なメッセージ出力ポート１７３を選択して通信データを送出してもよい。これにより、通信データを適切にルーティングすることができる。
【０２６８】
メッセージ出力制御回路１７１は、通信データを出力する前に、送信先を変更するだけでなく、送信元を変更したり、データを圧縮したり、暗号化したり、所定のデータのみを抽出したり、所定のデータを削除したり、所定のデータを追加したり、文字コードを変更したり、プロトコルを変更したりして、通信データを編集する機能を有していてもよい。
【０２６９】
メッセージ出力設定部１７２は、メッセージ出力制御回路１７１による通信データの出力方法を設定する。メッセージ出力設定部１７２は、メッセージ出力制御回路１７１において送信先の装置又はメッセージ出力ポート１７３を決定するためのアルゴリズムを切り替える。本実施の形態では、メッセージ出力制御回路として、メッセージ出力制御回路１７１ａとメッセージ出力制御回路１７１ｂの２つを設けているので、メッセージ出力設定部１７２がいずれか一方のメッセージ出力制御回路１７１のアルゴリズムを更新している間にも、他方のメッセージ出力制御回路１７１により運用を継続することができる。メッセージ出力設定部１７２は、チップセレクト信号などを用いて運用するメッセージ出力制御回路１７１を切り替えてもよい。これにより、運用を停止することなくメッセージ出力制御回路１７１における通信データの出力方法を変更することができる。
【０２７０】
メッセージ出力制御回路１７１は、メッセージ出力ポート１７３の使用状況に応じて、使用するメッセージ出力ポート１７３を決定してもよい。例えば、メッセージ出力ポート１７３ａから送出すべき通信データが大量に受信されたとき、それらを全てメッセージ出力ポート１７３ａから出力する代わりに、輻輳していない他のメッセージ出力ポート１７３から出力させてもよい。これにより、メッセージ出力ポート１７３の負荷を分散し、効率良く通信データを送出させることができる。
【０２７１】
メッセージ出力制御回路１７１は、通信データの送信先の装置に異常が生じて通信データを受信できない状況に陥っているときに、その通信データを他の装置へ転送してもよい。例えば、電子メールの宛先のＳＭＴＰサーバがダウンしているときに、そのＳＭＴＰサーバ宛の電子メールの通信データをスプール先の装置へ転送し、一時的にスプールさせてもよい。これにより、通信データの送信先の装置に異常が生じている場合であっても、適切に通信データを制御することができる。
【０２７２】
以上、メッセージ出力サーバ１３０が負荷分散装置として機能する例について説明したが、処理実行回路４０が負荷分散装置としての機能を有していてもよい。この場合も、処理実行回路４０は、通信データの送信先の装置と同じ機能を有する複数の装置の負荷状況を負荷状況保持部１７４から読み出し、それらの装置の負荷状況に応じて送信先の装置を決定し、必要であれば送信先の装置の識別情報を書き換えてから通信データを送出する。
【０２７３】
（実施の形態１４）
実施の形態では、前提技術において説明したメッセージ出力サーバ１３０の機能を利用して、ＩＰ電話の利用者の利便性を向上させるための新たなサービスを提供する技術について説明する。本実施の形態では、発呼元の電話端末が発呼先の電話端末を呼び出している間に、発呼先の電話番号の利用者が事前に登録していた広告などの音声メッセージを発呼元の電話端末に送信して再生させ、発呼元の電話端末の利用者が広告メッセージを聞いたことを条件として、発呼元の電話端末の利用者に利益を付与するサービスを提案する。
【０２７４】
図７４は、実施の形態に係るメッセージ出力サーバ１３０の構成を示す。本実施の形態のメッセージ出力サーバ１３０は、メッセージ出力制御回路１７１ａ及び１７１ｂ、メッセージ出力設定部１７２、複数のメッセージ出力ポート１７３ａ〜１７３ｆ、登録受付部１３５、及び課金部１３６を備える。メッセージ出力制御回路１７１ａ及び１７１ｂは、図６９に示したメッセージ出力サーバ１３０のメッセージ出力部１３１及びメッセージ保持部１３２を含む。また、登録受付部１３５、課金部１３６は、それぞれ、図６９に示したメッセージ出力サーバ１３０の登録受付部１３５、課金部１３６と同様の機能を有している。
【０２７５】
通信制御装置１０は、電話端末が他の電話端末を発呼するための通信データを取得すると、その通信データを発呼先の電話端末へ送出するとともに、その通信データをメッセージ出力サーバ１３０へ送る。メッセージ出力制御回路１７１は、通信制御装置１０から通信データを取得し、その通信データに含まれる発呼元の電話端末へ音声メッセージを送信する。メッセージ出力制御回路１７１は、図４に示したパケット処理回路２０の構成と同様の構成を含んでおり、通信データに含まれる発呼元又は発呼先の電話番号に基づいて、音声メッセージを出力する方法を決定する。
【０２７６】
図７５は、メッセージ出力制御回路１７１に備えられた第１データベース５０及び第２データベース６０の内部データの例を示す。第１データベース５０には、発呼元電話番号欄９４及び発呼先電話番号欄９５が設けられている。第２データベース６０には、音声ファイル名欄９６、処理欄９７、及び出力ポート欄９８が設けられている。このように、第１データベース５０及び第２データベース６０には、発呼元電話番号及び発呼先電話番号に対応づけて、発呼元の電話端末へ送信すべき音声ファイル名、実行すべき処理の内容、及び出力するメッセージ出力ポート１７３が格納されている。
【０２７７】
メッセージ出力制御回路１７１に設けられた検索回路３０は、通信制御装置１０から取得した通信データに含まれる発呼元又は発呼先の電話番号を第１データベース５０から検索する。メッセージ出力制御回路１７１に設けられた処理実行回路４０は、検索回路３０による検索結果に基づいて、第２データベース６０から実行すべき処理を読み出して実行する。
【０２７８】
処理実行回路４０は、発呼元の電話端末に送信すべき音声メッセージのファイル名と出力ポートを第２データベース６０から読み出し、メッセージ出力部１３１に通知する。メッセージ出力部１３１は、処理実行回路４０から指定された音声ファイルをメッセージ保持部１３２から読み出し、指定されたメッセージ出力ポート１７３から発呼元の電話端末へ送出する。発呼元の電話端末は、この音声メッセージを取得すると、発呼先の電話端末を呼び出している間に再生する。これにより、発呼元の電話端末の利用者は、発呼先の電話端末を呼び出している間に、従来の呼出音に代えて、音楽や広告などの音声メッセージを楽しむことができる。発呼元の電話端末は、発呼先の電話端末が着呼して接続が確立したときに、音声メッセージの再生を中止して通常の通話に切り替えてもよいし、音声メッセージの再生が終了するまで待ってから通常の通話に切り替えてもよい。
【０２７９】
また、処理実行回路４０は、課金部１３６が実行すべき処理の内容を第２データベース６０から読み出し、課金部１３６に通知する。課金部１３６は、処理実行回路４０から指定された内容の課金処理を実行する。例えば、課金部１３６は、発呼元の電話端末が音声メッセージを再生することを条件として、発呼元の電話端末の利用者にポイント付与や通話料割引などの利益を付与する。課金部１３６は、発呼先の電話番号に対応づけられた発呼先の広告などを含む音声メッセージを発呼元の電話端末が再生したとき、発呼元の電話端末と発呼先の電話端末との間の通話の料金を発呼先の電話端末の利用者に課金してもよい。課金部１３６は、発呼元の電話端末から、音声メッセージを再生した旨の通知を受けてから上記の処理を実行してもよいし、発呼元の電話端末が音声メッセージを必ず再生する仕様になっている場合には、音声メッセージが再生されたか否かを確認せずに上記の処理を実行してもよい。
【０２８０】
メッセージ出力設定部１７２は、メッセージ出力制御回路１７１による音声メッセージの出力方法を設定する。メッセージ出力設定部１７２は、メッセージ出力制御回路１７１に設けられた第１データベース５０、第２データベース６０、又はメッセージ保持部１３２などのデータベースを更新することにより、音声メッセージの出力方法を切り替える。本実施の形態では、メッセージ出力制御回路として、メッセージ出力制御回路１７１ａとメッセージ出力制御回路１７１ｂの２つを設けているので、メッセージ出力設定部１７２がいずれか一方のメッセージ出力制御回路１７１のデータベースを更新している間にも、他方のメッセージ出力制御回路１７１により運用を継続することができる。メッセージ出力設定部１７２は、チップセレクト信号などを用いて運用するメッセージ出力制御回路１７１を切り替えてもよい。これにより、運用を停止することなくメッセージ出力制御回路１７１における音声メッセージの出力方法を変更することができる。
【０２８１】
登録受付部１３５は、広告主又は広告事業者などから、発呼先の電話端末の電話番号と、発呼元の電話端末へ送信すべき音声メッセージの登録を受け付ける。メッセージ出力設定部１７２は、受け付けたデータをメッセージ出力制御回路１７１に反映させる。登録受付部１３５が、広告主又は広告事業者などから音声メッセージを受け付けたときに、課金部１３６が登録者に対して広告費を課金してもよい。登録受付部１３５は、音楽などの音声メッセージの登録を受け付けてもよい。例えば、一般利用者が、自身の電話端末を発呼した電話端末の利用者に聞かせたい音楽を登録できるようにしてもよい。また、音楽配信業者が、発呼元の電話端末へ配信したい音楽を登録できるようにしてもよい。これにより、発呼元の電話端末の利用者にとっても魅力的なサービスを提供することができる。
【０２８２】
メッセージ保持部１３２に、発呼元の電話端末の種別に応じて複数のデータ形式の音声メッセージを格納しておいてもよい。このとき、第２データベース６０の音声ファイル名欄９６に、発呼元電話番号に対応する電話端末の仕様に合ったデータ形式の音声メッセージのファイル名を登録しておく。これにより、メッセージ出力制御回路１７１は、発呼元の電話端末の仕様に合わせて適切な音声メッセージをメッセージ保持部１３２から読み出して送信することができる。このように、本実施の形態では、発呼先の電話番号だけでなく、発呼元の電話番号も参照して送信すべき音声メッセージを決定するので、同一の発呼先の電話番号に発呼した場合であっても、発呼元の電話端末に合わせて異なる音声メッセージを送信することができる。例えば、同じ電話番号に発呼しても、発呼元の電話端末の利用者の年齢、性別、住所、嗜好などの属性に合わせて、異なる音声メッセージを発呼元の電話端末へ送信することができる。これにより、より柔軟できめ細かなサービスを提供することができる。
【０２８３】
メッセージ出力制御回路１７１は、音声メッセージの出力方法を決定する基準となるデータの種別の数に応じて、複数の検索回路３０を有してもよい。例えば、図７５の例のように、発呼元電話番号及び発呼先電話番号を基準として音声メッセージの出力方法を決定する場合は、それぞれの検索のために２つの検索回路３０が設けられ、同時に並列して検索を実行させてもよい。これにより、より高速に音声メッセージの出力を制御することができる。メッセージ出力制御回路１７１は、送信元又は送信先のＭＡＣアドレス、通信ステータス、その他通信データ中に存在する任意のデータやビットを単独で又は複数組み合わせて、音声メッセージを出力する方法を決定する基準としてもよい。
【０２８４】
メッセージ出力制御回路１７１は、複数のメッセージ出力ポート１７３の中から、送信先の電話端末に応じて、音声メッセージを出力するメッセージ出力ポート１７３を決定してもよい。例えば、それぞれのメッセージ出力ポート１７３が異なるネットワークに接続されている場合、送信先の電話端末のＩＰアドレスに応じて、適切なメッセージ出力ポート１７３を選択して音声メッセージを送出してもよい。これにより、通信データを適切にルーティングすることができる。
【０２８５】
メッセージ出力制御回路１７１は、メッセージ出力ポート１７３の使用状況に応じて、使用するメッセージ出力ポート１７３を決定してもよい。例えば、メッセージ出力ポート１７３ａから送出すべき音声メッセージが大量に生じたとき、それらを全てメッセージ出力ポート１７３ａから出力する代わりに、輻輳していない他のメッセージ出力ポート１７３から出力させてもよい。これにより、メッセージ出力ポート１７３の負荷を分散し、効率良く音声メッセージを送出させることができる。
【０２８６】
なお、発呼元の電話端末が固定電話である場合には、送信すべき音声メッセージを音声サーバからアナログ信号で発呼元の電話端末へ供給してもよい。
【０２８７】
上記のような技術によれば、電話端末の利用者は、発呼先の電話端末を呼び出している間にも音楽などの音声メッセージを楽しむことができるとともに、広告などの音声メッセージを聞くことで通話料の低減などの利益を享受することができる。また、広告主や広告事業者は、自身の電話端末の電話番号に発呼してきた利用者に広告を提供することができるので、効率よく広告を行うことができる。さらに、通信事業者は、魅力的なサービスを提供することで利用者の増加を見込めるとともに、音声メッセージの提供主からの広告収入や、通信量の増加による通話料の増収を得ることができる。このように、本実施の形態で提案したサービスは、サービスに関係する全ての主体が利益を享受することが可能な魅力あるビジネスモデルとなっている。
【０２８８】
上記の例では、音声メッセージを発呼元の電話端末へ送信したが、音声メッセージに代えて、文字や画像などを含むコンテンツを発呼元の電話端末へ送信してもよい。この場合、発呼元の電話端末は、送信されたコンテンツを電話端末の表示装置などに表示する。
【０２８９】
音声メッセージとして、発呼先の電話端末が話中であったときの応答メッセージなどをメッセージ保持部１３２に登録しておいてもよい。この場合、メッセージ出力制御回路１７１は、発呼先の電話端末から話中である旨の情報を含む通信データが返送されてきたときに、発呼元の電話端末へ応答メッセージを送出する。これにより、発呼先の電話端末が話中で呼が成立しない場合であっても、発呼元の電話端末へ適切な応答メッセージを送信することができる。
【０２９０】
また、音声メッセージとして、大規模災害発生時などにＩＰ電話網を含む通信回線が輻輳状態に陥ったときに、電話がつながりにくい旨や、現況の詳細情報などを案内する案内メッセージなどをメッセージ保持部１３２に登録しておいてもよい。この場合、メッセージ出力設定部１７２は、発呼が困難な状況にある電話端末の電話番号に対応づけて案内メッセージをメッセージ保持部１３２に登録し、メッセージ出力制御回路１７１は、その電話番号へ発呼した電話端末へ案内メッセージを送信する。これにより、発呼先の電話端末までの通信経路が輻輳状態にあって呼が成立しない場合であっても、発呼元の電話端末へ適切な案内メッセージを送信することができる。
【０２９１】
また、音声メッセージとして、緊急通報機関からの自動応答メッセージなどをメッセージ保持部１３２に登録しておいてもよい。この場合、メッセージ出力制御回路１７１は、発呼先の電話番号が緊急通報機関の電話番号であったときに、通報者に対して適切な対処を説明するための自動応答メッセージなどを送出する。通報者が発声又は聴き取りに障害を有している場合もあるので、文字又は画像により、例えば電話端末の適切な操作方法などを説明する自動応答メッセージを送出してもよい。これにより、緊急通報の通報者の電話端末へ適切な応答メッセージを送信することができる。
【０２９２】
このように、本実施の形態の技術によれば、電話端末と交換機が直接電気的に接続されている公衆交換電話網から、電話端末と交換機との間の直接の接続がないＩＰ電話網へ移行しても、上記のようなライフラインとしての機能を持つサービスを提供することができる。
【０２９３】
（実施の形態１５）
つづいて、上述した通信制御装置１０において、帯域制御を実現する技術について説明する。
【０２９４】
図７６は、実施の形態に係る通信制御装置の構成を示す。本実施の形態の通信制御装置１０は、図３に示した前提技術の通信制御装置１０の構成に加えて、帯域制御回路４００を更に備える。その他の構成及び動作は、図３に示した通信制御装置１０と同様である。
【０２９５】
帯域制御回路４００は、選択回路４０５、登録部４１０、クラス別管理回路４２０、管理テーブル４３０、通信データ登録ＲＡＭ４４０、及びデータ取出回路４５０を備える。パケット処理回路２０から出力される通信データには、その通信データを送出する帯域のクラスを示すクラス情報が付されている。クラス情報は、通信データのプロトコル番号、ポート番号、送信元ＩＰアドレス、送信先ＩＰアドレスなどに応じて、パケット処理回路２０により決定される。
【０２９６】
クラス別管理回路４２０は、通信データを送出する帯域のクラスごとに設けられ、通信データを送出するタイミングを制御する。クラス別管理回路４２０は、パケット処理回路２０から出力される通信データのうち、自身が担当するクラスに属する通信データを取得してパケット化する。クラス別管理回路４２０は、管理テーブル４３０に登録された基本情報にしたがって、送出するパケットのデータ長、メモリ領域の開始点と終了点を通信データ登録ＲＡＭ４４０に登録する。クラス別管理回路４２０は、行った制御に関する情報を管理テーブル４３０に登録する。登録部４１０は、管理テーブル４３０に基本情報を登録する。
【０２９７】
図７７は、管理テーブルの内部データの例を示す。管理テーブル４３０には、クラス欄４３１、送出可能ビット数欄４３２、登録パケット数欄４３３、及び超過ビット数欄４３４が設けられている。クラス欄４３１は、帯域のクラスを格納する。送出可能ビット数欄４３２は、クラス別に割り当てられた単位時間に送出可能なビット数を格納する。登録パケット数欄４３３は、クラス別管理回路４２０が次回に送出する通信データとして通信データ登録ＲＡＭ４４０に登録した通信データのパケットの量を格納する。図７７の例では、登録されたパケットの量をビット数で格納している。超過ビット数欄４３４は、クラス別管理回路４２０が通信データ登録ＲＡＭ４４０に登録した通信データのビット数が、送出可能ビット数欄４３２に登録されている単位時間に送出可能なビット数を超過した場合に、超過したビット数を格納する。
【０２９８】
クラス別管理回路４２０は、自身の担当するクラスに属する通信データが大量に発生したり、大容量のファイルなどを送出しようとしたときに、管理テーブル４３０の送出可能ビット数欄４３２に規定されたビット数を超過したパケットを通信データ登録ＲＡＭ４４０に登録してもよい。しかし、クラス別管理回路４２０は、超過したビット数を管理テーブル４３０の超過ビット数欄４３４に登録しておき、次回以降に、送出可能ビット数から超過ビット数を差し引いたビット数のパケットを通信データ登録ＲＡＭ４４０に登録して、超過分を調整する。これにより、クラスごとに適切な帯域制御を行いつつ、パケット単位で柔軟に通信データの送出量を調整することができる。
【０２９９】
クラス別管理回路４２０は、次回送出予定のパケットが、送出可能ビット数を超過する場合に、管理テーブル４３０を参照して、登録パケット数が送出可能ビット数に満たないクラスを抽出し、そのクラスを担当するクラス別管理回路４２０に、超過分の通信データの送出を依頼してもよい。依頼されたクラス別管理回路４２０は、送出可能ビット数を超えない範囲で追加の通信データの送出を受け付け、通信データをパケット化して通信データ登録ＲＡＭ４４０に登録するとともに、管理テーブル４３０の登録パケット数欄４３３を更新する。これにより、通信データのクラスが偏っても、空いている帯域を利用して送出することができるので、帯域全体を有効に活用することができる。
【０３００】
データ取出回路４５０は、所定のタイミングで通信データ登録ＲＡＭ４４０に登録されているパケットを取り出してネットワークへ送出する。
【０３０１】
選択回路４０５は、パケット処理回路２０から取得した通信データのクラス情報に応じて、通信データをクラス別管理回路４２０ａ〜４２０ｄに振り分ける。選択回路４０５は、パケット処理回路２０から通知されるクラス情報から、通信データを振り分けるべきクラス別管理回路４２０をアクティブにするためのチップセレクト信号を生成して、クラス別管理回路４２０へ供給する。これにより、簡易な構成で、通信データを処理すべきクラス別管理回路４２０をアクティブにし、通信データを処理させることができる。
【０３０２】
（実施の形態１６）
図７８は、実施の形態に係る試験装置９００の構成を示す。試験装置９００は、生成部９０２、出力部９０４、入力部９０６、及び検査部９０８を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【０３０３】
生成部９０２は、通信制御装置１０へ出力する試験データと、通信制御装置１０の処理実行回路４０がその試験データを正常に処理したときに処理実行回路４０から出力されるべき解答データを生成する。例えば、パケットフィルタリングを行うための通信制御装置１０の場合、生成部９０２は、通過させるべきパケットと遮断すべきパケットを混在させた試験データを生成するとともに、通過させるべきパケットを含み遮断すべきパケットを含まない解答データを生成する。通信制御装置１０がパケットに含まれるデータを所定のアルゴリズムにより変換する処理を行う場合、生成部９０２は、通信されるパケットのサンプルを試験データとして生成するとともに、そのパケットに含まれるデータを所定のアルゴリズムにより変換した解答データを生成する。
【０３０４】
生成部９０２は、試験データと解答データを予め生成して、ハードディスク装置やメモリなどの記憶装置に格納しておいてもよい。この場合、生成部９０２は、試験が開始されると、試験データを記憶装置から読み出して出力部９０４へ送り、解答データを記憶装置から読み出して検査部９０８へ送る。出力部９０４が記憶装置から直接試験データを読み出してもよい。また、検査部９０８が記憶装置から直接解答データを読み出してもよい。
【０３０５】
試験データと解答データは、別の装置で生成されて試験装置９００へ入力されてもよい。この場合、試験装置９００は、生成部９０２に代えて、別の装置から試験データと解答データを取得する構成を備える。
【０３０６】
出力部９０４は、通信制御装置１０へ試験データを出力する。入力部９０６は、通信制御装置１０から出力される結果データを入力する。検査部９０８は、生成部９０２が生成した解答データと、入力部９０６が入力した結果データとを、両データの先頭から順に比較することにより、通信制御装置１０が正常に動作しているか否かを検査する。
【０３０７】
図７９は、検査部９０８の構成を示す。検査部９０８は、図１２に示したバイナリサーチ回路３６と同様に、生成部９０２が生成した解答データ９１０と入力部９０６が入力した結果データ９１２とをビット単位で比較する複数の比較器９２０ａ、９２０ｂ、・・・、を含む比較回路９２０を備える。複数の比較器９２０ａ、９２０ｂ、・・・は、同時に並行して複数の比較を実行可能であってもよい。これにより、多数のデータを高速に比較することができるので、試験に要する時間を大幅に短縮することができる。また、比較の対象となる解答データ９１０及び結果データ９１２を一時的に格納するバッファの容量を低減することができる。
【０３０８】
前提技術で説明した通信制御装置１０は、検索回路３０を含むパケット処理回路２０がワイヤードロジック回路により構成されている上に、比較対象のデータを高速に検出するための位置検出回路３２、高速なバイナリサーチを実現するためのインデックス回路３４、バイナリサーチ回路３６を設けているため、非常に高速な処理が可能である。このような通信制御装置１０を試験する場合、試験装置９００も高速な動作が可能であることが好ましい。上述したように、本実施の形態の試験装置９００によれば、高速に動作する通信制御装置１０に見合った高速な試験を実現することができる。
【０３０９】
判定回路９２２は、複数の比較器９２０ａ、９２０ｂ、・・・から比較結果を取得し、解答データ９１０と結果データ９１２が一致するか否かを判定する。解答データ９１０と結果データ９１２が一致しなかった場合、報知部９３０は、表示装置９３２にエラーメッセージを表示したり、スピーカ９３４から警報音を出力するなどして、エラーが発生した旨を報知する。ログ記録部９４０は、エラーの内容をログ保持部９４２に保持されるエラーログに記録する。エラーログは、エラーが発生したデータの位置、そのときの解答データ、出力データなどを含んでもよい。報知部９３０は、図示しない印刷装置などにエラーメッセージを印刷してもよい。また、ログ記録部９４０は、図示しない印刷装置などにエラーログを印刷してもよい。
【０３１０】
図８０は、実施の形態に係る試験装置の別の構成例を示す。図７８に示した例では、生成部９０２、出力部９０４、入力部９０６、及び検査部９０８が同一の試験装置９００に設けられていたが、図８０に示した例では、通信制御装置１０の入力側の試験装置９００ａが生成部９０２、出力部９０４ａ及び９０４ｂを備え、通信制御装置１０の出力側の試験装置９００ｂが入力部９０６ａ及び９０６ｂ、検査部９０８を備える。
【０３１１】
出力部９０４ａは、生成部９０２が生成した試験データを通信制御装置１０へ出力する。出力部９０４ｂは、生成部９０２が生成した解答データを試験装置９００ｂへ出力する。入力部９０６ａは、通信制御装置１０から出力された結果データを入力する。入力部９０６ｂは、出力部９０４ｂから出力された解答データを入力する。その他の構成及び動作は、図７８に示した例と同様である。
【０３１２】
検査部９０８は、入力部９０６ａがデータを入力した時刻と、入力部９０６ｂが対応するデータを入力した時刻との差を計測することにより、通信制御装置１０における処理時間を推定してもよい。この場合、より正確に通信制御装置１０のスループットを計測するために、出力部９０４ａから通信制御装置１０を介して入力部９０６ａへ至る通信経路と、出力部９０４ｂから入力部９０６ｂへ至る通信経路との通信能力を揃えておくのが好ましい。
【０３１３】
図８１は、実施の形態に係る試験装置の更に別の構成例を示す。図８１に示した例では、通信制御装置１０から２系統のデータが出力される。例えば、パケットフィルタリングを行う通信制御装置１０において、通過させるべきパケットが出力される系統と、遮断すべきパケットに対してエラーメッセージ等が出力される系統が用意されている場合などが考えられる。この場合、通信制御装置１０から出力される２つの系統のデータのそれぞれに対して、試験装置９００ｂ及び９００ｃが設けられる。試験装置９００ａの出力部９０４ｂは、２つの系統の解答データを試験装置９００ｂ及び９００ｃのそれぞれに出力する。試験装置９００ｂの入力部９０６ａは、通信制御装置１０から出力される一方の系統の結果データを入力し、入力部９０６ｂは、その系統の解答データを入力する。試験装置９００ｃの入力部９０６ｃは、通信制御装置１０から出力される他方の系統の結果データを入力し、入力部９０６ｄは、その系統の解答データを入力する。通信制御装置１０から３以上の系統のデータが出力される場合は、それに応じて試験装置９００を設ければよい。
【０３１４】
図８２は、実施の形態に係る試験装置の更に別の構成例を示す。図８１に示した例では、試験装置９００ｂと試験装置９００ｃが別に設けられていたが、図８２に示した例では、同一の試験装置９００ｄが、通信制御装置１０から出力される２系統のデータを検査する。試験装置９００ｄは、通信制御装置１０から出力される２つの系統のデータのそれぞれを入力する入力部９０６ａ及び９０６ｃを有しており、さらに、試験装置９００ａの出力部９０４ｂから出力される２つの系統の解答データを入力する入力部９０６ｂを有している。検査部９０８は、２系統の結果データと解答データとを比較する２つの比較回路９２０を有してもよいし、同一の比較回路９２０を時分割して２系統の結果データと解答データとを比較してもよい。
【０３１５】
図８３は、実施の形態に係る試験装置の更に別の構成例を示す。図８３の例では、通信制御装置１０から出力される信号に基づいてメッセージ等を出力するメッセージ出力サーバ１３０を試験する試験装置９００ｃが設けられている。この場合、試験装置９００ａの生成部９０２は、通信制御装置１０に出力したデータに対応してメッセージ出力サーバ１３０が出力すべき解答データを更に生成し、出力部９０４ｃは、生成された解答データを試験装置９００ｃへ出力する。試験装置９００ｃの入力部９０６ｃは、メッセージ出力サーバ１３０から出力される結果データを入力し、入力部９０６ｄは、出力部９０４ｃから出力される解答データを入力する。検査部９０８ｃは、入力部９０６ｃが入力した結果データと、入力部９０６ｄが入力した解答データとを比較して、メッセージ出力サーバ１３０が正常に動作しているか否かを検査する。これにより、通信制御装置１０だけでなく、通信制御装置１０の周辺装置も含む通信制御システム１００全体を同時に試験することができる。
【０３１６】
図８４は、実施の形態に係る試験装置の更に別の構成例を示す。図８４に示した試験装置９００は、図７８に示した試験装置９００の構成に加えて、更新部９５２及び差分生成部９５４を更に備える。また、生成部９０２に代えて、保持部９５０を備える。その他の構成及び動作は、図７８に示した試験装置９００と同様である。
【０３１７】
保持部９５０は、通信制御装置１０へ出力する試験データと、通信制御装置１０へ出力した試験データを通信制御装置１０の処理実行回路４０が正常に処理したときに処理実行回路４０から出力されるべき解答データとを対応づけて保持する。試験データと解答データは、生成部９０２により生成されて保持部９５０に格納されてもよいし、他の装置から提供されてもよい。
【０３１８】
差分生成部９５４は、データベースサーバ１５０が通信制御装置１０の第１データベース５０又は第２データベース６０を更新するときに、更新される前のデータベースと、更新された後のデータベースとの間の差分を生成する。差分生成部９５４は、データベースサーバ１５０から、更新前のデータベースと更新後のデータベースとを取得して、それらの差分を生成してもよい。また、データベースサーバ１５０において生成された差分を取得してもよい。差分生成部９５４は、更新前後のデータベースの差分を更新部９５２及び出力部９０４へ通知する。
【０３１９】
更新部９５２は、通信制御装置１０の第１データベース５０又は第２データベース６０が更新されるときに、データベースの更新に伴って、保持部９５０に保持されたデータを更新する。更新部９５２は、差分生成部９５４から更新前後のデータベースの差分を取得し、更新されたレコードに関連する試験データと解答データを生成してもよい。また、他の装置において生成された試験データと解答データを取得してもよい。更新部９５２は、新たに生成された試験データと解答データを保持部９５０に格納する。更新部９５２は、更新した試験データと解答データのレコードを出力部９０４へ通知する。
【０３２０】
出力部９０４は、保持部９５０に保持されたデータのうち、更新部９５２により更新されたレコードの試験データを選択して通信制御装置１０へ出力する。出力部９０４は、保持部９５０に保持されたデータのうち、差分生成部９５４が生成した更新前後のデータベースの差分のレコードに記憶されている基準データを含む試験データを選択して通信制御装置１０へ出力してもよい。これにより、データベースの更新されたレコードに関する試験のみを選択的に行うことができるので、試験の効率を向上させることができる。また、更新されたレコードを重点的に試験することができるので、試験の精度を向上させることができる。
【０３２１】
通信制御装置１０が、ＩＣＭＰ（Internet Control Message Protocol）などのプロトコルにより、通信データの送信元に対して応答データを返信する機能を有している場合、試験装置９００は、通信制御装置１０が返信する応答データを試験してもよい。この場合、保持部９５０は、通信制御装置１０へ出力するデータに対して通信制御装置１０が返信すべき応答データを更に保持する。入力部９０６は、通信制御装置１０へ出力したデータに対して通信制御装置１０から返信された応答データを更に入力する。入力部９０６は、出力部９０４が通信制御装置１０へ試験データを出力するポートと同じポートから応答データを入力してもよい。検査部９０８は、通信制御装置１０から返信された応答データを、保持部９５０に保持されている応答データと比較することにより、応答データが正常に返信されているか否かを更に検査する。
【０３２２】
前提技術で説明したように、通信制御装置１０が、通信データの制御に際して所定の宛先へメッセージを送信する機能を有している場合、試験装置９００は、通信制御装置１０が送信するメッセージを試験してもよい。この場合、保持部９５０は、通信制御装置１０へ出力するデータに対して通信制御装置１０が送信すべきメッセージを更に保持する。入力部９０６は、通信制御装置１０へ出力したデータに対して通信制御装置１０から送信されたメッセージを更に入力する。入力部９０６は、通信制御装置１０のメッセージ出力ポート２１から送信されたメッセージを受信するためのメッセージ入力ポートを有していてもよい。入力部９０６は、メッセージ出力サーバ１３０から送信されたメッセージを受信してもよい。検査部９０８は、通信制御装置１０から送信されたメッセージを、保持部９５０に保持されているメッセージと比較することにより、メッセージが正常に送信されているか否かを更に検査する。
【０３２３】
前提技術で説明したように、通信制御装置１０が、通信データの制御に際してログを出力する機能を有している場合、試験装置９００は、通信制御装置１０が出力するログを試験してもよい。この場合、保持部９５０は、通信制御装置１０へ出力するデータに対して通信制御装置１０が出力すべきログを更に保持する。入力部９０６は、通信制御装置１０へ出力したデータに対して通信制御装置１０から出力されたログを更に入力する。入力部９０６は、通信制御装置１０のログ出力ポート２２から出力されたログを入力するためのログ入力ポートを有していてもよい。入力部９０６は、ログ管理サーバ１４０から出力されたログを入力してもよい。検査部９０８は、通信制御装置１０から出力されたログを、保持部９５０に保持されているログと比較することにより、ログが正常に出力されているか否かを更に検査する。
【０３２４】
以上の技術により、通信制御装置１０が、通信データ以外に、応答データ、メッセージ、ログなどを出力する機能を有している場合であっても、それらの機能が正常に動作しているか否かを同時に試験することができる。
【０３２５】
本実施の形態の通信制御装置１０は、ＩＰアドレスを有しない完全透過型の通信機であり、通信データを物理的に着信せずに上記の機能を実行する。つまり、通信制御装置１０は、ネットワークを通過中の通信データを取り込み、プロトコル処理など物理的な着信に要する処理を省略して、上述した処理を行い、所定の条件にしたがって通信データをネットワークへ再送出する。従来の通信機は、自装置宛の通信データを受信して制御していたが、本実施の形態の通信制御装置１０は、自装置宛に送信されたのではない通過中の通信データを取り込んで制御する。したがって、送信元及び送信先の装置や、通信経路に設けられた他の通信装置は、通信制御装置１０が設けられることによる設定等の変更を何ら必要とすることなく、通信制御装置１０の存在を全く意識せずに通信を行うことができる。したがって、本実施の形態の技術によれば、通信システムに大きな改変を行うことなく、上記のような通信制御を行うことができる。また、本実施の形態の通信制御装置１０はＩＰアドレスを有しないので、悪意あるハッカーなどから攻撃を受けることがなく、セキュリティ性に優れている。
【０３２６】
上記の実施の形態で説明した通信制御装置の第１データベース５０又は第２データベース６０は、連想メモリ（Content Addressable Memory：ＣＡＭ）により構成されてもよい。通信制御装置に求められる仕様に応じて、第１データベース５０又は第２データベース６０の一部が連想メモリにより構成されてもよいし、全部が連想メモリにより構成されてもよい。この場合、検索回路３０の機能の一部又は全部も、ＣＡＭにより実現されてもよい。
【０３２７】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【０３２８】
【図１】前提技術に係る通信制御システムの構成を示す図である。
【図２】従来の通信制御装置の構成を示す図である。
【図３】前提技術に係る通信制御装置の構成を示す図である。
【図４】パケット処理回路の構成を示す図である。
【図５】位置検出回路の構成を示す図である。
【図６】位置検出回路の別の例を示す図である。
【図７】位置検出回路の別の例を示す図である。
【図８】第１データベースの内部データの例を示す図である。
【図９】第１データベースの内部データの別の例を示す図である。
【図１０】第１データベースの内部データの更に別の例を示す図である。
【図１１】インデックス回路の別の例を示す図である。
【図１２】バイナリサーチ回路に含まれる比較回路の構成を示す図である。
【図１３】バイナリサーチ回路の構成を示す図である。
【図１４】第１のデータベースの内部データの更に別の例を示す図である。
【図１５】第２データベースの内部データの例を示す図である。
【図１６】第２データベースの内部データの別の例を示す図である。
【図１７】前提技術に係る通信制御装置の別の構成例を示す図である。
【図１８】複数の通信制御装置を含む通信制御装置の構成を示す図である。
【図１９】運用監視サーバに設けられた管理テーブルの内部データの例を示す図である。
【図２０】通信制御装置が故障したときの運用方法を説明するための図である。
【図２１】図２１（ａ）（ｂ）（ｃ）は、通信制御装置のデータベースを更新する方法を説明するための図である。
【図２２】複数の通信制御装置によりパケットを処理するために設けられた通信経路制御装置の構成を示す図である。
【図２３】ＵＲＬフィルタリングのためのパケット処理回路の内部構成を示す図である。
【図２４】図２４（ａ）は、ウイルス／フィッシングサイトリストの内部データの例を示す図であり、図２４（ｂ）は、ホワイトリストの内部データの例を示す図であり、図２４（ｃ）は、ブラックリストの内部データの例を示す図である。
【図２５】共通カテゴリリストの内部データの例を示す図である。
【図２６】図２６（ａ）（ｂ）（ｃ）（ｄ）は、第２データベースの内部データの例を示す図である。
【図２７】ウイルス／フィッシングサイトリスト、ホワイトリスト、ブラックリスト、及び共通カテゴリリストの優先度を示す図である。
【図２８】通信制御システムの配置例を示す図である。
【図２９】通信制御システムの配置例を示す図である。
【図３０】通信制御システムの配置例を示す図である。
【図３１】通信制御システムの配置例を示す図である。
【図３２】通信制御システムの配置例を示す図である。
【図３３】通信制御システムの配置例を示す図である。
【図３４】実施の形態に係る通信制御装置の構成を示す図である。
【図３５】実施の形態に係る通信制御技術を説明するための概念図である。
【図３６】実施の形態に係る通信制御装置の別の構成例を示す図である。
【図３７】実施の形態に係る通信制御技術を説明するための概念図である。
【図３８】実施の形態に係るパケット処理回路の構成を示す図である。
【図３９】通信制御装置が取得した通信データの例を示す図である。
【図４０】通信制御装置において実行すべき処理を判定するためのフローチャートの例を示す図である。
【図４１】実施の形態に係る判定方法を説明するための図である。
【図４２】実施の形態に係る第１データベース及び第２データベースの内部データの例を示す図である。
【図４３】実施の形態に係る第１データベース及び第２データベースの内部データの別の例を示す図である。
【図４４】実施の形態に係る判定方法の別の例を説明するための図である。
【図４５】実施の形態に係る第１データベース及び第２データベースの内部データの別の例を示す図である。
【図４６】実施の形態に係るパケット処理回路の別の構成例を示す図である。
【図４７】実施の形態に係る判定方法の別の例を説明するための図である。
【図４８】実施の形態に係るパケット処理回路の別の構成例を示す図である。
【図４９】実施の形態に係る検知回路の構成を示す図である。
【図５０】実施の形態に係る通信制御装置のパケット処理回路の構成を示す図である。
【図５１】ユーザデータベースの内部データの例を示す図である。
【図５２】実施の形態に係る通信管理システムの構成を示す図である。
【図５３】実施の形態に係るパケット処理回路の構成を示す図である。
【図５４】バイナリサーチ回路の別の構成例を示す図である。
【図５５】バイナリサーチ回路の更に別の構成例を示す図である。
【図５６】実施の形態に係る通信制御装置のパケット処理回路の構成を示す図である。
【図５７】ユーザデータベースの内部データの例を示す図である。
【図５８】実施の形態に係るパケット処理回路の構成を示す図である。
【図５９】実施の形態に係る通信制御システムの構成を示す図である。
【図６０】通信制御システムの配置例を示す図である。
【図６１】通信制御システムの配置例を示す図である。
【図６２】通信制御システムの配置例を示す図である。
【図６３】通信制御システムの配置例を示す図である。
【図６４】実施の形態に係る通信制御システムの構成を示す図である。
【図６５】実施の形態に係る通信制御方法の手順を示すシーケンス図である。
【図６６】実施の形態に係る通信制御方法の手順を示すシーケンス図である。
【図６７】実施の形態に係る通信制御システムの別の構成例を示す図である。
【図６８】電話端末が他の電話端末を発呼するための通信データが送信される様子を示す図である。
【図６９】実施の形態に係るメッセージ出力サーバの構成を示す図である。
【図７０】実施の形態に係る通信制御装置の構成を示す図である。
【図７１】ログ出力制御回路に備えられた第１データベース及び第２データベースの内部データの例を示す図である。
【図７２】実施の形態に係るメッセージ出力サーバの構成を示す図である。
【図７３】負荷状況保持部の内部データの例を示す図である。
【図７４】実施の形態に係るメッセージ出力サーバの構成を示す図である。
【図７５】メッセージ出力制御回路に備えられた第１データベース及び第２データベースの内部データの例を示す図である。
【図７６】実施の形態に係る通信制御装置の構成を示す図である。
【図７７】管理テーブルの内部データの例を示す図である。
【図７８】実施の形態に係る試験装置の構成を示す図である。
【図７９】検査部の構成を示す図である。
【図８０】実施の形態に係る試験装置の別の構成例を示す図である。
【図８１】実施の形態に係る試験装置の更に別の構成例を示す図である。
【図８２】実施の形態に係る試験装置の更に別の構成例を示す図である。
【図８３】実施の形態に係る試験装置の更に別の構成例を示す図である。
【図８４】実施の形態に係る試験装置の更に別の構成例を示す図である。
【符号の説明】
【０３２９】
１０  通信制御装置、１２  通信制御ユニット、１４  切替制御部、２０  パケット処理回路、３０  検索回路、３２  位置検出回路、３３  比較回路、３４  インデックス回路、３５  比較回路、３６  バイナリサーチ回路、３６Ａ〜３６Ｏ  比較回路、３６Ｚ  制御回路、３７  否定回路、３８Ａ，３８Ｂ  排他的論理和回路、４０  処理実行回路、４２  編集部、４４  複製部、４６  記憶装置、５０  第１データベース、６０  第２データベース、１００  通信制御システム、１１０  運用監視サーバ、１２０  接続管理サーバ、１３０  メッセージ出力サーバ、１３１  メッセージ出力部、１３２  メッセージ保持部、１３３  履歴保持部、１３４  評価部、１３５  登録受付部、１３６  課金部、１３７  緊急電話制御部、１３８  位置情報保持部、１３９  返信部、１４０  ログ管理サーバ、１４１  ログ出力制御回路、１４２  ログ出力設定部、１４３  ログ出力ポート、１４５  ログ出力制御装置、１５０  データベースサーバ、１６０  ＵＲＬデータベース、１６１  ウイルス／フィッシングサイトリスト、１６２  ホワイトリスト、１６３  ブラックリスト、１６４  共通カテゴリリスト、１７１  メッセージ出力制御回路、１７２  メッセージ出力設定部、１７３  メッセージ出力ポート、１７４  負荷状況保持部、１８０  切替部、１８１  ＵＲＬフィルタリング用データベース、１８２  スパムメールフィルタリング用データベース、１８３  Ｐ２Ｐ帯域制御用データベース、１９０  通信経路制御装置、２０１  検知回路、２０２  入力部、２０４  カウンタ回路、２０６  報知部、２１０  電話端末、２２０  緊急通報機関、２６０  携帯電話端末、２６２  基地局装置、２６４  制御局装置、２７２  アクセスポイント、２７４，２８２，２８４  ルータ装置、２８０  ＩＰ電話端末、２９０  ＰＣ、３００  比較対象抽出回路、３１０  通信データ、３２０  比較対象データ、３３０  比較対象設定回路、３４０  報知回路、３８０  マスク回路、３８２  ワークメモリ、４００  帯域制御回路、４０５  選択回路、４１０  登録部、４２０  クラス別管理回路、４３０  管理テーブル、４４０  通信データ登録ＲＡＭ、４５０  データ取出回路、４６０  ユーザデータベース更新部、５０２  通信装置、５０４  通信装置、５１０  判定部、５２０  仮想通信装置、６００  通信管理システム、６１０  ユーザ端末、６２０  ボット、６２２  ボットネット、６３２  正常シグネチャリスト、６３４  異常シグネチャリスト、６３６  ルールデータベース、６４０  運用者端末、６４２  警告取得部、６４４  通信データ取得部、６４６  解析部、６４８  判定結果取得部、６５２  正常シグネチャリスト更新部、６５４  異常シグネチャリスト更新部、６５６  ルールデータベース更新部、６６２  正常シグネチャリスト、６６４  異常シグネチャリスト、６６６  ルールデータベース、６９０  インターネット、９００  試験装置、９０２  生成部、９０４  出力部、９０６  入力部、９０８  検査部、９２０  比較回路、９２２  判定回路、９３０  報知部、９３２  表示装置、９３４  スピーカ、９４０  ログ記録部、９４２  ログ保持部、９５０  保持部、９５２  更新部、９５４  差分生成部。
【図１】
2009181361.tif 000003
【図２】
2009181361.tif 000004
【図３】
2009181361.tif 000005
【図４】
2009181361.tif 000006
【図５】
2009181361.tif 000007
【図６】
2009181361.tif 000008
【図７】
2009181361.tif 000009
【図８】
2009181361.tif 000010
【図９】
2009181361.tif 000011
【図１０】
2009181361.tif 000012
【図１１】
2009181361.tif 000013
【図１２】
2009181361.tif 000014
【図１３】
2009181361.tif 000015
【図１４】
2009181361.tif 000016
【図１５】
2009181361.tif 000017
【図１６】
2009181361.tif 000018
【図１７】
2009181361.tif 000019
【図１８】
2009181361.tif 000020
【図１９】
2009181361.tif 000021
【図２０】
2009181361.tif 000022
【図２１】
2009181361.tif 000023
【図２２】
2009181361.tif 000024
【図２３】
2009181361.tif 000025
【図２４】
2009181361.tif 000026
【図２５】
2009181361.tif 000027
【図２６】
2009181361.tif 000028
【図２７】
2009181361.tif 000029
【図２８】
2009181361.tif 000030
【図２９】
2009181361.tif 000031
【図３０】
2009181361.tif 000032
【図３１】
2009181361.tif 000033
【図３２】
2009181361.tif 000034
【図３３】
2009181361.tif 000035
【図３４】
2009181361.tif 000036
【図３５】
2009181361.tif 000037
【図３６】
2009181361.tif 000038
【図３７】
2009181361.tif 000039
【図３８】
2009181361.tif 000040
【図３９】
2009181361.tif 000041
【図４０】
2009181361.tif 000042
【図４１】
2009181361.tif 000043
【図４２】
2009181361.tif 000044
【図４３】
2009181361.tif 000045
【図４４】
2009181361.tif 000046
【図４５】
2009181361.tif 000047
【図４６】
2009181361.tif 000048
【図４７】
2009181361.tif 000049
【図４８】
2009181361.tif 000050
【図４９】
2009181361.tif 000051
【図５０】
2009181361.tif 000052
【図５１】
2009181361.tif 000053
【図５２】
2009181361.tif 000054
【図５３】
2009181361.tif 000055
【図５４】
2009181361.tif 000056
【図５５】
2009181361.tif 000057
【図５６】
2009181361.tif 000058
【図５７】
2009181361.tif 000059
【図５８】
2009181361.tif 000060
【図５９】
2009181361.tif 000061
【図６０】
2009181361.tif 000062
【図６１】
2009181361.tif 000063
【図６２】
2009181361.tif 000064
【図６３】
2009181361.tif 000065
【図６４】
2009181361.tif 000066
【図６５】
2009181361.tif 000067
【図６６】
2009181361.tif 000068
【図６７】
2009181361.tif 000069
【図６８】
2009181361.tif 000070
【図６９】
2009181361.tif 000071
【図７０】
2009181361.tif 000072
【図７１】
2009181361.tif 000073
【図７２】
2009181361.tif 000074
【図７３】
2009181361.tif 000075
【図７４】
2009181361.tif 000076
【図７５】
2009181361.tif 000077
【図７６】
2009181361.tif 000078
【図７７】
2009181361.tif 000079
【図７８】
2009181361.tif 000080
【図７９】
2009181361.tif 000081
【図８０】
2009181361.tif 000082
【図８１】
2009181361.tif 000083
【図８２】
2009181361.tif 000084
【図８３】
2009181361.tif 000085
【図８４】
2009181361.tif 000086