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