JP2009188559A - ルータ装置 - Google Patents

ルータ装置 Download PDF

Info

Publication number
JP2009188559A
JP2009188559A JP2008024545A JP2008024545A JP2009188559A JP 2009188559 A JP2009188559 A JP 2009188559A JP 2008024545 A JP2008024545 A JP 2008024545A JP 2008024545 A JP2008024545 A JP 2008024545A JP 2009188559 A JP2009188559 A JP 2009188559A
Authority
JP
Japan
Prior art keywords
data
communication
communication control
circuit
database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008024545A
Other languages
English (en)
Inventor
Mitsugi Nagoya
貢 名古屋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Duaxes Corp
Original Assignee
Duaxes Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Duaxes Corp filed Critical Duaxes Corp
Priority to JP2008024545A priority Critical patent/JP2009188559A/ja
Publication of JP2009188559A publication Critical patent/JP2009188559A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】通信データを適切に中継する技術を提供する。
【解決手段】通信制御装置は、複数のネットワークを接続し、ネットワーク間で通信データを中継するルータ装置と、通信データを送出すべき帯域のクラスごとに、通信データをアンテナから送出するタイミングを管理する複数のクラス別管理回路420と、送出すべき通信データと、通信データを送出すべき帯域のクラスの情報とを取得し、クラスの情報に応じて、複数のクラス別管理回路420の中から通信データを供給すべきクラス別管理回路420を選択し、選択したクラス別管理回路420に通信データを供給する選択回路405と、を備える。
【選択図】図76

Description

