(57)【要約】【課題】チップ面積を増大させること無くパケット転送処理を高速に実行することが可能なパケット転送装置を実現する。【解決手段】ルーティング情報を記憶する第１メモリと、ルーティング情報のうちから選択される選択ルーティング情報を記憶する第２メモリとを備える。比較部は、入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が選択ルーティング情報に存在するか比較処理を行う。パケット生成部は、特定ルーティング情報に基づいて入力パケットから出力パケットを生成する。更新判定部は、比較処理において特定ルーティング情報が存在しない場合に、前記第２メモリの前記選択ルーティング情報を更新可能か判定する。転送処理部は、更新可能な場合、第１メモリのルーティング情報から選択ルーティング情報を新たに選択して、第２メモリの選択ルーティング情報の更新処理を行う。【選択図】図３
2011239299.tif 000002
【特許請求の範囲】
【請求項１】
入力パケットから出力パケットを生成するためのルーティング情報を記憶する第１メモリと、
前記ルーティング情報のうちから選択される選択ルーティング情報を記憶する第２メモリと、
前記入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が前記選択ルーティング情報に存在するか比較処理を行う比較部と、
前記特定ルーティング情報に基づいて前記入力パケットから前記出力パケットを生成するパケット生成部と、
前記比較処理において前記選択ルーティング情報のうちに前記特定ルーティング情報が存在しない場合に、前記第２メモリの前記選択ルーティング情報を更新可能か判定する更新判定部と、
前記更新判定部により前記第２メモリの前記選択ルーティング情報を更新可能と判定された場合に、前記第１メモリに記憶された前記ルーティング情報から前記選択ルーティング情報を新たに選択して、前記第２メモリに記憶された前記選択ルーティング情報の更新処理を行う転送処理部と
を備えるパケット転送装置。
【請求項２】
請求項１に記載のパケット転送装置であって、
前記更新判定部は、前記入力パケットのパケットレングスに基づいて算出される前記後続パケットを受信する時期までに前記第２メモリを更新可能な更新可能回数だけ前記第２メモリが更新されるまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するレングス判定処理を行うレングス判定部
を備えるパケット転送装置。
【請求項３】
請求項１に記載のパケット転送装置であって、
前記更新判定部は、前記後続パケットを受信したか監視することにより前記後続パケットを受信するまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するトラフィック判定処理を行うトラフィック判定部
をさらに備えるパケット転送装置。
【請求項４】
請求項２に記載のパケット転送装置であって、
前記レングス判定部は、
前記入力パケットのパケットレングスを検出するレングス抽出部と、
前記第２メモリの更新処理の実行可能回数を前記パケットレングスに応じて生成する更新回数テーブルと、
前記比較部による前記比較処理の実行完了を検知するとインクリメントして前記第２メモリの更新回数をカウントする第１更新カウンタ部と、
前記比較処理が完了する毎に前記更新回数と前記実行可能回数とを比較して、前記更新回数が前記実行可能回数と一致するまで前記第２メモリの前記選択ルーティング情報を更新可能と判定する第２比較部と
を備えるパケット転送装置。
【請求項５】
請求項３に記載のパケット転送装置であって、
前記トラフィック判定部は、
前記後続パケットの受信を検出する入力パケット検出部と、
前記比較処理が完了する毎に前記入力パケット検出部により前記後続パケットの受信を検出されたか判定し、前記後続パケットの受信が検出されるまで前記第２メモリの前記選択ルーティング情報を更新可能と判定する第２判定部と
をさらに備えるパケット転送装置。
【請求項６】
請求項１に記載のパケット転送装置であって、
前記更新判定部は、
前記入力パケットのパケットレングスに基づいて算出される前記後続パケットを受信する時期までに前記第２メモリを更新可能な更新可能回数だけ前記第２メモリが更新されるまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するレングス判定処理を行うレングス判定部と、
前記後続パケットを受信したか監視することにより前記後続パケットを受信するまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するトラフィック判定処理を行うトラフィック判定部と
を備えるパケット転送装置。
【請求項７】
請求項６に記載のパケット転送装置であって、
前記レングス判定部は、
前記入力パケットのパケットレングスを検出するレングス抽出部と、
前記比較部による前記比較処理の実行完了を検知するとインクリメントして前記第２メモリの更新回数をカウントする第１更新カウンタ部と、
前記第２メモリの更新処理の実行可能回数を前記パケットレングスに応じて生成する更新回数テーブルと、
前記比較処理が完了する毎に前記更新回数と前記実行可能回数とを比較して、前記更新回数が前記実行可能回数と一致するまで前記第２メモリの前記選択ルーティング情報を更新可能と判定する第２比較部と
を備え、
前記トラフィック判定部は、
前記後続パケットの受信を検出する入力パケット検出部と、
前記比較処理が完了する毎に、前記入力パケット検出部により前記後続パケットの受信を検出されたか判定し、前記後続パケットの受信が検出されるまで前記第２メモリの前記選択ルーティング情報を更新可能と判定する第２判定部と
を備えるパケット転送装置。
【請求項８】
請求項７に記載のパケット転送装置であって、
前記更新判定部は、前記レングス判定処理による判定結果と、前記トラフィック判定処理による判定結果とを選択する選択部をさらに備え、
前記選択部は、初期状態で前記レングス判定処理による判定結果を選択して、前記レングス判定部により前記更新処理が継続可能でないとの判定結果を入力した後に前記トラフィック判定部による判定結果を選択して、前記転送処理部による前記更新処理の可否を判定する
パケット転送装置。
【請求項９】
請求項１に記載のパケット転送装置であって、
前記更新判定部は、
前記入力パケットと前記後続パケットとを一時的に保持するパケットメモリと、
前記パケットメモリに保持された前記入力パケットと前記後続パケットのデータ量が所定の閾値を超えるまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するデータ量判定処理を行うデータ量判定部と
を備えるパケット転送装置。
【請求項１０】
請求項９に記載のパケット転送装置であって、
前記パケットメモリは、
前記入力パケット及び前記後続パケットを保持するバッファと、
前記バッファにおける前記入力パケットあるいは前記後続パケットの書き込み位置を生成するライトポインタと、
前記バッファにおける前記入力パケットあるいは前記後続パケットの読み出し位置を生成するリードポインタと
を備え、
前記更新判定部は、前記書き込み位置と前記読み出し位置の差分から前記バッファに保持された前記入力データの前記データ量を算出する
パケット転送装置。
【請求項１１】
請求項１から請求項１０までのいずれかに記載のパケット転送装置であって、
前記エントリ更新部は、前記比較処理の実行回数をカウントする第２更新カウンタ部
をさらに備え、  
前記転送処理部は、前記第２メモリが更新される毎に、前記ルーティング情報から前記選択ルーティング情報を選択する指定アドレスを、前記実行回数に前記第２メモリのメモリ容量を乗じた値だけ加算したアドレスで指定する
パケット転送装置。
【請求項１２】
入力パケットから出力パケットを生成するためのルーティング情報を記憶する第１メモリと、
前記ルーティング情報のうちから選択される選択ルーティング情報を記憶する第２メモリと
を備えるパケット転送装置において、
前記入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が前記選択ルーティング情報に存在するか比較処理を行うステップと、
前記特定ルーティング情報に基づいて前記入力パケットから前記出力パケットを生成するステップと、
前記比較処理において前記選択ルーティング情報のうちに前記特定ルーティング情報が存在しない場合に、前記第２メモリの前記選択ルーティング情報を更新可能か判定するステップと、
前記更新判定部により前記第２メモリの前記選択ルーティング情報を更新可能と判定された場合に、前記前記第１メモリに記憶された前記ルーティング情報から前記選択ルーティング情報を新たに選択して、前記第２メモリに記憶された前記選択ルーティング情報の更新処理を行うステップと  
を備えるパケット転送方法。
【請求項１３】
請求項１２に記載のパケット転送方法であって、前記更新可能か判定するステップは、
前記入力パケットのパケットレングスに基づいて算出される前記後続パケットを受信する時期までに前記第２メモリを更新可能な更新可能回数だけ前記第２メモリが更新されるまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するレングス判定処理を行うステップと
を備えるパケット転送方法。
【請求項１４】
請求項１２に記載のパケット転送方法であって、前記更新可能か判定するステップは、
前記後続パケットを受信するか監視することにより前記後続パケットを受信するまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するトラフィック判定処理を行うステップと
を備えるパケット転送方法。
【請求項１５】
請求項１２に記載のパケット転送方法であって、前記更新可能か判定するステップは、
前記入力パケットのパケットレングスに基づいて算出される前記後続パケットを受信する時期までに前記第２メモリを更新可能な更新可能回数を前記更新可能回数だけ前記第２メモリが更新されるまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するレングス判定処理を行うステップと、
前記後続パケットを受信するか監視を行うことにより前記後続パケットを受信するまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するトラフィック判定処理を行うステップと
を備えるパケット転送方法。
【請求項１６】
請求項１５に記載のパケット転送方法であって、前記更新可能か判定するステップは、
初期状態で前記レングス判定処理による判定結果を選択することにより前記転送処理部による前記更新処理の可否を判定するステップと、
前記レングス判定部により前記更新処理が継続可能でないとの判定結果を入力した後に前記トラフィック判定部による判定結果を選択することにより前記転送処理部による前記更新処理の可否を判定するステップと
を備えるパケット転送方法。
【請求項１７】
請求項１２に記載のパケット転送方法であって、前記更新可能か判定するステップは、
前記入力パケットと前記後続パケットとをバッファに一時的に保持するステップと、
前記パケットメモリに保持された前記入力パケットと前記後続パケットのデータ量が所定の閾値を超えるまで前記第２メモリの前記選択ルーティング情報を更新可能と判定するデータ量判定処理を行うステップと
を備えるパケット転送方法。
【請求項１８】
請求項１７に記載のパケット転送方法であって、前記入力パケットと前記後続パケットとを一時的に保持するステップは、
前記入力パケット及び前記後続パケットを保持するステップと、
前記バッファにおける前記入力パケットあるいは前記後続パケットの書き込み位置を生成するステップと、
前記バッファにおける前記入力パケットあるいは前記後続パケットの読み出し位置を生成するステップと
を備え、
前記データ量判定処理を行うステップは、
前記書き込み位置と前記読み出し位置の差分から前記バッファに保持された前記入力データの前記データ量を算出するステップ
を含むパケット転送方法。
【請求項１９】
請求項１２から請求項１８までのいずれかに記載のパケット転送方法であって、
前記比較処理の実行回数をカウントするステップ
をさらに備え、  
前記転送処理を行うステップは、前記第２メモリが更新される毎に前記ルーティング情報から前記選択ルーティング情報を選択する指定アドレスを前記実行回数に前記第２メモリのメモリ容量を乗じた値だけ加算したアドレスで指定するステップ
を含むパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信パケットを転送するパケット転送装置に関する。
【背景技術】
【０００２】
パケット通信システムにおいて通信パケット（以下、パケット）を転送するパケット転送装置が知られている。パケット転送装置は、ネットワークルータやネットワークスイッチに例示される。家庭用のパケット転送装置では、低価格な製品が求められている。パケット転送装置における多様な処理の全てをハードウェアで実現することは、半導体チップ（以下、チップ）の占有面積の増大を招く。
【０００３】
そのため、家庭用のパケット転送装置は、中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）によるソフトウェア処理によって各種機能を実現することでコスト削減を図っていた。この場合、パケット転送処理で必要となるルーティングテーブルは、低価格な汎用大容量メモリにより構成される。汎用大容量メモリは、ネットワークプロセッサ外部に設けられたＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に代表される。ここで、ネットワークプロセッサは、パケット転送等の通信処理に特化したプロセッサを言う。
【０００４】
しかし、家庭用のパケット転送装置は、インタネットの普及に伴って、基本機能であるパケット転送に加えて、様々な機能が追加されている。例えば、特定の条件を満たすパケットのみを通過させるフィルタリング機能や、特定のパケットのみを優先的に転送する優先制御（ＱｏＳ：Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）機能や、遠隔地にあるネットワーク間を安全に接続するＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）機能等である。また、通信トラフィックの増大に伴い光ファイバー網に例示される通信インフラの整備が進み、ネットワークの物理的通信速度も高速化している。
【０００５】
このような背景から、ＣＰＵの負荷を低減するために、従来、中央処理装置によるソフトウェア処理で実現していた機能の一部を、ネットワークプロセッサにおいてハードウェアで実現する構成がとられている。例えば、パケット転送処理で必要となるルーティングテーブルの一部を、アクセスレイテンシーの高い汎用大容量メモリではなく、ネットワークプロセッサ内部に設けられたメモリへ配置する構成が用いられている。
【０００６】
このような構成では、処理時間の高速化を計ることが可能であるものの、ネットワークプロセッサに回路が追加されることで、チップ面積の増大が避けられない。特に、家庭用のパケット転送装置に用いられるネットワークプロセッサでは、面積の増大を最小限にとどめることが求められている。
【０００７】
特許文献１は、パケット転送におけるテーブル検索処理の負荷を低減して、パケット転送の高速化を図るパケット転送装置を開示している。
【０００８】
図１を用いて特許文献１のパケット転送装置を説明する。図１は、特許文献１のパケット転送装置の構成を示す図である。パケット転送装置１００は、パケットを受信する１つまたは複数の入力インタフェース１０１と、更新パケットを別のネットワークに出力する１つまたは複数の出力インタフェース１０２とを有する。図１では、２つの入力インタフェース１０１及び２つの出力インタフェース１０２を備える場合を例示している。
【０００９】
入力インタフェース１０１から取り込まれたパケットは、パケット解析部１０３へ入力される。パケット解析部１０３は、入力したパケットのフォーマットを解析する。パケット解析情報は、ビット列抽出部１０５へ入力される。ビット列抽出部１０５は、パケット解析情報に基づいて、入力パケット中から任意の部分のビット列を抽出する。
【００１０】
ビット列キャッシュ部１０７は、過去に処理を行われたパケットのビット列を保持する。ビット列キャッシュに対応する処理や処理パラメータは、処理パラメータ保持部１０８に保持される。ビット列キャッシュに対応する処理や処理パラメータは、処理パラメータ保持部に保持される。
【００１１】
キャッシュ検索部１０６は、抽出されたビット列とビット列キャッシュのエントリを比較する。ビット列キャッシュに一致するエントリが無い場合、パケットを受信するべきか否かを判定するのは、受信フィルタリングテーブル検索部１１５、及び受信フィルタリングテーブル１１０である。
【００１２】
ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｐｏｒｔ）テーブル１１１が、内部ネットワークと外部ネットワークのＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスの対応関係を保持する。ＮＡＴテーブル検索部１１６が、変換するべきＩＰアドレスを決定する。
【００１３】
また、ルーティングテーブル１１２が、宛先ＩＰアドレスと次に転送する装置のＩＰアドレス、及び出力インタフェースの対応情報を保持する。ルーティングテーブル検索部１１７が、ルーティングテーブル１１２を参照して次に転送する装置のＩＰアドレス、及び出力インタフェースを決定する。
【００１４】
レイヤ（以下、Ｌ）３−Ｌ２アドレス変換テーブル１１３が、ＩＰアドレスとリンクレイヤアドレス（イーサネット（登録商標）であればＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス）の対応を保持する。Ｌ３−Ｌ２アドレス変換テーブル検索部１１８が、Ｌ３−Ｌ２アドレス変換テーブル１１３を用いてリンクレイヤアドレスを決定する。また、送信フィルタリングテーブル検索部１１９及び送信フィルタリングテーブル１１４が、パケットを送信するべきか判定する。
【００１５】
キャッシュ更新部１０９は、ビット列抽出部１０５が抽出したビット列をビット列キャッシュに、また、各種テーブルにおける検索結果を処理パラメータ保持部１０８に格納する。パケット更新部１０４は、処理パラメータ保持部１０８または各種テーブルの検索結果からパケットを更新する。１つまたは複数の出力インタフェース１０２が、更新パケットを最終的に別のネットワークへ出力する。
【００１６】
特許文献１のパケット転送装置は、パケット転送処理の高速化のために、ＮＡＴテーブル１１１やルーティングテーブル１１２とは別に、ビット列キャッシュ１０７、処理パラメータ保持部１０８、及びキャッシュ検索部１０６を備える。過去に転送処理を行ったパケット中から抽出した任意のビット列やパラメータを、ビット列キャッシュ１０７及び処理パラメータ保持部１０８が保持する。
【００１７】
そして、新たに受信されたパケット中から抽出されたビット列及びパラメータが、保持された過去のビット列及びパラメータと一致する場合、キャッシュ検索部１０６が処理を行う。これにより、過去に処理されたことのあるパケットと同一のビット列やパラメータを有するパケットに対する変換処理の高速化を図っている。
【００１８】
一般的な家庭用のパケット転送装置では、ＮＡＴテーブル１１１やルーティングテーブル１１２に保持される情報量が多い。そのため、ＮＡＴテーブル１１１やルーティングテーブル１１２は、ＤＲＡＭ等の汎用大容量メモリに構成される。このような構成では、ＤＲＡＭ特有のアクセスオフセットにより情報の読み出しに遅延が発生してしまう。
【００１９】
そこで、特許文献１のパケット転送装置は、ＮＡＴテーブル１１１やルーティングテーブル１１２の情報を一時的に格納する各種キャッシュメモリを備える。これによって、変換処理の高速化を可能にしている。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００５−３４７９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかし、特許文献１のパケット転送装置では、ビット列キャッシュ部１０７、処理パラメータ保持部１０８に格納された情報に一致しないパケットを受信した場合、従来どおり、ＮＡＴテーブル１１１やルーティングテーブル１１２を用いたテーブル検索を実行する必要がある。この場合、変換処理の高速化を図ることができない。このような状態を避けるには、ビット列キャッシュ部１０７や処理パラメータ保持部１０８の記憶容量を増やす必要がある、その結果、チップ面積が増大してしまうという課題を生じる。
【課題を解決するための手段】
【００２２】
以下に、（発明を実施するための形態）で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、（特許請求の範囲）の記載と（発明を実施するための形態）との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、（特許請求の範囲）に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２３】
本発明のパケット転送装置は、入力パケットから出力パケットを生成するためのルーティング情報を記憶する第１メモリ（２１２）と、ルーティング情報のうちから選択される選択ルーティング情報を記憶する第２メモリ（２０６）とを備える。比較部（２０７）は、入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が選択ルーティング情報に存在するか比較処理を行う。パケット生成部（２０８、２０９、２１０）は、特定ルーティング情報に基づいて入力パケットから出力パケットを生成する。更新判定部（２０４）、比較処理において選択ルーティング情報のうちに特定ルーティング情報が存在しない場合に、第２メモリ（２０６）の選択ルーティング情報を更新可能か判定する。転送処理部（２１３）は、第２メモリ（２０６）の選択ルーティング情報を更新可能な場合、第１メモリ（２１２）に記憶されたルーティング情報から選択ルーティング情報を新たに選択して、第２メモリ（２０６）に記憶された選択ルーティング情報の更新処理を行う。
【００２４】
本発明のパケット転送方法は、入力パケットから出力パケットを生成するためのルーティング情報を記憶する第１メモリ（２１２）と、ルーティング情報のうちから選択される選択ルーティング情報を記憶する第２メモリ（２０６）とを備えるパケット転送装置において、入力パケットから抽出された比較対象情報と一致する特定ルーティング情報が選択ルーティング情報に存在するか比較処理を行うステップ（Ｓ２００）と、特定ルーティング情報に基づいて入力パケットから出力パケットを生成するステップ（Ｓ２０２、Ｓ２０３）と、比較処理において選択ルーティング情報のうちに特定ルーティング情報が存在しない場合（Ｓ２０１）に、第２メモリ（２０６）の選択ルーティング情報を更新可能か判定するステップ（Ｓ２０４）と、第２メモリ（２０６）の選択ルーティング情報を更新可能な場合、第１メモリ（２１２）に記憶されたルーティング情報から選択ルーティング情報を新たに選択して、第２メモリ（２０６）に記憶された選択ルーティング情報の更新処理を行うステップ（Ｓ２０６）と、を備える。
【発明の効果】
【００２５】
本発明によれば、チップ面積を増大させること無くパケット転送処理を高速に実行することが可能なパケット転送装置を実現することができる。
【図面の簡単な説明】
【００２６】
【図１】図１は、特許文献１のパケット転送装置の構成を示す図である。
【図２】図２は、本発明の第１実施形態におけるパケット転送装置２００を適用したパケット通信システムの構成例を示す図である。
【図３】図３は、本発明の第１実施形態におけるパケット転送装置２００の構成を示す図である。
【図４】図４は、本発明の第１実施形態におけるパケット転送装置２００により送受信されるパケットの構成を示す図である。
【図５】図５は、本発明の第１実施形態におけるパケット転送装置２００により送受信されるパケットのＩＰヘッダフィールド２２の構成を示す図である。
【図６】図６は、本発明の第１実施形態におけるパケット転送装置２００の中央制御装置２１５の物理アドレス空間マッピングの一例を示す図である。
【図７】図７は、本発明の第１実施形態におけるパケット転送装置２００のルーティングテーブル２１２に格納されたルーティング情報５２の構成を示す図である。
【図８】図８は、本発明の第１実施形態におけるパケット転送装置２００のエントリ更新部２０４の構成を示す図である。
【図９】図９は、本発明の第１実施形態におけるパケット転送装置２００のレングス判定部２０２の構成を示す図である。
【図１０】図１０は、本発明の第１実施形態におけるパケット転送装置２００の更新回数テーブル２３２の構成を示す図である。
【図１１】図１１は、本発明の第１実施形態におけるパケット転送装置２００のトラフィック判定部２０３の構成を示す図である。
【図１２】図１２は、本発明の第１実施形態におけるパケット転送装置２００の動作を示すタイミングチャートである。
【図１３】図１３は、本発明の第１実施形態におけるパケット転送装置２００の動作を示すフローチャートである。
【図１４】図１４は、本発明の第１実施形態におけるパケット転送装置２００のレングス判定処理の動作を示すフローチャートである。
【図１５】図１５は、本発明の第１実施形態におけるパケット転送装置２００のトラフィック判定処理の動作を示すフローチャートである。
【図１６】図１６は、本発明の第１実施形態におけるパケット転送装置２００のエントリテーブル更新動作を示すフローチャートである。
【図１７】図１７は、本発明の第１実施形態におけるパケット転送装置２００のルーティングテーブル２１２とエントリテーブル２０６の一例を示す図である。
【図１８】図１８は、本発明の第２実施形態におけるパケット転送装置３００の構成を示す図である。
【図１９】図１９は、本発明の第２実施形態におけるパケット転送装置３００の受信データ量判定部３３１の構成を示す図である。
【図２０Ａ】図２０Ａは、本発明の第２実施形態におけるパケット転送装置２００の動作を示すフローチャートである。
【図２０Ｂ】図２０Ｂは、本発明の第２実施形態におけるパケット転送装置２００の動作を示すフローチャートである。
【発明を実施するための形態】
【００２７】
添付図面を参照して、本発明の実施形態によるパケット転送装置を以下に説明する。
【００２８】
（第１実施形態）
まず、本発明の第１実施形態におけるパケット転送装置の説明を行う。
【００２９】
［概要］
本実施形態のパケット転送装置は、全てのルーティング情報を記録したルーティングテーブルと、ルーティングテーブルのルーティング情報のうちから選択された一部のルーティング情報を記録するエントリテーブルとを備える。比較部は、入力パケットのヘッダ情報等の比較要因情報とエントリテーブルのルーティング情報との比較処理を実行する。比較処理において比較要因情報に一致するエントリテーブルのルーティング情報が存在する場合、入力パケットに対するパケット変換処理により出力パケット生成される。
【００３０】
一方、比較処理において比較要因情報に一致するエントリテーブルのルーティング情報が存在しない場合、エントリテーブルのルーティング情報の更新が行われる。エントリ更新部は、比較処理を継続可能であるかに基づいて、エントリテーブルの更新処理の可否を決定する判定処理を行う。エントリ更新部は、レングス判定部とトラヒック判定部とを備える。レングス判定部は、入力パケットのパケットレングスに基づいて、エントリテーブルの更新を許可するか判定するレングス判定処理を行う。また、トラフィック判定部は、入力パケットの後続の後続パケットの受信を検出したか否かに基づいて、エントリテーブルの更新を許可するかを判定するトラフィック判定処理を行う。
【００３１】
レングス判定処理では、入力パケットのパケットレングスが長い程、更新処理の回数を多く許可する。パケットレングスが長い程、入力パケットの受信処理時間は長く、その間比較部による比較処理を継続可能であるためである。また、トラフィック判定処理では、後続パケットの受信が検出されるまで更新処理の実行を許可する。後続パケットが受信されるまでは、入力パケットに対するパケット転送処理を行え、その間は、比較部に夜比較処理を継続可能であるためである。
【００３２】
このように、本実施形態のパケット転送装置は、ルーティングテーブルのルーティング情報を用いてエントリテーブルのルーティング情報を更新しつつ、比較部が比較処理を行うため、エントリテーブルの容量を増大させる必要が無い。そのため、エントリテーブルを備えるネットワークプロセッサのチップ面積が増大することも無い。また、ネットワークプロセッサによるパケット転送処理は、中央処理装置によるパケット転送処理より高速である。本実施形態のパケット転送装置は、エントリ更新部による判定処理によりエントリテーブルの更新禁止を判定されるまで、比較部による比較処理を継続することができる。そのため、ネットワークプロセッサによる高速なパケット転送処理をより多く行うことができる。以下、このような本実施形態のパケット転送装置の構成及び動作を説明する。
【００３３】
［構成の説明］
はじめに、本実施形態におけるパケット転送装置の構成の説明を行う。
【００３４】
図２は、本実施形態におけるパケット転送装置２００を適用したパケット通信システムの構成例を示す図である。図２を参照すると、パケット通信システムは、複数のパーソナルコンピュータ（以下、ＰＣ）１０を備えたイントラネット１４と、サーバ１１と、パケット転送装置２００と、インタネット１３とを備える。図２においてパケット転送装置２００は、イントラネット１４とインタネット１３との間を接続する。
【００３５】
パケット転送装置２００は、イントラネット１４内のプライベートＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を設定されたＰＣ１０とグローバルＩＰアドレスを設定されたサーバ１１との間で送受信される通信パケット（以下、パケット）２０の転送処理を行って、ＰＣ１０からインタネット１３を介したサーバ１１へのアクセスを実現する。なお、図２に示したパケット通信システムの構成は、一般的なシステム構成の一例である。パケット転送装置２００は、このようなシステム構成への適用に限定されず、多様なシステム構成に適用可能である。
【００３６】
図２に示したパケット通信システムでは、パケット転送装置２００が、グローバルＩＰアドレスでルーティングされるインタネット１３とプライベートＩＰアドレスでルーティングされるイントラネット１４とを接続する。このとき、パケット転送装置２００は、限られたグローバルＩＰアドレスを有効に利用するためＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｐｏｒｔ）を用いてＩＰアドレスの変換を行う。ＮＡＴでは、パケット転送装置２００の後述するルーティングテーブル２１２やエントリテーブル２０６に記録されたルーティング情報に基づいてＩＰアドレス変換が行われる。
【００３７】
次に、図３は、本実施形態におけるパケット転送装置２００の構成を示す図である。本実施形態のパケット転送装置２００は、ネットワークプロセッサ２１４と、中央処理装置２１５と、大容量メモリ２１１とを備える。ネットワークプロセッサ２１４と、中央処理装置２１５と、大容量メモリ２１１とは、それぞれシステムデータバス２１６と接続されており、システムデータバス２１６を介してデータ送受信を行うことが可能である。
【００３８】
まず、中央処理装置２１５の説明を行う。中央処理装置２１５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に例示される。中央処理装置２１５は、コンピュータプログラムを実行して、パケット転送装置２００の処理全体を制御する。なお、中央処理装置２１５は、ネットワークプロセッサ２１４の内部に搭載されても良い。
【００３９】
次に、大容量メモリ２１１の説明を行う。大容量メモリ２１１は、パケット転送装置２００の主記憶装置である。大容量メモリ２１１は、パケット転送装置２００の機能を実現するためのコンピュータプログラムや各種データを記憶する。大容量メモリ２１１は、パケット転送装置２００で送受信される全てのパケット転送処理に用いられる情報であるルーティング情報を格納したルーティングテーブル２１２を備える。ルーティングテーブル２１２は、後述するエントリテーブル２０６と同様の構成である。
【００４０】
次に、ネットワークプロセッサ２１４の説明を行う。ネットワークプロセッサ２１４は、パケットの転送処理を行う。ネットワークプロセッサ２１４は、パケット受信部２０１と、エントリ更新部２０４と、比較要因抽出部２０５と、エントリテーブル２０６と、比較部２０７と、パケット生成部２０８と、変換データ生成部２０９と、パケット送信部２１０と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ２１３とを備える。
【００４１】
まず、パケット受信部２０１は、パケット転送装置２００の外部から受信されるパケット（以下、入力パケット）の受信処理を行う。パケット受信部２０１は、入力パケットに対するフォーマットチェックを行って、入力パケットにおけるフォーマットエラーを検出する。フォーマットチェックでは、入力パケットのヘッダの有無の検出や、ヘッダの位置の検出等が行われ、ヘッダやパケットフォーマットのエラー検出が行われる。パケット受信部２０１は、入力パケットを、エントリ更新部２０４、比較要因部２０５、及びパケット生成部２０８へ出力する。
【００４２】
ここで、図４は、本実施形態におけるパケット転送装置２００により送受信されるパケット２０の構成を示す図である。
【００４３】
パケット２０は、物理層アドレス情報を示すＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスフィールド２１と、ネットワーク層のパケット情報を示すＩＰヘッダフィールド２２と、トランスポート層のパケット情報を示すＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）／ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）ヘッダフィールド２３とを含む。
【００４４】
ＭＡＣアドレスフィールド２１は、宛先ＭＡＣアドレスフィールド２４と送信元ＭＡＣアドレスフィールド２５を含む。ＩＰヘッダフィールド２２は、ＩＰ通信における制御情報を示すＩＰ情報フィールド２６と、送信元ＩＰアドレスフィールド２７と、宛先ＩＰアドレスフィールド２８とを含む。ＴＣＰ／ＵＤＰヘッダフィールドは、送信元ポート番号フィールド２９と、宛先ポート番号フィールド３０とを含む。
【００４５】
続いて、図５は、本実施形態におけるパケット転送装置２００により送受信されるパケット２０のＩＰヘッダフィールド２２の構成を示す図である。
【００４６】
ＩＰヘッダフィールド２２は、前述の通り、ＩＰ情報フィールド２６と、送信元ＩＰアドレスフィールド２７と、宛先ＩＰアドレスフィールド２８とを備える。ＩＰ情報フィールド２６は、経路制御情報や、エラー通知情報、パケットの分割有無を示す情報等が含まれている。ＩＰ情報フィールド２６の先頭から３バイト目にＩＰパケットの長さを示すトータルレングス（Ｔｏｔａｌ  Ｌｅｎｇｔｈ）フィールド３１が含まれる。
【００４７】
なお、図４、図５に示したようなパケット２０の構成は一般的であるので、これ以上の詳細な説明を省略する。
【００４８】
次に、図３のネットワークプロセッサ２１４の説明に戻り、エントリ更新部２０４は、エントリテーブル２０６の更新可否を判定する。エントリ更新部２０４は、パケット受信部２０１からフォーマットチェック後の入力パケットを入力する。また、エントリ更新部２０４は、中央処理装置２１５からパケット転送装置２００の通信速度に関する制御情報と、比較部２０７からテーブル更新パルスとを入力する。エントリ更新部２０４は、入力パケットに対する比較部２０７による比較処理を継続可能であるか否かに基づいて、エントリテーブル２０６の更新可否を判定する。
【００４９】
エントリ更新部２０４は、レングス判定部２０２と、トラフィック判定部２０３とを備える。レングス判定部２０２とトラフィック判定部２０３は、入力パケットに続いて受信されるパケット２０（以下、後続パケット）の受信が開始されるまで、比較部２０７による比較処理を継続可能であると判定する。レングス判定部２０２は、入力パケットのパケットレングスに基づいて、エントリテーブル２０６の更新可否を判定する。レングス判定部２０２は、入力パケットのパケットレングスに基づいて算出される後続パケットの入力が開始される時期までエントリテーブル２０６の更新を許可する。また、トラフィック判定部２０３は、後続のパケットの受信状態に基づいて、エントリテーブル２０６の更新可否を判定する。トラフィック判定部２０３は、後続パケットが受信されるかを監視する。トラフィック判定部２０３は、後続パケットの受信が検出されるまでエントリテーブル２０６の更新を許可する。なお、レングス判定部２０２とトラフィック判定部２０３の詳細な構成は後述する。
【００５０】
また、エントリ更新部２０４は、エントリテーブル更新許可信号とＤＭＡアドレスオフセット信号とをＤＭＡコントローラ２１３へ出力する。エントリテーブル更新許可信号は、エントリテーブル２０６のエントリの更新許可及び更新禁止を示す。ＤＭＡアドレスオフセット信号は、ＤＭＡコントローラ２１３によるルーティングテーブル２１２からエントリテーブル２０６へのルーティング情報の転送におけるアドレス指定に用いられる。
【００５１】
次に、ＤＭＡコントローラ２１３は、ルーティングテーブル２１２からエントリテーブル２０６へルーティング情報の転送を行って、エントリテーブル２０６を更新する。ＤＭＡコントローラ２１３は、エントリテーブル更新許可信号およびＤＭＡアドレスオフセット信号を入力する。ＤＭＡコントローラ２１３は、エントリ更新部２０４からのエントリテーブル更新許可信号により、エントリテーブル２０６の更新許可を示されている場合に、ルーティングテーブル２１２からエントリテーブル２０６へルーティング情報の転送を行う。一方、ＤＭＡコントローラ２１３は、エントリテーブル更新許可信号によりエントリテーブル２０６の更新禁止を示されている場合、ルーティングテーブル２１２からエントリテーブル２０６へルーティング情報の転送を行わない。
【００５２】
ＤＭＡコントローラ２１３がルーティング情報の転送時に指定するアドレスは、宛先アドレスをエントリテーブル２０６に固定され、送信元アドレスをＤＭＡアドレスオフセット信号に基づいて算出される。
【００５３】
ここで、図６は、本実施形態におけるパケット転送装置２００の中央制御装置２１５の物理アドレス空間マッピングの一例を示す図である。図６は、パケット転送装置の中央制御装置２１５が３２ビットのアドレス空間４０を有する場合を示している。３２ビットのアドレス空間４０には、大容量メモリ２１１、及びルーティングテーブル２１２、パケット受信部２０１、エントリ更新部２０４、比較要因抽出部２０５、エントリテーブル２０６、比較部２０７、パケット生成部２０４、変換データ生成部２０９、パケット送信２１０、ＤＭＡコントローラ２１３が、それぞれマッピングされている。
【００５４】
図６を参照すると、パケット受信部２０１は、アドレス「０ｘ６０００００００」番地にアドレッシングされている。同様に、エントリ更新部２０４がアドレス「０ｘ７０００００００」番地に、比較要因抽出部２０５がアドレス「０ｘ８０００００００」番地に、エントリテーブル２０６がアドレス「０ｘ５０００００００」番地に、比較部２０７がアドレス「０ｘ９０００００００」番地に、パケット生成部２０８がアドレス「０ｘＣ０００００００」番地に、変換データ生成部２０９がアドレス「０ｘＡ０００００００」番地に、パケット送信部２１０がアドレス「０ｘＢ０００００００」番地に、ＤＭＡコントローラ２１３がアドレス「０ｘ４０００００００」番地に、それぞれアドレッシングされている。
【００５５】
また、大容量メモリ２１１がアドレス「０ｘ００００００００」番地からの大容量メモリ空間４３に、ルーティングテーブル２１２がアドレス「０ｘ２０００００００」番地からのルーティングテーブル空間４２に、エントリテーブル２０６がアドレス「０ｘ５０００００００」番地からのエントリテーブル空間４１に、それぞれアドレッシングされている。中央処理装置２１５やＤＭＡコントローラ２１３は、これらのアドレスを用いて各構成要素を指定してデータ送受信を行う。
【００５６】
ＤＭＡコントローラ２１３は、宛先アドレスを、エントリテーブル２０６のアドレッシングされているアドレス「０ｘ５０００００００」番地に設定する。また、ＤＭＡコントローラ２１３は、送信元アドレスを、ルーティングテーブル２１２のアドレッシングされているアドレス「０ｘ２０００００００」番地に設定する。なお、送信元アドレスは、エントリテーブル２０６が更新される度に、アドレス「０ｘ２０００００００」番地からエントリテーブル２０６のサイズだけ調整されたアドレスとなる。例えば、エントリテーブル２０６のサイズが２５６バイトで構成されている場合、ＤＭＡコントローラ２１３は、エントリテーブル２０６が更新される度に、アドレス「０ｘ２０００００００」番地に更新回数に応じて２５６バイトずつ加算された値を、送信元アドレスとして設定する。
【００５７】
次に、図３のネットワークプロセッサ２１４の説明に戻り、エントリテーブル２０６は、ルーティングテーブル２１２のルーティング情報の一部を一時的に格納する。エントリテーブル２０６に格納されるルーティング情報は、ＤＭＡコントローラ２０６により更新される。また、エントリテーブル２０６に格納されたルーティング情報は、比較部２０７へ出力される。
【００５８】
エントリテーブル２０６は、小容量の記憶装置であり、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に例示される。エントリテーブル２０６は、ネットワークプロセッサ内に構成されるアクセスオフセットの小さい記憶装置であるため、ルーティングテーブル２１２へアクセスする場合に比べて、高速にアクセスすることができる。
【００５９】
ここで、図７は、本実施形態におけるパケット転送装置２００のエントリテーブル２０６に格納されたルーティング情報５２の構成を示す図である。エントリテーブル２０６は、変換前フィールド群５０に変換後フィールド群５１を対応させた構成である。変換前フィールド５０は、入力パケットに付与された宛先ＭＡＣアドレス２４、送信元ＭＡＣアドレス２５、宛先ＩＰアドレス２８、送信元ＩＰアドレス２７と、宛先ポート番号３０と、送信元ポート番号２９とが記録される。また、変換後フィールド５１は、後述するパケット転送装置２００から送信される出力パケットに付与された宛先ＭＡＣアドレス２４、送信元ＭＡＣアドレス２５、宛先ＩＰアドレス２８、送信元ＩＰアドレス２７と、宛先ポート番号３０と、送信元ポート番号２９とが記録される。変換前フィールド４０と変換後フィールド４１とに記録される情報は、それぞれ入力パケット及び出力パケットから取得された情報である。なお、前述の通り、ルーティングテーブル２１２は、図７に示したエントリテーブル２０６と同様の構成である。このようなエントリテーブル２０６やルーティングテーブル２１２は、一般的な構成であり、また、図７に示すような形式に限定するものではない。
【００６０】
次に、図３のネットワークプロセッサ２１４の説明に戻り、比較要因抽出部２０５は、入力パケットから比較要因情報を抽出する。比較要因情報は、比較部２０７においてエントリテーブル２０６に格納されたルーティング情報と比較されるべき情報である。比較要因情報は、例えば、図４に示した宛先ＭＡＣアドレス２０、送信元ＭＡＣアドレス２１、送信元ＩＰアドレス２２、宛先ＩＰアドレス２３、送信元ポート番号２４、宛先ポート番号に例示される。なお、比較要因情報は、これらの情報に限定しない。より多くの情報が、入力パケットから抽出されてもよい。比較要因抽出部２０５は、比較要因情報を比較部２０７へ出力する。
【００６１】
次に、比較部２０７は、比較要因抽出部２０５から入力される比較要因情報とエントリテーブル２０６に格納されたルーティング情報とを比較する比較処理を実行する。比較部２０７は、比較処理により、エントリテーブル２０６に格納されたルーティング情報に比較要因情報と一致する情報が存在するか判定する。例えば、入力パケットの送信元ＩＰアドレスと宛先ＩＰアドレスが比較要因情報として抽出された場合、比較部２０７は、エントリテーブル２０６に入力パケットの送信元ＩＰアドレスと宛先ＩＰアドレスと一致するルーティング情報が格納されているかを比較する。比較部２０７は、比較結果を示す比較結果信号を変換データ生成部２０９へ出力し、また、比較処理の完了を通知するテーブル更新パルスをエントリ更新部２０４へ出力する。
【００６２】
次に、変換データ生成部２０９は、比較結果信号で示された比較処理において一致したルーティング情報をエントリテーブル２０６から取得して、出力パケット変換するための変換データをパケット生成部２０８へ出力する。
【００６３】
次に、パケット生成部２０８は、パケット受信部２０１から入力パケットを入力して、また、変換データ生成部２０９から変換データを入力する。パケット生成部２０８は、変換データを用いて入力パケットから出力パケットを生成する。パケット生成部２０８は、出力パケットを、パケット送信部２１０へ出力する。
【００６４】
次に、パケット送信部２１０は、パケット生成部２０８から出力パケット入力して、出力パケットをネットワークへ送信する。以上が、ネットワークプロセッサ２１４の構成の説明である。
【００６５】
続いて、図８を参照して、本実施形態におけるパケット転送装置２００のエントリ更新部２０４を詳細に説明する。図８は、本実施形態におけるパケット転送装置２００のエントリ更新部２０４の構成を示す図である。本実施形態のエントリ更新部２０４は、レングス判定部２０２と、トラフィック判定部２０３と、選択部２２０と、物理層通信速度情報記憶部（以下、通信速度記憶部）２２１と、システムクロック速度情報記憶部（以下、クロック速度記憶部）２２２とを備える。
【００６６】
まず、通信速度記憶部２２１は、パケット転送装置２００の行うパケット通信における物理層の通信速度情報を記憶する。通信速度記憶部２２１は、中央処理装置２１５からシステムデータバス２１６を介して通信速度情報を設定される。通信速度記憶部２２１は、通信速度情報をレングス判定回路２０２へ出力する。
【００６７】
次に、クロック速度記憶部２２２は、ネットワークプロセッサ２１４のシステムクロックの速度情報であるクロック速度情報を記憶する。クロック速度記憶部２２２は、中央処理装置２１５からシステムデータバス２１６を介してクロック速度情報を記憶される。クロック速度記憶部２２２は、クロック速度情報をレングス判定部２０２へ出力する。
【００６８】
次に、レングス判定部２０２は、入力パケットのパケットレングスに基づいて、エントリテーブル２０６の更新可否を判定する。レングス判定部２０２は、比較部２０７からテーブル更新パルスと、パケット受信部２０１から入力パケットと、通信速度記憶部２２１から通信速度情報と、クロック速度記憶部２２２からクロック速度情報とを入力する。レングス判定部２０２は、レングス判定ＤＭＡアドレスオフセット信号と、レングス判定テーブル更新許可信号とを、選択部２２０とトラフィック判定部２０３とへ出力する。
【００６９】
次に、トラフィック判定部２０３は、後続パケットの受信状態に基づいて、エントリテーブル２０６の更新可否を判定する。トラフィック判定部２０３は、比較部２０７からテーブル更新パルスと、パケット受信部２０１から入力パケットと、レングス判定部２０２からトラフィック判定ＤＭＡアドレスオフセット信号とトラフィック判定テーブル更新許可信号とを入力する。トラフィック判定部２０３は、トラフィック判定ＤＭＡアドレスオフセット信号と、トラフィック判定テーブル更新許可信号とを、選択部２２０へ出力する。
【００７０】
なお、レングス判定部２０２とトラフィック判定部２０３の詳細な構成は後述する。また、レングス判定ＤＭＡアドレスオフセット信号とトラフィック判定ＤＭＡアドレスオフセット信号とは、それぞれ、レングス判定部２０２及びトラフィック判定部２０３の出力する図３で説明を行ったＤＭＡアドレスオフセット信号である。いずれの信号がＤＭＡアドレスオフセット信号としてエントリ更新部２０４から出力されるかは、選択部２２０により決定される。前述の通り、ＤＭＡアドレスオフセット信号は、ＤＭＡコントローラ２１３によるルーティングテーブル２１２からエントリテーブル２０６へのルーティング情報転送におけるアドレス指定に用いられる。
【００７１】
さらに、レングス判定テーブル更新許可信号とトラフィック判定テーブル更新許可信号とは、それぞれ、レングス判定部２０２とトラフィック判定部２０３の出力する図３で説明を行ったエントリテーブル更新許可信号である。いずれの信号がエントリテーブル更新許可信号としてエントリ更新部２０４から出力されるかは、選択部２２０により決定される。前述の通り、エントリテーブル更新許可信号は、エントリテーブル２０６のエントリの更新許可及び更新禁止を示す。
【００７２】
次に、選択部２２０は、トラフィック判定部２０３からトラフィック判定ＤＭＡアドレスオフセット信号とトラフィック判定テーブル更新許可信号とを入力し、レングス判定部２０２からレングス判定ＤＭＡアドレスオフセット信号とレングス判定テーブル更新許可信号とを入力する。選択部２２０は、レングス判定テーブル更新許可信号を選択信号として用いる。
【００７３】
選択部２２０は、レングス判定テーブル更新許可信号がエントリテーブル２０６の更新許可を示している場合、レングス判定部２０２から入力されるレングス判定ＤＭＡアドレスオフセット信号とレングス判定テーブル更新許可信号とを選択して、ＤＭＡアドレスオフセット信号とエントリテーブル更新許可信号としてＤＭＡコントローラ２１３へ出力する。
【００７４】
一方、選択部２２０は、レングス判定テーブル更新許可信号がエントリテーブル２０６の更新禁止を示している場合、トラフィック判定部２０３から入力されるトラフィック判定ＤＭＡアドレスオフセット信号とトラフィック判定テーブル更新許可信号とを選択して、ＤＭＡアドレスオフセット信号とエントリテーブル更新許可信号としてＤＭＡコントローラ２１３へ出力する。以上が、エントリ更新部２０４の構成の説明である。
【００７５】
続いて、図９を参照して、本実施形態におけるパケット転送装置２００のレングス判定部２０２の構成を詳細に説明する。図９は、本実施形態におけるパケット転送装置２００のレングス判定部２０２の構成を示す図である。本実施形態のレングス判定部２０２は、更新カウンタ部２３０と、ＩＰヘッダフィールドレングス抽出部（以下、ＩＰレングス抽出部）２３１と、更新回数テーブル２３２と、比較部２３３とを備える。
【００７６】
まず、更新カウンタ部２３０は、エントリテーブル２０６の更新回数をカウントする。更新カウンタ部２３０は、比較部２０７からテーブル更新パルスを入力するとインクリメント動作を行う。一方、更新カウンタ部２３０は、比較部２３３から更新禁止を示すレングス判定テーブル更新許可信号を入力すると初期化する。更新カウンタ部２３０は、カウント数情報を比較部２３３へ出力すると共に、カウント数情報をレングス判定ＤＭＡアドレスオフセット信号として選択回路２２０へ出力する。
【００７７】
次に、ＩＰレングス抽出部２３１は、パケット受信部２０１から入力される入力パケットからパケットレングス情報を抽出する。ＩＰレングス抽出部２３１は、図５に示したパケット２０のＩＰヘッダフィールド２２のＩＰ情報２６に含まれるトータルレングスフィールド３１からパケットレングス情報を抽出する。ＩＰレングス抽出部２３１は、パケットレングス情報を更新回数テーブル２３２へ出力する。
【００７８】
次に、更新回数テーブル２３２は、エントリテーブル２０６の更新回数制限値を生成する。更新回数テーブル２３２は、ＩＰレングス抽出部２３１からパケットレングス情報と、通信速度記憶部２２１から通信速度情報と、クロック速度記憶部２２２からクロック速度情報とを入力する。更新回数テーブル２３２は、パケットレングス情報と、通信速度情報と、クロック速度情報とに基づいて、更新回数制限値を生成する。
【００７９】
図１０は、本実施形態におけるパケット転送装置２００の更新回数テーブル２３２の構成を示す図である。本実施形態の更新回数テーブル２３２は、パケットレングスフィールド６０と、システムクロック周波数フィールド６１と、データ転送レートフィールド６２と、更新回数制限値フィールド６３とを備える。パケットレングスフィールド６０は、パケット２０のパケットレングスを６４バイト単位に区分したフィールドである。システムクロック周波数フィールド６１は、クロック速度記憶部２２２から入力されたクロック速度情報を記録する。クロック速度情報は、ネットワークプロセッサ２１４の動作クロック周波数を示す。データ転送レートフィールド６２は、通信速度記憶部２２１から入力された通信速度情報を記録する。通信速度情報は、パケット転送装置２００のパケット転送レートである。
【００８０】
更新回数制限値フィールド６３は、パケットレングス情報と、通信速度情報と、クロック速度情報とに基づいて生成される更新回数制限値を記録する。更新回数制限値フィールド６３の各データフィールドに記録される値は、それぞれ対応するパケットレングスフィールド６０のパケットレングス情報と、システムクロック周波数フィールド６１のクロック速度情報と、データ転送レートフィールド６２の通信速度情報とに基づいて生成される。
【００８１】
更新回数制限値は、パケットレングスが長い程、更新回数が多くなるように生成される。パケットレングスが長い程、入力パケットの受信処理に時間を要するためである。また、更新回数制限値は、クロック速度情報におけるシステムクロックが高速である程、更新回数が多くなるように生成される。システムクロックが高速である程、比較部２０７による比較処理やＤＭＡコントローラ２１３による更新処理もより高速に行うことが可能なためである。さらに、更新回数制限値は、通信速度情報におけるデータ転送レートが高速である程、更新回数が少なくなるように生成される。データ転送レートが高速である程、入力パケットの受信処理に時間を要しないためである。
【００８２】
次に、図９のレングス判定部２０２の説明に戻り、比較部２３３は、更新カウンタ部２３０から入力されるカウント数情報と、更新回数テーブル２３２に記録された更新回数制限値とを比較する比較処理を行う。比較部２３３は、カウント数情報のカウント数が更新回数制限値より小さい場合、更新許可を示すレングス判定テーブル許可信号を選択部２２０へ出力する。一方、比較部２２３は、カウント数情報が更新回数制限値以上の場合、更新禁止を示すレングス判定テーブル許可信号を選択部２２０へ出力する。また、比較部２２３は、更新禁止を示すレングス判定テーブル許可信号を更新カウンタ部２３０へ出力する。以上が、レングス判定部２０２の構成の説明である。
【００８３】
続いて、図１１を参照して本実施形態におけるパケット転送装置２００のトラフィック判定部２０３の構成を詳細に説明する。図１１は、本実施形態におけるパケット転送装置２００のトラフィック判定部２０３の構成を示す図である。本実施形態のトラフィック判定部２０３は、入力パケット検出部２４０と、後続パケット検出判定部２４１と、更新カウンタ２４２とを備える。
【００８４】
まず、更新カウンタ２４２は、エントリテーブル２０６の更新回数をカウントする。更新カウンタ２４２は、レングス判定部２０２の比較部２３３から更新禁止を示すレングス判定テーブル更新許可信号を入力すると、レングス判定部２０２の更新カウンタ部２３０から入力するレングス判定ＤＭＡアドレスオフセット信号の示す値を初期値として更新回数のカウントを開始する。更新カウンタ部２４２は、比較部２０７からテーブル更新パルスを入力するとインクリメント動作を行う。一方、更新カウンタ部２４２は、後続パケット検出判定部２４１からパケット検出信号を入力すると初期化する。更新カウンタ部２４２は、カウント数情報をトラフィック判定ＤＭＡアドレスオフセット信号として選択回路２２０へ出力する。
【００８５】
次に、入力パケット検出部２４０は、パケット受信部２０１から入力パケットが出力されるかを監視して、現在処理を行っている入力パケットの後続パケットが入力されたことを検出する。入力パケット検出部２４０は、後続パケットを検出すると、後続パケット検出信号を後続パケット検出判定部２４１へ出力する。
【００８６】
次に、後続パケット検出判定部２４１は、比較部２０７の比較処理の完了時に後続パケットの有無を判定する。後続パケット検出判定部２４１は、比較回路２０７からテーブル更新パルスと、入力パケット検出部２４０から後続パケット検出信号とを入力する。後続パケット検出判定部２４１は、テーブル更新パルスにより比較部２０７の比較処理の完了を検出すると、後続パケット検出信号に基づいて後続パケットの有無を判定する。後続パケット検出判定部２４１は、後続パケットを検出するまで更新許可を示すトラフィック判定テーブル更新許可信号を選択部２２０へ出力する。一方、後続パケット検出判定部２４１は、後続パケット有を検出すると更新禁止を示すトラフィック判定テーブル更新許可信号を選択部２２０と更新カウンタ２４２とへ出力する。以上が、トラフィック判定部２０３の構成の説明である。
【００８７】
［動作の説明］
次に、本実施形態におけるパケット転送装置２００の動作の説明を行う。はじめに、図１２を参照して本実施形態におけるパケット転送装置２００の処理動作の概念の説明を行う。図１２は、本実施形態におけるパケット転送装置２００の動作を示すタイミングチャートである。
【００８８】
図１２を参照すると、パケット転送装置２００の受信部と処理部における処理タイミングが示されている。図１２において、受信部とはパケット転送装置２００のパケット受信部２０１を示し、処理部とは、パケット転送装置２００の他構成を示すものとする。
【００８９】
一般に、イーサネット（登録商標）パケットは、最小パケットレングスが６４バイト、最大パケットレングスが１５１８バイトと可変である。図１２（ａ）は、最小パケットレングスのパケットが連続して受信されている状況下において、どのポイントで比較処理、変換処理を行うかを示すタイミングチャートである。また、図１２（ｂ）は、最小パケットレングスのパケットが間隔を空けて受信されている状況下において、どのポイントで比較処理、変換処理を行うかを示すタイミングチャートである。さらに図１２（ｃ）は、最大パケットレングスのパケットが連続的に受信されている状況下において、どのポイントで比較処理、変換処理を行うかを示すタイミングチャートである。
【００９０】
図１２（ａ）において、パケット１の先頭データを検出後に、パケット転送装置２０７にて比較処理が行われる。この比較処理を行うことが可能な時間が、比較可能時間７０である。比較処理の結果により変換データ生成部２０９とパケット生成部２０８にてパケット変換処理が行われる。最小パケットレングスのパケットが連続して受信されている状状況下では、パケット１の先頭データを受信するタイミングとパケット２の先頭データを受信するタイミングの間隔（以下、パケット受信間隔）が短い。パケット２を受信するとパケット２の比較処理を開始しなければならない。そのため、比較可能時間７０を短く確保することしかできない。このように、比較処理可能時間７０が短いと、パケット２の比較処理を即座に開始する必要がある。
【００９１】
次に、図１２（ｂ）において、同様に、パケット１の先頭データを検出後に、パケット転送装置２０７にて比較処理が行われる。この比較処理を行うことが可能な時間が、比較可能時間７１である。比較処理の結果により変換データ生成部２０９とパケット生成部２０８にてパケット変換処理が行われる。最小パケットレングスのパケットが間隔を空けて受信されている状状況下では、パケット１とパケット２とのパケット受信間隔が長い。そのため、比較可能時間７１を長く確保することができる。このように、比較処理可能時間７１が長いと、比較処理可能時間７１の間にエントリテーブル２０６の更新を行って、再度、比較回路２０７による比較処理を行うことが可能となる。
【００９２】
さらに、図１２（ｃ）において、同様に、パケット１の先頭データを検出後に、パケット転送装置２０７にて比較処理が行われる。この比較処理を行うことが可能な時間が、比較可能時間７２である。比較処理の結果により変換データ生成部２０９とパケット生成部２０８にてパケット変換処理が行われる。最大パケットレングスのパケットが連続して受信されている状状況下では、パケット１とパケット２とのパケット受信間隔が長い。そのため、比較可能時間７２を長く確保することができる。このように、比較処理可能時間７２が長いと、比較処理可能時間７２の間にエントリテーブル２０６の更新を行って、再度、比較回路２０７による比較処理を行うことが可能となる。
【００９３】
今後、主流となるＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  ６）を用いた通信では、最小のＭＴＵ（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｕｎｉｔ）サイズが１２８０バイトと規定されている。つまり、送信するべきデータを、短いレングスの多数のパケットに分けるよりも、長いレングスの少数のパケットに詰め込んで送ったほうが効率的となる。そのため、長いレングスのパケットが用いられるようになると考えられる。
【００９４】
また、近年普及している光ファイバーやＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）等を用いたインタネット接続サービスは、通信センタからの距離や、同時に使用するユーザ数等の個別環境によって通信速度に変化が生じるベストエフォートである。例えば、通信速度１００Ｍｂｐｓのサービスに加入したとしても、通信速度の低下が発生して、パケット受信間隔が大きくなることも発生し得る。
【００９５】
このように、今後のインタネット等を含む通信ネットワークでは、長いレングスのパケットを用いた通信や、パケット受信間隔の大きい通信が多くなると考えられる。そのため、本実施形態のパケット転送装置２００では、レングス判定部２０２によりパケットレングスを用いた判定と、トラヒック判定部２０３による後続パケットの受信検出を用いた判定とを導入して、より多く比較部２０７による比較処理を実行可能にする。つまり、レングス判定部２０２は、入力パケットの受信処理中におけるエントリテーブル２０６の更新可否を判定する。そして、トラヒック判定部２０３は、入力パケットの受信処理完了後から後続パケットが受信されるまでにおけるエントリテーブル２０６の更新可否を判定することになる。
【００９６】
次に、図１３を参照して本実施形態におけるパケット転送装置２００の動作フローの説明を行う。図１３は、本実施形態におけるパケット転送装置２００の動作を示すフローチャートである。
【００９７】
まず、パケット受信部２０１は、入力パケットの有無を判定する（ステップＳ１００）。入力パケットが検出されない場合（ステップＳ１００のＮｏ）、入力パケットが検出されるまで本ステップを繰り返す。一方、入力パケットが検出された場合（ステップＳ１００のＹｅｓ）、パケット受信部２０１は、入力パケットのフォーマットチェックを行う（ステップＳ１０１）。
【００９８】
そして、パケット受信部２０１は、フォーマットチェックの結果により入力パケットのエラーの有無を判定する（ステップＳ１０２）。入力パケットにエラーが検出された場合（ステップＳ１０２のＹｅｓ）、当該入力パケットは、中央処理装置２１５によるパケット転送処理が行われ（ステップＳ１０３）、本動作は終了となる。
【００９９】
一方、入力パケットにエラーが検出されない場合（ステップＳ１０２のＮｏ）、比較要因抽出部２０５は、入力パケットから比較要因情報を抽出する（ステップＳ１０４）。比較要因情報が抽出されると、レングス判定部２０２の更新カウンタ２３０、及びトラフィック判定部２０３の更新カウンタ２４２が初期化される（ステップＳ１０５）。
【０１００】
初期化が完了すると、レングス判定部２０２が、入力パケットのパケットレングスに基づいたエントリテーブル２０６の更新許可及び更新禁止を判定するレングス判定処理を行う（ステップＳ１０６）。レングス判定部２０２のレングス判定処理においてエントリテーブル２０６の更新禁止が判定されるまで、エントリテーブル２０６は、ＤＭＡコントローラ２１３により更新される。そして、比較部２０７は、エントリテーブル２０６のルーティング情報を用いて比較処理を行う。なお、レングス判定部２０２によるレングス判定処理の詳細は後述する。
【０１０１】
レングス判定部２０２によるレングス判定処理においてエントリテーブル２０６の更新禁止を判定されると、トラフィック判定部２０３による、後続パケットの受信状態に基づいたエントリテーブル２０６の更新許可及び更新禁止を判定するトラヒック判定処理を行う（ステップＳ１０７）。トラフィック判定部２０３のトラフィック判定処理においてエントリテーブル２０６の更新禁止が判定されるまで、エントリテーブル２０６は、ＤＭＡコントローラ２１３により更新される。そして、比較部２０７は、エントリテーブル２０６のルーティング情報を用いて比較処理を行う。なお、トラフィック判定部２０３によるトラフィック判定処理の詳細は後述する。トラフィック判定部２０３によるトラフィック判定処理においてエントリテーブル２０６の更新禁止を判定されると、本動作は終了となる。
【０１０２】
次に、図１４を参照して本実施形態におけるパケット転送装置２００のレングス判定処理の動作の説明を行う。図１４は、本実施形態におけるパケット転送装置２００のレングス判定処理の動作を示すフローチャートである。なお、本説明は、図１３に示したフローチャートにおけるステップＳ１０６を詳細に説明するものである。
【０１０３】
まず、比較部２０７は、エントリテーブル２０６に記録されたルーティング情報と、比較要因抽出部２０５により抽出された比較要因情報とを比較する比較処理を行う（ステップＳ２００）。比較部２０７は、比較処理の結果、比較要因情報に一致するエントリテーブル２０６のルーティング情報が存在するか否かを判定する（ステップＳ２０１）。
【０１０４】
一致するルーティング情報が存在する場合（ステップＳ２０１のＹｅｓ）、変換データ生成部２０９は、一致したルーティング情報に基づいて、入力パケットを変換するための変換データを生成する（ステップＳ２０２）。そして、パケット生成部２０８は、変換データ生成部２０９により生成されたパケット変換データを用いて、入力パケットを変換して出力パケットを生成する（ステップＳ２０３）。これにより、本動作は終了となる。なお、この後、パケット送信部２１０は、出力パケットを送信する。
【０１０５】
一方、一致するルーティング情報が存在しない場合（ステップＳ２０１のＮｏ）、レングス判定部２０２の比較部２３３は、更新カウンタ部２３０の出力するカウンタ数情報と更新回数テーブル２３２の出力する更新回数制限値とが一致するかを比較する（ステップＳ２０４）。
【０１０６】
カウンタ数情報と更新回数制限値とが一致する場合（ステップＳ２０４のＹｅｓ）、比較部２３３は、更新禁止を示すレングス判定テーブル更新許可信号を出力する。これにより、本動作は終了となる。この後、エントリ更新部２０４の選択部２２０は、レングス判定部２０２から更新禁止を示すレングス判定テーブル更新許可信号を選択信号として入力すると、トラフィック判定部２０３から入力される信号に出力を切り替える。
【０１０７】
一方、カウンタ数情報と更新回数制限値とが一致しない場合（ステップＳ２０４のＮｏ）、更新カウンタ部２３０は、更新カウンタ値のインクリメントを行う（ステップＳ２０５）。このとき、比較部２３３は、更新許可を示すレングス判定テーブル更新許可信号を出力する。エントリ更新部２０４の選択部２２０は、更新許可を示すレングス判定テーブル更新許可信号を選択信号として入力している間、レングス判定部２０２から入力される信号を出力として選択する。
【０１０８】
すなわち、選択部２２０は、更新許可を示すレングス判定テーブル更新許可信号に基づいて、更新許可を示すテーブル更新許可信号をＤＭＡコントローラ２１３へ出力する。同時に、選択部２２０は、更新カウンタ部２３０から出力されるレングス判定ＤＭＡアドレスオフセット信号に基づくＤＭＡアドレスオフセット信号をＤＭＡコントローラ２１３へ出力する。
【０１０９】
ＤＭＡコントローラ２１３は、更新許可を示すテーブル更新許可信号とＤＭＡアドレスオフセット信号とに基づいて、エントリテーブル２０６の更新を行う（ステップＳ２０６）。この後、ステップＳ２００へ戻り、比較部２０７による比較処理が継続される。以上、本動作は終了となる。
【０１１０】
このように、レングス判定部２０２のレングス判定処理においてエントリテーブル２０６の更新禁止を判定されるまで、ＤＭＡコントローラ２１３はエントリテーブル２０６を更新し、そして、比較部２０７は比較処理を継続する。レングス判定処理において、レングス判定部２０２の比較部２３３は、更新カウンタ部２３０の出力するカウント数情報が更新回数テーブル２３２の出力する更新回数制限値に一致するまで、更新許可を示すレングス判定テーブル更新許可信号を出力する。すなわち、カウント数情報と更新回数制限値とが一致するまでエントリテーブル２０６は更新され、比較部２０７による比較処理は継続されることになる。
【０１１１】
更新回数制限値は、入力パケットのパケットレングス情報とパケット転送装置２００の通信速度情報とクロック速度情報とに基づいて決定される。通信速度情報とクロック速度情報とは、通常、入力パケットに対して可変ではない。そのため、レングス判定部２０２は、入力パケットのパケットレングス情報に応じて更新回数制限値を決定することになる。更新回数テーブル２３２では、パケットレングスが長い程、更新回数制限値が大きくなり、パケットレングスが小さい程、更新回数制限値が小さくなる。
【０１１２】
次に、図１５を参照して本実施形態におけるパケット転送装置２００のトラフィック判定処理の動作の説明を行う。図１５は、本実施形態におけるパケット転送装置２００のトラフィック判定処理の動作を示すフローチャートである。なお、本説明は、図１３に示したフローチャートにおけるステップＳ１０７を詳細に説明するものである。
【０１１３】
まず、ステップＳ３００〜ステップＳ３０３は、図１４を用いて説明を行ったステップＳ２００〜ステップＳ２０３と同様である。すなわち、まず、比較部２０７は、エントリテーブル２０６に記録されたルーティング情報と、比較要因抽出部２０５により抽出された比較要因情報とを比較する比較処理を行う（ステップＳ３００）。比較部２０７は、比較処理の結果、比較要因情報に一致するエントリテーブル２０６のルーティング情報が存在するか否かを判定する（ステップＳ３０１）。
【０１１４】
一致するルーティング情報が存在する場合（ステップＳ３０１のＹｅｓ）、変換データ生成部２０９は、一致したルーティング情報に基づいて、入力パケットを変換するための変換データを生成する（ステップＳ３０２）。そして、パケット生成部２０８は、変換データ生成部２０９により生成されたパケット変換データを用いて、入力パケットを変換して出力パケットを生成する（ステップＳ３０３）。これにより、本動作は終了となる。なお、この後、パケット送信部２１０は、出力パケットを送信する。
【０１１５】
一方、一致するルーティング情報が存在しない場合（ステップＳ３０１のＮｏ）、トラフィック判定部２０３の後続パケット検出判定部２４１は、後続パケットを検出したか判定する（ステップＳ３０４）。
【０１１６】
後続パケットが検出された場合（ステップＳ３０４のＹｅｓ）、当該入力パケットは、中央処理装置２１５によるパケット転送処理が行われ（ステップＳ３０５）、本動作は終了となる。このとき、後続パケット検出判定部２４１は、更新禁止を示すトラフィック判定テーブル更新許可信号を出力する。
【０１１７】
一方、後続パケットが検出されない場合（ステップＳ３０４のＮｏ）、更新カウンタ部２４２は、更新カウンタ値のインクリメントを行う（ステップＳ３０６）。このとき、後続パケット検出判定部２４１は、更新許可を示すトラフィック判定テーブル更新許可信号を出力する。
【０１１８】
エントリ更新部２０４の選択部２２０は、前述により、更新禁止を示すレングス判定テーブル更新許可信号を選択信号として入力している。そのため、選択部２２０は、トラフィック判定部から入力する信号を出力として選択する。
【０１１９】
すなわち、選択部２２０は、更新許可を示すトラフィック判定テーブル更新許可信号に基づいて、更新許可を示すテーブル更新許可信号をＤＭＡコントローラ２１３へ出力する。同時に、選択部２２０は、更新カウンタ部２４２から出力されるトラフィック判定ＤＭＡアドレスオフセット信号に基づく、ＤＭＡアドレスオフセット信号をＤＭＡコントローラへ出力する。
【０１２０】
ＤＭＡコントローラ２１３は、更新許可を示すテーブル更新許可信号とＤＭＡアドレスオフセット信号とに基づいて、エントリテーブル２０６の更新を行う（ステップＳ３０７）。この後、ステップＳ３００へ戻り、比較部２０７による比較処理が継続される。以上、本動作は終了となる。
【０１２１】
このように、トラフィック判定部２０３のトラフィック判定処理においてエントリテーブル２０６の更新禁止を判定されるまで、ＤＭＡコントローラ２１３はエントリテーブル２０６を更新し、そして、比較部２０７は比較処理を継続する。トラフィック判定処理において、トラフィック判定部２０３の後続パケット検出判定部２４１は、入力パケット検出部２４０により後続パケットが検出されるまで、更新許可を示すレングス判定テーブル更新許可信号を出力する。すなわち、後続パケットが検出されるまでエントリテーブル２０６は更新され、比較部２０７による比較処理は継続されることになる。
【０１２２】
次に、図１６を参照して本実施形態におけるパケット転送装置２００のエントリテーブル更新処理の動作の説明を行う。図１６は、本実施形態におけるパケット転送装置２００のエントリテーブル更新動作を示すフローチャートである。
【０１２３】
まず、ＤＭＡコントローラ２１３は、エントリ更新部２０４から出力されるテーブル更新許可信号がエントリテーブル２０６の更新許可を示しているか更新禁止を示しているかを判定する（ステップＳ４００）。テーブル更新許可信号が更新禁止を示す場合（ステップＳ４００のＮｏ）、更新許可となるまで本ステップを繰り返す。
【０１２４】
テーブル更新許可信号が更新許可を示す場合（ステップＳ４００のＹｅｓ）、ＤＭＡコントローラ２１３は、転送元アドレスを設定する（ステップＳ４０１）。ＤＭＡコントローラ２１３は、転送元アドレスとして、カウンタ値にエントリテーブル２０６のテーブルサイズを乗じた値をルーティングテーブル２１２の先頭アドレスに加算して算出されたアドレス値を設定する。なお、ＤＭＡコントローラ２１３は、カウンタ値を、ＤＭＡアドレスオフセット信号から取得する。
【０１２５】
図６で説明を行った物理アドレス空間を例とすると、ルーティングテーブル２１２は、アドレス「０ｘ２０００００００」番地にアドレッシングされている。エントリテーブル２０６が２５６バイトで構成されている場合、ＤＭＡコントローラ２１３は、送信元アドレスとして、レングス判定部２０２の更新カウンタ２３０のカウンタ値が更新される毎に、更新カウンタ２３０のカウンタ値と２５６バイトとを乗じた値を「０ｘ２０００００００」番地に加算して算出されたアドレス値を設定する。
【０１２６】
次に、図１６のエントリテーブル更新動作の説明に戻り、ＤＭＡコントローラ２１３は、転送先アドレスを設定する（ステップＳ４０２）。ＤＭＡコントローラ２１３は、転送先アドレスとして、エントリテーブル２０６のアドレスを指定する。再び、図６を例として説明すると、ＤＭＡコントローラ２１３は、エントリテーブル２０６のアドレッシングされている「０ｘ５０００００００」番地を指定する。
【０１２７】
次に、図１６のエントリテーブル更新動作の説明に戻り、ＤＭＡコントローラ２１３は、転送サイズを設定する（ステップＳ４０３）。ＤＭＡコントローラ２１３は、転送サイズとして、エントリテーブル２０６のサイズを指定する。例えば、エントリテーブル２０６のサイズが２５６バイトである場合、ＤＭＡコントローラ２１３は、２５６バイトを転送サイズとして指定する。
【０１２８】
そして、ＤＭＡコントローラ２１３は、ＤＭＡ転送処理を行う（ステップＳ４０４）。その後、ＤＭＡコントローラ２１３は、ＤＭＡ転送処理が完了したかを判定する（ステップＳ４０５）。ＤＭＡ転送処理の終了を検出できない場合（ステップＳ４０５のＮｏ）、終了を検出するまで本ステップを繰り返す。一方、ＤＭＡ転送処理の終了を検出した場合（ステップＳ４０５のＹｅｓ）、エントリテーブル２０６のルーティング情報が更新されたことになり、本動作は終了となる。
【０１２９】
以上が、本実施形態におけるパケット転送装置２００の動作の説明である。なお、本実施形態におけるパケット転送装置２００では、レングス判定部２０２によるレングス判定処理の後に、トラフィック判定部２０３によるトラフィック判定処理を行う動作となっている。しかし、パケット転送装置２００は、レングス判定部２０２のみ、あるいはトラフィック判定部２０３のみを備える構成であっても良い。パケット転送装置２００がトラフィック判定部２０２のみを備える場合でも、図１２（ｂ）に示したように、パケット受信間隔があいている状態において、エントリテーブル２０６を更新しながら比較部２０７による更新処理を実行可能である。また、パケット転送装置２００がレングス判定部２０２のみを備える場合でも、図１２（ｃ）に示したように、長いパケットレングスのパケットを受信している状態において、エントリテーブル２０６を更新しながら比較部２０７による更新処理を実行可能である。
【０１３０】
図１７は、本実施形態におけるパケット転送装置２００のルーティングテーブル２１２とエントリテーブル２０６の一例を示す図である。図１７（ａ）は、ルーティングテーブル２１２を示している。図１７（ｂ）は、レングス判定部２０２の更新カウンタ部２３０あるいはトラフィック判定部２０３の更新カウンタ部２４２のカウンタ値が「０」の場合のエントリテーブル２０６を示している。図１７（ｃ）は、レングス判定部２０２の更新カウンタ部２３０あるいはトラフィック判定部２０３の更新カウンタ部２４２のカウンタ値が「１」の場合のエントリテーブル２０６を示している。図１７（ｄ）は、レングス判定部２０２の更新カウンタ部２３０あるいはトラフィック判定部２０３の更新カウンタ部２４２のカウンタ値が「Ｍ」の場合のエントリテーブル２０６を示している。
【０１３１】
図１７（ａ）のルーティングテーブル２１２は、要因Ａ〜Ｚまでの合計Ｎ個のルーティング情報が格納されている。図１７（ｂ）のエントリテーブル２０６は、カウンタ値が「０」の場合を示しており、ルーティングテーブル２１２に記録されたルーティング情報のうち、要因Ａ〜Ｄが分割されて記録されている。図１７（ｃ）のエントリテーブル２０６は、カウンタ値が「１」の場合を示しており、ルーティングテーブル２１２に記録されたルーティング情報のうち、要因Ｅ〜Ｈが分割されて記録されている。また、図１７（ｄ）のエントリテーブル２０６は、カウンタ値が「Ｍ」の場合を示しており、ルーティングテーブル２１２に記録されたルーティング情報のうち、要因Ｗ〜Ｚが分割されて記録されている。
【０１３２】
このように、本実施形態のエントリテーブル２０６は、カウンタ値の値に応じて格納されるルーティング情報が異なる。例えば、前述の図１２（ｂ）のように、短いパケットレングスのパケットが間隔を空けて受信されている状況下では、トラフィック判定処理によりエントリテーブル２０６の更新が禁止となるまで、エントリテーブル２０６の更新を行い、また、比較部２０７による比較処理を繰り返し継続することが可能となる。
【０１３３】
そして、図１２（ｃ）のように、長いパケットレングスのパケットが連続的に受信されている状況下では、レングス判定処理によりエントリテーブル２０６の更新が禁止となるまで、エントリテーブル２０６の更新を行い、また、比較部２０７による比較処理を繰り返し継続することが可能となる。そのため、エントリテーブルの物理的な容量を増やすことなく多くのルーティング情報を格納することができる。すなわち、ネットワークプロセッサ２１４のチップ面積を増大させることが無い。
【０１３４】
比較部２０７によるエントリテーブル２０６を用いた比較処理は、中央処理装置２１５によるルーティングテーブル２１２を用いた比較処理に比べて高速に実行することができる。そのため、本実施形態のパケット転送装置２００は、エントリテーブル２０６の容量を増やすことなく、すなわち、ネットワークプロセッサのチップ面積を増大させること無く、高速なパケット転送処理を実現できる。以上が、本実施形態におけるパケット転送装置２００の説明である。
【０１３５】
（第２実施形態）
次に、本発明の第２実施形態におけるパケット転送装置の説明を行う。
【０１３６】
［概要］
本実施形態のパケット転送装置３００は、入力パケットや入力パケットに続いて受信される後続パケットを記憶するパケットメモリ３２０をさらに備える。本実施形態のエントリ更新部３３１は、パケットメモリ３２０に記憶されたデータ量が一定量を超えるまで比較部２０７による比較処理を継続可能と判定する。エントリ更新部３３１は、データ量判定処理を行う受信データ量判定部３３１を備える。受信データ量判定部３３１は、パケットメモリ３２０に記憶されたデータ量（未処理データ量）とテーブル更新可否を判定するために予め定められた閾値情報であるテーブル更新許可閾値情報とを比較するデータ量判定処理を行う。受信データ量判定部３３１は、データ量判定処理において、未処理データ量がテーブル更新許可閾値情報より小さい場合、エントリテーブル２０６の更新を許可する。一方、受信データ量判定部３３１は、データ量判定処理において、未処理データ量がテーブル更新許可閾値情報より大きい場合、エントリテーブル２０６の更新を禁止する。
【０１３７】
未処理データ量は、処理を行うべき入力パケットに続く後続パケットの受信状況を示している。このように、未処理データ量が一定の値を超えるまで、ＤＭＡコントローラによるエントリテーブル２０６の更新を許可し、また、比較部２０７による比較処理を継続することで、エントリテーブル２０６のサイズを大きくすること無く、高速なパケット転送処理を実現することができる。以下、本実施形態のパケット転送装置３００の構成と動作を詳細に説明する。
【０１３８】
［構成の説明］
はじめに、本実施形態におけるパケット転送装置３００の構成の説明を行う。図１８は、本実施形態におけるパケット転送装置３００の構成を示す図である。本実施形態のパケット転送装置３００は、第１実施形態のパケット転送装置２００と同様の構成を多く備える。そのため、以下の説明では、第１実施形態と同様の部分については重ねての説明を省略して、第１実施形態との違いを中心に説明を行う。また、第１実施形態と同様の構成については、同様の符号を付して説明を行う。
【０１３９】
本実施形態のパケット転送装置３００は、ネットワークプロセッサ３０１と、中央処理装置２１５と、大容量メモリ３１０とを備える。ネットワークプロセッサ３０１と、中央処理装置２１５と、大容量メモリ３１０とは、それぞれシステムデータバス２１６と接続されており、システムデータバス２１６を介してデータ送受信を行うことが可能である。なお、中央処理装置２１５は、第１実施形態と同様であるので説明を省略する。
【０１４０】
まず、大容量メモリの説明を行う。大容量メモリ３１０は、ルーティングテーブルＡ３１１と、ルーティングテーブルＢ３１２とを備える。ルーティングテーブルＡ３１１とルーティングテーブルＢ３１２は、前述の図７に示した構成と同様である。大容量メモリ３１０のこの他の点は、第１実施形態と同様である。
【０１４１】
次に、ネットワークプロセッサ３０１の説明を行う。ネットワークプロセッサ３０１は、第１実施形態と同様にパケットの転送処理を行う。ネットワークプロセッサ３０１は、パケット受信部２０１と、エントリ更新部３３０と、比較要因抽出部２０５と、エントリテーブル２０６と、比較部２０７と、パケット生成部２０８と、変換データ生成部２０９と、パケット送信部２１０と、ＤＭＡコントローラ２１３と、パケットメモリ３２０とを備える。パケット受信部２０１と、比較要因抽出部２０５と、エントリテーブル２０６と、比較部２０７と、パケット生成部２０８と、変換データ生成部２０９と、パケット送信部２１０とは、第１実施形態と同様であるので説明を省略する。なお、本実施形態において、比較要因抽出部２０５と、パケット生成部２０８とは、パケットメモリ３２０から入力パケットを入力する。
【０１４２】
まず、パケットメモリ３２０は、入力パケットを一時的に格納する。パケットメモリ２５０は、バッファ３２１と、ライトポインタ３２２と、リードポインタ３２３とを備える。
【０１４３】
ライトポインタ３２２は、バッファ３２１へ入力パケットを書き込むための書き込みアドレスを管理する。ライトポインタ３２２は、パケット受信部２０１からの入力パケットを検出すると、バッファ３２１の書き込みアドレスを生成する。
【０１４４】
リードポインタ３２３は、バッファ３２１から入力パケットを読み出すための読み出しアドレスを管理する。リードポインタ３２３は、比較要因抽出部２０５とパケット生成部２０８へ入力パケットを出力するために、読み出しアドレスを生成する。
【０１４５】
バッファ３２１は、入力パケットを記憶する。バッファ３２１は、ライトポインタ３２２により生成された書き込みアドレスにパケット受信部２０１から入力される入力パケットを一時的に記憶する。また、バッファ３２１は、リードポインタで生成された読み出しアドレスで指定された入力パケットを、比較要因抽出部２０５とパケット生成部２０８とへ出力する。なお、本実施形態において、バッファ３２１は、３つ以上の入力パケットを記憶できる記憶容量を備えることが望ましい。
【０１４６】
次に、エントリ更新部３３０は、中央処理装置２１５からテーブル更新許可閾値情報と、比較部２０７からテーブル更新パルスと、ライトポインタ３２２から書き込みアドレスと、リードポインタ３２３から読み出しアドレスとを入力とする。また、エントリ更新部３３０は、エントリテーブル更新許可信号とＤＭＡアドレスオフセット信号とをＤＭＡコントローラ２１３へ出力する。エントリテーブル更新許可信号は、エントリテーブル２０６のエントリの更新許可及び更新禁止を示す。ＤＭＡアドレスオフセット信号は、ＤＭＡコントローラ２１３によるルーティングテーブルＡ３１１あるいはルーティングテーブルＢ３１２からエントリテーブル２０６へのルーティング情報転送におけるアドレス指定に用いられる。
【０１４７】
エントリ更新部３３０は、受信データ量判定部３３１を備える。受信データ量判定部３３１は、ライトポインタ３２２から入力する書き込みアドレスから、リードポインタ３２３から入力する読み出しアドレスを減算して未処理データ量を算出する。未処理データ量は、パケットメモリ３２０のバッファ３２１に記憶された入力パケットのデータ量を示す。さらに、受信データ量判定部３３１は、テーブル更新許可閾値情報と未処理データ量とに基づいて、エントリテーブル２０６の更新可否を判定して、更新許可あるいは更新禁止を示すエントリテーブル更新許可信号をＤＭＡコントローラ２１３へ出力する。また、受信データ量判定部３３１は、エントリテーブル２０６の更新回数をカウントして、カウント値を含めたＤＭＡアドレスオフセット信号をＤＭＡコントローラ２１３へ出力する。
【０１４８】
次に、ＤＭＡコントローラ２１３は、エントリ更新部２０４から出力されるエントリテーブル更新許可信号及びＤＭＡアドレスオフセット信号を入力する。ＤＭＡコントローラ２１３は、エントリテーブル更新許可信号及びＤＭＡアドレスオフセット信号に基づいて、ルーティングテーブルＡ３１１あるいはルーティングテーブル３１２からエントリテーブル２０６へデータ転送を行う。エントリテーブル２０６へ転送するルーティング情報を、ルーティングテーブルＡ３３１内から選択するか、あるいはルーティングテーブル３１２内から選択するかは、中央処理装置２１５により判断される。
【０１４９】
以上が、ネットワークプロセッサ３０１の説明であり、上記以外は、第１実施形態と同様である。
【０１５０】
次に、図１９を参照して、本実施形態におけるパケット転送装置３００の受信データ量判定部３３１の構成を説明する。図１９は、本実施形態におけるパケット転送装置３００の受信データ量判定部３３１の構成を示す図である。差分演算器３３１は、ライトポインタ保持部３４０と、リードポインタ保持部３４１と、減算部３４２と、比較部３４３と、更新カウンタ部３４４と、テーブル更新許可閾値設定値記憶部（以下、許可閾値記憶部）３４５とを備える。
【０１５１】
まず、更新カウンタ部３４４は、エントリテーブル２０６の更新回数をカウントする。更新カウンタ部３４４は、比較部２０７から出力されるテーブル更新パルスを検出するとカウントアップを行う。また、更新カウンタ部３４４は、更新禁止を示すテーブル更新許可信号を比較部３４３から入力すると初期化する。更新カウンタ３４４は、ＤＭＡコントローラ２１３へＤＭＡアドレスオフセット信号を出力する。ＤＭＡアドレスオフセット信号は、ＤＭＡコントローラ２１３が転送元アドレスを算出するために用いられ、エントリテーブル２０６の更新回数であるカウント数を含む。
【０１５２】
次に、ライトポインタ保持部３４０は、パケットメモリ３２３のバッファ３２１に対する書き込みアドレスを保持する。ライトポインタ保持部３４０は、パケットメモリ３２３のライトポインタ３２２から書き込みアドレスを入力する。ライトポインタ保持部３４０は、書き込みアドレスを減算部３４２へ出力する。
【０１５３】
次に、リードポインタ保持部３４１は、パケットメモリ３２３のバッファ３２１に対する読み出しアドレスを保持する。リードポインタ保持部３４１は、パケットメモリ３２３のリードポインタ３２３から読み出しアドレスを入力する。リードポインタ保持部３４１は、読み出しアドレスを減算部３４２へ出力する。
【０１５４】
次に、減算部３４２は、書き込みアドレスから読み出しアドレスを減算してパケットメモリ３２０内の未処理データ量を算出する。未処理データ量は、パケットメモリ３２０のバッファ３２１に記憶された入力パケットのデータ量を示す。減算部３４２は、未処理データ量を比較部３４３へ出力する。
【０１５５】
次に、許可閾値記憶部３４５は、テーブル更新許可閾値情報を記憶する。テーブル更新許可閾値情報は、システムバス２１６を介して、中央処理装置２１５により設定される。許可閾値記憶部３４５は、テーブル更新許可閾値情報を比較部３４３へ出力する。
【０１５６】
次に、比較部３４３は、未処理データ量とテーブル更新許可閾値情報とを比較して、テーブル更新許可信号をＤＭＡコントローラ２１３へ出力する。比較部３４３は、減算部３４２から入力される未処理データ量がテーブル更新許可閾値情報の示す値より小さい場合、更新許可を示すテーブル更新許可信号をＤＭＡコントローラ２１３へ出力する。一方、比較部３４３は、減算部３４２から入力される未処理データ量がテーブル更新許可閾値情報の示す値以上である場合、更新禁止を示すテーブル更新許可信号をＤＭＡコントローラ２１３へ出力する。
【０１５７】
以上が、本実施形態におけるパケット転送装置３００の受信データ量判定部３３１の構成の説明である。
【０１５８】
［動作の説明］
次に、本実施形態おけるパケット転送装置２００の動作の説明を行う。図２０Ａ及び図２０Ｂは、本実施形態におけるパケット転送装置２００の動作を示すフローチャートである。なお、以下の説明において、第１実施形態と同様の部分については、説明を省略する。
【０１５９】
はじめに、ステップＳ５０１〜ステップＳ５０５は、第１実施形態において図１３を用いて説明を行ったステップＳ１００〜ステップＳ１０５と同様である。すなわち、まず、パケット受信部２０１は、入力パケットの有無を判定する（ステップＳ５００）。パケット受信部２０１は、入力パケットのフォーマットチェックを行う（ステップＳ５０１）。パケット受信部２０１は、フォーマットチェックの結果により入力パケットのエラーの有無を判定する（ステップＳ５０２）。
【０１６０】
入力パケットにエラーが検出された場合（ステップＳ５０２のＹｅｓ）、当該入力パケットは、中央処理装置２１５によるパケット転送処理が行われ（ステップＳ５０３）、本動作は終了となる。一方、入力パケットにエラーが検出されない場合（ステップＳ５０２のＮｏ）、比較要因抽出部２０５は、入力パケットから比較要因情報を抽出する（ステップＳ５０４）。比較要因情報が抽出されると、受信データ量判定部３３１の更新カウンタ２３０が初期化される（ステップＳ５０５）。
【０１６１】
続いて、ステップＳ５０６〜ステップＳ５０９は、第１実施形態において図１４を用いて説明を行ったステップＳ２００〜ステップＳ２０３と同様である。すなわち、比較部２０７は、エントリテーブル２０６に記録されたルーティング情報と、比較要因抽出部２０５により抽出された比較要因情報とを比較する比較処理を行う（ステップＳ５０６）。比較部２０７は、比較処理の結果、比較要因情報に一致するエントリテーブル２０６のルーティング情報が存在するか否かを判定する（ステップＳ５０７）。
【０１６２】
一致するルーティング情報が存在する場合（ステップＳ５０７のＹｅｓ）、変換データ生成部２０９は、一致したルーティング情報に基づいて、入力パケットを変換するための変換データを生成する（ステップＳ５０８）。そして、パケット生成部２０８は、変換データ生成部２０９により生成された変換データを用いて、入力パケットを変換して出力パケットを生成する（ステップＳ５０９）。これにより、本動作は終了となる。なお、この後、パケット送信部２１０は、出力パケットを送信する。
【０１６３】
ここで、入力パケットが受信されて比較部２０７による比較処理が行われている間にも、後続パケットが受信されている場合がある。受信された後続パケットは、パケットメモリ３２０のバッファ３２１においてライトポインタ３２２の指定したアドレスへ格納される。
【０１６４】
さて、比較処理において一致するルーティング情報が存在しない場合（ステップＳ５０７のＮｏ）、エントリ更新部３３０は、データ量判定処理を行う（ステップＳ５１０）。受信データ量判定部３３１のライトポインタ保持部３４０は、ライトポインタ３２２により生成された書き込みアドレスを記憶している。また、受信データ量判定部３３１のリードポインタ保持部３４１は、リードポインタ３２３により生成された読み出しアドレスを記憶している。減算部３４２は、書き込みアドレスから読み出しアドレスを減算して未処理データ量を算出する。比較部３４３は、未処理データ量がテーブル更新許可閾値より小さいかを判定する。
【０１６５】
データ量判定処理において、未処理データ量がテーブル更新許可閾値以上である場合（ステップＳ５１０のＮｏ）、当該入力パケットは、中央処理装置２１５によるパケット転送処理が行われ（ステップＳ５０３）、本動作は終了となる。
【０１６６】
一方、データ量判定処理において、未処理データ量がテーブル更新許可閾値より小さい場合（ステップＳ５１０のＹｅｓ）、更新カウンタ部３４４は、更新カウンタ値のインクリメントを行う（ステップＳ５１１）。このとき、比較部３４３は、更新許可を示すテーブル更新許可信号をＤＭＡコントローラ２１３へ出力する。同時に、更新カウンタ部３４４は、ＤＭＡアドレスオフセット信号をＤＭＡコントローラ２１３へ出力する。
【０１６７】
ＤＭＡコントローラ２１３は、更新許可を示すテーブル更新許可信号とＤＭＡアドレスオフセット信号とに基づいて、エントリテーブル２０６の更新を行う（ステップＳ５１２）。この後、ステップＳ５０６へ戻り、比較部２０７による比較処理が継続される。以上が、本実施形態おけるパケット転送装置２００の動作の説明である。
【０１６８】
このように、受信データ量判定部３３１のデータ量判定処理においてエントリテーブル２０６の更新禁止を判定されるまで、ＤＭＡコントローラ２１３は、エントリテーブル２０６を更新し、そして、比較部２０７は、比較処理を継続する。データ量判定処理において、受信データ量判定部３３１の比較部３４３は、未処理データ量がテーブル更新許可閾値以上になるまで、更新許可を示すテーブル更新許可信号を出力する。そのため、未処理データ量がテーブル更新許可閾値以上となるまでエントリテーブル２０６は更新され、比較部２０７による比較処理は継続されることになる。
【０１６９】
未処理データ量は、パケットメモリ３２０のバッファ３２１に記憶された後続パケットのデータ量を示している。つまり、エントリ更新部３３１は、後続パケットの受信状態に基づいて、未処理で蓄積された後続パケットのデータ量が一定の値となるまでエントリテーブル２０６の更新を許可する。
【０１７０】
以上が、本実施形態におけるパケット転送装置３００の動作の説明である。本実施形態のパケット転送装置３００によれば、パケットメモリ３２０を備えることで、入力トラフィックを平均化することができる。そのため、バースト的に入力された入力パケットに対しても比較部２０７による比較処理のための時間を延長することが可能となる。このような構成は、短いレングスの入力パケットや後続パケットがバースト的に入力された後、さらに、後続の後続パケットがパケット受信間隔を空けて入力されるような場合に効果的である。
【０１７１】
このような構成により延長された時間を用いて、ＤＭＡコントローラ２１３は、エントリテーブル２０６を更新して、比較部２０７は、比較処理を繰り返し継続することが可能となる。そのため、エントリテーブルの容量を拡大すること無く、高速なパケット転送処理を実現することが可能である。以上が、本実施形態におけるパケット転送装置２００の説明である。
【０１７２】
以上、本発明のパケット転送装置によれば、ネットワークプロセッサ内部に搭載されるメモリ容量の増大化を防ぐことが可能となる。それは、大容量メモリ内のルーティングテーブルのルーティング情報を用いてネットワークプロセッサ内に設けられたエントリテーブルのルーティング情報を更新するからである。また、エントリ更新部が、入力パケットのパケットレングスや、後続パケットの受信状況や、未処理パケットのデータ量等に応じて、更新許可及び更新禁止の判定を行うためである。
【０１７３】
また、本発明のパケット転送装置によれば、パケットフィルタリング機能や、ＱｏＳ機能といったパケット転送処理以外の機能の処理を高速化することが可能となる。それは、ネットワークプロセッサにおいて効率的にパケット転送処理を実行することで、中央処理装置におけるパケット転送処理の負荷を軽減できるため、中央処理装置に上述のような機能の処理をより多く実行させることができるからである。
【０１７４】
さらに、本発明のパケット転送装置によれば、消費電力化を測ることが可能となる。それは、より多くのパケット転送処理をネットワークプロセッサで行うことで、中央処理装置によるパケット変換処理の負荷を低減することができるためである。そのため、中央処理装置の動作クロック周波数を低下させたり、あるいは動作クロックを一時的に停止することが可能となり、ダイナミックに電力削減を行うことが可能である。
【０１７５】
以上、実施形態を参照して本願発明を説明したが、本願発明は、上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更することができる。
【符号の説明】
【０１７６】
１０  パーソナルコンピュータ
１１  サーバ
１３  インタネット
１４  イントラネット
２０  パケット
２１  ＭＡＣアドレスフィールド
２２  ＩＰヘッダフィールド
２３  ＴＣＰ／ＵＤＰヘッダフィールド
２４  宛先ＭＡＣアドレスフィールド
２５  送信元ＭＡＣアドレスフィールド
２６  ＩＰ情報フィールド
２７  送信元ＩＰアドレスフィールド
２８  宛先ＩＰアドレスフィールド
２９  送信元ポート番号フィールド
３０  宛先ポート番号フィールド
３１  トータルレングスフィールド
４０  アドレス空間
４１  エントリテーブル空間
４２  ルーティングテーブル空間
４３  大容量メモリ空間
５０  変換前フィールド
５１  変換後フィールド
５２  エントリテーブル（ルーティングテーブル）
６０  パケットレングスフィールド
６１  システムクロック周波数フィールド
６２  データ転送レートフィールド
６３  更新回数制限値フィールド
７０〜７２  比較可能時間
８０  第１のルーティングテーブルメモリ（ルーティングテーブル２１２）
８１〜８３  第２のルーティングテーブルメモリ（エントリテーブル２０６）
２００  パケット転送装置
２０１  パケット受信部
２０２  レングス判定部
２０３  トラフィック判定部
２０４  エントリ更新部
２０５  比較要因抽出部
２０６  エントリテーブル
２０７  比較部
２０８  パケット生成部
２０９  変換データ生成部
２１０  パケット送信部
２１１  大容量メモリ
２１２  ルーティングテーブル
２１３  ＤＭＡコントローラ
２１４  ネットワークプロセッサ
２１５  中央処理装置
２１６  システムデータバス
２２０  選択部
２２１  物理層通信速度情報記憶部
２２２  システムクロック速度情報記憶部
２３０  更新カウンタ部
２３１  ＩＰヘッダフィールドレングス抽出部
２３２  更新回数テーブル
２３３  比較部
２４０  入力パケット検出部
２４１  後続パケット検出判定部
２４２  更新カウンタ部
３００  パケット転送装置
３０１  ネットワークプロセッサ
３１０  大容量メモリ
３１１  ルーティングテーブルＡ
３１２  ルーティングテーブルＢ
３２０  パケットメモリ
３２１  バッファ
３２２  ライトポインタ
３２３  リードポインタ
３３０  エントリ更新部
３３１  差分演算部
３４０  ライトポインタ保持部
３４１  リードポインタ保持部
３４２  減算部
３４３  比較部
３４４  更新カウンタ部
３４５  テーブル更新許可閾値設定値記憶部
【図１】
2011239299.tif 000003
【図２】
2011239299.tif 000004
【図３】
2011239299.tif 000005
【図４】
2011239299.tif 000006
【図５】
2011239299.tif 000007
【図６】
2011239299.tif 000008
【図７】
2011239299.tif 000009
【図８】
2011239299.tif 000010
【図９】
2011239299.tif 000011
【図１０】
2011239299.tif 000012
【図１１】
2011239299.tif 000013
【図１２】
2011239299.tif 000014
【図１３】
2011239299.tif 000015
【図１４】
2011239299.tif 000016
【図１５】
2011239299.tif 000017
【図１６】
2011239299.tif 000018
【図１７】
2011239299.tif 000019
【図１８】
2011239299.tif 000020
【図１９】
2011239299.tif 000021
【図２０Ａ】
2011239299.tif 000022
【図２０Ｂ】
2011239299.tif 000023