"それぞれが処理待ちキューを有する複数のパケット処理部と、外部から受信したパケットをキューイングする受信キューと、この受信キューから取り出した受信パケットをいずれかの前記処理待ちキューに振り分けるパケット振分け部と、各処理待ちキューの状態を表すキュー管理情報、及び、各パケットが属するフローの振り分け先と処理待ちのパケット数とを含むフロー管理情報を保持する情報保持部とを備えるパケット処理装置のパケット処理方法であって、前記パケット振分け部は、前記受信パケットのヘッダ情報から当該パケットが含まれるフローを特定して、前記フロー管理情報を参照して同じフローに属するパケット群を同じ処理待ちキューに振り分け、前記キュー管理情報を参照することにより、振り分け先の前記処理待ちキューにキューイングされているパケットの数が所定の閾値を超えていると判定した場合は、さらに、前記フロー管理情報を参照することにより、当該処理待ちキューに含まれる当該振り分け対象パケットと同じフローに属するパケットの数であるフロー別パケット数が所定のフロー閾値以上であるか否かを判定し、前記フロー別パケット数が前記フロー閾値以上である場合に、当該振り分け対象パケットを所定のアルゴリズムによって確率的に破棄することを特徴とするパケット処理方法。請求項1に記載のパケット処理方法において、前記所定のアルゴリズムは、REDアルゴリズムまたはそれから派生した類似のアルゴリズムであることを特徴とするパケット処理方法。請求項1または請求項2に記載のパケット処理方法において、前記所定のアルゴリズムを適用するための最小フロー数が規定され、前記パケット振分け部は、前記処理待ちキューに割り当てられているフロー数が前記最小フロー数に満たないものと判定した場合に、前記所定のアルゴリズムを適用しないことを特徴とするパケット処理方法。請求項1から請求項3のいずれか一項に記載のパケット処理方法において、前記パケット振分け部は、前記フロー別パケット数が前記フロー閾値以上であると判定する毎に、当該フロー閾値を段階的に引き下げ、当該フローに属するパケットが振り分けられる前記処理待ちキューに新たにキューイングされる単位時間当たりの受信パケット数が減少する回数をカウントし、当該回数が、所定の回数に達した場合に、当該フロー閾値を所定の初期値に再設定することを特徴とするパケット処理方法。それぞれが処理待ちキューを有する複数のパケット処理部と、外部から受信したパケットをキューイングする受信キューと、この受信キューから取り出した受信パケットをいずれかの前記処理待ちキューに振り分けるパケット振分け部と、各処理待ちキューの状態を表すキュー管理情報、及び、各パケットが属するフローの振り分け先と処理待ちのパケット数とを含むフロー管理情報を保持する情報保持部とを備え、前記パケット振分け部は、前記受信パケットのヘッダ情報から当該パケットが含まれるフローを特定して、前記フロー管理情報を参照して同じフローに属するパケット群を同じ処理待ちキューに振り分ける振分け処理部と、前記キュー管理情報を参照することにより、振り分け先の前記処理待ちキューにキューイングされているパケットの数が所定の閾値を超えていると判定した場合は、さらに、前記フロー管理情報を参照することにより、当該処理待ちキューに含まれる当該振り分け対象パケットと同じフローに属するパケットの数であるフロー別パケット数が所定のフロー閾値以上であるか否かを判定し、前記フロー別パケット数が前記フロー閾値以上である場合に、当該振り分け対象パケットを所定のアルゴリズムによって確率的に破棄する破棄処理部とを有することを特徴とするパケット処理装置。請求項5に記載のパケット処理装置において、前記所定のアルゴリズムは、REDアルゴリズムまたはそれから派生した類似のアルゴリズムであることを特徴とするパケット処理装置。請求項5または請求項6に記載のパケット処理装置において、前記所定のアルゴリズムを適用するための最小フロー数が規定され、前記パケット振分け部は、前記処理待ちキューに割り当てられているフロー数が前記最小フロー数に満たないものと判定した場合に、前記所定のアルゴリズムを適用しないことを特徴とするパケット処理装置。請求項5から請求項7のいずれか一項に記載のパケット処理装置において、前記パケット振分け部は、前記フロー別パケット数が前記フロー閾値以上であると判定する毎に、当該フロー閾値を段階的に引き下げ、当該フローに属するパケットが振り分けられる前記処理待ちキューにキューイングされる単位時間当たりの受信パケット数が減少する回数をカウントし、当該回数が所定の回数に達した場合に、当該フロー閾値を所定の初期値に再設定する閾値初期化処理部を有することを特徴とするパケット処理装置。前記のようなパケット処理の並列化とREDアルゴリズムとを組み合わせて、パケット振分け部が各パケット処理部の処理待ちキューにパケットを振り分けるときにREDアルゴリズムを適用することにより、パケット処理性能の向上を図りつつパケットの連続的な破棄に伴うスループットの低下を防ぐことが可能である。しかし、一つのパケット処理部には複数のフローが割り当てられるのが一般的である。そのため、帯域使用率の高いフローと帯域使用率の低いフローとが同じパケット処理部に割り当てられた場合、REDアルゴリズムによるキュー管理のみでは、帯域使用率の低いフローのパケットであっても同じ確率で破棄されることになる。つまり、自身のフローの帯域使用率が低いのにも関わらず、帯域使用率の高いフローの影響によってパケット破棄が発生してしまうという問題がある。これは、ベストエフォート型ネットワークサービスにとって好ましくない。本発明は、前記のような問題に鑑みてなされたものであり、パケット処理の並列化によるパケット処理性能の向上を図りつつ、帯域使用率の低いフローにおけるパケット破棄を減らすことが可能なパケット処理方法及びパケット処理装置を提供することを目的とする。前記の目的を達成するために、本発明は、それぞれが処理待ちキューを有する複数のパケット処理部と、外部から受信したパケットをキューイングする受信キューと、この受信キューから取り出した受信パケットをいずれかの前記処理待ちキューに振り分けるパケット振分け部と、各処理待ちキューの状態を表すキュー管理情報、及び、各パケットが属するフローの振り分け先と処理待ちのパケット数とを含むフロー管理情報を保持する情報保持部とを備えるパケット処理装置において、前記パケット振分け部は、前記受信パケットのヘッダ情報から当該パケットが含まれるフローを特定して、前記フロー管理情報を参照して同じフローに属するすべてのパケット群を同じ処理待ちキューに振り分け、前記キュー管理情報を参照することにより、振り分け先の前記処理待ちキューにキューイングされているパケットの数が所定の閾値を超えていると判定した場合は、さらに、前記フロー管理情報を参照することにより、当該処理待ちキューに含まれる当該振り分け対象パケットと同じフローに属するパケットの数であるフロー別パケット数が所定のフロー閾値以上であるか否かを判定し、前記フロー別パケット数が前記フロー閾値以上である場合に、当該振り分け対象パケットを所定のアルゴリズムによって確率的に破棄するものとした。本発明によれば、パケット処理の並列化によるパケット処理性能の向上を図りつつ、帯域使用率の低いフローにおけるパケット破棄を減らすことが可能なパケット処理方法及びパケット処理装置を提供することができる。以下、本発明を実施するための形態を適宜図面を参照しながら説明するが、本発明の実施態様はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲内において各種変形が可能である。図1は、本発明の実施形態に係るパケット処理装置の機能構成例を示す図である。図1に示すように、パケット処理装置100は、受信キュー101と、パケット振分け部102と、複数の処理待ちキュー103と、複数のパケット処理部104と、送信キュー105と、情報保持部106とを備えて構成されている。また、情報保持部106は、キュー管理テーブル300、フロー管理テーブル400、及び統計情報テーブル500を備え、さらに、装置の動作に必要な各種システムパラメータなどを記憶する。パケット処理装置100が中継すべきパケットを受信すると、当該受信パケットは受信キュー101に一時保存される。パケット振分け部102は、受信キュー101に一時保存されている受信パケットを1つずつ取り出して、複数のパケット処理部104のなかのいずれか1つに当該パケットを振り分ける。より詳しくは、パケット振分け部102は、受信パケットのヘッダ情報から当該パケットのフロー種別及びフローIDを抽出し、キュー管理テーブル300を参照して振分け先の処理待ちキュー103及び対応するパケット処理部104を特定したのち、特定した処理待ちキュー103に当該パケットをキューイングする。このとき、キュー管理テーブル300において、抽出したフローIDに対してすでに特定の処理待ちキュー103及びパケット処理部104が割り当てられていれば、当該割り当て済みの処理待ちキュー103に当該パケットを振り分け、まだ処理待ちキュー103及びパケット処理部104が割り当てられていなければ、新たにいずれか1つを割り当てる。割り当ての方法は特に限定されないが、例えば、その時点で最も負荷が小さいパケット処理部104及び対応する処理待ちキュー103を割り当てるものとしてもよいし、その時点で最もキューイングされているパケット数が少ない処理待ちキュー103及びパケット処理部104を割り当てるものとしてもよい。各パケット処理部104は、自身に対応する処理待ちキュー103からパケットを1つずつ取り出して、ルーティング処理やプロトコル処理など当該パケット処理装置100に要求されるパケット処理を行ったのち、処理済みのパケットである送信パケットを送信キュー105にキューイングする。送信キュー105にキューイングされた各送信パケットは、不図示のパケット送信部によって所定の送信先に順次送信される。続いて、図2を参照して、パケット処理装置のハードウェア構成を説明する。図2は、パケット処理装置のハードウェア構成例を示す図である。図2に示すように、パケット処理装置100は、バス200で相互接続されたマルチコアCPUCentralProcessingUnit201と、入力IFInterface202と、出力IF203と、メモリ204とを備えて構成されている。さらに、マルチコアCPUのなかのコア0符号205は、パケット振分け部として動作し、コア1からコアN符号206は、それぞれパケット処理部として動作する。ここでは、図1に示したパケット振分け部102及びパケット処理部104は、各コアが所定のプログラムを実行することで具現化されるものとするが、それぞれの処理部をハードウェアで実現するものとしてもよい。入力IF202は、不図示の通信回線を介して外部から受信した信号を、装置内部で扱うデータ形式に変換し、受信パケットとして受信キュー101図1参照にキューイングする。出力IF203は、送信キュー105図1参照から送信パケットを取り出し、外部が扱う信号形式に変換して不図示の通信回線を介して送信する。また、RAMRandomAccessMemoryなどによって構成されるメモリ204には、受信キュー101と、複数の処理待ちキュー103と、送信キュー105と、情報保持部106との各領域が、それぞれ割り当てられる。図3は、キュー管理テーブルの構成及びデータ例である。図3に示すように、キュー管理テーブル300には、コア番号301、フロー種別302、DROP閾値303、RED閾値304、初期フロー閾値305、RED適用フロー数306、処理待ちパケット数307、フロー数308、及びフローリスト309を属性としてもつレコードが、パケット処理部104として機能するコア206コア1~Nの数だけ登録される。コア番号301は、当該レコードに対応付けられているコア206及び対応するパケット処理部104の識別番号である。フロー種別302は、当該コア206に割り当てられるフローの種別を表すものであり、例えば、送信元のIPInternetProtocolアドレス毎にフローを区別する送信元IP、宛先ポート毎にフローを区別する宛先ポート、宛先のIPアドレス毎にフローを区別する宛先IPなどの値が設定される。DROP閾値303は、TailDrop方式を適用してそれぞれの処理待ちキュー103から溢れたパケットを破棄するか否かを判定するための基準となるパケット数であり、それぞれの処理待ちキュー103にキューイング可能な最大パケット数に相当する。RED閾値304は、それぞれの処理待ちキュー103に対してREDアルゴリズムを適用するか否かを判定するための基準となるパケット数である。初期フロー閾値305は、図4の説明にて後記するフロー閾値404の初期値である。RED適用フロー数306は、当該コア206に割り当てられているフローの数が少ないときにはREDアルゴリズムを適用しないようにするための基準となるフローの数である。処理待ちパケット数307は、当該パケット処理部104に対応する処理待ちキュー103にキューイングされているパケットの数であり、この値がRED閾値304よりも大きくDROP閾値よりも小さいときに、REDアルゴリズムの適用可否の判定が行われる。フロー数308は、当該パケット処理部104に割り当てられているフローの数であり、この値がRED適用フロー数306よりも大きくなければREDアルゴリズムは適用されない。フローリスト309は、当該パケット処理部104に割り当てられているすべてのフローのフロー番号のリストであり、例えば図3の1行目のレコードは、コア1に対応するパケット処理部104に、フロー番号1,9,26,38,46の5つのフローが割り当てられている状態を示している。これらのフローリスト309は、新たなフローの発生やフローの消滅に伴って動的にデータが更新される。図4は、フロー管理テーブルの構成及びデータ例である。図4に示すように、フロー管理テーブル400には、フロー番号401、コア番号402、パケット数403、フロー閾値404、及び閾値初期化カウンタ405を属性としてもつレコードが、パケット処理部104に割り当てられているフローの数だけ登録される。フロー番号401は、当該レコードに対応付けられているフローに対して付与されるユニークな識別番号である。各受信パケットが属するフローのフロー番号は、当該パケットのヘッダ情報を解析することにより一意に特定される。コア番号402は、当該フローが割り当てられたパケット処理部104に該当するコア206の識別番号である。パケット数403は、当該コア206に対応する処理待ちキュー103にキューイングされているパケットのうち当該フローに属するパケットの数である。フロー閾値404は、当該フローに対してREDアルゴリズムを適用するか否かを判定するための基準となるパケット数であり、当該フローのパケット数403の値がこのフロー閾値を超えている場合に、当該フローに対してREDアルゴリズムが適用されることになる。後記にて説明するように、フロー閾値404の値は、当該フローに対してREDアルゴリズムが適用される度に減少していく。閾値初期化カウンタ405は、減少したフロー閾値404の値を所定の初期フロー閾値305図3に戻すために用いるカウンタである。なお、図4に示したデータ例は、フロー番号1,9,46のフローが、フロー閾値404の初期値=初期フロー閾値305が100であるコア1に割り当てられており、フロー9のフローに対してREDアルゴリズムが適用されたことで該当するフロー閾値404が95にまで減少した状態を表している。フロー閾値404の減少の単位は、システムパラメータとして設定可能であり、この値を0とすれば、フロー閾値404を減少させないようにすることも可能である。図5は、統計情報テーブルの構成及びデータ例である。図5に示すように、統計情報テーブル500には、コア番号501、総受信パケット数502、総送信パケット数503、総破棄パケット数504、前回総受信パケット数505、及び前回受信パケット数506を属性としてもつレコードが、パケット処理部104として機能するコア206コア1~Nの数だけ登録される。コア番号501は、当該レコードに対応付けられているコア206及び対応するパケット処理部104の識別番号である。総受信パケット数502は、統計情報の収集を開始してから当該コア206パケット処理部104が受信した当該コアに振り分けられたパケットの総数であり、総送信パケット数503は、当該コア206パケット処理部104が送信した送信キュー105にキューイングしたパケットの総数である。総破棄パケット数504は、当該コア206パケット処理部104に振り分けられたパケットのうち破棄されたパケットの総数であり、総受信パケット数502から総送信パケット数503と処理待ちパケット数307図3との和を引いた値に等しい。前回総受信パケット数505は、所定の単位時間例えば5秒毎にその時点における総受信パケット数502の値を記憶したものであり、単位時間毎に値が上書きされて更新される。つまり、前回総受信パケット数505は、前回の上書き更新時における総受信パケット数502の値を示している。前回受信パケット数506は、前回総受信パケット数505の前々回の上書き更新時から前回の上書き更新時までの単位時間に受信したパケットの数を記憶したものである。例えば、図5に例示した状態にて今回の上書き更新が行われるときには、コア番号が1である1行目のレコードについては、総受信パケット数502の値である1340が前回総受信パケット数505に上書きされて記憶され、前回受信パケット数506には、総受信パケット数502の値1340から前回総受信パケット数505の値1220を引いた値である120が上書きされて記憶される。この統計情報テーブル500を参照することによって、パケット処理部104として機能する各コア206におけるパケット破棄率や受信パケット数の増減を把握し、パケット処理装置100の動作を規定する各種システムパラメータを自動または手動で適宜調整することが可能となる。続いて、図6及び図7を参照して、パケット振分け部の動作を説明する。図6は、パケット振分け部の動作例を示すフローチャートであり、図7は、パケット振分け部におけるパケット振分け及び破棄処理の詳細を示すフローチャートである。図6に示すように、パケット振分け部102の振分け処理部は、まず、入力IF202が受信して受信キュー101にキューイングした受信パケットを、受信キュー101から1つ取り出すステップ601。このとき、パケットに優先度が付されていれば、最も優先度の高いパケット群のなかから優先して受信パケットを取り出すようにしてもよい。次に、振分け処理部は、受信パケットのヘッダ情報を解析することによって当該パケットのフロー種別とフローの識別情報であるフロー番号とを特定しステップ602、当該フロー番号がフロー管理テーブル400に登録されてパケット処理部104が割当て済みであるか否かを判定するステップ603。パケット処理部104が割当て済みである場合にはステップ603でYes、ステップ606に処理を進めて割当て済みのパケット処理部104へのパケット振分け処理を行い、パケット処理部104が割り当てられていない新たなフローである場合にはステップ603でNo、ステップ604に処理を進める。ステップ604では、振分け処理部は、キュー管理テーブル300を参照することにより、特定したフロー種別に適合するパケット処理部104を1つ選択し、当該パケット処理部104に対して当該フローを割り当てるステップ605。具体的には、フロー管理テーブル400に当該フローのフロー番号を有する新たなレコードを生成して追加登録するとともに、キュー管理テーブル300の当該パケット処理部104に該当するレコードのフロー数308に1を加算し、フローリスト309に当該フロー番号を追加登録する。適合するパケット処理部104が複数存在するときには、例えば、処理待ちパケット数307が最小のパケット処理部104を選択するようにしてもよいし、フロー数308が最小のパケット処理部104を選択するようにしてもよい。そののち、ステップ606に処理を進めて新規に割り当てたパケット処理部104へのパケット振分け処理を行う。図7に示すように、パケット振分け及び破棄処理においては、パケット振分け部102の破棄処理部は、まず、振分け先のパケット処理部104に対応するキュー管理情報及び当該パケットが属するフローのフロー管理情報を取得するステップ701。具体的には、キュー管理テーブル300から当該パケット処理部104に該当するコア番号を有するレコードを読み出し、フロー管理テーブル400から当該パケットに該当するフロー番号を有するレコードを読み出す。次に、破棄処理部は、受信パケット数の加算を行うステップ702。具体的には、統計情報テーブル500において、当該パケット処理部104に該当するコア番号を有するレコードの総受信パケット数502の値に1を加算する。次に、破棄処理部は、キュー管理テーブル300から読み出したレコードを参照することにより、振分け対象のパケットを当該処理待ちキュー103にキューイングすると処理待ちパケット数処理待ちパケット数307に1を加算した値がDROP閾値303を超えるか否かを判定するステップ703。処理待ちパケット数>DROP閾値となる場合ステップ703でYes、ステップ714に処理を進め、フロー管理テーブル400から読み出したレコードを参照することにより、当該パケットを当該処理待ちキュー103にキューイングするとフロー別のパケット数パケット数403に1を加算した値がフロー閾値404を超えるか否かを判定する。フロー別パケット数>フロー閾値の場合ステップ714でYes、ステップ715に処理を進めてフロー閾値404を引き下げる。ここで閾値を引き下げる単位は、システムパラメータやコマンドラインインタフェースによる入力などによって事前に与えられるものとする。続いて、閾値初期化カウンタ405の値を所定値に設定しステップ716、当該パケットを破棄しステップ717、統計情報テーブル500の該当する総破棄パケット数504を1だけ加算したのちステップ718、処理を終了する。フロー別パケット数≦フロー閾値の場合ステップ714でNo、ステップ717に処理を進めて当該パケットを破棄しステップ717、統計情報テーブル500の該当する総破棄パケット数504を1だけ加算したのちステップ718、処理を終了する。また、処理待ちパケット数≦DROP閾値となる場合ステップ703でNo、ステップ704に処理を進め、フロー管理テーブル400から読み出したレコードを参照することにより、当該パケットを当該処理待ちキュー103にキューイングすると処理待ちパケット数処理待ちパケット数307に1を加算した値がRED閾値304を超えるか否かを判定する。処理待ちパケット数≦RED閾値となる場合ステップ704でNo、ステップ711に処理を進めて当該パケットを当該処理待ちキュー103にキューイングする。続いて、フロー管理テーブル400の該当するフローのパケット数403を1だけ加算しステップ712、キュー管理テーブル300の該当する処理待ちパケット数307を1だけ加算したのちステップ713、処理を終了する。他方、処理待ちパケット数>RED閾値となる場合ステップ704でYes、ステップ705に処理を進めて、さらに、フロー管理テーブル400から読み出したレコードを参照することにより、当該パケットを当該処理待ちキュー103にキューイングするとフロー別のパケット数パケット数403に1を加算した値がフロー閾値404を超えるか否かを判定する。フロー別パケット数≦フロー閾値の場合ステップ705でNo、ステップ711に処理を進める。ステップ711以降の処理は、前記の処理待ちパケット数≦RED閾値のときと同様である。他方、フロー別パケット数>フロー閾値の場合ステップ705でYes、ステップ706に処理を進めて、さらに、フロー管理テーブル400から読み出したレコードを参照することにより、当該処理待ちキュー103に割り当てられているフロー数308がRED適用フロー数306を超えているか否かを判定する。フロー数≦RED適用フロー数の場合ステップ706でNo、ステップ711に処理を進める。ステップ711以降の処理は、前記の処理待ちパケット数≦RED閾値のときと同様である。フロー数>RED適用フロー数の場合ステップ706でYes、ステップ707に処理を進めてフロー閾値404を引き下げたのち、閾値初期化カウンタ405の値を所定値に設定するステップ708。続いて、ステップ709と710とによって当該フローに対してREDアルゴリズムを適用する。この例では、まず、当該処理待ちキュー103のRED閾値304とDROP閾値303との間のランダム値を算出しステップ709、現在の処理待ちパケット数307が算出したランダム値よりも大きいか否かを判定するステップ710。そして、処理待ちパケット数>ランダム値の場合ステップ710でYes、ステップ717に処理を進めて当該パケットを破棄し、統計情報テーブル500の該当する総破棄パケット数504を1だけ加算したのちステップ718、処理を終了する。また、処理待ちパケット数≦ランダム値の場合はステップ710でNo、ステップ711に処理を進めて当該パケットを当該処理待ちキュー103にキューイングしたのち、該当するフロー別のパケット数403と処理待ちパケット数307を1ずつ加算してステップ712,713処理を終了する。以上がパケット振分け部102の振分け処理部と破棄処理部とが実行する一連の処理であり、パケット振分け部102は、受信キュー101に順次キューイングされる受信パケットについて、上記処理を繰り返す。続いて、図8を参照して、パケット処理部の動作を説明する。図8は、パケット処理部の動作例を示すフローチャートである。図8に示すように、パケット処理部104は、まず、自身に対応する処理待ちキュー103にキューイングされているパケットを1つ取り出すステップ801。次に、パケット処理部104は、キュー管理テーブル300の該当する処理待ちパケット数307とフロー管理テーブル400の該当するフロー別のパケット数403とをそれぞれ1ずつ減算するステップ802,803。次に、パケット処理部104は、そのパケットに対してルーティング処理やプロトコル処理等の所定のパケット処理を行うステップ804。パケット処理が成功した場合ステップ805でYes、パケット処理部104は、ステップ806に処理を進めて送信キュー105にパケットをキューイングしたのち、統計情報テーブル500の該当する総送信パケット数503を1だけ加算してステップ807処理を終了する。他方、パケット処理が失敗した場合はステップ805でNo、ステップ808に処理を進めて統計情報テーブルの該当する総破棄パケット数を1だけ加算したのち、処理を終了する。以上がパケット処理部104が実行する一連の処理であり、パケット処理部104は、自身の処理待ちキュー103に順次キューイングされるパケットについて、上記処理を繰り返す。続いて、図9を参照してフロー閾値初期化処理について説明する。図9は、パケット振分け部におけるフロー閾値初期化処理の詳細を示すフローチャートである。図9に示す処理は、統計情報テーブル500の上書き更新を行う所定の単位時間例えば5秒毎に起動され、それぞれのパケット処理部104について個別に実行される。図9に示すように、パケット振分け部102の閾値初期化処理部は、まず、統計情報テーブル500の対象となるパケット処理部104のレコードから総受信パケット数502など一連の統計情報を取得するステップ901。次に、閾値初期化処理部は、総受信パケット数502から前回総受信パケット数505を減算することによって、現時点の単位時間前前回の上書き更新時以降に受信して振り分けた受信パケットの数である今回の受信パケット数を算出するステップ902。次に、閾値初期化処理部は、算出した今回の受信パケット数が前回受信パケット数506よりも小さいか否かを判定しステップ903、今回の受信パケット数が前回受信パケット数よりも小さい図9では、今回<前回と表記場合はステップ903でYesステップ904に処理を進め、今回の受信パケット数が前回受信パケット数以上の場合はステップ903でNoステップ907に処理を進める。ステップ904では、閾値初期化処理部は、当該パケット処理部104に割り当てられているフローをフロー管理テーブル400からすべて検索し、該当する閾値初期化カウンタ405の値が0でないものがあればその値を1だけ減算する。次に、減算後に閾値初期化カウンタ405の値が0となったか否かを判定しステップ905、0となった場合はステップ905でYesステップ906に処理を進め、フロー管理テーブル400の該当するフローのフロー閾値404の値をキュー管理テーブル300の該当する初期フロー閾値305の値に初期化する。ステップ907では、閾値初期化処理部は、当該パケット処理部104に該当する統計情報のうち、前回総受信パケット数505及び前回受信パケット数506を更新したのち、処理を終了する。このとき、前回総受信パケット数505には、その時点の総受信パケット数502の値を上書きして更新し、前回受信パケット数506には、ステップ902にて算出した今回の受信パケット数の値を上書きして更新する。以上の処理により、フロー別のパケット数が対応するフロー閾値を超えて当該フロー閾値が引き下げられたのちに、当該フローが割り当てられているパケット処理部104に振り分けられる単位時間当たりのパケット数が所定の回数だけ減少した場合に、引き下げられたフロー閾値の再設定が行われる。最後に、装置の動作に必要な各種システムパラメータの設定について説明する。図10は、コンフィグファイルにおけるシステムパラメータの記述例である。コンフィグファイルは、パケット処理装置100の起動時に不図示の不揮発性メモリなどから読み込まれる。図10に示したコンフィグファイルには、図3に例示したキュー管理テーブル300の初期設定に使用されるシステムパラメータとして、各パケット処理部104のコア番号、フロー種別、DROP閾値、RED閾値、初期フロー閾値、RED適用フロー数が記述されている。これらのシステムパラメータは、コマンドラインインタフェースのような方法により利用者などによって動的に変更されるものとしてもよい。以上にて、本発明の実施形態の説明を終える。なお、前記の実施形態においては、アクティブキュー管理方式としてREDアルゴリズムを適用する例について説明したが、例えば重み付きREDアルゴリズムのようにREDアルゴリズムを拡張したアルゴリズムを適用してもよいし、REDアルゴリズムとは異なる他のアクティブキュー管理アルゴリズムを適用してもよい。また、前記の実施形態においては、高トラフィックのフローのフロー閾値を動的に引き下げるものとしたが、フロー閾値を引き下げずに固定値としてもよく、その場合にはフロー管理テーブル400におけるフロー閾値404と閾値初期化カウンタ405とを省略することができる。また、フロー毎に優先度を付与してもよく、その場合には、優先度の高いフローには通常の初期フロー閾値よりも大きいフロー閾値を設定することにより、処理待ちキューにキューイング可能なパケット数を増やして優先度の高いフローのパケットを破棄しにくくするようにしてもよい。"