(57)【要約】【課題】データ容量の大きいパケットに対しても、ＩＰフィルタリング、ＮＡＴアドレス変換および暗号化などの中継処理を行い、パケットのデータ転送を確実に行うこと。【解決手段】分割処理されたＩＰパケットをパケット蓄積部２６の別々の内部バッファ２６ｄに記憶させて、これら内部バッファ２６ｄを管理するためのバッファ管理ブロック２６ｃを１パケットに一つずつ設け、互いのバッファ管理ブロック２６ｄをダブルリンクキュー構造体によって互いにリンクさせることによって、フラグメントパケットのグループ化を行い、さらに同一フラグメントデータ毎に待ちキュー管理テーブル２６ｂを設けて、バッファ管理ブロック２６ｃの先頭のバッファ管理ブロックを管理させるとともに、これら待ちキュー管理テーブル２６ｂをダブルリンクキュー構造体によって互いにリンクさせて、ＩＰパケットを論理的にリンクさせて再構成させる。【選択図】      図２
2005012697.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワーク間でパケット構成のデータを送受信する際に、該パケットの中継処理を行ってデータ中継するデータ中継方法において、
前記受信したパケットを一旦記憶する記憶工程と、
前記記憶されたパケットを論理的にリンクさせて再構成する再構成工程と、
前記再構成されたパケットの中継処理後に、当該パケットを一括して送信する送信工程と、
を含むことを特徴とするデータ中継方法。
【請求項２】
前記データ中継方法では、前記受信したデータが分割処理されたパケットデータかどうかを判断する判断工程を、
さらに含み、前記記憶工程では、前記判断工程で前記分割処理されたパケットデータと判断された全てのパケットを一旦記憶させ、
前記再構成工程では、前記分割処理されたパケットデータが記憶されると、それぞれのパケットにＩＰヘッダが付加された状態で前記記憶されたパケットを論理的にリンクさせて再構成することを特徴とする請求項１に記載のデータ中継方法。
【請求項３】
前記記憶工程では、分割処理された同一のフラグメントデータを構成するパケットを別々の記憶領域に記憶させ、
前記再構成工程では、前記各パケットの記憶領域を管理ブロックで管理し、かつ該各管理ブロックを互いにリンクさせるとともに、該管理ブロックのうちの先頭の管理ブロックを、前記同一のフラグメントデータ毎に設けた待ち管理テーブルで管理し、かつ該各待ち管理テーブルを互いにリンクさせて、前記分割処理されたパケットを論理的に繋ぐことを特徴とする請求項２に記載のデータ中継方法。
【請求項４】
複数のネットワーク間でパケット構成のデータを送受信するとともに、受信した該パケットを中継処理してデータ中継するデータ中継装置において、
前記通信手段で受信されたパケットを記憶する記憶手段と、
前記記憶手段内のパケットを論理的にリンクさせて再構成する再構成手段と、
前記再構成されたパケットを一括送信する通信手段と、
を備えたことを特徴とするデータ中継装置。
【請求項５】
前記データ中継装置は、分割処理された前記パケットデータを中継しており、
前記受信したパケットが前記分割処理されたパケットデータかどうか判断する判断手段を、
さらに備え、前記記憶手段は、前記判断結果に基づいて、前記分割処理されたパケットの全パケットを一旦記憶し、
前記再構成手段は、前記記憶された各パケットをＩＰヘッダが付加された状態で論理的にリンクさせて再構成し、
前記通信手段は、前記再構成された全てのパケットを一括送信することを特徴とする請求項４に記載のデータ中継装置。
【請求項６】
前記データ中継装置は、前記記憶手段に記憶された先頭のパケット内のヘッダ情報に基づいて、前記分割された各パケットの中継処理を行う中継処理手段を、さらに備えたことを特徴とする請求項４または５に記載のデータ中継装置。
【請求項７】
前記記憶手段は、前記分割処理された同一のフラグメントデータのパケットを、別々の記憶領域に記憶させ、
前記再構成手段は、前記各パケットが記憶される記憶領域を管理するとともに、互いのリンク情報によってリンクされる管理ブロックと、前記同一のフラグメントデータ毎に設けられ、該管理ブロックのうちの先頭の管理ブロックを管理するとともに、互いのリンク情報によってリンクされる待ち管理テーブルとを有し、前記管理ブロックおよび待ち管理テーブルによって、前記分割処理されたパケットを論理的に繋ぐことを特徴とする請求項５または６に記載のデータ中継装置。
【請求項８】
複数のネットワーク間でパケット構成のデータを送受信するデータ中継システムにおいて、
請求項４〜７のいずれか一つに記載のデータ中継装置を備え、受信したパケットを論理的にリンクさせて再構成して一括送信することを特徴とするデータ中継システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、取り込んだパケットをデータ中継する際に、パケットの再構成を行うデータ中継方法、データ中継装置およびその装置を用いたデータ中継システムに関するものである。
【０００２】
【従来の技術】
従来、ルータなどのデータ中継装置は、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ：インターネットサービス事業者）などのバックボーンネットワークとユーザ間に用いられ、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコルを利用したインターネット上に伝送されるパケット構成のデータのデータ中継を行っていた。
【０００３】
このようなデータ中継においては、たとえば特許文献１に示すように、伝送路に転送可能なデータの最大伝送単位（ＭＴＵ）の制限があるので、このＭＴＵよりも大容量のデータに対しては、ＭＴＵを限度として分割し、フラグメントされたＩＰパケットを作成し、このＩＰパケット毎に通信相手先に送信している。このフラグメントされたＩＰパケットは、ルータでの受信時にリアセンブル処理が施された後に、通信相手先のネットワークに転送されている。
【０００４】
なお、図９は、中継されるＩＰパケットのデータと、フラグメントされたパケットのデータフォーマットを示す図である。図において、このＩＰパケットは、ＩＰヘッダと、その後に続くＩＰデータ部とから構成されており、このＩＰデータ部は、ＴＣＰヘッダと、ＴＣＰデータ部とから構成されている。
【０００５】
このＩＰヘッダは、図１０に示すように、ＩＰのプロトコル版数を示すバージョン（Ｖｅｒｓｉｏｎ）と、このＩＰヘッダの長さを示すＩＨＬと、このパケットの配送経路上での取り扱い方法を指定するタイプオブサービス（Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ）と、パケットの全長を示すトータル長（Ｔｏｔａｌ  Ｌｅｎｇｔｈ）と、パケットを識別するためのＩＤとして用いられる識別子（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）と、パケットのフラグメンテーションをコントロールするために用いられるフラグ（Ｆｌａｇｓ）およびオフセット値（Ｆｌａｇｍｅｎｔ  Ｏｆｆｓｅｔ）と、パケットの生存時間を示すタイムツウライブ（Ｔｉｍｅ  ｔｏ  Ｌｉｖｅ）と、パケットのデータ部をどの上位プロトコルに渡すかを示すプロトコル（Ｐｒｏｔｏｃｏｌ）と、ヘッダのチェックサム（ＨｅａｄｅｒＣｈｅｃｋｓｕｍ）と、パケットの送信元ＩＰアドレスを示す送信元アドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）と、パケットの宛先ＩＰアドレスを示す宛先アドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）と、特殊な処理を付加するオプションを指定するオプション（Ｏｐｔｉｏｎｓ）と、オプションの指定に伴い変化するヘッダ長を調整するためのパッディング（Ｐａｄｄｉｎｇ）の各フィールドから構成されている。
【０００６】
ルータでは、送信側のネットワークからＩＰパケットを受信すると、このＩＰヘッダ内のトータル長、識別子、フラグ、フラグメントオフセット、プロトコル、送信元アドレスおよびあて先アドレスなどの情報を取得する。これら情報を取得すると、ルータは、フラグとフラグメントオフセットの情報に基づいて、このＩＰパケットがフラグメント処理されたパケットかどうかの判断を行う。そして、この受信されたＩＰパケットがフラグメントされたパケットの場合には、ルータは、このパケットをメモリに一旦記憶させて、全てのフラグメント処理されたパケットが揃うと、リアセンブル処理を行う。そして、このデータをフラグメント処理前の元の一つのＩＰパケットデータに再構築して、ＩＰフィルタリングやＮＡＴによるアドレス変換などの中継処理を行った後に、このデータを通信相手先のネットワークに転送している。
【０００７】
ところで、このルータでは、フラグメントされたパケットの暗号化処理を行う場合があり、この場合には、全ての分割されたパケットを受信すると、分割前の一つのパケットにリアセンブルしてから暗号化処理を行っている。この暗号化処理は、たとえばルーティング制御などを行うルータ内の汎用品のＣＰＵを用いて行うものもある。この場合には、ＣＰＵは、暗号化処理に特化したソフトウェアを持っていないので、暗号化の処理速度が遅くなってしまい、ルーティングなどの他の処理にも悪影響を与えてしまうことがある。
【０００８】
そこで、この解決策として、暗号化処理用のＣＰＵをルータ内に配置して、暗号化や複合化処理を専用に行い、処理速度を向上させるものもあった。このように、ハードウェアに暗号化処理専用のＣＰＵを用いてパケットの暗号化と複合化処理を行う場合には、ルータは、暗号化・複合化処理用のバッファを内部に設け、このバッファに受信したパケットを格納した後に、この暗号化や複合化の処理を行っていた。
【０００９】
【特許文献１】
特開２００１−５３８０５号公報（第１−３頁、図２）
【００１０】
【発明が解決しようとする課題】
しかしながら、上記従来例では、暗号化・複合化処理用のバッファは、有限の記憶容量、たとえば通常ＭＴＵより少し大きい程度の記憶容量しか持っていないので、処理対象のパケットがこのバッファに記憶できないくらいに大容量の場合には、暗号化や複合化の処理ができずに、パケットを廃棄してしまう可能性があるという問題点があった。
【００１１】
また、汎用のＣＰＵを用いたソフトウェアでの暗号化処理が可能なルータに、暗号化処理専用のＣＰＵを組み合わせた構成のものもあるが、このような構成のルータでは、処理対象のパケットのデータ容量がバッファの記憶容量よりも大きい場合には、汎用のＣＰＵによって暗号化処理がなされることとなり、上述したごとく、暗号化の処理速度が遅くなってしまうという問題点があった。
【００１２】
この発明は、上記問題点に鑑みなされたもので、データ容量の大きいパケットに対しても、ＩＰフィルタリング、ＮＡＴアドレス変換および暗号化などの中継処理を行い、パケットのデータ転送を確実に行うことができるデータ中継方法、データ中継装置およびその装置を用いたデータ中継システムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成するため、請求項１にかかるデータ中継方法では、複数のネットワーク間でパケット構成のデータを送受信する際に、該パケットの中継処理を行ってデータ中継するデータ中継方法において、前記受信したパケットを一旦記憶する記憶工程と、前記記憶されたパケットの構成を変えることなく、論理的にリンクさせて再構成する再構成工程と、前記再構成されたパケットの中継処理後に、当該パケットを一括して送信する送信工程とを含むことを特徴とするデータ中継方法が提供される。
【００１４】
この発明によれば、たとえばフラグメント処理されたＩＰパケットを記憶し、かつパケット構成を変更することなく、リアセンブル処理によって記憶されたパケットを論理的にリンクさせて繋いで再構成を行い、さらにこのパケットの中継処理を行った後に、このパケットを一括して受信側の相手先に転送することで、分割前の元のデータ容量にかかわらずパケットのデータ転送を確実に行う。
【００１５】
また、請求項２にかかるデータ中継方法では、前記受信したデータが分割処理されたパケットデータかどうかを判断する判断工程をさらに含み、前記記憶工程では、前記判断工程で前記分割処理されたパケットデータと判断された全てのパケットを一旦記憶させ、前記再構成工程では、前記分割処理されたパケットデータが記憶されると、それぞれのパケットにＩＰヘッダが付加された状態で前記記憶されたパケットを論理的にリンクさせて再構成することを特徴とする。
【００１６】
この発明によれば、受信したデータがフラグメント処理されたパケットデータかどうか判断し、フラグメント処理されたパケットデータは、全て一旦蓄積された後に、リアセンブル処理を行ってＩＰヘッダが付加された状態でパケットを論理的にリンクさせて繋いで再構成させることで、パケット単位での中継処理およびデータ転送を可能にする。
【００１７】
また、請求項３にかかるデータ中継方法において、前記記憶工程では、分割処理された同一のフラグメントデータを構成するパケットを別々の記憶領域に記憶させ、前記再構成工程では、前記各パケットの記憶領域を管理ブロックで管理し、かつ該各管理ブロックを互いにリンクさせるとともに、該管理ブロックのうちの先頭の管理ブロックを、前記同一のフラグメントデータ毎に設けた待ち管理テーブルで管理し、かつ該各待ち管理テーブルを互いにリンクさせて、前記分割処理されたパケットを論理的に繋ぐことを特徴とする。
【００１８】
この発明によれば、同一のフラグメントデータを構成するＩＰパケットを受信すると、別々の記憶領域に記憶させるとともに、これら記憶領域を管理するための管理ブロックを１パケットに一つずつ設け、各管理ブロックをダブルリンクキュー構造体によって互いにリンクさせることによって、フラグメントパケットのグループ化を行い、さらにこの管理ブロックの先頭の管理ブロックを管理するための待ち管理テーブルを同一のフラグメントデータ毎に設け、ダブルリンクキュー構造体によって互いにリンクさせることで、分割されたＩＰパケットを論理的に繋いで再構成させる。
【００１９】
また、請求項４にかかるデータ中継装置では、複数のネットワーク間でパケット構成のデータを送受信するとともに、受信した該パケットを中継処理してデータ中継するデータ中継装置において、前記通信手段で受信されたパケットを記憶する記憶手段と、前記記憶手段内のパケットを論理的にリンクさせて再構成する再構成手段と、前記再構成されたパケットを一括送信する通信手段とを備えたことを特徴とする。
【００２０】
この発明によれば、受信されたＩＰパケットを一旦記憶手段に記憶するとともに、再構成手段のリアセンブル処理によって記憶されたパケットを論理的にリンクさせて繋いで再構成し、さらにこのパケットの中継処理を行った後に、この再構成されたパケットを一括して受信側の相手先に転送することで、分割前の元のデータ容量にかかわらずパケットのデータ転送を確実に行う。
【００２１】
また、請求項５にかかるデータ中継装置では、分割処理された前記パケットデータを中継するとともに、前記受信したパケットが前記分割処理されたパケットデータかどうか判断する判断手段をさらに備え、前記記憶手段は、前記判断結果に基づいて、前記分割処理されたパケットの全パケットを一旦記憶し、前記再構成手段は、前記記憶された各パケットをＩＰヘッダが付加された状態で論理的にリンクさせて再構成し、前記通信手段は、前記再構成された全てのパケットを一括送信することを特徴とする。
【００２２】
この発明によれば、判断手段で受信されたデータが分割処理されたパケットデータと判断された場合には、分割処理されたパケットの全パケットを記憶手段に一旦記憶し、この全パケットが揃った段階で再構成手段のリアセンブル処理によってパケットを論理的にリンクさせて繋いで再構成させることで、パケット単位での中継処理およびデータ転送を可能にする。
【００２３】
また、請求項６にかかるデータ中継装置では、前記記憶手段に記憶された先頭のパケット内のヘッダ情報に基づいて、前記分割された各パケットの中継処理を行う中継処理手段をさらに備えたことを特徴とする。
【００２４】
この発明によれば、同一フラグメントデータのＩＰパケットは、分割処理されたままの複数のパケットで記憶手段に記憶されているので、レイヤ４のヘッダ情報は先頭のパケット内にのみ存在する。そこで、このデータ中継装置では、リンクされた先頭のパケット内のヘッダ情報に基づいて、分割されたパケットの中継処理を行うことを可能にする。
【００２５】
また、請求項７にかかるデータ中継装置では、前記記憶手段は、前記分割処理された同一のフラグメントデータのパケットを、別々の記憶領域に記憶させ、前記再構成手段は、前記各パケットが記憶される記憶領域を管理するとともに、互いのリンク情報によってリンクされる管理ブロックと、前記同一のフラグメントデータ毎に設けられ、該管理ブロックのうちの先頭の管理ブロックを管理するとともに、互いのリンク情報によってリンクされる待ち管理テーブルとを有し、前記管理ブロックおよび待ち管理テーブルによって、前記分割処理されたパケットを論理的に繋ぐことを特徴とする。
【００２６】
この発明によれば、分割処理されたパケットデータを記憶手段の別々の記憶領域に記憶させて、これら記憶領域を管理するための管理ブロックを１パケットに一つずつ設け、互いの管理ブロックをダブルリンクキュー構造体によって互いにリンクさせることによって、フラグメントパケットのグループ化を行い、さらに同一フラグメントデータ毎に待ち管理テーブルを設けて管理ブロックの先頭の管理ブロックを管理させるとともに、これら待ち管理テーブルをダブルリンクキュー構造体によって互いにリンクさせることで、分割されたＩＰパケットを論理的に繋いで再構成させる。
【００２７】
また、請求項８にかかるデータ中継システムでは、複数のネットワーク間でパケット構成のデータを送受信するデータ中継システムにおいて、請求項４〜７のいずれか一つに記載のデータ中継装置を備え、受信したパケットを論理的にリンクさせて再構成して一括送信することを特徴とする。
【００２８】
この発明によれば、請求項４〜７のデータ中継装置をシステム内に配設させて、受信した同一フラグメントデータを構成するパケットをダブルリンクキュー構造体によって論理的にリンクさせて再構成することで、データ容量の大きいパケットに対しても、パケットの中継処理やデータ転送を可能にする。
【００２９】
【発明の実施の形態】
以下に図１〜図８の添付図面を参照して、この発明にかかるデータ中継方法、データ中継装置およびその装置を用いたデータ中継システムの好適な実施の形態を説明する。
【００３０】
（実施の形態）
図１は、この発明にかかるデータ中継システムの概略構成を示すシステム構成図である。図において、この実施の形態のデータ中継システムは、バックボーンネットワーク１上に設けられたＩＳＰの各ＰＥルータ１０〜１３と、この発明にかかるデータ中継装置であるユーザ用ルータ２０〜５０とを接続させるとともに、ユーザ用ルータ２０〜５０には、特定ユーザの各ＰＣ６１〜６３，７１〜７ｎ（ｎは任意の整数）が接続されている。この構成において、たとえばルータ１１〜１３は、バックボーンネットワーク１を介して接続されてＷＡＮを構築し、ルータ２０とＰＣ６１〜６３とは、ＬＡＮ１を構築し、またルータ３０とＰＣ７１〜７ｎは、ＬＡＮ２を構築している。
【００３１】
これらルータ２０〜５０は、同一の構成からなっているので、ここでは代表してルータ２０の構成を示す。ルータ２０は、図２に示すように、ＷＡＮ側のルータ１０と接続されるＩ／Ｆ２１と、ＬＡＮ１側のＩ／Ｆ２２と、ルーティング制御用のプロトコルによる経路情報の制御処理を行うルーティング制御部２３と、ＩＰパケットデータの再構成を行う再構成処理部２４と、ＩＰパケットのアドレス変換を含むデータ中継処理を行う中継処理部２５と、受信されたＩＰパケットを蓄積するパケット蓄積部２６と、アドレス変換テーブル２７とから構成されている。
【００３２】
パケット蓄積部２６は、待ちキュー管理テーブル２６ｂの情報を記憶するルートキュー２６ａと、同一のフラグメントデータを構成するＩＰパケットを管理するための待ちキュー管理テーブル２６ｂと、内部バッファを管理するためのバッファ管理ブロック２６ｃと、各ＩＰパケットが記憶される内部バッファ２６ｄとから構成されており、この実施の形態では、これらルートキュー２６ａ、待ちキュー管理テーブル２６ｂ１，２６ｂ２、バッファ管理ブロック２６ｃ１〜２６ｃ５および内部バッファ２６ｄ１〜２６ｄ５を、図３のデータ構造に示すように、互いにリンクさせて繋いだ状態で再構成されている。
【００３３】
このパケット蓄積部２６のうち、ルートキュー２６ａには、待ちキュー管理テーブル２６ｂ，２６ｂ１，２６ｂ２が作成される度に、この待ちキュー管理テーブル２６ｂ１，２６ｂ２の情報が記憶されている。待ちキュー管理テーブル２６ｂ，２６ｂ１，２６ｂ２は、図４に示すように、パケットを保持しておくためのもので、異なるフラグメントデータ毎に作成されている。このテーブル２６ｂ，２６ｂ１，２６ｂ２には、各待ちキュー管理テーブルをダブルリンクするためのキュー構造体からなるダブルリンクキューと、待ちキューを保持するためのタイムアウト時間と、受信したＩＰパケット（フラグメントパケット）のプロトコルと、同じくＩＰパケットのＩＤ（識別子）と、同じくＩＰパケットの送信元ＩＰアドレスと、同じくＩＰパケットの宛先ＩＰアドレスと、パケットを保持するために、先頭のバッファ管理ブロックをリンクするシングルリンクキュー構造体からなるシングルリンクキューとから構成されている。この待ちキュー管理テーブル２６ｂ，２６ｂ１，２６ｂ２は、上述したタイムアウト時間によって一定期間もしくは全ての同一フラグメントパケットを受信するまでパケット毎に保持されており、この待ちキュー管理テーブル２６ｂ，２６ｂ１，２６ｂ２のタイムアウト処理は、既存のタイマロジックを使用して行うものとする。
【００３４】
バッファ管理ブロック２６ｃ，２６ｃ１〜２６ｃ５は、ＩＰパケットが記憶される内部バッファ毎に作成されており、図５の構成図に示すように、同一フラグメントデータを構成するＩＰパケット（以下、「同一フラグメントパケット」という）の各バッファ管理ブロックをダブルリンクするためのキュー構造体からなるダブルリンクキューと、対応する一つのパケットを記憶する内部バッファをリンクするためのポインタと、バッファ管理のための諸パラメータを記憶するバッファ管理ブロック用諸パラメータとから構成されている。
【００３５】
再構成処理部２４は、Ｉ／Ｆ２１または２２で受信されたＩＰパケットが、送信元のネットワークでフラグメント処理が施されたＩＰパケットかどうか判断している。そして、このＩＰパケットがフラグメント処理されている場合には、このフラグメント処理されているＩＰパケットを、パケット蓄積部２６の内部バッファ２６ｄに一旦蓄積させるとともに、バッファ管理ブロック２６ｃを作成して、内部バッファ２６ｄをリンクさせるとともに、同一フラグメントパケットの各バッファ管理ブロック２６ｃ同士をダブルリンクさせる。
【００３６】
また、再構成処理部２４は、同一フラグメントパケットを管理するバッファ管理ブロックのうち、先頭のＩＰパケットを管理するバッファ管理ブロック、たとえば図３においては、バッファ管理ブロック２６ｃ１と２６ｃ４にリンクする待ちキュー管理テーブル２６ｂ１と２６ｂ２を作成するとともに、この待ちキュー管理テーブル２６ｂ１，２６ｂ２の情報を記憶するルートキュー２６ａを作成する。さらに、再構成処理部２４は、これらルートキュー２６ａと待ちキュー管理テーブル２６ｂ１，２６ｂ２同士をダブルリンクさせる。
【００３７】
すなわち、再構成処理部２４は、バッファ管理ブロックのダブルリンクキュー構造体を利用して、図６のパケット構成の模式図に示すように、同一フラグメントパケットのグループ化を実現している。さらに、再構成処理部２４は、先頭のバッファ管理ブロックとリンクする待ちキュー管理テーブルおよびルートキューのダブルリンク構造体を利用し、受信された全てのフラグメントパケットのダブルリンクを可能にして、パケット蓄積部２６の管理を行っている。
【００３８】
中継処理部２５は、再構成処理部２４で再構成されたＩＰパケットおよびフラグメント処理されていないＩＰパケットのアドレス変換処理を含むＮＡＴ処理やＩＰフィルタリング処理や暗号化処理などの中継処理を行う。すなわち、中継処理部２５は、Ｉ／Ｆ２１または２２からＩＰパケットが入力されると、たとえばＮＡＴ処理の動作を行い、その動作の中でＮＡＴアドレス変換テーブル２７を検索して、このＩＰパケットのうち、ＩＰヘッダの宛先アドレスを、該当するアドレスにアドレス変換し、またＴＣＰヘッダの宛先ポートを、該当するポート番号に変換している。このＮＡＴ処理が終了すると、中継処理部２５は、暗号化処理専用のＣＰＵを用いて、これらＩＰパケットに暗号化や複合化の処理を行ってルーティング制御部２３およびＩ／Ｆ２１または２２を介して転送する。
【００３９】
なお、図６に示すように、このグループ化された同一フラグメントパケットのうち、先頭のＩＰパケットには、レイヤ４の情報であるＴＣＰヘッダが付加されているが、２段目以降のＩＰパケットには、ＴＣＰヘッダが付加されていない。しかし、この実施の形態にかかるルータでは、バッファ管理ブロックのダブルリンクキューに同一フラグメントパケットをリンクさせているため、データ転送に関しては、先頭の管理ブロックを用いて、このブロックのシングルリンクキューにリンクされている内部バッファの記憶内容（先頭のＩＰパケットの情報）を検索して、各ＩＰパケットのデータ転送を行うことができる。
【００４０】
また、ＮＡＴ処理、ＩＰフィルタリング処理または暗号化処理などにより、ＩＰパケットに変更を行う中継処理に関しては、バッファ管理ブロックのダブルリンクキューにリンクされた全てのＩＰパケットに対して、先頭のバッファ管理ブロックにリンクされているＩＰパケットに対して行った中継処理と同じ処理を行う。これにより、この実施の形態では、従来のリアセンブル処理と同様に、レイヤ４の情報を参照した中継処理を行うことができ、受信されたＩＰパケットがフラグメントパケットでも、分割前の元のパケットに戻すことなく、たとえば暗号化処理専用のＣＰＵを用いて、中継処理を実行することができる。
【００４１】
次に、このデータ中継装置のデータ処理の動作を図７、図８のＩＰパケットの流れを示す図およびフローチャートに基づいて説明する。なお、この実施の形態では、ＰＣ７１からＰＣ６１にＩＰパケットを送信する場合について説明する。
【００４２】
図７は、フラグメント処理されたＩＰパケットのネットワーク上の流れを示す図であり、図８は、ＩＰパケットの中継処理の動作を説明するためのフローチャートである。図７において、送信側ネットワークのＰＣ７１は、ＩＰパケットのデータ長に応じてフラグメント処理を行うかどうか決定し、このデータ長が予め規定されたＭＴＵの長さより長い場合に、ＩＰパケットのフラグメント処理を行ってＩＰパケット内のデータ部をＭＴＵ以内の長さに分割し、さらにこのデータ部にコピーしたＩＰヘッダを付加する。この分割されたＩＰパケットはＩ／ＦとＰＥ（プロバイダエッジ）ルータ１１を介してＩＳＰのバックボーンネットワーク１に順番に送信される。このＩＰパケットは、ネットワーク１上でコアルータなどによって転送され、さらにＰＥルータ１０を介して、ＬＡＮ１のＣＥ（カスタマエッジ）ルータ２０に受信される。
【００４３】
ＣＥルータ２０においては、図７に示す中継処理が行われており、まずＩ／Ｆ２１がＩＰパケットを受信すると、再構成処理部２４は、このパケットからレイヤ３の情報を取得する（ステップ１０１）。なお、この実施の形態においては、再構成処理部２４は、レイヤ３の情報としてＩＰヘッダの各フィールド内の情報を取得する。
【００４４】
再構成処理部２４は、これらの情報を取得すると、この中のフラグと、フラグメントオフセットの情報から、このＩＰパケットがフラグメント処理されたパケットかどうかを判断する（ステップ１０２）。ここで、このＩＰパケットがフラグメント処理されたパケットの場合には、再構成処理部２４は、待ちキュー管理テーブル２６ｂに一致するエントリがあるかどうかを検索する（ステップ１０３）。すなわち、再構成処理部２４は、受信したＩＰパケットのＩＰヘッダ内のプロトコと、ＩＰパケットのＩＤ、送信元ＩＰアドレスおよび宛先ＩＰアドレスの情報を抽出し、これら情報がルートキューからリンクされている各待ちキュー管理テーブル２６ｂに記憶されている情報と全て一致するかどうかを判断している（ステップ１０３）。
【００４５】
ここで、一致するエントリがない場合には、同一フラグメントパケットがパケット蓄積部２６に記憶されてないと判断し、この待ちキュー管理テーブル２６ｂを新規に作成し、この待ちキュー管理テーブル２６ｂをルートキュー２６ａに登録しする（ステップ１０４）。
【００４６】
また、ステップ１０３において、待ちキュー管理テーブル２６ｂに一致するエントリがある場合、あるいはステップ１０４において、ルートキュー２６ａへの登録が終了すると、再構成処理部２４は、同一フラグメントパケットが全て揃ったかどうかを判断する（ステップ１０５）。
【００４７】
ここで、同一フラグメントパケットが全て揃っていない場合には、ステップ１０１に戻って、次のＩＰパケットが受信されるのを待つ。また、バッファ管理ブロック２６ｃにリンクされている同一フラグメントパケットが、全て揃った場合には、中継処理部２５によるパケット中継処理に移行する（ステップ１０６）。この際、中継処理部２５は、ルートキューによってリンクされるリストから、該当する待ちキュー管理テーブルを削除し、この待ちキュー管理テーブルからバッファ管理ブロックのリンクを外してＩＰパケットの中継処理に移行する。この時に外された待ちキュー管理テーブルは、解放されて次の新たなフラグメントパケットの受信時に割り当てられる。
【００４８】
中継処理部２５は、同一フラグメントパケットが全て揃うと、先頭のバッファ管理ブロックにリンクされているＩＰパケットに対して、所定のＮＡＴ処理、ＩＰフィルタリング処理または暗号化処理などの中継処理を行い、２段目以降のＩＰパケットに対しては、先頭のＩＰパケットに対して行った中継処理と同じ処理を行う。
【００４９】
そして、中継処理部２５は、先頭のバッファ管理ブロックのシングルリンクキューにリンクされている内部バッファ内のＩＰパケットのヘッダ情報に基づいて、同一フラグメントパケットの各ＩＰパケットのデータ転送を一括して行い、Ｉ／Ｆを介して該当ネットワークにこれらＩＰパケットを中継する。
【００５０】
このように、この実施の形態では、同一のフラグメントデータを構成するＩＰパケットを受信すると、別々の内部バッファに記憶させて、バッファ管理ブロックで管理するとともに、これらバッファ管理ブロックをダブルリンクキューでリンクさせてフラグメントのグループ化を行い、さらにバッファ管理ブロックの先頭のバッファ管理ブロックを待ちキュー管理テーブルでリンクさせることで、分割されたＩＰパケットを論理的にリンクさせて再構成するので、分割前の元のデータ容量にかかわらず、ＩＰフィルタリング、ＮＡＴアドレス変換および暗号化などの中継処理を行い、パケットのデータ転送を確実に行うことができる。
【００５１】
また、この実施の形態では、パケットはＭＴＵより小さいデータ容量で作成されているので、従来の暗号化・複合化処理用のバッファを用いて、暗号化処理用のＣＰＵによって全てのフラグメントデータに対して、パケットを廃棄せずに暗号化などの処理を行うことができるので、データの処理速度を向上させることができる。
【００５２】
この発明は、これら実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲で種々の変形実施が可能である。
【００５３】
【発明の効果】
以上説明したように、この発明では、受信されたパケットを別々の記憶領域に記憶させるとともに、このパケットをダブルリンクキューで論理的にリンクさせて繋いで再構成し、さらに各パケットに中継処理を行った後に、これらパケットを一括してデータ転送するので、データ容量の大きいパケットに対しても、ＩＰフィルタリング、ＮＡＴアドレス変換および暗号化などの中継処理を行い、パケットのデータ転送を確実に行うことができる。
【００５４】
また、この発明では、同一のフラグメントデータを構成する各パケットを全てパケット蓄積部に記憶させ、さらにＩＰヘッダが付加された状態で各パケットを論理的にリンクさせて繋いで再構成するので、パケット単位での中継処理およびデータ転送が可能となり、これらパケットの一括転送を確実に行うことができる。
【００５５】
また、この発明では、先頭のパケット内のヘッダ情報に基づいて、リンクされた同一のフラグメントデータを構成するパケットの中継処理を行うので、中継処理をパケット単位で確実に行うことができる。
【００５６】
また、この発明では、同一のフラグメントデータを構成するパケットをそれぞれ別々の内部バッファに記憶させ、これらバッファを対応して設けられた各管理ブロックによってダブルリンクさせて管理させることで、パケットのグループ化を行い、さらにこのグループ毎に設けられた待ちキュー管理テーブルをダブルリンクさせることで、同一のフラグメントデータを構成するパケットを論理的に繋いで再構成させ、パケット毎の中継処理やデータ転送を確実に行うので、データ容量の大きいパケットに対しても、ＩＰフィルタリング、ＮＡＴアドレス変換および暗号化などの中継処理を行い、パケットのデータ転送を確実に行うことができる。
【００５７】
また、この発明では、請求項４〜７のデータ中継装置をデータ中継システム内に配設させて、同一のフラグメントデータを構成するパケットを論理的んダブルリンクさせて繋いで再構成するので、パケット毎の中継処理やデータ転送を確実に行うので、データ容量の大きいパケットに対しても、ＩＰフィルタリング、ＮＡＴアドレス変換および暗号化などの中継処理を行い、パケットのデータ転送を確実に行うことができる。
【図面の簡単な説明】
【図１】この発明にかかるデータ中継システムの概略構成を示すシステム構成図である。
【図２】図１に示したルータの構成を示す構成図である。
【図３】同じく、パケット蓄積部のデータ構造を示す図である。
【図４】同じく、待ちキュー管理テーブルの記憶内容の構成を示す構成図である。
【図５】同じく、バッファ管理ブロックの記憶内容の構成を示す構成図である。
【図６】同一フラグメントパケットのグループ化を説明するためのパケット構成の模式図である。
【図７】フラグメント処理されたＩＰパケットのネットワーク上の流れを示す図である。
【図８】ＩＰパケットの中継処理の動作を説明するためのフローチャートである。
【図９】中継されるＩＰパケットのデータと、フラグメントされたパケットのデータフォーマットを示す図である。
【図１０】図９に示したＩＰヘッダのデータフォーマットを示す図である。
【符号の説明】
１  バックボーンネットワーク
１０〜１３  ＰＥルータ
２０〜５０  ＣＥルータ
２１，２２  Ｉ／Ｆ
２３  ルーティング制御部
２４  再構成処理部
２５  中継処理部
２６  パケット蓄積部
２６ａ  ルートキュー
２６ｂ，２６ｂ１，２６ｂ２  待ちキュー管理テーブル
２６ｃ，２６ｃ１〜２６ｃ５  バッファ管理ブロック
２６ｄ、２６ｄ１〜２６ｄ５  内部バッファ
２７  アドレス変換テーブル
６１〜６３，７１〜７ｎ  ＰＣ
【図１】
2005012697.tif 000003
【図２】
2005012697.tif 000004
【図３】
2005012697.tif 000005
【図４】
2005012697.tif 000006
【図５】
2005012697.tif 000007
【図６】
2005012697.tif 000008
【図７】
2005012697.tif 000009
【図８】
2005012697.tif 000010
【図９】
2005012697.tif 000011
【図１０】
2005012697.tif 000012