(57)【特許請求の範囲】
【請求項１】
アクセス制御の対象となるユーザがアクセス先にアクセスするために送信したパケットを取得し、前記ユーザによる前記アクセス先に対するアクセスの許否を判定する処理を行う複数の通信制御装置と、
取得したパケットをブロードキャストに変換することなく、ユニキャストのまま複数の前記通信制御装置へ並行して供給するデータ供給ユニットと、を備え、
前記通信制御装置は、
複数の前記通信制御装置のそれぞれが処理すべき前記ユーザの識別情報のリストが格納された第１のデータベースと、前記ユーザごとに、前記アクセス先に対するアクセスの許否を格納した第２のデータベースと、を含むデータ保持ユニットと、
自装置宛のパケットであるか否かを判定せずにパケットを取得し、前記第１のデータベースを参照して、前記パケットのヘッダ部に格納された情報ではなくデータ部に格納された識別情報を用いて、自装置が処理すべきユーザが送信したパケットであるか否かを判定する判定部と、
自装置が処理すべきユーザが送信したのではないと判定されたパケットを破棄し、自装置が処理すべきユーザが送信したと判定されたパケットに対して、前記第２のデータベースを参照して、前記アクセス先に対するアクセスの許否を判定する処理部と、を含み、
複数の前記通信制御装置は、前記第１のデータベースを共通に保持するとともに、前記第２のデータベースを分割してそれぞれ保持する
ことを特徴とするデータ処理システム。
【請求項２】
前記通信制御装置は、前記第１のデータベースに格納された識別情報のリストうち、自身が処理すべき識別情報の範囲を通知され、前記処理すべき識別情報の範囲に該当する識別情報を含むパケットを取得したときには、そのパケットを処理することを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記複数の通信制御装置のうち少なくとも一つは、前記第１のデータベースに格納された識別情報のリストのうち、いずれの識別情報も含まないパケットを取得したときに、そのパケットをそのまま透過させることを特徴とする請求項１又は２に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関し、特に、複数のデータベースを運用する技術に関する。
【背景技術】
【０００２】
インターネットのインフラが整備され、携帯電話端末、パーソナルコンピュータ、ＶｏＩＰ（Voice over Internet Protocol）電話端末などの通信端末が広く普及した現在、インターネットの利用者は爆発的に増加している。このような状況下、コンピュータウイルス、ハッキング、スパムメールなど、セキュリティに関する問題が顕在化しており、通信を適切に制御する技術が求められている。【０００３】
インターネットを利用して、膨大な情報に容易にアクセスすることができるようになったが、有害な情報が氾濫してきているのも事実であり、有害な情報の発信元に対する規制が追いつかない状況にある。誰もが安心して効果的にインターネットを利用する環境を整えるために、有害なコンテンツに対するアクセスを適切に制御する技術が求められる。【０００４】
例えば、アクセス許可サイトのリスト、アクセス禁止サイトのリスト、禁止語キーワード、有益語キーワードなどのデータベースを用意し、インターネットを介して外部情報へアクセスする際に、これらのデータベースを参照して、アクセスを制御する技術が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００１−２８２７９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されたようなアクセス制御を実現するシステムにおいて、ユーザ数が増加した場合、データベースが膨大になって、格納可能な容量を超える可能性がある。このときに、システム全体を交換しなければならないような構成であったら、無駄な費用がかかり、効率的ではない。また、データベースを更新するなど、運用を停止しなければならないときに、代わりに運用するためのシステムをもう１台設けておくのは、システムが大規模になればなるほど無駄が多く、効率的ではない。【０００６】
本発明はこうした状況に鑑みてなされたものであり、その目的は、複数のデータベースを適切に運用する技術の提供にある。
【課題を解決するための手段】
【０００７】
本発明のある態様は、データ処理装置に関する。このデータ処理システムは、取得したデータを処理するデータ処理ユニットと、前記データの処理に用いられるデータベースを格納するための複数のデータ保持ユニットと、を備えるデータ処理システムにおいて、前記複数のデータ保持ユニットは、第１のデータベースを共通に保持するとともに、第２のデータベースを分割してそれぞれ保持し、前記データ処理システムは、前記第１のデータベース及び分割された前記第２のデータベースを保持可能な前記データ保持ユニットを更に少なくとも１つ備えることを特徴とする。【０００８】
複数のデータ保持ユニットにデータベースを分割して保持させ、それらを協働させて運用することにより、個々のデータ保持ユニットの規模を抑えることができるので、データ量の増大などに伴ってシステムの規模を増大させるときの費用や工数を低減することができる。また、データベースの更新などのために、大規模なデータ処理装置全体を二重化して待機させる必要はなく、比較的小規模なデータ保持ユニットを少なくとも１台余分に設けて待機させればよいので、システムの構成が簡素化され、初期投資や運用費用を抑えることができる。【０００９】
前記第１のデータベースには、分割された前記第２のデータベースのいずれを用いて前記データが処理されるべきかを判定するためのデータが格納されてもよい。例えば、第１のデータベースには、ユーザを認証するためのデータが格納され、第２のデータベースには、ユーザごとにデータ処理の内容などの情報が格納されてもよい。【００１０】
データ処理システムは、前記複数のデータ保持ユニットの運用状況を管理する運用管理ユニットを更に備えてもよく、前記運用管理ユニットは、前記第２のデータベースを分割して保持するのに必要な数のデータ保持ユニットを運用させるとともに、それ以外のデータ保持ユニットを待機させ、前記運用管理ユニットは、前記データ保持ユニットに保持されたデータベースを更新するときに、待機中のデータ保持ユニットに、運用中のデータ保持ユニットのうちいずれかのデータ保持ユニットが保持しているデータベースの更新データを格納した後、更新前のデータベースを保持する前記データ保持ユニットから、更新後のデータベースを保持する前記データ保持ユニットへ、運用を切り替えてもよい。これにより、運用を停止することなく、データベースを更新することができる。【００１１】
前記運用管理ユニットは、運用中のデータ保持ユニットが運用不可能な状態になったことを検知したときに、そのデータ保持ユニットが保持していたデータベースを、待機中のデータ保持ユニットに保持させ、待機中のデータ保持ユニットに運用を切り替えてもよい。これにより、いずれかのデータ保持ユニットが故障などにより停止してしまった場合であっても、適切に運用を継続することができる。【００１２】
前記待機中のデータ保持ユニットに、前記第１のデータベースが予め格納されてもよい。共通に用いられ、また、分割された第２のデータベースのいずれを用いてデータが処理されるべきかを判定するためのデータが格納された第１のデータベースを予め格納しておくことにより、いずれかのデータ保持ユニットが運用不可能な状態になったときに、即座に待機中のデータ保持ユニットに運用を切り替えることができる。【００１３】
前記データ処理ユニットは、前記複数のデータ保持ユニットのそれぞれに対応して複数設けられてもよく、前記データ処理システムは、取得したデータを前記複数のデータ処理ユニットへ並行して供給するデータ供給ユニットを更に備えてもよい。これにより、データ保持ユニットを追加しても、また、データベースの更新などによりそれぞれのデータ保持ユニットが保持するデータベースの内容が変わっても、適切にデータ処理ユニットによりデータを処理することができる。【００１４】
前記データ供給ユニットは、取得したデータを加工することなく、そのままの形で前記複数のデータ処理ユニットへ並行して供給してもよい。これにより、データ供給ユニットにおいてデータを加工する処理を省き、データ処理速度を向上させることができる。【００１５】
前記複数のデータ処理ユニットは、前記データ供給ユニットからデータを取得したとき、対応する前記データ保持ユニットが保持するデータベースを参照して、自身が処理すべきデータであるか否かを判定してもよい。これにより、処理すべきデータ処理ユニットに、適切にデータを処理させることができる。【００１６】
前記データ処理ユニットは、パケットを取得して通信を制御する通信制御装置であり、前記データ供給ユニットからパケットを取得したとき、自装置宛のパケットであるか否かを判定せずにパケットを取得し、対応する前記データ保持ユニットが保持するデータベースを参照して、自身が処理すべきパケットであるか否かを判定してもよい。これにより、データ処理ユニットにおいて、ＭＡＣアドレスやＩＰアドレスなどのチェックを行う処理を省き、パケットの処理速度を向上させることができる。【００１７】
前記通信制御装置は、前記パケットのヘッダ部に格納された情報ではなく、データ部に格納された情報を用いて、自身が処理すべきパケットであるか否かを判定してもよい。前記通信制御装置は、対応する前記データ保持ユニットが保持する第１のデータベースを参照して、自身が処理すべきパケットであるか否かを判定してもよい。【００１８】
自身が処理すべきパケットであると判定したデータ処理ユニットは、そのパケットを処理し、自身が処理すべきパケットではないと判定したデータ処理ユニットは、そのパケットを破棄してもよい。【００１９】
前記第１のデータベースには、前記複数のデータ処理ユニットのいずれかにより処理されるべきデータを識別するためのＩＤのリストが格納されていてもよく、前記データ処理ユニットは、前記第１のデータベースに格納されたＩＤのリストのうち、自身が処理すべきＩＤの範囲を通知され、前記処理すべきＩＤの範囲に該当するＩＤを含むパケットを取得したときには、そのパケットを処理してもよい。前記複数のデータ処理ユニットのうち少なくとも一つは、前記第１のデータベースに格納されたＩＤのリストのうち、いずれのＩＤも含まないパケットを取得したときに、そのパケットをそのまま透過させてもよい。【００２０】
前記データ供給ユニットは、取得したパケットをブロードキャストに変換することなく、ユニキャストのまま前記複数の通信制御装置へ並行して供給してもよい。これにより、データ供給ユニットがパケットをブロードキャストに変換するためにヘッダを加工するなどの処理を省き、パケットの処理速度を向上させることができる。【００２１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２２】
本発明によれば、複数のデータベースを適切に運用する技術を提供することができる。
【図面の簡単な説明】
【００２３】
【図１】前提技術に係る通信制御システムの構成を示す図である。
【図２】従来の通信制御装置の構成を示す図である。
【図３】前提技術に係る通信制御装置の構成を示す図である。
【図４】パケット処理回路の内部構成を示す図である。
【図５】位置検出回路の内部構成を示す図である。
【図６】第１データベースの内部データの例を示す図である。
【図７】第１データベースの内部データの別の例を示す図である。
【図８】第１データベースの内部データのさらに別の例を示す図である。
【図９】バイナリサーチ回路に含まれる比較回路の構成を示す図である。
【図１０】第２データベースの内部データの例を示す図である。
【図１１】第２データベースの内部データの別の例を示す図である。
【図１２】前提技術に係る通信制御装置の別の構成例を示す図である。
【図１３】ＵＲＬフィルタリングのためのパケット処理回路の内部構成を示す図である。
【図１４】図１４（ａ）は、ウイルス／フィッシングサイトリストの内部データの例を示す図であり、図１４（ｂ）は、ホワイトリストの内部データの例を示す図であり、図１４（ｃ）は、ブラックリストの内部データの例を示す図である。
【図１５】共通カテゴリリストの内部データの例を示す図である。
【図１６】図１６（ａ）（ｂ）（ｃ）（ｄ）は、第２データベースの内部データの例を示す図である。
【図１７】ウイルス／フィッシングサイトリスト、ホワイトリスト、ブラックリスト、及び共通カテゴリリストの優先度を示す図である。
【図１８】実施の形態に係る通信制御システムの構成を示す図である。
【図１９】実施の形態に係る通信制御装置の構成を示す図である。
【図２０】運用監視サーバに設けられた管理テーブルの内部データの例を示す図である。
【図２１】通信制御装置が故障したときの運用方法を説明するための図である。
【図２２】図２２（ａ）（ｂ）（ｃ）は、通信制御装置のデータベースを更新する方法を説明するための図である。
【図２３】複数の通信制御装置によりパケットを処理するために設けられた通信経路制御装置の構成を示す図である。
【図２４】複数の通信制御装置のうちいずれか一つによりパケットが処理される様子を示す図である。
【図２５】複数の通信制御装置のうちいずれか一つによりパケットが透過される様子を示す図である。
【符号の説明】
【００２４】
１０  通信制御装置、１２  通信制御ユニット、１４  切替制御部、２０  パケット処理回路、３０  検索回路、３２  位置検出回路、３３  比較回路、３４  インデックス回路、３５  比較回路、３６  バイナリサーチ回路、４０  処理実行回路、５０  第１データベース、５７  ユーザデータベース、６０  第２データベース、１００  通信制御システム、１１０  運用監視サーバ、１１１  管理テーブル、１２０  接続管理サーバ、１３０  メッセージ出力サーバ、１４０  ログ管理サーバ、１５０  データベースサーバ、１６０  ＵＲＬデータベース、１６１  ウイルス／フィッシングサイトリスト、１６２  ホワイトリスト、１６３  ブラックリスト、１６４  共通カテゴリリスト、２００  通信経路制御装置、２１０  スイッチ、２２０  光スプリッタ、２３０  スイッチ。
【発明を実施するための最良の形態】
【００２５】
（前提技術）
まず、前提技術として、データ処理装置の一例である通信制御装置と、その周辺装置の構成及び動作の概要について説明し、更に、通信制御装置を用いたＵＲＬフィルタリング技術について説明した後、実施の形態として、複数の通信制御装置を運用する技術について説明する。【００２６】
図１は、前提技術に係る通信制御システムの構成を示す。通信制御システム１００は、通信制御装置１０と、通信制御装置１０の動作を支援するために設けられた各種の周辺装置を含む。前提技術の通信制御装置１０は、インターネットサービスプロバイダなどにより提供されるＵＲＬフィルタリング機能を実現する。ネットワークの経路に設けられた通信制御装置１０は、コンテンツに対するアクセス要求を取得して、その内容を解析し、コンテンツに対するアクセスの許否を判断する。コンテンツに対するアクセスが許可される場合は、通信制御装置１０は、そのアクセス要求を、コンテンツを保持するサーバへ送出する。コンテンツに対するアクセスが禁止される場合は、通信制御装置１０は、そのアクセス要求を破棄し、要求元に対して警告メッセージなどを返信する。前提技術では、通信制御装置１０は、ＨＴＴＰ（HyperText Transfer Protocol）の「ＧＥＴ」リクエストメッセージ等のアクセス要求を受信し、アクセス先のコンテンツのＵＲＬが、アクセスの許否を判断するための基準データのリストに合致するか否かを検索して、コンテンツに対するアクセスの許否を判断する。【００２７】
周辺装置は、運用監視サーバ１１０、接続管理サーバ１２０、メッセージ出力サーバ１３０、ログ管理サーバ１４０、及びデータベースサーバ１５０を含む。接続管理サーバ１２０は、通信制御装置１０に対する接続を管理する。接続管理サーバ１２０は、例えば、携帯電話端末から送出されたパケットを通信制御装置１０で処理する際に、パケットに含まれる携帯電話端末を一意に識別する情報を用いて、通信制御装置１０のユーザであることを認証する。いったん認証されると、その携帯電話端末に一時的に付されたＩＰアドレスから送出されたパケットは、一定の期間は接続管理サーバ１２０で認証せずに通信制御装置１０へ送られて処理される。メッセージ出力サーバ１３０は、通信制御装置１０により判定されたアクセスの許否の結果に応じて、アクセスの要求先又は要求元に対するメッセージを出力する。ログ管理サーバ１４０は、通信制御装置１０の運用履歴を管理する。データベースサーバ１５０は、ＵＲＬデータベース１６０から最新のデータベースを取得し、通信制御装置１０に入力する。通信制御装置１０の運用を止めずにデータベースを更新するために、通信制御装置１０はバックアップ用のデータベースを有してもよい。運用監視サーバ１１０は、通信制御装置１０と、接続管理サーバ１２０、メッセージ出力サーバ１３０、ログ管理サーバ１４０、データベースサーバ１５０などの周辺装置の運用状況を監視する。運用監視サーバ１１０は、通信制御システム１００の中で最も優先度が高く、通信制御装置１０及び全ての周辺装置の監視制御を行う。通信制御装置１０は、後述するように、専用のハードウェア回路により構成されるが、運用監視サーバ１１０は、本出願人による特許第３０４１３４０号などの技術を利用して、バウンダリスキャン回路を利用して監視のためのデータを通信制御装置１０などとの間で入出力することにより、通信制御装置１０の運用中にも運用状況を監視することができる。【００２８】
前提技術の通信制御システム１００は、以下に説明するように、高速化のために専用のハードウェア回路により構成された通信制御装置１０を、周辺に接続された各種の機能を有するサーバ群により制御する構成とすることにより、サーバ群のソフトウェアを適当に入れ替えることで、同様の構成により各種の機能を実現することができる。前提技術によれば、このような柔軟性の高い通信制御システムを提供することができる。【００２９】
図２は、従来の通信制御装置１の構成を示す。従来の通信制御装置１は、受信側の通信制御部２と、パケット処理部３と、送出側の通信制御部４とを備える。通信制御部２及び４は、それぞれ、パケットの物理層の処理を行うＰＨＹ処理部５ａ及び５ｂと、パケットのＭＡＣ層の処理を行うＭＡＣ処理部６ａ及び６ｂとを備える。パケット処理部３は、ＩＰ（Internet Protocol）のプロトコル処理を行うＩＰ処理部７、ＴＣＰ（Transport Control Protocol）のプロトコル処理を行うＴＣＰ処理部８など、プロトコルに応じた処理を行うプロトコル処理部と、アプリケーション層の処理を行うＡＰ処理部９とを備える。ＡＰ処理部９は、パケットに含まれるデータに応じて、フィルタリングなどの処理を実行する。【００３０】
従来の通信制御装置１では、パケット処理部３は、汎用プロセッサであるＣＰＵと、ＣＰＵ上で動作するＯＳとを利用して、ソフトウェアにより実現されていた。しかしながら、このような構成では、通信制御装置１の性能はＣＰＵの性能に依存することになり、高速に大容量のパケットを処理可能な通信制御装置を実現しようとしても、自ずと限界がある。例えば、６４ビットのＣＰＵであれば、一度に同時に処理可能なデータ量は最大で６４ビットであり、それ以上の性能を有する通信制御装置は存在しなかった。また、汎用的な機能を有するＯＳの存在を前提としていたので、セキュリティホールなどが存在する可能性が絶無ではなく、ＯＳのバージョンアップなどのメンテナンス作業を必要としていた。【００３１】
図３は、前提技術の通信制御装置の構成を示す。通信制御装置１０は、図２に示した従来の通信制御装置１においてはＣＰＵ及びＯＳを含むソフトウェアにより実現されていたパケット処理部３に代えて、ワイヤードロジック回路による専用のハードウェアにより構成されたパケット処理回路２０を備える。汎用処理回路であるＣＰＵにおいて動作するＯＳとソフトウェアにより通信データを処理するのではなく、通信データを処理するための専用のハードウェア回路を設けることにより、ＣＰＵやＯＳなどに起因する性能の限界を克服し、処理能力の高い通信制御装置を実現することが可能となる。【００３２】
例えば、パケットフィルタリングなどを実行するために、パケットに含まれるデータに、フィルタリングの判断基準となる基準データが含まれるか否かを検索する場合に、ＣＰＵを用いて通信データと基準データを比較すると、一度に高々６４ビットしか比較することができず、処理速度を向上させようとしてもＣＰＵの性能で頭打ちになるという問題があった。ＣＰＵでは、通信データから６４ビットをメモリへ読み上げ、基準データとの比較を行い、つづいて、次の６４ビットをメモリへ読み上げる、という処理を何度も繰り返し行う必要があるので、メモリへの読み上げ時間が律速となり、処理速度に限界がある。【００３３】
それに対し、前提技術では、通信データと基準データとを比較するために、ワイヤードロジック回路により構成された専用のハードウェア回路を設ける。この回路は、６４ビットよりも長いデータ長、例えば、１０２４ビットのデータ長の比較を可能とするために、並列に設けられた複数の比較器を含む。このように、専用のハードウェアを設けることにより、同時に並列して多数のビットマッチングを実行することができる。従来のＣＰＵを用いた通信制御装置１では一度に６４ビットしか処理できなかったところを、一度に１０２４ビットの処理を可能にすることで、飛躍的に処理速度を向上させることができる。比較器の数を多くすれば処理能力も向上するが、コストやサイズも増大するので、所望の処理性能と、コスト、サイズ、などを考慮して、最適なハードウェア回路を設計すればよい。専用のハードウェア回路は、ＦＰＧＡ（Field Programmable Gate Array）などを用いて実現されてもよい。【００３４】
また、前提技術の通信制御装置１０は、ワイヤードロジック回路による専用のハードウェアにより構成されるので、ＯＳ（Operating System）を必要としない。このため、ＯＳのインストール、バグ対応、バージョンアップなどの作業が必要なく、管理やメンテナンスのためのコストや工数を低減させることができる。また、汎用的な機能が求められるＣＰＵとは異なり、不必要な機能を包含していないので、余計なリソースを用いることがなく、低コスト化、回路面積の低減、処理速度の向上などが望める。さらに、ＯＳを利用していた従来の通信制御装置とは異なり、余分な機能を有しないので、セキュリティホールなどが発生する可能性が低く、ネットワークを介した悪意ある第三者からの攻撃に対する耐性に優れている。【００３５】
従来の通信制御装置１は、ＣＰＵとＯＳを前提としたソフトウェアによりパケットを処理しており、パケットの全てのデータを受信してからプロトコル処理を行い、データがアプリケーションに渡される。それに対して、本前提技術の通信制御装置１０では、専用のハードウェア回路により処理を行うので、パケットの全てのデータを受信してから処理を開始する必要はなく、処理に必要なデータを受信すれば、後続のデータの受信を待たずに、任意の時点で処理を開始することができる。例えば、後述する位置検出回路における位置検出処理は、比較対象データの位置を特定するための位置特定データを受信した時点で開始することができる。このように、全てのデータの受信を待たずに様々な処理をフローティングで実行することができるので、パケットのデータを処理するのに要する時間を短縮することができる。【００３６】
図４は、パケット処理回路の内部構成を示す。パケット処理回路２０は、通信データに対して実行する処理の内容を決定するための基準となる基準データを記憶する第１データベース５０と、受信された通信データの中に基準データが含まれているか否かを、通信データと基準データとを比較することにより検索する検索回路３０と、検索回路３０による検索結果と通信データに対して実行する処理の内容とを対応づけて記憶する第２データベース６０と、検索回路３０による検索結果と第２データベース６０に記憶された条件とに基づいて通信データを処理する処理実行回路４０とを含む。【００３７】
検索回路３０は、通信データの中から基準データと比較すべき比較対象データの位置を検出する位置検出回路３２と、第１データベース５０に記憶された基準データを３以上の範囲に分割したとき、比較対象データがそれらの範囲のうちいずれに属するかを判定する判定回路の一例であるインデックス回路３４と、判定された範囲の中で比較対象データと合致する基準データを検索するバイナリサーチ回路３６とを含む。比較対象データを基準データの中から検索する方法としては、任意の検索技術を利用可能であるが、前提技術ではバイナリサーチ法を用いる。【００３８】
図５は、位置検出回路の内部構成を示す。位置検出回路３２は、比較対象データの位置を特定するための位置特定データと通信データとを比較するための複数の比較回路３３ａ〜３３ｆを含む。ここでは、６個の比較回路３３ａ〜３３ｆが設けられているが、後述するように、比較回路の個数は任意でよい。それぞれの比較回路３３ａ〜３３ｆには、通信データが、所定のデータ長、例えば、１バイトずつずらして入力される。そして、これら複数の比較回路３３ａ〜３３ｆにおいて、同時に並列して、検出すべき位置特定データと通信データとの比較がなされる。【００３９】
前提技術においては、通信制御装置１０の動作を説明するための例として、通信データ中に含まれる「Ｎｏ．  ＃＃＃」という文字列を検出し、その文字列中に含まれる数字「＃＃＃」を基準データと比較して、基準データに合致した場合はパケットの通過を許可し、合致しなかった場合はパケットを破棄する処理を行う場合について説明する。【００４０】
図５の例では、通信データの中から、数字「＃＃＃」の位置を特定するための位置特定データ「Ｎｏ．」を検出するために、通信データ「０１Ｎｏ．  ３６１・・・」を、１文字ずつずらして比較回路３３ａ〜３３ｆに入力している。すなわち、比較回路３３ａには「０１Ｎ」が、比較回路３３ｂには「１Ｎｏ」が、比較回路３３ｃには「Ｎｏ．」が、比較回路３３ｄには「ｏ．  」が、比較回路３３ｅには「．  ３」が、比較回路３３ｆには「  ３６」が、それぞれ入力される。ここで、比較回路３３ａ〜３３ｆが同時に位置特定データ「Ｎｏ．」との比較を実行する。これにより、比較回路３３ｃがマッチし、通信データの先頭から３文字目に「Ｎｏ．」という文字列が存在することが検出される。こうして、位置検出回路３２により検出された位置特定データ「Ｎｏ．」の次に、比較対象データである数字のデータが存在することが検出される。【００４１】
ＣＰＵにより同様の処理を行うならば、まず、文字列「０１Ｎ」を「Ｎｏ．」と比較し、続いて、文字列「１Ｎｏ」を「Ｎｏ．」と比較する、というように、先頭から順に１つずつ比較処理を実行する必要があるため、検出速度の向上は望めない。これに対し、前提技術の通信制御装置１０では、複数の比較回路３３ａ〜３３ｆを並列に設けることにより、ＣＰＵではなしえなかった同時並列的な比較処理が可能となり、処理速度を格段に向上させることができる。比較回路は多ければ多いほど同時に比較可能な位置が多くなるので、検出速度も向上するが、コスト、サイズ、などを考慮の上、所望の検出速度を得られるのに十分な数の比較回路を設ければよい。【００４２】
位置検出回路３２は、位置特定データを検出するためだけでなく、汎用的に文字列を検出する回路として利用されてもよい。また、文字列だけでなく、ビット単位で位置特定データを検出するように構成されてもよい。【００４３】
図６は、第１データベースの内部データの例を示す。第１データベース５０には、パケットのフィルタリング、ルーティング、スイッチング、置換などの処理の内容を決定するための基準となる基準データが、何らかのソート条件にしたがってソートされて格納されている。図６の例では、１０００個の基準データが記憶されている。【００４４】
第１データベース５０の先頭のレコードには、通信データ中の比較対象データの位置を示すオフセット５１が格納されている。例えば、ＴＣＰパケットにおいては、パケット内のデータ構成がビット単位で定められているため、パケットの処理内容を決定するためのフラグ情報などの位置をオフセット５１として設定しておけば、必要なビットのみを比較して処理内容を決定することができるので、処理効率を向上させることができる。また、パケットのデータ構成が変更された場合であっても、オフセット５１を変更することで対応することができる。第１データベース５０には、比較対象データのデータ長を格納しておいてもよい。これにより、必要な比較器のみを動作させて比較を行うことができるので、検索効率を向上させることができる。【００４５】
インデックス回路３４は、第１データベース５０に格納されている基準データを３以上の範囲５２ａ〜５２ｄに分割したとき、比較対象データがそれらの範囲のうちいずれに属するかを判定する。図６の例では、１０００個の基準データは、２５０個ずつ４つの範囲５２ａ〜５２ｄに分割されている。インデックス回路３４は、範囲の境界の基準データと比較対象データとを比較する複数の比較回路３５ａ〜３５ｃを含む。比較回路３５ａ〜３５ｃにより比較対象データと境界の基準データとを同時に並列して比較することにより、比較対象データがいずれの範囲に属するかを１度の比較処理で判定することができる。【００４６】
インデックス回路３４の比較回路３５ａ〜３５ｃに入力される境界の基準データは、通信制御装置１０の外部に設けられた装置により設定されてもよいし、予め第１データベース５０の所定位置の基準データが自動的に入力されるようにしてもよい。後者の場合、第１データベース５０を更新しても、自動的に第１データベース５０の所定位置の基準データが比較回路３５ａ〜３５ｃに入力されるので、初期設定などを必要とせず、直ちに通信制御処理を実行させることができる。【００４７】
前述したように、ＣＰＵによりバイナリサーチを実行する場合は、同時に複数の比較を実行することができないが、前提技術の通信制御装置１０では、複数の比較回路３５ａ〜３５ｃを並列に設けることにより、同時並列的な比較処理を可能とし、検索速度を格段に向上させることができる。【００４８】
インデックス回路３４により範囲が判定されると、バイナリサーチ回路３６がバイナリサーチ法により検索を実行する。バイナリサーチ回路３６は、インデックス回路３４により判定された範囲をさらに２分割し、その境界位置にある基準データと比較対象データとを比較することにより、いずれの範囲に属するかを判定する。バイナリサーチ回路３６は、基準データと比較対象データとをビット単位で比較する比較回路を複数個、例えば前提技術では１０２４個含んでおり、１０２４ビットのビットマッチングを同時に実行する。２分割された範囲のいずれに属するかが判定されると、さらに、その範囲を２分割して境界位置にある基準データを読み出し、比較対象データと比較する。以降、この処理を繰り返すことにより範囲をさらに限定し、最終的に比較対象データと合致する基準データを検索する。【００４９】
前述した例を用いてさらに詳細に動作を説明する。図５に示した通信データにおいて、位置特定データ「Ｎｏ．」につづく比較対象データは「３６１」という数字である。位置特定データ「Ｎｏ．」と比較対象データ「３６１」との間には１文字分のスペースが存在しているので、このスペースを比較対象データから除くために、オフセット５１が「８」ビットに設定されている。バイナリサーチ回路３６は、位置特定データ「Ｎｏ．」につづく通信データから、「８」ビット、すなわち１バイト分をスキップし、さらにつづく「３６１」を比較対象データとして読み込む。【００５０】
インデックス回路３４の比較回路３５ａ〜３５ｃには、比較対象データとして「３６１」が入力され、基準データとして、比較回路３５ａには、範囲５２ａと５２ｂの境界にある基準データ「３７８」が、比較回路３５ｂには、範囲５２ｂと５２ｃの境界にある基準データ「７０４」が、比較回路３５ｃには、範囲５２ｃと５２ｄの境界にある基準データ「９３７」が、それぞれ入力される。比較回路３５ａ〜３５ｃにより同時に比較が行われ、比較対象データ「３６１」が範囲５２ａに属することが判定される。以降、バイナリサーチ回路３６が基準データの中に比較対象データ「３６１」が存在するか否かを検索する。【００５１】
図７は、第１データベースの内部データの別の例を示す。図７に示した例では、基準データのデータ数が、第１データベース５０に保持可能なデータ数、ここでは１０００個よりも少ない。このとき、第１データベース５０には、最終データ位置から降順に基準データが格納される。そして、残りのデータには０が格納される。データベースのローディング方法として、先頭からデータを配置せずにローディングエリアの後方から配置し、ローディングエリア先頭に空きが生じた場合は全ての空きをゼロサプレスすることで、データーベースは常にフルの状態になり、バイナリー検索する場合の最大時間を一定にすることができる。また、バイナリサーチ回路３６は、検索中に基準データとして「０」を読み込んだときには、比較結果が自明であるから、比較を行わずに範囲を特定して、次の比較にうつることができる。これにより、検索速度を向上させることができる。【００５２】
ＣＰＵによるソフトウェア処理においては、第１データベース５０に基準データを格納する際に、最初のデータ位置から昇順に基準データが格納される。残りのデータには、例えば最大値が格納されることになるが、この場合、バイナリサーチにおいて、上述したような比較処理の省略はできない。上述した比較技術は、専用のハードウェア回路により検索回路３０を構成したことにより実現される。【００５３】
図８は、第１データベースの内部データのさらに別の例を示す。図８に示した例では、基準データを均等に３以上の範囲に分割するのではなく、範囲５２ａは５００個、範囲５２ｂは１００個というように、範囲に属する基準データの数が不均一になっている。これらの範囲は、通信データ中における基準データの出現頻度の分布に応じて設定されてもよい。すなわち、それぞれの範囲に属する基準データの出現頻度の和がほぼ同じになるように範囲が設定されてもよい。これにより、検索効率を向上させることができる。インデックス回路３４の比較回路３５ａ〜３５ｃに入力される基準データは、外部から変更可能になっていてもよい。これにより、範囲を動的に設定することができ、検索効率を最適化することができる。【００５４】
図９は、バイナリサーチ回路に含まれる比較回路の構成を示す。前述したように、バイナリサーチ回路３６は、１０２４個の比較回路３６ａ、３６ｂ、・・・、を含む。それぞれの比較回路３６ａ、３６ｂ、・・・、には、基準データ５４と比較対象データ５６が１ビットずつ入力され、それらの大小が比較される。インデックス回路３４の各比較回路３５ａ〜３５ｃの内部構成も同様である。このように、専用のハードウェア回路で比較処理を実行することにより、多数の比較回路を並列して動作させ、多数のビットを同時に比較することができるので、比較処理を高速化することができる。【００５５】
図１０は、第２データベースの内部データの例を示す。第２データベース６０は、検索回路３０による検索結果を格納する検索結果欄６２と、通信データに対して実行する処理の内容を格納する処理内容欄６４とを含み、検索結果と処理内容とを対応づけて保持する。図１０の例では、通信データに基準データが含まれている場合は、そのパケットの通過を許可し、含まれていない場合は、そのパケットを破棄するという条件が設定されている。処理実行回路４０は、検索結果に基づいて第２データベース６０から処理内容を検索し、通信データに対して処理を実行する。処理実行回路４０も、ワイヤードロジック回路により実現されてもよい。【００５６】
図１１は、第２データベースの内部データの別の例を示す。図１１の例では、基準データごとに、処理内容が設定されている。パケットの置換を行う場合、置換先のデータを第２データベース６０に格納しておいてもよい。パケットのルーティングやスイッチングを行う場合、経路に関する情報を第２データベース６０に格納しておいてもよい。処理実行回路４０は、検索回路３０による検索結果に応じて、第２データベース６０に格納された、フィルタリング、ルーティング、スイッチング、置換などの処理を実行する。図１１のように、基準データごとに処理内容を設定する場合、第１データベース５０と第２データベース６０とを統合してもよい。【００５７】
第１のデータベース及び第２のデータベースは、外部から書き換え可能に設けられる。これらのデータベースを入れ替えることにより、同じ通信制御装置１０を用いて、さまざまなデータ処理や通信制御を実現することができる。また、検索対象となる基準データを格納したデータベースを２以上設けて、多段階の検索処理を行ってもよい。このとき、検索結果と処理内容とを対応づけて格納したデータベースを２以上設けて、より複雑な条件分岐を実現してもよい。このように、データベースを複数設けて多段階の検索を行う場合に、位置検出回路３２、インデックス回路３４、バイナリサーチ回路３６などを複数設けてもよい。【００５８】
上述した比較に用いられるデータは、同じ圧縮ロジックにより圧縮されてもよい。比較に際して、比較元のデータと比較先のデータが同じ方式で圧縮されていれば、通常と同様の比較が可能である。これにより、比較の際にローディングするデータ量を低減することができる。ローディングするデータ量が少なくなれば、メモリからデータを読み出すのに要する時間が短縮されるので、全体の処理時間も短縮することができる。また、比較器の量を削減することができるので、装置の小型化、軽量化、低コスト化に寄与することができる。比較に用いられるデータは、圧縮された形式で格納されていてもよいし、メモリから読み出した後、比較の前に圧縮されてもよい。【００５９】
図１２は、前提技術の通信制御装置の別の構成例を示す。本図に示した通信制御装置１０は、図３に示した通信制御装置１０と同様の構成を備える通信制御ユニット１２を２つ有している。また、それぞれの通信制御ユニット１２の動作を制御する切替制御部１４が設けられている。それぞれの通信制御ユニット１２は、２つの入出力インタフェース１６を有しており、それぞれの入出力インタフェース１６を介して、上流側、下流側の２つのネットワークに接続されている。通信制御ユニット１２は、いずれか一方のネットワークから通信データを入力し、処理したデータを他方のネットワークに出力する。切替制御部１４は、それぞれの通信制御ユニット１２に設けられた入出力インタフェース１６の入出力を切り替えることにより、通信制御ユニット１２における通信データの流れの方向を切り替える。これにより、一方向だけではなく、双方向の通信制御が可能となる。【００６０】
切替制御部１４は、通信制御ユニット１２の一方がインバウンド、他方がアウトバウンドのパケットを処理するように制御してもよいし、双方がインバウンドのパケットを処理するように制御してもよいし、双方がアウトバウンドのパケットを処理するように制御してもよい。これにより、例えばトラフィックの状況や目的などに応じて、制御する通信の方向を可変とすることができる。【００６１】
切替制御部１４は、各通信制御ユニット１２の動作状況を取得し、その動作状況に応じて通信制御の方向を切り替えてもよい。例えば、一方の通信制御ユニット１２を待機状態として、他方の通信制御ユニット１２を動作させている場合に、その通信制御ユニット１２が故障などにより停止したことを検知したときに、代替として待機中の通信制御ユニット１２を動作させてもよい。これにより、通信制御装置１０のフォールトトレランスを向上させることができる。また、一方の通信制御ユニット１２に対して、データベースの更新などのメンテナンスを行うときに、他方の通信制御ユニット１２を代替として動作させてもよい。これにより、通信制御装置１０の運用を停止させずに、適切にメンテナンスを行うことができる。【００６２】
通信制御装置１０に３以上の通信制御ユニット１２が設けられてもよい。切替制御部１４は、例えば、トラフィックの状況を取得して、通信量の多い方向の通信制御処理に、より多くの通信制御ユニット１２を割り当てるように、各通信制御ユニット１２の通信の方向を制御してもよい。これにより、ある方向の通信量が増加しても、通信速度の低下を最小限に抑えることができる。【００６３】
なお、複数の通信制御ユニット１２の間で、通信制御部２又は４の一部が共用されてもよい。また、パケット処理回路２０の一部が共用されてもよい。【００６４】
上述のデータ処理装置として、以下のような態様が考えられる。
［態様１］
取得したデータに対して実行する処理の内容を決定するための基準となる基準データを記憶する第１記憶部と、
前記データの中に前記基準データが含まれているか否かを、前記データと前記基準データとを比較することにより検索する検索部と、
前記検索部による検索結果と前記処理の内容とを対応づけて記憶する第２記憶部と、
前記検索結果に基づいて、前記検索結果に対応づけられた処理を前記データに対して実行する処理部と、を含み、
前記検索部は、ワイヤードロジック回路により構成される
ことを特徴とするデータ処理装置。【００６５】
［態様２］
上記態様１のデータ処理装置において、前記ワイヤードロジック回路は、前記データと前記基準データとをビット単位で比較する第１比較回路を複数含むことを特徴とするデータ処理装置。【００６６】
［態様３］
上記態様１のデータ処理装置において、前記検索部は、前記データの中から前記基準データと比較すべき比較対象データの位置を検出する位置検出回路を含むことを特徴とするデータ処理装置。【００６７】
［態様４］
上記態様３のデータ処理装置において、前記位置検出回路は、前記比較対象データの位置を特定するための位置特定データと前記データとを比較する第２比較回路を複数含み、前記複数の第２比較回路に前記データを所定のデータ長ずつ位置をずらして入力し、前記位置特定データと同時に並列して比較することを特徴とするデータ処理装置。【００６８】
［態様５］
上記態様１から態様２のいずれかのデータ処理装置において、前記検索部は、バイナリサーチにより前記データの中に前記基準データが含まれているか否かを検索するバイナリサーチ回路を含むことを特徴とするデータ処理装置。【００６９】
［態様６］
上記態様５のデータ処理装置において、前記第１記憶部に保持可能なデータ数よりも前記基準データのデータ数の方が少ない場合、前記第１記憶部の最終データ位置から降順に前記基準データを格納し、残りのデータに０を格納することを特徴とするデータ処理装置。【００７０】
［態様７］
上記態様１から態様６のいずれかのデータ処理装置において、前記検索部は、前記第１記憶部に記憶された複数の基準データを３以上の範囲に分割したとき、前記基準データと比較すべき比較対象データがそれらの範囲のうちいずれに属するかを判定する判定回路を含むことを特徴とするデータ処理装置。【００７１】
［態様８］
上記態様７のデータ処理装置において、前記判定回路は、前記範囲の境界の基準データと前記比較対象データとを比較する第３比較回路を複数含み、前記複数の第３比較回路により前記比較対象データが前記３以上の範囲のいずれに属するかを同時に並列して判定することを特徴とするデータ処理装置。【００７２】
［態様９］
上記態様８のデータ処理装置において、前記第１記憶部の所定位置に記憶された前記基準データが、前記境界の基準データとして前記第３の比較回路に入力されることを特徴とするデータ処理装置。【００７３】
［態様１０］
上記態様７又は態様８のデータ処理装置において、前記範囲は、前記データ中における前記基準データの出現頻度の分布に応じて設定されることを特徴とするデータ処理装置。【００７４】
［態様１１］
上記態様１から態様１０のいずれかのデータ処理装置において、前記第１記憶部は、前記データ中の比較対象データの位置を示す情報を更に記憶し、前記検索部は、前記位置を示す情報に基づいて前記比較対象データを抽出することを特徴とするデータ処理装置。【００７５】
［態様１２］
上記態様１から態様１１のいずれかのデータ処理装置において、前記第１記憶部又は前記第２記憶部は、外部から書き換え可能に設けられることを特徴とするデータ処理装置。【００７６】
［態様１３］
上記態様１から１２のいずれかのデータ処理装置において、前記検索部は、通信パケットの全てのデータの取得を待たずに、前記基準データと比較すべきデータを取得した時点で、そのデータと前記基準データの比較を開始することを特徴とするデータ処理装置。【００７７】
［態様１４］
上記態様１から１３のいずれかのデータ処理装置を複数備え、それぞれの前記データ処理装置は、通信回線との間でデータを入出力するインタフェースを２つ備えており、それぞれの前記インタフェースの入力と出力を切り替えることにより、前記データを処理する方向を可変に制御されることを特徴とするデータ処理装置。【００７８】
つづいて、上述した通信制御装置１０を利用したＵＲＬフィルタリング技術について説明する。【００７９】
図１３は、ＵＲＬフィルタリングのためのパケット処理回路２０の内部構成を示す。パケット処理回路２０は、第１データベース５０として、ユーザデータベース５７、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４を備える。ユーザデータベース５７は、通信制御装置１０を利用するユーザの情報を格納する。通信制御装置１０は、ユーザからユーザを識別する情報を受け付け、検索回路３０により受け付けた情報をユーザデータベース５７とマッチングして、ユーザを認証する。ユーザを識別する情報として、ＴＣＰ／ＩＰパケットのＩＰヘッダに格納されたソースアドレスを利用してもよいし、ユーザからユーザＩＤとパスワードなどを受け付けてもよい。前者の場合、パケット中のソースアドレスの格納位置は決まっているので、検索回路３０においてユーザデータベース５７とマッチングするときに、位置検出回路３２により位置を検出する必要はなく、オフセット５１として、ソースアドレスの格納位置を指定すればよい。ユーザデータベース５７に登録されたユーザであることが認証されると、続いて、コンテンツに対するアクセスの許否を判断するために、コンテンツのＵＲＬが、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４に照合される。ホワイトリスト１６２及びブラックリスト１６３はユーザごとに設けられているので、ユーザが認証されてユーザＩＤが一意に決まると、そのユーザのホワイトリスト１６２及びブラックリスト１６３が検索回路３０に与えられる。【００８０】
ウイルス／フィッシングサイトリスト１６１は、コンピュータウイルスを含むコンテンツのＵＲＬのリストと、フィッシング詐欺に用いられる「罠」のサイトのＵＲＬのリストとを格納する。ウイルス／フィッシングサイトリスト１６１に格納されたＵＲＬのコンテンツに対するアクセス要求は拒否される。これにより、ユーザが気づかずに、又は騙されて、ウイルスサイトやフィッシングサイトにアクセスしようとする場合であっても、適切にアクセスを禁止し、ウイルスやフィッシング詐欺の被害からユーザを保護することができる。また、ユーザの端末にウイルスサイトやフィッシングサイトのリストを格納させて端末側でアクセス制限を行うのではなく、通信経路に設けられた通信制御装置１０で一元的にアクセス制限を行うので、より確実かつ効率的にアクセス制限を行うことができる。通信制御装置１０は、ウイルスサイトやフィッシングサイトではない正当なサイトであることが認証機関により証明された認証済みサイトのリストを取得して保持し、そのリストに格納されたＵＲＬに対するアクセスを許可するようにしてもよい。また、正当なサイトがハッキングなどにより乗っ取られて、ウイルスが組み込まれたり、フィッシング詐欺に利用されたりする事態が生じた場合、正当なサイトの運営者などがウイルス／フィッシングサイトリスト１６１に乗っ取られたサイトのＵＲＬを登録し、サイトが正常な状態に回復するまでの間、一時的にアクセスを禁止できるようにしてもよい。また、ＵＲＬのリストとともに、ＩＰ番号、ＴＣＰ番号、ＭＡＣアドレス等の情報を組み合わせてチェックしてもよい。これにより、更に精度の高い禁止条件を設定することができるので、より確実にウイルスサイトやフィッシングサイトをフィルタリングすることができる。【００８１】
ホワイトリスト１６２は、ユーザごとに設けられ、アクセスを許可するコンテンツのＵＲＬのリストを格納する。ブラックリスト１６３は、ユーザごとに設けられ、アクセスを禁止するコンテンツのＵＲＬのリストを格納する。図１４（ａ）は、ウイルス／フィッシングサイトリスト１６１の内部データの例を示し、図１４（ｂ）は、ホワイトリスト１６２の内部データの例を示し、図１４（ｃ）は、ブラックリスト１６３の内部データの例を示す。ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、及びブラックリスト１６３には、それぞれ、カテゴリ番号欄１６５、ＵＲＬ欄１６６、及びタイトル欄１６７が設けられている。ＵＲＬ欄１６６には、アクセスが許可される、又は禁止されるコンテンツのＵＲＬが格納される。カテゴリ番号欄１６５には、コンテンツのカテゴリの番号が格納される。タイトル欄１６７には、コンテンツのタイトルが格納される。【００８２】
共通カテゴリリスト１６４は、ＵＲＬで示されるコンテンツを複数のカテゴリに分類するためのリストを格納する。図１５は、共通カテゴリリスト１６４の内部データの例を示す。共通カテゴリリスト１６４にも、カテゴリ番号欄１６５、ＵＲＬ欄１６６、及びタイトル欄１６７が設けられている。【００８３】
通信制御装置１０は、「ＧＥＴ」リクエストメッセージ等の中に含まれるＵＲＬを抽出し、そのＵＲＬが、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、又は共通カテゴリリスト１６４に含まれるか否かを検索回路３０により検索する。このとき、例えば、位置検出回路３２により「http://」という文字列を検出し、その文字列に続くデータ列を対象データとして抽出してもよい。抽出されたＵＲＬは、インデックス回路３４及びバイナリサーチ回路３６により、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４の基準データとマッチングされる。【００８４】
図１６（ａ）、（ｂ）、（ｃ）、及び（ｄ）は、ＵＲＬフィルタリングのための第２データベース６０の内部データの例を示す。図１６（ａ）は、ウイルス／フィッシングサイトリスト１６１に対する検索結果と処理内容を示す。ＧＥＴリクエスト等に含まれるＵＲＬが、ウイルス／フィッシングサイトリスト１６１に含まれるＵＲＬに合致した場合、そのＵＲＬに対するアクセスは禁止される。図１６（ｂ）は、ホワイトリスト１６２に対する検索結果と処理内容を示す。ＧＥＴリクエスト等に含まれるＵＲＬが、ホワイトリスト１６２に含まれるＵＲＬに合致した場合、そのＵＲＬに対するアクセスは許可される。図１６（ｃ）は、ブラックリスト１６３に対する検索結果と処理内容を示す。ＧＥＴリクエスト等に含まれるＵＲＬが、ブラックリスト１６３に含まれるＵＲＬに合致した場合、そのＵＲＬに対するアクセスは禁止される。【００８５】
図１６（ｄ）は、共通カテゴリリスト１６４に対する検索結果と処理内容を示す。図１６（ｄ）に示すように、共通カテゴリリスト１６４に対する検索結果に対して、ユーザは、カテゴリごとに、そのカテゴリに属するコンテンツに対するアクセスを許可するか禁止するかを、個別に設定することができる。共通カテゴリリスト１６４に関する第２データベース６０には、ユーザＩＤ欄１６８及びカテゴリ欄１６９が設けられている。ユーザＩＤ欄１６８には、ユーザを識別するためのＩＤが格納される。カテゴリ欄１６９には、５７種に分類されたカテゴリのそれぞれについて、カテゴリに属するコンテンツに対するアクセスをユーザが許可するか否かを示す情報が格納される。ＧＥＴリクエストに含まれるＵＲＬが、共通カテゴリリスト１６４に含まれるＵＲＬに合致した場合、そのＵＲＬのカテゴリと、ユーザＩＤに基づいて、そのＵＲＬに対するアクセスの許否が判定される。なお、図１６（ｄ）では、共通カテゴリの数が５７であるが、それ以外であってもよい。【００８６】
図１７は、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４の優先度を示す。前提技術では、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、共通カテゴリリスト１６４の順に優先度が高く、例えば、ホワイトリスト１６２に格納されたアクセスが許可されるコンテンツのＵＲＬであったとしても、そのＵＲＬがウイルス／フィッシングサイトリスト１６１に格納されていれば、コンピュータウイルスを含むコンテンツ、又はフィッシング詐欺に用いられるコンテンツであるとしてアクセスが禁止される。【００８７】
従来、ソフトウェアを用いて、このような優先度を考慮したマッチングを行うときは、例えば、優先度の高いリストから順にマッチングを行って最初にヒットしたものを採用するか、優先度の低いリストから順にマッチングを行って後からヒットしたものを上書きするか、いずれかの方法がとられていた。しかしながら、前提技術では、専用のハードウェア回路により構成された通信制御装置１０を利用することにより、ウイルス／フィッシングサイトリスト１６１のマッチングを行う検索回路３０ａと、ホワイトリスト１６２のマッチングを行う検索回路３０ｂと、ブラックリスト１６３のマッチングを行う検索回路３０ｃと、共通カテゴリリスト１６４のマッチングを行う検索回路３０ｄとを設けて、それぞれの検索回路３０において同時に並列してマッチングを行う。そして、複数のリストでヒットした場合は、優先度の高いものを採用する。これにより、複数のデータベースが設けられ、それらに優先度が設定されている場合であっても、検索時間を大幅に短縮することができる。【００８８】
ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、及び共通カテゴリリスト１６４のいずれを優先してアクセスの許否を判断するかは、例えば、第２データベース６０に設定されていてもよい。いずれのリストを優先するかに応じて第２データベース６０の条件を書き換えてもよい。【００８９】
このように、複数のデータベースを利用してＵＲＬに基づいたフィルタリングを行う際に、データベースに優先度を設定して優先度に応じたフィルタリング処理を行うことができるように構成し、かつ、ウイルス／フィッシングリスト１６１によるフィルタリングを最優先することで、ユーザによるホワイトリスト１６２などの設定状況にかかわらず、ウイルスサイトやフィッシングサイトへのアクセスを確実に禁止することができる。これにより、ウイルスやフィッシング詐欺の被害からユーザを適切に保護することができる。【００９０】
コンテンツに対するアクセスが許可された場合は、処理実行回路４０は、メッセージ出力サーバ１３０にその旨を通知するための信号を出力する。メッセージ出力サーバ１３０は、コンテンツを保持するサーバに向けて「ＧＥＴ」リクエストメッセージを送出する。コンテンツに対するアクセスが禁止された場合は、処理実行回路４０が、メッセージ出力サーバ１３０にその旨を通知するための信号を出力すると、メッセージ出力サーバ１３０は、アクセス先のサーバに「ＧＥＴ」リクエストメッセージを送信せずに破棄する。このとき、アクセスが禁止された旨の応答メッセージを要求元に送信してもよい。また、強制的に別のウェブページに転送させてもよい。この場合、処理実行回路４０は、デスティネーションアドレスとＵＲＬを転送先のものに書き換えて送出する。応答メッセージや転送先のＵＲＬなどの情報は、第２データベース６０やメッセージ出力サーバ１３０などに格納されていてもよい。【００９１】
メッセージ出力サーバ１３０は、ｐｉｎｇコマンドなどを用いて、要求元が実際に存在することを確認し、また、存在する場合はその状態を確認してから、要求元に対してメッセージを出力してもよい。メッセージ出力サーバ１３０から要求元へ送信されるメッセージは、ユーザごとに設定可能としてもよいし、アクセス先のコンテンツごとに、カテゴリごとに、又は、ホワイトリスト１６２やブラックリスト１６３などのデータベースごとに、設定可能としてもよい。例えば、アクセスが禁止されたときに表示される画面をユーザがカスタマイズしてメッセージ出力サーバ１３０に登録できるようにしてもよい。また、上述したように、正当なサイトがハッキングされてアクセスを一時的に制限しているときに、正当なサイトのミラーサイトへ誘導するメッセージを出力するようにしてもよい。【００９２】
メッセージ出力サーバ１３０は、メッセージの送出履歴を管理し、そのメッセージ送出履歴情報を各種制御に利用してもよい。例えば、同一の要求元から短時間に多数のアクセス要求が発信されている場合、サービス妨害攻撃（Denial of Service attack：ＤｏＳアタック）などである可能性があるので、その要求元をアクセス拒否リストに登録し、その要求元からのパケットを要求先へ送らずに遮断してもよい。また、メッセージの送出履歴を統計処理し、ウェブサイトの管理者などへ提供してもよい。これにより、ユーザのアクセス履歴をマーケティングに利用したり、通信状況の制御などに活用したりすることができる。また、状況に応じてメッセージの送出回数を少なくしたり、逆に増やしたりする事もできる。たとえば特定のＩＰ番号からアクセス要求が発信された場合に、その１通のリクエストメッセ−ジに対して、何倍ものメッセージを送ることもできる。【００９３】
以上の構成及び動作により、不適切なコンテンツに対するアクセスを禁止することができる。また、検索回路３０がＦＰＧＡなどにより構成された専用のハードウェア回路であるから、上述したように高速な検索処理が実現され、トラフィックに与える影響を最小限に抑えつつ、フィルタリング処理を実行することができる。インターネットサービスプロバイダなどが、このようなフィルタリングのサービスを提供することにより、付加価値が高まり、より多くのユーザを集めることができる。【００９４】
ホワイトリスト１６２又はブラックリスト１６３は、全てのユーザに対して共通に設けられてもよい。【００９５】
（実施の形態）
つづいて、通信制御システム１００において、複数の通信制御装置１０を設けたときの運用技術について説明する。例えば、上述したＵＲＬによるフィルタリング制御を行う通信制御装置１０において、データベースを格納するためのＲＡＭ（Random Access Memory）などの記憶装置が、１０万人分のユーザに対応するデータを格納可能な容量を有するものとする。このとき、通信制御システム１０のユーザが１０万人を超えると、従来は、１０万人以上のユーザデータを格納可能な記憶装置を設けた通信制御装置１０に置き換える必要があった。しかしながら、本実施の形態の技術によれば、複数の通信制御装置を設け、それらの通信制御装置の記憶装置にホワイトリスト１６２やブラックリスト１６３などのデータベースを分割して保持させ、それらを協働させて運用することにより、１台の大規模な通信制御装置１０として機能させることが可能となる。したがって、ユーザ数が通信制御装置１０の容量を超えたとしても、新たに通信制御装置を追加することにより、ユーザの増加に対応することができる。このように、本実施の形態では、汎用性及び柔軟性の高い通信制御装置１０の運用技術を提案する。この技術によれば、利用者の増大に伴うシステムの改変に要する工数及び費用を低減することができるとともに、当初から利用者の増大を見込んで大規模なシステムを構築する必要がなく、利用者数に応じて適切な数の通信制御装置を設ければよいので、初期投資も抑えることができる。【００９６】
図１８は、実施の形態に係る通信制御システム１００の構成を示す。本実施の形態の通信制御システム１００では、複数の通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、が設けられており、それらを協働させて、前提技術で説明した通信制御装置１０として機能させる。その他の構成及び動作は、図１に示した前提技術に係る通信制御システム１００と同様である。【００９７】
本実施の形態の通信制御システム１００では、通信制御装置は、パケットの処理に必要なデータベースの少なくとも一部を分割して保持するのに必要な台数よりも少なくとも１台以上余分に設けられる。例えば、上述した例において、ユーザ数が３０万人以上４０万人未満である場合、運用に必要な通信制御装置の台数は４台であるが、いずれかの通信制御装置が故障したときに代わって運用させるための待機用として、また、通信制御装置に含まれるデータベースを更新するときの待機用として、１台以上の通信制御装置を設け、合計で最低５台の通信制御装置を設ける。従来は、フォールトトレラントのために、システム全体を二重化させる必要があったが、本実施の形態の技術によれば、分割された単位の通信制御装置１０を余分に設けておけばよいので、コストを低減することができる。これら複数の通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、の運用状況は、運用監視サーバ１１０により管理される。本実施の形態の運用監視サーバ１１０は、通信制御装置の運用状況を管理するための管理テーブルを有する。【００９８】
図１９は、本実施の形態に係る通信制御装置１０の構成を示す。図１９に示した構成において、検索回路３０及び処理実行回路４０が、本発明におけるデータ処理ユニットに相当し、第１データベース５０及び第２データベース６０を保持する構成が、データ保持ユニットに相当する。図１９に示した例では、それぞれの通信制御装置１０ａ、１０ｂ、１０ｃに、データ保持ユニットと、それに対応するデータ処理ユニットが設けられているが、これらの通信制御装置は一体的に１つの装置内に設けられてもよい。また、１つのデータ処理ユニットが、複数のデータ保持ユニットに保持されたデータベースを参照してデータを処理する構成であってもよい。また、データ保持ユニットは、ＲＡＭなどの記憶装置に相当してもよいし、記憶装置の内部の一部の領域に相当してもよいし、複数の記憶装置が１つのデータ保持ユニットに相当してもよい。【００９９】
通信制御装置１０におけるパケット処理に用いられるデータベースのうち、第１データベース５０のホワイトリスト１６２（図１４（ｂ））及びブラックリスト１６３（図１４（ｃ））、及び第２データベース６０のユーザごとに共通カテゴリリストのアクセス許否を格納したもの（図１６（ｄ））は、ユーザ数に比例して大きな容量を必要とする。したがって、これらのデータベースを分割して通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、のデータ保持ユニットに保持させる。すなわち、ホワイトリスト１６２やブラックリスト１６３は、本発明における第２のデータベースに相当する。ウイルス／フィッシングサイトリスト１６１（図１４（ａ））及び共通カテゴリリスト１６４（図１５）は、全てのユーザに共通に用いられ、さほど容量が大きくないので、全ての通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、のデータ保持ユニットに共通に保持させる。【０１００】
後述するように、本実施の形態の通信制御システム１００では、処理すべき通信パケットを、運用中の全ての通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、に供給し、それぞれの通信制御装置が、供給されたパケットを処理するか否かを判断する。そのパケットの処理を担当する通信制御装置、すなわち、そのパケットを送信したユーザのデータを保持する通信制御装置のみがパケットを処理し、その他の通信制御装置はパケットを破棄する。そのため、いずれの通信制御装置が処理すべきパケットであるかを判定するためのデータを格納するユーザデータベース５７は必須であり、これがないとパケットを処理することができない。したがって、ユーザデータベース５７は、全ての通信制御装置に共通に保持される。すなわち、ユーザデータベース５７は、本発明における第１のデータベースに相当する。【０１０１】
本実施の形態では、全ての通信制御装置１０ａ、１０ｂ、１０ｃ、・・・、に、全てのユーザのデータを格納したユーザデータベース５７が保持される。通信制御装置は、運用監視サーバ１１０から、自身が担当すべきユーザのユーザＩＤの範囲を通知され、ユーザデータベース５７のうち、通知された範囲のユーザＩＤのデータを用いてユーザの認証を行い、受信したパケットを処理するか否かを判断する。【０１０２】
図２０は、運用監視サーバ１１０に設けられた管理テーブル１１１の内部データの例を示す。管理テーブル１１１には、装置ＩＤ欄１１２、運用状況欄１１３、ユーザＩＤ欄１１４が設けられている。装置ＩＤ欄１１２には、通信制御装置１０ａ、１０ｂ、・・・、の装置ＩＤが格納され、運用状況欄１１３には、その通信制御装置の運用状況が格納され、ユーザＩＤ欄１１４には、その通信制御装置が担当すべきユーザＩＤの範囲が格納される。運用状況には、例えば、「運用中」、「スタンバイ」、「故障中」、「データ更新中」などがある。運用状況欄１１３は、通信制御装置１０ａ、１０ｂ、・・・、の運用状況が変更されるたびに、運用監視サーバ１１０により更新される。図２０に示した例では、「４６５１８３」人のユーザが通信制御システム１００を利用しているので、装置ＩＤ「１」〜「５」の５台の通信制御装置１０が運用されており、装置ＩＤ「６」の通信制御装置１０はスタンバイ状態となっている。【０１０３】
運用監視サーバ１１０は、複数の通信制御装置１０の運用状況を監視し、いずれかの通信制御装置１０においてトラブルが発生して運用不可能な状態になったことを検知したときには、スタンバイ状態となっている通信制御装置１０に、運用が停止した通信制御装置１０と同じデータを格納し、その通信制御装置１０に運用を切り替える。例えば、図２１に示すように、装置ＩＤ「２」の通信制御装置１０が故障により運用停止した場合、スタンバイ状態であった装置ＩＤ「６」の通信制御装置１０に、ユーザＩＤ「１００００１〜２０００００」のデータを格納して運用を開始させる。これにより、何らかのトラブルで通信制御装置１０が停止されるような状況になっても、適切に運用を継続することができる。スタンバイ中の通信制御装置１０には、予めいずれかのデータを格納しておき、ホットスタンバイ状態にしておいてもよいし、コールドスタンバイ状態にしておいてもよい。【０１０４】
本実施の形態では、待機中の通信制御装置１０のデータ保持ユニットに、予めユーザデータベース５７を格納しておく。これにより、ある通信制御装置１０が運用不可能な状態になっても、すぐに待機中の通信制御装置１０に運用を切り替えることができる。前述したように、それぞれの通信制御装置１０は、ユーザＩＤを用いてパケットを処理するか否かを判断するので、ある通信制御装置１０が運用不可能な状態になると、その通信制御装置１０が担当していたユーザのパケットを受信したときに、そのパケットを処理する通信制御装置１０が存在しない状態となり、パケットが処理されない事態が生じてしまう。このような事態からできる限り早急に復旧するために、待機中の通信制御装置１０のデータ保持ユニットにもユーザデータベース５７を予め格納しておき、運用監視サーバ１１０は、運用不可能となった通信制御装置１０が担当していたユーザを待機中の通信制御装置１０に担当させるべく、ユーザＩＤの範囲を通知する。これにより、待機中の通信制御装置１０を即座に運用開始させることができ、パケットが処理されないという事態を最小限に抑えることができる。【０１０５】
ホワイトリスト１６２やブラックリスト１６３などのデータベースを全て待機中の通信制御装置１０に格納してから運用を切り替えると、データベースの格納に時間を要し、パケットが処理されない状態が長期間継続してしまう可能性があるので、ユーザデータベース５７のみが格納された状態で待機中の通信制御装置１０に運用を切り替えてもよい。これにより、完全なＵＲＬフィルタリングサービスは提供できないものの、パケットが処理されないという事態は回避することができる。格納されていないデータベースは、メンテナンス時や、後述するデータベースの更新時などに格納すればよい。ウイルス／フィッシングサイトリスト１６１や共通カテゴリリスト１６４などの共通に用いられるデータベースも、予め待機中の通信制御装置１０に格納しておいてもよい。これにより、運用を切り替えたときに、ウイルス／フィッシングサイトリスト１６１に格納されているＵＲＬへのアクセスを拒否するなどの一部のサービスを提供することができる。【０１０６】
次に、通信制御装置１０に含まれるデータベースを更新する手順について説明する。データベースサーバ１５０は、所定のタイミングでＵＲＬデータベース１６０から最新のデータベースを取得して保持する。また、ユーザの新規登録や退会に伴って、ユーザデータベースを更新して保持する。運用監視サーバ１１０は、所定のタイミングで、データベースサーバ１５０に保持された最新のデータベースを通信制御装置１０に反映させるために、データベースサーバ１５０から通信制御装置１０にデータを転送して格納させる。【０１０７】
図２２（ａ）（ｂ）（ｃ）は、データベースを更新する様子を説明するための図である。図２２（ａ）は、図２０と同様に、装置ＩＤ「１」〜「５」の通信制御装置１０が運用中であり、装置ＩＤ「６」の通信制御装置１０がスタンバイ中である状況を示す。運用監視サーバ１１０は、データベースを更新するタイミングが到来すると、現在スタンバイ状態である通信制御装置１０を特定し、その通信制御装置１０に対してデータを格納するようデータベースサーバ１５０に指示する。図２２（ａ）の例では、装置ＩＤ「６」の通信制御装置１０がスタンバイ中であるから、この通信制御装置１０にデータベースサーバ１５０からデータが格納される。このとき、運用監視サーバ１１０は、装置ＩＤ「６」の運用状況欄１１３を「データ更新中」に変更する。【０１０８】
図２２（ｂ）は、通信制御装置１０のデータベースが更新中である状況を示す。データベースサーバ１５０は、運用中の通信制御装置１０のいずれかが担当するユーザのデータを、スタンバイ中であった装置ＩＤ「６」の通信制御装置１０のユーザデータベース５７に格納する。また、ウイルス／フィッシングサイトリスト１６１、ホワイトリスト１６２、ブラックリスト１６３、共通カテゴリリスト１６４、第２データベース６０のデータも格納する。図２２（ｂ）の例では、装置ＩＤ「１」の通信制御装置１０が担当していた、ユーザＩＤ「０００００１〜１０００００」のユーザのデータを、装置ＩＤ「６」の通信制御装置１０に格納している。【０１０９】
図２２（ｃ）は、装置ＩＤ「６」の通信制御装置１０のデータベースが更新されて運用が開始され、代わって装置ＩＤ「１」の通信制御装置１０がスタンバイ状態となった状況を示す。運用監視サーバ１１０は、装置ＩＤ「６」の通信制御装置１０に対するデータの格納が終了すると、更新後のデータベースを保持する装置ＩＤ「６」の通信制御装置１０の運用を開始すると同時に、更新前のデータベースを保持する装置ＩＤ「１」の通信制御装置１０の運用を停止してスタンバイ状態にする。これにより、データベースが更新された通信制御装置１０に運用が切り替えられる。つづいて、装置ＩＤ「１」の通信制御装置１０に、ユーザＩＤ「１００００１〜２０００００」のユーザのデータを格納した後、装置ＩＤ「１」の通信制御装置１０を運用開始し、装置ＩＤ「２」の通信制御装置１０の運用を停止する。以降、同様に、巡回的にデータベースを更新していくことで、通信制御システム１００の運用を停止することなく、全ての通信制御装置１０のデータベースを背後で更新することができる。【０１１０】
このように、本実施の形態の通信制御装置１０では、各通信制御装置１０に格納されているデータは固定的ではなく、あるユーザのデータが、いずれの通信制御装置１０に格納されているかは、時間によって移り変わる。各通信制御装置１０にパケットを送る前に、いずれの通信制御装置１０にそのユーザのデータが存在するかを判定する処理を行うと、その処理に要する時間が余分にかかる。そのため、本実施の形態では、受信したパケットを全ての通信制御装置１０へ供給し、各通信制御装置１０が、そのパケットを発したユーザのデータを保持しているか否かを判定し、保持していた通信制御装置１０のみがパケットを処理し、保持していなかった通信制御装置１０はパケットを無視する。以下、このような仕組みを実現するための技術について説明する。【０１１１】
図２３は、複数の通信制御装置１０によりパケットを処理するために設けられた通信経路制御装置の構成を示す。通信経路制御装置２００は、スイッチ２１０、データ供給ユニットの一例である光スプリッタ２２０、及びスイッチ２３０を備える。スイッチ２１０は、受信したパケットを通信制御装置１０へ送信する。ここで、スイッチ２１０と通信制御装置１０の間には、複数の通信制御装置１０ａ、１０ｂ、１０ｃにパケットを並行して供給するための光スプリッタ２２０が設けられており、スイッチ２１０は、実際には光スプリッタ２２０へパケットを送信し、光スプリッタ２２０が各通信制御装置へパケットを並行して送信する。【０１１２】
複数の通信制御装置１０ａ、１０ｂ、１０ｃへパケットを送信するために、パケットをブロードキャストに変換すると、例えばヘッダにタイムスタンプを追加するなどの余分な処理が発生し、処理速度が低下してしまう。そのため、パケットに変更を加えずに、光スプリッタ２２０により分割して、ユニキャストのまま複数の通信制御装置１０ａ、１０ｂ、１０ｃへパケットを送信する。この方式を、本明細書では「パラレルキャスト」と呼ぶ。【０１１３】
各通信制御装置は、自装置のＭＡＣアドレス宛のパケットのみを受信するモードではなく、宛先のＭＡＣアドレスに関係なく全てのパケットを受信するプロミスキャスモードに設定される。各通信制御装置は、光スプリッタ２２０からパラレルキャストされたパケットを受信すると、ＭＡＣアドレスのマッチング処理を省き、全てのパケットをいったん取得して、データ保持ユニットに保持されたユーザデータベース５７を参照して前提技術で説明したユーザＩＤのマッチング処理を行い、自身が処理すべきパケットか否かを判定する。図２３に示した例では、パケットを発信したユーザのデータが通信制御装置１０ｃに存在していたので、通信制御装置１０ａ及び１０ｂは、そのパケットを破棄し、通信制御装置１０ｃは、上述したＵＲＬフィルタリング処理を実行する。【０１１４】
通信制御装置１０ｃは、アクセスが禁止された場合など、ユーザ宛にパケットを返信する場合には、光スプリッタ２２０を介さずにスイッチ２１０へ応答パケットを送信する。通信制御装置１０ｃは、パケットを処理した結果、アクセスが許可された場合は、そのパケットをコンテンツの要求先へ送信する。ここで、通信制御装置１０と上流の通信回線の間には、複数の通信制御装置１０ａ、１０ｂ、１０ｃから送出されるパケットを集約するためのスイッチ２３０が設けられており、通信制御装置１０ｃは、実際にはスイッチ２３０へパケットを送信し、スイッチ２３０が上流の通信回線へパケットを送出する。【０１１５】
コンテンツの要求先から返信されたパケットをスイッチ２３０が受信すると、このパケットは通信制御装置１０による処理を必要としないので、スイッチ２３０のポート２３２からスイッチ２１０のポート２１２へ送信され、スイッチ２１０からユーザに向けて送出される。通常、インターネットでは、パケットに対する応答パケットが確実に送信元に返信されるよう、返信経路を確保するために、送信時の経路がパケットに記録される。しかし、本実施の形態では、通信制御経路装置２００内における返信経路が予め用意されているので、経路を記録せずに、すなわち、パケットを加工せずに装置間の通信を行う。これにより、無駄な処理を省き、処理速度を向上させることができる。【０１１６】
図２３の例では、ユーザから発信されたコンテンツの取得要求を含むパケットをコンテンツを保持するサーバへ送出する場合にのみパケットを処理し、コンテンツを保持するサーバからユーザへ送出されたパケットは処理せずに通過させる場合の構成を示しているが、通信制御装置１０が両方向のパケットを処理するように構成してもよい。この場合、通信制御装置１０の両側に光スプリッタ２２０を設ければよい。また、スイッチ２３０からスイッチ２１０へのバイパス経路は設けなくてもよい。【０１１７】
このように、複数の通信制御装置のうち、パケットを処理すべき通信制御装置を予め特定しなくても、全ての通信制御装置に同じパケットをパラレルキャストすることにより、処理すべき通信制御装置に適切にパケットを処理させることができる。【０１１８】
複数の通信制御装置のうち、少なくとも一つの通信制御装置は、ユーザデータベース５７に格納されたユーザＩＤのリストのいずれのユーザＩＤも含まないパケットを受信したときに、パケットをそのままネットワークへ送出してもよい。これにより、いずれの通信制御装置も処理する必要がないパケットを受信したときに、そのパケットを適切に透過させることができる。複数の通信制御装置がパケットを透過させると、同じパケットが複数送出されることになるので、いずれか一つの通信制御装置のみがパケットを透過させることが望ましい。この機能を有する通信制御装置を「プライマリ装置」と呼び、その他の通信制御装置を「セカンダリ装置」と呼ぶ。【０１１９】
運用監視サーバ１１０は、いずれか一つの通信制御装置をプライマリ装置に指定して、上述した機能を実行させ、その他の通信制御装置をセカンダリ装置に指定して、自身の担当するパケットのみを処理させるように制御してもよい。この場合、プライマリ装置は、ユーザデータベース５７に格納されたＩＤのリストのうち、自身が処理すべきユーザＩＤの範囲に該当するパケットを処理し、ユーザデータベース５７に格納されたユーザＩＤには合致するが、自身が担当する範囲のユーザＩＤではないパケットは破棄する。また、ユーザデータベース５７に格納されたいずれのユーザＩＤとも合致しない場合は、そのパケットを処理せずに透過させる。セカンダリ装置は、ユーザデータベース５７に格納されたＩＤのリストのうち、自身が処理すべきユーザＩＤの範囲に該当するパケットのみを処理し、その他のパケットは破棄する。【０１２０】
図２４は、複数の通信制御装置のうちいずれか一つによりパケットが処理される様子を示す。図２４の例において、通信制御装置１０は、３台の通信制御装置１０ａ、１０ｂ、１０ｃを含んでおり、ユーザデータベース５７には、「０００００１−３０００００」のユーザＩＤのリストが格納されている。通信制御装置１０ａは、ユーザＩＤ「０００００１−１０００００」のユーザのパケットを処理し、通信制御装置１０ｂは、ユーザＩＤ「１００００１−２０００００」のユーザのパケットを処理し、通信制御装置１０ｃは、ユーザＩＤ「２００００１−３０００００」のユーザのパケットを処理する。また、通信制御装置１０ａがプライマリ装置に指定されており、通信制御装置１０ｂ及び１０ｃはセカンダリ装置である。【０１２１】
ここで、ユーザＩＤ「１４８８９０」のユーザのパケットを受信したとする。このユーザＩＤは、ユーザデータベース５７に格納されたリストに含まれるので、このパケットは、いずれかの通信制御装置により処理されなければならない。ここでは、ユーザＩＤ「１００００１−２０００００」のパケットを処理する通信制御装置１０ｂがこのパケットを処理し、通信制御装置１０ａ及び１０ｃはこのパケットを破棄する。【０１２２】
図２５は、複数の通信制御装置のうちいずれか一つによりパケットが透過される様子を示す図である。図２４と同様の例において、ユーザＩＤ「５１３４８２」のユーザのパケットを受信したとする。このユーザＩＤは、ユーザデータベース５７に格納されたリストに含まれないので、いずれの通信制御装置も処理する必要がない。そこで、このパケットを処理せずに透過させるために、プライマリ装置に指定された通信制御装置１０ａのみがこのパケットを透過させ、その他の通信制御装置１０ｂ及び１０ｃはこのパケットを破棄する。このような技術により、処理すべきパケットをいずれかの通信制御装置により適切に処理するとともに、処理すべきでないパケットをそのまま透過させることができる。【０１２３】
これらの通信制御装置は、上述したように、通信経路制御装置２００からパラレルキャストされる全てのパケットを受信して処理又は破棄するので、インターネット上で装置を一意に識別するためのＩＰアドレスを付与しておく必要がない。サーバ装置などにより、上述したようなパケット処理を実行する場合は、サーバ装置に対する攻撃を考慮する必要があるが、本実施の形態の通信制御装置は、インターネットを介して悪意ある第三者から直接攻撃を受けることがないので、安全に通信制御を行うことができる。【０１２４】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。【０１２５】
実施の形態では、複数台の通信制御装置のそれぞれにデータ処理ユニットとデータ保持ユニットが設けられた通信制御システムについて説明したが、本発明の技術は、１台のデータ処理装置の内部に複数のデータ保持ユニットを備えた場合にも同様に適用可能である。また、１つのデータ処理ユニットが複数のデータ保持ユニットに保持されたデータベースを参照してデータを処理する場合にも同様に適用可能である。また、待機用のデータ保持ユニットは、２つ以上設けられてもよい。
【産業上の利用可能性】
【０１２６】
本発明は、複数のデータベースを含むデータ処理システムに適用することができる。
【図１】
0004087428.tif 000002
【図２】
0004087428.tif 000003
【図３】
0004087428.tif 000004
【図４】
0004087428.tif 000005
【図５】
0004087428.tif 000006
【図６】
0004087428.tif 000007
【図７】
0004087428.tif 000008
【図８】
0004087428.tif 000009
【図９】
0004087428.tif 000010
【図１０】
0004087428.tif 000011
【図１１】
0004087428.tif 000012
【図１２】
0004087428.tif 000013
【図１３】
0004087428.tif 000014
【図１４】
0004087428.tif 000015
【図１５】
0004087428.tif 000016
【図１６】
0004087428.tif 000017
【図１７】
0004087428.tif 000018
【図１８】
0004087428.tif 000019
【図１９】
0004087428.tif 000020
【図２０】
0004087428.tif 000021
【図２１】
0004087428.tif 000022
【図２２】
0004087428.tif 000023
【図２３】
0004087428.tif 000024
【図２４】
0004087428.tif 000025
【図２５】
0004087428.tif 000026