(57)【要約】【課題】  ネットワークからパケットを受信してリアセンブリせずに迅速に複数のプロトコルプロセッサに分配する装置およびその方法を提供する。【解決手段】  フラグメントされたパケットが一番目フラグメントであるかを判断する段階、パケットが一番目フラグメントの場合は、パケットのトンネルＩＤおよびフラグメントをルックアップして、その遂行結果をフラグメントルックアップテーブルの各目録と対照して一致する目録があるかを判断する段階、パケットのトンネルＩＤと対応するインデックスをトンネルＩＤルックアップテーブルから探して、フラグメントルックアップ遂行結果と一致する目録がフラグメントルックアップテーブルにある場合は、フラグメントルックアップテーブルの一致する目録にインデックスを書き込む段階、およびインデックスをタグとして付けたパケットをプロトコルプロセッサに転送する段階とを備える。【選択図】    図３
2004282748.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークからパケットを受信して複数のプロトコルプロセッサに分配するパケット分配方法において、
受信された前記パケットがフラグメントされたパケットの場合は、受信された前記パケットが一番目フラグメントであるかを判断する段階と、
受信された前記パケットが一番目フラグメントの場合は、受信された前記パケットのトンネルＩＤルックアップおよびフラグメントルックアップを行なって、前記フラグメントルックアップ遂行結果を、受信されたパケットに対するフラグメントルックアップを行なった結果が書き込まれるフラグメントルックアップテーブルの各目録と対照して一致する目録があるかを判断する段階と、
受信された前記パケットのトンネルＩＤと対応するインデックスをトンネルＩＤルックアップテーブルから探して、前記フラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにある場合は、前記フラグメントルックアップテーブルの一致する目録にインデックスを書き込む段階と、
前記インデックスを受信された前記パケットにタグとして付け、受信された前記パケットを前記プロトコルプロセッサに転送する段階と、を含むことを特徴とするパケット分配方法。
【請求項２】
前記フラグメントルックアップテーブルにインデックスを書き込む段階は、前記フラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにない場合は、前記フラグメントルックアップ遂行結果と前記インデックスを前記フラグメントルックアップテーブルに新たに書き込むことを特徴とする請求項１に記載のパケット分配方法。
【請求項３】
受信された前記パケットが一番目フラグメントでない場合には、
受信された前記パケットのフラグメントルックアップを行なって、フラグメントルックアップ遂行結果をフラグメントルックアップテーブルの各目録と対照して一致する目録があるかを判断する段階と、
受信された前記パケットのフラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにない場合は、受信された前記パケットのフラグメントルックアップ遂行結果を前記フラグメントルックアップテーブルに新たに書き込む段階と、
受信された前記パケットをフラグメントバッファに保存する段階と、をさらに含むことを特徴とする請求項１に記載のパケット分配方法。
【請求項４】
前記パケットをプロトコルプロセッサに転送する段階は、受信された前記パケットが一番目フラグメントであり、前記パケットのフラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにある場合には、既に受信され前記フラグメントバッファに保存されたパケットに前記インデックスをタグとして付けて前記プロトコルプロセッサに転送することを特徴とする請求項３に記載のパケット分配方法。
【請求項５】
受信された前記パケットのフラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにある場合は、前記一致する目録内にトンネルＩＤルックアップ遂行結果に対応するインデックスが書き込まれているのかを判断する段階と、
前記目録内にインデックスがある場合は、受信された前記パケットに前記インデックスをタグとして付けて、受信された前記パケットを前記プロトコルプロセッサに転送する段階と、をさらに含むことを特徴とする請求項３に記載のパケット分配方法。
【請求項６】
前記目録内にインデックスがない場合には、受信された前記パケットをフラグメントバッファに保存する段階をさらに含むことを特徴とする請求項５に記載のパケット分配方法。
【請求項７】
複数のプロトコルプロセッサにパケットを分配するパケット分配装置において、
ネットワークからパケットを受信する受信部と、
受信されたパケットに対するフラグメントルックアップを行なった結果が書き込まれるフラグメントルックアップテーブルを保存するフラグメントルックアップテーブル貯蔵部と、
受信された前記パケットについてフラグメントルックアップを行なった結果を前記フラグメントルックアップテーブルの各目録と対照して、一致する目録があるかを判断するフラグメントルックアップ装置と、
受信されたパケットのトンネルＩＤと対応するインデックスを書き込んだトンネルＩＤルックアップテーブルを保存するトンネルＩＤルックアップテーブル貯蔵部と、
受信された前記パケットが一番目フラグメントの場合に、受信された前記パケットのトンネルＩＤのルックアップを行なった結果と対応するインデックスを前記トンネルＩＤルックアップテーブルから探して、受信された前記パケットにタグとして付けるトンネルＩＤルックアップ装置と、
前記インデックスをタグとして付けた前記パケットを前記プロトコルプロセッサに転送する従属インタフェースと、を含むことを特徴とするパケット分配装置。
【請求項８】
前記フラグメントルックアップ装置は、前記フラグメントルックアップテーブルに前記フラグメントルックアップを行なった結果と一致する目録がない場合、受信された前記パケットが一番目フラグメントの場合は前記フラグメントルックアップを行なった結果と前記インデックスを前記フラグメントルックアップテーブルに新たに書き込み、受信された前記パケットが一番目フラグメントでない場合には前記フラグメントルックアップを行なった結果を前記フラグメントルックアップテーブルに新たに書き込むことを特徴とする請求項７に記載のパケット分配装置。
【請求項９】
前記フラグメントルックアップテーブルに前記フラグメントルックアップを行なった結果と一致し前記インデックスを含む目録がない場合、受信された前記パケットが一番目フラグメントでない場合には、受信された前記パケットを保存するフラグメントバッファをさらに含むことを特徴とする請求項７に記載のパケット分配装置。
【請求項１０】
前記フラグメントルックアップ装置は、前記フラグメントルックアップテーブルに前記フラグメントルックアップを行なった結果と一致し前記インデックスを含む目録がある場合は、受信された前記パケットに前記インデックスをタグとして付けて前記プロトコルプロセッサに転送することを特徴とする請求項９に記載のパケット分配装置。
【請求項１１】
前記フラグメントルックアップ装置は、受信された前記パケットが一番目フラグメントの場合、前記フラグメントルックアップを行なった結果と一致する目録が前記フラグメントルックアップテーブルにある場合には、前記フラグメントバッファに保存された二番目以降のフラグメントであるパケットに前記インデックスをタグとして付けて前記従属インタフェースを通して前記プロトコルプロセッサに転送することを特徴とする請求項９に記載のパケット分配装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット分配装置およびその分配方法に関し、さらに詳しくは、受信されたパケットがフラグメントされたパケットの場合、パケットリアセンブリをしないでパケットを複数のプロトコルプロセッサに分配することができるフォワーディングエンジンを備えるパケット分配装置およびその分配方法に関する。
【背景技術】
【０００２】
ＧＴＰ(ＧＰＲＳ（General packet radio service） Tunneling Protocol)、Ｌ２ＴＰ(Layer ２ Tunneling Protocol)、Mobile IPは、ＩＰ基盤のトンネリングプロトコルである。ＩＰ基盤のトンネリングとは、通信ネットワークでデータをＩＰパケット化する際、各ネットワークの規約によってパケットをカプセル化してセキュリティを高めるための技術である。トンネリングによって、各パケットは、カプセル化され、インターネット上に形成された目に見えない通路(これを"トンネル"と称する)を通して転送される。各トンネルは、他のトンネルとの区別のために固有のＩＤを有し、これはトンネルＩＤと呼ばれる。
【０００３】
このようなトンネルの終端では、前述したように転送された数多くのパケットをフォワーディングエンジンを用いて同時に処理する。通常、多数のパケットを同時に処理するため、パケット処理のためのプロトコルプロセッサを複数個採用する方法が適用されている。複数のプロトコルプロセッサを採用した場合、フォワーディングエンジンは、受信された多数のパケットをトンネルＩＤによって分類し、各プロトコルプロセッサに分配する。
【０００４】
一般に、ネットワーク上のデータ通信において、各データはパケット化されてパケット単位で転送される。ネットワークによってパケットのサイズは規格化されていて、規格化されたパケットよりも大サイズのＩＰデータグラムの場合、複数のパケット(以下、"フラグメント"と称する)に分けられて転送される。一つのＩＰデータグラムからフラグメント化されたパケットは、全てがそれぞれＩＰヘッダを含んでいるが、トンネルＩＤが含まれているＧＴＰヘッダ、Ｌ２ＴＰヘッダまたは内部ＩＰヘッダ(Mobile IPの場合)などは、一番目のフラグメントにだけ含まれている。従って、二番目以降のフラグメントの場合、トンネルＩＤをルックアップできないと、特別な処理過程がない場合には分配が不可能になる。
【０００５】
従って、従来の技術では、フラグメントされたパケットをリアセンブリし、リアセンブリされたパケットのトンネルＩＤをルックアップして、これによってパケットを分配する。
図１は、従来のフォワーディングエンジンのパケット分配装置の第１例を示すブロック図である。図１に示すように、フォワーディングエンジンのパケット分配装置１００は、トンネルＩＤルックアップ装置１０１、トンネルＩＤルックアップテーブル貯蔵部１０３、受信部１０５、送信部１０７、および従属インタフェース１０９を含む。トンネルＩＤルックアップ装置１０１は、リアセンブリされたパケットのトンネルＩＤをルックアップし、トンネルＩＤルックアップテーブル貯蔵部１０３に保存されたトンネルＩＤルックアップテーブルからルックアップ遂行結果であるトンネルＩＤに対応するインデックスを探してパケットにタグとして付けて、複数個のプロトコルプロセッサ１に分配する。このような従来のフォワーディングエンジンのパケット分配装置１００は、パケットのリアセンブリのためのハードウェアを有しないため、フラグメントされたパケットの分配のため、上位の呼設定プロセッサ(図示せず)においてパケットをリアセンブリした後、リアセンブリされたパケットについてトンネルＩＤをルックアップして、プロトコルプロセッサ１にパケットを分配する方法を適用している。
【０００６】
しかし、システムアーキテクチュア上、呼設定プロセッサ(図示せず)の主機能は呼設定および管理である。したがって、呼設定プロセッサ(図示せず)がパケットリアセンブリまで行なうと、呼設定プロセッサ(図示せず)の呼管理性能が低下するおそれがあるため、システム全体の運用が非効率的になる問題がある。
【０００７】
図２は、従来のフォワーディングエンジンのパケット分配装置の第２例を示すブロック図である。図２に示すとおり、フォワーディングエンジンのパケット分配装置２００は、第１例のパケット分配装置１００が備える構成を全て含み、ＩＰリアセンブリ装置２１１、フラグメントルックアップテーブル貯蔵部２１３、およびフラグメントバッファ２１５をさらに含む。
【０００８】
ＩＰリアセンブリ装置２１１は、フラグメント化されたパケットを受信すると、フラグメントルックアップテーブル貯蔵部２１３に保存されたフラグメントルックアップテーブルとフラグメントバッファ２１５を用いて、各フラグメントを一つのＩＰパケットにリアセンブリする。次に、リアセンブリされたＩＰパケットについて、トンネルＩＤルックアップ装置２０１がトンネルＩＤをルックアップし、これによってパケットをプロトコルプロセッサ２に分配する。
【０００９】
このようにハードウェア的にＩＰパケットをリアセンブリすることは、そのハードウェアを実現することが難しい。また、通常、ＩＰリアセンブリがソフトウェア的に具現されている点を考慮すると、プロセッサのリソースおよびコストの側面においても問題が発生する。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、前述した問題を解決するために案出されたもので、その目的は、受信されたパケットがフラグメントされたパケットの場合、パケットリアセンブリをしなくてもパケットを複数のプロトコルプロセッサに分配して、パケットリアセンブリのためにシステムに負荷を掛けないでパケットを迅速に経済的に分配することができるパケット分配装置およびその分配方法を提供するところにある。
【課題を解決するための手段】
【００１１】
前述した目的を達成するために、ネットワークからパケットを受信して複数のプロトコルプロセッサに分配するパケット分配方法は、受信された前記パケットがフラグメントされたパケットの場合は、受信された前記パケットが一番目フラグメントであるかを判断する段階、受信された前記パケットが一番目フラグメントの場合は、受信された前記パケットのトンネルＩＤのルックアップおよびフラグメントのルックアップを行なって、前記フラグメントルックアップ遂行結果を、受信されたパケットに対するフラグメントルックアップを行なった結果が書き込まれるフラグメントルックアップテーブルの各目録と対照して一致する目録があるかを判断する段階と、受信された前記パケットのトンネルＩＤに対応するインデックスをトンネルＩＤルックアップテーブルから探して、前記フラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにある場合には、前記フラグメントルックアップテーブルの一致する目録にインデックスを書き込む段階、および前記インデックスを受信された前記パケットにタグとして付けて、受信された前記パケットをプロトコルプロセッサに転送する段階とを含む。
【００１２】
前記フラグメントルックアップテーブルにインデックスを書き込む段階は、前記フラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにない場合は、前記フラグメントルックアップ遂行結果と前記インデックスを前記フラグメントルックアップテーブルに新たに書き込むことが望ましい。
【００１３】
前記パケット分配方法は、受信された前記パケットが一番目フラグメントでない場合には、受信された前記パケットのフラグメントルックアップを行って、フラグメントルックアップ遂行結果をフラグメントルックアップテーブルの各目録と対照して一致する目録があるかを判断する段階、受信された前記パケットのフラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにない場合は、受信された前記パケットのフラグメントルックアップ遂行結果を前記フラグメントルックアップテーブルに新たに書き込む段階、および受信された前記パケットをフラグメントバッファに保存する段階をさらに含む。
【００１４】
前記パケットをプロトコルプロセッサに転送する段階は、受信された前記パケットが一番目フラグメントであり、前記パケットのルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにある場合は、既に受信され前記フラグメントバッファに保存されたパケットに前記インデックスをタグとして付けて前記プロトコルプロセッサに転送することが望ましい。
【００１５】
前記パケット分配方法は、受信された前記パケットのフラグメントルックアップ遂行結果と一致する目録が前記フラグメントルックアップテーブルにある場合は、前記一致する目録内にトンネルＩＤルックアップ遂行結果に対応するインデックスが書き込まれているかを判断する段階、および前記目録内にインデックスがある場合は、受信された前記パケットに前記インデックスをタグとして付けて、受信された前記パケットをプロトコルプロセッサに転送する段階をさらに含む。
【００１６】
前記パケット分配方法は、前記目録内にインデックスがない場合は、受信された前記パケットをフラグメントバッファに保存する段階をさらに含むことが望ましい。
【００１７】
一方、本発明に係る複数のプロトコルプロセッサにパケットを分配するパケット分配装置は、ネットワークからパケットを受信する受信部、受信されたパケットに対するフラグメントルックアップを行なった結果が書き込まれるフラグメントルックアップテーブルを保存するフラグメントルックアップテーブル貯蔵部、受信された前記パケットについてフラグメントルックアップを行なった結果をフラグメントルックアップテーブルの各目録と対照して一致する目録があるかを判断するフラグメントルックアップ装置、受信されたパケットのトンネルＩＤと対応するインデックスを書き込んだトンネルＩＤルックアップテーブルを保存するトンネルＩＤルックアップテーブル貯蔵部、受信された前記パケットが一番目フラグメントの場合、受信された前記パケットのトンネルＩＤのルックアップを行なった結果と対応するインデックスを前記トンネルＩＤルックアップテーブルから探して、受信された前記パケットにタグとして付けるトンネルＩＤルックアップ装置、および前記インデックスをタグとして付けた前記パケットを前記プロトコルプロセッサに転送する従属インタフェースを含む。
【００１８】
前記フラグメントルックアップ装置は、前記フラグメントルックアップテーブルに前記フラグメントルックアップを行なった結果と一致する目録がない場合、受信された前記パケットが一番目フラグメントの場合は前記フラグメントルックアップを行なった結果と前記インデックスを前記フラグメントルックアップテーブルに新たに書き込み、受信された前記パケットが一番目フラグメントでない場合は前記フラグメントルックアップを行なった結果を前記フラグメントルックアップテーブルに新たに書き込むことが望ましい。
【００１９】
前記パケット分配装置は、前記フラグメントルックアップテーブルに前記フラグメントルックアップを行なった結果と一致し前記インデックスを含む目録がない場合、受信された前記パケットが一番目フラグメントでない場合には、受信された前記パケットを保存するフラグメントバッファをさらに含むことが望ましい。
【００２０】
前記フラグメントルックアップ装置は、前記フラグメントルックアップテーブルに前記フラグメントルックアップを行なった結果と一致し前記インデックスを含む目録がある場合は、受信された前記パケットに前記インデックスをタグとして付けて前記プロトコルプロセッサに転送することが望ましい。
【００２１】
前記フラグメントルックアップ装置は、受信された前記パケットが一番目フラグメントの場合、前記フラグメントルックアップを行なった結果と一致する目録が前記フラグメントルックアップテーブルにある場合は、前記フラグメントバッファに保存された二番目以降のフラグメントであるパケットに前記インデックスをタグとして付けて前記従属インタフェースを通してプロトコルプロセッサに転送することが望ましい。
【発明の効果】
【００２２】
本発明に係るパケット分配装置およびそのパケット分配方法によれば、パケット分配のためにフラグメントされたパケットをリアセンブリする必要がなく、パケットリアセンブリのためのリソースと時間の無駄遣いを無くして、効率よくパケットを分配して複数のプロトコルプロセッサに分配することができる。
【発明を実施するための最良の形態】
【００２３】
以下、添付した図面に基づき本発明を詳述する。
【００２４】
図３は、本発明に係るパケット分配装置３００を示すブロック図である。
パケット分配装置３００は、フラグメントルックアップ装置３１１、トンネルＩＤルックアップ装置３０１、フラグメントルックアップテーブル貯蔵部３１３、フラグメントバッファ３１５、トンネルＩＤルックアップテーブル貯蔵部３０３、受信部３０５、送信部３０７および従属インタフェース３０９を含む。
【００２５】
パケット分配装置３００は、プロトコルプロセッサ３と従属インタフェース３０９を通してパケットを送受信する。
【００２６】
受信部３０５は、ネットワークからパケットを受信する。ここで、ネットワークはＵＭＴＳ(Universal Mobile Telecommunication System)ネットワークを例として説明したが、これに限られない。
【００２７】
パケット分配装置３００は、現在受信されたパケットのＩＰヘッダを用いて、パケットがフラグメントされたパケットであるかを判断する。受信されたパケットがフラグメントされていないパケットの場合、トンネルＩＤルックアップ装置３０１は、受信されたパケットのトンネルＩＤをルックアップ(Lookup)し、トンネルＩＤルックアップテーブル貯蔵部３０３にあるトンネルＩＤルックアップテーブルを検索して該当するインデックスを探し、受信されたパケットにタグとして付けて従属インタフェース３０９を通してプロトコルプロセッサ３に転送する。
【００２８】
現在受信されたパケットがフラグメントされたパケットの場合は、フラグメントルックアップ装置３１１は、現在のパケットが一番目フラグメントであるかを判断する。
【００２９】
受信されたパケットが一番目フラグメントである場合、トンネルＩＤルックアップ装置３０１は、受信された現在のパケットのトンネルＩＤをルックアップし、トンネルＩＤルックアップテーブル貯蔵部３０３に保存されたトンネルＩＤルックアップテーブルを検索して該当するインデックスを探して現在のパケットにタグとして付けて、従属インタフェース３０９を通して現在のパケットをプロトコルプロセッサ３に分配する。
【００３０】
現在のパケットが一番目フラグメントである場合、フラグメントルックアップ装置３１１は、パケットのフラグメントＩＰヘッダをルックアップし(以下、"フラグメントルックアップ"と称する)、フラグメントルックアップの遂行結果、例えば、出発地アドレス(ＳＡ)、到着地アドレス(ＤＡ)、プロトコルＩＤ(ＰＩＤ)、フラグメントＩＤ(ＩＤ)をフラグメントルックアップテーブルの各目録と対照することによって、一致する目録があるかを判断する。
【００３１】
フラグメントルックアップテーブルに一致する目録がない場合、フラグメントルックアップ装置３１１は、前記フラグメントルックアップの遂行結果をフラグメントルックアップテーブルに新たな目録として書き込み、また、該当インデックスをフラグメントルックアップテーブル目録の該当位置に書き込む。一方、一致する目録がある場合、フラグメントルックアップテーブルの一致する該当目録に現在のパケットのインデックスを書き込んで、フラグメントルックアップテーブルをアップデートする。
【００３２】
図４は、フラグメントルックアップテーブルの一例を示す。図４において、"ＩＶ"はインデックス値が有効であるかを示す。すなわち、"ＩＶ"値が"１"なら該当目録のインデックス値が有効であり、一番目フラグメントが既に受信されたことを示す。逆に"ＩＶ"値が"０"なら(以下、"待機中"と称する)、一番目フラグメントが受信される前に、二番目かそれ以降のフラグメントが先に受信された場合であって、該当目録内にインデックス値が有効に存在しないことを示す。"ＩＶ"値が"０"の時は、フラグメントルックアップ遂行結果であるＳＡ値、ＤＡ値、ＰＩＤ値およびＩＤ値がフラグメントルックアップテーブルに書き込まれており、既に受信されたフラグメントがフラグメントバッファ３１５に保存されている。
【００３３】
一方、図４において、"Time Left"は、フラグメントバッファ３１５がルックアップテーブルの該当目録を有効に維持すべき時間を示す。最大維持時間は、システムによって適切に調節できる。ここでは、例えば、２５秒と仮定する。従って、最大維持時間(ここでは、２５秒)の間にフラグメントルックアップテーブルの該当目録が前記フラグメントルックアップの遂行結果と一致してアクセスされなければ、該当目録は削除される。図４の一番目の目録を参照すれば、該当目録が最後にアクセスされてから１３秒が経過し、それ以降の１２秒間に該当目録がアクセスされなければ、該当目録はフラグメントルックアップテーブルから削除される。従って、該当フラグメントの転送が全て完了したり、転送中に一部でも流失した場合、有効でない目録によってフラグメントルックアップテーブル貯蔵部３１３のリソースが浪費されることを抑えられる。
【００３４】
受信されたパケットのルックアップ遂行結果と一致する目録がフラグメントルックアップテーブルにない場合、受信された現在のパケットが最初に到着した場合に該当する。
【００３５】
一方、受信された現在のパケットが一番目フラグメントでない場合は、前述したようにパケットのトンネルＩＤルックアップは不可能である。したがって、フラグメントルックアップ装置３１１は、フラグメントのルックアップを行ない、フラグメントルックアップの遂行結果をフラグメントルックアップテーブルの目録と対照して一致する目録があるのかを判断する。
【００３６】
一致する目録がない場合、フラグメントルックアップ装置３１１は、フラグメントルックアップ遂行結果をフラグメントルックアップテーブルに新たな目録として書き込み、受信されたパケットをフラグメントバッファ３１５に保存し、そのアドレス値をフラグメントルックアップテーブルのポインター項目に書き込む。
【００３７】
フラグメントルックアップテーブルに一致する目録がある場合は、フラグメントルックアップ装置３１１は、目録内に有効な該当インデックスが存在するかを判断する。該当インデックスがある場合、フラグメントルックアップ装置３１１は、該当インデックスを現在のパケットにタグとして付けて従属インタフェース３０９を通してプロトコルプロセッサ３に転送する。しかし、該当インデックスがない場合は、フラグメントルックアップ装置３１１は、現在のパケットをフラグメントバッファ３１５に保存し、その保存されたアドレス値を目録にあるポインター値にリンクさせる。
【００３８】
パケット受信時、既にフラグメントバッファ３１５に保存され待機中のパケットがある時は、現在のパケットが一番目フラグメントの場合は、フラグメントルックアップ装置３１１は、現在のパケットを転送した後、待機中のパケットにも現在のパケットのインデックスをタグとして付けてプロトコルプロセッサ３に転送する。しかし、現在のパケットが一番目パケットでない場合、フラグメントルックアップ装置３１１は、現在のパケットをフラグメントバッファ３１５に保存し、その保存されたアドレス値を目録にあるポインター値にリンクさせる。従って、一番目パケットが受信された後、フラグメントバッファ３１５で待機中の二番目以降の全てのパケットがフォワーディングできる。
【００３９】
図５は、本発明に係るフォワーディングエンジンのパケット分配装置の動作を示すフローチャート図である。以下、図５を参照して、本発明に係るパケット分配装置において、ＩＰリアンブリをしないでＩＰフラグメントパケットを分配する方法を説明する。
【００４０】
パケット分配装置３００は、ネットワークからパケットを受信する(Ｓ５００)と、現在受信されたパケットがフラグメントされたパケットであるか否かを判断する(Ｓ５０３)。受信されたパケットがフラグメントされていないパケットである場合、パケット分配装置３００は、受信されたパケットのトンネルＩＤをルックアップし(Ｓ５１７)、トンネルＩＤルックアップテーブルを検索して該当するインデックスを探し、受信されたパケットにタグとして付けてプロトコルプロセッサ３にフォワーディングする(Ｓ５２９)。
【００４１】
一方、現在受信されたパケットがフラグメントされたパケットである場合、パケット分配装置３００は、現在のパケットが一番目フラグメントであるかを判断する(Ｓ５０５)。
【００４２】
現在のパケットが一番目パケットである場合、パケット分配装置３００は、現在のパケットについてトンネルＩＤルックアップを行ない(Ｓ５０７)、フラグメントＩＤルックアップを行なう(Ｓ５０９)。次いで、パケット分配装置３００は、フラグメントＩＤルックアップ遂行結果をフラグメントルックアップテーブルの各目録と対照することによって、一致する目録があるかを判断する(Ｓ５１１)。
【００４３】
受信されたパケットのフラグメントＩＤルックアップ遂行結果と一致する目録がフラグメントルックアップテーブルにない場合は、パケット分配装置３００は、現在のパケットのフラグメントＩＤルックアップの遂行結果をフラグメントルックアップテーブルに新たな目録として書き込み、トンネルＩＤテーブルを検索して現在のパケットのトンネルＩＤに該当するインデックスを探す(Ｓ５１３)。次いで、パケット分配装置３００は、検索したインデックスを一番目フラグメントである現在のパケットに付けてパケットをプロットコルプロセッサ３にフォワーディングする(Ｓ５２９)。
【００４４】
受信されたパケットのフラグメントＩＤルックアップの遂行結果と一致する目録がフラグメントルックアップテーブルにある場合は、パケット分配装置３００は、現在のパケットのトンネルＩＤテーブル検索によってインデックス値を探してフラグメントルックアップテーブルをアップデートし(Ｓ５１５)、インデックスを現在のパケットに付けてパケットをプロトコルプロセッサ３にフォワーディングする(Ｓ５２９)。
【００４５】
一方、現在のパケットが一番目フラグメントでない場合は、パケット分配装置３００は、現在のパケットについてフラグメントＩＤルックアップを行い(Ｓ５１９)、フラグメントルックアップテーブルに一致する目録があるかを判断する(Ｓ５２１)。一致する目録がない場合は、パケット分配装置３００は、フラグメントＩＤルックアップの遂行結果をフラグメントルックアップテーブルに新たな目録として書き込み(Ｓ５２３)、現在のパケットをフラグメントバッファに保存する(Ｓ５２７)。
【００４６】
フラグメントルックアップテーブルに現在のパケットのフラグメントＩＤルックアップ結果と一致する目録がある場合は、パケット分配装置３００は、該当目録のインデックスが有効に存在するのかを判断する(Ｓ５２５)。インデックスが目録にある場合は、パケット分配装置３００は、インデックスを現在のパケットにタグとして付けて、パケットをプロトコルプロセッサ３にフォワーディングする(Ｓ５２９)。しかし、インデックスが目録にない場合には、現在のパケットをフラグメントバッファに保存する(Ｓ５２７)。
【００４７】
前述したように、本発明に係るパケット分配装置とそのパケット分配方法によれば、トンネルＩＤを含まず、インデックスが見つからない二番目以降のフラグメントであるパケットについては、一番目パケットが受信されるまでフラグメントバッファに一時保存し、一番目パケット受信後に該当するトンネルＩＤをルックアップし、そのトンネルＩＤに該当するインデックスを探してパケットにタグとして付けた後、プロトコルプロセッサに分配する。従って、パケット分配装置において、フラグメントされたパケットをリアセンブリせずにパケットを複数のプロトコルプロセッサに分配することができる。
【００４８】
以上、本発明の望ましい実施形態について説明したが、本発明は前述した特定の実施形態に限らず、請求の範囲に記載する本発明の要旨を逸脱しない限り、本発明の属する技術分野において通常の知識を持つ者ならばだれでも多様な変形実施が可能なことは勿論、そのような変更は請求の範囲の記載範囲内にある。
【産業上の利用可能性】
【００４９】
本発明に係るパケット分配装置とそのパケット分配方法は、ＩＰ基盤トンネリングプロトコルによる通信ネットワークにおいて、パケットを分配するフォワーディングエンジンに採用して円滑な通信を行うのに用いることができる。
【図面の簡単な説明】
【００５０】
【図１】従来のパケット分配装置を示すブロック図である。
【図２】従来の他のパケット分配装置を示すブロック図である。
【図３】本発明に係るパケット分配装置を示すブロック図である。
【図４】フラグメントルックアップテーブルの一例を示す図である。
【図５】本発明に係るパケット分配装置の動作を示すフローチャート図である。
【符号の説明】
【００５１】
３００      パケット分配装置
３１１      フラグメントルックアップ装置
３０１      トンネルＩＤルックアップ装置
３１３      フラグメントルックアップテーブル貯蔵部
３１５      フラグメントバッファ
３０３      トンネルＩＤルックアップテーブル貯蔵部
３０５      受信部
３０７      送信部
３０９      従属インタフェース
３          プロトコルプロセッサ
【図１】
2004282748.tif 000003
【図２】
2004282748.tif 000004
【図３】
2004282748.tif 000005
【図４】
2004282748.tif 000006
【図５】
2004282748.tif 000007