(57)【要約】    【課題】      高いスループットでＮＡＴ処理を行い、かつ、バースト性の高いストリームデータの受信時にもパケット損失を発生させないパケット転送装置を提供すること。    【解決手段】  クラシファイ装置２０１は、クラシファイルールテーブル２０３に書き込まれた手順に従って、パケットをＣＰＵ２０６、ルーティングＮＡＴ処理部２０２及びパケットバッファ２０７のいずれに与えるかの選択を行う。ＣＰＵ２０６は、パケットにＮＡＴ処理を施して出力し、かつ、ＮＡＴ処理で用いたネットワークに関する情報をＮＡＴテーブル２０５に書き込む。ルーティングＮＡＴ処理部２０２は、ルーティングテーブル２０４及びＮＡＴテーブル２０５に基づいてパケットにＮＡＴ処理を施して出力する。パケットバッファ２０７は、パケットを一時的に蓄積し、ＣＰＵ２０６又はルーティングＮＡＴ処理部２０２の求めに応じていずれかに渡す。  【選択図】      図２
2005094050.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信処理系と第２の通信処理系とを具備し、
前記第１の通信処理系は、クラシファイ装置とクラシファイルールテーブルとバッファとルーティングＮＡＴ処理手段とルーティングテーブルとＮＡＴテーブルとを具備し、
前記クラシファイ装置は、受信するパケットの送り先として前記クラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、前記第２の通信処理系及び前記バッファのいずれかを選択し、
前記第２の通信処理系は、前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及び前記ルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をする他のルーティングＮＡＴ処理手段と、当該ＮＡＴ処理の時に用いる情報を前記ＮＡＴテーブルに書き込む書込手段と、前記クラシファイルールテーブルに前記ルール情報を書き込む他の書込手段と、を具備し、
前記第１の通信処理系の前記ルーティングＮＡＴ処理手段は、前記クラシファイ装置から受け取る前記パケット及び前記バッファに一時的に蓄積した前記パケットに対して前記ＮＡＴテーブル及び前記ルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理を行うことを特徴とするパケット転送装置。
【請求項２】
第１の通信処理系と第２の通信処理系とを具備し、
前記第１の通信処理系は、クラシファイ装置とクラシファイルールテーブルとバッファとルーティングＮＡＴ処理手段とルーティングテーブルとＮＡＴテーブルとを具備し、
前記クラシファイ装置は、受信するパケットの送り先として前記クラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、前記第２の通信処理系及び前記バッファのいずれかを選択し、
前記第２の通信処理系は、前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及び前記ルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をする他のルーティングＮＡＴ処理手段と、当該ＮＡＴ処理の時に用いる情報を前記ＮＡＴテーブルに書き込む書込手段と、前記クラシファイルールテーブルに前記ルール情報を書き込む他の書込手段と、を具備し、
前記第１の通信処理系の前記ルーティングＮＡＴ処理手段は、前記クラシファイ装置から受け取る前記パケットを前記ＮＡＴテーブル及び前記ルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理を行い、前記他のルーティングＮＡＴ処理手段は、前記バッファに一時的に蓄積した前記パケットについての前記ルーティング処理及び前記ＮＡＴ処理を行うことを特徴とするパケット転送装置。
【請求項３】
第１の通信処理系と第２の通信処理系とを具備し、
前記第１の通信処理系は、クラシファイ装置とクラシファイルールテーブルとバッファとルーティングＮＡＴ処理手段とルーティングテーブルとＮＡＴテーブルとを具備し、
前記クラシファイ装置は、受信するパケットの送り先として前記クラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、前記第２の通信処理系及び前記バッファのいずれかを選択し、
前記第２の通信処理系は、前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及び前記ルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をする他のルーティングＮＡＴ処理手段と、当該ＮＡＴ処理の時に用いる情報を前記ＮＡＴテーブルに書き込む書込手段と、前記クラシファイルールテーブルに前記ルール情報を書き込む他の書込手段と、を具備し、
前記第１の通信処理系の前記ルーティングＮＡＴ処理手段は、クラシファイ装置から受信したパケットをバッファに一旦蓄積し、前記バッファに一時的に蓄積した前記パケットを蓄積した順序で前記ＮＡＴテーブル及び前記ルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理を行うことを特徴とするパケット転送装置。
【請求項４】
第１の通信処理系と第２の通信処理系とを具備し、
前記第１の通信処理系は、クラシファイ装置とクラシファイルールテーブルとバッファとルーティングＮＡＴ処理手段とルーティングテーブルとＮＡＴテーブルとを具備し、
前記クラシファイ装置は、受信するパケットの送り先として前記クラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、前記第２の通信処理系及び前記バッファのいずれかを選択する選択手段と、受信するパケットを前記クラシファイルールテーブルのルール情報に基づいて廃棄する廃棄手段と、を具備し、
前記第２の通信処理系は、前記クラシファイ装置から受け取る前記パケットがルーティング処理及びＮＡＴ処理するべきものであるか又は廃棄すべきものであるかを前記パケットの情報に基づいて検査する検査手段と、前記検査の結果が廃棄すべきことを示している時に前記パケットを廃棄する他の廃棄手段と、前記パケットを廃棄すべきことを示す前記ルール情報を前記クラシファイルールテーブルに書き込む書込手段と、を具備し、
前記他の廃棄手段は、前記バッファに一時的に蓄積した前記パケットを廃棄することを特徴とするパケット転送装置。
【請求項５】
前記クラシファイ装置は、一連のデータが分割されたパケットの内の最初の少なくとも１つの前記パケットを前記第２の通信処理系の前記他のルーティングＮＡＴ処理手段に与えて前記ルーティング処理及び前記ＮＡＴ処理をし、かつ、前記少なくとも１つのパケット以外の既に受信しているパケットを前記第１の通信処理系が備える前記バッファに与えて一時的に蓄積し、
前記書込手段は、前記ＮＡＴ処理の際に使用するネットワークに関する情報を前記ＮＡＴテーブルに書き込み、
前記ルーティングＮＡＴ処理手段が前記一連のデータで以降に受信する前記パケットについて前記ＮＡＴテーブルを用いての前記ＮＡＴ処理及び前記ルーティング処理を行い、かつ、前記他のルーティングＮＡＴ処理手段が前記バッファに一時的に蓄積した前記パケットについての前記ＮＡＴ処理及び前記ルーティング処理を行うことを特徴とする請求項１記載のパケット転送装置。
【請求項６】
前記クラシファイ装置は、一連のデータが分割されたパケットの内の最初の少なくとも１つの前記パケットを前記第２の通信処理系の前記他のルーティングＮＡＴ処理手段に与えて前記ルーティング処理及び前記ＮＡＴ処理をし、かつ、前記少なくとも１つのパケット以外の既に受信しているパケットを前記第１の通信処理系が備える前記バッファに与えて一時的に蓄積し、
前記書込手段は、前記ＮＡＴ処理の際に使用するネットワークに関する情報を前記ＮＡＴテーブルに書き込み、
前記ルーティングＮＡＴ処理手段は、前記一連のデータで以降に受信する前記パケットについて前記ＮＡＴテーブルを用いての前記ＮＡＴ処理及び前記ルーティング処理を行い、かつ、前記バッファに一時的に蓄積した前記パケットについての前記ＮＡＴ処理及び前記ルーティング処理を行うことを特徴とする請求項３記載のパケット転送装置。
【請求項７】
前記クラシファイ装置は、一連のデータが分割されたパケットの内の最初の少なくとも１つの前記パケットを前記第２の通信処理系の前記他のルーティングＮＡＴ処理手段に与えて前記ルーティング処理及び前記ＮＡＴ処理をし、かつ、前記少なくとも１つのパケット以外の前記パケットを前記第１の通信処理系が備える前記バッファに与えて一時的に蓄積し、
前記書込手段は、前記ＮＡＴ処理の際に使用するネットワークに関する情報を前記ＮＡＴテーブルに書き込み、
前記ルーティングＮＡＴ処理手段は、前記バッファに一時的に蓄積した前記パケットについて蓄積した順序で前記ＮＡＴ処理及び前記ルーティング処理を行うことを特徴とする請求項３記載のパケット転送装置。
【請求項８】
請求項１から請求項７のいずれかに記載のパケット転送装置における前記第１の通信処理系を具備することを特徴とする集積回路。
【請求項９】
請求項１から請求項７のいずれかに記載のパケット転送装置における前記第２の通信処理系を具備することを特徴とする集積回路。
【請求項１０】
請求項１から請求項７のいずれかに記載のパケット転送装置における前記クラシファイ装置を具備することを特徴とする集積回路。
【請求項１１】
クラシファイ装置が受信するパケットの送り先としてクラシファイルールテーブルのルール情報に基づいて第１の通信処理系、第２の通信処理系及びバッファのいずれかを選択するステップと、
前記第２の通信処理系が前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及びルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をするステップと、当該ＮＡＴ処理の時に用いる情報をＮＡＴテーブルに書き込むステップと、前記クラシファイルールテーブルに前記ルール情報を書き込むステップと、
前記第１の通信処理系のルーティングＮＡＴ処理手段が前記クラシファイ装置から受け取る前記パケットに対して前記ＮＡＴテーブル及び前記ルーティングテーブル又は前記第２の通信処理系が保持する他のルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理をするステップと、
前記第２の通信処理系の他のルーティングＮＡＴ処理手段又は前記ルーティングＮＡＴ処理手段が前記バッファに一時的に蓄積した前記パケットについての前記ルーティング処理及び前記ＮＡＴ処理をするステップと、
を具備することを特徴とするパケット転送方法。
【請求項１２】
第１の通信処理系が有するクラシファイ装置が受信するパケットの送り先としてクラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、第２の通信処理系及び前記第１の通信処理系が有するバッファのいずれかを選択するステップと、
前記第２の通信処理系が前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及びルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をするステップと、前記第２の通信処理系が当該ＮＡＴ処理の時に用いる情報をＮＡＴテーブルに書き込むステップと、前記第２の通信処理系が前記クラシファイルールテーブルに前記ルール情報を書き込むステップと、
前記第１の通信処理系のルーティングＮＡＴ処理手段が前記バッファに一時的に蓄積した前記パケットを蓄積した順序で前記ＮＡＴテーブル及び前記ルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理を行うステップと、
を具備することを特徴とするパケット転送方法。
【請求項１３】
第１の通信処理系が有するクラシファイ装置が受信するパケットの送り先としてクラシファイルールテーブルのルール情報に基づいて第２の通信処理系及びバッファのいずれかを選択するステップと、受信するパケットを前記クラシファイルールテーブルのルール情報に基づいて廃棄するステップと、
前記第２の通信処理系が前記クラシファイ装置から受け取る前記パケットがルーティング処理及びＮＡＴ処理するべきものであるか又は廃棄すべきものであるかを前記パケットの情報に基づいて検査するステップと、前記検査の結果が廃棄すべきことを示している時に前記パケットを廃棄するステップと、前記パケットを廃棄すべきことを示す前記ルール情報を前記クラシファイルールテーブルに書き込むステップと、
前記他の廃棄手段が前記バッファに一時的に蓄積した前記パケットを廃棄するステップと、具備することを特徴とするパケット転送方法。
【請求項１４】
請求項１１、請求項１２及び請求項１３のいずれかに記載のパケット転送方法をコンピュータに実行させるプログラム。
【請求項１５】
請求項１１、請求項１２及び請求項１３のいずれかに記載のパケット転送方法における前記第１の通信処理系が行うステップをコンピュータに実行させるプログラム。
【請求項１６】
請求項１１、請求項１２及び請求項１３のいずれかに記載のパケット転送方法における前記第２の通信処理系が行うステップをコンピュータに実行させるプログラム。
【請求項１７】
請求項１１、請求項１２及び請求項１３のいずれかに記載のパケット転送方法における前記第２の通信処理系の有する前記クラシファイ装置が行うステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータなどのパケットデータを転送するパケット転送装置およびパケット転送方法に関する。
【背景技術】
【０００２】
従来のパケット転送装置としてのルータは、特許文献１に記載されているものがある。この従来のパケット転送装置は、ＦＴＰ（File Transfer Protocol）、Ｈ.３２３及びＳＩＰ(Session Initiation Protocol)などＮＡＴ（Network Address Translation）を通過することができなかったアプリケーションのＮＡＴ通過を実現している。従来のパケット転送装置の一例を図１５を参照して説明する。従来のパケット転送装置においては、予めプログラミングされているか、もしくはユーザによって設定された手順に基づいて、特定のパケットのみを選択しその内容を変更するという手段がとられる。ルータ１２には予め送信先ポート番号が２１であるパケットを選択し、その中に含まれるポートコマンドの内容を書き換えるというルールが設定されている。
【０００３】
ここでＰＣ（Personal Computer）１１とＦＴＰサーバ装置１３との間でＴＣＰ(Transmission Control Protocol)セッションが確立しポートコマンドが送信されると、ルータ１２は図１５に示すように通常のＮＡＴ処理と同様に単に送信元ＩＰ（Internet Protocol）アドレス及びポート番号を書き換えるだけでなく、ポートコマンド内のＩＰアドレス及びポート番号も適当な値に変更する。ただし、ここで変更した値と元の値とは関連付けて保持しておく。これにより、ＦＴＰサーバ装置１３は、ポートコマンド応答をＰＣ１１に返した後、ルータ１２により書き換えられたＩＰアドレス及びポート番号宛てにデータコネクション用ＴＣＰセッションの確立を試みる。ルータ１２は、この宛先とＰＣ１１が元々ポートコマンドで指定したＩＰアドレス及びポート番号とを関連付けて保持しているため、正しくＰＣ１１にＳＹＮ（Synchronize Flag）パケットを送信することができる。そして、以後のＦＴＰによるデータ転送が可能となる。
【特許文献１】特表平１０−５０４１６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のパケット転送装置においては、新しいアプリケーションの処理に対応するため頻繁にバージョンアップが必要になること、及び、ＦＴＰ、Ｈ．３２３などの上位層の多様な処理をＡＳＩＣ（Application Specific Integrated Circuit）などのハードウェアで実現することは困難であることなどの理由によりソフトウェアによってＮＡＴ処理を行っており、ソフトウェアで上位層の処理まで行うと家庭向けルータなどに用いられる安価なＣＰＵでは高いスループットを得ることができない問題がある。また、この従来のパケット転送装置においては、バースト性の高い動画像などのストリームデータを処理する場合にパケットロスが起こるという問題がある。
【０００５】
本発明は、かかる点に鑑みてなされたものであり、ソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより高スループットを実現し、かつ、バースト性の高いストリームデータの受信時にもパケット損失を発生させないパケット転送装置及びパケット転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に係るパケット転送装置は、第１の通信処理系と第２の通信処理系とを具備し、前記第１の通信処理系は、クラシファイ装置とクラシファイルールテーブルとバッファとルーティングＮＡＴ処理手段とルーティングテーブルとＮＡＴテーブルとを具備し、前記クラシファイ装置は、受信するパケットの送り先として前記クラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、前記第２の通信処理系及び前記バッファのいずれかを選択し、前記第２の通信処理系は、前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及び前記ルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をする他のルーティングＮＡＴ処理手段と、当該ＮＡＴ処理の時に用いる情報を前記ＮＡＴテーブルに書き込む書込手段と、前記クラシファイルールテーブルに前記ルール情報を書き込む他の書込手段と、を具備し、前記第１の通信処理系の前記ルーティングＮＡＴ処理手段は、前記クラシファイ装置から受け取る前記パケット及び前記バッファに一時的に蓄積した前記パケットに対して前記ＮＡＴテーブル及び前記ルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理を行う構成を採る。
【０００７】
この構成によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。
【０００８】
請求項２に係るパケット転送装置は、第１の通信処理系と第２の通信処理系とを具備し、前記第１の通信処理系は、クラシファイ装置とクラシファイルールテーブルとバッファとルーティングＮＡＴ処理手段とルーティングテーブルとＮＡＴテーブルとを具備し、前記クラシファイ装置は、受信するパケットの送り先として前記クラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、前記第２の通信処理系及び前記バッファのいずれかを選択し、前記第２の通信処理系は、前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及び前記ルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をする他のルーティングＮＡＴ処理手段と、当該ＮＡＴ処理の時に用いる情報を前記ＮＡＴテーブルに書き込む書込手段と、前記クラシファイルールテーブルに前記ルール情報を書き込む他の書込手段と、を具備し、前記第１の通信処理系の前記ルーティングＮＡＴ処理手段は、前記クラシファイ装置から受け取る前記パケットを前記ＮＡＴテーブル及び前記ルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理を行い、前記他のルーティングＮＡＴ処理手段は、前記バッファに一時的に蓄積した前記パケットについての前記ルーティング処理及び前記ＮＡＴ処理を行う構成を採る。
【０００９】
この構成によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。
【００１０】
請求項３に係るパケット転送装置は、第１の通信処理系と第２の通信処理系とを具備し、前記第１の通信処理系は、クラシファイ装置とクラシファイルールテーブルとバッファとルーティングＮＡＴ処理手段とルーティングテーブルとＮＡＴテーブルとを具備し、前記クラシファイ装置は、受信するパケットの送り先として前記クラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、前記第２の通信処理系及び前記バッファのいずれかを選択し、前記第２の通信処理系は、前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及び前記ルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をする他のルーティングＮＡＴ処理手段と、当該ＮＡＴ処理の時に用いる情報を前記ＮＡＴテーブルに書き込む書込手段と、前記クラシファイルールテーブルに前記ルール情報を書き込む他の書込手段と、を具備し、前記第１の通信処理系の前記ルーティングＮＡＴ処理手段は、クラシファイ装置から受信したパケットをバッファに一旦蓄積し、前記バッファに一時的に蓄積した前記パケットを蓄積した順序で前記ＮＡＴテーブル及び前記ルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理を行う構成を採る。
【００１１】
この構成によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。
【００１２】
請求項４に係るパケット転送装置は、第１の通信処理系と第２の通信処理系とを具備し、前記第１の通信処理系は、クラシファイ装置とクラシファイルールテーブルとバッファとルーティングＮＡＴ処理手段とルーティングテーブルとＮＡＴテーブルとを具備し、前記クラシファイ装置は、受信するパケットの送り先として前記クラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、前記第２の通信処理系及び前記バッファのいずれかを選択する選択手段と、受信するパケットを前記クラシファイルールテーブルのルール情報に基づいて廃棄する廃棄手段と、を具備し、前記第２の通信処理系は、前記クラシファイ装置から受け取る前記パケットがルーティング処理及びＮＡＴ処理するべきものであるか又は廃棄すべきものであるかを前記パケットの情報に基づいて検査する検査手段と、前記検査の結果が廃棄すべきことを示している時に前記パケットを廃棄する他の廃棄手段と、前記パケットを廃棄すべきことを示す前記ルール情報を前記クラシファイルールテーブルに書き込む書込手段と、を具備し、前記他の廃棄手段は、前記バッファに一時的に蓄積した前記パケットを廃棄する構成を採る。
【００１３】
この構成によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。また、この構成によれば、受信したパケットの内容を検査し、廃棄すべきパケットであると判断した時には、以降のパケットについての廃棄をクラシファイ装置の廃棄手段が行うため、第１の通信処理系及び第２の通信処理系の負荷を軽減することができる。
【００１４】
請求項５に係るパケット転送装置は、請求項１に係るパケット転送装置において、前記クラシファイ装置は、一連のデータが分割されたパケットの内の最初の少なくとも１つの前記パケットを前記第２の通信処理系の前記他のルーティングＮＡＴ処理手段に与えて前記ルーティング処理及び前記ＮＡＴ処理をし、かつ、前記少なくとも１つのパケット以外の既に受信しているパケットを前記第１の通信処理系が備える前記バッファに与えて一時的に蓄積し、前記書込手段は、前記ＮＡＴ処理の際に使用するネットワークに関する情報を前記ＮＡＴテーブルに書き込み、前記ルーティングＮＡＴ処理手段が前記一連のデータで以降に受信する前記パケットについて前記ＮＡＴテーブルを用いての前記ＮＡＴ処理及び前記ルーティング処理を行い、かつ、前記他のルーティングＮＡＴ処理手段が前記バッファに一時的に蓄積した前記パケットについての前記ＮＡＴ処理及び前記ルーティング処理を行う構成を採る。
【００１５】
この構成によれば、請求項１の効果と同様に、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。
【００１６】
請求項６に係るパケット転送装置は、請求項３に係るパケット転送装置において、前記クラシファイ装置は、一連のデータが分割されたパケットの内の最初の少なくとも１つの前記パケットを前記第２の通信処理系の前記他のルーティングＮＡＴ処理手段に与えて前記ルーティング処理及び前記ＮＡＴ処理をし、かつ、前記少なくとも１つのパケット以外の既に受信しているパケットを前記第１の通信処理系が備える前記バッファに与えて一時的に蓄積し、前記書込手段は、前記ＮＡＴ処理の際に使用するネットワークに関する情報を前記ＮＡＴテーブルに書き込み、前記ルーティングＮＡＴ処理手段は、前記一連のデータで以降に受信する前記パケットについて前記ＮＡＴテーブルを用いての前記ＮＡＴ処理及び前記ルーティング処理を行い、かつ、前記バッファに一時的に蓄積した前記パケットについての前記ＮＡＴ処理及び前記ルーティング処理を行う構成を採る。
【００１７】
この構成によれば、請求項３の効果と同様に、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。
【００１８】
請求項７に係るパケット転送装置は、請求項３に係るパケット転送装置において、前記クラシファイ装置は、一連のデータが分割されたパケットの内の最初の少なくとも１つの前記パケットを前記第２の通信処理系の前記他のルーティングＮＡＴ処理手段に与えて前記ルーティング処理及び前記ＮＡＴ処理をし、かつ、前記少なくとも１つのパケット以外の前記パケットを前記第１の通信処理系が備える前記バッファに与えて一時的に蓄積し、前記書込手段は、前記ＮＡＴ処理の際に使用するネットワークに関する情報を前記ＮＡＴテーブルに書き込み、前記ルーティングＮＡＴ処理手段は、前記バッファに一時的に蓄積した前記パケットについて蓄積した順序で前記ＮＡＴ処理及び前記ルーティング処理を行う構成を採る。
【００１９】
この構成によれば、請求項３の効果と同様に、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。また、この構成によれば、請求項３の効果に加えて、パケットを受信した順序で転送処理を行うことができる。
【００２０】
請求項８に係る集積回路は、請求項１から請求項７のいずれかに記載のパケット転送装置における前記第１の通信処理系を具備する構成を採る。
【００２１】
この構成によれば、請求項１から請求項７のいずれかの効果に加えて、パケット転送装置の小型軽量化を実現することができる。
【００２２】
請求項９に係る集積回路は、請求項１から請求項７のいずれかに記載のパケット転送装置における前記第２の通信処理系を具備する構成を採る。
【００２３】
この構成によれば、請求項１から請求項７のいずれかの効果に加えて、パケット転送装置の小型軽量化を実現することができる。
【００２４】
請求項１０に係る集積回路は、請求項１から請求項７のいずれかに記載のパケット転送装置における前記クラシファイ装置を具備する構成を採る。
【００２５】
この構成によれば、請求項１から請求項７のいずれかの効果に加えて、パケット転送装置の小型軽量化を実現することができる。
【００２６】
請求項１１に係るパケット転送方法は、クラシファイ装置が受信するパケットの送り先としてクラシファイルールテーブルのルール情報に基づいて第１の通信処理系、第２の通信処理系及びバッファのいずれかを選択するステップと、前記第２の通信処理系が前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及びルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をするステップと、当該ＮＡＴ処理の時に用いる情報をＮＡＴテーブルに書き込むステップと、前記クラシファイルールテーブルに前記ルール情報を書き込むステップと、前記第１の通信処理系のルーティングＮＡＴ処理手段が前記クラシファイ装置から受け取る前記パケットに対して前記ＮＡＴテーブル及び前記ルーティングテーブル又は前記第２の通信処理系が保持する他のルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理をするステップと、前記第２の通信処理系の他のルーティングＮＡＴ処理手段又は前記ルーティングＮＡＴ処理手段が前記バッファに一時的に蓄積した前記パケットについての前記ルーティング処理及び前記ＮＡＴ処理をするステップと、を具備するようにした。
【００２７】
この方法によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。
【００２８】
請求項１２に係るパケット転送方法は、第１の通信処理系が有するクラシファイ装置が受信するパケットの送り先としてクラシファイルールテーブルのルール情報に基づいて前記第１の通信処理系、第２の通信処理系及び前記第１の通信処理系が有するバッファのいずれかを選択するステップと、前記第２の通信処理系が前記クラシファイ装置から受け取る前記パケットについてのＮＡＴモジュールを用いてのＮＡＴ処理及びルーティングテーブル又は前記第２の通信処理系が有する他のルーティングテーブルを用いてのルーティング処理をするステップと、前記第２の通信処理系が当該ＮＡＴ処理の時に用いる情報をＮＡＴテーブルに書き込むステップと、前記第２の通信処理系が前記クラシファイルールテーブルに前記ルール情報を書き込むステップと、前記第１の通信処理系のルーティングＮＡＴ処理手段が前記バッファに一時的に蓄積した前記パケットを蓄積した順序で前記ＮＡＴテーブル及び前記ルーティングテーブルの情報に基づいて前記ＮＡＴ処理及び前記ルーティング処理を行うステップと、を具備するようにした。
【００２９】
この方法によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系が備えるバッファがバースト性の高いストリームデータの受信時にもそのパケットの損失を発生させずに一時的に蓄積するため、パケットロスを起こすことなくパケット転送をすることができる。
【００３０】
請求項１３に係るパケット転送方法は、第１の通信処理系が有するクラシファイ装置が受信するパケットの送り先としてクラシファイルールテーブルのルール情報に基づいて第２の通信処理系及びバッファのいずれかを選択するステップと、受信するパケットを前記クラシファイルールテーブルのルール情報に基づいて廃棄するステップと、前記第２の通信処理系が前記クラシファイ装置から受け取る前記パケットがルーティング処理及びＮＡＴ処理するべきものであるか又は廃棄すべきものであるかを前記パケットの情報に基づいて検査するステップと、前記検査の結果が廃棄すべきことを示している時に前記パケットを廃棄するステップと、前記パケットを廃棄すべきことを示す前記ルール情報を前記クラシファイルールテーブルに書き込むステップと、前記他の廃棄手段が前記バッファに一時的に蓄積した前記パケットを廃棄するステップと、具備するようにした。
【００３１】
この方法によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系が備えるバッファがバースト性の高いストリームデータの受信時にもそのパケットの損失を発生させずに一時的に蓄積するため、パケットロスを起こすことなくパケット転送をすることができる。また、この方法によれば、受信したパケットの内容を検査し、廃棄すべきパケットであると判断した時には、以降のパケットについての廃棄をクラシファイ装置の廃棄手段が行うため、第１の通信処理系及び第２の通信処理系の負荷を軽減することができる。
【００３２】
請求項１４に係るプログラムは、請求項１１、請求項１２及び請求項１３のいずれかに記載のパケット転送方法をコンピュータに実行させる構成を採る。
【００３３】
この構成によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系が備えるバッファがバースト性の高いストリームデータの受信時にもそのパケットの損失を発生させずに一時的に蓄積するため、パケットロスを起こすことなくパケット転送をすることができる。
【００３４】
請求項１５に係るプログラムは、請求項１１、請求項１２及び請求項１３のいずれかに記載のパケット転送方法における前記第１の通信処理系が行うステップをコンピュータに実行させる構成を採る。
【００３５】
この構成によれば、第１の通信処理系が行うステップをまとめてプログラムにすることによりバージョンアップ等の処理を容易にすることができる。
【００３６】
請求項１６に係るプログラムは、請求項１１、請求項１２及び請求項１３のいずれかに記載のパケット転送方法における前記第２の通信処理系が行うステップをコンピュータに実行させる構成を採る。
【００３７】
この構成によれば、第２の通信処理系が行うステップをまとめてプログラムにすることによりバージョンアップ等の処理を容易にすることができる。
【００３８】
請求項１７に係るプログラムは、請求項１１、請求項１２及び請求項１３のいずれかに記載のパケット転送方法における前記第２の通信処理系の有する前記クラシファイ装置が行うステップをコンピュータに実行させる構成を採る。
【００３９】
この構成によれば、クラシファイ装置が行うステップをまとめてプログラムにすることによりバージョンアップ等の処理を容易にすることができる。
【発明の効果】
【００４０】
本発明によれば、第１の通信処理系のハードウェアによるパケットの高速なルーティング処理及びＮＡＴ処理と第２の通信処理系のソフトウェアによるパケットのルーティング処理及びＮＡＴ処理とを使い分けることでソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより、高いスループットでパケット転送することができ、かつ、第１の通信処理系にバッファを備えることによりバースト性の高いストリームデータの受信時にもパケット損失を発生させずにパケット転送をすることができる。
【発明を実施するための最良の形態】
【００４１】
本発明の骨子は、第１の通信処理系が備えるクラシファイ装置が、第２の通信処理系により書き込まれるクラシファイルールテーブルの情報に基づいて、受け取ったパケットの送り先としてハードウェアによるパケットの高速なルーティング処理とＮＡＴ処理とを行う第１の通信処理系、ソフトウェアによるパケットのルーティング処理とＮＡＴ処理とを行う第２の通信処理系、及び、パケットを一時的に蓄積するバッファのいずれかを選択し、そのバッファに一時的に蓄積されたパケットを第１の通信処理系又は第２の通信処理系がルーティング処理及びＮＡＴ処理することである。
【００４２】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００４３】
（実施の形態１）
図１は、実施の形態１に係るネットワーク１００の構成を示す図である。ネットワーク１００は、ＰＣ１０１と、パケット転送装置１０２と、インターネット網１０３と、ＰＣ１０４と、を具備している。ＰＣ１０１は宅内に存在するＰＣである。パケット転送装置１０２はＮＡＴ処理およびルーティング処理を実行する。ＰＣ１０１はパケット転送装置１０２及びインターネット網１０３を経由して、外部のＰＣ１０４と通信を行う。なお、図中の各装置に割り振られている番号は、それぞれのＩＰアドレス（グローバルＩＰアドレスおよびプライベートＩＰアドレス）である。
【００４４】
図２は、実施の形態１に係るパケット転送装置１０２の構成を示すブロック図である。パケット転送装置１０２は、クラシファイ装置２０１、ルーティングＮＡＴ処理部２０２、クラシファイルールテーブル２０３、ルーティングテーブル２０４、ＮＡＴテーブル２０５、ＣＰＵ２０６及びパケットバッファ２０７を備える。ＣＰＵ２０６は、ルーティングＮＡＴ処理部２０６１と書込部２０６２とを備える。
【００４５】
クラシファイ装置２０１は、クラシファイルールテーブル２０３に書き込まれた手順に従って、受け取ったパケットをＣＰＵ２０６、ルーティングＮＡＴ処理部２０２及びパケットバッファ２０７のいずれに与えるかの選択を行う。ＣＰＵ２０６が備えるルーティングＮＡＴ処理部２０６１は、ＮＡＴモジュール及びＣＰＵ２０６上で実行するＯＳが保持するルーティングテーブルを用いてクラシファイ装置２０１から受け取るパケットにＮＡＴ処理を施して出力する。ＣＰＵ２０６が備える書込部２０６２は、ルーティングＮＡＴ処理部２０６１のＮＡＴ処理で用いたネットワークに関する情報（旧送信元ＩＰアドレス、旧送信元ポート番号、新送信元ＩＰアドレス、新送信元ポート番号）をＮＡＴテーブル２０５に書き込む。ルーティングＮＡＴ処理部２０２は、ルーティングテーブル２０４及びＮＡＴテーブル２０５に基づいてクラシファイ装置２０１から受け取るパケットにＮＡＴ処理を施して出力する。なお、ＣＰＵ２０６は保持しているルーティングテーブルの情報を定期的にルーティングテーブル２０４に合わせ込む処理を行う。パケットバッファ２０７は、クラシファイ装置２０１から受け取るパケットを一時的に蓄積する。パケットバッファ２０７は蓄積したパケットをＣＰＵ２０６又はルーティングＮＡＴ処理部２０２の求めに応じていずれかに渡し、ＣＰＵ２０６が備えるルーティングＮＡＴ処理部２０６１又はルーティングＮＡＴ処理部２０２のいずれかがそのパケットのルーティング処理及びＮＡＴ処理を行う。
【００４６】
パケット転送装置１０２は、２つの機能ブロックを有している。すなわち、パケット転送装置１０２は、ルーティング回路部２０８とＣＰＵ２０６とを有している。ルーティング回路部２０８は、クラシファイ装置２０１、クラシファイルールテーブル２０３、ルーティングテーブル２０４、ＮＡＴテーブル２０５、パケットバッファ２０７及びルーティングＮＡＴ処理部２０２を有している。ＣＰＵ２０６は、ソフトウェアにてＩＰパケットのフォワーディングを行う。ルーティング回路部２０８は、ＡＳＩＣ（Application Specific Integrated Circuit）又はＦＰＧＡ（Field Programmable Gate Array）などの集積回路によって実現され、高速フォワーディングを可能にする。
【００４７】
なお、ここではルーティング回路部２０８は、クラシファイ装置２０１、ルーティングＮＡＴ処理部２０２、クラシファイルールテーブル２０３、ルーティングテーブル２０４及びＮＡＴテーブル２０５からなる集積回路としているが、クラシファイ装置２０１及びクラシファイルールテーブル２０３から構成される集積回路と、ルーティングＮＡＴ処理部２０２、ルーティングテーブル２０４、ＮＡＴテーブル２０５及びパケットバッファ２０７から構成される集積回路としてもよい。また、ＣＰＵ２０６は、ＡＳＩＣ（Application Specific Integrated Circuit）又はＦＰＧＡ（Field Programmable Gate Array）などの集積回路によって実現してもよい。
【００４８】
図３は、実施の形態１に係るパケット転送装置１０２のクラシファイルールテーブルの構成を説明するための図である。図４は、実施の形態１に係るパケット転送装置１０２のＮＡＴテーブルの構成を示す図である。図５は、実施の形態１に係るパケット転送装置１０２の他のクラシファイルールテーブルの構成を説明するための図である。
【００４９】
パケット転送装置１０２の動作について、図１から図５を参照すると共に図６に示す流れに沿って説明する。ここでは、ＰＣ１０１からＵＤＰパケットのストリームデータがＰＣ１０４に向けて（ＬＡＮ側からＷＡＮ側へ）送信されたとする。
【００５０】
図３において、No.４のエントリーにあるように、ＬＡＮ（宅内）からＷＡＮ（インターネット）方向に送信されるＵＤＰパケットをクラシファイ装置２０１がＣＰＵ２０６又はパケットバッファ２０７に転送するように設定されている。また、ＣＰＵ転送数が１と設定されていることから、最初のパケットのみがＣＰＵ２０６に転送され、以降のパケットはパケットバッファ２０７に蓄積されるようになっている。
【００５１】
最初のＵＤＰパケット（ＵＤＰパケット♯１）はクラシファイ装置２０１によってＣＰＵ２０６に転送される。ＣＰＵ２０６が備えるルーティングＮＡＴ処理部２０６１は、クラシファイ装置２０１から受け取るＵＤＰパケット♯１に対しＮＡＴ処理を実行する。ここでは、ＣＰＵ２０６が備えるルーティングＮＡＴ処理部２０６１は、ＵＤＰパケット♯１の送信元IPアドレス及び送信元ポート番号を変更する変更内容（それぞれ192.168.0.10→202.19.176.120、5038→6382へ変更）を決定し、その変更内容でＵＤＰパケット♯１の送信元IPアドレス及び送信元ポート番号を変更する。この間に、同一のストリームデータに係る後続のＵＤＰパケット（ここでは、ＵＤＰパケット♯２〜♯５）が次々とクラシファイ装置２０１に届くが、クラシファイ装置２０１は、これら全てをパケットバッファ２０７に転送する。
【００５２】
ＣＰＵ２０６は、クラシファイルールテーブル２０３及びＮＡＴテーブル２０５の内容の設定を行う。具体的には、ＣＰＵ２０６が備える書込部２０６２は、上述のＵＤＰパケット♯１の内容の変更情報を基に、ＮＡＴテーブル２０５のエントリーＮｏ．１の旧送信元ＩＰアドレス、旧送信元ポート、新送信元ＩＰアドレス、新送信元ポート、宛先ＩＰアドレス及び宛先ポートをそれぞれ192.168.0.10、5038、202.19.176.120、6382、202.232.2.13、5096に設定する。
【００５３】
また、ＣＰＵ２０６が備える書込部２０６２は、以降のパケットについてのルーティング処理及びＮＡＴ処理をハードウェアで高速に行うために、上述のＵＤＰパケット♯１の内容の変更情報を基に、図５に示すクラシファイルールテーブルのエントリーＮｏ．１のように、宛先ＩＰアドレス及び宛先ポートがそれぞれ202.232.2.13と5096であるパケットがクラシファイ装置２０１によりルーティングＮＡＴ処理部２０２へ渡されるように設定する。
【００５４】
また、ＣＰＵ２０６が備える書込部２０６２は、図５に示すクラシファイルールテーブルのエントリーＮｏ．４のように、別のストリームデータに係るＵＤＰパケットの受信時に再びＣＰＵ２０６へ転送ができるよう設定する。ＣＰＵ２０６が備えるルーティングＮＡＴ処理部２０６１は、パケットバッファ２０７に蓄積されているパケットを受信した順序で取り出してその全てのパケットのＮＡＴ処理及びルーティング処理を行う。
【００５５】
以上、本発明の実施の形態１に係るパケット転送装置１０２によれば、パケットの損失を生じることなく、柔軟かつ高速なパケット転送処理を行うことができる。
【００５６】
（実施の形態２）
実施の形態２に係るパケット転送装置１０２の他の動作について、図１から図４及び図７を参照すると共に図８に示す流れに沿って説明する。ここでは、ＰＣ１０１からＵＤＰパケットのストリームデータがＰＣ１０４に向けて（ＬＡＮ側からＷＡＮ側へ）送信されたとする。なお、図１から図４については、実施の形態１において説明しているので、図面ごとの説明は省略する。
【００５７】
最初のＵＤＰパケット（ＵＤＰパケット♯１）は、図３に示すクラシファイルールテーブルのエントリーＮｏ．４にある設定条件により、クラシファイ装置２０１によってＣＰＵ２０６に渡される。ＣＰＵ２０６が備えるルーティングＮＡＴ処理部２０６１は、クラシファイ装置２０１から受け取るＵＤＰパケット♯１に対しＮＡＴ処理を実行する。ここでは、ＣＰＵ２０６が備えるルーティングＮＡＴ処理部２０６１は、ＵＤＰパケット♯１の送信元IPアドレス及び送信元ポート番号を変更する変更内容（それぞれ192.168.0.10→202.19.176.120、5038→6382へ変更）を決定し、その変更内容でＵＤＰパケット♯１の送信元ＩＰアドレス及び送信元ポート番号を変更する。この間に、同一のストリームデータに係る後続のＵＤＰパケット（ここでは、ＵＤＰパケット♯２〜♯５）が次々とクラシファイ装置２０１に届くが、クラシファイ装置２０１は、これら全てをパケットバッファ２０７に転送する。
【００５８】
ＣＰＵ２０６は、クラシファイルールテーブル２０３及びＮＡＴテーブル２０５の内容の設定を行う。具体的には、ＣＰＵ２０６が備える書込部２０６２は、上述のＵＤＰパケット♯１の内容の変更情報を基に、ＮＡＴテーブル２０５のエントリーＮｏ．１の旧送信元ＩＰアドレス、旧送信元ポート、新送信元ＩＰアドレス、新送信元ポート、宛先ＩＰアドレス及び宛先ポートをそれぞれ192.168.0.10、5038、202.19.176.120、6382、202.232.2.13、5096に設定する。
【００５９】
また、ＣＰＵ２０６が備える書込部２０６２は、以降のパケット（ここでは、ＵＤＰパケット♯６と♯７）を一時的にパケットバッファ２０７に蓄積するために、上述のＵＤＰパケット♯１の内容の変更情報を基に、図７に示すクラシファイルールテーブルのエントリーＮｏ．１のように、宛先ＩＰアドレス及び宛先ポートがそれぞれ202.232.2.13と5096であるパケットがパケットバッファ２０７へ渡されるように設定する。
【００６０】
また、ＣＰＵ２０６は、図７に示すクラシファイルールテーブルのエントリーＮｏ．４のように、別のストリームデータに係るＵＤＰパケットの受信時に再びＣＰＵ２０６へ転送ができるよう設定する。
【００６１】
ルーティングＮＡＴ処理部２０２は、パケットバッファ２０７に蓄積されているパケットを受信した順序で取り出してその全てのパケットのＮＡＴ処理及びルーティング処理を行う。
【００６２】
このように本発明の実施の形態２に係るパケット転送装置１０２によれば、実施の形態１の効果に加えて、ＣＰＵ２０６の負荷を軽減することができ、かつ、同一のストリームデータを分割したパケットについて、受信した順序で転送することができる。
【００６３】
（実施の形態３）
本発明の実施の形態３について、図面を参照して説明する。本発明の実施の形態３に係るパケット転送装置においては、本発明の実施の形態１に係るパケット転送装置１０２と同じ構成要素については、同じ符号が付され、その説明が省略される。
【００６４】
図９は、実施の形態３に係るネットワーク９００の構成を示す図である。ネットワーク９００は、ＰＣ９０１と、インターネット網９０２と、パケット転送装置９０３と、ＰＣ９０４と、を具備している。ＰＣ９０４は宅内に存在するＰＣである。パケット転送装置９０３はＮＡＴ処理およびルーティング処理を実行する。ＰＣ９０４はパケット転送装置９０３及びインターネット網９０２を経由して、外部のＰＣ９０１と通信を行う。なお、図中の各装置に割り振られている番号は、それぞれのＩＰアドレス（グローバルＩＰアドレスおよびプライベートＩＰアドレス）である。
【００６５】
図１０は、実施の形態３に係るパケット転送装置９０３の構成を示すブロック図である。パケット転送装置９０３は、クラシファイ装置１００１と、ＮＡＴテーブル１００２と、ＣＰＵ１００３と、ルーティングＮＡＴ処理部２０２と、クラシファイルールテーブル２０３と、ルーティングテーブル２０４と、パケットバッファ２０７と、を具備している。クラシファイ装置１００１は、選択部１００１１と、廃棄部１００１２と、を有する。ＣＰＵ１００３は、検査部１００３１と、廃棄部１００３２と、ルーティングＮＡＴ処理部２０６１と、書込部２０６２と、を有する。
【００６６】
クラシファイ装置１００１が有する選択部１００１１は、クラシファイルールテーブル２０３に書き込まれた手順に従って、受け取ったパケットをＣＰＵ１００３、ルーティングＮＡＴ処理部２０２及びパケットバッファ２０７のいずれに与えるかの選択を行う。廃棄部１００１２は、受信するパケットのヘッダ情報からそのパケットの送信元ＩＰアドレスを確認し、クラシファイルールテーブル２０３を参照してその送信元ＩＰアドレスのパケットを廃棄する設定になっている時には、そのパケットを廃棄する。検査部１００３１は、クラシファイ装置１００１から受け取るパケットのペイロードの内容が予め設定された情報と一致するかを検査する。この検査目的及び検査方法には様々なものが考えられる。その一例としては送信元のＩＰアドレスからそのパケットがＰＣ９０１から送られたものかを特定するために、パケットのペイロード部分に暗号化された送信元情報を埋め込んで、検査部１００３１が予め保持している鍵で復号できた時にはＰＣ９０１が送信元であることを特定することができる。このとき初めてルーティングＮＡＴ処理部２０６１は、そのパケットにルーティング処理及びＮＡＴ処理を施して出力する。復号化できない時には、廃棄部１００３２がそのパケット廃棄すると共に、パケットバッファ２０７から一時的に蓄積されたパケットを取り出して廃棄する。
【００６７】
なお、ルーティング回路部１００４は、クラシファイ装置１００１、ルーティングＮＡＴ処理部２０２、クラシファイルールテーブル２０３、ルーティングテーブル２０４及びＮＡＴテーブル１００２からなる集積回路として構成してもよい。また、ルーティング回路部１００４は、クラシファイ装置１００１及びクラシファイルールテーブル２０３からなる集積回路と、ルーティングＮＡＴ処理部２０２、ルーティングテーブル２０４、ＮＡＴテーブル１００２及びパケットバッファ２０７からなる集積回路と、から構成してもよい。また、ＣＰＵ１００３は、ＡＳＩＣ（Application Specific Integrated Circuit）又はＦＰＧＡ（Field Programmable Gate Array）などの集積回路によって実現してもよい。
【００６８】
図１１は、実施の形態３に係るパケット転送装置９０３のＮＡＴテーブル１００２の構成を説明するための図である。実施の形態３においては、ＰＣ９０１からＰＣ９０４へ（すなわち、ＷＡＮ側からＬＡＮ側へ）データを送信するケースのパケット転送装置９０３の動作を対象とするため、図１１に示すＮＡＴテーブルは、実施の形態１の図４に示すＮＡＴテーブルと構成を異にする。図１１に示す送信元ＩＰ及び送信元ポートはＰＣ９０１のものである。旧宛先ＩＰ及び旧宛先ポートはパケット転送装置９０３のものである。新宛先ＩＰ及び新宛先ポートはＰＣ９０４のものであり、その新宛先ＩＰとはＬＡＮ内のプライベートＩＰアドレスである。
【００６９】
パケット転送装置９０３の動作について、図９から図１３を参照すると共に図１４に示す流れに沿って説明する。ここでは、ＰＣ９０１からＵＤＰパケットのストリームデータがＰＣ９０４に向けて（ＷＡＮ側からＬＡＮ側へ）送信されたとする。
【００７０】
まず、グローバルＩＰアドレスを使用するインターネット側からプライベートＩＰアドレスを使用する宅内側にストリームデータを送信するため、パケット転送装置９０３のＮＡＴテーブル１００２に対して予め手動で図１１のNo.１のエントリーにあるような設定（一般的にスタティックＮＡＴ設定と呼ばれる）をしておく必要がある。
【００７１】
図１２において、No.４のエントリーにあるように、ＷＡＮ（インターネット）からＬＡＮ（宅内）方向に送信されるＵＤＰパケットをクラシファイ装置１００１がＣＰＵ１００３又はパケットバッファ２０７に転送するように設定されている。また、ＣＰＵ転送数が５と設定されていることから、最初の５つのパケットのみがＣＰＵ１００３に転送され、以降のパケット（ここでは、ＵＤＰパケット♯６〜♯１０）はパケットバッファ２０７に蓄積されるようになっている。
【００７２】
最初の５つのＵＤＰパケット（ＵＤＰパケット♯１〜♯５）はクラシファイ装置１００１によってＣＰＵ１００３に転送される。ＣＰＵ１００３が備える検査部１００３１は、クラシファイ装置１００１から受け取るＵＤＰパケット♯１〜♯５に対し上述の検査を行う。この検査の結果、検査部１００３１がこの一連のストリームデータを通過させてよいと判断した場合はルーティングＮＡＴ処理部２０６１がＵＤＰパケット♯１〜♯５のルーティング処理及びＮＡＴ処理を行うと共に、書込部２０６２がクラシファイルールテーブル２０３の情報をクラシファイ装置１００１が受け取るパケットをルーティングＮＡＴ処理部２０２に渡すように書き込みをする。ここでは、検査部１００３１がＰＣ９０１から送信されるパケットについては転送せずに廃棄すると判定する場合について説明する。
【００７３】
検査部１００３１がＰＣ９０１から送信されるパケットについては転送せずに廃棄すると判定した場合には、廃棄部１００３２がＵＤＰパケット♯１〜♯５を廃棄する。また、書込部２０６２は、クラシファイ装置１００１に以降に届く送信元ＩＰ及び送信元ポートがそれぞれ202.232.2.13、5030で宛先ポートが6382であるパケット（ここでは、ＵＤＰパケット♯１１）を廃棄部１００１１が廃棄できるようにクラシファイルールテーブル２０３の設定を図１３のNo.４のエントリーのように設定する。
【００７４】
また、上記クラシファイルールテーブル２０３の設定をする前に既にパケットバッファ２０７に一時的に記憶されている送信元ＩＰ及び送信元ポートがそれぞれ202.232.2.13、5030で宛先ポートが6382であるパケット（ここでは、ＵＤＰパケット♯６〜♯１０）は、廃棄部１００３２が取り出して廃棄する。
【００７５】
以上、本発明の実施の形態３に係るパケット転送装置９０３によれば、同一のストリームデータに係るパケットの検査はソフトウェアを用いてＣＰＵ１００３が行うが、廃棄すると判断した場合、以降に届くそのストリームデータに係るパケットの廃棄についてはハードウェアであるクラシファイ装置が行うようにするため、ＣＰＵの資源の浪費を防止することができる。
【産業上の利用可能性】
【００７６】
本発明は、ソフトウェアによるＮＡＴ処理を少なくしてハードウェアによる高速フォワーディングを行うことにより高スループットを実現し、かつ、バースト性の高いストリームデータの受信時にもパケット損失を発生させないパケット転送装置およびパケット転送方法として有用である。
【図面の簡単な説明】
【００７７】
【図１】本発明の実施の形態１に係るネットワークの構成を示す図
【図２】実施の形態１に係るパケット転送装置の構成を示すブロック図
【図３】実施の形態１に係るパケット転送装置のクラシファイルールテーブルの構成を説明するための図
【図４】実施の形態１に係るパケット転送装置のＮＡＴテーブルの構成を示す図
【図５】実施の形態１に係るパケット転送装置の他のクラシファイルールテーブルの構成を説明するための図
【図６】実施の形態１に係るパケット転送装置の動作を説明するための図
【図７】実施の形態２に係るパケット転送装置のクラシファイルールテーブルの構成を説明するための図
【図８】実施の形態２に係るパケット転送装置の動作を説明するための図
【図９】実施の形態３に係るネットワークの構成を示す図
【図１０】実施の形態３に係るパケット転送装置の構成を示すブロック図
【図１１】実施の形態３に係るパケット転送装置のＮＡＴテーブルの構成を示す図
【図１２】実施の形態３に係るパケット転送装置のクラシファイルールテーブルの構成を説明するための図
【図１３】実施の形態３に係るパケット転送装置の他のクラシファイルールテーブルの構成を説明するための図
【図１４】実施の形態３に係るパケット転送装置の動作を説明するための図
【図１５】従来のパケット転送装置としてのルータの動作を説明するための図
【符号の説明】
【００７８】
１０１、１０４、９０１、９０４  ＰＣ
１０２、９０３  パケット転送装置
１０３、９０２  インターネット網
２０１、１００１  クラシファイ装置
２０２、２０６１  ルーティングＮＡＴ処理部
２０３  クラシファイルールテーブル
２０４  ルーティングテーブル
２０５、１００２  ＮＡＴテーブル
２０６、１００３  ＣＰＵ
２０６２  書込部
２０７  パケットバッファ
２０８  ルーティング回路部
１００１１  選択部
１００１２、１００３２  廃棄部
１００３１  検査部
【図１】
2005094050.tif 000003
【図２】
2005094050.tif 000004
【図３】
2005094050.tif 000005
【図４】
2005094050.tif 000006
【図５】
2005094050.tif 000007
【図６】
2005094050.tif 000008
【図７】
2005094050.tif 000009
【図８】
2005094050.tif 000010
【図９】
2005094050.tif 000011
【図１０】
2005094050.tif 000012
【図１１】
2005094050.tif 000013
【図１２】
2005094050.tif 000014
【図１３】
2005094050.tif 000015
【図１４】
2005094050.tif 000016
【図１５】
2005094050.tif 000017