(57)【特許請求の範囲】
【請求項１】
入力した通信パケットにおける予め設定された箇所のデータを抽出するパケット解析手段と、
該パケット解析手段が抽出したデータが、予め当該箇所に対応付けて記憶したデータと一致するか否かを探索し、一致すれば、予め当該データに対応付けて記憶した処理内容情報を出力するルール処理手段と、
該ルール処理手段が出力した処理内容情報に基づき、上記データに対応付けて記憶した処理内容情報の変更を含む処理を行う編集手段と
を有することを特徴とする通信パケット処理装置。
【請求項２】
請求項１に記載の通信パケット処理装置であって、
上記ルール処理手段は、上記通信パケットにおける設定箇所とデータとを対応付けて記憶し、上記パケット解析手段が抽出したデータとの一致探索結果を出力する連想メモリを有することを特徴とする通信パケット処理装置。
【請求項３】
請求項１もしくは請求項２のいずれかに記載の通信パケット処理装置の複数個と、プログラム言語の記述に基づき、上記複数の通信パケット処理装置の各手段で用いる上記通信パケット内の任意の箇所を特定する情報と当該箇所のデータおよび該データに対応付けて定められた処理内容情報を生成するルール設定手段とを有することを特徴とする通信パケット処理システム。
【請求項４】
プログラム言語の記述で指定された、通信パケット内の箇所を特定する情報と当該箇所のデータおよび該データに対応付けて定められた処理内容情報を生成するルール設定手段と、
該ルール設定手段が生成した上記通信パケット内の箇所を特定する情報を保持し、入力された通信パケットにおける当該箇所のデータを抽出するパケット解析手段と、
上記ルール設定手段が生成した上記通信パケット内の箇所を特定する情報と当該箇所に対応付けて定められたデータおよび該データに対応付けて定められた処理内容情報を記憶し、上記パケット解析手段が抽出したデータが当該箇所に対応付けて定められたデータとして記憶しているデータと一致するかを探索し、一致すれば、当該データに対応付けて定められた処理内容情報を出力するルール処理手段と、
該ルール処理手段が出力した処理内容情報に基づき、上記データに対応付けて定められた処理内容情報の変更を含む処理を行う編集手段と
を有することを特徴とする通信パケット処理システム。
【請求項５】
請求項４に記載の通信パケット処理システムであって、
上記ルール処理手段は、上記ルール設定手段が生成した上記通信パケットにおける設定箇所とデータとを対応付けて記憶し、上記パケット解析手段が抽出したデータとの一致探索結果を出力する連想メモリを有することを特徴とする通信パケット処理システム。
【請求項６】
入力した通信パケットにおける予め設定された箇所のデータを抽出するステップと、
該ステップで抽出したデータが、予め当該箇所に対応付けて記憶したデータと一致するか否かを探索するステップと、
一致すれば、予め当該データに対応付けて記憶した処理内容情報を出力するステップと、
該ステップで出力した処理内容情報に基づき、上記データに対応付けて記憶した処理内容情報の変更を含む処理を行うステップと
を有することを特徴とする通信パケット処理方法。
【請求項７】
コンピュータに、請求項６に記載の通信パケット処理方法における各ステップの処理を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネット（Ｉｎｔｅｒｎｅｔ）等のパケット通信網を流れる各パケットに対する処理を行う技術に係わり、特に、アドレス変更を含むパケットに対する種々の処理を効率的に行うのに好適な技術に関するものである。
【０００２】
【従来の技術】
インターネットに代表されるパケット通信網で転送されるパケットは、ヘッダとペイロードと呼ばれるフィールドからなり、例えば、通信相手のアドレスなど、中継ルータがその情報を用いて所望の相手に該当パケットを届けるための情報をヘッダに格納し、その後のペイロードに、通信相手に送りたいデータを格納して、送信端末から網内に送出される。
【０００３】
中継ルータは、パケットが到着するとヘッダ情報を読み、通信相手に該当パケットを転送すべく、適切な通信ポートからそのパケットを放出する。これを各中継ルータで繰り返すことにより、順にパケットが網内の中継ルータ間を転送され、最終的に所望の通信相手に該当パケットが到着することになる。
【０００４】
このとき、中継ルータは、ヘッダ情報を読むだけであり、届いたパケットそのものを書き換えることはなく、転送のみを行う。そのため、従来、中継ルータの転送処理性能を向上するための技術の要として、ヘッダ情報を高速に読み取る機能の高速化が主眼に研究開発され、市販の高速ルータでは、パケット構造を認識し、ヘッダから所望の情報を抜き出す専用ハードウェア回路を実装している。
【０００５】
しかし、近年、ＩＰアドレスの不足やセキュリティ確保の観点から、プライベート網内のアドレス体系を公衆網のそれと別にする機構が求められるようになった。
【０００６】
ＮＡＴ（Network  Address  Translation）は、その代表的なものであり、プライベート網と公衆網を接続する位置に置かれたルータ装置（ゲートウェイ装置）で、そこを出入りするパケットのＩＰアドレスを予め与えた対応表を参照することにより、相互変換し、プライベート網と公衆網で別のアドレス体系を持つことを可能とする。
【０００７】
このＮＡＴ機能を実現するには、前述したパケットヘッダの読み取りだけでなく、その動的な書き換えも行う必要が出てくる。この書き換え処理は、読み取り処理に比べ複雑であるため、多くのルータ装置では、それをソフトウェアで実現している。
【０００８】
そのため、ＮＡＴ機能を使用するとルータのパケット転送処理が、それを使用しない場合に比べ、極端に劣化することがあった。
【０００９】
さらに、ＷＥＢアクセスなどで特定のホームページや情報を持つサーバ装置にアクセスが集中する場合、それを回避するために負荷分散装置やネットワークキャッシュ装置が使用されている。
【００１０】
負荷分散装置は、アクセスの多い情報を複数のサーバ装置にコピーし、それら複数のサーバ装置にアクセスを分散させる機構（ミラー機構）を実現させるために、それら複数のサーバの入口に設置する装置である。
【００１１】
また、ネットワークキャッシュ装置は、一度自分自身を通過した情報を一時的に蓄え、つぎに同一の情報へのアクセスが他者からあった場合には、オリジナルのサーバ装置ではなく、その一時的に蓄えた情報をユーザに返すことを行う装置である。
【００１２】
これらの負荷分散装置やネットワークキャッシュ装置のいずれの装置においても、通信パケット内のヘッダ情報だけでなく、ペイロード部のデータをも必要に応じて書き換える必要が出てくる。例えば、Ｗｅｂコンテンツの配信を高速化するコンテンツデリバリーサービスシステム（Contents Delivery Service）では、ペイロードに格納されたＵＲＬ（Uniform Resource Locator）の書き換えを行う。
【００１３】
このような処理は、前述のＮＡＴ機能同様、非常に重い処理であり、それを実現するために高速なパケット書き換え機能が求められている。
【００１４】
このようなアドレス情報の書き換えを高速化する従来技術として、例えば、特開平１０−１１２７２８号公報や、特開平１１−７３７８２号公報などに記載のように、ネットワーク上でのデータの転送方路決定に連想メモリを用いる技術がある。
【００１５】
しかし、これらの従来技術では、パケット転送を高速化することはできても、例えば、パケットの任意の箇所におけるデータに基づき、ルータが保持しているルーティングテーブル（routing table）の登録内容を変更する等、アドレス情報の変換処理に限定されない種々の処理を実行することはできない。
【００１６】
【発明が解決しようとする課題】
解決しようとする問題点は、従来の技術では、パケットを、アドレス情報の変換処理に限定されない種々の処理の実行に用いることができない点である。
【００１７】
本発明の目的は、これら従来技術の課題を解決し、パケット通信網の利便性および性能を向上させることである。
【００１８】
【課題を解決するための手段】
上記目的を達成するため、本発明では、入力された通信パケット内のヘッダとペイロードを含む任意の箇所のデータに対して、該当箇所のデータと比較するべき値と、その値が該当データと一致したときに行う処理を対として規定したルールを複数個予め装置内に設定しておき、そのルールで規定した値と一致するデータが入力通信パケット内に存在すると、該当ルールに対応した処理、例えば、該当入力パケット内データの一部または全部を消去する処理、または、別のデータと書き換える処理、または、新たなデータを該当入力パケットの任意の位置に追加する処理、あるいは、ルール自体の書き換え処理などのパケットに対する以外の処理等を実行する。尚、該当箇所のデータと比較するべき値を規定するルールの記憶と、値の一致の探索に、連想メモリを用いて高速化を図る。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態を、図面により詳細に説明する。
【００２０】
図１は、本発明に係わる通信パケット処理装置および通信パケット処理システムの構成例を示すブロック図であり、図２は、図１におけるルール記述言語による記述例を示す説明図、図３は、図１におけるルール処理部の処理動作例を示す説明図、図４は、図１におけるルール記述言語による他の記述例を示す説明図、図５は、図１における通信パケット処理システムの処理動作例を示すフローチャートである。
【００２１】
図１において、１０１は本発明に係わる通信パケット処理装置（図中「ユニット＃１」と記載）であり、通信パケット処理装置１０１は、ルール処理部１０２、パケット解析部１０３、パケット編集部１０４、パケット転送部１０５を有し、例えば、インターネット等のパケット通信網におけるパケットの中継処理やパケットの編集処理等を行う。
【００２２】
このような構成の通信パケット処理装置１０１（ユニット＃１）は、例えば、ＣＰＵ（Central Processing Unit）や主メモリ、表示装置、入力装置、外部記憶装置からなるコンピュータシステムで構成し、駆動装置を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、各処理部の機能を実現することでも良いが、本例では、それぞれ論理回路からなる各処理部をプリント基板（ボード）上に設けたハードウェア構成とし、かつ複数のボード（ユニット＃１，＃２，…）を設けた構成とし、高速化を図っている。
【００２３】
このような構成の通信パケット処理装置１０１は、所定のルール記述言語での記述内容（ルール）に基づき、入力パケット１５０に対する処理を行うものであり、複数の通信パケット処理装置（ユニット＃１，＃２，…）のそれぞれは、同時に複数の入力パケット１５０を別々に処理する。
【００２４】
入力パケット１５０に対する処理を行うために、通信パケット処理装置１０１を構成するルール処理部１０２、パケット解析部１０３、パケット編集部１０４の各部に対しては、所定のルール記述言語で記述された内容に基づき、必要なルールのパラメータやデータが事前に設定される。
【００２５】
すなわち、通信パケット処理装置１０１を構成する各部に設定するルールのパラメータやデータは、例えば図２に例示するルール記述言語によって書かれ、ルールファイル（図中「ルール記述言語」と記載）１０７として生成され、ルール設定部１０６がそれをコンパイルして解釈し、各部に設定する。
【００２６】
ルール処理部１０２は、入力パケット１５０内のデータと比較するためのデータパターンを蓄積して探索・照合処理を行う部分（パターン処理部１４１）と、パターン処理部１４１において、データパターンに該当入力パケットのデータが一致したときに、入力パケット１５０に対する編集処理を行うパケット編集部１０４に渡すパラメータデータを蓄積して探索し出力する部分（パラメータ処理部１４２）からなる。
【００２７】
パケット解析部１０３は、入力パケット１５０から、実際にルール処理部１０２のパターン処理部１４１で登録済みの各パターンと比較するデータを抽出する。入力パケット１５０のどの箇所を具体的に抽出するかは、事前にルール設定部１０６からパケット解析部１０３にパラメータが設定される。
【００２８】
パケット解析部１０３で抽出されたデータは転送路１２１を通り、ルール処理部１０２に送られ、ルール処理部１０２のパターン処理部１４１において、事前にルールとして登録したデータと比較する。
【００２９】
尚、入力パケット１５０自体は、パケット解析部１０３からパケット編集部１０４へ転送路１２２を通り、そのまま転送される。
【００３０】
ルール処理部１０２では、パターン処理部１４１において、ルール設定部１０６により設定・登録済みのデータ内容とパケット解析部１０３からのデータを比較し、もし一致したデータがあれば、パラメータ処理部１４２を起動し、パラメータ処理部１４２は、ルール設定部１０６から予め設定・登録された当該データを抽出しパケット編集部１０４へ転送路１２３を通して送出する。
【００３１】
パケット編集部１０４は、パラメータ処理部１４２から送られてきたデータを用いて、ルール設定部１０６により予め設定されたパラメータに基づき、入力パケット１５０に対する編集処理を行う。
【００３２】
パケット編集部１０４で編集されたパケットは、転送路１２４を通り、パケット転送部１０５に送られ、パケット転送部１０５から経路１２６を通って、出力パケット１５１として外部または、別のユニット（通信パケット処理装置）へ転送される。
【００３３】
尚、入力パケット１５０が他のユニット（通信パケット処理装置）からのパケットであり、かつ、当ユニット（通信パケット処理装置）で編集を施さない場合は、経路１２５を通って、該当入力パケットは直接パケット転送部１０５へ送られ、そのまま出力パケット１５１として外部へ送出される。
【００３４】
このような通信パケット処理装置の動作を、図２に例示するルール記述内容に基づき説明する。
【００３５】
図２においては、２つの記述形態を示している。すなわち図２（ａ）に示す基本形式と、図２（ｂ）に示すニーモニック形式である。以下、図２（ａ）に示す基本形式の記述内容を用いて説明する。
【００３６】
図２（ａ）に示すルール記述例１０７ａにおける、行番号「１」の「ｕｎｉｔ＝１」とは、６行目までの記述が図１の通信パケット処理装置１０１のためのルールであることを示す。
【００３７】
また、行番号「２」は、以下の意味を表す。「もし、ＩＰヘッダ内の１７バイト目から１８バイト目（これは、宛先ＩＰアドレスの一部が格納されている場所）の値が「６３．１２１」（これはＩＰアドレスの表記法で、１バイトづつ１０進数で表記した４バイト、例えば「１２９．６３．１２１．１０」の内の中間の２バイトの値）であったならば、ＩＰヘッダ内の１３バイト目から１４バイト目（これは、送信元ＩＰアドレスの４バイトの一部が格納されている場所）を「６０．１０９」に変更して、ユニット番号２のユニットへ転送する」ことを表す。
【００３８】
３行目は、「もし、宛先ＩＰアドレスが「１０．１２７．１２４．４」であり、かつ、ＴＣＰヘッダ内の２バイト目から３バイト目の値（これはＴＣＰ宛先ポート番号が格納された場所）が１５１であったならば、送信元ＩＰアドレスを「１２９．６２．１２１．３」に変更して、ユニット番号（２）のユニットへ転送する。」ことを表す。
【００３９】
また、４行目は、「もし、送信元ＩＰアドレスの先頭からの３バイト部分が「１０．１２７．１２４」であったならば、そのパケットをどこにも転送しないで、破棄する。」ことを意味する。
【００４０】
さらに、５行目は、「ペイロード部の先頭から１０バイト目〜１２バイト目までの３バイトが文字列"ＡＢＣ"であったならば、それを"ＺＺＺ"に変更して、ユニット番号３のユニットへ転送する。」ことを指示している。
【００４１】
ここで、鍵括弧内で示された２つの整数値はそれぞれ該当するデータが格納された始まりと終わりの位置を、各ヘッダ（ＩＰまたはＴＣＰ）またはペイロードの始まりを「０」としたときの、相対値で表している。
【００４２】
また、各行のキーワード「ｔｏ」の左に記載された情報（これを以後、「ルール情報」と呼ぶ）が、パターン処理部１４１に格納される情報であり、それより右に記載された情報（これを以後、「パターン情報」と呼ぶ）が、パラメータ処理部１４２に格納されるべき値である。
【００４３】
このようにして、本例では、例えば２行目におけるＩＰアドレスの一部分（「１２９．６３．１２１．１０」の内の「６３．１２１」部分）のみといった、パケット内の任意のデータを指定することが可能である。
【００４４】
上述したように図２（ａ）の基本形式で、パケット内の任意のデータを指定することが可能であるが、記述性を向上するために、図２（ｂ）のニーモニック形式も使用できる。
【００４５】
すなわち、図２（ｂ）に示すルール記述例１０７ｂにおける、２行目から４行目までは、上述した図２（ａ）に示すルール記述例１０７ａにおける各行の内容と同一である。例えば、キーワード「ｄｉｐ（２：３）」、「ｓｉｐ（２：３）」は、それぞれ、宛先ＩＰアドレス（ｉｐ［１７：１８］、送信元ＩＰアドレス（ｉｐ［１３：１４］）の格納位置を示し、また、「ｔｃｐ−ｄｐｏｒｔ」は、ＴＣＰ宛先ポート番号（ＴＣＰ［２：３］）の格納位置を示している。
【００４６】
図２で示したルール記述（ルール記述例１０７ａ，１０７ｂ）は、図１におけるルール設定部１０６で解釈され、各ユニット（通信パケット処理装置１０１）のルール処理部１０２、パケット解析部１０３およびパケット編集部１０４にパラメータおよびデータとして設定される。
【００４７】
このようなルール設定部１０６によるルール記述に基づくルール処理部１０２、パケット解析部１０３およびパケット編集部１０４へのパラメータおよびデータの設定動作について図３を用いて説明する。
【００４８】
本図３におけるメモリマップ３００に示すように、図１のルール設定部１０６からは、全てのパラメータおよびデータは１つのメモリイメージに展開されてみえるようになっており、該当するアドレスに値を書き込むことにより設定がなされる。
【００４９】
本図３で示すように、本例の通信パケット処理装置１０１は、連想メモリ（図中ＣＡＭ：Content Addressable Memoryと記載）３１０とＳＲＡＭ（Static Random Access Memory）３２０を記憶装置として有し、それぞれは、図１のルール処理部１０２におけるパターン処理部１４１とパラメータ処理部１４２に対応している。
【００５０】
尚、連想メモリ（ＣＡＭ）３１０は、通常のメモリがアドレスを指定して、そこに格納されているデータを引き出すのとちょうど逆の機能があり、あるデータを入力すると、そのデータと格納している全てのデータを比較し、もし一致するデータがあれば、それが格納されているアドレスを出力する。これにより、ソフトウェアによるテーブル検索に比べ、格納しているデータ数によらず、一定の速度で、しかも非常に高速に全格納データと入力データの比較ができる。
【００５１】
この機能を利用し、比較したいデータを横一列に並べ１つエントリを構成する。本例のエントリ３１１は、宛先ＩＰアドレス（ｄｉｐ）、送信元ＩＰアドレス（ｓｉｐ）、レイヤ４のプロトコルタイプ（ｐｒｏｔｏ）、宛先ポート番号（ｄｐｏｒｔ）、送信元ポート番号（ｓｐｏｒｔ）からなる。
【００５２】
これらの値は、ルール記述言語３５０の各行のルール情報を元に設定される。尚、ルール記述にない項目は、「Ｘ（ｄｏｎ'ｔ  ｃａｒｅ）」を詰めて比較対象から除外する。
【００５３】
また、ＳＲＡＭ３２０には、連想メモリ３１０と同様に、必要なパラメータ群を並べて１つエントリ（３２１）を構成する。これらの値は、ルール記述言語３５０の各行のパターン情報を元に設定される。尚、ルール記述にない項目は、「０」を詰める。そして、図１のパケット編集部１０４は、パラメータとして「０」が来た場合、予め定めた処理（デフォルト処理）をするように構成しておく。
【００５４】
このようにＳＲＡＭ３２０に登録されたエントリデータ３２１は、連想メモリ（ＣＡＭ）３１０が一致したときに出力されるアドレスによって、ルールと対応付けられており、該当するパラメータ、例えば「ｓｉｐ」の「６０．１０９」が、図１のパケット編集部１０４へ転送路１２３を通じて送られる。
【００５５】
また、図１のパケット解析部１０３で入力パケット１５０のどの部分のデータを抽出すれば良いかは、パケット解析部用パラメータ３３０に情報として格納される。すなわち、抽出する各部の始まり（ｓｔａｒｔ「１７」）と終わり（ｅｎｄ「１８」）が一組の情報３３１としてパケット解析部用パラメータ３３０に蓄積される。
【００５６】
図１のパケット解析部１０３は、パケット解析部用パラメータ３３０に蓄積された情報３３１を参照しながら、必要なデータを入力パケット１５０から抽出し、それを連続した１つのデータとして整形して、ルール処理部１０２のパターン処理部１４１へ送ることになる。
【００５７】
同様に、図１のパケット編集部１０４が、入力パケット１５０のどの部分のデータをパラメータ処理部１４２から送られたパラメータで置き換えるかを知るために、パケット編集部用パラメータ３４０に情報を格納する。格納形式は情報３４１として示すように、パケット解析部用パラメータ３３０に蓄積する情報３３１と同様に、データの始まり（「ｓｔａｒｔ」）と終わり（「ｅｎｄ」）を一組の情報とした形になっている。
【００５８】
図１のパケット編集部１０４は、このパケット編集部用パラメータ３４０に格納された情報を参照しながら、入力パケット１５０内データの編集を行う。
【００５９】
以上の例では、入力パケットの宛先ＩＰアドレスの一部分の情報のマッチングに基づき、送信元ＩＰアドレスの一部分を変更する処理例を説明したが、図４に示すルール記述例１０７ｃ，１０７ｄのように、入力パケットの宛先ＩＰアドレスの全てを対象とした情報のマッチングに基づき、送信元ＩＰアドレスの全てを変更する処理を行うこともできる。
【００６０】
すなわち、図４（ａ）に示す基本形式および図４（ｂ）に示すニーモニック形式での記述のように、「ｕｎｉｔ＝１」に対するルールとして、行番号「２」において、「もし、ＩＰヘッダ内の１６バイト目から１９バイト目（宛先ＩＰアドレスが格納されている場所）の値が「１２９．６３．１２１．１０」）であったならば、ＩＰヘッダ内の１２バイト目から１５バイト目（これは、送信元ＩＰアドレスが格納されている場所）を「１２９．６０．１０９．１０」に変更して、ユニット番号２のユニットへ転送する」とし、また、「４」行目において、「もし、送信元ＩＰアドレスが「１０．１２７．１２４．１０」であったならば、そのパケットをどこにも転送しないで、破棄する。」として、入力パケットに対する編集を行うようにすることもできる。
【００６１】
次に、図５に基づき、図１における通信パケット処理システムの処理動作例を説明する。
【００６２】
まず、ルール設定部１０６において、ルール記述言語で記述されたルールファイル１０７をコンパイルして設定用の情報を読み取り（ステップ５０１）、ルール処理部１０２、パケット解析部１０３、パケット編集部１０４へのデータ・パラメータの設定を行う（ステップ５０２）。
【００６３】
通信パケットの入力があれば（ステップ５０３）、パケット解析部１０３において、ルール設定部１０６で設定された通信パケットにおける所定箇所のデータを抽出しルール処理部１０２に渡す（ステップ５０４）。
【００６４】
ルール処理部１０２は、パターン処理部１４１において、連想メモリにより、パケット解析部１０３から渡されたデータとルール設定部１０６での設定動作に基づき蓄積した当該箇所のデータとの照合を行い、一致するデータの探索を行う（ステップ５０５）。
【００６５】
そして、一致するデータに対応するアドレスでパラメータ処理部１４２において蓄積された情報（実行させる処理内容）を、パケット編集部１０４に渡し、当該処理を実行させる（ステップ５０７）。
【００６６】
このパケット編集部１０４で実行する処理として、本例では、入力パケット１５０を直接編集することに関して説明したが、パケット編集部１０４において、このようなパケット編集とは別の処理を行わせることも可能である。
【００６７】
例えば、パターン処理部１４１で設定・蓄積した同一のエントリにマッチした入力パケットの数を累算するレジスタを、パケット編集部１０４内に設け、一定時間ごとにその値を外部に出力する処理を実行することにより、本例の通信パケット処理システムに、同種のパケットが単位時間あたりどの程到着したかという、いわゆるスループットを、外部のコンピュータ装置等において計算することができる。
【００６８】
また、ルール設定部１０６と同様に、パケット編集部１０４から、図３に示すメモリマップ３００が見えるようにすると、あるパケットの編集を契機に、ルール処理部１０２のパターン処理部１４１とパラメータ処理部１４２のそれぞれで蓄積管理する各ルールやパラメータの値を動的に変更可能となる。
【００６９】
これによって、例えば、あるパケットが到着した以降は、同一のパケットが来ても別の編集を行うようにすることができる。一例として、ルール処理部１０２で蓄積管理するルールを書き換える処理を予めルールとして定義しておき、そのようなルールパターンを含むパケットを入力したとき、当該ルールの書き換えを行うことができる。
【００７０】
以上、図１〜図５を用いて説明したように、本例では、通信パケット処理装置１０１に、入力した通信パケット（入力パケット１５０）における全フィールドを対象に予め１以上設定された箇所のデータを抽出するパケット解析部１０３と、このパケット解析部１０３が抽出したデータが、予め当該箇所に対応付けて記憶したデータと一致するか否かを探索し、一致すれば、予め当該データに対応付けて記憶した処理内容情報を出力するルール処理部１０２と、このルール処理部１０２が出力した処理内容情報に基づく処理を行う編集部（１０４）とを設け、この通信パケット処理装置１０１に対して、ルール設定部１０６により、プログラム言語の記述で指定された、通信パケット内の任意の箇所を特定する情報や当該箇所のデータおよびこのデータに対応付けて定められた処理内容情報を設定する構成とする。
【００７１】
このことにより、パケットの任意の箇所におけるデータに基づき、例えばルータが保持しているルーティングテーブルの登録内容を変更する等、アドレス情報の変換処理に限定されない種々の処理を実行することはできる。
【００７２】
なお、本発明は、図１〜図５を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、上述したように、本例では、通信パケット処理装置１０１は、それぞれ論理回路からなる各処理部をプリント基板上に設けたハードウェア構成としているが、通信パケット処理装置１０１を、ＣＰＵや主メモリ、表示装置、入力装置、外部記憶装置からなるコンピュータシステムで構成し、各処理部をソフトウェアで構成することでも良いし、さらに、通信パケット処理装置１０１を１チップ化した構成とすることでも良い。
【００７３】
尚、通信パケット処理装置１０１をコンピュータシステムで構成する際には、プログラムの記録媒体として、ＦＤ（Flexible Disk）等を用いることでも良いし、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【００７４】
【発明の効果】
本発明によれば、入力パケット内の任意のデータを高速かつ容易に編集し外部に送出する機能を実現でき、また、編集する内容を簡便な記述言語によって指定することができ、さらに、パケットを、パケット自体に対する処理に限定されない種々の処理の実行に用いることができ、パケット通信網の利便性および性能を向上させることが可能である。
【図面の簡単な説明】
【図１】本発明に係わる通信パケット処理装置および通信パケット処理システムの構成例を示すブロック図である。
【図２】図１におけるルール記述言語による記述例を示す説明図である。
【図３】図１におけるルール処理部の処理動作例を示す説明図である。
【図４】図１におけるルール記述言語による他の記述例を示す説明図である。
【図５】図１における通信パケット処理システムの処理動作例を示すフローチャートである。
【符号の説明】
１０１：通信パケット処理装置（「ユニット＃１」）、１０２：ルール処理部、１０３：パケット解析部、１０４：パケット編集部、１０５：パケット転送部、１０６：ルール設定部、１０７：ルールファイル（「ルール記述言語」）、１０７ａ〜１０７ｄ：ルール記述例、１２０〜１２６：経路、１４１：パターン処理部、１４２：パラメータ処理部、１５０：入力パケット、１５１：出力パケット、３００：メモリマップ、３１０：連想メモリ（「ＣＡＭ」）、３１１：エントリ、３２０：ＳＲＡＭ、３２１：エントリデータ、３３０：パケット解析部用パラメータ、３３１：情報、３４０：パケット編集部用パラメータ、３４１：情報、３５０：ルール記述言語。
【図１】
0003922541.tif 000002
【図２】
0003922541.tif 000003
【図３】
0003922541.tif 000004
【図４】
0003922541.tif 000005
【図５】
0003922541.tif 000006