(57)【要約】【課題】パケットの帯域を制御するパケット処理装置に関し、自装置の帯域を圧迫することなくパケットの帯域制御を行うこと、また精度の高いパケット帯域制御を行う。【解決手段】前処理部１０が受信したパケット９０にタイムスタンプを付与し、共有リソース部４０が、各分散処理部２０＿１〜２０＿ｎに分散された各パケット９１の受信順序情報（例えば、タイムスタンプ、シーケンス番号）に基づき、パケットの帯域制御を行う。【選択図】　　　図１
2004080102.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットを複数の出力端子の内のいずれか１つに送出する前処理部と、
各出力端子にそれぞれ接続されて各出力端子からの該パケットを処理する複数の分散処理部と、
各分散処理部に分散された各パケットの受信順序情報に基づき、該パケットの帯域制御を行う共有リソース部と、
各分散処理部からのパケットを合流して出力する後処理部と、
を備えたことを特徴とするパケット処理装置。
【請求項２】
請求項１において、
該受信順序情報は、パケットに付与された時間情報であることを特徴としたパケット処理装置。
【請求項３】
請求項２において、
該前処理部が、該時間情報をパケットに付与することを特徴としたパケット処理装置。
【請求項４】
請求項２において、
該受信順序情報が、さらに、該前処理部がパケットに付加した、パケットの受信順序を示すシーケンス番号を含み、
該共有リソース部が、該シーケンス番号に基づき、該パケットを時系列順に並びかえる順序補正処理部を有することを特徴としたパケット処理装置。
【請求項５】
請求項１において、
該共有リソース部は、パケットをフロー別に分類するクラシファイ処理部をさらに備え、フロー別に帯域制御を行うことを特徴としたパケット処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はパケット処理装置に関し、特にパケット（フレーム）の帯域を制御するパケット処理装置に関するものである。
近年、通信技術の発達に伴い、データだけでなく音声、靜画像、及び動画像等の通信情報量は急速に増大している。このような情報を伝送する通信網においては、各情報のフローが、所定の帯域内のあるか否かを判定して制御を行う帯域制御は、通信の信頼性を確保するためにますます重要である。
【０００２】
【従来の技術】
図１３は、一般的なパケット交換装置の構成例を示している。このパケット交換装置は、物理回線１３０＿１１〜１３０＿１ｉ、物理回線１３０＿２１〜１３０＿２ｉ、…、物理回線１３０＿ｋ１〜１３０＿ｋｉ（以下、符号１３０で総称することがある。）をそれぞれ終端する回線処理部１１０＿１，１１０＿２，…，１１０＿ｋ（以下、符号１１０で総称することがある。）、各回線処理部１１０にそれぞれ接続されたパケット処理装置１００ｚ＿１〜１００ｚ＿ｋ（以下、符号１００ｚで総称することがある。）、及びこれらのパケット処理装置１００ｚ＿１〜１００ｚ＿ｋで接続されたスイッチ１２０で構成されている。
【０００３】
なお、同図では、回線処理部１１０に複数の物理回線１３０が接続されているが、回線処理部１１０に接続される物理回線１３０の数は１本の場合もある。
動作において、例えば、回線処理部１１０＿ｊは、物理回線１３０＿ｊｉからの回線信号から取り出したパケット９０をパケット処理装置１００ｚ＿ｊに転送する。
【０００４】
パケット処理装置１００ｚ＿ｊは、回線処理部１１０＿ｋから受信したパケット９０に対して以下のイングレス（ｉｎｇｒｅｓｓ）処理（１）〜（４）を行った後、スイッチ１２０に転送する。
（１）クラシファイ処理：パケット９０の発信元、宛先、及びプロトコル等に基づきパケット９０のフロー種別を判定する。
【０００５】
（２）フィルタリング処理：透過禁止のパケット９０を廃棄する。
（３）ルーティング処理：パケット９０が持つ宛先情報等に基づき、スイッチ１２０を経由してどのパケット処理装置１００ｚにパケット９０を転送すべきかを決定し、転送先を示す情報（内部タグ）をパケット９０に付与する。
【０００６】
（４）帯域制御処理：上記のクラシファイ処理で指定されたパケット種別毎にパケット流量の制御を行う。
スイッチ１２０は、パケット処理装置１００ｚ＿ｊから受信したパケット９０を、その内部タグが示す、例えばパケット処理装置１００ｚ＿ｋに転送する。
【０００７】
パケット処理装置１００ｚ＿ｋは、スイッチ１２０から受信したパケット９０に対して以下のエグレス（Ｅｇｒｅｓｓ）処理（１）、（２）を行った後、回線処理部１１０に転送する。
（１）フィルタリング処理：透過禁止のパケット９０を廃棄する。
（２）ルーティング処理：パケット９０が持つ宛先情報等に基づき、パケット９０を回線処理部１１０を経由して転送すべき物理回線１３０を決定し、転送先を指定する情報（内部タグ）をパケット９０に付与する。
【０００８】
回線処理部１１０＿ｋは、パケット処理装置１００ｚ＿ｋから受信したパケット９０を内部タグで指定された、例えば物理回線１３０＿ｋ１に回線信号として出力する。
図１４は、パケットを分散して処理する一般的なパケット処理装置１００ｚの構成を示している。このパケット処理装置１００ｚは、パケットを分散して処理することにより処理性能を向上させている。
【０００９】
パケット処理装置１００ｚは、前処理部１０ｚ、分散処理部２０ｚ＿１〜２０ｚ＿ｎ（以下、符号２０ｚで総称することがある。）、共有リソース部４０ｚ、及び後処理部３０ｚで構成されている。この構成は、イングレス処理を行うパケット処理装置１００ｚ及びエグレス処理を行うパケット処理装置１００ｚに共通の構成である。
【００１０】
前処理部１０ｚは、上流から受信したパケットを複数の分散処理部２０ｚ＿１〜２０ｚ＿ｎの内のいずれか１つに送出する。この分散のためのアルゴリズムは、例えば、各分散処理部２０ｚに対応した出力キュー（図示せず）を設け、この出力キューのキュー長を監視する方式、ラウンドロビン方式等がある。
【００１１】
また、前処理部１０ｚは、分散したパケットの順序を下流の後処理部３０ｚで再生できるように、各パケットにシーケンス番号を付与する。
分散処理部２０ｚは、受信したパケットに対する各種処理、例えば、編集処理、検索処理等を行い、処理を完了したパケットを後処理部３０ｚに与える。
【００１２】
共有リソース部４０ｚは、分散処理部２０ｚ＿１〜２０ｚ＿ｎで共有する検索エンジン、共有メモリ等のリソースであり、各分散処理部２０ｚからアクセスされる。
後処理部３０ｚは、各パケットに付与されたシーケンス番号に基づき、前処理部１０ｚに入力されたパケットの順序を再生した後、下流に転送する。
【００１３】
パケット処理装置１００ｚは、さらに、パケットが所定の帯域内にあるか否かを制御する帯域制御、すなわち、所定の帯域に違反しているパケットを廃棄するか、又はマーキング（タグ付け）する等の帯域制御を行う。
ここで、一般的な帯域制御の方式として、（１）ジャンピングウインドウ帯域制御方式、（２）スライディングウインドウ帯域制御方式、及び（３）ＧＣＲＡ（Ｇｅｎｅｒｉｃ　Ｃｅｌｌ　Ｒａｔｅ　Ａｌｇｏｒｉｔｈｍ）帯域制御方式を以下に説明する。
【００１４】
（１）ジャンピングウインドウ帯域制御方式
図１５にジャンピングウインドウ帯域制御方式を示す。この方式は、絶対時間上で区切られた一定の時間幅ＴｗのウインドウＷｎ−１，Ｗｎ，Ｗｎ＋１，Ｗｎ＋２（同図において、ウインドウ時間幅Ｔｗ＝時刻Ｔｎ−Ｔｎ−１＝時刻Ｔｎ＋１−Ｔｎ＝時刻Ｔｎ＋２−Ｔｎ＋１＝時刻Ｔｎ＋３−Ｔｎ＋２）の中でそれぞれ受信したパケットの総バイト数に基づき、帯域を評価する方式である。
【００１５】
この方式は、実装が容易であるが、例えば、過去のウインドウＷｎ−１の情報を次のウインドウＷｎに引き継ぐことが出来ない。例えば、ウインドウＷｎ−１で受信したパケットのバイト数＝“０”であり、次のウインドウＷｎの受信パケットの総バイト数が契約した規定値を超えた場合、ウインドウＷｎ−１とウインドウＷｎで受信したパケットの合計バイト数の平均が規定値を越えない場合においても、帯域違反と判定される。
【００１６】
（２）スライディングウインドウ帯域制御方式
図１６に、スライディングウインドウ帯域制御方式を示す。この方式は、例えば、パケットｆａ，ｆｂ，ｆｃが到着する毎に、その到着時点Ｔａ，Ｔｂ，Ｔｃから過去一定時間幅Ｔｗのウインドウ内で受信したパケットの総バイト数に基づき、帯域を評価する。
【００１７】
この方式は、帯域をダイナミックに評価することができるが、実装は難しい。
（３）ＧＣＲＡ帯域制御方式
図１５にＧＣＲＡ帯域制御方式を示す。この方式は、連続する２つのパケットの受信間隔に基づき、帯域を評価する方式であり、論理的には、リーキバケット（ＬｅａｋｙＢｕｃｋｅｔ）帯域制御方式と等価である。
【００１８】
ＧＣＲＡ帯域制御方式のアルゴリズムを以下に説明する。
ここで、ＴＡＴ＝パケットの論理到着時刻（Ｔｈｅｏｒｅｔｉｃａｌ　Ａｒｒｉｖａｌ　Ｔｉｍｅ）、Ｔ＝実際のパケット到着時刻（Ｔｉｍｅ）、Ｉ＝増加パラメータ（Ｉｎｃｒｅｍｅｎｔ　Ｐａｒａｍｅｔｅｒ）、Ｌ＝リミットパラメータ（Ｌｉｍｉｔ　Ｐａｒａｍｅｔｅｒ）、ｎ＝パケット長（Ｐａｃｋｅｔ　Ｌｅｎｇｔｈ）とする。この内のＩ，Ｌの値は予め設定されている。
【００１９】
▲１▼制御を開始した後、最初に受信したパケットは、無条件に帯域制御結果＝“適合”と判定し、次式（１）で次のＴＡＴを算出する。
ＴＡＴ＝Ｔ＋ｎＩ　　　　　　　　　・・・式（１）
▲２▼以後、パケット（長さｎ、到着時刻Ｔ）受信毎にＴＡＴとの比較を行い、“適合”又は“非適合”の判定及び次のＴＡＴの算出を行う。
【００２０】
（ａ）比較結果：ＴＡＴ＜Ｔ（時刻ＴＡＴより後にパケットを受信、同図（１）参照）である場合、帯域制御結果＝“適合”とし、次式（２）で時刻Ｔを基点として次のＴＡＴを算出する。
ＴＡＴ＝Ｔ＋ｎＩ　　　　　　　　　・・・式（２）
（ｂ）比較結果：ＴＡＴ−Ｌ≦Ｔ≦ＴＡＴである場合（時刻（ＴＡＴ−Ｌ）より後かつ時刻ＴＡＴ前にパケットを受信した場合、同図（２）参照）、帯域制御結果＝“適合”とし、現在のＴＡＴを基点として次式（３）で次のＴＡＴを算出する。
【００２１】
次のＴＡＴ＝現在のＴＡＴ＋ｎＩ　　　・・・式（３）
（ｃ）比較結果：Ｔ＜ＴＡＴ−Ｌである場合（時刻（ＴＡＴ−Ｌ）より前にパケットを受信した場合、同図（３）参照）、帯域制御結果＝“不適合”とし、次式（４）で次のＴＡＴを算出する。すなわち、ＴＡＴの更新を行わない。
【００２２】
次のＴＡＴ＝現在のＴＡＴ　　　　　　　　　　・・・式（４）
【００２３】
【発明が解決しようとする課題】
このような帯域制御を分散処理部２０ｚで行った場合、各分散処理部２０ｚにパケットが分散されるためパケットの連続性が保たれず、したがって、精度の高い帯域制御を行うことは出来なかった。そこで、従来の帯域制御は、（１）前処理部１０ｚで行う方式、又は（２）後処理部３０ｚで行う方式があった。
【００２４】
（１）前処理部で帯域制御を行う方式
この方式は、分散処理を行う前であるため、パケット間隔の揺らぎが少なく、精度の高い帯域制御ができるという利点がある。しかしながら、帯域制御を行うためには、それ以前にクラシファイ処理を行う必要があり、これに伴って処理情報が発生することにより帯域を圧迫する。
【００２５】
（２）後処理部で帯域制御を行う方式
この方式は、分散処理部２０ｚ若しくは共有リソース部４０ｚでクラシファイ処理を行うことができる利点がある。しかしながら、分散処理部２０ｚ若しくは共有リソース部４０ｚが、クラシファイ結果情報を後処理部３０ｚに通知ための情報が必要であるため帯域の圧迫を招く。
【００２６】
また、上流でパケットがフロー分散及び合流されているため、パケット間隔の揺らぎが大きくなり、帯域制御の精度が低くなる欠点がある。
従って本発明は、パケットの帯域を制御するパケット処理装置において、自装置の帯域を圧迫することなくパケットの帯域制御を行うこと、また精度の高いパケット帯域制御を行うことを課題とする。
【００２７】
【課題を解決するための手段】
上記の課題を解決するため、本発明のパケット処理装置は、受信したパケットを複数の出力端子の内のいずれか１つに送出する前処理部と、各出力端子にそれぞれ接続されて各出力端子からの該パケットを処理する複数の分散処理部と、各分散処理部に分散された各パケットの受信順序情報に基づき、該パケットの帯域制御を行う共有リソース部と、各分散処理部からのパケットを合流して出力する後処理部と、を備えたことを特徴としている（請求項１、付記１）。
【００２８】
本発明のパケット処理装置１００は、図１４に示した一般的なパケット処理装置１００ｚと基本的な構成は同じであり、従来の前処理部１０ｚ、分散処理部２０ｚ＿１〜２０ｚ＿ｎ、共有リソース部４０ｚ、及び後処理部３０ｚの代わりに、前処理部１０、ｎ個の分散処理部２０＿１〜２０＿ｎ（以下符号２０で総称することがある。）、共有リソース部４０、及び後処理部３０で構成されている。
【００２９】
本発明のパケット処理装置１００が従来のパケット処理装置１００ｚと基本的に異なる点は、共有リソース部４０が、各分散処理部２０に分散されたパケットの受信順序情報を収集し、この情報に基づきパケットの帯域制御を行うことである。
すなわち、前処理部１０は、受信したパケットを、複数の出力端子の内から、例えば、従来の所定のアルゴリズムで選択した１つの出力端子に送出する。
【００３０】
各分散処理部２０＿１〜２０＿ｎは、それぞれ前処理部１０の出力端子から受信したパケットの処理を行う。
共有リソース部４０は、分散処理部２０＿１〜２０＿ｎに分散されているパケットの受信順序情報に基づき、パケットが所定の帯域内にあるか否かを判定する帯域制御を行う。
【００３１】
後処理部３０は、分散処理部で処理されたパケットを合流して出力する。
従って、本発明のパケット処理装置は、帯域制御結果に基づき自装置における帯域を圧迫すること無く、例えば、帯域違反のパケットの廃棄、又は下流に対して帯域違反の通知、さらにはパケットの送信元に帯域違反通知等を行いパケットの帯域制御が実現できる。
【００３２】
このように、分散処理部に分散されているパケットの帯域制御を共有リソース部４０で行うことが可能になり、余分な処理情報や通知情報が不要であるため帯域を圧迫することなくパケットを帯域制御することが可能になる。
なお、上記のパケットの廃棄、及び帯域違反の通知等の処理は、本発明の帯域制御結果に基づき、例えば、分散処理部、後処理部その他等の所定の処理部で行われる。
【００３３】
また、本発明は、上記の本発明において、該受信順序情報を、パケットに付与された時間情報とすることができる（請求項２、付記２）。
すなわち、共有リソース部４０は、パケットに付与された時間情報（例えば、タイムスタンプ）に基づき、パケットの正確な時系列上の位置を判別し、帯域制御を行う。これにより、パケットに時間情報を付与した時点から帯域制御前までの間の処理で発生する時系列上のパケットの揺らぎを補正することが可能になり、精度の良い帯域制御が可能になる。
【００３４】
また、本発明は、上記の本発明において、該前処理部は、該時間情報をパケットに付与することができる（請求項３、付記３）。
また、本発明は、上記の本発明において、該分散処理部は、該時間情報をパケットに付与することができる（付記４）。
【００３５】
すなわち、時間情報（タイムスタンプ）を、前処理部１０又は分散処理部２０でパケットに付与することが可能である。なお、時間情報の時系列上の揺らぎは、時間情報が前処理部１０で付与された方が分散処理部２０で付与された方より少なく、正確な帯域制御ができる。
【００３６】
例えば、前処理部１０が最前段でパケットにタイムスタンプを付与した場合、前処理部１０の後段の処理や分散処理部２０の分散処理に起因するパケットの揺らぎに影響されることなく、共有リソース部４０はパケットが前処理部１０に到着した時刻に基づき正確な帯域制御を行うことが可能になる。
【００３７】
また、本発明は、上記の本発明において、該共有リソース部は、該時間情報に基づき、該パケットを時系列順に並びかえる順序補正処理部を備えることができる（付記５）。
すなわち、順序補正処理部は、例えば、各分散処理部２０に分散処理されたため、時系列上の順序が変わってしまったパケットの順序を、このパケットに付与された時間情報（タイムスタンプ）に基づき、元に戻す。
【００３８】
これにより、パケットを時系列順に処理することが可能になり、帯域制御が容易になる。
また、本発明は、上記の本発明において、該受信順序情報が、さらに、該前処理部がパケットに付加した、パケットの受信順序を示すシーケンス番号を含み、該共有リソース部が、該シーケンス番号に基づき、該パケットを時系列順に並びかえる順序補正処理部を備えることができる（請求項４、付記６）。
【００３９】
これによっても、パケットを時系列順に処理することが可能になり、帯域制御が容易になる。
また、本発明は、上記の本発明において、該共有リソース部は、ジャンピングウインドウ帯域制御方式、スライディングウインドウ帯域制御方式、及びＧＣＲＡ帯域制御方式の内のいずれか１つの方式で帯域制御することができる（付記７）。
【００４０】
すなわち、共有リソース部４０は、図１５に示したジャンピングウインドウ帯域制御方式、図１６に示したスライディングウインドウ帯域制御方式、又は図１７に示したＧＣＲＡ帯域制御方式で帯域制御してもよい。
また、本発明は、上記の本発明において、該共有リソース部は、パケットをフロー別に分類するクラシファイ処理部をさらに備え、フロー別に帯域制御を行うことが可能である（請求項５、付記８）。
【００４１】
また、本発明は、上記の本発明において、各分散処理部は、パケットをフロー別に分類するクラシファイ処理部をさらに備え、該共有リソース部はフロー別に帯域制御を行うことができる（付記９）。
また、本発明は、上記の本発明において、該前処理部は、パケットをフロー別に分類するクラシファイ処理部をさらに備え、該共有リソース部はフロー別に帯域制御を行うことができる（付記１０）。
【００４２】
すなわち、クラシファイ処理部６０を、共有リソース部４０、分散処理部２０、又は前処理部１０に配置する。クラシファイ処理部６０は、パケットをフロー別に分類し、共有リソース部４０がフロー別に帯域制御を実施する。
これにより、フロー別の帯域制御が可能になる。なお、クラシファイ処理部の配置位置は、最も帯域を圧迫しないところを選択すればよく、一般的に分散処理部２０にクラシファイ処理部を配置する方式が、クラシファイ処理が分散されるため帯域圧迫が少ない。
【００４３】
また、本発明は、上記の本発明において、該受信順序情報が、該パケットの受信順序を示すシーケンス番号であり、該共有リソース部が、該パケットを該シーケンス番号順に並び変える順序補正処理部と、該パケットが自分自身に入力された時刻を計時するタイマとをさらに備え、該時刻に基づき帯域制御することが可能である（付記１１）。
【００４４】
すなわち、受信順序情報として、パケットの受信順序を示すシーケンス番号を用いる。共有リソース部４０は、さらに、順序補正処理部及びタイマを備えている。順序補正処理部はパケットをシーケンス番号順に並び変え、タイマは、パケットが共有リソース部４０に入力した時刻を計時し、この時刻に基づき、共有リソース部４０はパケットの帯域制御を行う。
【００４５】
これによっても、共有リソース部４０は帯域制御を行うことができる。すなわち、パケットが分散処理部２０に分散した場合においても、パケットが共有リソース部４０に到着した時刻に基づき帯域制御を行うことが可能になる。
なお、この帯域制御では、パケットにタイムスタンプを付与する必要はない。
【００４６】
さらに、本発明は、上記の本発明において、該前処理部が、該パケットに該シーケンス番号を付加してもよい（付記１２）。
【００４７】
【発明の実施の形態】
図１は、本発明に係るパケット処理装置１００の実施例を示している。このパケット処理装置１００は、図１４で示した一般的なパケット処理装置１００ｚと同様に、前処理部１０、分散処理部２０＿１〜２０＿ｎ、後処理部３０、及び共有リソース部４０で構成されている。
【００４８】
図１では、共有リソース部４０が、特に詳細に示されており、この共有リソース部４０が、順序補正処理部５０、クラシファイ処理部６０、及び帯域制御処理部７０で構成されていることが特徴である。
図２は、図１に示した前処理部１０の実施例を示している。この前処理部１０は、タイマ１１と、受信したパケット９０にタイマ１１が示す時刻、すなわち、タイムスタンプ９０ｃを付加して出力するタイムスタンプ付与部１２と、パケット９０にさらにシーケンス番号９０ｄを付与したパケット９１を出力するシーケンス番号付与部１３とを備えている。
【００４９】
さらに、前処理部１０は、パケット９１をｎ本の出力端子の内のいずれかに出力する出力キュースイッチ１４と、出力キュースイッチ１４の各出力端子に接続され、出力キュースイッチ１４から与えられたパケット９１をキューイングするキュー１５＿１〜１５＿ｎ（以下、符号１５で総称することがある。）と、キュー１５のキューイング状態を検出し、例えば、キューイングされているバイト数が最も少ないキュー１５を検出し、このキュー１５に次のパケット９１を与える指示を出力キュースイッチ１４に与える出力キュー指示部１６とを備えている。
【００５０】
図３（１）は、前処理部１０に入力されるパケット９０のフォーマット例を示している。このパケット９０は、ペイロード９０ａ及びパケットヘッダ９０ｂ（例えば、ＩＰｖ４ヘッダ）で構成されている。
同図（２）は、出力キュースイッチ１４に与えられるパケット９１のフォーマット例を示している。このパケット９１は、同図（１）に示したパケット９０と、このパケット９０に付与されたタイムスタンプ９０ｃ及びシーケンス番号９０ｄとで構成されている。
【００５１】
図４は、図１に示した分散処理部２０の動作例を示している。分散処理部２０は、前処理部１０から受信したパケット９１＿２，９１＿４，９１＿７（以下、符号９１で総称することがある。）を順次受信し、これらのパケット９１にそれぞれ付与されたシーケンス番号９０ｄ、タイムスタンプ９０ｃ等から成る情報９２＿２，９２＿４，９２＿７（以下、符号９２で総称することがある。）を共有リソース部４０に与える。
【００５２】
図５は、分散処理部２０及び共有リソース部４０で伝送される各情報例を示している。同図（１）は、情報９２の構成例を示している。この情報９２は、シーケンス番号９０ｄ、タイムスタンプ９０ｃ、パケット長９０ｅ、及びパケット情報９０ｈで構成されている。パケット情報９０ｈは、パケット９１のクラシファイに必要な情報、例えば宛先ＩＰアドレス、送信元ＩＰアドレス、又はＬ４プロトコル等である。
【００５３】
また、分散処理部２０は、逆に、共有リソース部４０から帯域制御結果であるタグ情報９０ｇとシーケンス番号９０ｄとから成る情報９４＿２，９４＿４，９４＿７（以下、符号９４で総称することがある。）を受信する。図５（３）は、この情報９４のフォーマット例を示しており、この情報９４は、シーケンス番号９０ｄとタグ情報９０ｇで構成されている。
【００５４】
さらに、分散処理部２０は、パケット９１のタイムスタンプ９０ｃ（図３（２）参照）の代わりに、自パケット９１に付与されたシーケンス番号９０ｄと同じシーケンス番号９０ｄの情報９４のタグ情報９０ｇを付与したパケット９５を後処理部３０に与える。
図５（４）は、パケット９５のフォーマット例を示しており、このパケット９５は、パケット９０、シーケンス番号９０ｄ、タグ情報９０ｇで構成されている。同図（３）については後述する。
【００５５】
図６は、情報９２の受信順序を補正する実施例（１）を示しており、この実施例（１）では、各分散処理部２０が、前処理部１０から受信したパケット９１の受信順序と同じ順序で情報９２（図５（３）参照、図６では、シーケンス番号９０ｄのみを示す。）を順序補正処理部５０ａに与える。
【００５６】
順序補正処理部５０ａは、分散処理部２０＿１〜２０＿ｎにそれぞれ対応したキュー（ＦＩＦＯ）５１＿１〜キュー５１＿ｎ（以下、符号５１で総称することがある。）及びセレクタ５２で構成されている。
キュー５１は、分散処理部２０から受信した情報９２をＦＩＦＯで記憶し、セレクタ５２は、全各キュー５１の中から一番若いシーケンス番号９０ｄの情報９２を選択してクラシファイ処理部６０に与える。
【００５７】
これにより、前処理部１０に入力されたパケット９０の順序と同じ順序で対応するパケット９０の情報９２が、クラシファイ処理部６０に与えられる。
図７は、情報９２の受信順序を補正する実施例（２）を示しており、この実施例（２）では、各分散処理部２０は、実施例（１）と異なり、パケット９１が自装置２０に入力された順と異なる順でパケット９１に対応する情報９２を順序補正処理部５０ｂに与える。
【００５８】
例えば、分散処理部２０＿１は、シーケンス番号９０ｄがそれぞれ“４１”、“４２”、“４７”であるパケット９１＿１，９１＿２，９１＿７を順次受信し、そして、シーケンス番号９０ｄがそれぞれ“４７”、“４１”、“４２”である情報９２＿７，９２＿１，９２＿２を順序補正処理部５０ｂに与える。
【００５９】
分散処理部２０の内部処理が分散して行われているようなとき、このような順序保存されない場合が発生する。
なお、図６と同様に図７では、各パケット９１及び情報９２には、シーケンス番号９０ｄのみが示され、タイムスタンプ９０ｃ等は省略されている。
【００６０】
順序補正処理部５０ｂは、バッファ５３を備えており、このバッファ５３に分散処理部２０＿１〜２０＿ｎから受信した情報９２＿０，９２＿１〜９２＿８を、シーケンス番号９０ｄの順に並べて記憶する。そして、順序補正処理部５０ｂは、シーケンス番号９０ｄの順（４０，４１，…，４８，…）にバッファ５３から情報９２を読み出してクラシファイ処理部６０に与える。
【００６１】
なお、図６及び図７において、分散処理部２０又は順序補正処理部５０ａは、シーケンス番号９０ｄの代わりにタイムスタンプ９０ｃを用いてパケットの順序を補正してもよい。この場合、シーケンス番号９０ｄは不要である。
図８は、クラシファイ処理部６０の実施例を示している。このクラシファイ処理部６０は、ＣＡＭ（Ｃｏｎｔｅｎｔ　Ａｄｄｒｅｓｓ　Ｍｅｍｏｒｙ）アクセス制御部６１とＣＡＭ・ＲＡＭ部６２で構成されている。
【００６２】
ＣＡＭ・ＲＡＭ部６２には、パケット情報９０ｈに対応するフロー番号９０ｆが登録されている。
ＣＡＭアクセス制御部６１は、情報９２の内のクラシファイ用パケット情報９０ｈ（図５（１）参照）をＣＡＭ・ＲＡＭ部６２に与え、パケット情報９０ｈに対応するフロー番号９０ｆを読出し、情報９２の内のパケット情報９０ｈの代わりにフロー番号９０ｆを付加した情報９３を帯域制御処理部７０に与える。
【００６３】
この情報９３は図５（２）に示されている。この情報９３は、シーケンス番号９０ｄ、タイムスタンプ９０ｃ、パケット長９０ｅ、及びフロー番号９０ｆで構成されている。
帯域制御処理部７０の実施例（１）〜（３）を図９〜図１２を用いて以下に説明する。
図９は、帯域制御処理部７０の実施例（１）を示している。この実施例（１）では、特に、図１５で説明したジャンピングウインドウ帯域制御方式の帯域制御処理部７０ａを示している。
【００６４】
帯域制御処理部７０ａは、各フロー番号９０ｆに対応した許容バイト数７２＿１及び受信バイト数７２＿２を記憶するメモリ７１を備えている。許容バイト数７２＿１には、フロー番号９０ｆに対応したフローの許容バイト数（このバイト数は許容設定帯域に対応）が予め登録されており、受信バイト数７２＿２には、フロー番号９０ｆに対応したフローの一定時間Ｔに受信した受信バイト数が記憶される。受信バイト数の初期値は“０”である。
【００６５】
帯域制御処理部７０ａの動作手順を以下に説明する。なお、この動作手順は、フロー番号毎に実行される。
ステップＳ１０：帯域制御処理部７０ａは、フロー番号９０ｆをメモリ７１に与え、これに対応する許容バイト数７２＿１及び受信バイト数７２＿２を読み出す。
【００６６】
ステップＳ１１：処理部７０ａは、新たな受信バイト数７２＿２＝前の受信バイト数７２＿２＋パケット長（バイト数）９０ｅで更新し、この新たな受信バイト数７２＿２をステップＳ１０で与えたフロー番号９０ｆと同一のフロー番号に対応する受信バイト数７２＿２に書き込む。
【００６７】
ステップＳ１２：処理部７０ａは、新たな受信バイト数７２＿２と許容バイト数７２＿１を比較し、フローの設定許容帯域が守られている否かを判定し、判定結果をタグ付けした情報９４（図５（３）参照）を分散処理部２０に与える。
図５（３）の説明で述べたように、この情報９４は、シーケンス番号９０ｄとタグ情報９０ｇで構成されている。タグ情報９０ｇは、例えば、許容帯域が守られていることを示す“ＯＫ”又は許容帯域違反を示す“ＮＧ”で構成してもよいし、又は“緑”、“黄”、又は“赤”等のカラー情報で構成してもよい。
【００６８】
ステップＳ１３：帯域制御処理部７０ａは、受信したタイムスタンプ９０ｃを参照して一定時間Ｔ毎にメモリ７１にエントリされた全受信バイト数７２＿２をクリアする。
なお、タイムスタンプ９０ｃを用いずに、帯域制御処理部７０ａにタイマ（図示せず）を備え、このタイマに基づき一定時間毎に全受信バイト数７２＿２をクリアしてもよい。この場合、タイムスタンプ９０ｃの情報は不要である。
【００６９】
前処理部１０にパケット９０が入力した時刻を示したタイムスタンプ９０ｃに基づく帯域制御は、帯域制御処理部７０ｃに情報９３が入力した時刻に基づく帯域制御より、前処理部１０及び分散処理部２０における処理に起因する情報９３間の揺れがないため、精度のよい帯域制御が可能である。
【００７０】
図１０は、帯域制御処理部７０の実施例（２）を示している。この実施例（２）では、特に、図１６で説明したスライディングウインドウ帯域制御方式の帯域制御処理部７０ｂを示している。
帯域制御処理部７０ｂは、フロー番号９０ｆに対応した許容バイト数７３＿１及び受信バイト数７３＿２〜７３＿ｍを記憶するメモリ７１を備えている。許容バイト数７３＿１には、フロー番号９０ｆに対応したフローの許容バイト数（設定許容帯域に対応）が予め登録されている。
【００７１】
受信バイト数７３＿２〜７３＿ｍには、フロー番号９０ｆに対応した受信したフローの受信バイト数が記憶される。受信バイト数７３＿２〜７３＿ｍの初期値は“０”である。
帯域制御処理部７０ｂの動作手順を以下に説明する。なお、この動作手順は、フロー番号毎に実行される。
【００７２】
ステップＳ２０：帯域制御処理部７０ｂは、受信した情報９３のフロー番号９０ｆをメモリ７１に与え、許容バイト数７３＿１、及び受信バイト数７３＿２〜７３＿ｍを読み出す。
ステップＳ２１：処理部７０ｂは、新しい受信バイト数７３＿２＝前の受信バイト数７３＿２＋パケット長９０ｅ（バイト数）で更新し、新しい受信バイト数７３＿２をメモリ７１の受信バイト数７３＿２に書き込む。
【００７３】
ステップＳ２２：処理部７０ｂは、受信バイト数７３＿２〜７３＿ｍを合計し、この合計バイト数と許容バイト数を比較し、設定許容帯域が守られている否かを判定し、この判定結果をタグ付けした情報９４（図５（３）参照）を分散処理部２０に与える。
ステップＳ２３：処理部７０ｂは、受信した情報９３のタイムスタンプ９０ｃに基づき、一定時間間隔ｔ毎に受信バイト数をシフト（受信バイト数７３＿ｍ←受信バイト数７３＿（ｍ−１），…，受信バイト数７３＿３←受信バイト数７３＿２，受信バイト数７３＿２←“０”（クリア））する。
【００７４】
なお、受信バイト数７３＿２〜７３＿ｍの数（ｍ−１）は、シフトする時間間隔ｔとウインドウ時間幅Ｔｗとで決まる。
また、タイムスタンプ９０ｃを用いずに、帯域制御処理部７０ａにタイマを備え、このタイマに基づき一定時間毎にシフトしてもよい。この場合、タイムスタンプ９０ｃは不要であるが、帯域制御処理部７０ａに情報９３に到着した時刻に基づき元のパケット９０の帯域制御を行うことになり、実施例（１）と同様に帯域制御に揺れが発生する。
【００７５】
図１１は、帯域制御処理部７０の実施例（３）を示している。この実施例（３）では、特にＧＣＲＡ帯域制御方式の帯域制御処理部７０ｃを示している。
帯域制御処理部７０ｃは、各フロー番号９０ｆに対応した帯域設定情報７４＿１（Ｉ：増加パラメータ、Ｌ：リミットパラメータ）及び次パケット到着予定時刻７４＿２（ＴＡＴ：論理到着時刻）を記憶するメモリ７１を備えている。増加パラメータＩ及びリミットパラメータＬは予め登録されている。
【００７６】
次パケット到着予定時刻７４＿２には、図１７の説明で示した式（１）〜（４）で計算した論理到着時刻ＴＡＴが記憶される。論理到着時刻ＴＡＴの初期値は“０”である。
帯域制御処理部７０ｃの動作手順を以下に説明する。なお、この動作手順は、フロー番号９０ｆ毎に実行される。
【００７７】
ステップＳ３０：帯域制御処理部７０ｃは、受信した情報９３（図５（２）参照）のフロー番号９０ｆをメモリ７１に与え、フロー番号９０ｆに対応する帯域設定情報７４＿１及び次パケット到着予定時刻７４＿２を読み出す。
ステップＳ３１：処理部７０ｃは、タイムスタンプ９０ｃ（＝実際のパケット到着時刻Ｔ）と到着予定時刻７４＿２（論理到着時刻ＴＡＴ）を比較して設定許容帯域が守られているか否かを判定し、その判定結果をタグ付けした情報９４を作成する。
【００７８】
ステップＳ３２：処理部７０ｃは、パケット到着時刻Ｔの条件（図１７（１）〜（３）参照）に基づき選択した式（１）〜（４）の内のいずれか１つを選択し、選択した式で論理到着時刻ＴＡＴを計算する。さらに、処理部７０ｃは、計算結果を当該フロー番号９０ｆに対応するメモリ７１内の次パケット到着予定時刻７４＿２に書き込むと共に、情報９４（図５（３）参照）を分散処理部２０に与える。
【００７９】
図１２は、図１１に示した帯域制御処理部７０ｃのより詳細な動作を示している。この詳細動作を以下に説明する。
処理部７０ｃは、クラシファイ処理部６０から情報９３（フロー番号９０ｆ、パケット長（ｎ）９０ｅ、タイムスタンプ（Ｔ）９０ｃ、及びシーケンス番号９０ｄ、図５（２）参照）を受信する。
【００８０】
処理部７０ｃは、フロー番号９０ｆをメモリ７１に与え、帯域設定情報７４＿１（＝増加パラメータＩ、リミットパラメータＬ）及び次パケット到着予定時刻７４＿２（＝論理到着時刻ＴＡＴ）を読み出す。
乗算器７０１は、パケット長ｎと増加パラメータＩを乗算した積（ｎ×Ｉ）を出力する。加算器７０２は、パケット論理到着時刻ＴＡＴと積（ｎ×Ｉ）を加算した和（ＴＡＴ＋ｎ×Ｉ）を出力する。加算器７０３は、時刻Ｔと積（ｎ×Ｉ）を加算した和（Ｔ＋ｎ×Ｉ）を出力する。
【００８１】
減算器７０５は、論理到着時刻ＴＡＴとリミットパラメータＬとの差（ＴＡＴ−Ｌ）を出力し、比較器７０６は、差（ＴＡＴ−Ｌ）とＴを比較し、（ＴＡＴ−Ｌ）＜ＴであるときＳＥＬ１＝“１”を出力し、Ｔ≦（ＴＡＴ−Ｌ）であるときＳＥＬ１＝“０”を出力する。比較器７０７は、ＴＡＴとＴを比較し、ＴＡＴ＜ＴであるときＳＥＬ０＝“１”を出力し、Ｔ≦ＴＡＴであるときＳＥＬ０＝“０”を出力する。
【００８２】
セレクタ７０４は、（ＳＥＬ０，ＳＥＬ１）＝（０，０）、（０，１）、又は（１，１）のとき、それぞれ、“ＴＡＴ”、“ＴＡＴ＋ｎ×Ｉ”、又は“Ｔ＋ｎ×Ｉ”を選択して出力する。
この選択されデータは、メモリ７１内の次パケット到着予定時刻７４＿２に書き込まれる。
【００８３】
これにより、Ｔ≦（ＴＡＴ−Ｌ）のとき、次のＴＡＴ＝現在のＴＡＴ、（ＴＡＴ−Ｌ）＜Ｔ≦ＴＡＴであるとき、次のＴＡＴ＝ＴＡＴ＋ｎ×Ｉ、ＴＡＴ＜Ｔであるとき、次のＴＡＴ＝“Ｔ＋ｎ×Ｉ”とする。
ＯＲ回路７０８は、ＳＥＬ０及びＳＥＬ１の論理和演算を行い、帯域制御結果として、適合＝“１”又は非適合＝“０”を出力する。この帯域制御結果をタグ付けした情報９４は、分散処理部２０に送信される。
【００８４】
この後、帯域制御結果に基づき、パケット９１等の廃棄等の所定の制御が行われる。
（付記１）
受信したパケットを複数の出力端子の内のいずれか１つに送出する前処理部と、
各出力端子にそれぞれ接続されて各出力端子からの該パケットを処理する複数の分散処理部と、
各分散処理部に分散された各パケットの受信順序情報に基づき、該パケットの帯域制御を行う共有リソース部と、
各分散処理部からのパケットを合流して出力する後処理部と、
を備えたことを特徴とするパケット処理装置。
【００８５】
（付記２）上記の付記１において、
該受信順序情報は、パケットに付与された時間情報であることを特徴としたパケット処理装置。
（付記３）上記の付記２において、
該前処理部が、該時間情報をパケットに付与することを特徴としたパケット処理装置。
【００８６】
（付記４）上記の付記２において、
該分散処理部が、該時間情報をパケットに付与することを特徴としたパケット処理装置。
（付記５）上記の付記２において、
該共有リソース部が、該時間情報に基づき、該パケットを時系列順に並びかえる順序補正処理部を有することを特徴としたパケット処理装置。
【００８７】
（付記６）上記の付記２において、
該受信順序情報が、さらに、該前処理部がパケットに付加した、パケットの受信順序を示すシーケンス番号を含み、
該共有リソース部が、該シーケンス番号に基づき、該パケットを時系列順に並びかえる順序補正処理部を有することを特徴としたパケット処理装置。
【００８８】
（付記７）上記の付記１において、
該共有リソース部は、ジャンピングウインドウ帯域制御方式、スライディングウインドウ帯域制御方式、及びＧＣＲＡ帯域制御方式の内のいずれか１つの方式で帯域制御することを特徴としたパケット処理装置。
【００８９】
（付記８）上記の付記１において、
該共有リソース部は、パケットをフロー別に分類するクラシファイ処理部をさらに備え、フロー別に帯域制御を行うことを特徴としたパケット処理装置。
（付記９）上記の付記１において、
各分散処理部は、パケットをフロー別に分類するクラシファイ処理部をさらに備え、該共有リソース部がフロー別に帯域制御を行うことを特徴としたパケット処理装置。
【００９０】
（付記１０）上記の付記１において、
該前処理部は、パケットをフロー別に分類するクラシファイ処理部をさらに備え、該共有リソース部がフロー別に帯域制御を行うことを特徴としたパケット処理装置。
【００９１】
（付記１１）上記の付記１において、
該受信順序情報が、該パケットの受信順序を示すシーケンス番号であり、
該共有リソース部が、該パケットを該シーケンス番号順に並び変える順序補正処理部と、該パケットが自分自身に入力された時刻を計時するタイマと、をさらに備え、該時刻に基づき帯域制御することを特徴としたパケット処理装置。
【００９２】
（付記１２）上記の付記１１において、
該前処理部が、該パケットに該シーケンス番号を付加することを特徴としたパケット処理装置。
【００９３】
【発明の効果】
以上説明したように、本発明に係るパケット処理装置によれば、共有リソース部が、各分散処理部に分散された各パケットの受信順序情報（例えば、タイムスタンプ、シーケンス番号）に基づき、該パケットの帯域制御を行うように構成したので、自装置の帯域を圧迫することなくパケットの帯域制御を行うことが可能になる。
【００９４】
また、好ましくは前処理部が、受信したパケットにタイムスタンプを付与するようにしたので、精度の高いパケット帯域制御を行うことが可能になる。
【図面の簡単な説明】
【図１】本発明に係るパケット処理装置の実施例を示したブロック図である。
【図２】本発明に係るパケット処理装置における前処理部の実施例を示したブロック図である。
【図３】本発明に係るパケット処理装置における前処理部におけるパケットのフォーマット例を示した図である。
【図４】本発明に係るパケット処理装置における分散処理部の動作例を示した図である。
【図５】本発明に係るパケット処理装置における各情報のフォーマット例を示した図である。
【図６】本発明に係るパケット処理装置の分散処理部及び順序補正処理部における順序補正の実施例（１）を示したブロック図である。
【図７】本発明に係るパケット処理装置の分散処理部及び順序補正処理部における順序補正の実施例（２）を示したブロック図である。
【図８】本発明に係るパケット処理装置におけるクラシファイ処理部の実施例を示したブロック図である。
【図９】本発明に係るパケット処理装置における帯域制御処理部の実施例（１）を示したブロック図である。
【図１０】本発明に係るパケット処理装置における帯域制御処理部の実施例（２）を示したブロック図である。
【図１１】本発明に係るパケット処理装置における帯域制御処理部の実施例（３）を示したブロック図である。
【図１２】本発明に係るパケット処理装置の帯域制御処理部における実施例（３）をより詳細に示したブロック図である。
【図１３】一般的なパケット交換装置の構成を示したブロック図である。
【図１４】一般的なパケット処理装置の構成を示したブロック図である。
【図１５】一般的なジャンピングウインドウ帯域制御方式を示した図である。
【図１６】一般的なスライディングウインドウ帯域制御方式を示した図である。
【図１７】一般的なＧＣＲＡ帯域制御方式を示した図である。
【符号の説明】
１００，１００＿１〜１００＿ｋ，１００ｚ，１００ｚ＿１〜１００ｚ＿ｋ　パケット処理装置
１１０，１１０＿１〜１１０＿ｋ　　回線処理部　　　　　　　　　１２０　スイッチ
１３０，１３０＿１１〜１３０＿１ｉ，…，１３０＿ｋ１〜１３０＿ｋｉ　物理回線
１０，１０ｚ　　前処理部　　　　　　　　　　　　　　　　　　　　　１１　　タイマ
１２　タイムスタンプ付与部　　　　　　　　　　　　　　１３　シーケンス番号付与部
１４　出力キュースイッチ　　　　　　　　　　　　　　　　１５，１５＿１〜１５＿ｎ　キュー
１６　出力キュー指示部
２０，２０＿１〜２０＿ｎ，２０ｚ，２０ｚ＿１〜２０ｚ＿ｎ　　分散処理部
３０，３０ｚ　　後処理部　　　　　　　　　　　　　　　　　　　　　４０，４０ｚ　　共有リソース部
５０，５０ａ，５０ｂ　　順序補正処理部　　　　　　　　　　５１＿１〜５１＿ｎ　キュー
５２　セレクタ　　　　　　　　　　　　　　　　　　　　　　　　　　５３　バッファ
６０　クラシファイ処理部　　　　　　　　　　　　　　　　６１　ＣＡＭアクセス制御部
６２　ＣＡＭ・ＲＡＭ部
７０，７０ａ，７０ｂ，７０ｃ　　帯域制御処理部　　　　　７１　　メモリ
７２＿１　許容バイト数　　　　　　　　　　　　　　　　　　　　７２＿２　受信バイト数
７３＿１　許容バイト数　　　　　　　　　　　　　　　　　　　　７３＿２〜７３＿４　受信バイト数
７４＿１　帯域設定情報　　　　　　　　　　　　　　　　　　　　７４＿２　次パケット到着予定時刻
７０１　　乗算器　　　　　　　　　　　　　　　　　　　　　　　　　　　７０２，７０３　　加算器
７０４　　セレクタ　　　　　　　　　　　　　　　　　　　　　　　　　７０５　減算器
７０６，７０７　　比較器　　　　　　　　　　　　　　　　　　　　　　７０８　　ＯＲ回路
９０，９１，９１＿０，９１＿１〜９０＿８　パケット　　　　９０ａ　　ペイロード
９０ｂ　　パケットヘッダ　　　　　　　　　　　　　　　　　　　９０ｃ　タイムスタンプ
９０ｄ　　シーケンス番号　　　　　　　　　　　　　　　　　　　９０ｅ　パケット長
９０ｆ　　フロー番号　　　　　　　　　　　　　　　　　　　　　　　９０ｇ　タグ情報
９０ｈ　　パケット情報　　　　　　　　　　　　　　　　　　　　　９２，９２＿０，９２＿１〜９２＿８　情報
９３，９４　情報　　　　　　　　　　　　　　　　　　　　　　　　　　９５　パケット
ＴＡＴ　　パケット論理到着時刻　　　　　　　　　　　　　Ｔ　パケット到着時刻
Ｉ　　増加パラメータ　　　　　　　　　　　　　　　　　　　　　Ｌ　リミットパラメータ
ｎ　　パケット長
図中、同一符号は同一又は相当部分を示す。
【図１】
2004080102.tif 000003
【図２】
2004080102.tif 000004
【図３】
2004080102.tif 000005
【図４】
2004080102.tif 000006
【図５】
2004080102.tif 000007
【図６】
2004080102.tif 000008
【図７】
2004080102.tif 000009
【図８】
2004080102.tif 000010
【図９】
2004080102.tif 000011
【図１０】
2004080102.tif 000012
【図１１】
2004080102.tif 000013
【図１２】
2004080102.tif 000014
【図１３】
2004080102.tif 000015
【図１４】
2004080102.tif 000016
【図１５】
2004080102.tif 000017
【図１６】
2004080102.tif 000018
【図１７】
2004080102.tif 000019