本発明は、通信制御装置に関し、特に、複数のネットワークを接続し、ネットワーク間で通信データを中継するルータ装置に関する。
インターネットのインフラが整備され、携帯電話端末、パーソナルコンピュータ、VoIP(Voice over Internet Protocol)電話端末などの通信端末が広く普及した現在、インターネットの利用者は爆発的に増加している。このような状況下、コンピュータウイルス、ハッキング、スパムメールなど、セキュリティに関する問題が顕在化しており、通信を適切に制御する技術が求められている。
国際公開WO2006−087832号パンフレット
通信環境の向上に伴って通信量も膨大になっており、限られたインフラを効率良く利用して大容量のデータを適切に送受信する技術が求められている。
本発明はこうした状況に鑑みてなされたものであり、その目的は、通信データを適切に中継する技術の提供にある。
本発明のある態様は、ルータ装置に関する。このルータ装置は、複数のネットワークのそれぞれと接続するための複数のポートと、通信装置のIPアドレスと、前記通信装置へ送信する通信データを出力すべきポートとを対応づけて格納したデータベースと、取得した通信データの宛先の通信装置のIPアドレスを前記データベースから検索する検索回路と、前記通信データの宛先の通信装置のIPアドレスに対応づけられたポートから前記通信データを送出する処理実行回路と、通信データを送出すべき帯域のクラスごとに、前記通信データを送出するタイミングを管理する複数の管理回路と、送出すべき通信データと、前記通信データを送出すべき帯域のクラスの情報とを取得し、前記クラスの情報に応じて、前記複数の管理回路の中から前記通信データを供給すべき管理回路を選択し、選択した管理回路に前記通信データを供給する選択回路と、を備えることを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、通信データを適切に中継する技術を提供することができる。
(前提技術)
図1は、前提技術に係る通信制御システムの構成を示す。通信制御システム100は、通信制御装置10と、通信制御装置10の動作を支援するために設けられた各種の周辺装置を含む。前提技術の通信制御装置10は、インターネットサービスプロバイダなどにより提供されるパケットフィルタリング機能を実現する。ネットワークの経路に設けられた通信制御装置10は、ネットワークを介して送受信されるパケットを取得して、その内容を解析し、通信の許否を判断する。通信が許可される場合は、通信制御装置10は、そのパケットをネットワークへ送出する。通信が禁止される場合は、通信制御装置10は、そのパケットを破棄し、必要であれば送信元に対して警告メッセージなどを返信する。
前提技術の通信制御システム100では、複数の通信制御装置10a、10b、10c、・・・、が設けられており、それらを協働させて、1台の通信制御装置10として機能させているが、以下、個々の通信制御装置10a、10b、10c、・・・も、それらの総称も区別せずに通信制御装置10と呼ぶ。
本前提技術の通信制御システム100では、それぞれの通信制御装置10は、パケットの処理に必要なデータベースの少なくとも一部を分割して保持しているが、分割して保持するのに必要な台数よりも少なくとも1台以上余分に設けられる。例えば、データ数が30万件以上40万件未満である場合、運用に必要な通信制御装置の台数は4台であるが、いずれかの通信制御装置10が故障したときに代わって運用させるための待機用として、また、通信制御装置10に含まれるデータベースを更新するときの待機用として、1台以上の通信制御装置10を設け、合計で最低5台の通信制御装置10を設ける。従来は、フォールトトレラントのために、システム全体を二重化させる必要があったが、本前提技術の技術によれば、分割された単位の通信制御装置10を余分に設けておけばよいので、コストを低減することができる。これら複数の通信制御装置10a、10b、10c、・・・、の運用状況は、運用監視サーバ110により管理される。本前提技術の運用監視サーバ110は、通信制御装置の運用状況を管理するための管理テーブルを有する。
周辺装置は、運用監視サーバ110、接続管理サーバ120、メッセージ出力サーバ130、ログ管理サーバ140、及びデータベースサーバ150を含む。接続管理サーバ120は、通信制御装置10に対する接続を管理する。接続管理サーバ120は、例えば、携帯電話端末から送出されたパケットを通信制御装置10で処理する際に、パケットに含まれる携帯電話端末を一意に識別する情報を用いて、通信制御システム100のサービスを享受可能なユーザであることを認証する。いったん認証されると、その携帯電話端末に一時的に付されたIPアドレスから送出されたパケットは、一定の期間は接続管理サーバ120で認証せずに通信制御装置10へ送られて処理される。メッセージ出力サーバ130は、通信制御装置10により判定された通信の許否の結果に応じて、パケットの送信先又は送信元に対するメッセージを出力する。ログ管理サーバ140は、通信制御装置10の運用履歴を管理する。データベースサーバ150は、外部から最新のデータベースを取得し、通信制御装置10に入力する。通信制御装置10の運用を止めずにデータベースを更新するために、通信制御装置10はバックアップ用のデータベースを有してもよい。運用監視サーバ110は、通信制御装置10と、接続管理サーバ120、メッセージ出力サーバ130、ログ管理サーバ140、データベースサーバ150などの周辺装置の運用状況を監視する。運用監視サーバ110は、通信制御システム100の中で最も優先度が高く、通信制御装置10及び全ての周辺装置の監視制御を行う。通信制御装置10は、後述するように、専用のハードウェア回路により構成されるが、運用監視サーバ110は、本出願人による特許第3041340号などの技術を利用して、バウンダリスキャン回路を利用して監視のためのデータを通信制御装置10などとの間で入出力することにより、通信制御装置10の運用中にも運用状況を監視することができる。
前提技術の通信制御システム100は、以下に説明するように、高速化のために専用のハードウェア回路により構成された通信制御装置10を、周辺に接続された各種の機能を有するサーバ群により制御する構成とすることにより、サーバ群のソフトウェアを適当に入れ替えることで、同様の構成により各種の機能を実現することができる。前提技術によれば、このような柔軟性の高い通信制御システムを提供することができる。
図2は、従来の通信制御装置1の構成を示す。従来の通信制御装置1は、受信側の通信制御部2と、パケット処理部3と、送出側の通信制御部4とを備える。通信制御部2及び4は、それぞれ、パケットの物理層の処理を行うPHY処理部5a及び5bと、パケットのMAC層の処理を行うMAC処理部6a及び6bとを備える。パケット処理部3は、IP(Internet Protocol)のプロトコル処理を行うIP処理部7、TCP(Transport Control Protocol)のプロトコル処理を行うTCP処理部8など、プロトコルに応じた処理を行うプロトコル処理部と、アプリケーション層の処理を行うAP処理部9とを備える。AP処理部9は、パケットに含まれるデータに応じて、フィルタリングなどの処理を実行する。
従来の通信制御装置1では、パケット処理部3は、汎用プロセッサであるCPUと、CPU上で動作するOSとを利用して、ソフトウェアにより実現されていた。しかしながら、このような構成では、通信制御装置1の性能はCPUの性能に依存することになり、高速に大容量のパケットを処理可能な通信制御装置を実現しようとしても、自ずと限界がある。例えば、64ビットのCPUであれば、一度に同時に処理可能なデータ量は最大で64ビットであり、それ以上の性能を有する通信制御装置は存在しなかった。また、汎用的な機能を有するOSの存在を前提としていたので、セキュリティホールなどが存在する可能性が絶無ではなく、OSのバージョンアップなどのメンテナンス作業を必要としていた。
図3は、前提技術に係る通信制御装置の構成を示す。本前提技術の通信制御装置10は、従来の通信制御装置においてはCPU及びOSを含むソフトウェアにより実現されていたパケット処理部に代えて、ワイヤードロジック回路による専用のハードウェアにより構成されたパケット処理回路20を備える。汎用処理回路であるCPUにおいて動作するOSとソフトウェアにより通信データを処理するのではなく、通信データを処理するための専用のハードウェア回路を設けることにより、CPUやOSなどに起因する性能の限界を克服し、処理能力の高い通信制御装置を実現することが可能となる。
例えば、パケットフィルタリングなどを実行するために、パケットに含まれるデータに、フィルタリングの判断基準となる基準データが含まれるか否かを検索する場合に、CPUを用いて通信データと基準データを比較すると、一度に高々64ビットしか比較することができず、処理速度を向上させようとしてもCPUの性能で頭打ちになるという問題があった。CPUでは、通信データから64ビットをメモリへ読み上げ、基準データとの比較を行い、つづいて、次の64ビットをメモリへ読み上げる、という処理を何度も繰り返し行う必要があるので、メモリへの読み上げ時間が律速となり、処理速度に限界がある。
それに対し、本前提技術では、通信データと基準データとを比較するために、ワイヤードロジック回路により構成された専用のハードウェア回路を設ける。この回路は、64ビットよりも長いデータ長、例えば、1024ビットのデータ長の比較を可能とするために、並列に設けられた複数の比較器を含む。このように、専用のハードウェアを設けることにより、同時に並列して多数のビットマッチングを実行することができる。従来のCPUを用いた通信制御装置1では一度に64ビットしか処理できなかったところを、一度に1024ビットの処理を可能にすることで、飛躍的に処理速度を向上させることができる。比較器の数を多くすれば処理能力も向上するが、コストやサイズも増大するので、所望の処理性能と、コスト、サイズ、などを考慮して、最適なハードウェア回路を設計すればよい。
また、本前提技術の通信制御装置10は、ワイヤードロジック回路による専用のハードウェアにより構成されるので、OS(Operating System)を必要としない。このため、OSのインストール、バグ対応、バージョンアップなどの作業が必要なく、管理やメンテナンスのためのコストや工数を低減させることができる。また、汎用的な機能が求められるCPUとは異なり、不必要な機能を包含していないので、余計なリソースを用いることがなく、低コスト化、回路面積の低減、処理速度の向上などが望める。さらに、OSを利用していた従来の通信制御装置とは異なり、余分な機能を有しないので、セキュリティホールなどが発生する可能性が低く、ネットワークを介した悪意ある第三者からの攻撃に対する耐性に優れている。
従来の通信制御装置1は、CPUとOSを前提としたソフトウェアによりパケットを処理しており、パケットの全てのデータを受信してからプロトコル処理を行い、データがアプリケーションに渡される。それに対して、本前提技術の通信制御装置10では、専用のハードウェア回路により処理を行うので、パケットの全てのデータを受信してから処理を開始する必要はなく、処理に必要なデータを受信すれば、後続のデータの受信を待たずに、任意の時点で処理を開始することができる。例えば、後述する位置検出回路における位置検出処理は、比較対象データの位置を特定するための位置特定データを受信した時点で開始することができる。このように、全てのデータの受信を待たずに様々な処理をフローティングで実行することができるので、パケットのデータを処理するのに要する時間を短縮することができる。
図4は、パケット処理回路の内部構成を示す。パケット処理回路20は、通信データに対して実行する処理の内容を決定するための基準となる基準データを記憶する第1データベース50A、50B、及び50C(これらを総称して「第1データベース50」という)と、受信された通信データの中に基準データが含まれているか否かを、通信データと基準データとを比較することにより検索する検索回路30と、検索回路30による検索結果と通信データに対して実行する処理の内容とを対応づけて記憶する第2データベース60と、検索回路30による検索結果と第2データベース60に記憶された条件とに基づいて通信データを処理する処理実行回路40とを含む。
検索回路30は、通信データの中から基準データと比較すべき比較対象データの位置を検出する位置検出回路32と、第1データベース50に記憶された基準データを3以上の範囲に分割したとき、比較対象データがそれらの範囲のうちいずれに属するかを判定する判定回路の一例であるインデックス回路34と、判定された範囲の中で比較対象データと合致する基準データを検索するバイナリサーチ回路36とを含む。比較対象データを基準データの中から検索する方法としては、任意の検索技術を利用可能であるが、本前提技術ではバイナリサーチ法を用いる。本前提技術では、後述するように、改良されたバイナリサーチ法を用いるので、そのために第1データベース50を3つ設けている。第1データベース50A、50B、及び50Cには、同じ基準データが格納されている。
図5は、位置検出回路の内部構成を示す。位置検出回路32は、比較対象データの位置を特定するための位置特定データと通信データとを比較するための複数の比較回路33a〜33fを含む。ここでは、6個の比較回路33a〜33fが設けられているが、後述するように、比較回路の個数は任意でよい。それぞれの比較回路33a〜33fには、通信データが、所定のデータ長、例えば、1バイトずつずらして入力される。そして、これら複数の比較回路33a〜33fにおいて、同時に並列して、検出すべき位置特定データと通信データとの比較がなされる。
本前提技術においては、通信制御装置10の動作を説明するための例として、通信データ中に含まれる「No. ###」という文字列を検出し、その文字列中に含まれる数字「###」を基準データと比較して、基準データに合致した場合はパケットの通過を許可し、合致しなかった場合はパケットを破棄する処理を行う場合について説明する。
図5の例では、通信データの中から、数字「###」の位置を特定するための位置特定データ「No.」を検出するために、通信データ「01No. 361・・・」を、1文字ずつずらして比較回路33a〜33fに入力している。すなわち、比較回路33aには「01N」が、比較回路33bには「1No」が、比較回路33cには「No.」が、比較回路33dには「o. 」が、比較回路33eには「. 3」が、比較回路33fには「 36」が、それぞれ入力される。ここで、比較回路33a〜33fが同時に位置特定データ「No.」との比較を実行する。これにより、比較回路33cがマッチし、通信データの先頭から3文字目に「No.」という文字列が存在することが検出される。こうして、位置検出回路32により検出された位置特定データ「No.」の次に、比較対象データである数字のデータが存在することが検出される。
CPUにより同様の処理を行うならば、まず、文字列「01N」を「No.」と比較し、続いて、文字列「1No」を「No.」と比較する、というように、先頭から順に1つずつ比較処理を実行する必要があるため、検出速度の向上は望めない。これに対し、本前提技術の通信制御装置10では、複数の比較回路33a〜33fを並列に設けることにより、CPUではなしえなかった同時並列的な比較処理が可能となり、処理速度を格段に向上させることができる。比較回路は多ければ多いほど同時に比較可能な位置が多くなるので、検出速度も向上するが、コスト、サイズ、などを考慮の上、所望の検出速度を得られるのに十分な数の比較回路を設ければよい。
位置検出回路32は、位置特定データを検出するためだけでなく、汎用的に文字列を検出する回路として利用されてもよい。また、文字列だけでなく、ビット単位で位置特定データを検出するように構成されてもよい。
図6は、位置検出回路の別の例を示す。図6に示した例では、位置検出回路32に設けられたそれぞれの比較回路33a〜33fのデータ長よりも位置特定データの方が短い場合は、位置特定データの後に所定のデータ、例えば、「00H」又は「01H」などをパディングする。また、位置特定データと比較する通信データについても、位置特定データと同じデータ長のみを抜き出して、その後に、位置特定データにパディングしたデータと同じデータをパディングする。このとき、通信データ自身を改変しないために、通信データをワークとしてコピーし、コピーしたデータを加工して比較回路33a〜33fに入力してもよい。これにより、位置特定データのデータ長によらず、位置検出回路32を汎用的に用いることができる。
図7は、位置検出回路の更に別の例を示す。図7に示した例では、図6に示した例と同様に、位置特定データの後に所定のデータをパディングするが、このデータをワイルドカードとして扱う。すなわち、比較回路33a〜33fは、ワイルドカードであるデータが入力されると、比較対象のデータが何であっても無条件に合致したと判定する。これにより、位置特定データのデータ長によらず、位置検出回路32を汎用的に用いることができる。
図8は、第1データベースの内部データの例を示す。第1データベース50には、パケットのフィルタリング、ルーティング、スイッチング、置換などの処理の内容を決定するための基準となる基準データが、何らかのソート条件にしたがって昇順又は降順にソートされて格納されている。図8の例では、1000個の基準データが記憶されている。
インデックス回路34は、第1データベース50に格納されている基準データを3以上の範囲52a〜52dに分割したとき、比較対象データがそれらの範囲のうちいずれに属するかを判定する。図8の例では、1000個の基準データは、250個ずつ4つの範囲52a〜52dに分割されている。インデックス回路34は、範囲の境界の基準データと比較対象データとを比較する複数の比較回路35a〜35cを含む。比較回路35a〜35cにより比較対象データと境界の基準データとを同時に並列して比較することにより、比較対象データがいずれの範囲に属するかを1度の比較処理で判定することができる。
インデックス回路34の比較回路35a〜35cに入力される境界の基準データは、通信制御装置10の外部に設けられた装置により設定されてもよいし、予め第1データベース50の所定位置の基準データが自動的に入力されるようにしてもよい。後者の場合、第1データベース50を更新しても、自動的に第1データベース50の所定位置の基準データが比較回路35a〜35cに入力されるので、初期設定などを必要とせず、直ちに通信制御処理を実行させることができる。
前述したように、CPUによりバイナリサーチを実行する場合は、同時に複数の比較を実行することができないが、本前提技術の通信制御装置10では、複数の比較回路35a〜35cを並列に設けることにより、同時並列的な比較処理を可能とし、検索速度を格段に向上させることができる。
インデックス回路34により範囲が判定されると、バイナリサーチ回路36がバイナリサーチ法により検索を実行する。バイナリサーチ回路36は、インデックス回路34により判定された範囲をさらに2個に分割し、その境界位置にある基準データと比較対象データとを比較することにより、いずれの範囲に属するかを判定する。バイナリサーチ回路36は、基準データと比較対象データとをビット単位で比較する比較器を複数個、例えば本前提技術では1024個含んでおり、1024ビットのビットマッチングを同時に実行する。2分割された範囲のいずれに属するかが判定されると、さらに、その範囲を2分割して境界位置にある基準データを読み出し、比較対象データと比較する。以降、この処理を繰り返すことにより範囲をさらに限定し、最終的に比較対象データと合致する基準データを検索する。
前述した例を用いてさらに詳細に動作を説明する。インデックス回路34の比較回路35a〜35cには、比較対象データとして「361」が入力され、基準データとして、比較回路35aには、範囲52aと52bの境界にある基準データ「378」が、比較回路35bには、範囲52bと52cの境界にある基準データ「704」が、比較回路35cには、範囲52cと52dの境界にある基準データ「937」が、それぞれ入力される。比較回路35a〜35cにより同時に比較が行われ、比較対象データ「361」が範囲52aに属することが判定される。以降、バイナリサーチ回路36が基準データの中に比較対象データ「361」が存在するか否かを検索する。
図9は、第1データベースの内部データの別の例を示す。図9に示した例では、基準データのデータ数が、第1データベース50に保持可能なデータ数、ここでは1000個よりも少ない。このとき、第1データベース50には、最終データ位置から降順に基準データが格納される。そして、残りのデータには0が格納される。データベースのローディング方法として、先頭からデータを配置せずにローディングエリアの後方から配置し、ローディングエリア先頭に空きが生じた場合は全ての空きをゼロサプレスすることで、データーベースは常にフルの状態になり、バイナリー検索する場合の検索時間を一定にすることができる。また、バイナリサーチ回路36は、検索中に基準データとして「0」を読み込んだときには、比較結果が自明であるから、比較を行わずに範囲を特定して、次の比較にうつることができる。これにより、検索速度を向上させることができる。
CPUによるソフトウェア処理においては、第1データベース50に基準データを格納する際に、最初のデータ位置から昇順に基準データが格納される。残りのデータには、例えば最大値が格納されることになるが、この場合、バイナリサーチにおいて、上述したような比較処理の省略はできない。上述した比較技術は、専用のハードウェア回路により検索回路30を構成したことにより実現される。
図10は、第1データベースの内部データのさらに別の例を示す。図10に示した例では、基準データを均等に3以上の範囲に分割するのではなく、範囲52aは500個、範囲52bは100個というように、範囲に属する基準データの数が不均一になっている。これらの範囲は、通信データ中における基準データの出現頻度の分布に応じて設定されてもよい。すなわち、それぞれの範囲に属する基準データの出現頻度の和がほぼ同じになるように範囲が設定されてもよい。これにより、検索効率を向上させることができる。インデックス回路34の比較回路35a〜35cに入力される基準データは、外部から変更可能になっていてもよい。これにより、範囲を動的に設定することができ、検索効率を最適化することができる。
図11は、インデックス回路の別の例を示す。図8〜10に示した例では、インデックス回路34は、3つの比較回路35a〜35cを用いて、比較対象データが第1データベース50の4つの範囲52a〜52dのいずれに属するかを判定したが、図11の例では、インデックス回路34には、比較対象データが、4つの範囲52a〜52dのそれぞれに含まれるか否かを判定するための4つの比較回路35d〜35gが設けられている。例えば、比較回路35dには、第1データベース50の0件目の基準データと、250件目の基準データと、比較対象データとが入力され、それぞれの基準データと比較対象データとを比較することにより、基準データが範囲52aに含まれるか否かを判定する。それぞれの比較回路35d〜35gの比較結果は判定回路35zに入力され、判定回路35zから、基準データがいずれの範囲に含まれているかが出力される。比較回路35d〜35gは、基準データが入力された2つの基準データの間に含まれるか否かを出力してもよいし、範囲よりも大きい、範囲に含まれる、範囲よりも小さい、のいずれかを出力してもよい。比較対象データが、範囲52a〜52dのいずれにも含まれないと判定された場合は、比較対象データが第1データベース50中に存在しないことが分かるので、以降のバイナリサーチを行うまでもなく、検索を終了することができる。
図12は、バイナリサーチ回路に含まれる比較回路の構成を示す。前述したように、バイナリサーチ回路36に含まれる比較回路は、1024個の比較器36a、36b、・・・、を含む。それぞれの比較器36a、36b、・・・、には、基準データ54と比較対象データ56が1ビットずつ入力され、それらの大小が比較される。インデックス回路34の各比較回路35a〜35cの内部構成も同様である。このように、専用のハードウェア回路で比較処理を実行することにより、多数の比較回路を並列して動作させ、多数のビットを同時に比較することができるので、比較処理を高速化することができる。
図13は、バイナリサーチ回路の構成を示す。バイナリサーチ回路36は、図12に示した1024個の比較器36a、36b、・・・を含む比較回路36A、36B、及び36Cと、それらの比較回路を制御する制御回路36Zを含む。
従来のバイナリサーチ法では、まず1回目は、データが昇順又は降順に整列されたデータベースの探索対象範囲の1/2の位置にあるデータを読み出して比較対象データと比較する。データが昇順に並べられている場合、比較対象データの方が小さければ、比較対象データは探索対象範囲の前半に存在するので、2回目は前半を探索対象範囲としてその1/2、すなわち最初の探索対象範囲の1/4の位置にあるデータを読み出して比較対象データと比較する。逆に、比較対象データの方が大きければ、比較対象データは探索対象範囲の後半に存在するので、2回目は後半を探索対象範囲としてその1/2、すなわち最初の探索対象範囲の3/4の位置にあるデータを読み出して比較対象データと比較する。このように、探索対象範囲を半分ずつ絞っていき、最終的に対象データに到達する。
本前提技術では、バイナリサーチのための比較回路を3つ設けているので、1回目の探索のために探索対象範囲の1/2の位置にあるデータと比較対象データとを比較させるときに、同時に並行して、2回目の探索のために探索対象範囲の1/4及び3/4の位置にあるデータと比較対象データとを比較させる。これにより、2回分の探索を一度に行うことができるので、データベースからデータを読み上げる時間を短縮することができる。また、3つの比較回路を同時に並列して動作させることにより、比較の回数を半分に抑え、探索に要する時間を短縮することができる。
図13の例では、2回分の探索を同時に行うために、3つの比較回路を設けたが、一般に、n回分の探索を同時に並行して行うためには、2−1個の比較回路を設ければよい。制御回路36Zは、探索対象範囲の1/2、2/2、・・・、(2−1)/2の位置のデータを、2−1個の比較回路のそれぞれに入力させ、それらを同時に並列して動作させて比較対象データと比較させる。制御回路36Zは、それぞれの比較回路の比較結果を取得して、比較対象データが探索されたか否かを判定する。制御回路36Zは、いずれかの比較回路が、データが一致した旨の信号を出力した場合、比較対象データが探索されたと判定して、バイナリサーチを終了する。一致した旨の信号が出力されなかった場合、次回の探索に移る。比較対象データがデータベースに存在するならば、2−1個の比較回路の比較結果が反転する範囲に存在するはずである。例えば、15個の比較回路が設けられているときに、5/16の位置のデータが比較対象データより小さく、6/16の位置のデータが比較対象データより大きければ、5/16から6/16の間の範囲に比較対象データがある。したがって、制御回路36Zは、各比較回路の比較結果を取得して、比較結果が反転した範囲を次回の探索対象範囲と決定し、決定された次回の探索対象範囲の1/2、2/2、・・・、(2−1)/2の位置のデータをそれぞれの比較回路へ入力させる。
本前提技術では、第1データベース50を3つ設けており、第1データベース50Aは比較回路36Aに接続されて探索対象範囲の1/4の位置にあるデータを比較回路36Aに供給し、第2データベース50Bは比較回路36Bに接続されて探索対象範囲の2/4の位置にあるデータを比較回路36Bに供給し、第1データベース50Cは比較回路36Cに接続されて探索対象範囲の3/4の位置にあるデータを比較回路36Cに供給する。これにより、それぞれの比較回路にデータを同時に並行して読み上げることができるので、データの読み上げに要する時間を更に短縮し、バイナリサーチを高速化することができる。
比較回路は多ければ多いほど探索速度も向上するが、コスト、サイズなどを考慮の上、所望の探索速度を得られるのに十分な数の比較回路を設ければよい。また、比較回路の数と同じだけ第1データベースを設けるのが好ましいが、コスト、サイズなどを考慮の上、いくつかの比較回路でデータベースを共用してもよい。
図14は、第1データベースの内部データの更に別の例を示す。図14に示した第1データベース50は、フィルタリングの対象となるコンテンツのURLを格納している。第1データベース50に格納されるデータは、ワイルドカードとして認識される所定のデータ、例えば、「00H」又は「01H」などを含んでもよい。図14に示した例において、「http://www.xx.xx/*********」は、「*********」がワイルドカードとして認識され、比較器36a、36b、・・・において、比較対象データが何であっても合致すると判定される。したがって、「http://www.xx.xx/」で始まる文字列は全てバイナリサーチ回路36により検出される。これにより、例えば、ドメイン「http://www.xx.xx/」の配下にあるコンテンツの全てにフィルタリングをかける処理などを容易に行うことができる。
図15は、第2データベースの内部データの例を示す。第2データベース60は、検索回路30による検索結果を格納する検索結果欄62と、通信データに対して実行する処理の内容を格納する処理内容欄64とを含み、検索結果と処理内容とを対応づけて保持する。図15の例では、通信データに基準データが含まれている場合は、そのパケットの通過を許可し、含まれていない場合は、そのパケットを破棄するという条件が設定されている。処理実行回路40は、検索結果に基づいて第2データベース60から処理内容を検索し、通信データに対して処理を実行する。処理実行回路40も、ワイヤードロジック回路により実現されてもよい。
図16は、第2データベースの内部データの別の例を示す。図16の例では、基準データごとに、処理内容が設定されている。パケットの置換を行う場合、置換先のデータを第2データベース60に格納しておいてもよい。パケットのルーティングやスイッチングを行う場合、経路に関する情報を第2データベース60に格納しておいてもよい。処理実行回路40は、検索回路30による検索結果に応じて、第2データベース60に格納された、フィルタリング、ルーティング、スイッチング、置換などの処理を実行する。図16のように、基準データごとに処理内容を設定する場合、第1データベース50と第2データベース60とを統合してもよい。
第1のデータベース及び第2のデータベースは、外部から書き換え可能に設けられる。これらのデータベースを入れ替えることにより、同じ通信制御装置10を用いて、さまざまなデータ処理や通信制御を実現することができる。また、検索対象となる基準データを格納したデータベースを2以上設けて、多段階の検索処理を行ってもよい。このとき、検索結果と処理内容とを対応づけて格納したデータベースを2以上設けて、より複雑な条件分岐を実現してもよい。このように、データベースを複数設けて多段階の検索を行う場合に、位置検出回路32、インデックス回路34、バイナリサーチ回路36などを複数設けてもよい。
上述した比較に用いられるデータは、同じ圧縮ロジックにより圧縮されてもよい。比較に際して、比較元のデータと比較先のデータが同じ方式で圧縮されていれば、通常と同様の比較が可能である。これにより、比較の際にローディングするデータ量を低減することができる。ローディングするデータ量が少なくなれば、メモリからデータを読み出すのに要する時間が短縮されるので、全体の処理時間も短縮することができる。また、比較器の量を削減することができるので、装置の小型化、軽量化、低コスト化に寄与することができる。比較に用いられるデータは、圧縮された形式で格納されていてもよいし、メモリから読み出した後、比較の前に圧縮されてもよい。
図17は、前提技術の通信制御装置の別の構成例を示す。本図に示した通信制御装置10は、図4に示した通信制御装置10と同様の構成を備える通信制御ユニット12を2つ有している。また、それぞれの通信制御ユニット12の動作を制御する切替制御部14が設けられている。それぞれの通信制御ユニット12は、2つの入出力インタフェース16を有しており、それぞれの入出力インタフェース16を介して、上流側、下流側の2つのネットワークに接続されている。通信制御ユニット12は、いずれか一方のネットワークから通信データを入力し、処理したデータを他方のネットワークに出力する。切替制御部14は、それぞれの通信制御ユニット12に設けられた入出力インタフェース16の入出力を切り替えることにより、通信制御ユニット12における通信データの流れの方向を切り替える。これにより、一方向だけではなく、双方向の通信制御が可能となる。
切替制御部14は、通信制御ユニット12の一方がインバウンド、他方がアウトバウンドのパケットを処理するように制御してもよいし、双方がインバウンドのパケットを処理するように制御してもよいし、双方がアウトバウンドのパケットを処理するように制御してもよい。これにより、例えばトラフィックの状況や目的などに応じて、制御する通信の方向を可変とすることができる。
切替制御部14は、各通信制御ユニット12の動作状況を取得し、その動作状況に応じて通信制御の方向を切り替えてもよい。例えば、一方の通信制御ユニット12を待機状態として、他方の通信制御ユニット12を動作させている場合に、その通信制御ユニット12が故障などにより停止したことを検知したときに、代替として待機中の通信制御ユニット12を動作させてもよい。これにより、通信制御装置10のフォールトトレランスを向上させることができる。また、一方の通信制御ユニット12に対して、データベースの更新などのメンテナンスを行うときに、他方の通信制御ユニット12を代替として動作させてもよい。これにより、通信制御装置10の運用を停止させずに、適切にメンテナンスを行うことができる。
通信制御装置10に3以上の通信制御ユニット12が設けられてもよい。切替制御部14は、例えば、トラフィックの状況を取得して、通信量の多い方向の通信制御処理に、より多くの通信制御ユニット12を割り当てるように、各通信制御ユニット12の通信の方向を制御してもよい。これにより、ある方向の通信量が増加しても、通信速度の低下を最小限に抑えることができる。
図18は、複数の通信制御装置10a、10b、10c、・・・、を含む通信制御装置10の構成を示す。第1データベース50は、データ数に比例して大きな容量を必要とするので、分割して通信制御装置10a、10b、10c、・・・、に保持させる。後述するように、本前提技術の通信制御システム100では、処理すべき通信パケットを、運用中の全ての通信制御装置10a、10b、10c、・・・、に供給し、それぞれの通信制御装置10が受け取ったパケットを処理する。例えば、通信制御装置10aは、データIDが「000001」から「100000」まで、通信制御装置10bは、データIDが「100001」から「200000」まで、通信制御装置10cは、データIDが「200001」から「300000」までのデータを保持しており、それぞれが保持するデータを参照してパケットを処理する。
図19は、運用監視サーバ110に設けられた管理テーブル111の内部データの例を示す。管理テーブル111には、装置ID欄112、運用状況欄113、データID欄114が設けられている。装置ID欄112には、通信制御装置10a、10b、・・・、の装置IDが格納され、運用状況欄113には、その通信制御装置の運用状況が格納され、データID欄114には、その通信制御装置が担当すべきデータIDの範囲が格納される。運用状況には、例えば、「運用中」、「スタンバイ」、「故障中」、「データ更新中」などがある。運用状況欄113は、通信制御装置10a、10b、・・・、の運用状況が変更されるたびに、運用監視サーバ110により更新される。図19に示した例では、「465183」件のデータが第1データベース50に格納されるので、装置ID「1」〜「5」の5台の通信制御装置10が運用されており、装置ID「6」の通信制御装置10はスタンバイ状態となっている。
運用監視サーバ110は、複数の通信制御装置10の運用状況を監視し、いずれかの通信制御装置10においてトラブルが発生して運用不可能な状態になったことを検知したときには、スタンバイ状態となっている通信制御装置10に、運用が停止した通信制御装置10と同じデータを格納し、その通信制御装置10に運用を切り替える。例えば、図20に示すように、装置ID「2」の通信制御装置10が故障により運用停止した場合、スタンバイ状態であった装置ID「6」の通信制御装置10に、データID「100001〜200000」のデータを格納して運用を開始させる。これにより、何らかのトラブルで通信制御装置10が停止されるような状況になっても、適切に運用を継続することができる。スタンバイ中の通信制御装置10には、予めいずれかのデータを格納しておき、ホットスタンバイ状態にしておいてもよいし、コールドスタンバイ状態にしておいてもよい。
次に、通信制御装置10に含まれるデータベースを更新する手順について説明する。データベースサーバ150は、所定のタイミングで外部のデータベースから最新のデータベースを取得して保持する。運用監視サーバ110は、所定のタイミングで、データベースサーバ150に保持された最新のデータベースを通信制御装置10に反映させるために、データベースサーバ150から通信制御装置10にデータを転送して格納させる。
図21(a)(b)(c)は、データベースを更新する様子を説明するための図である。図21(a)は、図19と同様に、装置ID「1」〜「5」の通信制御装置10が運用中であり、装置ID「6」の通信制御装置10がスタンバイ中である状況を示す。運用監視サーバ110は、データベースを更新するタイミングが到来すると、現在スタンバイ状態である通信制御装置10を特定し、その通信制御装置10に対してデータを格納するようデータベースサーバ150に指示する。図21(a)の例では、装置ID「6」の通信制御装置10がスタンバイ中であるから、この通信制御装置10にデータベースサーバ150からデータが格納される。このとき、運用監視サーバ110は、装置ID「6」の運用状況欄113を「データ更新中」に変更する。
図21(b)は、通信制御装置10のデータベースが更新中である状況を示す。データベースサーバ150は、運用中の通信制御装置10のいずれかが担当するデータを、スタンバイ中であった装置ID「6」の通信制御装置10の第1データベース50に格納する。図21(b)の例では、装置ID「1」の通信制御装置10が担当していた、データID「000001〜100000」のデータを、装置ID「6」の通信制御装置10に格納している。
図21(c)は、装置ID「6」の通信制御装置10のデータベースが更新されて運用が開始され、代わって装置ID「1」の通信制御装置10がスタンバイ状態となった状況を示す。運用監視サーバ110は、装置ID「6」の通信制御装置10に対するデータの格納が終了すると、更新後のデータベースを保持する装置ID「6」の通信制御装置10の運用を開始すると同時に、更新前のデータベースを保持する装置ID「1」の通信制御装置10の運用を停止してスタンバイ状態にする。これにより、データベースが更新された通信制御装置10に運用が切り替えられる。つづいて、装置ID「1」の通信制御装置10に、データID「100001〜200000」のデータを格納した後、装置ID「1」の通信制御装置10を運用開始し、装置ID「2」の通信制御装置10の運用を停止する。以降、同様に、巡回的にデータベースを更新していくことで、通信制御システム100の運用を停止することなく、全ての通信制御装置10のデータベースを背後で更新することができる。
このように、本前提技術の通信制御装置10では、各通信制御装置10に格納されているデータは固定的ではなく、あるデータがいずれの通信制御装置10に格納されているかは、時間によって移り変わる。各通信制御装置10にパケットを送る前に、いずれの通信制御装置10にそのユーザのデータが存在するかを判定する処理を行うと、その処理に要する時間が余分にかかる。そのため、本実施の形態では、受信したパケットを全ての通信制御装置10へ供給し、各通信制御装置10がパケットを処理する。以下、このような仕組みを実現するための技術について説明する。
図22は、複数の通信制御装置10によりパケットを処理するために設けられた通信経路制御装置の構成を示す。通信経路制御装置190は、スイッチ191、データ供給ユニットの一例である光スプリッタ192、及びスイッチ193を備える。スイッチ191は、受信したパケットを通信制御装置10へ送信する。ここで、スイッチ191と通信制御装置10の間には、複数の通信制御装置10a、10b、10cにパケットを並行して供給するための光スプリッタ192が設けられており、スイッチ191は、実際には光スプリッタ192へパケットを送信し、光スプリッタ192が各通信制御装置へパケットを並行して送信する。
複数の通信制御装置10a、10b、10cへパケットを送信するために、パケットをブロードキャストに変換すると、例えばヘッダにタイムスタンプを追加するなどの余分な処理が発生し、処理速度が低下してしまう。そのため、パケットに変更を加えずに、光スプリッタ192により分割して、ユニキャストのまま複数の通信制御装置10a、10b、10cへパケットを送信する。この方式を、本明細書では「パラレルキャスト」と呼ぶ。
各通信制御装置は、自装置のMACアドレス宛のパケットのみを受信するモードではなく、宛先のMACアドレスに関係なく全てのパケットを受信するプロミスキャスモードに設定される。各通信制御装置は、光スプリッタ192からパラレルキャストされたパケットを受信すると、MACアドレスのマッチング処理を省き、全てのパケットを取得して処理する。
通信制御装置10cは、通信が禁止された場合など、送信元宛にパケットを返信する場合には、光スプリッタ192を介さずにスイッチ191へ応答パケットを送信する。通信制御装置10cは、パケットを処理した結果、通信が許可された場合は、そのパケットをネットワークへ送出する。ここで、通信制御装置10と上流の通信回線の間には、複数の通信制御装置10a、10b、10cから送出されるパケットを集約するためのスイッチ193が設けられており、通信制御装置10cは、実際にはスイッチ193へパケットを送信し、スイッチ193が上流の通信回線へパケットを送出する。
パケットの送信先から返信されたパケットをスイッチ193が受信したときに、返信されたパケットが通信制御装置10による処理を必要としない場合は、スイッチ193のポート195からスイッチ191のポート194へ送信され、スイッチ191から送信元に向けて送出される。通常、インターネットでは、パケットに対する応答パケットが確実に送信元に返信されるよう、返信経路を確保するために、送信時の経路がパケットに記録される。しかし、本実施の形態では、通信経路制御装置190内における返信経路が予め用意されているので、経路を記録せずに、すなわち、パケットを加工せずに装置間の通信を行う。これにより、無駄な処理を省き、処理速度を向上させることができる。
図22の例では、送信元から発信されたパケットを送信先へ送出する場合にのみパケットを処理し、送信先から送信元へ送出された応答パケットは処理せずに通過させる場合の構成を示しているが、通信制御装置10が両方向のパケットを処理するように構成してもよい。この場合、通信制御装置10の両側に光スプリッタ192を設ければよい。また、スイッチ193からスイッチ191へのバイパス経路は設けなくてもよい。
このように、複数の通信制御装置のうち、パケットを処理すべき通信制御装置を予め特定しなくても、全ての通信制御装置に同じパケットをパラレルキャストすることにより、処理すべき通信制御装置に適切にパケットを処理させることができる。
これらの通信制御装置は、上述したように、通信経路制御装置190からパラレルキャストされる全てのパケットを受信して処理又は破棄するので、インターネット上で装置を一意に識別するためのIPアドレスを付与しておく必要がない。サーバ装置などにより、上述したようなパケット処理を実行する場合は、サーバ装置に対する攻撃を考慮する必要があるが、本実施の形態の通信制御装置は、インターネットを介して悪意ある第三者から直接攻撃を受けることがないので、安全に通信制御を行うことができる。
つづいて、上述した通信制御装置10を利用した通信制御の一例として、URLフィルタリング技術について説明する。以下では、フィッシングサイトやウイルスサイトなどの悪質なサイトへのアクセスを的確に抑止する技術を提案する。また、このようなアクセス制御技術を利用して、ユーザが安心してネットワークサービスを享受することができるような通信システムを構築する技術を提案する。
図23は、URLフィルタリングのためのパケット処理回路20の内部構成を示す。パケット処理回路20は、第1データベース50として、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164を備える。通信制御装置10がコンテンツに対するアクセス要求を取得すると、コンテンツに対するアクセスの許否を判断するために、コンテンツのURLが、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164に照合される。
ウイルス/フィッシングサイトリスト161は、コンピュータウイルスを含むコンテンツのURLのリストと、フィッシング詐欺に用いられる「罠」のサイトのURLのリストとを格納する。ウイルス/フィッシングサイトリスト161に格納されたURLのコンテンツに対するアクセス要求は拒否される。これにより、ユーザが気づかずに、又は騙されて、ウイルスサイトやフィッシングサイトにアクセスしようとする場合であっても、適切にアクセスを禁止し、ウイルスやフィッシング詐欺の被害からユーザを保護することができる。また、ユーザの端末にウイルスサイトやフィッシングサイトのリストを格納させて端末側でアクセス制限を行うのではなく、通信経路に設けられた通信制御装置10で一元的にアクセス制限を行うので、より確実かつ効率的にアクセス制限を行うことができる。通信制御装置10は、ウイルスサイトやフィッシングサイトではない正当なサイトであることが認証機関により証明された認証済みサイトのリストを取得して保持し、そのリストに格納されたURLに対するアクセスを許可するようにしてもよい。また、正当なサイトがハッキングなどにより乗っ取られて、ウイルスが組み込まれたり、フィッシング詐欺に利用されたりする事態が生じた場合、正当なサイトの運営者などがウイルス/フィッシングサイトリスト161に乗っ取られたサイトのURLを登録し、サイトが正常な状態に回復するまでの間、一時的にアクセスを禁止できるようにしてもよい。また、URLのリストとともに、IP番号、TCP番号、MACアドレス等の情報を組み合わせてチェックしてもよい。これにより、更に精度の高い禁止条件を設定することができるので、より確実にウイルスサイトやフィッシングサイトをフィルタリングすることができる。
ホワイトリスト162は、アクセスを許可するコンテンツのURLのリストを格納する。ブラックリスト163は、アクセスを禁止するコンテンツのURLのリストを格納する。図24(a)は、ウイルス/フィッシングサイトリスト161の内部データの例を示し、図24(b)は、ホワイトリスト162の内部データの例を示し、図24(c)は、ブラックリスト163の内部データの例を示す。ウイルス/フィッシングサイトリスト161、ホワイトリスト162、及びブラックリスト163には、それぞれ、カテゴリ番号欄165、URL欄166、及びタイトル欄167が設けられている。URL欄166には、アクセスが許可される、又は禁止されるコンテンツのURLが格納される。カテゴリ番号欄165には、コンテンツのカテゴリの番号が格納される。タイトル欄167には、コンテンツのタイトルが格納される。
共通カテゴリリスト164は、URLで示されるコンテンツを複数のカテゴリに分類するためのリストを格納する。図25は、共通カテゴリリスト164の内部データの例を示す。共通カテゴリリスト164にも、カテゴリ番号欄165、URL欄166、及びタイトル欄167が設けられている。
通信制御装置10は、「GET」リクエストメッセージ等の中に含まれるURLを抽出し、そのURLが、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、又は共通カテゴリリスト164に含まれるか否かを検索回路30により検索する。このとき、例えば、位置検出回路32により「http://」という文字列を検出し、その文字列に続くデータ列を対象データとして抽出してもよい。抽出されたURLは、インデックス回路34及びバイナリサーチ回路36により、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164の基準データとマッチングされる。
図26(a)、(b)、(c)、及び(d)は、URLフィルタリングのための第2データベース60の内部データの例を示す。図26(a)は、ウイルス/フィッシングサイトリスト161に対する検索結果と処理内容を示す。GETリクエスト等に含まれるURLが、ウイルス/フィッシングサイトリスト161に含まれるURLに合致した場合、そのURLに対するアクセスは禁止される。図26(b)は、ホワイトリスト162に対する検索結果と処理内容を示す。GETリクエスト等に含まれるURLが、ホワイトリスト162に含まれるURLに合致した場合、そのURLに対するアクセスは許可される。図26(c)は、ブラックリスト163に対する検索結果と処理内容を示す。GETリクエスト等に含まれるURLが、ブラックリスト163に含まれるURLに合致した場合、そのURLに対するアクセスは禁止される。
図26(d)は、共通カテゴリリスト164に対する検索結果と処理内容を示す。図26(d)に示すように、共通カテゴリリスト164に対する検索結果に対して、そのカテゴリに属するコンテンツに対するアクセスを許可するか禁止するかが個別に設定される。共通カテゴリリスト164に関する第2データベース60には、カテゴリ欄169が設けられている。カテゴリ欄169には、57種に分類されたカテゴリのそれぞれについて、カテゴリに属するコンテンツに対するアクセスを許可するか否かを示す情報が格納される。GETリクエストに含まれるURLが、共通カテゴリリスト164に含まれるURLに合致した場合、そのURLのカテゴリに基づいて、そのURLに対するアクセスの許否が判定される。なお、図26(d)では、共通カテゴリの数が57であるが、それ以外であってもよい。
図27は、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164の優先度を示す。本前提技術では、ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、共通カテゴリリスト164の順に優先度が高く、例えば、ホワイトリスト162に格納されたアクセスが許可されるコンテンツのURLであったとしても、そのURLがウイルス/フィッシングサイトリスト161に格納されていれば、コンピュータウイルスを含むコンテンツ、又はフィッシング詐欺に用いられるコンテンツであるとしてアクセスが禁止される。
従来、ソフトウェアを用いて、このような優先度を考慮したマッチングを行うときは、例えば、優先度の高いリストから順にマッチングを行って最初にヒットしたものを採用するか、優先度の低いリストから順にマッチングを行って後からヒットしたものを上書きするか、いずれかの方法がとられていた。しかしながら、前提技術では、専用のハードウェア回路により構成された通信制御装置10を利用することにより、ウイルス/フィッシングサイトリスト161のマッチングを行う検索回路30aと、ホワイトリスト162のマッチングを行う検索回路30bと、ブラックリスト163のマッチングを行う検索回路30cと、共通カテゴリリスト164のマッチングを行う検索回路30dとを設けて、それぞれの検索回路30において同時に並列してマッチングを行う。そして、複数のリストでヒットした場合は、優先度の高いものを採用する。これにより、複数のデータベースが設けられ、それらに優先度が設定されている場合であっても、検索時間を大幅に短縮することができる。
ウイルス/フィッシングサイトリスト161、ホワイトリスト162、ブラックリスト163、及び共通カテゴリリスト164のいずれを優先してアクセスの許否を判断するかは、例えば、第2データベース60に設定されていてもよい。いずれのリストを優先するかに応じて第2データベース60の条件を書き換えてもよい。
このように、複数のデータベースを利用してURLに基づいたフィルタリングを行う際に、データベースに優先度を設定して優先度に応じたフィルタリング処理を行うことができるように構成し、かつ、ウイルス/フィッシングサイトリスト161によるフィルタリングを最優先することで、ユーザによるホワイトリスト162などの設定状況にかかわらず、ウイルスサイトやフィッシングサイトへのアクセスを確実に禁止することができる。これにより、ウイルスやフィッシング詐欺の被害からユーザを適切に保護することができる。
コンテンツに対するアクセスが許可された場合は、処理実行回路40は、メッセージ出力サーバ130にその旨を通知するための信号を出力する。メッセージ出力サーバ130は、コンテンツを保持するサーバに向けて「GET」リクエストメッセージを送出する。コンテンツに対するアクセスが禁止された場合は、処理実行回路40が、メッセージ出力サーバ130にその旨を通知するための信号を出力すると、メッセージ出力サーバ130は、アクセス先のサーバに「GET」リクエストメッセージを送信せずに破棄する。このとき、アクセスが禁止された旨の応答メッセージを要求元に送信してもよい。また、強制的に別のウェブページに転送させてもよい。この場合、処理実行回路40は、デスティネーションアドレスとURLを転送先のものに書き換えて送出する。応答メッセージや転送先のURLなどの情報は、第2データベース60やメッセージ出力サーバ130などに格納されていてもよい。
メッセージ出力サーバ130は、pingコマンドなどを用いて、要求元が実際に存在することを確認し、また、存在する場合はその状態を確認してから、要求元に対してメッセージを出力してもよい。メッセージ出力サーバ130から要求元へ送信されるメッセージは、アクセス先のコンテンツごとに、カテゴリごとに、又は、ホワイトリスト162やブラックリスト163などのデータベースごとに、設定可能としてもよい。例えば、アクセスが禁止されたときに表示される画面をカテゴリごとにカスタマイズしてメッセージ出力サーバ130に登録できるようにしてもよい。また、上述したように、正当なサイトがハッキングされてアクセスを一時的に制限しているときに、正規サイトが一時的に閲覧不可能になっていることをユーザに告知するメッセージや、正当なサイトのミラーサイトへ誘導するメッセージを出力するようにしてもよい。
メッセージ出力サーバ130は、メッセージの送出履歴を管理し、そのメッセージ送出履歴情報を各種制御に利用してもよい。例えば、同一の要求元から短時間に多数のアクセス要求が発信されている場合、サービス妨害攻撃(Denial of Service attack:DoSアタック)などである可能性があるので、その要求元をアクセス拒否リストに登録し、その要求元からのパケットを要求先へ送らずに遮断してもよい。また、メッセージの送出履歴を統計処理し、ウェブサイトの管理者などへ提供してもよい。これにより、ユーザのアクセス履歴をマーケティングに利用したり、通信状況の制御などに活用したりすることができる。また、状況に応じてメッセージの送出回数を少なくしたり、逆に増やしたりする事もできる。たとえば特定のIP番号からアクセス要求が発信された場合に、その1通のリクエストメッセージに対して、何倍ものメッセージを送ることもできる。
以上の構成及び動作により、不適切なコンテンツに対するアクセスを禁止することができる。また、検索回路30がFPGAなどにより構成された専用のハードウェア回路であるから、上述したように高速な検索処理が実現され、トラフィックに与える影響を最小限に抑えつつ、フィルタリング処理を実行することができる。インターネットサービスプロバイダなどが、このようなフィルタリングのサービスを提供することにより、付加価値が高まり、より多くのユーザを集めることができる。
図28は、通信制御システムの配置例を示す。本図は、ユーザ端末の一例として、携帯電話端末260が用いられる例を示している。携帯電話端末260から発せられるアクセス要求は、キャリアが設置した基地局装置262、局舎に設けられた制御局装置264を介してインターネット200へ送出され、インターネット200を介してウェブサーバ250へ到達する。本図の例では、基地局装置262に通信制御システム100が設けられる。この場合、第1データベース50を基地局装置262ごとに変えて、基地局装置262がカバーする領域ごとに異なるフィルタリングを行ってもよい。基地局装置262に通信制御システム100を設ける場合、必要最低限の機能のみを搭載することにより通信制御システム100の小型化を図ってもよい。例えば、接続管理サーバ120、ログ管理サーバ140などの構成を省略してもよい。基地局装置262に通信制御システム100を設けることにより、フィルタリング処理が分散されるので、小規模な通信制御システム100を設ければよく、装置を小型化・軽量化できるとともに、コストを低減することができる。また、携帯電話端末260から発せられたアクセス要求を制御局装置264へ送出する前にフィルタリングすることができるので、通信量を低減することができる。また、携帯電話端末260と直接通信する基地局装置262においてパケットをフィルタリングするので、より確実にフィルタリングを実行することができる。
図29は、通信制御システムの別の配置例を示す。本図も、携帯電話端末260が用いられる例を示しているが、図28に示した例とは異なり、制御局装置264に通信制御システム100が設けられる。局舎に設けられた制御局装置264において一元的にフィルタリングを実行するので、システムのメンテナンスが容易である。
図30は、通信制御システムの更に別の配置例を示す。本図でも、ユーザ端末の一例として、携帯電話端末260が用いられる。携帯電話端末260から発せられるアクセス要求は、無線LANのアクセスポイント272、ルータ装置274を介してインターネット200へ送出され、インターネット200を介してウェブサーバ250へ到達する。本図の例では、アクセスポイント272に通信制御システム100が設けられる。図28に示した例と同様に、携帯電話端末260に近い装置でパケットをフィルタリングすることにより、無駄な通信を削減することができる。また、例えば企業内の無線LANの場合、従業員が勤務時間中に不適切なウェブサイトにアクセスすることができないようにすることができる。
図31は、通信制御システムの更に別の配置例を示す。本図も、無線LANの例を示しているが、図30とは異なり、ルータ装置274に通信制御システム100が設けられる。ルータ装置274に通信制御システム100を設けることにより、通信制御システム100の設置数を低減することができ、メンテナンスも容易となる。
図32及び図33は、通信制御システムの更に別の配置例を示す。本図では、ユーザ端末の一例として、パーソナルコンピュータ(PC)290が用いられる例を示している。PC290から発せられるアクセス要求は、LANのルータ装置282及び284を介してインターネット200へ送出され、インターネット200を介してウェブサーバ250へ到達する。図32は、ルータ装置282に通信制御システム100が設けられる例を示しており、図33は、ルータ装置284に通信制御システム100が設けられる例を示している。
上記の例では、ネットワークを構成する装置に通信制御システム100を組み込む例を示したが、通信制御システム100は、これらの装置とは別に、ネットワークの任意の位置に設けられてもよい。
これらの配置例において、基地局装置262やアクセスポイント272のアンテナ、制御局装置264やルータ装置274、282、又は284のネットワークインタフェースなどの受信部により受信された通信データは、アクセス制御の要否を判定することなく、パケット処理回路20により処理されてもよい。すなわち、通信制御システム100は、受信した通信データのアクセス制御の要否に関わらず、通過する全てのパケットを捕捉してフィルタリングしてもよい。また、通信制御システム100は、アクセスを禁止すると判断したパケットを破棄してもよいし、ログを記録するだけでネットワークへ再送出してもよい。
(実施の形態1)
つづいて、上述した通信制御装置10を利用した新しい通信制御技術について説明する。
図34は、実施の形態に係る通信制御装置の構成を示す。本実施の形態の通信制御装置10においては、図3に示した前提技術の通信制御装置10の構成から、MAC処理部6a及び6bが省略されている。その他の構成及び動作は、前提技術と同様である。
通信制御装置10は、OSI参照モデルの第1層である物理層のプロトコルを実装したPHY処理部5aにより、ケーブルなどのネットワーク媒体から受信した電気信号をデータ列に変換すると、上位のプロトコル、すなわち、第2層のデータリンク層、第3層のネットワーク層、第4層のトランスポート層、第5層のセッション層、第6層のプレゼンテーション層、及び第7層のアプリケーション層に関する処理を省略して、データ列をパケット処理回路20の検索回路30へ直接供給する。つまり、受信した通信データの宛先のMACアドレスやIPアドレスの確認など、通信データの着信に必要な処理を省略し、全ての通信データを取り込んで検索回路30へ供給する。
検索回路30は、PHY処理部5aが受信したフレーム内の任意のデータにアクセスして、ビットマッチングにより検索を実行する。パケット処理回路20は、通信データに対して、複製、転送、追加、削除、変更、圧縮、暗号化、復号化など、任意の編集処理を行って、通信データを出力する。パケット処理回路20から出力された通信データは、宛先のMACアドレスを変更せずに、PHY処理部5bからネットワークへ再送出される。
図35は、実施の形態に係る通信制御技術を説明するための概念図である。通信制御装置10は、通信装置502と通信装置504との間で送受信されている通信データを抜き出して、各種の通信制御を行う。通信装置502が通信装置504へ送信した通信データには、データリンク層における宛先のMACアドレスとして通信装置504のMACアドレスが設定されているが、通信制御装置10は、宛先のMACアドレスを確認せずに通信データを取り込むので、通信装置504に宛てた通信データも取り込んで制御することができる。また、通信制御装置10は、宛先のMACアドレスを変更せずにネットワークへ再送出するので、通信制御装置10により処理された通信データは、そのまま元の宛先である通信装置504へ送信される。したがって、通信装置502及び504は、通信制御装置10の存在を全く意識することなく、通常のプロトコルを用いて通信を行うことができる。図35において、実際には、実線で示した経路により通信データが送受信されるが、通信装置502及び504からは、点線で示したように、お互いの間で直接通信を行っているように見えている。通信装置504から通信装置502へ送信される通信データについても同様である。
このように、本実施の形態の通信制御装置10は、MACアドレスやIPアドレスを確認せずに、ネットワークを流れる通信データを抜き出して制御し、通信制御装置10にMACアドレスやIPアドレスを割り当てる必要がない。また、宛先のMACアドレスを書き換えずに、元の宛先のMACアドレスへ通信データを再送出するので、ネットワークの設定を複雑に変更することなく通信制御装置10をネットワークへ導入することができる。
本実施の形態の通信制御装置10では、ネットワークにおける通信速度と同等の速度で通信制御処理を完了できるように、検索回路30の比較器の個数やメモリの容量などを設計している。したがって、受信したデータ列を受信バッファにいったん蓄積し、読み出しながら処理を行うのではなく、受信したデータ列を受信バッファに蓄積させず、そのまま即座に検索回路へ供給し、処理を行うことができる。
従来の通信制御装置は、例えば、プロトコル番号を参照してプロトコルの種別を判断し、プロトコルに応じた処理を行うが、本実施の形態の通信制御装置10は、プロトコル処理を行わずに、フレーム内のデータに直接アクセスして通信制御を行うので、プロトコルに依存しない汎用的な通信制御を行うことができる。したがって、少量多品種の通信制御装置として利用可能である。
特定の通信装置に対して、その通信装置の機械的限界まで通信データを送りつけることにより、通信装置を動作停止に追い込む攻撃があるが、本実施の形態の通信制御装置10は、アドレスを有しないので、攻撃者は通信制御装置10に対して明示的に通信データを送りつけることができない。また、通信制御装置10以外の通信装置に対して攻撃がなされた場合であっても、通信制御装置10は通過中の通信データを抜き出して制御することができるので、その通信装置へ到達する前に、攻撃を意図した通信データを検知して削除することができる。また、通信経路の途中のルータのメモリの故障や、プログラムのバグなどにより通信データが破壊された場合であっても、通信制御装置10により検知して削除することができるので、ネットワークや通信装置の負荷を低減させることができる。
通信制御に必要な情報を収集するなどの目的で、他の通信装置との間で通信を行う必要がある場合には、仮想的なIPアドレスを用いて通信を行ってもよい。例えば、通信装置との間で通信を行う際に、通信制御装置10よりも下流のネットワークに接続されている通信装置のIPアドレスを仮想的に通信制御装置10に割り当てて通信を行う。
図36は、実施の形態に係る通信制御装置の別の構成例を示す。図36に示した通信制御装置10は、図34に示した通信制御装置10の構成に加えて、判定部510及び仮想通信装置520を更に備える。その他の構成及び動作は、図34に示した通信制御装置10と同様である。
仮想通信装置520は、通信制御装置10における通信制御に必要な情報を、他の通信装置との間で送受信する。例えば、通信制御装置10をルータ装置として機能させる場合、仮想通信装置520は、BGP4(Border Gateway Protocol 4)などのプロトコルにしたがって、他のルータ装置との間で経路情報をやり取りする。このとき、仮想通信装置520は、BGP4による通信を行う相手のルータ装置の方向を上流とすると、自装置よりも下流のネットワークに接続された他の通信装置に割り当てられたIPアドレスを取得し、そのIPアドレスを仮想通信装置520の仮想IPアドレスとして判定部510へ通知する。また、仮想通信装置520は、仮想IPアドレスを用いて他の装置との間で通信を行うプロトコルのプロトコル番号を判定部510へ通知する。このように、仮想通信装置520は、下流の通信装置から取得したIPアドレスを仮想的に自装置のIPアドレスに設定して、他の装置との間で通信を行う。
判定部510は、PHY処理部5aが受信した通信データのうち、送信先のIPアドレスが、仮想通信装置520から通知された仮想IPアドレスに一致し、かつ、プロトコル番号が、仮想通信装置520から通知されたプロトコル番号に一致する通信データを、パケット処理回路20へ供給せずに、仮想通信装置520へ送る。仮想通信装置520は、判定部510から送られた通信データを処理する。例えば、他のルータ装置から送信された経路情報を取得してルーティングテーブルを再計算し、パケット処理回路20へ投入する。仮想通信装置520は、他の通信装置へ通信データを送信する場合は、送信元のIPアドレスに仮想IPアドレスを設定し、PHY処理部5bを介してネットワークへ送出する。
図37は、実施の形態に係る通信制御技術を説明するための概念図である。通信制御装置10は、通信装置502が通信装置504へ送信した通信データのうち、実際には仮想通信装置520が受信すべき通信データを抜き出して、仮想通信装置520へ送る。また、仮想通信装置520は、通信装置502に通信データを送信するときに、送信元のIPアドレスとして、通信装置504のIPアドレスを設定する。図37において、実際には、実線で示した経路により通信データが送受信されるが、通信装置502は、点線で示したように、通信装置504との間で通信を行っているように見えている。これにより、実際にはIPアドレスを有しない仮想通信装置520が、他の通信装置502との間で通信を行うことが可能となる。
(実施の形態2)
つづいて、上述した通信制御装置10において実行すべき処理を高速に判定する技術について説明する。
図38は、実施の形態に係るパケット処理回路20の構成を示す。図38に示したパケット処理回路20は、本発明に係る判定装置の一例であり、図4に示した前提技術に係るパケット処理回路20の構成に加えて、比較対象抽出回路300を更に備える。その他の構成及び動作は、前提技術と同様である。
図39は、通信制御装置10が取得した通信データの例を示す。通信データ310には、通信プロトコルの種別に応じたパケットレイアウトでデータが格納されている。図39では、説明の便宜のため、データエリアに番号を付している。例えば、データエリアが「1」であるデータを、「データ1」と表記する。
図40は、通信制御装置10において実行すべき処理を判定するためのフローチャートの例を示す。図40の例では、通信制御装置10が取得した通信データ310のうち、データ1、データ5、及びデータ7を判定基準として用い、それらのデータをもとに複数回の条件判断分岐を経て、実行すべき処理が判定されている。このフローチャートにしたがって一連の処理を実行するためには、2〜3回の条件判断分岐が必要となる。
図41は、本実施の形態に係る判定方法を説明するための図である。比較対象抽出回路300は、通信制御装置10が取得した通信データ310の中から、実行すべき処理を判定するために用いられる複数の判定用データを抽出し、それらを連結することにより比較対象データ320を生成する。図40に示したフローチャートの例では、通信データ310の中から、データ1の「A」、データ5の「E」、及びデータ7の「F」を抽出し、それらを連結することにより、比較対象データ320として「AEF」を生成する。比較対象抽出回路300は、生成した比較対象データ320をインデックス回路34及びバイナリサーチ回路36へ供給する。比較対象抽出回路300は、通信データ310の中から判定用データを抽出する際に、位置検出回路32を用いてその判定用データの位置を検出してもよい。
図42は、本実施の形態に係る第1データベース50及び第2データベース60の内部データの例を示す。第1データベース50には、データ1、データ5、データ7のそれぞれが取り得る値を連結した基準データが格納されている。また、第2データベース60には、データ1、データ5、データ7の値の組合せに対して、図40に示したフローチャートにしたがって複数回の条件判断分岐を経て判定された実行すべき処理の内容が基準データに対応づけて格納されている。例えば、データ1が「A」、データ5が「E」、データ7が「F」という組合せであれば、基準データは「AEF」となり、図40のフローチャートから分かるように、実行すべき処理の内容は「処理a+処理e」となる。バイナリサーチ回路36は、比較対象抽出回路300により生成された比較対象データ320を第1データベース50から検索することにより、複数回の条件判断分岐をまとめて実行し、比較対象データに合致する基準データに対応づけられた実行すべき処理の内容を出力する。処理実行回路40は、検索回路30により判定された処理の内容を実行する。
このように、予め通信データの中から判定の基準となるデータを抽出し、それらを連結して比較対象データを生成するとともに、生成される比較対象データの答えを予想したデータベースを用意しておくことにより、実行すべき処理を判定するための複数の条件判断分岐を逐次実行するのではなく、まとめて同時に実行することができる。これにより、実行すべき処理を高速に判定することができる。
また、複数の条件判断分岐を含むロジックをデータで表現することができるので、ロジックを変更する際に、ソフトウェア全体を変更する代わりに、第1データベース50又は第2データベース60を変更すればよい。これにより、工数を低減することができる。
図43は、本実施の形態に係る第1データベース50及び第2データベース60の内部データの別の例を示す。図43の例では、基準データに含まれる複数の判定用データの値の組合せにおいて、複数回の条件判断分岐に用いられない判定用データがある場合には、その判定用データはマスクされている。例えば、図40に示したフローチャートにおいて、データ1が「A」であれば、データ5に関する条件判断分岐は実行されないので、データ5がいかなるデータであっても同じ結果となる。したがって、データ1として「A」を含む基準データには、データ5としてワイルドカードが格納されている。
データをマスクして比較するには、前提技術において説明したように、比較対象データと基準データの双方のマスクする位置のデータを所定のデータ、例えば「0」に置換してから比較回路へ入力してもよいし、マスクする位置のデータを比較する比較回路に、両者が一致した旨の出力信号を出力させてもよいし、マスクする位置のデータの比較結果として、比較回路を介さずに両者が一致した旨の出力信号を供給してもよいし、それぞれの比較回路の出力信号を取得して比較結果を判定する回路において、マスクする位置のデータの比較結果を無視してもよい。
このような構成を採用することにより、第1データベース50の容量を低減することができるとともに、比較処理の効率を向上させることができる。
図44は、本実施の形態に係る判定方法の別の例を説明するための図である。比較対象抽出回路300は、通信データ310の中から、条件判断分岐のために用いられる複数の判定用データを含むように予め定められた所定位置から所定長の比較対象データを抽出する。図44の例では、判定用データであるデータ1、データ5、及びデータ7を含むように、データ1からデータ7までのデータが比較対象データとして抽出される。この場合、第1データベース50には、図45に示すように、比較対象データと同じデータ長の基準データが格納される。
図45は、本実施の形態に係る第1データベース50及び第2データベース60の内部データの別の例を示す。図45の例では、判定用データとして用いられないデータも含んだ形式で基準データが格納されている。第1データベース50の基準データは、比較対象データとして抽出されるデータ1からデータ7までのデータと同じデータ長を有し、それぞれの判定用データの位置に、判定用データのそれぞれが取り得る値が格納されている。判定用データ以外の位置には、ワイルドカードが格納されている。
インデックス回路34及びバイナリサーチ回路36は、複数の判定用データ以外のデータをマスクして比較対象データをデータベースから検索する。これにより、複数回の条件判断分岐をまとめて実行し、比較対象データに合致する前記基準データに対応づけられた実行すべき処理の内容を高速に判定することができる。
図46は、実施の形態に係るパケット処理回路20の別の構成例を示す。図46に示したパケット処理回路20は、図38に示したパケット処理回路20の構成に加えて、比較対象設定回路330を更に備え、複数の第1データベース50a及び50bを備える。比較対象設定回路330は、比較対象抽出回路300が抽出すべきデータを設定する。比較対象抽出回路300は、比較対象設定回路330により設定されたデータを抽出して比較対象データを生成する。その他の構成及び動作は、図38に示したパケット処理回路20と同様である。
図47は、本実施の形態に係る判定方法の別の例を説明するための図である。図47の例では、比較対象設定回路330により、データ1、データ5、及びデータ7に代えて、データ3、データ6、及びデータ10を抽出するように設定されている。比較対象抽出回路300は、この設定にしたがって、通信データ310の中からデータ3、データ6、及びデータ10を抽出して比較対象データ320を生成する。これにより、比較対象データとして抽出する判定用データを任意に設定することができる。設定の変更に合わせて、第1データベース50の基準データを切り替えることで、実行すべき処理を判定するためのロジックを容易に変更することができる。
比較対象設定回路330は、比較対象抽出回路300が抽出すべきデータを動的に切り替えてもよい。この場合、比較対象設定回路330は、適用すべき第1データベース50を動的に切り替えてもよい。これにより、比較対象データと基準データの双方を動的に切り替え、異なるロジックで実行すべき処理を決定することができるので、例えば、1台の通信制御装置10により異なる複数の通信プロトコルの処理を実行したり、複数のユーザの設定に応じたフィルタリング処理を実行したりすることができる。
図48は、実施の形態に係るパケット処理回路20の別の構成例を示す。図48に示したパケット処理回路20は、図38に示したパケット処理回路20の構成に加えて、報知回路340を更に備える。報知回路340は、比較対象データが第1データベース50の基準データのいずれにも合致しなかった場合に、その旨を外部の装置へ報知する。その他の構成及び動作は、図38に示したパケット処理回路20と同様である。
比較対象データが第1データベース50の基準データのいずれにも合致しなかった場合、実行すべき処理を判定するためのロジックに漏れがあることになる。このとき、報知回路340にその旨を報知させることにより、第1データベース50及び第2データベース60を適切に修正し、ロジックの漏れを無くすことができる。図48の例では、報知回路340は、第1データベース50の基準データのいずれにも合致しなかった比較対象データをデータベースサーバ150へ報知する。データベースサーバ150は、オペレータなどから、この比較対象データに対して実行すべき処理の内容を受け付け、第1データベース50に、この比較対象データと同じ基準データのレコードを追加するとともに、第2データベース60に、受け付けた処理の内容をこの基準データに対応づけて格納する。データベースサーバ150は、修正済みの第1データベース50及び第2データベース60を通信制御装置10へ再投入し、データベースの修正を反映させる。
(実施の形態3)
つづいて、上述した通信制御装置10の異常を検知する技術について説明する。
図49は、実施の形態に係る検知回路の構成を示す。検知回路201は、通信ケーブルを通信制御装置に接続するためのコネクタが抜けたり接触不良を生じたりするなどの物理的な異常により通信データを受信できない状態に陥っていることを検知する。近年、インターネットにおける通信量が飛躍的に増大しているとともに、ダイナミック・ルーティングを実現するためのRIP(Routing Information Protocol)などのプロトコルによりルータ間で常時通信が行われていたり、ポーリングなどによる通信が行われていることが多いので、通信制御装置が通信データを長時間受信しない状況になることはほとんどない。したがって、検知回路は、所定時間以上通信データを受信しなかったことを検知して、コネクタが抜けている旨の警告を発する。
検知回路201は、入力部202、カウンタ回路204、及び報知部206を含む。入力部202は、通信ケーブルから着信した通信データを取得し、通信制御部2へ送る。入力部202は、通信データを取得したときに、カウンタ回路204へリセット信号を送る。入力部202は、ディジタル形式で取得した通信データ自体をリセット信号としてカウンタ回路204へ送ってもよい。この場合、「1」の通信データを取得するたびにカウンタ回路204がリセットされる。また、入力部202は、通信データの波形の立ち上がり又は立ち下がりに同期してリセット信号をカウンタ回路204へ送ってもよい。要は、入力部202が取得した通信データからカウンタ回路204のリセット信号が生成されてカウンタ回路204へ入力されるようになっており、入力部202が通信データを取得している間はカウンタ回路204がリセットされ続けるように構成されていればよい。報知部206は、カウンタ回路204のカウンタ値が所定値を超えたときに、その旨を報知する。以上のような構成により、簡易な構成で、通信制御装置10の物理的な異常を的確に検知して報知することができるので、通信制御の安全性を高めることができる。また、主となる通信制御装置10の構成とは別に、検知回路を追加することもできる。
例えば、従来の公衆交換電話網では、交換機と加入者電話端末が電気的に接続され、閉じた回路を形成していたので、交換機のコネクタが外れてしまうなどの物理的な異常を容易に検知することができたが、IP電話網における交換機として前提技術の通信制御装置10を利用する場合には、通信制御装置10と端末との間での電気的な接続はないので、本実施の形態の技術が特に有効である。
(実施の形態4)
つづいて、上述した通信制御装置10において、複数の種別の通信データを制御する技術について説明する。例えば、IPv4におけるIPアドレスの枯渇により、より広大なアドレス空間が用意されたIPv6への移行が進行しているが、移行の過渡期においては、IPv4とIPv6の双方のパケットが通信されるので、双方のパケットを適切に制御する技術が求められる。本実施の形態では、複数の種別の通信データのうち、通信データの種別に応じて、検索対象となるデータのみを残して他のデータをマスクすることにより、検索対象となるデータを切り替える技術について説明する。
図50は、実施の形態に係る通信制御装置のパケット処理回路の構成を示す。図50に示したパケット処理回路20は、図13に示した前提技術の通信制御装置10のパケット処理回路20の構成に加えて、マスク回路380及びワークメモリ382を更に備える。その他の構成及び動作は、前提技術と同様である。
本実施の形態では、通信制御装置10が取得したIPパケットの送信元IPアドレスを、正当なユーザの端末のIPアドレスを格納したユーザデータベース57から検索することにより、送信元のユーザを認証する例について説明する。
本実施の形態では、位置検出回路32は、通信データの所定位置から所定長のデータを比較対象データとして抽出する抽出部として機能する。位置検出回路32が比較対象データを抽出する通信データの位置とデータ長は、通信データの種別によらず、検索回路30において検索対象となる検索対象データが含まれるように設定される。本実施の形態の例では、IPv4パケットにおいても、IPv6パケットにおいても、検索対象となる送信元IPアドレスが含まれるように、比較対象データが抽出される。
IPv6においては、IPヘッダの先頭から65ビット目以降に、128ビット分の「送信元IPアドレス(Source Address)」が格納されている。IPv4においては、パケットヘッダの先頭から65ビット目以降には、8ビットの「生存時間(Time to Live)」、8ビットの「プロトコル(Protocol)」、16ビットの「ヘッダチェックサム(Header Checksum)」、32ビットの「送信元IPアドレス(Source Address)」、32ビットの「送信先IPアドレス(Destination Address)」、可変長の「オプション(Option)」及び「パディング(Padding)」が格納されている。したがって、位置検出回路32は、いずれのパケットであっても検索対象データとなる送信元IPアドレスが含まれるように、IPヘッダの65ビット目から128ビット分を比較対象データとして抽出し、マスク回路380へ送る。
この場合、IPv6パケットであれば、位置検出回路32は、ちょうど「送信元IPアドレス」を比較対象データとして取り出すことになるが、IPv4パケットであれば、「送信元IPアドレス」以外のデータも含んだ形で比較対象データが取り出される。位置検出回路32は、マスク回路380の動作のために、IPヘッダに格納されているIPのバージョン番号をマスク回路380へ通知する。
マスク回路380は、取得した通信データの種別に応じて、位置検出回路32により抽出された比較対象データのうち、検索回路30が検索対象とする検索対象データ以外のデータをマスクして検索回路30へ供給する。マスク回路380は、位置検出回路32から通知されるIPヘッダの「バージョン(Version)」を参照し、バージョンが「6」であれば、取り出された比較対象データをそのままインデックス回路34へ送る。バージョンが「4」であれば、マスク回路380は、取り出された比較対象データをいったんワークメモリ382へ格納し、比較対象データのうち、「送信元IPアドレス」以外のデータをマスクする。すなわち、マスク回路380は、比較対象データの先頭から32ビット分と、65ビット目から64ビット分をマスクする。これにより、IPv4パケットから生成された比較対象データは、検索対象となる「送信元IPアドレス」のみを残してマスクされる。マスク回路380は、マスクした比較対象データをインデックス回路34へ送る。
図51は、ユーザデータベース57の内部データの例を示す。ユーザデータベース57は、通信制御装置10が通信データの送信元のユーザを認証するために、ユーザの端末のIPアドレスのリストを基準データとして格納している。ユーザデータベース57には、IPv6のIPアドレス及びIPv4のIPアドレスが格納されているが、いずれの基準データも、位置検出回路32において抽出される比較対象データと同じデータ長を有しており、その基準データが比較されるべき通信データの種別に応じて、比較対象データにおける検索対象データの位置以外の位置のデータがマスクされている。すなわち、IPv6の128ビットのIPアドレスは、そのままの形で格納されるが、IPv4の32ビットのIPアドレスは、IPv6のIPアドレスのビット長と同じ128ビットのビット列のうち、先頭から33ビット目から64ビット目までに格納され、残りのビットには「0」がセットされている。
マスク回路380は、ユーザデータベース57に格納された基準データのうち、比較対象データにおける検索対象データの位置以外の位置に格納されているデータと同じデータを、比較対象データのうち検索対象データ以外の位置に格納する。したがって、本実施の形態の例では、マスク回路380は、比較対象データのマスクすべき位置に「0」を格納する。マスクすべき位置に格納するデータは、ユーザデータベース57の基準データと共通に使用されていれば任意のデータであってよい。
インデックス回路34及びバイナリサーチ回路36は、前提技術で説明した方法と同様に、マスク回路380から供給された比較対象データをユーザデータベース57から検索する。このように、比較対象データにおける検索対象データの位置が、通信データの種別に応じて異なる場合であっても、第1データベース50に格納される基準データと、位置検出回路32により抽出される比較対象データの双方を、同じ位置に検索対象データが含まれるようにマスクしているので、同じインデックス回路34及びバイナリサーチ回路36を用いて検索を実行することができる。したがって、簡易な構成により、通信データのうち所望のデータを検索対象とすることができる。
処理実行回路40は、マスク回路380がマスクする前の通信データを必要とする場合は、ワークメモリ382からマスクされていない元の通信データを読み出して必要な制御を行う。このように、本実施の形態の技術によれば、複数の種別の通信データを適切に制御することができる。
マスク回路380は、比較対象データのうち、検索対象データ以外の位置に、ワイルドカードとして機能するデータを格納してもよい。インデックス回路34及びバイナリサーチ回路36の比較器は、ワイルドカードとして機能するデータが入力されると、両者が一致する旨の信号を出力する。ワイルドカードが格納された位置のデータを比較する比較器には、データが入力されるまでもなく、両者が一致する旨の信号が出力されたものとして扱われてもよい。この場合、ユーザデータベース57の基準データのうち、マスクすべき位置には、任意のデータが格納されてもよい。
ユーザデータベース57の基準データのうち、比較対象データにおける検索対象データの位置以外の位置に、ワイルドカードとして機能するデータを格納してもよい。この場合、マスク回路380及びワークメモリ382は設けられなくてもよい。
処理実行回路40は、認証に成功したユーザのIPアドレスを変換してもよい。例えば、第1データベース50、第2データベース60、又は他の通信機などにおいて、IPv4のIPアドレスを用いてユーザが識別される場合には、処理実行回路40は、IPv4のIPアドレスはそのままとし、IPv6のIPアドレスをIPv4のIPアドレスへ変換することにより、IPv4に統一してもよい。逆に、IPv4のIPアドレスをIPv6のIPアドレスに変換することにより、IPv6に変換してもよい。また、第1データベース50、第2データベース60、又は他の通信機などにおいて、ユーザのIDを用いてユーザが識別される場合には、処理実行回路40は、IPv4及びIPv6のIPアドレスをユーザIDに変換してもよい。
(実施の形態5)
図52は、実施の形態に係る通信管理システムの構成を示す。通信管理システム600は、パケットフィルタリングなどの機能を有する通信制御装置10を用いて、ボットを操作するための通信など、不適切な通信を検知して遮断するための処理を行う。
前述したように、ボットは、ユーザ端末610に感染して被害をもたらす。ボットが感染したユーザ端末(以下、「ボット620」という)は、攻撃者の意のままに操られ、攻撃者の端末として振る舞う。したがって、ボット620を操作する通信や、ボット620が他のユーザ端末610を攻撃する通信を検知して遮断することが望まれる。
しかし、ソースコードが公開されたボットをもとに、新しい亜種が次々と登場しているので、ボット620や、複数のボット620により構成されるボットネット622に対して送受信される不適切な通信データの全てを確実に検知することは難しい。
したがって、本実施の形態では、発想を逆転させ、正常な通信のシグネチャリストを作成して正常な通信を通過させる一方、正常ではない通信を逐一エスカレーションして解析し、正常な通信のシグネチャリストと異常な通信のシグネチャリストを随時更新していく技術を提案する。この技術により、ボットネットによる被害が軽減されることが期待されるため、本発明の社会的な貢献度は非常に高いと言える。
通信管理システム600において、ユーザ端末610とインターネット690の間に通信制御装置10が設けられており、インターネット690を介して送受信される通信データが制御される。通信制御装置10は、正常でない通信データを検知すると、運用者端末640へ通知する。運用者端末640において、該当する通信データが解析され、その通信データが正常であるか否かが判定される。正常であると判定された通信データのシグネチャは通信制御装置10に反映され、以降、この通信データと同種の通信データは送受信を許可される。異常であると判定された通信データのシグネチャも通信制御装置10に反映され、以降、この通信データと同種の通信データは送受信を禁止され遮断される。このようにして、通信制御装置10は、ボット620とボットネット622との間の通信や、インターネット690を介してボット620を操作するための通信などを検知して遮断する。
本実施の形態の通信制御装置10には、第1データベース50として、正常シグネチャリスト632、異常シグネチャリスト634、及びルールデータベース636が設けられている。正常シグネチャリスト632は、正常な通信として通過させるべき通信データのシグネチャのリストを格納する。異常シグネチャリスト634は、異常な通信として遮断すべき通信データのシグネチャのリストを格納する。ルールデータベース636は、解析を要する通信データを抽出するためのルールを格納する。
第1データベース50が3つ設けられているのに合わせて、検索回路30も3つ設けられている。検索回路30Aは、取得した通信データが正常シグネチャリスト632に格納された正常な通信のシグネチャに合致するか否かを検索する第1の検索部として機能する。検索回路30Bは、取得した通信データが異常シグネチャリスト634に格納された異常な通信のシグネチャに合致するか否かを検索する第2の検索部として機能する。検索回路30Cは、取得した通信データがルールデータベース636に格納されたルールに合致するか否かを検索する第3の検索部として機能する。これらの検索回路30のうち少なくとも2つ、好ましくは全ての検索回路30が、同時に並列して検索を実行する。これにより、スループットを低下させることなく、正常な通信、異常な通信、抽出すべき通信を高速に検知することができる。通信データを3つの検索回路30へ同時に供給するために、図22に示した技術を利用してもよい。
第2データベース60には、正常シグネチャリスト632に格納された正常な通信のシグネチャに合致しない通信データを検知したときに、警告を発する旨の処理内容が格納されている。これに応じて、処理実行回路40は、検索回路30Aが正常シグネチャリスト632に格納されたシグネチャに合致しない通信データを検知すると、警告を発して運用者端末640へ通知する警告部として機能する。
また、第2データベース60には、異常シグネチャリスト634に格納された遮断すべき通信のシグネチャに合致する通信データを検知したときに、その通信データを遮断する旨の処理内容が格納されている。これに応じて、処理実行回路40は、検索回路30Bが異常シグネチャリスト634に格納されたシグネチャに合致する通信データを検知すると、その通信データを破棄して遮断する遮断部として機能する。
運用者端末640では、警告取得部642が通信制御装置10から警告を取得すると、その旨を表示又は音声などにより運用者へ報知する。このとき、通信データ取得部644は、警告を発せられた通信データを通信制御装置10から取得する。解析部646は、警告を発せられた、正常な通信のシグネチャに合致しない通信データを解析し、正常な通信であるか否かを判定して判定結果取得部648へ伝達する。判定結果取得部648は、通信データを解析した運用者から判定結果を取得してもよい。また、運用者からエスカレーションされたセキュリティベンダーなどから判定結果を取得してもよい。
判定結果取得部648は、警告を発せられた通信データが正常な通信データであるとの判定結果を取得したときに、正常シグネチャリスト662にその通信データのシグネチャを追加するよう正常シグネチャリスト更新部652へ指示する。正常シグネチャリスト更新部652は、正常シグネチャリスト662に、正常であると判定された通信データのシグネチャを追加する。
判定結果取得部648は、警告を発せられた通信データが遮断すべき通信データであるとの判定結果を取得したときに、異常シグネチャリスト664にその通信データのシグネチャを追加するよう異常シグネチャリスト更新部654へ指示する。異常シグネチャリスト更新部654は、異常シグネチャリスト664に、遮断すべきと判定された通信データのシグネチャを追加する。
更新された正常シグネチャリスト662及び異常シグネチャリスト664は、データベースサーバ150により、所定のタイミングで通信制御装置10の正常シグネチャリスト632及び異常シグネチャリスト634へ反映される。データベースの更新は、前提技術で説明した手順により行われてもよい。また、正常シグネチャリスト更新部652及び異常シグネチャリスト更新部654が、正常シグネチャリスト632及び異常シグネチャリスト634へ直接アクセスして更新してもよい。複数の通信制御装置10が設けられる場合は、データベースサーバ150が、それぞれの通信制御装置10により警告を発せられた通信データの判定結果を集約した正常シグネチャリスト662を作成し、集約された正常シグネチャリスト662をそれぞれの通信制御装置10の正常シグネチャリスト632に反映させる。
このように、異常な通信のみをシグネチャにより抽出して遮断するのではなく、正常な通信のみをシグネチャにより抽出して通過させ、それ以外の通信を解析し、正常か否かを判定して判定結果を反映させる。これにより、ボットネット622などにおいて新しい通信プロトコルにより不適切な通信が行われたとしても、それは正常な通信ではないので、確実に検知することができる。また、いったん遮断すべき通信データを検知すると、そのシグネチャを異常シグネチャリスト634に登録するので、以降は適切に遮断することができる。正常シグネチャリスト632及び異常シグネチャリスト664のシグネチャの量はかなり多くなるが、前提技術で説明したように、本実施の形態の通信制御装置10は、専用のハードウェアにより構成されていて、非常に高速な検索が可能であるから、スループットを低下させることなく適切に通信を管理することができる。
第2データベース60には、さらに、ルールデータベース666に格納されたルールに合致する通信データを検知したときに、その通信データを複製して出力する旨の処理内容が格納されている。これに応じて、処理実行回路40は、検索回路30Cがルールデータベース636に格納されたルールに合致する通信データを検知すると、その通信データの複製を出力ポートから運用者端末640へ出力する抽出部として機能する。
例えば、警告が発せられた通信データが正常であるか遮断すべきであるかを判定するにあたって、同じ送信元から送られた他の通信データや、同じ送信先へ送られた他の通信データなどを参照して解析する必要がある場合がある。このような場合に、警告が発せられた通信データの送信元のIPアドレス、送信先のIPアドレス、ペイロードの内容などをルールとしてルールデータベース636に登録しておけば、そのルールに合致した通信データを収集して解析することができる。前提技術で説明したように、本実施の形態の通信制御装置10は、送信元又は送信先のIPアドレスなど、ヘッダに格納された情報だけでなく、ペイロード部分に格納された情報も検索対象とすることができるので、より細かいルールの設定が可能である。
運用者は、警告を発せられた通信データを解析する際に、他の通信データも参照して解析すべきと判断した場合、ルールデータベース更新部656を介して、関連した通信データを抽出するためのルールをルールデータベース666に追加することができる。更新されたルールデータベース666は、データベースサーバ150により、通信制御装置10のルールデータベース636に反映される。これにより、シグネチャを随時変更可能なパケットキャプチャ装置を実現することができる。
(実施の形態6)
実施の形態では、異なる複数の種別の通信制御のための複数のデータベースを設け、それらを切り替えて適用させることにより、1つの通信制御装置に複数の種別の通信制御を実行させる技術について説明する。
図53は、実施の形態に係るパケット処理回路20の構成を示す。図53に示したパケット処理回路26は、図4に示した前提技術のパケット処理回路20の構成に加えて、切替部180を更に備える。また、第1データベース50及び第2データベース60として、複数の種別の通信制御用に設けられた複数のデータベースを備える。図53の例では、ネットワークを介したコンテンツに対するアクセスを制御するためのURLフィルタリング用データベース181と、スパムメールをフィルタリングするためのスパムメールフィルタリング用データベース182と、P2P通信の帯域制御を行うためのP2P帯域制御用データベース183が設けられている。
切替部180は、第1データベース50及び第2データベース60を、異なる複数の通信制御用のデータベースの間で切り替えることにより、通信制御装置10を異なる複数の通信制御に利用可能とする。切替部180は、チップセレクト信号などを用いて、使用するデータベースが格納されたROM又はRAMなどのメモリ装置を切り替えてもよい。
切替部180は、第1データベース50及び第2データベース60を切り替える際に、位置検出回路32が検出すべき位置特定データを、切り替えた後のデータベースに格納された基準データの格納位置を特定するための位置特定データに切り替えてもよい。例えば、通信制御装置10にURLフィルタリングの機能を持たせる際には、第1データベース50及び第2データベース60をURLフィルタリング用データベース181に切り替えるとともに、位置検出回路32の位置特定データとして「http::/」という文字列を設定し、アクセス先のコンテンツのURLの格納位置を検出させる。また、通信制御装置10にスパムメールフィルタリングの機能を持たせる際には、第1データベース50及び第2データベース60をスパムメールフィルタリング用データベース182に切り替えるとともに、位置検出回路32の位置特定データとして「DATA」という文字列を設定し、電子メールの本文の格納位置を検出させる。
切替部180は、通信データの種別に応じて動的に適用すべきデータベースを切り替えてもよい。例えば、検索回路30を、パケットの種別を判定するための判定回路として用い、検索回路30によりパケットのポート番号を検出して切替部180へ通知させる。切替部180は、通知されたポート番号、すなわちパケットの種別に応じて、第1データベース50及び第2データベース60を切り替える。例えば、ポート番号が「80」であればHTTPパケットであるから、URLフィルタリング用データベース181に切り替え、ポート番号が「25」であればSMTPパケットであるから、スパムメールフィルタリング用データベース182に切り替えてもよい。これにより、1つの通信制御装置10の機能を動的に切り替え、パケットの種別に応じて異なる複数の通信制御を行うことができる。この場合、切替部180は、検索回路30から出力されるポート番号の信号から、それぞれの第1データベース50及び第2データベース60に対するチップセレクト信号を生成して供給するための回路であってもよい。
(実施の形態7)
つづいて、上述した通信制御装置10におけるバイナリサーチを実現するための新たな技術について説明する。
図54は、バイナリサーチ回路の別の構成例を示す。図54に示した例では、4回分の探索を一度に実行するために、15個の比較回路36A〜36Oが設けられている。制御回路36Zは、15個の比較回路36A〜36Oのそれぞれに接続された第1データベース50から、探索対象範囲の1/16、2/16、・・・、15/16の位置のデータを同時に並列して読み上げて比較回路36A〜36Oに入力する。また、比較対象データxをそれぞれの比較回路36A〜36Oに入力する。
制御回路36Zは、まず、第1段階として、探索対象範囲の4/16、8/16、12/16の位置のデータが入力された3個の比較回路36A、36B、36Cにより、比較対象データxが、探索対象範囲を4個に分割した範囲のいずれに属するかを判定する。つづいて、第2段階として、第1段階で判定された範囲の1/4、2/4、3/4の位置のデータが入力された3個の比較回路により、比較対象データxが、探索対象範囲を16個に分割した範囲のいずれに属するかを判定する。
バイナリサーチ回路36には、第1段階の比較回路36A、36B、36Cの比較結果を示す出力信号から、次の第2段階の比較回路36D〜36Oのうち第1段階で判定された範囲のデータが入力されている比較回路に比較を実行させるトリガ信号を生成して第2段階の比較回路36D〜36Oに入力するトリガ回路として、否定回路37及び排他的論理和回路38A、38Bを更に備えている。ここで、比較回路36A〜36Oは、比較対象データxが参照データよりも大きいときに「1」、小さいときに「0」を出力するものとする。
まず、第1段階の比較回路36A、36B、36Cにトリガ信号が入力され、同時に並列して比較が実行される。比較回路36Aの出力が「0」であれば、比較対象データxは、第1データベース50の探索対象範囲のうち0/16〜4/16の範囲に属するので、その範囲の参照データが入力されている比較回路36D、36E、36Fに、否定回路37を介して、トリガ信号「1」が入力される。これにより、第2段階の比較回路36D〜36Oのうち、探索対象範囲の1/16、2/16、3/16の位置の参照データが入力されている比較回路36D、36E、36Fのみが起動され、同時に並列して第2段階の比較を実行する。比較対象データxが、探索対象範囲のうち4/16〜16/16の範囲に属する場合は、比較回路36Aの出力が「1」となるので、否定回路37からは「0」が出力され、比較回路36D、36E、36Fには、トリガ信号が入力されない。
比較回路36Aの出力が「1」で、比較回路36Bの出力が「0」であれば、比較対象データxは、探索対象範囲のうち4/16〜8/16の範囲に属するので、その範囲の参照データが入力されている比較回路36G、36H、36Iに、排他的論理和回路38Aを介して、トリガ信号「1」が入力される。これにより、第2段階の比較回路36D〜36Oのうち、探索対象範囲の5/16、6/16、7/16の位置の参照データが入力されている比較回路36G、36H、36Iのみが起動され、同時に並列して第2段階の比較を実行する。比較対象データxが、探索対象範囲のうち4/16〜8/16の範囲に属さない場合は、比較回路36A及び36Bの出力が同じになるので、排他的論理和回路38Aからは「0」が出力され、36G、36H、36Iには、トリガ信号は入力されない。
比較回路36Bの出力が「1」で、比較回路36Cの出力が「0」であれば、比較対象データxは、探索対象範囲のうち8/16〜12/16の範囲に属するので、その範囲の参照データが入力されている比較回路36J、36K、36Lに、排他的論理和回路38Bを介して、トリガ信号「1」が入力される。これにより、第2段階の比較回路36D〜36Oのうち、探索対象範囲の9/16、10/16、11/16の位置の参照データが入力されている比較回路36J、36K、36Lのみが起動され、同時に並列して第2段階の比較を実行する。比較対象データxが、探索対象範囲のうち8/16〜12/16の範囲に属さない場合は、比較回路36B及び36Cの出力が同じになるので、排他的論理和回路38Bからは「0」が出力され、36J、36K、36Lには、トリガ信号は入力されない。
比較回路36Cの出力が「1」であれば、比較対象データxは、探索対象範囲のうち12/16〜16/16の範囲に属するので、その範囲の参照データが入力されている比較回路36M、36N、36Oに、比較回路36Cの出力信号がトリガ信号「1」として入力される。これにより、第2段階の比較回路36D〜36Oのうち、探索対象範囲の13/16、14/16、15/16の位置の参照データが入力されている比較回路36M、36N、36Oのみが起動され、同時に並列して第2段階の比較を実行する。比較対象データxが、探索対象範囲のうち0/16〜12/16の範囲に属する場合は、比較回路36Cの出力が「0」となるので、36M、36N、36Oには、トリガ信号は入力されない。
こうして、図54に示した例では、2段階の比較処理で4回分の探索を実行することができる。この4回分の探索において比較対象データxが探索されなかった場合は、制御回路36Zは、新たに、第2段階で判定された範囲の1/16、2/16、・・・、15/16の位置のデータを、15個の比較回路36A〜36Oのそれぞれに入力させ、次の4回分の探索を実行する。
このように、n回分の探索を行うための比較回路を複数の段階に階層化させ、第2段階以降は、前段階までに判定された範囲の比較回路のみを動作させるので、消費電力を低減させることができる。
図54の例では、4回分の探索を同時に行うために、15個の比較回路を設けたが、一般に、n回分の探索を同時に並行して行うためには、2−1個の比較回路を設ければよい。制御回路36Zは、第1データベース50の探索対象範囲を2個に分割したとき、比較対象データxと、探索対象範囲の1/2、2/2、・・・、(2−1)/2の位置のデータとを、2−1個の比較回路のそれぞれに入力させる。まず、第1段階として、探索対象範囲の1/2n1、2/2n1、・・・、(2n1−1)/2n1の位置のデータが入力された2n1−1個の比較回路により、比較対象データxが、探索対象範囲を2n1個に分割した範囲のいずれに属するかを判定する。つづいて、第2段階として、第1段階で判定された範囲の1/2n2、2/2n2、・・・、(2n2−1)/2n2の位置のデータが入力された2n2−1個の比較回路により、比較対象データxが、探索対象範囲を2n1+n2個に分割した範囲のいずれに属するかを判定する。以降同様にして、第N段階(ただし、n1+n2+・・・+nN=n)まで繰り返すことにより、n回分の探索を実行する。n回分の探索において比較対象データxが探索されなかった場合は、新たに、第N段階で判定された範囲の1/2、2/2、・・・、(2−1)/2の位置のデータを、2−1個の比較回路のそれぞれに入力させ、次のn回分の探索を実行する。
この場合、トリガ回路は、第m(1≦m<N)段階の比較回路の比較結果を示す出力信号から、次の第(m+1)段階の比較回路のうち第m段階で判定された範囲のデータが入力されている比較回路に比較を実行させるトリガ信号を生成して第(m+1)段階の比較回路に入力する。具体的には、第m段階の2−1個の比較回路のうち、隣接する比較回路から異なる比較結果を示す出力信号が出力されたときに、それらの比較回路に入力されているデータの間の範囲のデータが入力された第(m+1)段階の比較回路にトリガ信号を入力すればよい。また、第m段階で判定される2の範囲のうち、最小の範囲と、最大の範囲のデータが入力された第(m+1)段階の比較回路には、第m段階の2−1個の比較回路のうち、最小と最大の参照データが入力された比較回路の比較結果に応じてトリガ信号を入力すればよい。
図55は、バイナリサーチ回路の更に別の構成例を示す。図55に示した例では、バイナリサーチ回路36は、3つの比較回路36A〜36Cを用いて、比較対象データxが第1データベース50の探索対象範囲を4つに分割した範囲のいずれに属するかを判定したが、図55の例では、比較対象データxが、4つの範囲のそれぞれに含まれるか否かを判定するための4つの比較回路36P〜36Sが設けられている。例えば、比較回路36Pには、第1データベース50の探索対象範囲の0/16の位置にある基準データと、4/16の位置にある基準データと、比較対象データxとが入力され、それぞれの基準データと比較対象データxとを比較することにより、基準データが探索対象範囲の0/16から4/16の範囲に含まれるか否かを判定する。範囲に含まれる場合には、比較回路36Pから、その範囲に含まれるデータが参照データとして入力されている比較回路36D、36E、36Fに、トリガ信号が入力される。これにより、第2段階では、第1段階で判定された範囲の比較回路のみが比較を実行するので、消費電力を低減させることができる。
なお、図54及び図55に示した例では、n回分の探索を一度に行うための2−1個の比較回路のうち、1/2n1、2/2n1、・・・、(2n1−1)/2n1の位置のデータが入力された2n1−1個の比較回路を第1段階の比較回路としたが、これに限らず、任意の位置のデータが入力された比較回路を第1段階の比較回路としてもよい。要は、複数の比較回路を階層化し、前段階までに判定された範囲の比較回路のみを動作させるようにすればよい。
第1のデータベース及び第2のデータベースは、外部から書き換え可能に設けられる。これらのデータベースを入れ替えることにより、同じ通信制御装置10を用いて、さまざまなデータ処理や通信制御を実現することができる。また、検索対象となる基準データを格納したデータベースを2以上設けて、多段階の検索処理を行ってもよい。このとき、検索結果と処理内容とを対応づけて格納したデータベースを2以上設けて、より複雑な条件分岐を実現してもよい。このように、データベースを複数設けて多段階の検索を行う場合に、位置検出回路32、インデックス回路34、バイナリサーチ回路36などを複数設けてもよい。
上述した比較に用いられるデータは、同じ圧縮ロジックにより圧縮されてもよい。比較に際して、比較元のデータと比較先のデータが同じ方式で圧縮されていれば、通常と同様の比較が可能である。これにより、比較の際にローディングするデータ量を低減することができる。ローディングするデータ量が少なくなれば、メモリからデータを読み出すのに要する時間が短縮されるので、全体の処理時間も短縮することができる。また、比較器の量を削減することができるので、装置の小型化、軽量化、低コスト化に寄与することができる。比較に用いられるデータは、圧縮された形式で格納されていてもよいし、メモリから読み出した後、比較の前に圧縮されてもよい。
(実施の形態8)
つづいて、上述した通信制御装置10において、ユーザの端末を識別する技術について説明する。インターネットサービスプロバイダにダイアルアップ接続している端末や、携帯電話端末などは、インターネットに接続するときに、接続を管理するサーバからIPアドレスを付与されるので、接続のたびにIPアドレスが変化する。そのため、IPアドレスのみではユーザの端末を一意に識別することができない。本実施の形態では、端末の接続を管理するサーバから、端末に付与したIPアドレスを取得して、端末を一意に識別する技術について説明する。
図56は、実施の形態に係る通信制御装置のパケット処理回路の構成を示す。図56に示したパケット処理回路20は、図4に示した前提技術の通信制御装置10のパケット処理回路20の構成に加えて、ユーザデータベース更新部460を更に備える。その他の構成及び動作は、前提技術と同様である。
接続管理サーバ120は、インターネットに接続しようとするユーザの端末を認証し、認証に成功した端末にIPアドレスを付与する。接続管理サーバ120は、ユーザの端末に付与可能なIPアドレスのテーブルを有しており、空いているIPアドレスを端末に動的に付与する。接続管理サーバ120は、端末の認証及びアカウンティングを行うRADIUS(Remote Authentication Dial In User Service)サーバであってもよいし、RADIUSサーバにユーザの端末の認証を要求するRADIUSクライアントであってもよい。接続管理サーバ120は、認証に成功したユーザの端末に付与したIPアドレスと、その端末のユーザのユーザIDとを通信制御装置10へ通知する。ユーザデータベース更新部460は、接続管理サーバ120から取得したユーザのIDとIPアドレスの組をユーザデータベース57に登録する。
図57は、ユーザデータベース57の内部データの例を示す。ユーザデータベース57には、IPアドレス欄401及びユーザID欄402が設けられている。IPアドレス欄401には、ユーザの端末に割り当てられる可能性のある全てのIPアドレスが昇順又は降順にソートして格納されている。ユーザデータベース更新部460は、接続管理サーバ120から、ユーザのユーザIDと、ユーザの端末に現在割り当てられているIPアドレスとを取得すると、該当するIPアドレスのレコードに、ユーザIDを登録する。これにより、以降は、IPアドレスからユーザを識別することが可能となる。
通信制御装置10は、通信データを受信すると、まず、検索回路30により、通信データの送信元又は送信先のIPアドレスをユーザデータベース57のIPアドレス欄401から検索し、該当するIPアドレスに対応するユーザIDを取得する。ユーザデータベース57のIPアドレス欄401が昇順又は降順にソートされている場合は、検索回路30は、バイナリサーチにより送信元又は送信先のIPアドレスを検索する。このとき、検索回路30は、通信データの送信元又は送信先の端末のユーザを識別するユーザ識別部として機能する。
つづいて、検索回路30は、通信データに含まれる基準データを第1データベース50から検索し、検索結果に応じて第2データベース60から実行すべき処理の内容を読み出して通信データを制御する。このとき、第2データベース60の共通カテゴリリストなど、ユーザごとにデータベースが設けられていて、ユーザIDが対応づけてデータベースに格納されている場合は、該当するユーザIDのレコードを参照して検索を実行する。これにより、ユーザごとに設定された制御を適切に実行することができる。
通信制御装置10は、IPアドレスを検索するための検索回路30を更に備えてもよい。この場合、IPアドレスの検索と、通信データに含まれる基準データの検索を、同時に並行して実行することができるので、より高速な通信制御を実現することができる。
上記のように、本実施の形態に係る技術によれば、IP電話においても、発呼した端末を一意に識別することができる。固定加入電話網においては、電話交換機と加入者端末が直接電気的に接続されているので、発呼した端末を確実に識別することができるという特性を有していた。固定加入電話網からIP電話網への切り替えに際して、この特性が喪われてしまうことに大きな危惧がもたれていたが、本実施の形態の技術を利用することにより、IP電話網においても同様に、電話のライフラインとしての特性を維持することができる。例えば、緊急通報において、通報者が落ち着いて名乗れなかったり、発声に障害があったり、危険な状況に陥ってうまく発声できない状態になっていたりしても、緊急通報機関側で発呼した端末を特定することができる。また、発呼者が特定されるので、迷惑電話を防止する技術としても重要である。
(実施の形態9)
実施の形態では、前提技術において説明した通信制御装置において、通信データを編集したり複製したりする技術について説明する。
図58は、実施の形態に係るパケット処理回路20の構成を示す。本実施の形態のパケット処理回路20は、図4に示した前提技術のパケット処理回路20の構成に加えて、編集部42及び複製部44を更に備える。その他の構成及び動作は、前提技術に係る通信制御装置10と同様である。
編集部42は、通信制御装置10が取得した通信データをネットワークへ送出する前に、通信データに対して様々な編集を加える。編集部42は、第1データベース50及び第2データベース60に格納された条件にしたがって、通信データを編集する。第1データベース50及び第2データベース60は、複数の条件に応じて複数設けられてもよいし、ユーザごと、ユーザのグループごと、又は通信プロトコルごとに設けられてもよい。第1データベース50及び第2データベース60は、通信の方向に応じて、又は所定のタイミングで切り替えられてもよい。
編集部42は、所定のデータを通信データから削除する機能を有する。編集部42は、所定の条件にしたがって、パケットのペイロードに格納されている通信文やコンテンツなどを削除してもよい。
編集部42は、所定のデータを通信データに追加する機能を有する。編集部42は、所定の条件にしたがって、広告などのコンテンツ、通信制御装置10の位置情報、地域情報、IPアドレスなどをパケットのペイロードに追加してもよい。
編集部42は、通信データの所定のデータを別のデータに変更する機能を有する。編集部42は、所定の条件にしたがって、パケットの送信元又は送信先のIPアドレス、MACアドレスなどを変更してもよいし、スパムメールなどの禁止キーワードをスペースなどに置換してもよい。
編集部42は、通信データを圧縮又は解凍する機能を有する。編集部42は、所定の条件にしたがって、パケットのペイロードに格納されたデータを圧縮したり、圧縮されたデータを解凍したりしてもよい。編集部42は、パケットのペイロードに格納された所定のデータのハッシュ値を算出し、算出されたハッシュ値に置換してもよい。
編集部42は、通信データを暗号化又は復号化する機能を有する。編集部42は、所定の条件にしたがって、パケットのペイロードに格納された平文のデータを暗号化したり、暗号化されたデータを復号化したりしてもよい。
編集部42は、通信データに含まれる文字又は文章のデータを翻訳したり、文字コードを変更したりする機能を有する。編集部42は、所定の条件にしたがって、パケットのペイロードに格納された文字又は文章のデータを所定の言語に翻訳してもよい。編集部42は、所定の条件にしたがって、パケットのペイロードに格納された文字又は文章のデータの文字コードを正規化してもよい。編集部42は、所定の条件にしたがって、パケットのペイロードに格納されたデータのデータ名や添付ファイルのファイル名などに含まれるスペース、記号、制御文字などを置換することにより、データ名又はファイル名を正規化してもよい。これにより、送信元のコンピュータと送信先のコンピュータのファイルシステムの差異などにより、文字データを読むことができなかったり、ファイルを開くことができなかったりする事態を低減させることができる。また、データ名やファイル名を他の名称に置換しておくことで、データが誤って第三者に渡ったとしても、データを保護することができる。
編集部42は、上記のような機能により通信データを編集したときに、編集した回数やデータ量などをカウントしてもよい。このカウント値は、編集部42や、通信制御装置10の他の構成に供給され、通信制御に利用されてもよい。編集部42は、上記のような機能により通信データを編集したときに、必要であれば、巡回冗長検査(CRC:Cyclic Redundancy Check)を再計算して更新する。
複製部44は、処理実行回路40が送出する通信データとは別に、所定の条件にしたがって通信データを複製し、記憶装置46にバックアップする。複製部44は、例えば、企業におけるコンプライアンス対策として、企業のメールサーバのメールアドレスに対して送受信された電子メールの通信データを複製して記憶装置46にバックアップしてもよい。このとき、同じ企業の複数のメールアドレスに宛てて電子メールが送信された場合は、1件分の通信データのみを複製し、その他を破棄してもよい。また、警察による捜査などのために、所定の条件に合致する通信データを複製して記憶装置46にバックアップしてもよい。複製部44は、全てのデータを無条件に複製して記憶装置46にバックアップしてもよい。複製部44は、編集部42による編集前の通信データをバックアップしてもよいし、編集後の通信データをバックアップしてもよい。
図59は、実施の形態に係る通信制御システムの構成を示す。図59の例では、基地局装置262に通信制御システム100aが、制御局装置264に通信制御システム100bが、インターネット200と送信先端末230との間の通信経路に通信制御システム100cが、それぞれ設けられている。
送信元の携帯電話端末260に最も近い通信制御システム100aの編集部42は、携帯電話端末260が送出する通信データを暗号化し、携帯電話端末260へ送出する通信データを復号する。また、送信先端末230に最も近い通信制御システム100cの編集部42は、送信先端末230へ送出する通信データを復号し、送信先端末230が送出する通信データを暗号化する。
すなわち、図59に示したように、携帯電話端末260が送出した通信データ270は、基地局装置262の通信制御システム100aにより暗号化される。暗号化された通信データ271は、制御局装置264を介してインターネット200へ送信される。通信制御システム100cは、暗号化された通信データ271を復号して送信先端末230へ送信する。これにより、通信制御システム100aと通信制御システム100cとの間では、通信データが暗号化されて送受信されるので、安全な通信路を構築することができる。
上述したように、本実施の形態の通信制御装置10は、IPアドレスを有さず、物理的な着信を要しない透過型の通信機であるため、VPNなどのように既存のネットワークの設定を複雑に改変することなく、容易に安全なプライベートネットワークを構築することができる。
図59に示した通信制御システムにおいて、通信制御システム100の編集部42は、端末が送出した通信データを圧縮し、端末へ送出する圧縮された通信データを解凍してもよい。これにより、通信制御システム100間の通信量を低減することができる。
(実施の形態10)
実施の形態では、前提技術で説明した通信制御システムを、インターネットなどのネットワークを利用した電話網における緊急通報に利用する技術について説明する。
VoIPなどの技術を利用したIP電話が実現されているが、現状では、IP電話から緊急通報を行うことはできないようになっている。これは、緊急通報のために加入電話に求められている以下の要件をIP電話が充足していないからである。
(1)通報者の位置に応じて、その位置を管轄区域とする緊急通報機関に接続すること。
(2)通報者から通話を終了できないようにするとともに、緊急通報機関から通報者を呼び出すことができるようにすること。
(3)通報者の電話番号や位置情報を緊急通報機関に通知すること。
本実施の形態では、前提技術の通信制御システム100を利用して、上記の要件を充足したIP電話又は携帯電話による緊急通報を実現する技術を提案する。
本実施の形態の通信制御システム100は、緊急電話番号が格納された第1データベース50を利用して、通信制御装置10の検索回路30により緊急電話番号を発呼する通信データを検出し、緊急通報の通話を制御する。この通信制御システム100は、緊急電話の発呼元の電話端末と、緊急通報機関との間の通信経路に設けられる。以下、通信制御システム100の配置例を列挙する。
図60は、通信制御システムの配置例を示す。本図は、発呼元の電話端末の一例として、携帯電話端末260が用いられる例を示している。携帯電話端末260から発せられる通信データは、キャリアが設置した基地局装置262、局舎に設けられた制御局装置264を介してインターネット200へ送出され、インターネット200を介して発呼先の電話端末210又は緊急通報機関220へ到達する。本図の例では、基地局装置262に通信制御システム100が設けられる。この場合、必要最低限の機能のみを搭載することにより通信制御システム100の小型化を図ってもよい。例えば、接続管理サーバ120、ログ管理サーバ140などの構成を省略してもよい。
図61は、通信制御システムの別の配置例を示す。本図も、携帯電話端末260が用いられる例を示しているが、図60に示した例とは異なり、制御局装置264に通信制御システム100が設けられる。局舎に設けられた制御局装置264において一元的に緊急通報を制御するので、システムのメンテナンスが容易である。
図62及び図63は、通信制御システムの更に別の配置例を示す。本図では、電話端末の一例として、インターネットに接続されたIP電話端末280が用いられる例を示している。IP電話端末280から発せられる通信データは、LAN又はWANなどのルータ装置282及び284を介してインターネット200へ送出され、インターネット200を介して発呼先の電話端末210又は緊急通報機関220へ到達する。図62は、ルータ装置282に通信制御システム100が設けられる例を示しており、図63は、ルータ装置284に通信制御システム100が設けられる例を示している。通信制御システム100は、回線業者により設けられてもよいし、ISPにより設けられてもよい。
上記の例では、ネットワークを構成する装置に通信制御システム100を組み込む例を示したが、通信制御システム100は、これらの装置とは別に、ネットワークの任意の位置に設けられてもよい。
図64は、実施の形態に係る通信制御システムの構成を示す。本実施の形態の通信制御システム100では、メッセージ出力サーバ130が、緊急電話制御部137及び位置情報保持部138を備える。その他の構成及び動作は、図1に示した前提技術の通信制御システム100と同様である。緊急電話制御部137は、通信制御装置10が緊急電話番号を発呼する通信データを検出したときに、その緊急電話の通話を制御する。位置情報保持部138は、発呼元の電話端末又は通信制御システム100の位置に関する情報を保持する。この位置情報は、位置情報付加部としても機能する緊急電話制御部137により、緊急通報機関220へ送信される通信データに付加され、緊急通報機関220へ通知される。
図62又は図63に示したIP電話端末280を用いた緊急通報のための通信制御システム100においては、位置情報保持部138に、郵便番号、住所コード、住所などの情報を格納してもよい。これらの情報は、通信制御システム100の設置位置の情報であってもよいし、個々のIP電話端末280の設置位置の情報であってもよい。後者の場合、位置情報保持部138は、電気通信回線事業者の登録ユーザのIP電話端末280の電話番号、郵便番号、住所コード、住所などを格納する。この場合、位置情報保持部138を通信制御装置10の第1データベース50として機能させ、検索回路30により緊急通報を発信したIP電話端末280の電話番号を検索し、該当するIP電話端末280の位置情報を得てもよい。図60又は図61に示した携帯電話端末260を用いた緊急通報のための通信制御システム100においては、位置情報保持部138に、基地局装置262の緯度、経度及び精度情報を格納してもよい。この場合、緯度及び軽度の単位は度表記で小数点以下五位とし、精度情報の単位はメートルとしてもよい。
図65は、実施の形態に係る通信制御方法の手順を示すシーケンス図である。図65は、通信制御システム100が発呼元の電話端末との間で接続を確立するまでの手順を示す。この手順は、主にTCP/IP通信におけるスリーウェイハンドシェイクを想定しているが、別の通信プロトコルに適用されてもよい。発呼元の電話端末が携帯電話端末260である場合は、これらの手順を省略してもよい。
ユーザが緊急電話番号を発呼すると、発呼元の電話端末280は、緊急電話番号の接続先へ接続を要求するための「SYN」パケットを発信する(S10)。通信制御装置10は、この「SYN」パケットを取得し、緊急電話番号のリストが格納された第1データベース50を参照して、検索回路30により発呼先の電話番号が緊急電話番号であるか否かを判定する(S12)。発呼先の電話番号が一般の電話番号である場合は、通信制御装置10は「SYN」パケットをインターネットへ送出し、発呼先の電話端末210へ送信する。発呼先の電話番号が緊急電話番号である場合は、通信制御装置10はその旨を緊急電話制御部137へ通知する(S14)。
緊急電話制御部137は、緊急電話の発呼を通知されると、発呼元の電話端末280の存在を確認するために、発呼元の電話端末280へ「ping」コマンドを発する(S16)。発呼元の電話端末280は、「ping」コマンドを受信すると、それに対する応答を返信する(S18)。発呼元の電話端末280から応答が得られない場合は、IPアドレスや電話番号などを偽装している可能性があるので、緊急電話制御部137は、「SYN」パケットを破棄し、緊急電話の接続を禁止する。これにより、緊急電話の発信者のなりすましを抑止することができる。
緊急電話制御部137は、「ping」コマンドにより、発呼元の電話端末280に対する疎通が正常であることが確認されると、発呼元の電話端末280に「FIN」パケットを送信する(S20)。「FIN」パケットは、通常、接続の終了を要求するときに送信されるので、発呼元の電話端末280は、いったん接続を終了しようとして、ハーフクローズ(CLOSE_WAIT)又は再送待機(TIME_WAIT)状態となる。この間に、緊急電話制御部137は、発呼元の電話端末280に、接続要求に対する確認応答と接続の確立を要求するための「SYN/ACK」パケットを送信する(S22)。発呼元の電話端末280は、応答確認のための「ACK」パケットを緊急電話制御部137に送信する(S24)。以上の手順により、発呼先の電話端末に代わって、緊急電話制御部137が発呼元の電話端末280との間で接続を確立する。これにより、発呼元の電話端末280から通話を終了することができなくするとともに、緊急通報機関が緊急電話制御部137を介して通報者を呼び出すことが可能となり、上述した要件の(2)を充足することができる。
図66は、実施の形態に係る通信制御方法の手順を示すシーケンス図である。図66は、通信制御システム100が発呼元の電話端末260又は280と緊急通報機関220との間の通話を制御する手順を示す。緊急電話制御部137は、発呼元の電話端末260又は280との間で接続を確立すると、接続すべき緊急通報機関を選択する(S30)。図60に示した通信制御システム100においては、基地局装置262から数百メートル程度の範囲内に発呼元の携帯電話端末260が存在するので、緊急電話制御部137は、発呼先の電話番号に応じて、自身の設置場所の位置を管轄とする緊急通報機関を選択する。図61に示した通信制御システム100においては、後述するように、基地局装置262の通信制御システム100が通信データに付加した位置情報を参照して発呼元の携帯電話端末260の位置を判定し、発呼先の緊急電話番号に応じて、判定された発呼元の携帯電話端末260の位置を管轄とする緊急通報機関を選択する。図62又は63に示した通信制御システム100においては、後述するように、発呼元のIP電話端末280が発した通信データに付加された位置情報を参照して発呼元のIP電話端末280の位置を判定し、発呼先の緊急電話番号に応じて、判定された発呼元のIP電話端末280の位置を管轄とする緊急通報機関を選択する。これにより、発呼元の電話端末の位置を管轄区域とする緊急通報機関に接続することができるので、上述した要件の(1)を充足することができる。
緊急電話制御部137は、緊急通報機関を選択すると、その緊急通報機関の電話端末を発呼するための通信データに、発呼元の電話端末の電話番号と、位置情報保持部138に保持された位置情報を付加する(S32)。このとき、上流の通信制御システム100により既に位置情報が付加されていた場合は、位置情報を付加しなくてもよいし、更に位置情報を付加してもよい。後者の場合、発呼元の電話端末から緊急通報機関に至るまでの通信経路を把握することが可能となる。これにより、通報者の電話番号や位置情報を緊急通報機関に通知することができるので、上述した要件の(3)を充足することができる。
緊急電話制御部137は、位置情報が付加された通信データを緊急通報機関へ送り、緊急通報機関の電話端末を発呼する(S34)。緊急電話制御部137は、インターネットを利用したIP電話網を用いて緊急通報機関の電話端末を発呼してもよいし、固定電話網や専用線などを用いて緊急通報機関の電話端末を発呼してもよい。緊急通報機関との間で接続が確立されると(S36)、緊急電話制御部137は、発呼元の電話端末と緊急通報機関との間の通話を中継し、通信を制御する(S38)。
緊急通報機関が終話信号を発すると(S40)、緊急電話制御部137は、発呼元の電話端末との間の接続を開放し(S42)、緊急通報機関との間の接続を開放する(S44)。これにより、両者の接続が切断される。緊急電話制御部137は、緊急通報機関から終話信号を受信しない限り、発呼元の電話端末との間の接続を開放しない。これにより、上述した要件の(2)を充足することができる。
通信経路に、位置情報付加機能を有する通信制御システム100を複数設け、通信制御システム100を通過するごとに、その通信制御システム100の位置情報を通信データに付加してもよい。例えば、既に付加された上流の通信制御システム100の位置情報の後に、自身の位置情報を付加してもよい。これにより、通信データが通過した経路をトレースすることができる。
実施の形態では、位置情報保持部138に保持された、通信制御システム100の位置を示す情報を通信データに付加したが、通信制御システム100が設けられた基地局装置262、制御局装置264、ルータ装置282又は284などの識別情報などを付加してもよいし、発呼元の電話端末から通知されたGPS情報などを付加してもよいし、発呼元の電話端末と通信中の複数の基地局装置262の位置情報に基づいて三角測量などにより発呼元の電話端末の位置を算出し、算出された位置情報を付加してもよい。
上記のように、本実施の形態に係る技術によれば、IP電話においても、緊急通報の発呼者の位置情報を緊急通報機関へ的確に通知することができる。緊急通報においては、緊急通報機関が通報者の位置を正確に把握することが非常に重要である。固定加入電話網は、緊急通報に求められている上述した要件を全て具備していたので、とにかく通報者が発呼しさえすれば緊急通報機関側で位置情報などを割り出して対処することができるという意味で、ライフラインとしての優れた特性を有していた。固定加入電話網からIP電話網への切り替えに際して、この特性が喪われてしまうことに大きな危惧がもたれていたが、本実施の形態の技術を利用することにより、IP電話網にも同様の特性を与えることができるので、通報者が落ち着いて自分の位置を正確に伝えられなかったり、発声に障害があったり、危険な状況に陥ってうまく発声できない状態になっていたりしても、緊急通報を発呼することにより緊急通報機関へ通報者の位置情報が通知されるので、適切な対処を受けることができる。
図67は、実施の形態に係る通信制御システムの別の構成例を示す。図67に示した通信制御システム100は、図60に示した通信制御システム100の構成に加えて、返信部139を更に備える。返信部139は、位置情報付加部の一例である緊急電話制御部137により位置情報が付加された通信データを発呼元の電話端末260へ返信する。その他の構成及び動作は、図60に示した通信制御システム100と同様である。
図68は、電話端末が他の電話端末を発呼するための通信データが送信される様子を示す。携帯電話端末260が発した緊急通報のための通信データ270は、基地局装置262、制御局装置264、インターネット200を介して、緊急通報機関220へ送信される。基地局装置262に設けられた通信制御システム100a、制御局装置264に設けられた通信制御システム100b、及びインターネットプロバイダなどにより通信経路に設けられた通信制御システム100cは、通信データ270を通過させる際に、緊急電話制御部137により自装置の位置情報を通信データ270に付加する。このとき、緊急電話制御部137は、通信データ270に既に付加された上流の通信制御システム100の位置情報があれば、それに加えて更に自装置の位置情報を付加する。例えば、基地局装置262の通信制御システム100aから送出された通信データ270には、通信制御システム100aの位置情報である「東京都千代田区霞が関100」が付加されている。また、通信制御システム100cから送出された通信データ270には、それまでに通過した通信制御システム100a及び100bの位置情報とともに、通信制御システム100cの位置情報である「東京都千代田区霞が関300」が付加されている。
なお、前述した発呼元端末と緊急通報機関との間で接続を確立するための制御は、いずれか1つの通信制御システム100において実行されればよく、その他の通信制御システム100は、自装置の位置情報を通信データ270に付加して送出すればよい。
通信制御システム100a、100b、及び100cのうち少なくともいずれかは、図67に示したように返信部139を備えており、それまでに通過した通信制御システム100の位置情報が付加された通信データ270を発呼元の携帯電話端末260へ返信する。発呼元の携帯電話端末260に近い位置にある通信制御システム、例えば基地局装置262の通信制御システム100aが通信データ270を返信してもよい。これにより、発呼元の携帯電話端末260へ即座に返信することができるので、ユーザは自身のいる場所の位置情報をすぐに把握することができる。発呼先の電話端末、例えば緊急通報機関220の電話端末に近い位置にある通信制御システム100cが通信データ270を返信してもよい。これにより、ユーザは自身のいる位置とともに、自身のいる位置から最寄りの緊急通報機関220の位置情報を把握することができる。
緊急電話制御部137は、自装置の位置情報として、郵便番号、住所、住所コードなどを通信データ270に付加してもよい。また、これらの情報を文字データとして通信データ270に付加してもよい。これにより、発呼元のユーザに位置情報を可読性のある文字データとして提供することができるので、ユーザの利便性を向上させることができる。また、位置情報に、建物の階数や、場所に関する詳細情報などを含めてもよい。これにより、GPSなどでは取得し得ない情報をユーザに提供することができ、ユーザの利便性を向上させることができる。
前述したように、通信制御装置10には、緊急通報機関の電話番号を格納した緊急通報機関データベースとして機能する第1データベース50と、通信データに含まれる発呼先の電話番号が緊急通報機関データベース中に存在するか否かを検索する検索回路30とが備えられているので、返信部139は、通信データ270に含まれる発呼先の電話番号が緊急通報機関データベース中に存在していたとき、すなわち、緊急通報であったときに、位置情報が付加された通信データ270を発呼元の電話端末260へ返信してもよい。
また、通信制御装置10に、本実施の形態で説明したサービスを享受するユーザの電話端末の電話番号を格納したユーザデータベースを設けておき、検索回路30により、通信データ270に含まれる発呼元の電話端末の電話番号がユーザデータベース中に存在するか否かを検索し、存在していたときに、返信部139が通信データ270を発呼元の電話端末へ返信するようにしてもよい。この場合、通信制御装置10は、発呼元の電話端末の電話番号がユーザデータベースに存在していれば、通信データ270を返信すべき旨を返信部139へ通知し、返信部139は、通信制御装置10から通知を受けたときに通信データ270を返信する。または、メッセージ出力サーバ130にユーザデータベース及び検索回路30を設けてもよい。このような構成により、特定のユーザに対して本サービスを提供することができる。特定のユーザに対してサービスを提供する場合であっても、緊急通報の場合には全てのユーザに対して通信データ270を返信するようにしてもよい。
本実施の形態の通信制御装置10は、IPアドレスを有しない完全透過型の通信機であり、通信データを物理的に着信せずに上記の機能を実行する。つまり、通信制御装置10は、ネットワークを通過中の通信データを取り込み、プロトコル処理など物理的な着信に要する処理を省略して、上述した処理を行い、位置情報を付加した通信データを発呼元へ返信する。従来の通信機は、自装置宛の通信データを受信して制御していたが、本実施の形態の通信制御装置10は、自装置宛に送信されたのではない通過中の通信データを取り込んで制御する。したがって、発呼元及び発呼先の装置や、通信経路に設けられた他の通信装置は、通信制御装置10が設けられることによる設定等の変更を何ら必要とすることなく、通信制御装置10の存在を全く意識せずに通信を行うことができる。したがって、本実施の形態の技術によれば、通信システムに大きな改変を行うことなく、上記のようなシステムを構築することができる。また、本実施の形態の通信制御装置10はIPアドレスを有しないので、悪意あるハッカーなどから攻撃を受けることがなく、セキュリティ性に優れている。
(実施の形態11)
つづいて、アクセス要求元に対してメッセージを出力する技術を提案する。また、このメッセージを利用したビジネスモデルを提案する。更に、このメッセージを利用して、悪意ある攻撃に対して適切な防御策を講じる技術を提案する。
前提技術で説明したように、通信制御装置10は、コンテンツに対するアクセス要求のパケットを受信し、そのアクセスの可否を判定して、アクセスが禁止された場合は、メッセージ出力サーバ130にエラーメッセージなどのメッセージの出力を指示する。本実施の形態では、このメッセージ出力サーバ130によりアクセス要求元へ出力されるメッセージを、アクセス要求元のユーザごと、アクセス先のURLごと、カテゴリごと、データベースごとなど、柔軟に設定可能とし、状況に応じて適切なメッセージを出力することを可能とする。アクセスが禁止された場合に限らず、コンテンツとメッセージを対応づけて保持しておき、コンテンツに対するアクセス要求を発信したユーザに対して、そのコンテンツに対応づけられたメッセージを出力するようにしてもよい。
図69は、実施の形態に係るメッセージ出力サーバ130の構成を示す。本実施の形態のメッセージ出力サーバ130は、メッセージ出力部131、メッセージ保持部132、履歴保持部133、評価部134、登録受付部135、及び課金部136を含む。
メッセージ保持部132は、アクセス要求元に対して出力するメッセージを保持する。メッセージは、ユーザごとに設定されてもよい。この場合、メッセージ保持部132は、ユーザを識別する情報と、そのユーザに出力するメッセージ又はそのメッセージを格納したファイルのファイル名などを対応づけて格納する。メッセージは、カテゴリリストにおけるカテゴリごとに設定されてもよいし、アクセス先のURLごとに設定されてもよい。例えば、サイト運営者が、URLごとに広告情報などをメッセージとして設定してもよい。メッセージ保持部132が、ユーザごと、URLごとなど、複数の条件に応じたメッセージを設定可能である場合には、いずれのメッセージを優先するかを示す情報を更に格納してもよい。
登録受付部135は、メッセージの登録を受け付ける。メッセージをユーザごとに設定可能とする場合、登録受付部135は、ユーザからメッセージの登録を受け付け、メッセージ保持部132に登録する。その他、コンテンツの提供者、広告提供事業者などから、メッセージの登録を受け付けてもよい。メッセージの登録者に対して登録料を課金する場合は、登録受付部135は、メッセージの登録を受け付けると、登録料を課金するよう課金部136に指示する。課金部136は、登録者のアカウントから登録料を減じる処理を行う。
メッセージがアクセス要求元のユーザごとに設定されている場合、メッセージ出力部131は、アクセス要求のパケットを処理する接続管理サーバ120又は通信制御装置10から、アクセス要求元のユーザのユーザIDなどを取得し、メッセージ保持部132を参照して、そのユーザに設定されたメッセージを出力する。メッセージがアクセス先のURL、カテゴリごとに設定されている場合、メッセージ出力部131は、通信制御装置10から、アクセス先のURL又はカテゴリの識別情報などを取得し、メッセージ保持部132を参照して、そのURL又はカテゴリに設定されたメッセージを出力する。メッセージ出力部131は、メッセージを出力した履歴を履歴保持部133に登録する。また、メッセージの出力に対してメッセージの登録者又はメッセージの受信者に対価を課金する場合は、課金部136に課金を指示する。
第1データベース50のリストごとにメッセージを設定する場合、例えば、ウイルス/フィッシングサイトリスト161に登録されたURLへのアクセスを要求したユーザに、「ウイルス感染サイトであるため、アクセスが制限されました。」「フィッシングサイトであるため、アクセスが制限されました。」など、アクセスを禁止した理由をメッセージとして出力することができる。また、共通カテゴリリスト164のカテゴリごとにメッセージを設定する場合も、例えば、「閲覧禁止カテゴリであるため、アクセスが制限されました。」など、アクセスを禁止した理由をメッセージとして出力することができる。それぞれのリストに登録されているURLごとにメッセージを設定する場合も同様である。
アクセス要求元のユーザごとにメッセージを設定する場合、例えば、企業などにおいて役職等に応じたアクセス権限が設定されているときに、「このサイトにアクセスする権限がありません。」などのメッセージを出力することができる。また、親が子供に携帯電話などを与える場合に、子供が不適切なサイトへアクセスしようとしたとき、別の健全な又は優良なサイトへのリンクを含むメッセージを出力し、そのリンク先へ誘導してもよい。
アクセス先のカテゴリやURLごとに、広告などを含むメッセージを設定してもよい。例えば、サイトの内容に関連した広告をメッセージに含ませてもよい。これにより、ユーザが閲覧しようとしたサイトに関連する広告を提供することができるので、広告効果を高めることができる。また、ユーザごとに、広告などを含むメッセージを設定してもよい。例えば、ユーザが、関心のある分野を設定しておき、それに属する広告などの情報をメッセージに含ませてもよい。
メッセージは、別のサイトへのリンクを含んでもよい。別のサイトへのリンクの例として、広告を提供するサイトへのリンク、アクセス先のコンテンツに関連するサイトへのリンク、人気ランキングの上位のサイトへのリンク、認証局により認定された安全なサイトへのリンク、などを含んでもよい。例えば、正規のサイトがハッキングを受けて閉鎖されているような場合に、そのサイトへアクセスしようとするユーザに対して、ミラーサイトへのリンクを含むメッセージを出力してもよい。また、サイトのURLを移転した場合に、移転前のURLへアクセスしようとするユーザに対して、移転先のURLへのリンクを含むメッセージを出力してもよい。また、メッセージ出力部131は、アクセス先のコンテンツに関連するサイトのうち、関連度の高いサイト、人気のあるサイト、優良度の高いサイト、認証局により認証されたサイトなどを抽出してリストを作成し、メッセージに含ませてもよい。
評価部134は、履歴保持部133に保持されたメッセージ出力履歴を参照して、通信状況やアクセス要求元の状況などを評価する。評価部134は、メッセージの送出履歴を統計処理し、ウェブサイトの管理者などへ提供してもよい。これにより、ユーザのアクセス履歴をマーケティングに利用したり、通信状況の制御などに活用したりすることができる。また、ユーザの端末が定期的にアクセス要求を発信するように設定しておき、それに対するメッセージの送出履歴を参照して、ユーザの行動履歴などを把握して利用できるようにしてもよい。
評価部134は、同一の要求元から短時間に多数のアクセス要求が発信されている場合、サービス妨害攻撃(Denial of Service attack:DoSアタック)などである可能性があると評価して、その要求元をアクセス拒否リストに登録し、その要求元からのパケットを要求先へ送らずに遮断してもよい。このとき、評価部134は、pingコマンドなどを用いて要求元が実際に存在することを確認し、また、存在する場合はその状態を確認してもよい。サービス妨害攻撃など不正なアクセス要求を発信している要求元を特定した場合、メッセージ出力部131は、その要求元に対してメッセージを出力してもよい。本実施の形態の通信制御装置10は、上述したように、OS及びCPUを持たない完全透過型の通信装置であり、IPアドレスも有しないので、攻撃を受けることはない。逆に、メッセージ出力サーバ130から攻撃者に対してメッセージを「はね返す」ことにより、攻撃者の装置に負荷を与えることができる。この場合、通信制御システム100は、不正なアクセス要求を通さずにはね返すので、いわば鏡(ミラー)のような役割を果たすことになる。1つのアクセス要求に対して、複数のメッセージを送出することもできる。
(実施の形態12)
実施の形態では、前提技術において説明した通信制御装置が出力するログをフィルタリングする技術について説明する。
図70は、実施の形態に係る通信制御装置10の構成を示す。本実施の形態の通信制御装置10は、図3に示した前提技術に係る通信制御装置10の構成に加えて、ログ出力制御装置145を更に備える。ログ出力制御装置145は、ログ出力制御回路141a及び141b、ログ出力設定部142、及び複数のログ出力ポート143a〜143fを備える。これらの構成は、ログ管理サーバ140に備えられてもよい。その他の構成及び動作は、前提技術に係る通信制御装置10と同様である。
ログ出力制御回路141は、通信制御装置10のパケット処理回路20における処理のログの出力を制御する。ログ出力制御回路141は、図4に示したパケット処理回路20の構成と同様の構成を含んでおり、パケット処理回路20から出力されるログに含まれるデータに基づいて、ログを出力する方法を決定する。ログ出力制御回路141は、ログに含まれるデータに基づいて、ログを出力するポート、ログ出力先などを決定し、必要であればログを編集して出力する。
図71は、ログ出力制御回路141に備えられた第1データベース50及び第2データベース60の内部データの例を示す。第1データベース50には、送信元IPアドレス欄71、送信先IPアドレス欄72、プロトコル番号欄73、及びポート番号欄74が設けられている。第2データベース60には、処理欄81、出力ポート欄82、及び出力先欄83が設けられている。ログ出力制御回路141に設けられた検索回路30は、パケット処理回路20から出力されたログ、又は、そのログのもとになった通信データに含まれる送信元IPアドレス、送信先IPアドレス、プロトコル番号、ポート番号などを取得して第1データベース50を検索する。ログ出力制御回路141に設けられた処理実行回路40は、検索回路30による検索結果に基づいて、第2データベース60から実行すべき処理、出力ポート、出力先を取得し、必要な処理を実行した後、指定されたログ出力ポート143から出力先へログを出力する。
ログ出力制御回路141は、ログの出力方法を決定する基準となるデータの種別の数に応じて、複数の検索回路30を有してもよい。例えば、図71の例のように、送信元IPアドレス、送信先IPアドレス、プロトコル番号、及びポート番号を基準としてログの出力方法を決定する場合は、それぞれの検索のために4つの検索回路30が設けられ、同時に並列して複数の種別のデータを検索可能としてもよい。これにより、より高速にログの出力を制御することができる。ログ出力制御回路141は、送信元又は送信先のMACアドレス、通信ステータス、その他通信データ中に存在する任意のデータやビットを単独で又は複数組み合わせて、ログ出力方法を決定する基準としてもよい。
ログ出力制御回路141は、ログを出力する前に、ログを圧縮したり、暗号化したり、所定のデータのみを抽出したり、所定のデータを削除したり、所定のデータを追加したり、文字コードを変更したり、送信元や送信先のMACアドレスやIPアドレスなどを変更したり、プロトコルを変更したりして、ログを編集する機能を有していてもよい。
ログ出力制御回路141は、複数のログをまとめてログ出力ポート143から出力させてもよい。例えば、所定の数又は所定のデータ量のログがパケット処理回路20から出力されるまで、出力されたログを一時メモリに保持し、一時メモリに蓄積されたログが所定の数又は所定のデータ量に達すると、一時メモリからログのデータを読み出して、それらをまとめてログ出力ポート143から出力させてもよい。
ログ出力設定部142は、ログ出力制御回路141によるログの出力方法を設定する。ログ出力設定部142は、ログ出力制御回路141に設けられた第1データベース50及び第2データベース60を書き換えることにより、ログの出力方法を切り替える。本実施の形態では、ログ出力制御回路として、ログ出力制御回路141aとログ出力制御回路141bの2つを設けているので、ログ出力設定部142がいずれか一方のログ出力制御回路141のデータベースを書き換えてログ出力方法を更新している間にも、他方のログ出力制御回路141により運用を継続することができる。ログ出力設定部142は、チップセレクト信号などを用いて運用するログ出力制御回路141を切り替えてもよい。これにより、運用を停止することなくログ出力方法を変更することができる。
前提技術で説明したメッセージ出力サーバ130により、本実施の形態のログ出力制御機能を実現してもよい。また、逆に、前提技術で説明したメッセージ出力サーバ130の機能を、本実施の形態のログ出力制御回路141などにより実現してもよい。例えば、DoS攻撃を企図した通信データをパケット処理回路20が処理したときに、ログ出力制御回路141がその通信データの発信元へ通信データを返送してミラーリングしてもよい。また、通信制御装置10から何らかのデータを外部へ出力するための予備のポートとしてログ出力ポート143を利用してもよい。
ログ出力制御回路141は、ログ出力ポート143の使用状況に応じて、使用するログ出力ポート143を決定してもよい。例えば、ログ出力ポート143aから出力すべきログが大量に出力されたとき、それらを全てログ出力ポート143aから出力する代わりに、輻輳していない他のログ出力ポート143から出力させてもよい。これにより、ログ出力ポート143の負荷を分散し、効率良くログを出力させることができる。
ログ出力制御回路141は、メッセージ出力サーバ130の状況も更に考慮して、使用するログ出力ポート143を決定してもよい。例えば、メッセージ出力サーバ130が大量のメッセージを出力する必要が生じたときに、そのメッセージをメッセージ出力サーバ130から受け付けて、ログ出力ポート143から出力してもよい。また、逆に、全てのログ出力ポート143が輻輳しているときに、出力すべきログのデータをメッセージ出力サーバ130へ送り、メッセージ出力サーバ130から出力させてもよい。このように、ログ出力制御回路141は、メッセージ出力サーバ130と協働して負荷分散を行ってもよい。これにより、更に効率良くメッセージやログを出力させることができる。
ログ出力制御回路141は、通信データの送信先の装置に異常が生じて通信データを受信できない状況に陥っているときに、その通信データを他の装置へ転送してもよい。例えば、電子メールの宛先のSMTPサーバがダウンしているときに、そのSMTPサーバ宛の電子メールの通信データをスプール先の装置へ転送し、一時的にスプールさせてもよい。異常が生じている装置及び転送先の装置のIPアドレス又はMACアドレスは、外部の装置からパケット処理回路20を介して、又は直接ログ出力設定部142へ伝達され、ログ出力設定部142からログ出力制御回路141へ設定されてもよい。これにより、通信データの送信先の装置に異常が生じている場合であっても、適切に通信データを制御することができる。
(実施の形態13)
実施の形態では、前提技術において説明したメッセージ出力サーバ130の機能を利用して、通信データの送信先の装置の負荷を分散する技術について説明する。
図72は、実施の形態に係るメッセージ出力サーバ130の構成を示す。本実施の形態のメッセージ出力サーバ130は、メッセージ出力制御回路171a及び171b、メッセージ出力設定部172、複数のメッセージ出力ポート173a〜173f、及び負荷状況保持部174を備える。メッセージ出力サーバ130は、負荷分散装置として機能し、メッセージ出力制御回路171は送信先制御部及び送出部として、メッセージ出力設定部172は設定部として、それぞれ機能する。
図73は、負荷状況保持部174の内部データの例を示す。負荷状況保持部174には、送信先IPアドレス欄91、グループID欄92、及び負荷状況欄93が設けられている。負荷状況保持部174には、ウェブサーバのミラーサーバや、ダウンロードサイトなど、同じ機能を有する複数の装置が用意されている場合に、それらの装置がグループ化して登録されており、それぞれの装置の負荷状況が格納される。例えば、図73の例では、IPアドレスが「xxx.100.0.1」の装置と「xxx.100.0.2」の装置と「xxx.100.0.3」の装置は、それぞれ同じ機能を有していて、いずれの装置に通信データが送信されても同じ処理がなされるものとする。このとき、これらの装置のIPアドレスが、グループID「1」の装置群として負荷状況保持部174に登録され、それぞれの装置の負荷状況が格納される。それぞれの装置の負荷状況は、通信制御装置10を介してそれぞれの装置から受信し、メッセージ出力設定部172により自動的に格納されてもよいし、外部の装置から負荷状況保持部174を更新可能に構成してもよい。
本実施の形態では、通信制御装置10の第1データベース50には、負荷状況保持部174の送信先IPアドレス欄91と同じデータが基準データとして格納されており、検索回路30は、通信制御装置10が取得した通信データの送信先IPアドレスが、第1データベース50に登録されているか否かを検索する。通信データの送信先IPアドレスが第1データベース50に登録されている場合には、その送信先IPアドレスに対応づけられいてるグループIDがメッセージ出力サーバ130に通知される。
メッセージ出力制御回路171は、通信制御装置10から通知されたグループIDと同一のグループIDを有する装置の負荷状況を負荷状況保持部174から読み出し、それぞれの装置の負荷状況に応じて、その通信データの送信先を決定する。メッセージ出力制御回路171は、最も負荷の低い装置へ通信データを送信してもよいし、それまでにメッセージ出力サーバ130から出力した送信先の履歴に基づいて送信先を決定してもよい。また、メッセージ出力制御回路171は、負荷状況の時間変化に応じて通信データの送信先を決定してもよい。例えば、負荷状況が減少している装置へ通信データを送信してもよい。メッセージ出力制御回路171は、何らかの異常が発生している装置は、送信先として選択しないようにする。
メッセージ出力制御回路171は、メッセージ出力ポート173を介して、決定した送信先の装置へ通信データを送出する。決定した送信先の装置が、通信データに設定されていた送信先の装置とは異なる場合、メッセージ出力制御回路171は、新たに決定した送信先の装置のIPアドレスを負荷状況保持部174から読み出し、通信データの送信先IPアドレスに設定して送出する。以上のような技術により、通信データの送信先の装置の負荷を適切に分散し、効率よく通信データを処理させることができる。
メッセージ出力制御回路171は、複数のメッセージ出力ポート173の中から、送信先の装置に応じて、通信データを出力するメッセージ出力ポート173を決定してもよい。例えば、それぞれのメッセージ出力ポート173が異なるネットワークに接続されている場合、送信先の装置のIPアドレスに応じて、適切なメッセージ出力ポート173を選択して通信データを送出してもよい。これにより、通信データを適切にルーティングすることができる。
メッセージ出力制御回路171は、通信データを出力する前に、送信先を変更するだけでなく、送信元を変更したり、データを圧縮したり、暗号化したり、所定のデータのみを抽出したり、所定のデータを削除したり、所定のデータを追加したり、文字コードを変更したり、プロトコルを変更したりして、通信データを編集する機能を有していてもよい。
メッセージ出力設定部172は、メッセージ出力制御回路171による通信データの出力方法を設定する。メッセージ出力設定部172は、メッセージ出力制御回路171において送信先の装置又はメッセージ出力ポート173を決定するためのアルゴリズムを切り替える。本実施の形態では、メッセージ出力制御回路として、メッセージ出力制御回路171aとメッセージ出力制御回路171bの2つを設けているので、メッセージ出力設定部172がいずれか一方のメッセージ出力制御回路171のアルゴリズムを更新している間にも、他方のメッセージ出力制御回路171により運用を継続することができる。メッセージ出力設定部172は、チップセレクト信号などを用いて運用するメッセージ出力制御回路171を切り替えてもよい。これにより、運用を停止することなくメッセージ出力制御回路171における通信データの出力方法を変更することができる。
メッセージ出力制御回路171は、メッセージ出力ポート173の使用状況に応じて、使用するメッセージ出力ポート173を決定してもよい。例えば、メッセージ出力ポート173aから送出すべき通信データが大量に受信されたとき、それらを全てメッセージ出力ポート173aから出力する代わりに、輻輳していない他のメッセージ出力ポート173から出力させてもよい。これにより、メッセージ出力ポート173の負荷を分散し、効率良く通信データを送出させることができる。
メッセージ出力制御回路171は、通信データの送信先の装置に異常が生じて通信データを受信できない状況に陥っているときに、その通信データを他の装置へ転送してもよい。例えば、電子メールの宛先のSMTPサーバがダウンしているときに、そのSMTPサーバ宛の電子メールの通信データをスプール先の装置へ転送し、一時的にスプールさせてもよい。これにより、通信データの送信先の装置に異常が生じている場合であっても、適切に通信データを制御することができる。
以上、メッセージ出力サーバ130が負荷分散装置として機能する例について説明したが、処理実行回路40が負荷分散装置としての機能を有していてもよい。この場合も、処理実行回路40は、通信データの送信先の装置と同じ機能を有する複数の装置の負荷状況を負荷状況保持部174から読み出し、それらの装置の負荷状況に応じて送信先の装置を決定し、必要であれば送信先の装置の識別情報を書き換えてから通信データを送出する。
(実施の形態14)
実施の形態では、前提技術において説明したメッセージ出力サーバ130の機能を利用して、IP電話の利用者の利便性を向上させるための新たなサービスを提供する技術について説明する。本実施の形態では、発呼元の電話端末が発呼先の電話端末を呼び出している間に、発呼先の電話番号の利用者が事前に登録していた広告などの音声メッセージを発呼元の電話端末に送信して再生させ、発呼元の電話端末の利用者が広告メッセージを聞いたことを条件として、発呼元の電話端末の利用者に利益を付与するサービスを提案する。
図74は、実施の形態に係るメッセージ出力サーバ130の構成を示す。本実施の形態のメッセージ出力サーバ130は、メッセージ出力制御回路171a及び171b、メッセージ出力設定部172、複数のメッセージ出力ポート173a〜173f、登録受付部135、及び課金部136を備える。メッセージ出力制御回路171a及び171bは、図69に示したメッセージ出力サーバ130のメッセージ出力部131及びメッセージ保持部132を含む。また、登録受付部135、課金部136は、それぞれ、図69に示したメッセージ出力サーバ130の登録受付部135、課金部136と同様の機能を有している。
通信制御装置10は、電話端末が他の電話端末を発呼するための通信データを取得すると、その通信データを発呼先の電話端末へ送出するとともに、その通信データをメッセージ出力サーバ130へ送る。メッセージ出力制御回路171は、通信制御装置10から通信データを取得し、その通信データに含まれる発呼元の電話端末へ音声メッセージを送信する。メッセージ出力制御回路171は、図4に示したパケット処理回路20の構成と同様の構成を含んでおり、通信データに含まれる発呼元又は発呼先の電話番号に基づいて、音声メッセージを出力する方法を決定する。
図75は、メッセージ出力制御回路171に備えられた第1データベース50及び第2データベース60の内部データの例を示す。第1データベース50には、発呼元電話番号欄94及び発呼先電話番号欄95が設けられている。第2データベース60には、音声ファイル名欄96、処理欄97、及び出力ポート欄98が設けられている。このように、第1データベース50及び第2データベース60には、発呼元電話番号及び発呼先電話番号に対応づけて、発呼元の電話端末へ送信すべき音声ファイル名、実行すべき処理の内容、及び出力するメッセージ出力ポート173が格納されている。
メッセージ出力制御回路171に設けられた検索回路30は、通信制御装置10から取得した通信データに含まれる発呼元又は発呼先の電話番号を第1データベース50から検索する。メッセージ出力制御回路171に設けられた処理実行回路40は、検索回路30による検索結果に基づいて、第2データベース60から実行すべき処理を読み出して実行する。
処理実行回路40は、発呼元の電話端末に送信すべき音声メッセージのファイル名と出力ポートを第2データベース60から読み出し、メッセージ出力部131に通知する。メッセージ出力部131は、処理実行回路40から指定された音声ファイルをメッセージ保持部132から読み出し、指定されたメッセージ出力ポート173から発呼元の電話端末へ送出する。発呼元の電話端末は、この音声メッセージを取得すると、発呼先の電話端末を呼び出している間に再生する。これにより、発呼元の電話端末の利用者は、発呼先の電話端末を呼び出している間に、従来の呼出音に代えて、音楽や広告などの音声メッセージを楽しむことができる。発呼元の電話端末は、発呼先の電話端末が着呼して接続が確立したときに、音声メッセージの再生を中止して通常の通話に切り替えてもよいし、音声メッセージの再生が終了するまで待ってから通常の通話に切り替えてもよい。
また、処理実行回路40は、課金部136が実行すべき処理の内容を第2データベース60から読み出し、課金部136に通知する。課金部136は、処理実行回路40から指定された内容の課金処理を実行する。例えば、課金部136は、発呼元の電話端末が音声メッセージを再生することを条件として、発呼元の電話端末の利用者にポイント付与や通話料割引などの利益を付与する。課金部136は、発呼先の電話番号に対応づけられた発呼先の広告などを含む音声メッセージを発呼元の電話端末が再生したとき、発呼元の電話端末と発呼先の電話端末との間の通話の料金を発呼先の電話端末の利用者に課金してもよい。課金部136は、発呼元の電話端末から、音声メッセージを再生した旨の通知を受けてから上記の処理を実行してもよいし、発呼元の電話端末が音声メッセージを必ず再生する仕様になっている場合には、音声メッセージが再生されたか否かを確認せずに上記の処理を実行してもよい。
メッセージ出力設定部172は、メッセージ出力制御回路171による音声メッセージの出力方法を設定する。メッセージ出力設定部172は、メッセージ出力制御回路171に設けられた第1データベース50、第2データベース60、又はメッセージ保持部132などのデータベースを更新することにより、音声メッセージの出力方法を切り替える。本実施の形態では、メッセージ出力制御回路として、メッセージ出力制御回路171aとメッセージ出力制御回路171bの2つを設けているので、メッセージ出力設定部172がいずれか一方のメッセージ出力制御回路171のデータベースを更新している間にも、他方のメッセージ出力制御回路171により運用を継続することができる。メッセージ出力設定部172は、チップセレクト信号などを用いて運用するメッセージ出力制御回路171を切り替えてもよい。これにより、運用を停止することなくメッセージ出力制御回路171における音声メッセージの出力方法を変更することができる。
登録受付部135は、広告主又は広告事業者などから、発呼先の電話端末の電話番号と、発呼元の電話端末へ送信すべき音声メッセージの登録を受け付ける。メッセージ出力設定部172は、受け付けたデータをメッセージ出力制御回路171に反映させる。登録受付部135が、広告主又は広告事業者などから音声メッセージを受け付けたときに、課金部136が登録者に対して広告費を課金してもよい。登録受付部135は、音楽などの音声メッセージの登録を受け付けてもよい。例えば、一般利用者が、自身の電話端末を発呼した電話端末の利用者に聞かせたい音楽を登録できるようにしてもよい。また、音楽配信業者が、発呼元の電話端末へ配信したい音楽を登録できるようにしてもよい。これにより、発呼元の電話端末の利用者にとっても魅力的なサービスを提供することができる。
メッセージ保持部132に、発呼元の電話端末の種別に応じて複数のデータ形式の音声メッセージを格納しておいてもよい。このとき、第2データベース60の音声ファイル名欄96に、発呼元電話番号に対応する電話端末の仕様に合ったデータ形式の音声メッセージのファイル名を登録しておく。これにより、メッセージ出力制御回路171は、発呼元の電話端末の仕様に合わせて適切な音声メッセージをメッセージ保持部132から読み出して送信することができる。このように、本実施の形態では、発呼先の電話番号だけでなく、発呼元の電話番号も参照して送信すべき音声メッセージを決定するので、同一の発呼先の電話番号に発呼した場合であっても、発呼元の電話端末に合わせて異なる音声メッセージを送信することができる。例えば、同じ電話番号に発呼しても、発呼元の電話端末の利用者の年齢、性別、住所、嗜好などの属性に合わせて、異なる音声メッセージを発呼元の電話端末へ送信することができる。これにより、より柔軟できめ細かなサービスを提供することができる。
メッセージ出力制御回路171は、音声メッセージの出力方法を決定する基準となるデータの種別の数に応じて、複数の検索回路30を有してもよい。例えば、図75の例のように、発呼元電話番号及び発呼先電話番号を基準として音声メッセージの出力方法を決定する場合は、それぞれの検索のために2つの検索回路30が設けられ、同時に並列して検索を実行させてもよい。これにより、より高速に音声メッセージの出力を制御することができる。メッセージ出力制御回路171は、送信元又は送信先のMACアドレス、通信ステータス、その他通信データ中に存在する任意のデータやビットを単独で又は複数組み合わせて、音声メッセージを出力する方法を決定する基準としてもよい。
メッセージ出力制御回路171は、複数のメッセージ出力ポート173の中から、送信先の電話端末に応じて、音声メッセージを出力するメッセージ出力ポート173を決定してもよい。例えば、それぞれのメッセージ出力ポート173が異なるネットワークに接続されている場合、送信先の電話端末のIPアドレスに応じて、適切なメッセージ出力ポート173を選択して音声メッセージを送出してもよい。これにより、通信データを適切にルーティングすることができる。
メッセージ出力制御回路171は、メッセージ出力ポート173の使用状況に応じて、使用するメッセージ出力ポート173を決定してもよい。例えば、メッセージ出力ポート173aから送出すべき音声メッセージが大量に生じたとき、それらを全てメッセージ出力ポート173aから出力する代わりに、輻輳していない他のメッセージ出力ポート173から出力させてもよい。これにより、メッセージ出力ポート173の負荷を分散し、効率良く音声メッセージを送出させることができる。
なお、発呼元の電話端末が固定電話である場合には、送信すべき音声メッセージを音声サーバからアナログ信号で発呼元の電話端末へ供給してもよい。
上記のような技術によれば、電話端末の利用者は、発呼先の電話端末を呼び出している間にも音楽などの音声メッセージを楽しむことができるとともに、広告などの音声メッセージを聞くことで通話料の低減などの利益を享受することができる。また、広告主や広告事業者は、自身の電話端末の電話番号に発呼してきた利用者に広告を提供することができるので、効率よく広告を行うことができる。さらに、通信事業者は、魅力的なサービスを提供することで利用者の増加を見込めるとともに、音声メッセージの提供主からの広告収入や、通信量の増加による通話料の増収を得ることができる。このように、本実施の形態で提案したサービスは、サービスに関係する全ての主体が利益を享受することが可能な魅力あるビジネスモデルとなっている。
上記の例では、音声メッセージを発呼元の電話端末へ送信したが、音声メッセージに代えて、文字や画像などを含むコンテンツを発呼元の電話端末へ送信してもよい。この場合、発呼元の電話端末は、送信されたコンテンツを電話端末の表示装置などに表示する。
音声メッセージとして、発呼先の電話端末が話中であったときの応答メッセージなどをメッセージ保持部132に登録しておいてもよい。この場合、メッセージ出力制御回路171は、発呼先の電話端末から話中である旨の情報を含む通信データが返送されてきたときに、発呼元の電話端末へ応答メッセージを送出する。これにより、発呼先の電話端末が話中で呼が成立しない場合であっても、発呼元の電話端末へ適切な応答メッセージを送信することができる。
また、音声メッセージとして、大規模災害発生時などにIP電話網を含む通信回線が輻輳状態に陥ったときに、電話がつながりにくい旨や、現況の詳細情報などを案内する案内メッセージなどをメッセージ保持部132に登録しておいてもよい。この場合、メッセージ出力設定部172は、発呼が困難な状況にある電話端末の電話番号に対応づけて案内メッセージをメッセージ保持部132に登録し、メッセージ出力制御回路171は、その電話番号へ発呼した電話端末へ案内メッセージを送信する。これにより、発呼先の電話端末までの通信経路が輻輳状態にあって呼が成立しない場合であっても、発呼元の電話端末へ適切な案内メッセージを送信することができる。
また、音声メッセージとして、緊急通報機関からの自動応答メッセージなどをメッセージ保持部132に登録しておいてもよい。この場合、メッセージ出力制御回路171は、発呼先の電話番号が緊急通報機関の電話番号であったときに、通報者に対して適切な対処を説明するための自動応答メッセージなどを送出する。通報者が発声又は聴き取りに障害を有している場合もあるので、文字又は画像により、例えば電話端末の適切な操作方法などを説明する自動応答メッセージを送出してもよい。これにより、緊急通報の通報者の電話端末へ適切な応答メッセージを送信することができる。
このように、本実施の形態の技術によれば、電話端末と交換機が直接電気的に接続されている公衆交換電話網から、電話端末と交換機との間の直接の接続がないIP電話網へ移行しても、上記のようなライフラインとしての機能を持つサービスを提供することができる。
(実施の形態15)
つづいて、上述した通信制御装置10において、帯域制御を実現する技術について説明する。
図76は、実施の形態に係る通信制御装置の構成を示す。本実施の形態の通信制御装置10は、図3に示した前提技術の通信制御装置10の構成に加えて、帯域制御回路400を更に備える。その他の構成及び動作は、図3に示した通信制御装置10と同様である。
帯域制御回路400は、選択回路405、登録部410、クラス別管理回路420、管理テーブル430、通信データ登録RAM440、及びデータ取出回路450を備える。パケット処理回路20から出力される通信データには、その通信データを送出する帯域のクラスを示すクラス情報が付されている。クラス情報は、通信データのプロトコル番号、ポート番号、送信元IPアドレス、送信先IPアドレスなどに応じて、パケット処理回路20により決定される。
クラス別管理回路420は、通信データを送出する帯域のクラスごとに設けられ、通信データを送出するタイミングを制御する。クラス別管理回路420は、パケット処理回路20から出力される通信データのうち、自身が担当するクラスに属する通信データを取得してパケット化する。クラス別管理回路420は、管理テーブル430に登録された基本情報にしたがって、送出するパケットのデータ長、メモリ領域の開始点と終了点を通信データ登録RAM440に登録する。クラス別管理回路420は、行った制御に関する情報を管理テーブル430に登録する。登録部410は、管理テーブル430に基本情報を登録する。
図77は、管理テーブルの内部データの例を示す。管理テーブル430には、クラス欄431、送出可能ビット数欄432、登録パケット数欄433、及び超過ビット数欄434が設けられている。クラス欄431は、帯域のクラスを格納する。送出可能ビット数欄432は、クラス別に割り当てられた単位時間に送出可能なビット数を格納する。登録パケット数欄433は、クラス別管理回路420が次回に送出する通信データとして通信データ登録RAM440に登録した通信データのパケットの量を格納する。図77の例では、登録されたパケットの量をビット数で格納している。超過ビット数欄434は、クラス別管理回路420が通信データ登録RAM440に登録した通信データのビット数が、送出可能ビット数欄432に登録されている単位時間に送出可能なビット数を超過した場合に、超過したビット数を格納する。
クラス別管理回路420は、自身の担当するクラスに属する通信データが大量に発生したり、大容量のファイルなどを送出しようとしたときに、管理テーブル430の送出可能ビット数欄432に規定されたビット数を超過したパケットを通信データ登録RAM440に登録してもよい。しかし、クラス別管理回路420は、超過したビット数を管理テーブル430の超過ビット数欄434に登録しておき、次回以降に、送出可能ビット数から超過ビット数を差し引いたビット数のパケットを通信データ登録RAM440に登録して、超過分を調整する。これにより、クラスごとに適切な帯域制御を行いつつ、パケット単位で柔軟に通信データの送出量を調整することができる。
クラス別管理回路420は、次回送出予定のパケットが、送出可能ビット数を超過する場合に、管理テーブル430を参照して、登録パケット数が送出可能ビット数に満たないクラスを抽出し、そのクラスを担当するクラス別管理回路420に、超過分の通信データの送出を依頼してもよい。依頼されたクラス別管理回路420は、送出可能ビット数を超えない範囲で追加の通信データの送出を受け付け、通信データをパケット化して通信データ登録RAM440に登録するとともに、管理テーブル430の登録パケット数欄433を更新する。これにより、通信データのクラスが偏っても、空いている帯域を利用して送出することができるので、帯域全体を有効に活用することができる。
データ取出回路450は、所定のタイミングで通信データ登録RAM440に登録されているパケットを取り出してネットワークへ送出する。
選択回路405は、パケット処理回路20から取得した通信データのクラス情報に応じて、通信データをクラス別管理回路420a〜420dに振り分ける。選択回路405は、パケット処理回路20から通知されるクラス情報から、通信データを振り分けるべきクラス別管理回路420をアクティブにするためのチップセレクト信号を生成して、クラス別管理回路420へ供給する。これにより、簡易な構成で、通信データを処理すべきクラス別管理回路420をアクティブにし、通信データを処理させることができる。
(実施の形態16)
図78は、実施の形態に係る試験装置900の構成を示す。試験装置900は、生成部902、出力部904、入力部906、及び検査部908を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
生成部902は、通信制御装置10へ出力する試験データと、通信制御装置10の処理実行回路40がその試験データを正常に処理したときに処理実行回路40から出力されるべき解答データを生成する。例えば、パケットフィルタリングを行うための通信制御装置10の場合、生成部902は、通過させるべきパケットと遮断すべきパケットを混在させた試験データを生成するとともに、通過させるべきパケットを含み遮断すべきパケットを含まない解答データを生成する。通信制御装置10がパケットに含まれるデータを所定のアルゴリズムにより変換する処理を行う場合、生成部902は、通信されるパケットのサンプルを試験データとして生成するとともに、そのパケットに含まれるデータを所定のアルゴリズムにより変換した解答データを生成する。
生成部902は、試験データと解答データを予め生成して、ハードディスク装置やメモリなどの記憶装置に格納しておいてもよい。この場合、生成部902は、試験が開始されると、試験データを記憶装置から読み出して出力部904へ送り、解答データを記憶装置から読み出して検査部908へ送る。出力部904が記憶装置から直接試験データを読み出してもよい。また、検査部908が記憶装置から直接解答データを読み出してもよい。
試験データと解答データは、別の装置で生成されて試験装置900へ入力されてもよい。この場合、試験装置900は、生成部902に代えて、別の装置から試験データと解答データを取得する構成を備える。
出力部904は、通信制御装置10へ試験データを出力する。入力部906は、通信制御装置10から出力される結果データを入力する。検査部908は、生成部902が生成した解答データと、入力部906が入力した結果データとを、両データの先頭から順に比較することにより、通信制御装置10が正常に動作しているか否かを検査する。
図79は、検査部908の構成を示す。検査部908は、図12に示したバイナリサーチ回路36と同様に、生成部902が生成した解答データ910と入力部906が入力した結果データ912とをビット単位で比較する複数の比較器920a、920b、・・・、を含む比較回路920を備える。複数の比較器920a、920b、・・・は、同時に並行して複数の比較を実行可能であってもよい。これにより、多数のデータを高速に比較することができるので、試験に要する時間を大幅に短縮することができる。また、比較の対象となる解答データ910及び結果データ912を一時的に格納するバッファの容量を低減することができる。
前提技術で説明した通信制御装置10は、検索回路30を含むパケット処理回路20がワイヤードロジック回路により構成されている上に、比較対象のデータを高速に検出するための位置検出回路32、高速なバイナリサーチを実現するためのインデックス回路34、バイナリサーチ回路36を設けているため、非常に高速な処理が可能である。このような通信制御装置10を試験する場合、試験装置900も高速な動作が可能であることが好ましい。上述したように、本実施の形態の試験装置900によれば、高速に動作する通信制御装置10に見合った高速な試験を実現することができる。
判定回路922は、複数の比較器920a、920b、・・・から比較結果を取得し、解答データ910と結果データ912が一致するか否かを判定する。解答データ910と結果データ912が一致しなかった場合、報知部930は、表示装置932にエラーメッセージを表示したり、スピーカ934から警報音を出力するなどして、エラーが発生した旨を報知する。ログ記録部940は、エラーの内容をログ保持部942に保持されるエラーログに記録する。エラーログは、エラーが発生したデータの位置、そのときの解答データ、出力データなどを含んでもよい。報知部930は、図示しない印刷装置などにエラーメッセージを印刷してもよい。また、ログ記録部940は、図示しない印刷装置などにエラーログを印刷してもよい。
図80は、実施の形態に係る試験装置の別の構成例を示す。図78に示した例では、生成部902、出力部904、入力部906、及び検査部908が同一の試験装置900に設けられていたが、図80に示した例では、通信制御装置10の入力側の試験装置900aが生成部902、出力部904a及び904bを備え、通信制御装置10の出力側の試験装置900bが入力部906a及び906b、検査部908を備える。
出力部904aは、生成部902が生成した試験データを通信制御装置10へ出力する。出力部904bは、生成部902が生成した解答データを試験装置900bへ出力する。入力部906aは、通信制御装置10から出力された結果データを入力する。入力部906bは、出力部904bから出力された解答データを入力する。その他の構成及び動作は、図78に示した例と同様である。
検査部908は、入力部906aがデータを入力した時刻と、入力部906bが対応するデータを入力した時刻との差を計測することにより、通信制御装置10における処理時間を推定してもよい。この場合、より正確に通信制御装置10のスループットを計測するために、出力部904aから通信制御装置10を介して入力部906aへ至る通信経路と、出力部904bから入力部906bへ至る通信経路との通信能力を揃えておくのが好ましい。
図81は、実施の形態に係る試験装置の更に別の構成例を示す。図81に示した例では、通信制御装置10から2系統のデータが出力される。例えば、パケットフィルタリングを行う通信制御装置10において、通過させるべきパケットが出力される系統と、遮断すべきパケットに対してエラーメッセージ等が出力される系統が用意されている場合などが考えられる。この場合、通信制御装置10から出力される2つの系統のデータのそれぞれに対して、試験装置900b及び900cが設けられる。試験装置900aの出力部904bは、2つの系統の解答データを試験装置900b及び900cのそれぞれに出力する。試験装置900bの入力部906aは、通信制御装置10から出力される一方の系統の結果データを入力し、入力部906bは、その系統の解答データを入力する。試験装置900cの入力部906cは、通信制御装置10から出力される他方の系統の結果データを入力し、入力部906dは、その系統の解答データを入力する。通信制御装置10から3以上の系統のデータが出力される場合は、それに応じて試験装置900を設ければよい。
図82は、実施の形態に係る試験装置の更に別の構成例を示す。図81に示した例では、試験装置900bと試験装置900cが別に設けられていたが、図82に示した例では、同一の試験装置900dが、通信制御装置10から出力される2系統のデータを検査する。試験装置900dは、通信制御装置10から出力される2つの系統のデータのそれぞれを入力する入力部906a及び906cを有しており、さらに、試験装置900aの出力部904bから出力される2つの系統の解答データを入力する入力部906bを有している。検査部908は、2系統の結果データと解答データとを比較する2つの比較回路920を有してもよいし、同一の比較回路920を時分割して2系統の結果データと解答データとを比較してもよい。
図83は、実施の形態に係る試験装置の更に別の構成例を示す。図83の例では、通信制御装置10から出力される信号に基づいてメッセージ等を出力するメッセージ出力サーバ130を試験する試験装置900cが設けられている。この場合、試験装置900aの生成部902は、通信制御装置10に出力したデータに対応してメッセージ出力サーバ130が出力すべき解答データを更に生成し、出力部904cは、生成された解答データを試験装置900cへ出力する。試験装置900cの入力部906cは、メッセージ出力サーバ130から出力される結果データを入力し、入力部906dは、出力部904cから出力される解答データを入力する。検査部908cは、入力部906cが入力した結果データと、入力部906dが入力した解答データとを比較して、メッセージ出力サーバ130が正常に動作しているか否かを検査する。これにより、通信制御装置10だけでなく、通信制御装置10の周辺装置も含む通信制御システム100全体を同時に試験することができる。
図84は、実施の形態に係る試験装置の更に別の構成例を示す。図84に示した試験装置900は、図78に示した試験装置900の構成に加えて、更新部952及び差分生成部954を更に備える。また、生成部902に代えて、保持部950を備える。その他の構成及び動作は、図78に示した試験装置900と同様である。
保持部950は、通信制御装置10へ出力する試験データと、通信制御装置10へ出力した試験データを通信制御装置10の処理実行回路40が正常に処理したときに処理実行回路40から出力されるべき解答データとを対応づけて保持する。試験データと解答データは、生成部902により生成されて保持部950に格納されてもよいし、他の装置から提供されてもよい。
差分生成部954は、データベースサーバ150が通信制御装置10の第1データベース50又は第2データベース60を更新するときに、更新される前のデータベースと、更新された後のデータベースとの間の差分を生成する。差分生成部954は、データベースサーバ150から、更新前のデータベースと更新後のデータベースとを取得して、それらの差分を生成してもよい。また、データベースサーバ150において生成された差分を取得してもよい。差分生成部954は、更新前後のデータベースの差分を更新部952及び出力部904へ通知する。
更新部952は、通信制御装置10の第1データベース50又は第2データベース60が更新されるときに、データベースの更新に伴って、保持部950に保持されたデータを更新する。更新部952は、差分生成部954から更新前後のデータベースの差分を取得し、更新されたレコードに関連する試験データと解答データを生成してもよい。また、他の装置において生成された試験データと解答データを取得してもよい。更新部952は、新たに生成された試験データと解答データを保持部950に格納する。更新部952は、更新した試験データと解答データのレコードを出力部904へ通知する。
出力部904は、保持部950に保持されたデータのうち、更新部952により更新されたレコードの試験データを選択して通信制御装置10へ出力する。出力部904は、保持部950に保持されたデータのうち、差分生成部954が生成した更新前後のデータベースの差分のレコードに記憶されている基準データを含む試験データを選択して通信制御装置10へ出力してもよい。これにより、データベースの更新されたレコードに関する試験のみを選択的に行うことができるので、試験の効率を向上させることができる。また、更新されたレコードを重点的に試験することができるので、試験の精度を向上させることができる。
通信制御装置10が、ICMP(Internet Control Message Protocol)などのプロトコルにより、通信データの送信元に対して応答データを返信する機能を有している場合、試験装置900は、通信制御装置10が返信する応答データを試験してもよい。この場合、保持部950は、通信制御装置10へ出力するデータに対して通信制御装置10が返信すべき応答データを更に保持する。入力部906は、通信制御装置10へ出力したデータに対して通信制御装置10から返信された応答データを更に入力する。入力部906は、出力部904が通信制御装置10へ試験データを出力するポートと同じポートから応答データを入力してもよい。検査部908は、通信制御装置10から返信された応答データを、保持部950に保持されている応答データと比較することにより、応答データが正常に返信されているか否かを更に検査する。
前提技術で説明したように、通信制御装置10が、通信データの制御に際して所定の宛先へメッセージを送信する機能を有している場合、試験装置900は、通信制御装置10が送信するメッセージを試験してもよい。この場合、保持部950は、通信制御装置10へ出力するデータに対して通信制御装置10が送信すべきメッセージを更に保持する。入力部906は、通信制御装置10へ出力したデータに対して通信制御装置10から送信されたメッセージを更に入力する。入力部906は、通信制御装置10のメッセージ出力ポート21から送信されたメッセージを受信するためのメッセージ入力ポートを有していてもよい。入力部906は、メッセージ出力サーバ130から送信されたメッセージを受信してもよい。検査部908は、通信制御装置10から送信されたメッセージを、保持部950に保持されているメッセージと比較することにより、メッセージが正常に送信されているか否かを更に検査する。
前提技術で説明したように、通信制御装置10が、通信データの制御に際してログを出力する機能を有している場合、試験装置900は、通信制御装置10が出力するログを試験してもよい。この場合、保持部950は、通信制御装置10へ出力するデータに対して通信制御装置10が出力すべきログを更に保持する。入力部906は、通信制御装置10へ出力したデータに対して通信制御装置10から出力されたログを更に入力する。入力部906は、通信制御装置10のログ出力ポート22から出力されたログを入力するためのログ入力ポートを有していてもよい。入力部906は、ログ管理サーバ140から出力されたログを入力してもよい。検査部908は、通信制御装置10から出力されたログを、保持部950に保持されているログと比較することにより、ログが正常に出力されているか否かを更に検査する。
以上の技術により、通信制御装置10が、通信データ以外に、応答データ、メッセージ、ログなどを出力する機能を有している場合であっても、それらの機能が正常に動作しているか否かを同時に試験することができる。
本実施の形態の通信制御装置10は、IPアドレスを有しない完全透過型の通信機であり、通信データを物理的に着信せずに上記の機能を実行する。つまり、通信制御装置10は、ネットワークを通過中の通信データを取り込み、プロトコル処理など物理的な着信に要する処理を省略して、上述した処理を行い、所定の条件にしたがって通信データをネットワークへ再送出する。従来の通信機は、自装置宛の通信データを受信して制御していたが、本実施の形態の通信制御装置10は、自装置宛に送信されたのではない通過中の通信データを取り込んで制御する。したがって、送信元及び送信先の装置や、通信経路に設けられた他の通信装置は、通信制御装置10が設けられることによる設定等の変更を何ら必要とすることなく、通信制御装置10の存在を全く意識せずに通信を行うことができる。したがって、本実施の形態の技術によれば、通信システムに大きな改変を行うことなく、上記のような通信制御を行うことができる。また、本実施の形態の通信制御装置10はIPアドレスを有しないので、悪意あるハッカーなどから攻撃を受けることがなく、セキュリティ性に優れている。
(実施の形態17)
本実施の形態では、上述した通信制御装置10を利用して、複数のネットワークを接続し、ネットワーク間で通信データを中継するルータ装置を実現する技術について説明する。
図85は、本実施の形態に係る通信制御システムの構成を示す。通信制御装置10は、複数のネットワークのそれぞれと接続するための複数のポート854、864、874、及び884を備える。図85に示した通信制御システムでは、ポート854にはネットワーク852が、ポート864にはネットワーク862が、ポート874にはネットワーク872が、ポート884にはネットワーク882が、それぞれ接続されている。
通信制御装置10の第1データベース50は、通信装置のIPアドレスと、通信装置へ送信する通信データを出力すべきポートとを対応づけて格納する。第1データベース50には、さらに、宛先のネットワークアドレス及びマスク、隣接ルータのIPアドレス及びMACアドレスなどの経路制御情報が格納されてもよい。ある通信装置へ至る通信経路が複数ある場合には、通信経路の優先度が更に格納されてもよい。第1データベース50は、後述するように、経路算出装置856により算出され、更新される。検索回路30は、取得した通信データの宛先の通信装置のIPアドレスを第1データベース50から検索する。処理実行回路40は、通信データの宛先の通信装置のIPアドレスに対応づけられたポートから通信データを送出する。このとき、必要に応じて、通信データの送信先のMACアドレスを、宛先の通信装置又は隣接ルータなどの転送先の装置のMACアドレスに書き換えてもよい。送信元のMACアドレスは書き換えなくてもよい。複数の通信経路が検索された場合は、優先度を考慮して通信経路を決定してもよい。
経路算出装置856は、ネットワーク管理者などが設定した静的経路情報のほか、他のルータ860、870、880などから取得した動的経路情報に基づいて経路表を算出する。動的経路情報は、ネットワークの規模や組織内又は組織間などの用途に応じてRIP、OSPF、BGPなどのプロトコルを用いてルータ間で送受信される。経路算出装置856は、他のルータ860、870、880などから動的経路情報を取得すると、経路表の経路制御情報を更新し、通信制御装置10の第1データベース50に反映させる。このように、ルータ装置の機能のうち、経路管理機能を経路算出装置856に担わせることで、通信制御装置10の負荷を低減し、高速な転送処理を実現することができる。また、通信制御装置10の運用を停止させることなく、動的経路情報を第1データベース50に反映させることができる。
経路算出装置856は、実施の形態1で説明した仮想通信装置520として実現されてもよい。この場合、経路算出装置856は、動的経路情報を送受信する相手のルータ860などの方向を上流とすると、自装置よりも下流のネットワーク852に接続された他の通信装置に割り当てられたIPアドレスを取得し、そのIPアドレスを経路算出装置856の仮想IPアドレスとして通信制御装置10へ通知する。また、経路算出装置856は、仮想IPアドレスを用いて他の装置との間で通信を行うプロトコルのプロトコル番号を通信制御装置10へ通知する。このように、経路算出装置856は、下流の通信装置から取得したIPアドレスを仮想的に自装置のIPアドレスに設定して、他の装置との間で通信を行う。
通信制御装置10の判定部510は、PHY処理部5aが受信した通信データのうち、送信先のIPアドレスが、経路算出装置856から通知された仮想IPアドレスに一致し、かつ、プロトコル番号が、経路算出装置856から通知されたプロトコル番号に一致する通信データを、パケット処理回路20へ供給せずに、経路算出装置856へ送る。このとき、その通信データを受信したポートを経路算出装置856へ通知する。経路算出装置856は、他のルータ860などから送信された動的経路情報を取得して、その内容と、その動的経路情報を受信した通信制御装置10のポートとに基づいてルーティングテーブルを再計算し、第1データベース50へ反映させる。経路算出装置856は、他のルータ860などへ動的経路情報を送信する場合は、送信元のIPアドレスに仮想IPアドレスを設定し、PHY処理部5bを介してネットワークへ送出する。
このように、実際には、実線で示した経路により通信データが送受信されるが、ルータ860などから見ると、点線で示したように、仮想的なルータ850との間で通信を行っているように見えている。このように、経路算出装置856を、通信制御装置10の背後に設けることで、経路算出装置856を攻撃などから適切に保護することができる。通信制御装置10は、経路算出装置856へ送る通信データを、上述した技術を用いてフィルタリングしてもよい。
前提技術で説明したように、複数の第1データベース50を設けてもよい。これにより、運用を停止させずに第1データベース50を更新させることができる。また、第1データベース50を更新した後も、更新前のデータを他の第1データベース50に保持させてもよい。これにより、誤った経路情報を第1データベース50に反映させて障害が発生した場合などに、更新前の第1データベース50に復元して運用させることができる。
本実施の形態の技術は、ルータ装置のほか、鉄道、道路などの交通に関する経路情報を管理するシステムや、自動改札システム、座席予約システムなどにも利用することができる。
本実施の形態の技術によれば、ネットワーク間で送受信される通信データを適切に中継し、通信の効率を向上させることができる。
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
前提技術に係る通信制御システムの構成を示す図である。 従来の通信制御装置の構成を示す図である。 前提技術に係る通信制御装置の構成を示す図である。 パケット処理回路の構成を示す図である。 位置検出回路の構成を示す図である。 位置検出回路の別の例を示す図である。 位置検出回路の別の例を示す図である。 第1データベースの内部データの例を示す図である。 第1データベースの内部データの別の例を示す図である。 第1データベースの内部データの更に別の例を示す図である。 インデックス回路の別の例を示す図である。 バイナリサーチ回路に含まれる比較回路の構成を示す図である。 バイナリサーチ回路の構成を示す図である。 第1のデータベースの内部データの更に別の例を示す図である。 第2データベースの内部データの例を示す図である。 第2データベースの内部データの別の例を示す図である。 前提技術に係る通信制御装置の別の構成例を示す図である。 複数の通信制御装置を含む通信制御装置の構成を示す図である。 運用監視サーバに設けられた管理テーブルの内部データの例を示す図である。 通信制御装置が故障したときの運用方法を説明するための図である。 図21(a)(b)(c)は、通信制御装置のデータベースを更新する方法を説明するための図である。 複数の通信制御装置によりパケットを処理するために設けられた通信経路制御装置の構成を示す図である。 URLフィルタリングのためのパケット処理回路の内部構成を示す図である。 図24(a)は、ウイルス/フィッシングサイトリストの内部データの例を示す図であり、図24(b)は、ホワイトリストの内部データの例を示す図であり、図24(c)は、ブラックリストの内部データの例を示す図である。 共通カテゴリリストの内部データの例を示す図である。 図26(a)(b)(c)(d)は、第2データベースの内部データの例を示す図である。 ウイルス/フィッシングサイトリスト、ホワイトリスト、ブラックリスト、及び共通カテゴリリストの優先度を示す図である。 通信制御システムの配置例を示す図である。 通信制御システムの配置例を示す図である。 通信制御システムの配置例を示す図である。 通信制御システムの配置例を示す図である。 通信制御システムの配置例を示す図である。 通信制御システムの配置例を示す図である。 実施の形態に係る通信制御装置の構成を示す図である。 実施の形態に係る通信制御技術を説明するための概念図である。 実施の形態に係る通信制御装置の別の構成例を示す図である。 実施の形態に係る通信制御技術を説明するための概念図である。 実施の形態に係るパケット処理回路の構成を示す図である。 通信制御装置が取得した通信データの例を示す図である。 通信制御装置において実行すべき処理を判定するためのフローチャートの例を示す図である。 実施の形態に係る判定方法を説明するための図である。 実施の形態に係る第1データベース及び第2データベースの内部データの例を示す図である。 実施の形態に係る第1データベース及び第2データベースの内部データの別の例を示す図である。 実施の形態に係る判定方法の別の例を説明するための図である。 実施の形態に係る第1データベース及び第2データベースの内部データの別の例を示す図である。 実施の形態に係るパケット処理回路の別の構成例を示す図である。 実施の形態に係る判定方法の別の例を説明するための図である。 実施の形態に係るパケット処理回路の別の構成例を示す図である。 実施の形態に係る検知回路の構成を示す図である。 実施の形態に係る通信制御装置のパケット処理回路の構成を示す図である。 ユーザデータベースの内部データの例を示す図である。 実施の形態に係る通信管理システムの構成を示す図である。 実施の形態に係るパケット処理回路の構成を示す図である。 バイナリサーチ回路の別の構成例を示す図である。 バイナリサーチ回路の更に別の構成例を示す図である。 実施の形態に係る通信制御装置のパケット処理回路の構成を示す図である。 ユーザデータベースの内部データの例を示す図である。 実施の形態に係るパケット処理回路の構成を示す図である。 実施の形態に係る通信制御システムの構成を示す図である。 通信制御システムの配置例を示す図である。 通信制御システムの配置例を示す図である。 通信制御システムの配置例を示す図である。 通信制御システムの配置例を示す図である。 実施の形態に係る通信制御システムの構成を示す図である。 実施の形態に係る通信制御方法の手順を示すシーケンス図である。 実施の形態に係る通信制御方法の手順を示すシーケンス図である。 実施の形態に係る通信制御システムの別の構成例を示す図である。 電話端末が他の電話端末を発呼するための通信データが送信される様子を示す図である。 実施の形態に係るメッセージ出力サーバの構成を示す図である。 実施の形態に係る通信制御装置の構成を示す図である。 ログ出力制御回路に備えられた第1データベース及び第2データベースの内部データの例を示す図である。 実施の形態に係るメッセージ出力サーバの構成を示す図である。 負荷状況保持部の内部データの例を示す図である。 実施の形態に係るメッセージ出力サーバの構成を示す図である。 メッセージ出力制御回路に備えられた第1データベース及び第2データベースの内部データの例を示す図である。 実施の形態に係る通信制御装置の構成を示す図である。 管理テーブルの内部データの例を示す図である。 実施の形態に係る試験装置の構成を示す図である。 検査部の構成を示す図である。 実施の形態に係る試験装置の別の構成例を示す図である。 実施の形態に係る試験装置の更に別の構成例を示す図である。 実施の形態に係る試験装置の更に別の構成例を示す図である。 実施の形態に係る試験装置の更に別の構成例を示す図である。 実施の形態に係る試験装置の更に別の構成例を示す図である。 通信制御システムの構成を示す図である。
符号の説明
10 通信制御装置、12 通信制御ユニット、14 切替制御部、20 パケット処理回路、30 検索回路、32 位置検出回路、33 比較回路、34 インデックス回路、35 比較回路、36 バイナリサーチ回路、36A〜36O 比較回路、36Z 制御回路、37 否定回路、38A,38B 排他的論理和回路、40 処理実行回路、42 編集部、44 複製部、46 記憶装置、50 第1データベース、60 第2データベース、100 通信制御システム、110 運用監視サーバ、120 接続管理サーバ、130 メッセージ出力サーバ、131 メッセージ出力部、132 メッセージ保持部、133 履歴保持部、134 評価部、135 登録受付部、136 課金部、137 緊急電話制御部、138 位置情報保持部、139 返信部、140 ログ管理サーバ、141 ログ出力制御回路、142 ログ出力設定部、143 ログ出力ポート、145 ログ出力制御装置、150 データベースサーバ、160 URLデータベース、161 ウイルス/フィッシングサイトリスト、162 ホワイトリスト、163 ブラックリスト、164 共通カテゴリリスト、171 メッセージ出力制御回路、172 メッセージ出力設定部、173 メッセージ出力ポート、174 負荷状況保持部、180 切替部、181 URLフィルタリング用データベース、182 スパムメールフィルタリング用データベース、183 P2P帯域制御用データベース、190 通信経路制御装置、201 検知回路、202 入力部、204 カウンタ回路、206 報知部、210 電話端末、220 緊急通報機関、260 携帯電話端末、262 基地局装置、264 制御局装置、272 アクセスポイント、274,282,284 ルータ装置、280 IP電話端末、290 PC、300 比較対象抽出回路、310 通信データ、320 比較対象データ、330 比較対象設定回路、340 報知回路、380 マスク回路、382 ワークメモリ、400 帯域制御回路、405 選択回路、410 登録部、420 クラス別管理回路、430 管理テーブル、440 通信データ登録RAM、450 データ取出回路、460 ユーザデータベース更新部、502 通信装置、504 通信装置、510 判定部、520 仮想通信装置、600 通信管理システム、610 ユーザ端末、620 ボット、622 ボットネット、632 正常シグネチャリスト、634 異常シグネチャリスト、636 ルールデータベース、640 運用者端末、642 警告取得部、644 通信データ取得部、646 解析部、648 判定結果取得部、652 正常シグネチャリスト更新部、654 異常シグネチャリスト更新部、656 ルールデータベース更新部、662 正常シグネチャリスト、664 異常シグネチャリスト、666 ルールデータベース、690 インターネット、900 試験装置、902 生成部、904 出力部、906 入力部、908 検査部、920 比較回路、922 判定回路、930 報知部、932 表示装置、934 スピーカ、940 ログ記録部、942 ログ保持部、950 保持部、952 更新部、954 差分生成部。

