(57)【要約】【課題】パケット処理を分散して行うための複数のコア（パケット転送処理手段）が有効に使用されるパケット処理装置を提供する。【解決手段】パケット処理手段（たとえば、コア２３1 ，２３2 ，…，２３n ）により、後に到着したパケットの処理が、先に到着したパケットの処理よりも早く終了した場合、後に到着したパケットの処理が終了した後に、記憶手段（たとえば、共有テーブル３０）に記憶されている処理番号、処理フラグ及びハッシュ値に基づいて、同一のハッシュ値を有するパケットの処理を行っているコアが存在するか否かが確認され、存在しない場合は、処理済みのパケットが出力側（たとえば、出力処理部２４）に転送される一方、存在する場合は、処理が終了するまで処理済みのパケットの転送を待ち合わせる。【選択図】図１
2010199643.tif 000002
【特許請求の範囲】
【請求項１】
与えられたパケットを送信先へ転送するパケット処理を分散して行うための複数のパケット転送処理手段を有するパケット処理装置であって、
前記各パケット転送処理手段は、
当該パケット転送処理手段を表す処理番号、パケット処理の実行中か否かを表す処理フラグ、及び、処理中のパケットに含まれるデータに基づくハッシュ値を生成する構成とされ、
前記各パケット転送処理手段で生成された前記処理番号、処理フラグ及びハッシュ値を記憶する記憶手段と、
該記憶手段に記憶されている前記処理番号及び処理フラグに基づいて、前記各パケット転送処理手段のうちのパケット処理を実行していないパケット転送処理手段を判定し、該判定されたパケット転送処理手段に、与えられたパケットを振り分けて転送する振り分け処理手段とが設けられていることを特徴とするパケット処理装置。
【請求項２】
前記記憶手段は、
前記各パケット転送処理手段で生成された前記処理番号、処理フラグ及びハッシュ値を、生成順に記憶する構成とされ、
前記各パケット転送処理手段は、
後に到着したパケットの処理が、先に到着したパケットの処理よりも早く終了した場合、後に到着したパケットの処理が終了した後に、前記記憶手段に記憶されている前記処理番号、処理フラグ及びハッシュ値に基づいて、同一のハッシュ値を有するパケットの処理を行っているパケット転送処理手段が存在するか否かを確認し、存在しない場合は処理済みのパケットを出力側に転送する一方、存在する場合は処理が終了するまで処理済みのパケットの転送を待ち合わせる構成とされていることを特徴とする請求項１記載のパケット処理装置。
【請求項３】
前記記憶手段は、
前記各パケット転送処理手段に共有され、前記処理番号、処理フラグ及びハッシュ値を、先頭から生成順に記憶すると共に、処理済みのパケットに対応する前記処理番号、処理フラグ及びハッシュ値を消去する共有テーブルで構成されていることを特徴とする請求項１又は２記載のパケット処理装置。
【請求項４】
前記各パケット転送処理手段は、
同一のハッシュ値を有するパケットの処理を行っているパケット転送処理手段が存在する場合、前記記憶手段に記憶されている前記処理番号、処理フラグ及びハッシュ値が消去されるまで、処理済みのパケットの転送を待ち合わせる構成とされていることを特徴とする請求項３記載のパケット処理装置。
【請求項５】
前記各パケット転送処理手段は、
前記ハッシュ値を、当該パケットに含まれるへッダ情報に基づいて生成する構成とされていることを特徴とする請求項１、２、３又は４記載のパケット処理装置。
【請求項６】
与えられたパケットを送信先へ転送するパケット処理を分散して行うための複数のパケット転送処理手段を有するパケット処理装置に用いられるパケット処理順序制御方法であって、
前記各パケット転送処理手段が、当該パケット転送処理手段を表す処理番号、パケット処理の実行中か否かを表す処理フラグ、及び、処理中のパケットに含まれるデータに基づくハッシュ値を生成し、
記憶手段が、前記各パケット転送処理手段で生成された前記処理番号、処理フラグ及びハッシュ値を記憶する記憶処理と、
振り分け処理手段が、前記記憶手段に記憶されている前記処理番号及び処理フラグに基づいて、前記各パケット転送処理手段のうちのパケット処理を実行していないパケット転送処理手段を判定し、該判定されたパケット転送処理手段に、与えられたパケットを振り分けて転送する振り分け処理とを行うことを特徴とするパケット処理順序制御方法。
【請求項７】
前記記憶処理では、
前記記憶手段が、前記各パケット転送処理手段で生成された前記処理番号、処理フラグ及びハッシュ値を生成順に記憶し、
前記各パケット転送処理手段が、後に到着したパケットの処理が、先に到着したパケットの処理よりも早く終了した場合、後に到着したパケットの処理が終了した後に、前記記憶手段に記憶されている前記処理番号、処理フラグ及びハッシュ値に基づいて、同一のハッシュ値を有するパケットの処理を行っているパケット転送処理手段が存在するか否かを確認し、存在しない場合は処理済みのパケットを出力側に転送する一方、存在する場合は処理が終了するまで処理済みのパケットの転送を待ち合わせることを特徴とする請求項６記載のパケット処理順序制御方法。
【請求項８】
前記記憶処理では、
前記記憶手段が、前記各パケット転送処理手段に共有され、前記処理番号、処理フラグ及びハッシュ値を、先頭から生成順に記憶すると共に、処理済みのパケットに対応する前記処理番号、処理フラグ及びハッシュ値を消去することを特徴とする請求項６又は７記載のパケット処理順序制御方法。
【請求項９】
前記各パケット転送処理手段が、同一のハッシュ値を有するパケットの処理を行っているパケット転送処理手段が存在する場合、前記記憶手段に記憶されている前記処理番号、処理フラグ及びハッシュ値が消去されるまで、処理済みのパケットの転送を待ち合わせることを特徴とする請求項８記載のパケット処理順序制御方法。
【請求項１０】
前記各パケット転送処理手段が、前記ハッシュ値を、当該パケットに含まれるへッダ情報に基づいて生成することを特徴とする請求項６、７、８又は９記載のパケット処理順序制御方法。
【請求項１１】
コンピュータを請求項１乃至５のいずれか一に記載のパケット処理装置として機能させるためのコンピュータ読み取り可能なパケット処理順序制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パケット処理装置、該処理装置に用いられるパケット処理順序制御方法及びパケット処理順序制御プログラムに係り、特に、ネットワークの領域でパケットを送信先へ転送する処理を分散して行う場合に用いて好適なパケット処理装置、該処理装置に用いられるパケット処理順序制御方法及びパケット処理順序制御プログラムに関する。
【背景技術】
【０００２】
インターネットプロトコル（ＩＰ）で規定されるＩＰパケットを転送する装置として、ルータやスイッチ、ネットワーク・ゲートウェイなどのネットワーク装置がある。これらのネットワーク装置では、ソフトウェアに基づいて動作するハードウェアによりパケットの転送処理が行われる。この転送処理の性能を向上させるために、ＬＳＩ（Large Scale Integrated Circuit）などのハードウェアをネットワーク装置に分散して配置したり、ＣＰＵ（Central Processing Unit 、中央処理装置）に複数のプロセッサのコアを埋め込むことにより、転送処理を並列に行うか、あるいは分散して行う方法がある。
【０００３】
このような分散処理を行うことにより、転送処理の性能を向上させることが可能であるが、ネットワーク装置では、転送処理を分散することによって、到着したパケットを到着順序と同じ順序で転送できないことがあり、転送順序が逆転することがある。パケットの転送順序が逆転した場合、アプリケーションによる再送処理として複雑な処理が必要となり、また、リアルタイム性のあるデータについては、再送処理を行うと、リアルタイム性が失われるため、パケット廃棄が行われる可能性がある。特に、複数のプロセッサコアが埋め込まれたＣＰＵでは、ソフトウェアに基づいて順序制御を行う必要があり、ソフトウェアに負荷がかかるという問題点がある。
【０００４】
分散処理を行う装置では、上記の問題点を改善するために、同一のフローのＩＰパケットの転送順序の逆転が防止されているものがある。この場合、ＩＰパケットのフローに着目して、ＩＰパケットのヘッダの一部あるいは全てをキーにしてハッシュ計算を行い、この計算結果に基づいてＩＰパケットの処理を行うプロセッサのコアの番号を決めて振り分けることで、同一のフローのＩＰパケットの転送順序の逆転が防止される。ところが、ハッシュ計算結果に基づく振り分けは、同じ結果の値となったパケットは同一のプロセッサのコアが選択されて処理されるので、プロセッサのコアが偏って選択されてしまい、ＣＰＵの資源が有効に使用されないという問題点がある。このため、ＣＰＵの資源が有効に使用されるパケット処理装置が要求されている。
【０００５】
この種の関連する技術としては、たとえば、特許文献１に記載されたマルチリンク型ルータがある。
このマルチリンク型ルータでは、ルータにルーティングを行う必要のあるパケットが入ってきたとき、ヘッダ情報の１つ又は複数が抽出され、抽出されたヘッダ情報をキーとしてハッシュ計算などが行われ、ハッシュ値に対応するインタフェースにパケットが出力される。このため、抽出されたヘッダ情報が同一であるパケットの出力インタフェースは常に同一となり、パケットの順序逆転が起こることがない。また、ハッシュ計算式として、流量の多いパケットに帯域の広い経路が割り当てられるような関数を用いることにより、負荷分散を図ることが可能となる。
【０００６】
また、特許文献２に記載された中継装置では、パケットが到着した場合、パケット処理部により同一性情報テーブルに一致情報があるか否かが判定され、一致情報がない場合には、この同一性情報テーブルに対して、パケット全体、パケット全体のハッシュ値、パケットの所定部分、あるいは、パケットの所定部分のハッシュ値が登録され、同一性情報テーブルに登録された情報に基づいてパケットの同一性判定が行われる。
【０００７】
また、特許文献３に記載されたパケット並列処理装置では、負荷分散部により、入力されるパケットが複数のパケット処理部へ振り分けられ、各パケット処理部でパケットの並列処理が行われる。各パケット処理部では、それぞれパケット処理情報管理部が管理するパケット処理情報の一部が管理され、この管理情報に基づいて、振り分けられたパケットに処理が施される。パケット処理情報管理部では、定期的に、負荷分散部の各パケット処理部へのパケットの振り分け方、及び各パケット処理部がそれぞれ管理するパケット処理情報が更新される。これにより、パケット処理の負荷が各パケット処理部になるべく均等になるように配分される。また、上記負荷分散部では、パケット処理情報管理部から送出されるハッシュ値あるいは統計情報などに基づいて、パケットを各パケット処理部に振り分けることにより、同各パケット処理部が効率的に使用されるようにしている。また、上記負荷分散部のパケット振り分け部では、パケットにシーケンス番号が付与され、多重化部でシーケンス番号順にパケットが出力されるように構成されることもある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−０１３４３９号公報（要約書、図１）
【特許文献２】特開２００７−２５８９５５号公報（要約書、図１）
【特許文献３】特開２００８−１６７３０５号公報（要約書、第１３頁、図１、図２）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記各文献に記載された技術では、次のような問題点があった。
すなわち、特許文献１に記載されたマルチリンク型ルータでは、処理を行う前にハッシュ値を計算することで、出力インタフェースを固定にすることができるが、処理を行う前にハッシュ値に基づいて振り分ける方法では、振り分け先が偏るという問題点があり、効率的な資源の利用が行われない。
【００１０】
特許文献２に記載された中継装置では、パケットの同一性を判定する場合、厳密な同一判定が必要となり、同一か否かの判定に必要な全ての情報が比較されるので、この発明とは構成が異なる。
【００１１】
特許文献３に記載されたパケット並列処理装置では、ハッシュ値あるいは統計情報などに基づいて、パケットが各パケット処理部に振り分けられるので、上記特許文献１と同様の問題点がある他、シーケンス番号順にパケットが出力される構成になっているので、この発明とは構成が異なる。
【００１２】
この発明は、上述の事情に鑑みてなされたもので、パケット転送処理を分散して行うための複数のコア（パケット転送処理手段）を有するＣＰＵの資源が有効に使用されるパケット処理装置、パケット処理順序制御方法及びパケット処理順序制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、この発明の第１の構成は、与えられたパケットを送信先へ転送するパケット処理を分散して行うための複数のパケット転送処理手段を有するパケット処理装置に係り、前記各パケット転送処理手段は、当該パケット転送処理手段を表す処理番号、パケット処理の実行中か否かを表す処理フラグ、及び、処理中のパケットに含まれるデータに基づくハッシュ値を生成する構成とされ、前記各パケット転送処理手段で生成された前記処理番号、処理フラグ及びハッシュ値を記憶する記憶手段と、該記憶手段に記憶されている前記処理番号及び処理フラグに基づいて、前記各パケット転送処理手段のうちのパケット処理を実行していないパケット転送処理手段を判定し、該判定されたパケット転送処理手段に、与えられたパケットを振り分けて転送する振り分け処理手段とが設けられていることを特徴としている。
【００１４】
この発明の第２の構成は、与えられたパケットを送信先へ転送するパケット処理を分散して行うための複数のパケット転送処理手段を有するパケット処理装置に用いられるパケット処理順序制御方法に係り、前記各パケット転送処理手段が、当該パケット転送処理手段を表す処理番号、パケット処理の実行中か否かを表す処理フラグ、及び、処理中のパケットに含まれるデータに基づくハッシュ値を生成し、記憶手段が、前記各パケット転送処理手段で生成された前記処理番号、処理フラグ及びハッシュ値を記憶する記憶処理と、振り分け処理手段が、前記記憶手段に記憶されている前記処理番号及び処理フラグに基づいて、前記各パケット転送処理手段のうちのパケット処理を実行していないパケット転送処理手段を判定し、該判定されたパケット転送処理手段に、与えられたパケットを振り分けて転送する振り分け処理とを行うことを特徴としている。
【発明の効果】
【００１５】
この発明の構成によれば、パケットの転送の順序の逆転を回避でき、かつ、パケット処理装置を構成する資源である複数のパケット転送処理手段を有効に使用できる。
【図面の簡単な説明】
【００１６】
【図１】この発明の一実施形態であるパケット処理装置の要部の構成を示すブロック図である。
【図２】図１中の共有テーブル３０の構成図である。
【図３】図１のパケット処理装置の動作を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
上記記憶手段は、上記各パケット転送処理手段で生成された上記処理番号、処理フラグ及びハッシュ値を、生成順に記憶する構成とされ、上記各パケット転送処理手段は、後に到着したパケットの処理が、先に到着したパケットの処理よりも早く終了した場合、後に到着したパケットの処理が終了した後に、上記記憶手段に記憶されている上記処理番号、処理フラグ及びハッシュ値に基づいて、同一のハッシュ値を有するパケットの処理を行っているパケット転送処理手段が存在するか否かを確認し、存在しない場合は処理済みのパケットを出力側に転送する一方、存在する場合は処理が終了するまで処理済みのパケットの転送を待ち合わせる構成とされているパケット処理装置を提供する。
【００１８】
また、この発明の好適な形態では、上記記憶手段は、上記各パケット転送処理手段に共有され、上記処理番号、処理フラグ及びハッシュ値を、先頭から生成順に記憶すると共に、処理済みのパケットに対応する上記処理番号、処理フラグ及びハッシュ値を消去する共有テーブルで構成されている。また、上記各パケット転送処理手段は、同一のハッシュ値を有するパケットの処理を行っているパケット転送処理手段が存在する場合、上記記憶手段に記憶されている上記処理番号、処理フラグ及びハッシュ値が消去されるまで、処理済みのパケットの転送を待ち合わせる構成とされている。また、上記各パケット転送処理手段は、上記ハッシュ値を、当該パケットに含まれるへッダ情報に基づいて生成する構成とされている。
【実施形態】
【００１９】
図１は、この発明の一実施形態であるパケット処理装置の要部の構成を示すブロック図である。
この形態のパケット処理装置１は、同図に示すように、入力インタフェース１１，１２，１３と、ＣＰＵ２０と、共有テーブル３０と、出力インタフェース４１，４２，４３とから構成されている。ＣＰＵ２０は、パケット処理順序制御プログラムに基づいて動作するコンピュータで構成され、入力処理部２１と、振り分け処理部２２と、コア２３1 ，２３2 ，…，２３n と、出力処理部２４とから構成されている。入力インタフェース１１，１２，１３は、たとえばイーサネット（登録商標）などに対応した光信号などのパケットを外部から受信して電気信号に変換し、入力処理部２１へ送出する。入力処理部２１は、入力インタフェース１１，１２，１３からパケットを受け取り、振り分け処理部２２に転送する。
【００２０】
振り分け処理部２２は、入力処理部２１から転送されたパケットをコア２３1 ，２３2 ，…，２３n に振り分けて転送する。コア２３1 ，２３2 ，…，２３n は、与えられたパケットを送信先へ転送するパケット処理を分散して行い、特に、この実施形態では、当該コアを表す処理番号、パケット処理の実行中か否かを表す処理フラグ、及び、処理中のパケットに含まれるデータ（たとえば、へッダ情報）に基づくハッシュ値を生成する。また、コア２３1 ，２３2 ，…，２３n は、処理済みのパケットの転送先に対応する出力インタフェースの検索処理を行う。この検索処理では、たとえば、パケットに含まれる転送先アドレスのＬＰＭ（Longest Prefix Match）の検索が行われる。共有テーブル３０は、各コア２３1 ，２３2 ，…，２３n に共有され、同各コア２３1 ，２３2 ，…，２３n により、同各コアで生成された処理番号、処理フラグ及びハッシュ値を先頭から生成順に記憶すると共に、処理済みのパケットに対応する処理番号、処理フラグ及びハッシュ値を消去する。
【００２１】
また、各コア２３1 ，２３2 ，…，２３n は、後に到着したパケットの処理が、先に到着したパケットの処理よりも早く終了した場合、後に到着したパケットの処理が終了した後に、共有テーブル３０に記憶されている処理番号、処理フラグ及びハッシュ値に基づいて、同一のハッシュ値を有するパケットの処理を行っているコアが存在するか否かを確認し、存在しない場合は処理済みのパケットを出力処理部２４（出力側）に転送する一方、存在する場合は処理が終了するまで処理済みのパケットの転送を待ち合わせる。この場合、各コア２３1 ，２３2 ，…，２３n は、同一のハッシュ値を有するパケットの処理を行っているコアが存在する場合、共有テーブル３０に記憶されている処理番号、処理フラグ及びハッシュ値が消去されるまで、処理済みのパケットの転送を待ち合わせる。
【００２２】
上記振り分け処理部２２は、特に、この実施形態では、共有テーブル３０に記憶されている処理番号及び処理フラグに基づいて、各コア２３1 ，２３2 ，…，２３n のうちのパケット処理を実行していないコアを判定し、判定されたコアに、与えられたパケットを振り分けて転送する。出力処理部２４は、コア２３1 ，２３2 ，…，２３n から処理済みのパケットを受け取り、同パケットの転送先に対応する出力インタフェース４１，４２，４３に転送する。出力インタフェース４１，４２，４３は、出力処理部２４からパケットを受け取り、たとえば光信号などに変換して外部の装置に転送する。
【００２３】
図２は、図１中の共有テーブル３０の構成図である。
この共有テーブル３０は、同図２に示すように、処理番号ａ、処理フラグｂ及びハッシュ値ｃが先頭から生成順に記憶されると共に、処理済みのパケットに対応する処理番号ａ、処理フラグｂ及びハッシュ値ｃが消去されるようになっている。
【００２４】
図３は、図１のパケット処理装置の動作を説明するフローチャートである。
この図を参照して、この形態のパケット処理装置に用いられるパケット処理順序制御方法の処理内容について説明する。
このパケット処理装置では、コア２３1 ，２３2 ，…，２３n により、当該コアを表す処理番号、パケット処理の実行中か否かを表す処理フラグ、及び、処理中のパケットのデータ（たとえば、へッダ情報）に基づくハッシュ値が生成される。処理番号、処理フラグ及びハッシュ値は、共有テーブル３０に先頭から生成順に記憶される（記憶処理）。また、処理済みのパケットに対応する処理番号、処理フラグ及びハッシュ値は、消去される。振り分け処理部２２により、共有テーブル３０に記憶されている処理番号及び処理フラグに基づいて、コア２３1 ，２３2 ，…，２３n のうちのパケット処理を実行していないコアが判定され、判定されたコアに、与えられたパケットが振り分けられて転送される（振り分け処理）。
【００２５】
また、コア２３1 ，２３2 ，…，２３n により、後に到着したパケットの処理が、先に到着したパケットの処理よりも早く終了した場合、後に到着したパケットの処理が終了した後に、共有テーブル３０に記憶されている処理番号ａ、処理フラグｂ及びハッシュ値ｃに基づいて、同一のハッシュ値を有するパケットの処理を行っているコアが存在するか否かが確認され、存在しない場合は、処理済みのパケットが出力処理部２４に転送される一方、存在する場合は、処理が終了するまで処理済みのパケットの転送を待ち合わせる。
この場合、コア２３1 ，２３2 ，…，２３n は、共有テーブル３０に記憶されている処理番号、処理フラグ及びハッシュ値が消去されるまで、処理済みのパケットの転送を待ち合わせる。
【００２６】
すなわち、図３に示すように、入力インタフェース１１，１２，１３から送出されるパケットが入力処理部２１で受信され、振り分け処理部２２に転送される（ステップＡ１）。振り分け処理部２２では、共有テーブル３０中の処理番号ａ及び処理フラグｂを参照して、処理を行っていないコアが検索され、処理を行っていないコア（未処理コア）にパケットを転送する（ステップＡ２）。次に、パケットを受信したコアでは、パケットのヘッダ情報に基づいてハッシュ値が計算され（ステップＡ３）、処理番号及び処理フラグを有効にして、共有テーブル３０に情報を書き込む。このとき、先に登録されたデータが共有テーブル３０の先頭に必ずくるように共有テーブル３０が構築される。つまり、共有テーブル３０の最後尾に情報が書き込まれる（共有テーブルの構築、ステップＡ４）。
【００２７】
次に、コア２３1 ，２３2 ，…，２３n により、処理済みのパケットの転送先に対応する出力インタフェースの検索処理が行われる（ステップＡ５）。この後、コア２３1 ，２３2 ，…，２３n により、共有テーブル３０に対して、同一のハッシュ値を有するパケット処理中の他のコアがあるか否かが検索される（ステップＡ６）。この場合、図２中の処理番号ａが当該コアを示す番号ではなく、処理フラグｂが有効で、かつ、ハッシュ値ｃが処理中のパケットのハッシュ値と同一である場合は、先に到着したパケットの処理が終了していない可能性があり、パケット順序が逆転する可能性があるため、他のコアの処理が終了するまでは、出力処理部２４に対する転送を待ち合わせる（ステップＡ１０）。また、処理番号ａが当該コアを示す番号ではなく、処理フラグｂが有効で、かつ、ハッシュ値ｃが処理中のパケットのハッシュ値と同一であっても、当該コアによる登録の位置よりも後方に登録されている場合は、後から到着したパケットであり、順序制御の必要がないため、ステップＡ７の処理（共有テーブル３０の情報の削除）に進む。
【００２８】
また、図２中の処理番号ａが当該コアを示す番号ではなく、処理フラグｂが有効で、かつ、ハッシュ値ｃが処理中パケットのハッシュ値と同一の登録がない場合も、ステップＡ７の処理に進む。コア２３1 ，２３2 ，…，２３n により、順序制御が必要なパケットがないと判断された後、共有テーブル３０の処理フラグｂが無効とされ、共有テーブル３０から情報が削除される（ステップＡ７）。そして、コア２３1 ，２３2 ，…，２３n からパケットが出力処理部２４に転送され（ステップＡ８）、同出力処理部２４から該当の出力インタフェース４１，４２，４３に転送され（ステップＡ９）、処理が終了する。
【００２９】
以上のように、この実施形態では、共有テーブル３０に記憶されている処理番号及び処理フラグに基づいて、振り分け処理部２２により、コア２３1 ，２３2 ，…，２３n のうちのパケット処理を実行していないコアが判定され、判定されたコアにパケットが振り分けられて転送され、また、コア２３1 ，２３2 ，…，２３n により、後に到着したパケットの処理が、先に到着したパケットの処理よりも早く終了した場合、後に到着したパケットの処理が終了した後に、共有テーブル３０に記憶されている処理番号ａ、処理フラグｂ及びハッシュ値ｃに基づいて、同一のハッシュ値を有するパケットの処理を行っているコアが存在するか否かが確認されるので、パケットの転送の順序の逆転が回避され、かつ、ＣＰＵ２０の資源であるコア２３1 ，２３2 ，…，２３n が有効に使用される。
【００３０】
以上、この発明の実施形態を図面により詳述してきたが、具体的な構成は同実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更などがあっても、この発明に含まれる。
たとえば、上記実施形態では、パケットのヘッダ情報に基づいてハッシュ値が計算されるが、同ハッシュ値は、パケットに含まれる送信先／送信元アドレス、プロトコル番号及び送信先／送信元ポート番号に基づいて計算しても良い。また、図１中の入力インタフェース１１，１２，１３及び出力インタフェース４１，４２，４３は、それぞれ３系統になっているが、この数に限定されない。
【産業上の利用可能性】
【００３１】
この発明は、パケットを送信先へ転送する処理を分散して行うパケット処理装置全般に適用できる。
【符号の説明】
【００３２】
２０      ＣＰＵ（中央処理装置）（パケット処理装置の一部）
２１      入力処理部（ＣＰＵの一部）
２２      振り分け処理部（振り分け処理手段）
２３1 ，２３2 ，…，２３n       コア（パケット転送処理手段）
２４      出力処理部（ＣＰＵの一部）
３０      共有テーブル（記憶手段）
ａ      処理番号
ｂ      処理フラグ
ｃ      ハッシュ値
【図１】
2010199643.tif 000003
【図２】
2010199643.tif 000004
【図３】
2010199643.tif 000005