|
【発明の名称】 |
通信処理回路及び通信処理方法 |
【発明者】 |
【氏名】川合 健治 【氏名】西田 享邦 【氏名】小池 恵一 【氏名】大山 勝一 【氏名】林 徹夫 【氏名】有本 貴典 |
【課題】フラグメント処理が行われたパケットであっても、元のデータを再構築することなく個々のパケットにおいてフィルタ処理や分類処理を可能とする通信処理回路を提供する。
【解決手段】通信処理回路において、登録管理部55は、受信するIPパケットがフラグメントIPパケットであって先頭であるとき、フラグメントIPパケットにおける共通の情報となるパケット識別情報を先頭のフラグメントIPパケットから抽出し、抽出したパケット識別情報とフラグメントIPパケットを分類することにより得られる処理情報とを対応付けて追跡検索情報としてフラグメント追跡検索テーブル53に記録する。検出部51は、受信するIPパケットが先頭以外のフラグメントIPパケットの場合、当該IPパケットから前記パケット識別情報を抽出し、抽出したパケット識別情報に対応する処理情報を追跡検索記憶手段から検出し、検出した処理情報に基づいて処理を行わせる。 |
【特許請求の範囲】
【請求項1】 ネットワークに接続され、パケットを受信する接続部を備え、前記接続部が受信するパケットを、前記パケットに含まれる情報に基づいて分類することにより得られる処理情報に基づいて転送などの所定の処理を前記パケットに対して行う通信処理回路であって、 前記接続部が受信するパケットが1つのデータから分割される分割データを含むパケットであって前記分割データが先頭の分割データであるとき、前記分割データを含むパケットにおける共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と前記先頭の分割データを含むパケットを分類することにより得られる前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する記録手段と、 前記接続部が受信するパケットが前記分割データを含み当該分割データが前記先頭の分割データでない場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出する検出手段と、 前記先頭の分割データを含むパケットに分類により得られる前記処理情報に基づいて前記所定の処理を行い、前記先頭でない分割データを含むパケットに前記検出手段が検出する前記処理情報に基づいて前記所定の処理を行うパケット処理手段と、 を備えることを特徴とする通信処理回路。 【請求項2】 ネットワークに接続され、パケットを受信する接続部を備え、前記パケットを前記パケットに含まれる情報に基づいて分類するための検索条件情報と、前記パケットに対して転送などの所定の処理を行うことを示した処理情報とを対応付けた分類検索情報を有する通信処理回路であって、 前記接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、前記パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定する第1の判定手段と、 前記第1の判定手段が前記パケットが前記分割データを含まないと判定した場合、あるいは、前記第1の判定手段が前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記分類検索情報から検索することにより前記先頭の分割データを含むパケットに含まれる情報に対応する処理情報を検出する第1の検出手段と、 前記第1の判定手段が前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と前記第1の検出手段が検出する前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する記録手段と、 前記第1の判定手段が前記パケットが前記分割データを含むと判定し、さらに、当該分割データが前記先頭の分割データでないと判定した場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出する第2の検出手段と、 前記第1の検出手段が検出する前記処理情報、あるいは前記第2の検出手段が検出する前記処理情報に基づいて前記パケットに前記所定の処理を行うパケット処理手段と、 を備えることを特徴とする通信処理回路。 【請求項3】 ネットワークに接続され、パケットを受信する接続部を備え、前記パケットを前記パケットに含まれる情報に基づいて分類するための検索条件情報と、前記パケットに対して転送などの所定の処理を行うことを示した処理情報とを対応付けた分類検索情報を有する通信処理回路であって、 前記分類検索情報から検索することにより前記接続部が受信するパケットに含まれる情報に対応する処理情報を検出する第1の検出手段と、 前記接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、前記パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定する第2の判定手段と、 前記第2の判定手段が前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と前記第1の検出手段が検出する前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する記録手段と、 前記第2の判定手段が前記パケットが前記分割データを含むと判定し、さらに、当該分割データが前記先頭の分割データでないと判定した場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出する第2の検出手段と、 前記第1の検出手段が検出する前記処理情報、あるいは前記第2の検出手段が検出する前記処理情報に基づいて前記パケットに前記所定の処理を行うパケット処理手段と、 を備えることを特徴とする通信処理回路。 【請求項4】 前記分類検索情報は、前記検索条件情報と前記処理情報とに加えて前記追跡検索記憶手段への記録を行うか否かを示すフラグを有しており、 前記第1の検出手段は、 前記分類検索情報を検索することにより前記処理情報を検出する際に前記処理情報に対応するフラグを検出し、 前記記録手段は、 前記分割データが前記先頭の分割データである場合、前記第1の検出手段が検出する前記フラグが前記追跡検索記憶手段への記録を行うことを示しているか否かを判定し、前記フラグが前記記憶手段への記録を行うことを示している場合、前記追跡検索情報を追跡検索記憶手段に記録する ことを特徴とする請求項2または3に記載の通信処理回路。 【請求項5】 前記追跡検索記憶手段は、予め記憶できる前記追跡検索情報の項目数が定められており、 前記記録手段が前記追跡検索情報を前記追跡検索記憶手段に記録する際、当該追跡検索情報が記録されてからの経過時間を前記追跡検索記憶手段の項目ごとに計測する複数の第1のタイマを備え、 前記記録手段は、 新たな追跡検索情報を前記追跡検索記憶手段に記録する際に、前記追跡検索記憶手段に空き領域が存在しないことを検出した場合、前記複数の第1のタイマを参照し、前記経過時間の中から、予め定められる閾値時間を超えており、かつ最大である前記経過時間の前記第1のタイマを検出し、検出した前記第1のタイマに対応する前記追跡検索記憶手段の項目に記憶されている追跡検索情報を削除し、前記新たな追跡検索情報を前記追跡検索記憶手段の当該項目に記録する ことを特徴とする請求項2から4のいずれか1つに記載の通信処理回路。 【請求項6】 前記第1のタイマには最大計測時間が予め定められており、 前記第1のタイマは、経過時間が前記最大計測時間を超えた場合に、満了通知を前記記録手段に通知し、 前記記録手段は、 前記第1のタイマから満了通知を受信したとき、前記満了通知を通知した前記第1のタイマに対応する前記追跡検索記憶手段の項目を削除することを特徴とする請求項5に記載の通信処理回路。 【請求項7】 前記追跡検索記憶手段は、予め記憶できる前記追跡検索情報の項目数が定められており、 予め定められる削除されるまでの残時間を設定されており、起動されてからの経過時間が、前記残時間を超えた場合に満了通知を通知し、前記追跡検索記憶手段の項目に対応付けて設けられる複数の第2のタイマと、 前記分割データを含むパケットが最後尾の分割データを含むパケットであるか否かを判定する第3の判定手段と、 前記第3の判定手段が前記パケットが最後尾の分割データを含むと判定した場合、当該パケットのパケット識別情報に対応する追跡検索情報を前記追跡検索記憶手段から検出し、検出した追跡検索情報に対応する前記第2のタイマを起動し、前記第2のタイマから前記満了通知が通知された場合、前記満了通知を通知した前記第2のタイマに対応する追跡検索記憶手段の項目削除する削除手段と、 を備えたことを特徴とする請求項2から6のいずれか1つに記載の通信処理回路。 【請求項8】 ネットワークに接続され、パケットを受信する接続部を備え、前記接続部が受信するパケットを、前記パケットに含まれる情報に基づいて分類することにより得られる処理情報に基づいて転送などの所定の処理を前記パケットに対して行う通信処理回路における通信処理方法であって、 前記接続部が受信するパケットが1つのデータから分割される分割データを含むパケットであって前記分割データが先頭の分割データであるとき、前記分割データを含むパケットにおける共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と前記先頭の分割データを含むパケットを分類することにより得られる前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録するステップと、 前記接続部が受信するパケットが前記分割データを含み当該分割データが前記先頭の分割データでない場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出するステップと、 前記先頭の分割データを含むパケットに分類により得られる前記処理情報に基づいて前記所定の処理を行い、前記先頭でない分割データを含むパケットに前記検出手段が検出する前記処理情報に基づいて前記所定の処理を行うステップと、 を含むことを特徴とする通信処理方法。 【請求項9】 ネットワークに接続され、パケットを受信する接続部を備え、前記パケットを前記パケットに含まれる情報に基づいて分類するための検索条件情報と、前記パケットに対して転送などの所定の処理を行うことを示した処理情報とを対応付けた分類検索情報を有する通信処理回路における通信処理方法であって、 前記接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、前記パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定するステップと、 前記パケットが前記分割データを含まないと判定した場合、あるいは、前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記分類検索情報から検索することにより前記先頭の分割データを含むパケットに含まれる情報に対応する処理情報を検出するステップと、 前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と検出した前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録するステップと、 前記パケットが前記分割データを含むと判定し、さらに、当該分割データが前記先頭の分割データでないと判定した場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出するステップと、 検出する前記処理情報に基づいて前記パケットに前記所定の処理を行うステップと、 を含むことを特徴とする通信処理方法。 【請求項10】 ネットワークに接続され、パケットを受信する接続部を備え、前記パケットを前記パケットに含まれる情報に基づいて分類するための検索条件情報と、前記パケットに対して転送などの所定の処理を行うことを示した処理情報とを対応付けた分類検索情報を有する通信処理回路における通信処理方法であって、 前記分類検索情報から検索することにより前記接続部が受信するパケットに含まれる情報に対応する処理情報を検出するステップと、 前記接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、前記パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定するステップと、 前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と検出した前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録するステップと、 前記パケットが前記分割データを含むと判定し、さらに、当該分割データが前記先頭の分割データでないと判定した場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出するステップと、 検出する前記処理情報に基づいて前記パケットに前記所定の処理を行うステップと、 を含むことを特徴とする通信処理方法。
|
【発明の詳細な説明】【技術分野】 【0001】 本発明は、分割されるデータを含むパケットに対して通信処理を行う通信処理回路及び通信処理方法に関する。 【背景技術】 【0002】 従来、IP(Internet Protocol)パケットに含まれるヘッダ情報等に基づいて、フィルタ処理や分類処理を行う場合は、IPヘッダに含まれる各種情報だけではなく、上位プロトコルであるTCP(Transmission Control Protocol)あるいはUDP(User Datagram Protocol)のヘッダに含まれる情報を参照する必要がある。通常のIPパケットでは、IPヘッダに続いてTCPあるいはUDPヘッダが存在するため、IPパケットを受信することでTCPあるいはUDPヘッダを読み出すことが可能である。 【0003】 しかし、フラグメント処理、すなわちIP層でのデータの分割が行われると、分割されたデータを含むフラグメントIPパケットは、IPヘッダに続いてTCPあるいはUDPヘッダが存在する先頭の分割データを含むフラグメントIPパケットと、TCPあるいはUDPヘッダが存在しない1つ以上の先頭以外の分割データを含むフラグメントIPパケットによって構成されることになる。 【0004】 このとき、TCPあるいはUDPヘッダを参照してフィルタ処理や分類処理を行う場合、先頭以外の分割データを含むフラグメントIPパケットについては処理を行うことができないため、フラグメント処理前に1つのデータを構成していたフラグメントIPパケットを蓄積し、蓄積したフラグメントIPパケットからデータの再構成を行った後にTCPあるいはUDPヘッダを参照して処理を行うという手段が採用されている(例えば、非特許文献1参照)。 【0005】 データの再構成を行うためには、1つのデータを構成していた複数のフラグメントIPパケットの追跡を行わなければならず、当該追跡処理は通信処理装置のCPU(Central Processing Unit)において動作するソフトウェアにより処理が行われる。 【非特許文献1】アイティメディア株式会社、“IPフラグメンテーション”、[online]、[平成17年7月5日]、インターネット<URL: http://www.atmarkit.co.jp/fwin2k/network/baswinlan010/baswinlan010_03.html> 【発明の開示】 【発明が解決しようとする課題】 【0006】 しかしながら、近年、インタフェースの速度が高速化するに伴って、フィルタ処理や分類処理の処理速度も高速化が要求されており、CPUにおいて動作するソフトウェアによる処理では、充分な速度を達成することができないという問題がある。 【0007】 また、充分な速度を達成できないことから、特に短いパケット長の攻撃を目的とするパケットが多数送信された場合、充分なフィルタ処理や分類処理が実施できず、本来受信すべきパケットを受信することができないという問題も発生していた。 【0008】 本発明は、上記問題を解決するためになされたもので、その目的は、フラグメント処理が行われたパケットであっても、元のデータを再構築することなく個々のパケットにおいてフィルタ処理や分類処理を可能とする通信処理回路及び通信処理方法を提供することにある。 【課題を解決するための手段】 【0009】 上述した課題を解決するために、本発明は、ネットワークに接続され、パケットを受信する接続部を備え、前記接続部が受信するパケットを、前記パケットに含まれる情報に基づいて分類することにより得られる処理情報に基づいて転送などの所定の処理を前記パケットに対して行う通信処理回路であって、前記接続部が受信するパケットが1つのデータから分割される分割データを含むパケットであって前記分割データが先頭の分割データであるとき、前記分割データを含むパケットにおける共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と前記先頭の分割データを含むパケットを分類することにより得られる前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する記録手段と、前記接続部が受信するパケットが前記分割データを含み当該分割データが前記先頭の分割データでない場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出する検出手段と、前記先頭の分割データを含むパケットに分類により得られる前記処理情報に基づいて前記所定の処理を行い、前記先頭でない分割データを含むパケットに前記検出手段が検出する前記処理情報に基づいて前記所定の処理を行うパケット処理手段と、を備えることを特徴とする通信処理回路である。 【0010】 本発明は、ネットワークに接続され、パケットを受信する接続部を備え、前記パケットを前記パケットに含まれる情報に基づいて分類するための検索条件情報と、前記パケットに対して転送などの所定の処理を行うことを示した処理情報とを対応付けた分類検索情報を有する通信処理回路であって、前記接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、前記パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定する第1の判定手段と、前記第1の判定手段が前記パケットが前記分割データを含まないと判定した場合、あるいは、前記第1の判定手段が前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記分類検索情報から検索することにより前記先頭の分割データを含むパケットに含まれる情報に対応する処理情報を検出する第1の検出手段と、前記第1の判定手段が前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と前記第1の検出手段が検出する前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する記録手段と、前記第1の判定手段が前記パケットが前記分割データを含むと判定し、さらに、当該分割データが前記先頭の分割データでないと判定した場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出する第2の検出手段と、前記第1の検出手段が検出する前記処理情報、あるいは前記第2の検出手段が検出する前記処理情報に基づいて前記パケットに前記所定の処理を行うパケット処理手段と、を備えることを特徴とする通信処理回路である。 【0011】 本発明は、ネットワークに接続され、パケットを受信する接続部を備え、前記パケットを前記パケットに含まれる情報に基づいて分類するための検索条件情報と、前記パケットに対して転送などの所定の処理を行うことを示した処理情報とを対応付けた分類検索情報を有する通信処理回路であって、前記分類検索情報から検索することにより前記接続部が受信するパケットに含まれる情報に対応する処理情報を検出する第1の検出手段と、前記接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、前記パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定する第2の判定手段と、前記第2の判定手段が前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と前記第1の検出手段が検出する前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する記録手段と、前記第2の判定手段が前記パケットが前記分割データを含むと判定し、さらに、当該分割データが前記先頭の分割データでないと判定した場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出する第2の検出手段と、前記第1の検出手段が検出する前記処理情報、あるいは前記第2の検出手段が検出する前記処理情報に基づいて前記パケットに前記所定の処理を行うパケット処理手段と、を備えることを特徴とする通信処理回路である。 【0012】 本発明は、上記に記載の発明において、前記分類検索情報は、前記検索条件情報と前記処理情報とに加えて前記追跡検索記憶手段への記録を行うか否かを示すフラグを有しており、前記第1の検出手段は、前記分類検索情報を検索することにより前記処理情報を検出する際に前記処理情報に対応するフラグを検出し、前記記録手段は、前記分割データが前記先頭の分割データである場合、前記第1の検出手段が検出する前記フラグが前記追跡検索記憶手段への記録を行うことを示しているか否かを判定し、前記フラグが前記記憶手段への記録を行うことを示している場合、前記追跡検索情報を追跡検索記憶手段に記録することを特徴とする。 【0013】 本発明は、上記に記載の発明において、前記追跡検索記憶手段は、予め記憶できる前記追跡検索情報の項目数が定められており、前記記録手段が前記追跡検索情報を前記追跡検索記憶手段に記録する際、当該追跡検索情報が記録されてからの経過時間を前記追跡検索記憶手段の項目ごとに計測する複数の第1のタイマを備え、前記記録手段は、新たな追跡検索情報を前記追跡検索記憶手段に記録する際に、前記追跡検索記憶手段に空き領域が存在しないことを検出した場合、前記複数の第1のタイマを参照し、前記経過時間の中から、予め定められる閾値時間を超えており、かつ最大である前記経過時間の前記第1のタイマを検出し、検出した前記第1のタイマに対応する前記追跡検索記憶手段の項目に記憶されている追跡検索情報を削除し、前記新たな追跡検索情報を前記追跡検索記憶手段の当該項目に記録することを特徴とする。 【0014】 本発明は、上記に記載の発明において、前記第1のタイマには最大計測時間が予め定められており、前記第1のタイマは、経過時間が前記最大計測時間を超えた場合に、満了通知を前記記録手段に通知し、前記記録手段は、前記第1のタイマから満了通知を受信したとき、前記満了通知を通知した前記第1のタイマに対応する前記追跡検索記憶手段の項目を削除することを特徴とする。 【0015】 本発明は、前記追跡検索記憶手段は、予め記憶できる前記追跡検索情報の項目数が定められており、予め定められる削除されるまでの残時間を設定されており、起動されてからの経過時間が、前記残時間を超えた場合に満了通知を通知し、前記追跡検索記憶手段の項目に対応付けて設けられる複数の第2のタイマと、前記分割データを含むパケットが最後尾の分割データを含むパケットであるか否かを判定する第3の判定手段と、前記第3の判定手段が前記パケットが最後尾の分割データを含むと判定した場合、当該パケットのパケット識別情報に対応する追跡検索情報を前記追跡検索記憶手段から検出し、検出した追跡検索情報に対応する前記第2のタイマを起動し、前記第2のタイマから前記満了通知が通知された場合、前記満了通知を通知した前記第2のタイマに対応する追跡検索記憶手段の項目削除する削除手段と、を備えたことを特徴とする。 【0016】 本発明は、ネットワークに接続され、パケットを受信する接続部を備え、前記接続部が受信するパケットを、前記パケットに含まれる情報に基づいて分類することにより得られる処理情報に基づいて転送などの所定の処理を前記パケットに対して行う通信処理回路における通信処理方法であって、前記接続部が受信するパケットが1つのデータから分割される分割データを含むパケットであって前記分割データが先頭の分割データであるとき、前記分割データを含むパケットにおける共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と前記先頭の分割データを含むパケットを分類することにより得られる前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録するステップと、前記接続部が受信するパケットが前記分割データを含み当該分割データが前記先頭の分割データでない場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出するステップと、前記先頭の分割データを含むパケットに分類により得られる前記処理情報に基づいて前記所定の処理を行い、前記先頭でない分割データを含むパケットに前記検出手段が検出する前記処理情報に基づいて前記所定の処理を行うステップと、を含むことを特徴とする通信処理方法である。 【0017】 本発明は、ネットワークに接続され、パケットを受信する接続部を備え、前記パケットを前記パケットに含まれる情報に基づいて分類するための検索条件情報と、前記パケットに対して転送などの所定の処理を行うことを示した処理情報とを対応付けた分類検索情報を有する通信処理回路における通信処理方法であって、前記接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、前記パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定するステップと、前記パケットが前記分割データを含まないと判定した場合、あるいは、前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記分類検索情報から検索することにより前記先頭の分割データを含むパケットに含まれる情報に対応する処理情報を検出するステップと、前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と検出した前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録するステップと、前記パケットが前記分割データを含むと判定し、さらに、当該分割データが前記先頭の分割データでないと判定した場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出するステップと、検出する前記処理情報に基づいて前記パケットに前記所定の処理を行うステップと、を含むことを特徴とする通信処理方法である。 【0018】 本発明は、ネットワークに接続され、パケットを受信する接続部を備え、前記パケットを前記パケットに含まれる情報に基づいて分類するための検索条件情報と、前記パケットに対して転送などの所定の処理を行うことを示した処理情報とを対応付けた分類検索情報を有する通信処理回路における通信処理方法であって、前記分類検索情報から検索することにより前記接続部が受信するパケットに含まれる情報に対応する処理情報を検出するステップと、前記接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、前記パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定するステップと、前記パケットが前記分割データを含むと判定し、かつ当該分割データが前記先頭の分割データであると判定した場合、前記1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と検出した前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録するステップと、前記パケットが前記分割データを含むと判定し、さらに、当該分割データが前記先頭の分割データでないと判定した場合、当該パケットから前記パケット識別情報を抽出し、抽出した前記パケット識別情報に対応する前記処理情報を前記追跡検索記憶手段から検出するステップと、検出する前記処理情報に基づいて前記パケットに前記所定の処理を行うステップと、を含むことを特徴とする通信処理方法である。 【発明の効果】 【0019】 この発明によれば、通信処理回路は、接続部が受信するパケットが1つのデータから分割される分割データを含むパケットであって分割データが先頭の分割データであるとき、分割データを含むパケットにおける共通の情報となるパケット識別情報を先頭の分割データを含むパケットから抽出し、抽出したパケット識別情報と先頭の分割データを含むパケットを分類することにより得られる前記処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する。また、接続部が受信するパケットが分割データを含み当該分割データが先頭の分割データでない場合、当該パケットからパケット識別情報を抽出し、抽出したパケット識別情報に対応する処理情報を追跡検索記憶手段から検出する構成とした。これにより、非先頭の分割データを含むパケットであっても、元のデータを再構築することなく個々のパケットにおいて所定の処理を可能にすることができる。また、この構成により、分割データを含むパケットであってもCPUを介さずに処理を行うことができることからインタフェース速度に追随し得る充分な処理速度を達成することができ、短いパケット長の攻撃を目的とするパケットが多数送信された場合、充分な分類処理を実行することが可能となる。 【0020】 また、この発明によれば、通信処理回路は、接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、パケットが分割データを含むと判定した場合、分割データが先頭の分割データであるか否かを判定する。また、パケットが分割データを含まないと判定した場合、あるいは、パケットが分割データを含むと判定し、かつ当該分割データが先頭の分割データであると判定した場合、分類検索情報から検索することにより先頭の分割データを含むパケットに含まれる情報に対応する処理情報を検出する。また、パケットが分割データを含むと判定し、かつ当該分割データが先頭の分割データであると判定した場合、1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出したパケット識別情報と検出した処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する。また、パケットが前記分割データを含むと判定し、さらに、当該分割データが先頭の分割データでないと判定した場合、当該パケットからパケット識別情報を抽出し、抽出したパケット識別情報に対応する処理情報を追跡検索記憶手段から検出する構成とした。これにより、先頭の分割データを含むパケットについては、フラグメント処理が行われていないパケットと同様に分類検索の処理が行われる。その際に、先頭の分割データを含むパケットに対応して検索された処理情報を、同じデータから分割された先頭以外の分割データを含むパケットを特定するパケット識別情報とともに追跡検索記憶手段に記録しておく。それによって、先頭以外の分割データを含むパケットを受信した場合に、データを再構築することなく先頭の分割データを含むパケットに対して行った処理と同じ処理を先頭以外の分割データを含むパケットに対して適用することが可能となる。 【0021】 また、この発明によれば、通信処理回路は、分類検索情報から検索することにより接続部が受信するパケットに含まれる情報に対応する処理情報を検出する。また、接続部が受信するパケットが1つのデータから分割される分割データを含むか否かを判定し、パケットが分割データを含むと判定した場合、前記分割データが先頭の分割データであるか否かを判定する。また、パケットが分割データを含むと判定し、かつ当該分割データが先頭の分割データであると判定した場合、1つのデータを構成する分割データを含むパケットについて共通の情報となるパケット識別情報を前記先頭の分割データを含むパケットから抽出し、抽出した前記パケット識別情報と検出した処理情報とを対応付けて追跡検索情報として追跡検索記憶手段に記録する。また、パケットが分割データを含むと判定し、さらに、当該分割データが先頭の分割データでないと判定した場合、当該パケットからパケット識別情報を抽出し、抽出したパケット識別情報に対応する処理情報を追跡検索記憶手段から検出する構成とした。これにより、受信する全てのパケットに対して分類検索の処理を行った後に、受信したIPパケットが先頭の分割データを含むパケットの場合、先頭の分割データを含むパケットに基づいて検索された処理情報を、同じデータから分割された先頭以外の分割データを含むパケットを特定するパケット識別情報とともに追跡検索記憶手段に記録することができる。それによって、先頭以外の分割データを含むパケットについては、追跡検索記憶手段から処理情報を検出できる場合には、当該検出した処理情報を適用し、検出できない場合には、分類検索によって検出された処理情報を適用することができ、先頭の分割データを含むパケットに基づいて追跡検索記憶手段に記録されるまでの間に、先頭以外の分割データを含むパケットを受信した場合であっても、待機させずに処理を継続することができる。 【0022】 また、この発明によれば、分類検索情報は、検索条件情報と処理情報とに加えて追跡検索記憶手段への記録を行うか否かを示すフラグを有しており、分類検索情報を検索することにより前記処理情報を検出する際に前記処理情報に対応するフラグを検出し、分割データが先頭の分割データである場合、検出したフラグが追跡検索記憶手段への記録を行うことを示しているか否かを判定し、フラグが記憶手段への記録を行うことを示している場合、追跡検索情報を追跡検索記憶手段に記録する構成とした。これにより、先頭の分割データを含むパケットであっても、フラグにより追跡検索記憶手段へ処理情報を記録するか否かを選択することが可能となる。 【0023】 また、この発明によれば、追跡検索記憶手段は、予め記憶できる追跡検索情報の項目数が定められており、通信処理回路は、追跡検索情報を追跡検索記憶手段に記録する際、当該追跡検索情報が記録されてからの経過時間を追跡検索記憶手段の項目ごとに計測する複数の第1のタイマを備えており、新たな追跡検索情報を追跡検索記憶手段に記録する際に、追跡検索記憶手段に空き領域が存在しないことを検出した場合、複数の第1のタイマを参照し、経過時間の中から、予め定められる閾値時間を超えており、かつ最大である前記経過時間の前記第1のタイマを検出し、検出した第1のタイマに対応する追跡検索記憶手段の項目に記憶されている追跡検索情報を削除し、新たな追跡検索情報を前記追跡検索記憶手段の当該項目に記録する構成とした。これにより、追跡検索記憶手段に空きがない場合、閾値時間を例えば、統計的に知られている分割データを含むパケットを全て受信する時間にしておくことで、分割データを含むパケットの一部が受信できず閾値時間を超えている追跡検索情報の中で最も時間が経過しているものを削除し、新たなフラグメント追跡検索情報を記録することが可能となる。 【0024】 また、この発明によれば、第1のタイマには最大計測時間が予め定められており、第1のタイマは、経過時間が最大計測時間を超えた場合に、第1のタイマから満了通知が通知された際、満了通知を通知した第1のタイマに対応する追跡検索記憶手段の項目を削除する構成とした。これにより、第1のタイマに最大計測時間を設定しておき、長時間分割データを含むパケットが全て揃わず追跡検索情報が残っているものを削除することができ、追跡検索記憶手段に空き領域を確保しておくことが可能となる。 【0025】 また、この発明によれば、追跡検索記憶手段は、予め記憶できる追跡検索情報の項目数が定められており、予め定められる削除されるまでの残時間を設定されており、起動されてからの経過時間が、残時間を超えた場合に満了通知を通知し、追跡検索記憶手段の項目に対応付けて設けられる複数の第2のタイマを備えている。分割データを含むパケットが最後尾の分割データを含むパケットであるか否かを判定し、パケットが最後尾の分割データを含むと判定した場合、当該パケットのパケット識別情報に対応する追跡検索情報を追跡検索記憶手段から検出し、検出した追跡検索情報に対応する第2のタイマを起動し、第2のタイマから満了通知が通知された場合、満了通知を通知した第2のタイマに対応する追跡検索記憶手段の項目削除する構成とした。これにより、最後尾の分割データを含むパケットを受信した際に、最後尾の分割データを含むパケットを受信してから閾値時間を経過するまで追跡検索情報を削除せずに保留しておくことで、ネットワークの輻輳や経路変更により、最後尾の分割データを含むパケットが他の分割データを含むパケットより先に到達してしまうような場合であっても、全ての分割データを含むパケット受信してデータを再構成でき、再構成できない場合に発生するパケットの再送を防ぐことが可能となる。 【発明を実施するための最良の形態】 【0026】 以下、本発明の実施形態を図面を参照して説明する。 (第1実施形態) 図1は、本発明の通信処理回路の第1実施形態である通信処理回路2を備えた通信装置1及び通信装置1がLAN(Local Area Network)及びWAN(Wide Area Network)に接続する構成を示す概略ブロック図である。 通信装置1は、GMII(Gigabit Medium Independent Interface)やMII(Medium Independent Interface)の規格のインタフェースを介してWANに接続する物理I/F(Interface)100及びLANに接続する物理I/F110と接続し、LAN側から送信されるパケットをWAN側へ転送し、また、WAN側から送信されるパケットをLAN側へ転送する。本実施形態の通信装置1では、OSIの第3層にあたるネットワーク層では、IPv4あるいはIPv6のパケット(以下、IPパケットと記載)の送受信を行い、OSIの第2層にあたるデータリンク層では、イーサネット(登録商標)のフレームの送受信を行う。以下、第2層に係る処理については送受信されるものについてはフレームと記載し、第3層に係る処理について送受信されるデータ、すなわちフレームからMACヘッダが除かれたものについてはIPパケットと記載する。 【0027】 通信装置1は、転送処理の高速化を図るため半導体素子で構成される通信処理回路2と、CPU(中央処理部:Central Processing Unit)4と、DDR−SDRAM(Double Data Rate-Synchronous Dynamic Random Access Memory)3とを備えている。 【0028】 DDR−SDRAM3は、半導体記憶素子であり、一定容量値、例えば2キロバイトごとに領域分割され、フレーム長が長いフレームであっても、短いフレームであっても分割した1つの領域を割り当てて記憶する。なお、分割されたそれぞれの領域は、後述するハンドル管理部18が付与するハンドル番号に対応付けられる。 【0029】 CPU4は、主に、通信処理回路2で転送処理を行うことができないフレームを通信処理回路2から受信し、受信したフレームに対する転送先を検出する等の処理を予め内部で動作するソフトウェアに基づいて行う。CPU4が備えるドライバ4aは、通信処理回路2がCPU4に入力するIPパケットのCPU4の内部のメモリへの書き込み及び読み出しを行い、また、通信処理回路2の各機能部の動作を制御する情報の設定を各機能部に対して行う。 【0030】 通信処理回路2において、WAN用MAC(Media Access Control)I/F11は、WANに接続される物理I/F100へ接続する接続インタフェースである。LAN用MACI/F12は、LANに接続される物理I/F110へ接続する接続インタフェースである。WAN用MACI/F11及び、LAN用MACI/F12は、上記したGMII及びMIIに準拠した規格を有し、送受信するイーサネット(登録商標)のフレーム(以下、フレームと記載)に対してIEEE802.3準拠のMAC処理を行い、また、物理I/F100あるいは110との間で送受信されるフレームに対してCRC(Cyclic Redundancy Check)処理などを行う。 【0031】 IPsec部は、WAN用MACI/F11に接続され、RFC(Request for Comments)2406準拠のIPsec処理に基づく暗号化処理をWANに送信するIPパケットに対して行い、また、WANから受信するIPパケットに対して復号化処理を行う。ここで、RFC2406準拠のIPsec処理とは、RFC2403/2404準拠のHMAC−MD5(Keyed Hashing for Message Authentication Code-Message Digest 5)やHMAC−SHA−1(HMAC-Secure Hash Algorithm-1)の認証機能や、RFC2410/2451のNULL,CBC−AES(Cipher Block Chaining - Advanced Encryption Standard)の暗号機能などによるIPv4及びIPv6パケットに対する暗号化及び復号化処理及び、IPsec処理のトンネルモードにおけるカプセル化及びデカプセル化の処理のことをいう。 【0032】 書き込みスケジューラ14は、IPsec部13と、LAN用MACI/F12と、CPU4に接続するCPUI/F15とに接続され、ラウンドロビン方式により、IPsec部13と、LAN用MACI/F12と、CPUI/F15の順に、これら3つの機能部によって情報が付加されたフレーム(以下、前記3つの機能部によって情報が付加されたフレームをフレーム情報と記載)を出力する。 【0033】 CPUI/F15は、通信処理回路2の各機能部と、書き込みスケジューラ部14と、メモリコントローラ部17とCPU4とに接続され、メモリコントローラ部17から出力されるフレーム情報をCPU4に入力する。また、CPU4から出力されるフレームを書き込みスケジューラ部14に入力する。また、CPU4が通信処理回路2の各機能部に対して設定を行う際、CPUI/F15は、設定情報を該当する機能部に入力する。 【0034】 DDR−SDRAMI/F19は、メモリコントローラ部17とDDR−SDRAM3に接続され、メモリコントローラ部17とDDR−SDRAM3の間でフレームの入出力を行う。 【0035】 フレーム生成部16は、予めCPU4のドライバ4aから設定される情報に基づいて、メモリコントローラ部17から出力されるフレーム情報及び後述するQoS部70から出力されるジョブ情報に基づいて送信先の論理インタフェースに応じたVLAN(Virtual LAN)タグやPPPoE(Point to Point Protocol over Ethernet:Ethernetは登録商標)ヘッダの挿入を行い、当該挿入を行ったフレームを出力する。また、フレーム生成部16は、送信先MACアドレスの付け替え、NAT(Network Address Translation)/NAPT(Network Address Port Translation)のためのIPアドレス及びポート番号の付け替えを行う。また、フレーム生成部16は、IPsec部13に出力するフレームに対してIPsecSA(Security Association)の情報の付加を行う。また、フレーム生成部16は、DSCP(DiffServ Code Point)の情報をIPパケットのヘッダへ付加したり、VLAN priorityの情報をフレームのヘッダへ付加する。DSCPやVLAN priorityは、優先制御の際に参照される品質クラス情報となる。ここで、品質クラス情報とは、転送されるフレームに含まれる情報の種別を分類する分類情報であり、分類情報によって示される情報の種別が例えば音声の場合には、当該分類種別を有するフレームには遅延が少ない高い品質の通信処理が適用されることになる。 【0036】 ハンドル管理部18は、QoS(Quality of Service)部70と、メモリコントローラ部17とに接続され、DDR−SDRAM3の分割された領域のそれぞれに対応するハンドル番号に基づいてDDR−SDRAM3の分割された領域の空塞管理を行う。ここで、空塞管理とは、メモリコントローラ部17へは空きハンドル番号を出力して使用中のハンドル番号として管理し、QoS部70から入力されるフレーム破棄により返却対象となるハンドル番号や、送信により返却対象となるハンドル番号については領域が空きとなるため、空きのハンドル番号として管理する。また、ハンドル管理部18は、マルチキャストフレームの場合には、マルチキャストの回数分送信が終了するまで、フレームを削除できないため、QoS部70が、メモリコントローラ部17にジョブ情報を出力した情報を図1に示すQoS部70からメモリコントローラ部17へ直接接続する接続線から分岐する線により参照して、送信開始時に定められるマルチキャストの回数を管理する。 【0037】 メモリコントローラ部17は、書き込みスケジューラ部14と、フレーム生成部16と、DDR−SDRAMI/F19と、パーサ部30と、ハンドル管理部18と、QoS部70とに接続されている。メモリコントローラ部17は、書き込みスケジューラ部14から入力されるフレーム情報に対し、ハンドル管理部18から付与された空きハンドルのハンドル番号に対応するDDR−SDRAM3の分割された領域に、DDR−SDRAMI/F19を介してDDR−SDRAM3に書き込む。また、メモリコントローラ部17は、書き込みスケジューラ部14から入力されるフレーム情報に対し、ハンドル管理部18から付与されたハンドル番号を付加してパーサ部30に出力する。また、メモリコントローラ部17は、後述するQoS部70から出力されるジョブ情報に含まれるハンドル番号に対応するDDR−SDRAM3の領域からDDR−SDRAMI/F19を介してフレーム情報を読み出し、読み出したフレーム情報に対してジョブ情報に基づく情報を付加し、フレーム生成部16に出力、あるいはCPUI/F15を介してCPU4に出力する。 【0038】 パーサ部30は、メモリコントローラ部17によりハンドル番号が付加されたフレーム情報に対して解析を行い、フレーム情報から転送処理等に必要となる情報であるヘッダ情報などを抽出し、解析結果情報としてメモリコントローラ部17が付加したハンドル番号等の付加情報とともに出力する。 【0039】 なお、通信処理回路2は、IPv4とIPv6の両方に対応しており、パーサ部30が抽出して生成する解析結果情報では、IPv4のヘッダとIPv6のヘッダとを別に含むのではなく、IPv4かIPv6かを示すフラグを設け、データの形式を共通化可能なヘッダ情報等については、共通の形式にするようにしている。例えば、送信先IPアドレス及び送信元IPアドレスについては、IPv6に合わせてデータ長128ビットの形式とし、IPv4については32ビットのIPアドレスに0の連続を追加して128ビットとしている。また、IPv4のToS(Type Of Service)の情報とIPv6のTC(Traffic Class)の情報については共通の形式としている。また、後述するフラグメントに関する情報については、IPv4のヘッダに含まれる情報とIPv6に含まれる情報のそれぞれを解析し、フラグメント処理が行われているか否かを示す情報、フラグメント処理された先頭の分割データを含むパケットか、あるいは中間の分割データを含むパケットか、あるいは最後尾の分割データを含むパケットかを示すフラグと、32ビット化したIPパケットのヘッダに含まれるID(Identification)という形式の情報(以下、これらのフラグメント処理に関する情報をフラグメント解析情報と記載)に共通化するようにしている。 【0040】 検索部40は、パーサ部30から入力される解析結果情報に基づいて、予めCPU4により検索部40の内部に設定される検索条件情報を参照し、検索条件情報に基づいて、当該フレームに対して行う処理を示した処理情報を検出し、検出した処理情報と、パーサ部30から入力される解析結果情報の一部の情報、例えばフレーム長等ととともにCPU転送判定部61に出力する。ここで、検索部40により行われる検索処理としては、NAT/NAPT検索処理、経路検索処理、フィルタ・分類検索処理があり、これらの検索により検出される処理情報としては、NAT/NAPTによりヘッダを書き換える処理を示す情報や、送信先論理インタフェースなどを示す情報や、フレームを破棄、通過、CPU4へ転送する等の処理を示す情報や、検索部40以降のキュー選択部62等で処理が行われる際に参照される品質クラス情報などの所定の処理を行うために必要な情報がある。また、検索条件情報としては、MACアドレス、IPアドレス、ポート番号などが組み合わされた情報が設定される。 【0041】 CPU転送判定部61は、検索部40においてCPU4へ転送する要因があるとして検出されたフレームに対して、CPU4へ転送するか、あるいは破棄するかを判定し、判定した判定結果情報を、検索部40から入力される情報とともに出力する。 【0042】 キュー選択部62は、CPU転送判定部61から入力される情報に含まれる品質クラス情報や送信先の論理I/Fの情報に基づいてQoS部70がキューを選択する際に参照するキュー番号を検出し、CPU転送判定部61から出力される情報と、検出したキュー番号とを出力する。 【0043】 QoS部70は、キュー選択部62から出力される情報に基づいてジョブ情報を生成し、同じくキュー選択部62から出力されるキュー番号に基づいて、生成したジョブ情報を該当するキューに記録する。また、QoS部70は、キューに記録されているジョブ情報をキューの状態及びPQ(Priority Queuing)の優先度、あるいはWFQ(Weighted Fair Queuing)の重み付けの値等に基づいて読み出し、メモリコントローラ部17へ出力する。また、メモリコントローラ部17へ出力する際に、ハンドル番号を返却するためハンドル管理18へ出力する。ここで、ジョブ情報とは、WAN用MACI/F11やLAN用MACI/F12から送信されるフレームに対しては、受信フレーム長、送信フレーム長、送信論理I/F、送信先MACアドレス、NAT/NAPT指定、DSCPやVLAN priority等の情報に対応する品質クラス、ハンドル番号等の情報から構成されている。また、CPU4に転送されるフレームに対しては、ジョブ情報は、受信フレーム長、送信フレーム長、受信論理I/F、CPU転送理由、品質クラス、ハンドル番号等の情報から構成される。 【0044】 なお、CPU転送判定部61において特定の要因を有し、破棄すると判定されたフレームついてはCPU転送判定部61あるいはQoS部70のいずれかにより破棄されることとなる。 【0045】 ここで、以下の説明で用いるフラグメント処理に関連するIPパケットのヘッダに含まれる情報について説明する。最初に、IPパケットのヘッダに含まれるID(Identification)には、IPパケットが送信されるごとに送信側で異なる値が設定されるが、フラグメントIPパケットの場合、受信時は1つのIPパケットであったものが分割されるため、フラグメント処理が行われる際に受信したIPパケットのヘッダ情報がコピーされる。その際、IDもコピーされるため元は1つのIPパケットであったフラグメントIPパケットには同じIDが設定される。受信側では当該IDを参照することにより、どのフラグメントIPパケットが、元は1つのIPパケットであったかを検出することができる。ただし、ID番号だけでは重複する可能性があるため、IPアドレス情報なども組み合わせて検出されることになる。 【0046】 次に、フラグメントフラグは、IPパケットのヘッダのフラグフィールドのMF(More Fragment)ビットを用いて示される情報である。MFビットが1ならば、後に続くフラグメントIPパケットが存在することを示している。また、MFビットが0ならば最後の分割データを含むフラグメントIPパケットであることを示している。 【0047】 次に、フラグメントオフセットは、フラグメント処理が行われる前のIPパケットのどの位置に存在していた分割データを含んでいるかを示す情報である。例えば、フラグメントオフセットに「2000」という値が設定されていた場合、分割データは、フラグメント処理される前のIPパケットの先頭から2000バイト目に存在していた分割データを含んでいることを示している。なお、先頭の分割データを含む場合には、フラグメントオフセットには「0」が設定される。 【0048】 ここで、分割データとは、受信時に1つのIPパケットであったIPパケットからヘッダ情報を取り除き、残りのデータ部分を送信先に送信可能な大きさに分割したデータのことをいう。また、以下の説明では、先頭の分割データを含むフラグメントIPパケットを先頭フラグメントIPパケットと記載し、先頭以外の分割データを含むフラグメントIPパケットを非先頭フラグメントIPパケットと記載し、最後の分割データを含むフラグメントIPパケットを最後尾フラグメントIPパケットと記載する。 【0049】 なお、上記のIPパケットのフラグメント処理に関連するヘッダについての説明はIPv4に対するものであるが、IPv6の場合には、通常のIPv6ヘッダと上位層ヘッダとの間に付加される拡張ヘッダの1つとしてフラグメントヘッダが規定されている(IETF RFC2460参照)。当該フラグメントヘッダには、上記のIPv4のIDやフラグメントオフセットやMF等と同等の内容を示す情報が設定され、当該ヘッダを参照することにより、IPv4の場合と同様に、受信したIPパケットの判定を行うことができる。また、上述したように、IPv4及びIPv6のフラグメント処理に関する情報は、パーサ部30により、共通の形式とされ、フラグメント解析情報として解析結果情報に含まれることになる。 【0050】 図2は、第1実施形態に係る検索部40の内部構成を示したブロック図である。 図2において、検索部40は、NAT/NAPT検索部45と、経路検索部46と、判定部41と、フィルタ・分類検索部42と、フラグメント追跡部50とを備えている。 【0051】 検索部40において、NAT/NAPT検索部45は、パーサ部30から入力される解析結果情報、及び予め内部に記憶するNAT/NAPT検索条件情報に基づいて検索を行い、NAT/NAPTの有無を示す情報や、付け替え後のIPアドレスやポート番号を検出し、解析結果情報及び付加情報とともに検出した情報を出力する。経路検索部46は、NAT/NAPT検索部45から解析結果情報、付加情報及びNAT/NAPTの有無を示す情報や、付け替え後のIPアドレスやポート番号が入力され、予め内部に記憶する経路検索情報及び、入力される解析結果情報に基づいて検索を行い、送信先の論理インタフェース等の送信先に関する情報を検出する。また、NAT/NAPT有りの場合、付け替え後のIPアドレスに基づいて経路検索を行い、送信先の論理インタフェース等の送信先に関する情報を検出し、解析結果情報及び付加情報とともに検出した情報を出力する。 【0052】 判定部41は、経路検索部46から入力される解析結果情報に含まれる上述したフラグメント解析情報を参照し、フレームに含まれるパケットがフラグメントIPパケットであるか否かを判定する。また、判定部41は、パケットがフラグメントIPパケットであると判定した場合、さらに、フラグメント解析情報を参照し、先頭フラグメントIPパケットであるか否かを判定する。 【0053】 フィルタ・分類検索部42は、入力されるIPパケットに適用されるフィルタ処理や分類処理を検出するため、検出部43と、フィルタ・分類検索テーブル44とを備えている。フィルタ・分類検索部42において、検出部43は、フィルタ・分類検索テーブル44を参照し、フィルタ・分類検索テーブル44の検索条件情報の中で、判定部41から入力される解析結果情報に含まれるヘッダ情報等と一致する検索条件情報を検出する。また、検出部43は、検出した検索条件情報に対応する処理情報をフィルタ・分類検索テーブル44から読み出し、読み出した処理情報を、判定部41から入力される付加情報とともにCPU転送判定部61に出力する。また、検出部43は、受信したIPパケットが先頭フラグメントIPパケットの場合、判定部41から入力される付加情報と解析結果情報と処理情報とをフラグメント追跡部50の登録管理部55に出力する。 【0054】 フィルタ・分類検索テーブル44は、図3に示すように、「エントリ番号」、「検索条件」、「フラグメント追跡フラグ」、「検索結果」の項目を有するフィルタ分類検索情報を記憶している。「エントリ番号」には、フィルタ・分類検索テーブル44の各エントリを特定するためのポインタが記録され、例えば、フィルタ・分類検索テーブル44がメモリに割り当てられる場合には、エントリごとの先頭のメモリのアドレスがエントリ番号であってもよい。「検索条件」には、検索条件情報として上述したように送信元IPアドレス、送信先IPアドレス、送信先ポート番号等が組み合わされた情報が記憶される。「検索結果」には、検索条件情報と一致したIPパケットに対して行う所定の処理を示した処理情報、例えば、破棄、CPU転送等を示す情報が記憶される。「フラグメント追跡フラグ」には、フラグメント追跡処理を行うことを示すONと、フラグメント追跡処理を行わないことを示すOFFとが予め記憶される。ここで、フラグメント追跡処理とは、先頭フラグメントIPパケットにおいて、フィルタ分類検索情報から検索された検索結果を、非先頭フラグメントIPパケットにも適用する処理のことであり、当該処理により、分割データを再構成することなく、先頭フラグメントIPパケットと同じ処理を非先頭フラグメントIPパケットに対して行うことが可能となる。 【0055】 なお、フィルタ・分類検索テーブル44は、RAM(Random Access Memory)やROM(Read Only Memory)のような外部からの記録及び削除が可能な素子で構成されていてもよいが、検索条件情報に該当する情報を入力することにより、エントリ番号、フラグメント追跡フラグ、検索結果の各項目が出力される論理回路によって構成されていてもよい。 【0056】 次に、図2において、フラグメント追跡部50は、フラグメント追跡処理を行うため、検出部51と、判定・削除部52と、削除保留タイマ54と、フラグメント追跡検索テーブル53と、登録管理部55と、記録経過タイマ56とを備えている。 【0057】 フラグメント追跡部50において、検出部51は、フラグメント追跡検索テーブル53を参照し、フラグメント追跡検索テーブル53のフラグメント追跡検索情報の中で、判定部41から入力される解析結果情報に含まれるヘッダ情報等に対応するフラグメント追跡検索情報を検出する。また、検出部51は、検出したフラグメント追跡検索情報に含まれ、先頭フラグメントIPパケットに適用された処理情報であるフラグメント追跡結果情報を、判定部41から入力される付加情報とともにCPU転送判定部61に出力する。 【0058】 フラグメント追跡検索テーブル53は、図4に示すように「エントリ番号」、「フラグメント追跡条件」、「フラグメント追跡結果」の項目を有するフラグメント追跡検索情報を記憶している。「エントリ番号」には、フラグメント追跡検索テーブル53の各エントリを特定するための値が記録され、例えば、フラグメント追跡検索テーブル53がメモリに割り当てられる場合には、エントリごとの先頭のメモリのアドレスがエントリ番号であってもよい。「フラグメント追跡条件」には、上述した元は同じIPパケットから分割されたフラグメントIPパケットを特定することのできるパケット識別情報が記憶される。パケット識別情報は、ID、送信元IPアドレス、送信先IPアドレス等を含む情報であり、さらに特定を容易にするために受信インタフェース番号を加えるようにすることも可能である。「フラグメント追跡結果」には、パケット識別情報の先頭フラグメントIPパケットに適用された処理情報がフラグメント追跡結果情報として記憶される。なお、「フラグメント追跡結果」には、先頭フラグメントIPパケットに適用された処理情報が記憶されているフィルタ分類検索情報の「エントリ番号」が記憶されていてもよい。また、フラグメント追跡検索テーブル53は、半導体記憶素子上に予め容量が定められる領域であるため記憶することができる項目、すなわちエントリ数の最大数が定められている。 【0059】 登録管理部55は、フィルタ分類検索部42の検出部43から処理情報及び解析結果情報の入力を受け、入力される解析結果情報から、同じIPパケットから分割されたフラグメントIPパケットを検出するためのパケット識別情報を抽出し、抽出したパケット識別情報を、フラグメント追跡検索情報の「フラグメント追跡条件」に記録し、記録した「フラグメント追跡条件」に対応する「フラグメント追跡結果」に入力された処理情報をフラグメント追跡結果情報として記録する。 【0060】 記録経過タイマ56は、登録管理部55が新たなフラグメント追跡検索情報のエントリをフラグメント追跡検索テーブル53に記録する際に、登録管理部55によって起動され、エントリごとの記録されてからの経過時間を計測するタイマであり、上述したフラグメント追跡検索テーブル53のエントリの最大数をNとすると、エントリ番号に対応付けられた記録経過タイマ56−1〜56−NのN個のタイマが備えられている。また、記録経過タイマ56には、最大計測時間が予め定められており、経過時間が最大計測時間を超えた場合には満了通知を登録管理部55に通知する。 【0061】 判定・削除部52は、最後尾フラグメントIPパケットが受信された際に、当該フラグメントIPパケットに対応するエントリは必要なくなるためフラグメント追跡検索テーブル53から削除するが、ネットワークの状態によってはフラグメントIPパケットを順番に受信できるとは限らないため、最後の分割データを含むフラグメントIPパケットを受信した後、一定時間フラグメントIPパケットの到着を待機し、待機後にエントリを削除する。また、判定・削除部52は、検出部51に接続され、検出部51から出力される解析結果情報に基づいて、最後尾フラグメントIPパケットであるか否かを判定し、判定の結果、最後尾フラグメントIPパケットの場合には、後述する削除保留タイマ54から満了通知を受信した際に、当該フラグメントIPパケットに対応するエントリをフラグメント追跡検索テーブル53から削除する。 【0062】 削除保留タイマ54は、判定・削除部52によって起動され、予め定められている残時間が経過した際に、満了通知を判定・削除部52に通知する。削除保留タイマ54も記録経過タイマ56と同じく、フラグメント追跡検索テーブル53のエントリの最大数をNとすると、エントリ番号に対応付けられた削除保留タイマ54−1〜54−NのN個のタイマが備えられている。 【0063】 図5は、第1実施形態に係る検索部40のフラグメント追跡処理の動作を示したフローチャートである。 最初に、WAN用MACI/F11あるいはLAN用MACI/F12がフレームを受信する。LAN用MACI/F12は、受信したフレームに関するフレーム情報を書き込みスケジューラ部14に入力する。WAN用MACI/F11が受信したフレームについては、IPsec部13が復号化を行い、復号化されたフレームに関するフレーム情報を書き込みスケジューラ部14に入力する。書き込みスケジューラ部14は、ラウンドロビン方式により、IPsec部13、あるいはLAN用MACI/F12から入力されるフレーム情報をメモリコントローラ部17に入力する。メモリコントローラ部17は、ハンドル管理部18に空きハンドル番号を要求し、要求によって得たハンドル番号に基づいてDDR−SDRAMI/F19を介してDDR−SDRAM3のハンドル番号に対応する領域にフレーム情報を記録し、当該フレーム情報とハンドル番号とをパーサ部30に入力する。 【0064】 パーサ部30は、予め内部に記憶しているフレーム解析条件情報に基づいて、入力されたフレーム情報を解析し解析によりフレーム情報に含まれる情報から抽出した解析結果情報をハンドル番号などを含む付加情報とともに検索部40に入力する(ステップSa1)。 【0065】 検索部40のNAT/NAPT検索部45は、パーサ部30から入力される解析結果情報に基づいてNAT/NAPTの有無を示す情報を検出し、付け替え後のIPアドレス及びポート番号を検出する。経路検索部46は、NAT/NAPT検索部45が入力される解析結果情報、あるいは付け替え後のIPアドレスに基づいて、送信先論理インタフェース等の送信先に関連する情報を検出し、解析結果情報、付加情報とともに検出した情報を判定部41に入力する。判定部41は、経路検索部46から入力される解析結果情報に含まれるフラグメント解析情報を参照し、当該フラグメント解析情報に対応するIPパケットが非先頭フラグメントIPパケットであるか否かを判定する(ステップSa2)。判定部41が、解析結果情報に対応するIPパケットが非先頭フラグメントIPパケットであると判定した場合、判定部41は、解析結果情報及び付加情報をフラグメント追跡部50の検出部51に入力する。 【0066】 検出部51は、入力される解析結果情報に含まれるヘッダ情報からフラグメントIPパケットを識別するためのパケット識別情報を抽出し、抽出したパケット識別情報に基づいてフラグメント追跡検索テーブル53のフラグメント追跡検索情報を検索する。そして、検索により、抽出したパケット識別情報に一致するパケット識別情報がフラグメント追跡検索情報から検出するか否かを判定する(ステップSa3)。検出部51は、一致するパケット識別情報を検出できなかった場合、フィルタ・分類検索部42の検出部43に解析結果情報及び付加情報を入力し、ステップSa5に進む。一方、検出部51は、一致するパケット識別情報が検出した場合、フラグメント追跡検索テーブル53から一致するパケット識別情報に対応するフラグメント追跡結果情報を読み出す(ステップSa4)。そして、検出部51は、読み出したフラグメント追跡結果情報と付加情報とをCPU転送判定部61に出力する(ステップSa8)。 【0067】 一方、ステップSa2において、判定部41が、解析結果情報に対応するIPパケットが非先頭フラグメントIPパケットでないと判定した場合、判定部41は、解析結果情報及び付加情報をフィルタ・分類検索部42の検出部43に入力する。IPパケットが非先頭フラグメントIPパケットでない場合とは、先頭フラグメントIPパケットか、フラグメント処理が行われていないIPパケットとなるが、判定部41は、当該IPパケットが先頭フラグメントIPパケットである場合には、先頭フラグメントIPパケットを示す情報を検出部43に入力する。 【0068】 検出部43は、判定部41あるいは検出部51から入力される解析結果情報に基づいて、フィルタ分類検索テーブル44から解析結果情報に一致する検索条件情報の検索を行い、一致する検索条件情報に対応する処理情報及びフラグメント追跡フラグをフィルタ・分類検索テーブル44から読み出す(ステップSa5)。次に、検出部43は、判定部41から先頭フラグメントIPパケットを示す情報が入力されており、かつ読み出したフラグメント追跡フラグが「ON」であるか否かを判定する(ステップSa6)。 【0069】 検出部43は、先頭フラグメントIPパケットを示す情報が入力されていない場合、または、先頭フラグメントIPパケットを示す情報が入力されているがフラグメント追跡フラグが「OFF」の場合、処理情報と付加情報とをCPU転送判定部61に出力する(ステップSa8)。一方、検出部43は、先頭フラグメントIPパケットを示す情報が入力されており、かつ読み出したフラグメント追跡フラグが「ON」である場合、フラグメント追跡部50の登録管理部55に、処理情報と解析結果情報とを入力する。登録管理部55は、入力される解析結果情報からパケット識別情報を抽出し、抽出したパケット識別情報をフラグメント追跡検索情報の「フラグメント追跡条件」に記録し、記録した「フラグメント追跡条件」に対応する「フラグメント追跡結果」に入力された処理情報を記録する。このとき、登録管理部55は、新たに記録したフラグメント追跡検索情報のエントリ番号に対応する記録経過タイマ56−1〜56−Nのいずれか1つを起動する(ステップSa7)。そして、検出部43は、検出した処理情報と入力される付加情報とをCPU転送判定部61に出力する(ステップSa8)。 【0070】 CPU転送判定部61は、フィルタ・分類検索部42あるいはフラグメント追跡部50の検出部51から出力される処理情報あるいは、フラグメント追跡結果情報に含まれる処理情報に基づいて、当該IPパケットを含むフレームに対してCPU4へ転送、あるいは破棄、あるいはWAN用MACI/F11やLAN用MACI/F12へ転送するなどの判定を行い、判定結果情報とハンドル番号を含む付加情報をキュー選択部62に入力し、キュー選択部62、QoS部70を経由して、処理情報に対応する処理が当該IPパケットを含むフレームに対して行われることとなる。 【0071】 上記の第1実施形態に係るフラグメント追跡処理により、先頭フラグメントIPパケットについては、フラグメント処理が行われていないIPパケットと同様にフィルタ・分類検索の処理が行われる。その際に、先頭フラグメントIPパケットに対応して検索された処理情報を、同じIPパケットから分割されたフラグメントIPパケットを特定するパケット識別情報とともにフラグメント追跡検索テーブル53に記録しておく。それによって、非先頭フラグメントIPパケットを受信した場合に、データを再構築することなく先頭フラグメントIPパケットに対して行った処理と同じ処理を非先頭フラグメントIPパケットに対して適用することが可能となる。 【0072】 また、第1実施形態に係るフラグメント追跡処理では、フィルタ・分類検索テーブル44に「フラグメント追跡フラグ」を含める構成とし、当該フラグメント追跡フラグがOFFの場合には先頭フラグメントIPパケットであってもフラグメント追跡検索テーブル53に記録させないようにしたことで、フラグメント追跡処理を行わせないフィルタ・分類の検索条件情報を指定することができる。ここで、フラグメント追跡処理を行わせないフィルタ・分類の検索条件情報とは、例えば、フィルタ・分類検索テーブル44の検索条件情報が全てのフラグメントIPパケットに含まれる情報である送信先のIPアドレス等の場合である。 【0073】 また、上記の第1実施形態の構成において、NAT/NAPT検索部45及び経路検索部46は、フィルタ・分類検索部42の出力に接続し、フィルタ・分類検索処理の後に、NAT/NAPT検索処理及び経路検索処理を行うようにしてもよい。また、フィルタ・分類検索部42の構成も、フィルタ・分類検索テーブル44を、フィルタ検索に関する情報と、分類検索に関する情報に分け、それぞれが独立して検索処理を行うように構成してもよい。 【0074】 次に、図6から図8を参照しつつ、登録管理部55と記録経過タイマ56の動作について説明する。図6は、登録管理部55が、フラグメント追跡検索テーブル53に新たなフラグメント追跡検索情報を記録する際の動作を示したフローチャートである。 【0075】 まず最初に、登録管理部55は、フラグメント追跡検索テーブル53に空きエントリが存在するか否かを判定する(ステップSb1)。登録管理部55は、空きエントリが存在すると判定した場合、フラグメント追跡検索テーブル53の空きエントリにフラグメント追跡検索情報を記録し、記録経過タイマ56−1〜56−Nのうち記録したエントリのエントリ番号に対応するに記録経過タイマを起動する(ステップSb5)。 【0076】 一方、登録管理部55は、ステップSb1において空きエントリが存在しないと判定した場合、図8に示すように記録経過タイマ56−1〜56−Nに予め定められている閾値時間Tthと、それぞれの記録経過タイマ56−1〜56−Nが計測した経過時間(図8の記録経過タイマ56−1〜56−Nでは、時計の針を示す線が経過時間を示している)とを参照し、閾値時間Tthを超えているタイマを検出する。図8の例では、記録経過タイマ56−2と56−3が閾値時間Tthを超えているタイマとして検出する。次に、登録管理部55は、検出した記録経過タイマ56−2と56−3の中で、経過時間が最大値となっているタイマを検出する。図8の例では、記録経過タイマ56−2の経過時間の方が大きいため、記録経過タイマ56−2を検出する(ステップSb3)。そして、登録管理部55は、検出した記録経過タイマ56−2に対応するエントリ番号のエントリをフラグメント追跡検索テーブル53から削除し、新たに記録するフラグメント追跡検索情報を当該エントリに記録し、当該エントリに対応する記録経過タイマ56−2を起動する(ステップSb5)。 【0077】 なお、ステップSb3において、登録管理部55がエントリを検出できなかった場合には、新たなフラグメント追跡検索情報の記録を行わない。 【0078】 また、新たなフラグメント追跡検索情報の記録を行う際に、当該新たなフラグメント追跡検索情報を記録するために記録を行うことができるエントリの検出を行うステップSb3の処理を行うのではなく、いずれかのフラグメント追跡検索情報に記録を行う際に、次のフラグメント追跡検索情報の記録のために記録が可能なエントリを事前に検出しておくようにしてもよい。この構成により、先頭フラグメントIPパケットと非先頭フラグメントIPパケットの受信間隔がステップSb3の処理を行う時間より短い場合であっても、非先頭フラグメントIPパケットにフラグメント追跡検索情報を適用することが可能となる。 【0079】 また、上述した図6の登録管理部55と記録経過タイマ56の動作では、先頭フラグメントIPパケットが受信され、フラグメント追跡検索テーブル53に新たなフラグメント追跡検索情報を記録する際に、記録経過タイマ56を起動し、先頭フラグメントIPパケットを基準として閾値時間Tthを設定するようにしている。しかし、本発明は当該実施形態に限られず、閾値時間Tthを平均的なIPパケットの受信間隔の値にしておき、非先頭フラグメントIPパケットを受信し、当該非先頭フラグメントIPパケットに対応するエントリが検出された際に、記録経過タイマ56を再起動するようにしてもよい。 【0080】 上記の登録管理部55と記録経過タイマ56による処理により、予めフラグメント追跡検索情報を記録することができる項目数が限られているフラグメント追跡検索テーブル53に空きがない場合、閾値時間を例えば、統計的に知られているフラグメントIPパケットを全て受信する時間にしておくことで、フラグメントIPパケットの一部が受信できず閾値時間を超えているフラグメント追跡検索情報の中で最も時間が経過しているものを削除して新たなフラグメント追跡検索情報を記録することができる。 【0081】 次に、図7を参照して、記録経過タイマ56が満了した際の登録管理部55の動作について説明する。図8に示すように各記録経過タイマ56−1〜56−Nのそれぞれには最大計測時間Tmaxが予め設定されている。記録経過タイマ56−1〜56−Nは計測している経過時間が最大計測時間Tmaxを超えた際に、対応するエントリ番号を含む満了通知を登録管理部55に通知する。登録管理部55は、記録経過タイマ56−1〜56−Nから満了通知が通知されたか否かを判定し(ステップSc1)、通知されない間は満了通知の検出を継続している(ステップSc1:No)。登録管理部55は、満了通知を検出すると、満了通知に含まれるエントリ番号を読み出し、読み出したエントリ番号に対応するフラグメント追跡検索テーブル53のエントリを削除する(ステップSc2)。 【0082】 なお、上述した閾値時間Tth及び最大計測時間Tmaxは、記録経過タイマ56−1〜56−Nごとに異なる値を設定するようにしてもよい。 【0083】 上記の登録管理部55と記録経過タイマ56による処理により、記録経過タイマ56に最大計測時間を設定しておき、長時間フラグメントIPパケットが全て揃わずフラグメント追跡検索情報が残っているものを削除することができ、フラグメント追跡検索テーブルに空き領域を確保しておくことが可能となる。 【0084】 次に、図9から図11を参照して、判定・削除部52と削除保留タイマ54の動作について説明する。 最初に、検出部51は、解析結果情報に含まれるヘッダ情報等からパケット識別情報を抽出し、抽出したパケット識別情報を含むフラグメント追跡検索情報をフラグメント追跡検索テーブル53から検出すると、検出部51は、検出したフラグメント追跡検索情報のエントリ番号と入力された解析結果情報とを判定・削除部52に入力する(ステップSd1)。判定・削除部52は、解析結果情報を参照し、解析結果情報に対応するフラグメントIPパケットが最後尾フラグメントIPパケットか否かを判定する。この判定は、解析結果情報に含まれるフラグメントフラグのMFビットが「0」であるか否かを判定することにより行われる(ステップSd2)。最後尾フラグメントIPパケットでない場合には、処理を終了する。一方、最後尾フラグメントIPパケットの場合には、判定・削除部52は、削除保留タイマ54−1〜54−Nをのうち検出部51から入力されるエントリ番号に対応するタイマを起動する(ステップSd3)。図11は、エントリ番号が「2」に対応する最後尾フラグメントIPパケットを受信した場合を示しており、削除保留タイマ54−2が起動されている状態を示している。 【0085】 次に、図10を参照して、削除保留タイマ54−1〜54−Nが満了した場合の判定・削除部52の動作について説明する。図11に示すように各削除保留タイマ54−1〜54−Nのそれぞれには上述した残時間に対応する閾値時間Thdが予め設定されている。削除保留タイマ54−1〜54−Nは計測している時間が閾値時間Thdを超えた際に、対応するエントリ番号を含む満了通知を判定・削除部52に通知する。判定・削除部52は、削除保留タイマ54−1〜54−Nから満了通知が通知されたか否かを判定し(ステップSe1)、通知されない間は満了通知の検出を継続している(ステップSe1:No)。判定・削除部52は、満了通知を検出すると、満了通知に含まれるエントリ番号を読み出し、読み出したエントリ番号に対応するフラグメント追跡検索テーブル53のエントリを削除する(ステップSe2)。 【0086】 なお、上述した閾値時間Thdは、削除保留タイマ54−1〜54−Nごとに異なる値を設定するようにしてもよい。 【0087】 上記の判定・削除部52と削除保留タイマ54による処理により、最後尾フラグメントIPパケットを受信した際に、最後尾フラグメントIPパケットを受信してから閾値時間を経過するまでフラグメント追跡検索情報を削除せずに保留しておくことで、ネットワークの輻輳や経路変更により、最後尾フラグメントIPパケットが他のフラグメントIPパケットより先に到達してしまうような場合であっても、全てのフラグメントIPパケットを受信してデータを再構成でき、再構成できない場合に発生するフラグメントIPパケットの再送を防ぐことが可能となる。 【0088】 なお、上述した実施形態において、記録経過タイマ56及び削除保留タイマ54は、通信処理回路2のクロックのパルス数を起動から計数して経過時間を計測し、閾値時間Tth、最大計測時間Tmax及び閾値時間Thdなどの予め指定された時間を経過した際に満了通知を出力するように構成することができる。 また、記録経過タイマ56及び削除保留タイマ54の他の実施形態として、最大値を予め設定しておき、設定した最大値からクロックのパルス数の計数値を減算し、予め指定された時間を経過した時点で満了通知を出力する方式を適用してもよい。 また、さらに、記録経過タイマ56及び削除保留タイマ54を個々に設けるのではなく、1つのタイマで記録経過タイマ56の機能及び削除保留タイマ54の機能を実現するようにしてもよい。 【0089】 (第2実施形態) 次に、本発明に係る第2実施形態について説明する。 図12は、第2実施形態における検索部40aの内部構成を示したブロック図である。 第1実施形態と第2実施形態では、通信処理回路2は検索部の構成が異なり、それ以外の構成については同じである。 【0090】 図12において、検索部40aは、入力選択部140と、NAT/NAPT検索部45aと、経路検索部46aと、出力選択部150と、フィルタ・分類検索部42aと、フラグメント追跡部50aとから構成されており、第1実施形態とは異なり、パーサ部30から全ての受信パケットの解析結果情報に対してフィルタ・分類検索部42aによる処理が行われた後に、フラグメント追跡部50aによる処理が行われる点で第1実施形態と構成が異なる。 【0091】 検索部40aにおいて、入力選択部140は、NAT/NAPT検索部45aの適合判定部143−1〜143−Nを順に選択し、選択した適合判定部に対して、パーサ部30から入力される解析結果情報及びハンドル番号などを含む付加情報を入力する。 【0092】 NAT/NAPT検索部45aにおいて、NAT/NAPT検索テーブル141は、NAT/NAPT有りとされたIPパケットに対応する付け替え後のIPアドレスやポート番号を検出するため、検索条件情報と付け替え後のIPアドレスやポート番号を含む処理情報を対応付けた複数のエントリからなるNAT/NAPT検索情報を記憶する。読出部142は、一定の間隔で、NAT/NAPT検索テーブル141から記憶されている順に1つのエントリのNAT/NAPT検索情報を読み出し、読み出したNAT/NAPT検索情報を適合判定部143−1〜143−Nの全てに入力する。 【0093】 適合判定部143−1〜143−Nは、入力選択部140から入力される解析結果情報に含まれるヘッダ情報等が、読出部142から入力されるNAT/NAPT検索情報の検索条件情報と一致するか否かを判定し、一致すると判定した場合、一致したNAT/NAPT検索情報に含まれるエントリ番号と処理情報とを内部の記憶領域に記録する適合判定処理を行う。このとき、既にエントリ番号及び処理情報を記録している場合には、新たに記録する処理情報のエントリ番号が既に記録している処理情報のエントリ番号よりも上位の場合に限って、上書きして記録する。また、適合判定部143−1〜143−Nは、ある1つの解析結果情報と全てのNAT/NAPT検索情報との判定が終了すると、内部の記憶領域に記録されている処理情報を読み出し、読み出した処理情報とパーサ部30から入力された解析結果情報と付加情報とを内部の記憶領域に記録し、経路検索部46aの対応する適合判定部146−1〜146−Nに記録した解析結果情報と付加情報と処理情報とを入力する。 【0094】 経路検索部46aにおいて、経路検索テーブル144は、IPパケットごとの送信先論理インタフェース等の送信先に関連する情報を検出するため、検索条件情報と送信先に関連する情報を含む処理情報とを対応付けた経路検索情報を記憶する。読出部145は、一定の間隔で、経路検索テーブル144から記憶されている順に1つのエントリの経路検索情報を読み出し、読み出した経路検索情報を適合判定部146−1〜146−Nの全てに入力する。適合判定部146−1〜146−Nは、NAT/NAPT検索部45aの適合判定部143−1〜143−Nに一対一に対応付けられて接続され、適合判定部143−1〜143−Nから入力される情報と、読出部145から入力される情報に基づいて適合判定部143−1〜143−Nと同様の適合判定処理を行い、解析結果情報と付加情報と適合判定部143−1〜143−N及び適合判定部146−1〜146−Nが検出した処理情報とを対応するフィルタ・分類検索部42aの適合判定部149−1〜149−Nに入力する。 【0095】 フィルタ・分類検索部42aにおいて、フィルタ・分類検索テーブル147は、第1実施形態におけるフィルタ・分類検索テーブル44と同じデータ構成のフィルタ分類検索情報を記憶している。読出部148は、一定の間隔でフィルタ・分類検索テーブル147から記憶されている順に1つのエントリのフィルタ分類検索情報を読み出し、読み出したフィルタ分類検索情報を適合判定部149−1〜149−Nの全てに入力する。 【0096】 適合判定部149−1〜149−2は、経路検索部46aの適合判定部146−1〜146−Nに一対一に対応付けて接続され、適合判定部146−1〜146−Nから入力される情報と、読出部148から入力される情報に基づいて適合判定部143−1〜143−N及び適合判定部146−1〜146−Nと同様の適合判定処理を行い、解析結果情報と付加情報と対応する適合判定部143−1〜143−N及び適合判定部146−1〜146−N並びに適合判定部149−1〜149−Nが検出した処理情報とを出力する。 【0097】 出力選択部150は、適合判定部149−1〜149−Nのいずれか1つから出力される解析結果情報と付加情報と適合判定部143−1〜143−N及び適合判定部146−1〜146−N並びに適合判定部149−1〜149−Nが検出した処理情報とを受けて、判定部57に入力する。 【0098】 次に、第2実施形態に係るフラグメント追跡部50aにおいて、フラグメント追跡検索テーブル53、判定削除部52、削除保留タイマ54、記録経過タイマ56の構成は第1実施形態と同じであるため同じ符号を付し、第1実施形態に係るフラグメント追跡部50とは異なる構成である、判定部57、検出部51a、登録管理部55aについて以下に説明する。 【0099】 判定部57は、出力選択部150から解析結果情報と付加情報と適合判定部143−1〜143−N及び適合判定部146−1〜146−N並びに適合判定部149−1〜149−Nが検出した処理情報が入力され、入力される解析結果情報に基づいて、解析結果情報に対応するIPパケットが、フラグメント処理されているIPパケットか否かを判定する。また、判定部57は、入力される解析結果情報に基づいて、解析結果情報に対応するIPパケットがフラグメントIPパケットであると判定した場合、さらに、当該フラグメントIPパケットが先頭フラグメントIPパケットであるか否かを判定する。 【0100】 登録管理部55aは、判定部57が、解析結果情報に対応するIPパケットが先頭フラグメントIPパケットであると判定した場合、判定部57から入力される解析結果情報からパケット識別情報を抽出し、抽出したパケット識別情報をフラグメント追跡検索情報の「フラグメント追跡条件」に記録し、記録した「フラグメント追跡条件」に対応する「フラグメント追跡結果」に判定部57から入力される処理情報を記録する。また、登録管理部55aは、フラグメント追跡検索テーブル53に新たなフラグメント追跡検索情報を記録する際に、記録するエントリに対応する記録経過タイマ56を起動する。 【0101】 検出部51aは、判定部57が、解析結果情報に対応するIPパケットが非先頭フラグメントIPパケットであると判定した場合、判定部57から入力される解析結果情報からパケット識別情報を抽出し、パケット識別情報を含むフラグメント追跡検索情報をフラグメント追跡検索テーブル53aのフラグメント追跡検索情報から検出し、検出したフラグメント追跡検索情報に含まれるフラグメント追跡結果情報を読み出して出力する。また、検出部51aは、フラグメント追跡検索情報を検出した際に、入力される解析結果情報と、検出したフラグメント追跡検索情報のエントリ番号を判定・削除部52に入力する。 【0102】 次に、図12を参照しつつ第2実施形態における検索部40aの動作について説明する。まず、最初にパーサ部30が解析結果情報と付加情報を入力選択部140に入力すると、入力選択部140は、入力される解析結果情報と付加情報とをNAT/NAPT検索部45aの適合判定部143−1に入力する。また、NAT/NAPT検索部45aの読出部142は、NAT/NAPT検索テーブル141から最初のエントリのNAT/NAPT検索情報を読み出し、読み出したNAT/NAPT検索情報を適合判定部143−1〜143−Nの全てに入力する。そして、それぞれの適合判定部143−1〜143−Nにおいて上記の適合判定処理が行われるが、適合判定部143−1以外の適合判定部143−2〜143−Nには解析結果情報が入力されていないため、判定する対象が存在しないことになる。適合判定部143−1は、適合判定を行い、解析結果情報に含まれるヘッダ情報等が検索条件情報に一致した場合、最初のエントリを示すエントリ番号、例えば「1」を内部の記憶領域に記憶する。一方、一致しない場合には、エントリ番号の記録を行わない。 【0103】 次に、入力選択部140は、パーサ部30から入力されている次の解析結果情報と付加情報とを適合判定部143−2に入力する。また、読出部142は、NAT/NAPT検索テーブル141からエントリ番号が2番のフィルタ分類検索情報を読み出し、読み出したフィルタ分類検索情報を適合判定部143−1〜143−Nの全てに入力する。適合判定部143−1は、1つ前の入力のタイミングで入力された解析結果情報を記憶しており、当該解析結果情報と次のエントリ番号、例えば「2」に対応するNAT/NAPT検索情報との適合判定を行う。適合判定部143−2は、入力選択部140から入力された解析結果情報とエントリ番号が「2」のNAT/NAPT検索情報との適合判定処理を行う。 【0104】 1つの解析結果情報と全てのNAT/NAPT検索情報との適合判定処理が終了するまで上記の処理が繰り替えし行われ、最初に適合判定処理が終了する適合判定部143−1は、全てのNAT/NAPT検索情報に基づいて最終的に内部の記憶領域に記録しているエントリ番号に対応する処理情報をNAT/NAPT検索テーブル141から読み出し、読み出した処理情報と解析結果情報と付加情報とを、経路検索部46aの適合判定部146−1に出力する。 【0105】 上記の適合判定処理が、経路検索部46a及びフィルタ・分類検索部42aにおいても同様に行われることで、あるIPパケットの検索処理中に、後続IPパケットの検索を開始する並列検索処理を行うことが可能となる。 【0106】 次に、図13を参照して第2実施形態に係るフラグメント追跡部50aの動作について説明する。最初に、出力選択部150がフラグメント追跡部50aの判定部57に解析結果情報と付加情報と適合判定部143−1〜143−N及び適合判定部146−1〜146−N並びに適合判定部149−1〜149−Nが検出した処理情報とを入力する(ステップSf1)。判定部57は、入力される解析結果情報に含まれるフラグメント解析情報に基づいて、フラグメントIPパケットか否かを判定する(ステップSf2)。判定部57は、解析結果情報に対応するIPパケットがフラグメントIPパケットでないと判定した場合、処理情報と付加情報とをCPU転送判定部61に出力する(ステップSf6)。 【0107】 一方、判定部57は、解析結果情報に対応するIPパケットがフラグメントIPパケットであると判定した場合、次に、解析結果情報に含まれるフラグメント解析情報に基づいて、フラグメントIPパケットが先頭フラグメントIPパケットであるか否かを判定する(ステップf3)。判定部57が、フラグメントIPパケットが先頭フラグメントIPパケットであると判定した場合、処理情報に含まれるフラグメント追跡フラグが「ON」であるか否かを判定する(ステップSf4)。フラグメント追跡フラグが「ON」でない場合、判定部57は、処理情報と解析結果情報を登録管理部55aに入力するとともに、処理情報と付加情報とをCPU転送判定部61に出力する(ステップSf6)。一方、フラグメント追跡フラグが「ON」の場合、判定部57は、処理情報と解析結果情報とを登録管理部55aに入力し、ステップSf6の処理を行う。登録管理部55aは、入力される解析結果情報からパケット識別情報を抽出し、抽出したパケット識別情報をフラグメント追跡検索情報の「フラグメント追跡条件」に記録し、記録した「フラグメント追跡条件」に対応する「フラグメント追跡結果」に入力された処理情報を記録する。このとき、登録管理部55は、新たに記録したフラグメント追跡検索情報のエントリ番号に対応する記録経過タイマ56を起動する(ステップSf5)。 【0108】 一方、ステップSf3において、判定部57が、フラグメントIPパケットが先頭フラグメントIPパケットでないと判定した場合、判定部57は、解析結果情報と処理情報と付加情報とを検出部51aに入力する。検出部51aは、入力される解析結果情報に含まれるヘッダ情報からフラグメントIPパケットを識別するためのパケット識別情報を抽出し、抽出したパケット識別情報に基づいてフラグメント追跡検索テーブル53のフラグメント追跡検索情報を検索する。そして、検索により、抽出したパケット識別情報に一致するパケット識別情報がフラグメント追跡検索情報から検出するか否かを判定する(ステップSf7)。検索部51aは、一致するパケット識別情報を含むフラグメント追跡検索情報を検出できなかった場合、ステップSf6に進む。一方、検出部51aは、一致するパケット識別情報を含むフラグメント追跡検索情報を検出した場合、フラグメント追跡検索テーブル53から当該パケット識別情報に対応するフラグメント追跡結果情報を読み出す(ステップSf8)。そして、検出部51は、読み出したフラグメント追跡結果情報と付加情報とをCPU転送判定部61に出力する(ステップSf9)。 【0109】 上記の第2実施形態に係るフラグメント追跡処理では、フィルタ・分類検索部42aが受信する全てのIPパケットに対して複数の適合判定部により並列にフィルタ・分類検索の処理を行う。そして、フラグメント追跡検索部が、受信したIPパケットが先頭フラグメントIPパケットの場合、先頭フラグメントIPパケットに基づいて検索された処理情報を、同じIPパケットから分割されたフラグメントIPパケットを特定するパケット識別情報とともにフラグメント追跡検索テーブル53に記録しておく構成とした。これにより、第1実施形態と同じく、非先頭フラグメントIPパケットを受信した場合に、データを再構築することなく先頭フラグメントIPパケットに対して行った処理と同じ処理を非先頭フラグメントIPパケットに対して適用することが可能となる。 【0110】 ところで、第1実施形態では、非先頭フラグメントIPパケットに対して先頭フラグメントIPパケットと同じ処理を適用させるためには、先頭フラグメントIPパケットに基づいてフラグメント追跡検索テーブル53に処理情報が記録されるまでの間、非先頭フラグメントIPパケットをバッファリングさせる等の対処を行う必要がある。また、フラグメント追跡検索テーブル53から非先頭フラグメントIPパケットに対応する処理情報が検出されない場合、フィルタ・分類検索部42に処理情報を検出させる処理をさせることになり、フィルタ・分類検索部42において受信IPパケットの判定処理の工程数が多くなる。 【0111】 上述した第2実施形態では、全ての受信したIPパケットに対してフィルタ・分類検索部42aによる処理が行われるため、非先頭フラグメントIPパケットについては、フラグメント追跡検索テーブル53から処理情報が検出できた場合は、検出した処理情報を適用し、検出できない場合にはフィルタ・分類検索部42aが検出した処理情報を適用する構成となり受信IPパケットの判定処理の工程数を第1実施形態より軽減することができる。また、フィルタ・分類検索部42aにおいて複数の適合判定部45−1〜45−Nにより並列して行うことができるため、あるIPパケットの検索処理中に、後続IPパケットの検索を開始することができるため、先頭フラグメントIPパケットを最初に受信する場合、後続する非先頭フラグメントIPパケットをバッファリングさせる等の対処を行う必要なくフラグメント追跡処理を行うことが可能となる。 【0112】 なお、第2実施形態において、記録経過タイマ56、判定・削除部52及び削除保留タイマ54の動作は、第1実施形態と同じ動作を行うこととなる。 【0113】 また、上記の第2実施形態の構成において、NAT/NAPT検索部45a及び経路検索部46aは、フィルタ・分類検索部42aの出力に接続し、フィルタ・分類検索処理の後に、NAT/NAPT検索処理及び経路検索処理を行うようにしてもよい。また、フィルタ・分類検索部42aの構成も、フィルタ・分類検索テーブル147を、フィルタ検索に関する情報と、分類検索に関する情報に分け、それぞれが独立して検索処理を行うように構成してもよい。 【0114】 また、上述した、第1及び第2実施形態において、エントリ番号とは、情報を記憶するテーブルのエントリを特定するための値、すなわちポインタのようなものであり、当該テーブルがメモリに割り当てられる場合には、エントリごとの先頭のメモリのアドレスがエントリ番号であってもよい。 【0115】 なお、本発明の接続部は、WAN用MACI/F11あるいはLAN用MACI/F12に対応する。また、本発明の記録手段は、登録管理部55に対応し、第1の検出手段は、検出部43及び適合判定部149−1〜149−Nに対応し、検出手段及び第2の検出手段は、検出部51及び検出部51aに対応する。また、本発明の分類検索情報は、フィルタ・分類検索情報に対応し、追跡検索記憶手段は、フラグメント追跡検索テーブル53に対応する。また、本発明の第1の判定手段は、判定部41、第2の判定手段は、判定部57に対応し、第3の判定手段及び削除手段は、判定・削除部52に対応する。また、本発明の第1のタイマは、記録経過タイマ56に対応し、第2のタイマは、削除保留タイマ54に対応する。また、本発明のパケット処理手段は、検索部40及び40aから出力される情報を処理するCPU転送判定部61及びキュー選択部62、QoS部70等に対応する。 【図面の簡単な説明】 【0116】 【図1】第1実施形態に係る通信処理回路の内部構成を示すブロック図である。 【図2】第1実施形態に係る検索部の内部構成を示すブロック図である。 【図3】第1実施形態に係るフィルタ・分類検索テーブルのデータ構成を示した図である。 【図4】第1実施形態に係るフラグメント追跡検索テーブルのデータ構成を示した図である。 【図5】第1実施形態に係るフラグメント追跡処理を示したフローチャートである。 【図6】第1実施形態に係る閾値時間経過時におけるフラグメント追跡検索テーブルの削除処理を示したフローチャートである。 【図7】第1実施形態に係る最大計測時間経過時におけるフラグメント追跡検索テーブルの削除処理を示したフローチャートである。 【図8】第1実施形態に係るフラグメント追跡検索テーブルの削除処理を説明するための図である。 【図9】第1実施形態に係る最後尾フラグメントIPパケット受信時のフラグメント追跡検索テーブルにおける削除保留処理を示したフローチャートである。 【図10】第1実施形態に係る最後尾フラグメントIPパケット受信時の削除保留タイマ満了時のフラグメント追跡検索テーブルにおける削除処理を示したフローチャートである。 【図11】第1実施形態に係る最後尾フラグメントIPパケット受信時のフラグメント追跡検索テーブルの削除処理を説明するための図である。 【図12】第2実施形態における検索部の内部構成を示したブロック図である。 【図13】第2実施形態に係るフラグメント追跡処理を示したフローチャートである。 【符号の説明】 【0117】 40 検索部 41 判定部 50 フラグメント追跡部 51 検出部 52 判定・削除部 53 フラグメント追跡検索テーブル 54 削除保留タイマ 55 登録管理部 56 記録経過タイマ 42 フィルタ・分類検索部 43 検出部 44 フィルタ・分類検索テーブル
|
【出願人】 |
【識別番号】000004226 【氏名又は名称】日本電信電話株式会社 【識別番号】591230295 【氏名又は名称】NTTエレクトロニクス株式会社
|
【出願日】 |
平成17年10月26日(2005.10.26) |
【代理人】 |
【識別番号】100064908 【弁理士】 【氏名又は名称】志賀 正武
【識別番号】100108453 【弁理士】 【氏名又は名称】村山 靖彦
|
【公開番号】 |
特開2007−124117(P2007−124117A) |
【公開日】 |
平成19年5月17日(2007.5.17) |
【出願番号】 |
特願2005−311344(P2005−311344) |
|