Claims (1)

  1. 複数のネットワークのそれぞれと接続するための複数のポートと、
    通信装置のIPアドレスと、前記通信装置へ送信する通信データを出力すべきポートとを対応づけて格納したデータベースと、
    取得した通信データの宛先の通信装置のIPアドレスを前記データベースから検索する検索回路と、
    前記通信データの宛先の通信装置のIPアドレスに対応づけられたポートから前記通信データを送出する処理実行回路と、
    通信データを送出すべき帯域のクラスごとに、前記通信データを送出するタイミングを管理する複数の管理回路と、
    送出すべき通信データと、前記通信データを送出すべき帯域のクラスの情報とを取得し、前記クラスの情報に応じて、前記複数の管理回路の中から前記通信データを供給すべき管理回路を選択し、選択した管理回路に前記通信データを供給する選択回路と、
    を備えることを特徴とするルータ装置。
JP2008024545A 2008-02-04 2008-02-04 ルータ装置 Pending JP2009188559A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008024545A JP2009188559A (ja) 2008-02-04 2008-02-04 ルータ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008024545A JP2009188559A (ja) 2008-02-04 2008-02-04 ルータ装置

Publications (1)

Publication Number Publication Date
JP2009188559A true JP2009188559A (ja) 2009-08-20

Family

