(57)【要約】【課題】  メモリコストを削減可能とし、性能の低下を低減可能なＩＰフラグメントパケット処理装置を提供する。【解決手段】  ＩＰフラグメントパケット処理部２は、レイヤ４ヘッダ情報を含む先頭フラグメントパケットを受信するまで、非先頭フラグメントパケットをバッファリングし、先頭フラグメントパケットを先頭として、バッファリングしていたフラグメントパケットを送信する。パケット解析部１は先頭フラグメントパケットの場合、連想記憶メモリ４へフラグメント識別情報を登録し、連想記憶メモリ４への登録情報と対応したキャッシュメモリ５へレイヤ４ヘッダ情報を格納する。パケット解析部１は中間または最終フラグメントパケットの場合、パケット識別情報にて連想記憶メモリ４を検索し、その検索結果に対応するキャッシュメモリ５からレイヤ４ヘッダ情報を読出し、高速小容量メモリ３に上書きする。【選択図】      図１
2008205868.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケットを処理するＩＰフラグメントパケット処理装置であって、
フラグメントパケットを先頭フラグメントパケットが到着するまでバッファリングする手段と、前記先頭フラグメントパケットが到着した時に当該パケットを先頭にそれまでバッファリングしていたフラグメントパケットを送出する手段と、前記先頭フラグメントパケット受信時にレイヤ４ヘッダ情報をキャッシュしておく手段と、そのキャッシュしておいた前記レイヤ４ヘッダ情報を中間及び最終フラグメントパケットの受信時に使用して当該パケットを処理する手段とを有することを特徴とするＩＰフラグメントパケット処理装置。
【請求項２】
ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおけるＩＰフラグメントパケットを処理することを特徴とする請求項１記載のＩＰフラグメントパケット処理装置。
【請求項３】
前記レイヤ４ヘッダ情報に加えてレイヤ３オプション情報をキャッシュデータとして保存することを特徴とする請求項１または請求項２記載のＩＰフラグメントパケット処理装置。
【請求項４】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケットを処理するＩＰフラグメントパケット処理装置が、フラグメントパケットを先頭フラグメントパケットが到着するまでバッファリングする処理と、前記先頭フラグメントパケットが到着した時に当該パケットを先頭にそれまでバッファリングしていたフラグメントパケットを送出する処理と、前記先頭フラグメントパケット受信時にレイヤ４ヘッダ情報をキャッシュしておく処理と、そのキャッシュしておいた前記レイヤ４ヘッダ情報を中間及び最終フラグメントパケットの受信時に使用して当該パケットを処理する処理とを実行することを特徴とするＩＰフラグメントパケット処理方法。
【請求項５】
前記ＩＰフラグメントパケット処理装置が、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおけるＩＰフラグメントパケットを処理することを特徴とする請求項４記載のＩＰフラグメントパケット処理方法。
【請求項６】
前記ＩＰフラグメントパケット処理装置が、前記レイヤ４ヘッダ情報に加えてレイヤ３オプション情報をキャッシュデータとして保存することを特徴とする請求項４または請求項５記載のＩＰフラグメントパケット処理方法。
【請求項７】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケットを処理するＩＰフラグメントパケット処理装置において実行されかつコンピュータで実行可能なプログラムであって、
前記コンピュータに、フラグメントパケットを先頭フラグメントパケットが到着するまでバッファリングする処理と、前記先頭フラグメントパケットが到着した時に当該パケットを先頭にそれまでバッファリングしていたフラグメントパケットを送出する処理と、前記先頭フラグメントパケット受信時にレイヤ４ヘッダ情報をキャッシュしておく処理と、そのキャッシュしておいた前記レイヤ４ヘッダ情報を中間及び最終フラグメントパケットの受信時に使用して当該パケットを処理する処理とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＩＰフラグメントパケット処理装置及びそれに用いるＩＰフラグメントパケット処理方法並びにプログラムに関し、特にＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケットの処理方式に関する。
【背景技術】
【０００２】
従来、ＩＰフラグメントパケットの処理方式においては、大容量のバッファ領域を用意しておき、全てのフラグメントパケットが揃うのを待ってからリアセンブルして以降の処理を行っている。
【０００３】
このリアセンブルを行うことなく、ＩＰフラグメントパケットを処理する方法としては、レイヤ４ヘッダ情報を持つＩＰフラグメントパケットの受信時にレイヤ３ヘッダ情報とともに出力ポート情報を記憶しておき、レイヤ４ヘッダ情報を持たないＩＰフラグメントパケットの受信時に、記憶しておいた出力ポート情報を用いることで、当該ＩＰフラグメントパケットを転送する方法が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００３−１４３２０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来のＩＰフラグメントパケットの処理方式では、リアセンブルするために大容量のバッファ領域が必要となり、メモリコストを抑えられないという課題がある。
【０００５】
また、従来のＩＰフラグメントパケットの処理方式では、リアセンブルするために全てのフラグメントパケットが揃うのを待たなければならないため、性能を上げることができないという課題がある。
【０００６】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＩＰネットワークのＩＰ層では、最大６４Ｋバイトまでのデータを一度に送信することが可能であるが、実際には物理層の制限で、より短いデータ［例えば、Ｅｔｈｅｒｎｅｔ（登録商標）の場合には１５００バイト］しか送信することができない。
【０００７】
よって、一度に送信可能な長さよりも長いデータを送信する場合には、送信側で送信可能な長さに分割して送信し、それを受信側で再構築している。これをＩＰフラグメントというが、ＩＰフラグメントパケットを処理する場合、中間／最終フラグメントパケットはレイヤ４ヘッダ情報を含んでいないため、そのままではレイヤ４ヘッダ情報を必要とする処理を行うことができず、事前にリアセンブルする必要がある。
【０００８】
また、フラグメントされたＩＰパケットはそれぞれ独立にネットワーク内を転送されるため、必ずしも送信された順番で到着するとは限らない。よって、リアセンブルするためにはフラグメントされた全てのパケットが揃うまで大容量のバッファメモリへバッファリングしておく必要がある。その結果、従来のＩＰフラグメントパケットの処理方式では、メモリコストの増大や性能の低下を招いている。上記の特許文献１記載の技術では、出力ポート情報を後段の処理にて変更することが不可能である。
【０００９】
そこで、本発明の目的は上記の問題点を解消し、メモリコストを削減することができ、性能の低下を低減することができるＩＰフラグメントパケット処理装置及びそれに用いるＩＰフラグメントパケット処理方法並びにプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明によるＩＰフラグメントパケット処理装置は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケットを処理するＩＰフラグメントパケット処理装置であって、
フラグメントパケットを先頭フラグメントパケットが到着するまでバッファリングする手段と、前記先頭フラグメントパケットが到着した時に当該パケットを先頭にそれまでバッファリングしていたフラグメントパケットを送出する手段と、前記先頭フラグメントパケット受信時にレイヤ４ヘッダ情報をキャッシュしておく手段と、そのキャッシュしておいた前記レイヤ４ヘッダ情報を中間及び最終フラグメントパケットの受信時に使用して当該パケットを処理する手段とを備えている。
【００１１】
本発明によるＩＰフラグメントパケット処理方法は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケットを処理するＩＰフラグメントパケット処理装置が、フラグメントパケットを先頭フラグメントパケットが到着するまでバッファリングする処理と、前記先頭フラグメントパケットが到着した時に当該パケットを先頭にそれまでバッファリングしていたフラグメントパケットを送出する処理と、前記先頭フラグメントパケット受信時にレイヤ４ヘッダ情報をキャッシュしておく処理と、そのキャッシュしておいた前記レイヤ４ヘッダ情報を中間及び最終フラグメントパケットの受信時に使用して当該パケットを処理する処理とを実行している。
【００１２】
本発明によるプログラムは、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケットを処理するＩＰフラグメントパケット処理装置において実行されかつコンピュータで実行可能なプログラムであって、
前記コンピュータに、フラグメントパケットを先頭フラグメントパケットが到着するまでバッファリングする処理と、前記先頭フラグメントパケットが到着した時に当該パケットを先頭にそれまでバッファリングしていたフラグメントパケットを送出する処理と、前記先頭フラグメントパケット受信時にレイヤ４ヘッダ情報をキャッシュしておく処理と、そのキャッシュしておいた前記レイヤ４ヘッダ情報を中間及び最終フラグメントパケットの受信時に使用して当該パケットを処理する処理とを実行させている。
【００１３】
すなわち、本発明のＩＰフラグメントパケット処理方法は、先頭フラグメントパケット受信時にレイヤ４ヘッダ情報をキャッシュしておき、中間または最終フラグメントパケット受信時にキャッシュしておいた情報を使用することによって、レイヤ４ヘッダ情報を必要とする処理を実行することを可能としている。
【００１４】
ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケットの到着順序に関しては、全てのフラグメントパケットが到着するまでバッファリングするのではなく、先頭フラグメントパケットが到着するまでバッファリングしておき、先頭フラグメントパケットが到着したら、そのパケットを先頭にそれまでバッファリングしていたフラグメントパケットを処理することで、常に先頭フラグメントパケットから処理することが可能となる。
【００１５】
本発明のＩＰフラグメントパケット処理方法は、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ）ネットワークにおけるＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ）フラグメントパケットを処理する場合において、先頭フラグメントパケットが持つレイヤ４ヘッダ情報を中間／後続フラグメントパケットからも使用可能とすることで、リアセンブルすることなしに、中間／後続フラグメントパケットを処理可能とすることを特徴としている。
【００１６】
よって、本発明のＩＰフラグメントパケット処理方法では、通常、リアセンブルするために必要となる大容量バッファメモリの確保によるメモリコストの増大や性能の低下を低減することが可能となる。
【発明の効果】
【００１７】
本発明は、上記のような構成及び動作とすることで、メモリコストを削減することができ、性能の低下を低減することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の実施例について図面を参照して説明する。
【実施例１】
【００１９】
図１は本発明の一実施例によるＩＰフラグメントパケット処理装置の構成を示すブロック図である。図１において、本発明の一実施例によるＩＰフラグメントパケット処理装置は、パケット解析部１と、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）フラグメントパケット処理部２と、高速小容量記憶メモリ３と、連想記憶メモリ４と、キャッシュメモリ５と、アクセスコントロールリスト制御部６とから構成されている。
【００２０】
パケット解析部１はレイヤ３ヘッダ情報の抽出／保存、フラグメントパケットか否かの判定、レイヤ４ヘッダ情報が存在する場合にその抽出／保存を行う。ＩＰフラグメントパケット処理部２はキューを介してパケット解析部１につながっており、レイヤ４情報を含む先頭フラグメントパケットが先頭となるように並び替えてパケット解析部１へ戻す。
【００２１】
連想記憶メモリ４はパケット解析部１につながっており、フラグメントパケット識別情報４１の登録／検索を行う。キャッシュメモリ５は連想記憶メモリ４と同様に、パケット解析部１につながっており、レイヤ４ヘッダ情報５１の保存／読出しを行う。
【００２２】
高速小容量記憶メモリ３はパケット解析部１とアクセスコントロールリスト制御部６に跨ってつながっており、レイヤ３ヘッダ情報３１及びレイヤ４ヘッダ情報３２の保存／読出しを行う。アクセスコントロールリスト制御部６は当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成の説明は省略する。
【００２３】
図２は本発明の一実施例によるＩＰフラグメントパケット処理方法を示すフローチャートである。これら図１及び図２を参照して本発明の一実施例によるＩＰフラグメントパケット処理方法について説明する。
【００２４】
パケット解析部１はＩＰパケット（「３」，「１」，「２」）が与えられると、そのＩＰパケット（「３」，「１」，「２」）を解析し（図２ステップＳ１）、フラグメント識別情報及びレイヤ３／レイヤ４ヘッダ情報を抽出し（図２ステップＳ２）、レイヤ３ヘッダ情報とレイヤ４ヘッダ情報とを高速小容量メモリ３へ保存する（図２ステップＳ３）。
【００２５】
パケット解析部１は受信パケット（「３」，「１」，「２」）がフラグメントパケットの場合（図２ステップＳ４）、その受信パケット（「３」，「１」，「２」）をＩＰフラグメントパケット処理部２へ渡す（図２ステップＳ５）。
【００２６】
ＩＰフラグメントパケット処理部２では、レイヤ４ヘッダ情報を含む先頭フラグメントパケット（「１」）を受信するまで、非先頭フラグメントパケット（「３」）をバッファリングする。ＩＰフラグメントパケット処理部２は、レイヤ４ヘッダ情報を含むフラグメントパケット（「１」）を受信すると、そのパケットを先頭として、それまでバッファリングしていたフラグメントパケット（「１」，「３」，「２」）をパケット解析部１へ送信する。
【００２７】
パケット解析部１はＩＰフラグメントパケット処理部２から受信したパケット（「１」，「３」，「２」）が先頭フラグメントパケット（「１」）の場合（図２ステップＳ６）、連想記憶メモリ４へフラグメント識別情報を登録し（図２ステップＳ７）、連想記憶メモリ４への登録情報と対応したキャッシュメモリ５の領域へレイヤ４ヘッダ情報を格納する（図２ステップＳ８）。
【００２８】
パケット解析部１は受信フラグメントパケットが中間または最終フラグメントパケット（「３」，「２」）の場合、パケット識別情報を検索キーとして連想記憶メモリ４を検索し（図２ステップＳ９）、ヒットしたエントリに対応するキャッシュメモリ５の領域からレイヤ４ヘッダ情報を読出し、上記のステップＳ３にて保存した高速小容量メモリ３上のレイヤ４ヘッダ情報を上書きする（図２ステップＳ１０）。
【００２９】
アクセスコントロールリスト制御部６は、高速小容量メモリ３の情報を利用してレイヤ４ヘッダ情報を利用したアクセスコントロールを行い（図２ステップＳ１１）、受信パケット（「１」，「３」，「２」）を送出する。
【００３０】
このように、本実施例では、リアセンブルせずに処理が行えるため、リアセンブルのための大量のバッファ領域が不要となり、メモリコストを削減することができる。また、本実施例では、リアセンブルせずに処理が行えるため、リアセンブルのために全てのフラグメントパケットが揃うのを待つ必要がなくなり、性能低下の度合いを低減することができる。
【実施例２】
【００３１】
図３は本発明の他の実施例によるキャッシュデータ構成を示す図である。本発明の他の実施例では、その基本的構成が上記の本発明の一実施例と同様であるが、キャッシュデータ内容についてさらに工夫している。
【００３２】
図３において、本発明の他の実施例によるキャッシュデータ構成では、レイヤ４ヘッダ情報に加えてレイヤ３オプション情報をキャッシュデータとして保存している。すなわち、本発明の他の実施例では、キャッシュデータとして、「ＥＳＰ識別フラグ」、「ＡＨ識別フラグ」、「ＩＰｖ４／ｖ６  Ｏｐｔｉｏｎｓ識別フラグ」、「Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ  Ｎｕｍｂｅｒ（ＴＣＰ／ＵＤＰ）」、「Ｓｏｕｒｃｅ  Ｐｏｒｔ  Ｎｕｍｂｅｒ（ＴＣＰ／ＵＤＰ）」、「Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ（ＴＣＰ）」、「Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ  Ｎｕｍｂｅｒ（ＴＣＰ）」、「Ｄａｔａ  Ｏｆｆｓｅｔ（ＴＣＰ）」、「ＴＣＰ  ｆｌａｇｓ（ＴＣＰ）」、「Ｗｉｎｄｏｗサイズ（ＴＣＰ）」を保存している。
【００３３】
これによって、本発明の他の実施例では、仮に先頭フラグメントパケットと中間／最終フラグメントパケットとの間でレイヤ３オプション情報が異なっていたとしても、先頭フラグメントパケットのレイヤ３オプション情報を使用することによって、後段にレイヤ３オプション情報にて処理を変える処理部があった場合でも、先頭パケットと同様の処理を実施させることができる。
【００３４】
このように、本実施例では、キャッシュデータとしてレイヤ３オプション情報まで対象にしているので、後段にてレイヤ３オプション情報によって処理内容を変えている処理部があった場合でも、リアセンブルした場合と同様の処理を行えるという効果が得られる。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施例によるＩＰフラグメントパケット処理装置の構成を示すブロック図である。
【図２】本発明の一実施例によるＩＰフラグメントパケット処理方法を示すフローチャートである。
【図３】本発明の他の実施例によるキャッシュデータ構成を示す図である。
【符号の説明】
【００３６】
１  パケット解析部
２  ＩＰフラグメントパケット処理部
３  高速小容量記憶メモリ
４  連想記憶メモリ
５  キャッシュメモリ
６  アクセスコントロールリスト制御部
３１  レイヤ３ヘッダ情報
３２，５１  レイヤ４ヘッダ情報
４１  フラグメントパケット識別情報
【図１】
2008205868.tif 000003
【図２】
2008205868.tif 000004
【図３】
2008205868.tif 000005