ID=41071409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008024545A Pending JP2009188559A (ja) 2008-02-04 2008-02-04 ルータ装置

Country Status (1)

Country Link
JP (1) JP2009188559A (ja)

Similar Documents

Publication Publication Date Title
JP2009188576A (ja) 試験装置
JP2009188556A (ja) ルータ装置
JP2009188573A (ja) 経路情報管理装置
JP2009188554A (ja) ルータ装置
JP2009182720A (ja) 試験装置
JP2009182695A (ja) データベース検査装置
JP2009182702A (ja) 回路検査装置
JP2009182698A (ja) 回路検査装置
JP2009181230A (ja) ファイアウォール装置
JP2009159167A (ja) 試験装置
JP2009164663A (ja) 試験装置
JP2009188559A (ja) ルータ装置
JP2009188560A (ja) 試験装置
JP2009188558A (ja) ルータ装置
JP2009188557A (ja) ルータ装置
JP2009188553A (ja) ルータ装置
JP2009188555A (ja) ルータ装置
JP2009188575A (ja) 経路情報管理装置
JP2009188571A (ja) 経路情報管理装置
JP2009188574A (ja) 経路情報管理装置
JP2009188569A (ja) 経路情報管理装置
JP2009188572A (ja) 経路情報管理装置
JP2009188570A (ja) 経路情報管理装置
JP2009152986A (ja) 通信制御装置
JP2009182719A (ja) データ処理装置