(57)【特許請求の範囲】
【請求項１】
複数の入力回線からの可変長パケットを固定長パケットに分割するパケット分割部と、
複数の入力回線のそれぞれに対して設けられ、その各々が、複数の出力回線の各々について、指定可能なＱｏＳ（Quality of Service）クラス数よりも少数の相異なる優先度が与えられたキューを有し、対応する入力回線からの固定長パケットを、出力回線およびＱｏＳクラスに従って該キューのいずれかに登録する複数の入力バッファ部と、
入力バッファ部のキューに登録された固定長パケットを、キューに与えられた前記優先度に従って単位時間内では出力回線が同じである２以上の固定長パケットが読み出されないように読み出すスケジューラと、
スケジューラが読み出した固定長パケットの各々を複数の出力回線のうちの指定された１つにルーチングするスイッチと、
複数の出力回線のそれぞれに対して設けられ、スイッチから出力される固定長パケットからの可変長パケットの組み立ておよびＱｏＳクラスに基づく優先制御を行なうための複数の出力バッファ部とを具備し、
前記スケジューラは前記複数の入力回線の各々に対応させた複数のスケジューラ部からなり、単位時間内で、前記複数の入力バッファ部内のすべてのキューを、キューに与えられた優先度の順、入力回線の所定の順番、および出力回線の所定の順番で調べて、各出力回線へ出力する固定長パケットを該複数のスケジューラ部から１つずつ選択するものであって該複数のスケジューラ部の間で行うパイプライン制御は、１周期に該スケジューラ部の正順および逆順を考慮したパイプライン制御であって、かつ複数のパイプラインのシーケンス順序を入れ替えることによりそのパイプラインと同じパターンが同数現れるように行い、
同一の優先度、同一の入力回線のキューの中から固定長パケットを送出する出力回線を選択するにあたり、可変長パケットを構成する複数の固定長パケットの一部が送出済である出力回線に対応するキュー内の固定長パケットを他に優先して選択することを特徴とするパケットスイッチ。
【請求項２】
前記入力バッファ部の各々は、各出力回線について第１の優先度のキューおよび第２の優先度のキューを有し、
帯域保証クラスのパケットは第１の優先度のキューに登録され、
ベストエフォートクラスのパケットは第２の優先度のキューに登録され、
最低帯域保証クラスのパケットは第２の優先度のキューに登録され、
第２の優先度のキューは、最低保証帯域を超えて入力された最低帯域保証クラスのパケットとベストエフォートクラスのパケットとを廃棄するための第１の廃棄レベルと、第１の廃棄レベルより高く設定され最低保証帯域内で入力された最低帯域保証クラスのパケットを廃棄するための第２の廃棄レベルとを有する請求項１記載のパケットスイッチ。
【請求項３】
前記出力バッファ部の各々は、
入力回線の各々について、前記入力バッファ部における各出力回線に対するキューの数と同数のキューを有し、スイッチから出力される固定長パケットを入力回線に応じていずれかのキューに格納することによって固定長パケットから可変長パケットを組み立てる可変長パケット組立てバッファと、
指定可能なＱｏＳクラス数と同数のキューを有し、可変長パケット組立てバッファで組み立てられた可変長パケットをＱｏＳクラスに応じて対応するキューに登録し、パケット長およびＱｏＳクラスに応じて可変長パケットを順次読み出して対応する出力回線へ出力するＱｏＳ制御部とを含む請求項１記載のパケットスイッチ。
【請求項４】
前記出力バッファ部の各々は、
指定可能なＱｏＳクラス数と同数のキューを有し、スイッチから出力される固定長パケットをＱｏＳクラスに従っていずれかのキューに登録する固定長ベースＱｏＳ制御部と、
入力回線の各々について、指定可能なＱｏＳクラス数と同数のキューを有し、固定長ベースＱｏＳ制御部から出力される固定長パケットを入力回線およびＱｏＳクラスに従って対応するキューに登録して可変長パケットを組み立て、対応する出力回線へ送出する可変長パケット組立てバッファとを含む請求項１記載のパケットスイッチ。
【請求項５】
前記ＱｏＳ制御部は、
可変長パケットがキューの先頭に達したとき該キューの先頭に達した該可変長パケットのパケット長である第１の値を対応するトークンに加算する手段と、
単位時間が経過するごとにアクティブなＱｏＳクラスのトークンから第２の値を減算する手段と、
出力回線へのパケット送出が可能なとき、アクティブなＱｏＳクラスの中で、対応するトークンが最小もしくは０であるものの可変長パケットの読み出しを開始する手段とを含む請求項３記載のパケットスイッチ。
【請求項６】
前記第２の値は、アクティブなＱｏＳクラスのウェイトの総和に対する、個々のアクティブなＱｏＳクラスのウェイトの比に対応する値である請求項５記載のパケットスイッチ。
【請求項７】
前記第１の値は、キューの先頭に達した可変長パケットのパケット長とアクティブなＱｏＳクラスのウェイトの総和との積に対応する値であり、前記第２の値は、個々のアクティブなＱｏＳクラスのウェイトに対応する値である請求項５記載のパケットスイッチ。
【請求項８】
前記第１の値加算手段は、アクティブなＱｏＳクラスのウェイトの総和を単位時間が経過するごとにトークンに加算し、これをパケット長に対応する回数だけ繰り返すことによって第１の値の加算を達成する請求項７記載のパケットスイッチ。
【請求項９】
前記ＱｏＳ制御部は、
可変長パケットの固定長パケット数をＱｏＳクラスごとにカウントするカウンタと、
０でないカウント値を有するＱｏＳクラスを対象としてパケット長一定として優先して出力すべきパケットのＱｏＳクラスを決定して通知する優先制御部と、
優先制御部からの通知をＱｏＳクラスごとにカウントし、カウント値が対応するキューの先頭の可変長パケットのパケット長に相当する値に達したＱｏＳクラスについて、可変長パケットを読み出して出力回線へ送出する可変長パケット管理部とを含む請求項３記載のパケットスイッチ。
【請求項１０】
前記ＱｏＳ制御部は、
帯域保証クラスの可変長パケットおよび最低保証帯域内で入力された最低帯域保証クラスの可変長パケットの固定長パケット数をＱｏＳクラスごとにカウントする第１のカウンタと、
ベストエフォートクラスの可変長パケットおよび最低保証帯域を超えて入力された最低帯域保証クラスの可変長パケットの固定長パケット数をＱｏＳクラスごとにカウントする第２のカウンタと、
第１のカウンタについて０でないカウント値を有するＱｏＳクラスおよび第２のカウンタについて０でないカウント値を有するＱｏＳクラスを対象としてパケット長一定として優先して出力すべきパケットのＱｏＳクラスを決定して通知する優先制御部と、
優先制御部からの通知をＱｏＳクラスごとにカウントし、カウント値が対応するキューの先頭の可変長パケットのパケット長に相当する値に達したＱｏＳクラスについて、可変長パケットを読み出して出力回線へ送出する可変長パケット管理部とを含む請求項３記載のパケットスイッチ。
【請求項１１】
前記第２の値は、帯域保証分の第２の値とベストエフォート分の第２の値とを含み、
前記第２の値減算手段は、帯域保証クラスからのパケットの読出しがあるときトークンから帯域保証分の第２の値のみを減算し、帯域保証クラスからの読出しがないときトークンから帯域保証分の第２の値とベストエフォート分の第２の値を減算する請求項５記載のパケットスイッチ。
【請求項１２】
前記トークンは、帯域保証分のトークンとベストエフォート分のトークンを含み、前記第２の値は、帯域保証分の第２の値とベストエフォート分の第２の値を含み、
前記第２の値減算手段は、帯域保証分のトークンとベストエフォート分のトークンとから帯域保証分の第２の値とベストエフォート分の第２の値をそれぞれ減算し、
帯域保証分のトークンおよびベストエフォート分のトークンのいずれか一方に基づき読み出すパケットが選ばれたとき、選ばれたパケットについて他方のトークンに対して行なわれた減算量が次のパケットのトークンに繰り越される請求項５記載のパケットスイッチ。
【請求項１３】
請求項１に記載のパケットスイッチの前記出力バッファ部におけるスケジューリング装置であって、
指定可能なＱｏＳクラス数と同数のキューであって、可変長パケットをＱｏＳクラスに応じてそれぞれに登録し得るものと、
可変長パケットがキューの先頭に達したとき該キューの先頭に達した該可変長パケットのパケット長である第１の値を対応するトークンに加算する手段と、
単位時間が経過するごとにアクティブなＱｏＳクラスのトークンから第２の値を減算する手段と、
出力回線へのパケット送出が可能なとき、アクティブなＱｏＳクラスの中で、対応するトークンが最小もしくは０であるものの可変長パケットの読み出しを開始する手段とを具備するスケジューリング装置。
【請求項１４】
前記第２の値は、アクティブなＱｏＳクラスのウェイトの総和に対する、個々のアクティブなＱｏＳクラスのウェイトの比に対応する値である請求項１３記載のスケジューリング装置。
【請求項１５】
前記第１の値は、キューの先頭に達した可変長パケットのパケット長とアクティブなＱｏＳクラスのウェイトの総和との積に対応する値であり、前記第２の値は、個々のアクティブなＱｏＳクラスのウェイトに対応する値である請求項１３記載のスケジューリング装置。
【請求項１６】
前記第１の値加算手段は、アクティブなＱｏＳクラスのウェイトの総和を単位時間が経過するごとにトークンに加算し、これをパケット長に対応する回数だけ繰り返すことによって前記第１の値の加算を達成する請求項１５記載のスケジューリング装置。
【請求項１７】
請求項１に記載のパケットスイッチの前記出力バッファ部におけるスケジューリング装置であって、
指定可能なＱｏＳクラス数と同数のキューであって、可変長パケットをＱｏＳクラスに応じてそれぞれに登録し得るものと、
可変長パケットの固定長パケット数をＱｏＳクラスごとにカウントするカウンタと、
０でないカウント値を有するＱｏＳクラスを対象としてパケット長一定として優先して出力すべきパケットのＱｏＳクラスを決定して通知する優先制御部と、
優先制御部からの通知をＱｏＳクラスごとにカウントし、カウント値が対応するキューの先頭の可変長パケットのパケット長に相当する値に達したＱｏＳクラスについて、可変長パケットを読み出して出力回線へ送出する可変長パケット管理部とを含むスケジューリング装置。
【請求項１８】
請求項１に記載のパケットスイッチの前記出力バッファ部におけるスケジューリング装置であって、
指定可能なＱｏＳクラス数と同数のキューであって、可変長パケットをＱｏＳクラスに応じてそれぞれに登録し得るものと、
帯域保証クラスの可変長パケットおよび最低保証帯域内で入力された最低帯域保証クラスの可変長パケットの固定長パケット数をＱｏＳクラスごとにカウントする第１のカウンタと、
ベストエフォートクラスの可変長パケットおよび最低保証帯域を超えて入力された最低帯域保証クラスの可変長パケットの固定長パケット数をＱｏＳクラスごとにカウントする第２のカウンタと、
第１のカウンタについて０でないカウント値を有するＱｏＳクラスおよび第２のカウンタについて０でないカウント値を有するＱｏＳクラスを対象としてパケット長一定として優先して出力すべきパケットのＱｏＳクラスを決定して通知する優先制御部と、
優先制御部からの通知をＱｏＳクラスごとにカウントし、カウント値が対応するキューの先頭の可変長パケットのパケット長に相当する値に達したＱｏＳクラスについて、可変長パケットを読み出して出力回線へ送出する可変長パケット管理部とを含むスケジューリング装置。
【請求項１９】
前記第２の値は、帯域保証分の第２の値とベストエフォート分の第２の値とを含み、
前記第２の値減算手段は、帯域保証クラスからのパケットの読出しがあるときトークンから帯域保証分の第２の値のみを減算し、帯域保証クラスからの読出しがないときトークンから帯域保証分の第２の値とベストエフォート分の第２の値を減算する請求項１３記載のスケジューリング装置。
【請求項２０】
前記トークンは、帯域保証分のトークンとベストエフォート分のトークンを含み、前記第２の値は、帯域保証分の第２の値とベストエフォート分の第２の値を含み、
前記第２の値減算手段は、帯域保証分のトークンとベストエフォート分のトークンとから帯域保証分の第２の値とベストエフォート分の第２の値をそれぞれ減算し、
帯域保証分のトークンおよびベストエフォート分のトークンのいずれか一方に基づき読み出すパケットが選ばれたとき、選ばれたパケットについて他方のトークンに対して行なわれた減算量が次のパケットのトークンに繰り越される請求項１３記載のスケジューリング装置。
【請求項２１】
前記入力バッファ部および出力バッファ部の少なくとも一方のバッファ内に格納されているパケットの量のその閾値との差分にバッファの先頭に存在する可変長パケットのパケット長を乗じてその結果を出力する演算回路と、
カウンタと、
演算回路の演算結果をカウンタに加算する加算回路と、
カウンタの値が所定値を超えているときバッファの先頭に存在する可変長パケットを一度に廃棄し、前記パケット長に所定値を乗じた値をカウンタから減算する制御回路とを具備する可変長パケットの廃棄制御回路をさらに有する請求項１記載のパケットスイッチ。
【請求項２２】
前記入力バッファ部および出力バッファ部の少なくとも一方のバッファ内に格納されているパケットの量のその閾値との差分を出力する演算回路と、
カウンタと、
演算回路の演算結果をカウンタに加算する加算回路と、
カウンタの値が所定値を超えているときバッファの先頭に存在する固定長パケットを廃棄し、所定値をカウンタから減算する制御回路とを具備する可変長パケットの廃棄制御回路をさらに有する請求項１記載のパケットスイッチ。
【請求項２３】
前記複数の出力回線毎の出力バッファ部のバッファにおいて、
バッファに格納されている、マルチキャスト制御すべき可変長パケットのアドレスを登録するマルチキャストキューと、
複数の出力回線のそれぞれに対して設けられた複数の出力バッファキューと、
バッファに格納されている可変長パケットのアドレスを管理するアドレス管理テーブルと、
マルチキャスト制御すべき可変長パケットのアドレスがマルチキャストキューに登録されたとき、該可変長パケットのアドレスを含むレコードをその出力先の数だけアドレス管理テーブルに格納し、その出力先に対応する出力バッファキューに、該レコードのアドレスをそれぞれ登録する制御手段とを具備するマルチキャスト制御回路を有する請求項１記載のパケットスイッチ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＰ（Internet Protocol ）パケットのような可変長パケット（またはフレーム）のルーチングを行なうパケットスイッチ、特に、可変長パケットに対するＱｏＳ（Quality of Service）制御、廃棄制御、マルチキャスト制御といった複雑な制御を実現する大容量パケットスイッチ、それに用いることの可能なスケジューリング装置、廃棄制御回路、マルチキャスト制御回路およびＱｏＳ制御装置に関する。
【０００２】
【従来の技術】
近年、インターネットの急速な普及により、通信トラヒック需要が急増しており、Ｔｂｐｓ（テラビット／秒）クラス以上の高速・大容量のルータやスイッチの実現が望まれている。
従来、ＩＰパケットのような可変長パケットを処理するルータ装置において、パケットフォワーディング処理をハードウェア化することにより、高速化を図るアプローチが行われているが、ＱｏＳ制御、廃棄制御、マルチキャスト制御といった複雑な処理については、ソフトウェア処理、またはハードウェアで行う場合にも低速での処理に限られていた。またＡＴＭ（Asynchronous Transfer Mode）交換機においては、基本的に固定長パケット毎にＱｏＳ制御、廃棄制御、マルチキャスト制御が行われていた。
【０００３】
前者のルータ装置のようにソフトウェアベースの方式では、複雑な処理を実装することができるが、回線速度の高速化にともない、回線速度と同等の速度でソフトウェアの処理を実現することは困難となってきており、より高速・大容量の処理は困難となっていた。
後者のＡＴＭ交換機では、固定長パケット毎にＱｏＳ制御、廃棄制御、マルチキャスト制御を行うため、ＩＰパケットのような可変長パケット毎にＱｏＳ制御、廃棄制御、マルチキャスト制御する機能を持たない。またＧＦＲ（Guaranteed Frame Rate ）というＡＴＭにおいてＡＡＬ５の可変長パケット識別を利用して、可変長パケットレベルのＱｏＳ保証、廃棄制御を行うという試みも行われているが、この方式でも、パケットのスイッチング、転送単位はセルと呼ばれる固定長パケット単位であり、ネットワークを構成する全ノードをＡＴＭ交換機で実現する必要があり、ＩＰパケット単位でスイッチング、転送処理を行うパケットスイッチとして適用することはできない。
【０００４】
次に、ＱｏＳ制御に関しては、主に、使用帯域が予め規定されないベストエフォートクラスの可変長パケット間での公平な帯域分配方法として、ＷＦＱ（Weighted Fair Queueing）が知られている（A.K.Parekh, R.G.Gallager, "A Generalized Processor Sharing Approach to Flow Control in Integrated Service Networks: The Single-Node Case", IEEE/ACM trans. On Networking, Vol 1, No.3, pp.344-357, Jun. 1993; A.K.Parekh, R.G.Gallager, "A Generalized Processor Sharing Approach to Flow Control in Integrated Service Networks: The Multiple-Node Case", IEEE/ACM trans. On Networking, Vol 2, No.2, pp.137-150, Jun. 1993）。
【０００５】
ＷＦＱは、キューイングされているコネクションに設定されているウェイトに比例して余剰帯域を分配するＧＰＳ（Generalized Processor sharing ）を基本にしている。ＧＰＳでは、アクティブな（キューを使用している）任意のコネクション（ｉ）（ｊ）について常に式（１）が成立するように読出しデータ量を分配する帯域割り当て方式である。
【０００６】
Ｓ（ｉ，τ，ｔ）／Ｓ（ｊ，τ，ｔ）≧Φ（ｉ）／Φ（ｊ）  …（１）
ここで、Φ（Ｎ）はコネクションＮに対するウェイト、Ｓ（Ｎ，τ，ｔ）はコネクションＮに対して時間〔τ，ｔ〕の間にサービスされるデータ量である。また式（１）で等号が成り立つのはコネクション（ｉ）と（ｊ）のデータがともにキューイングされているときである。例えば、各コネクション＃０，＃１，＃２，＃３にそれぞれ、ウェイトを０．１：０．２：０．４：０．３の割合で与えておき、もし仮にコネクション＃３のみノンアクティブ（パケットがキューイングされていない）で、それ以外のコネクションがアクティブであるとき、コネクション＃３を除くコネクション＃０〜＃２のコネクションで、各々読出し帯域が０．１：０．２：０．４になるように帯域を分配する。
【０００７】
ＧＰＳは基本的に無限小のビット単位での帯域分配を意味するが、現実には分配単位が可変長パケット（フレーム）毎であるため、ＷＦＱではＧＰＳをフレームレベルの公平な帯域分配に拡張している。
ＷＦＱでは、フレーム到着時にフローｉのｋ番目のパケットが時刻ｔ（ｉ，ｋ）に到着し、そのフレーム長をＬ（ｉ，ｋ）としたときの終了予定時刻Ｆ（ｉ，ｋ）を式（２）で計算し、Ｆの小さい順から読み出す。
【０００８】
Ｆ（ｉ，ｋ）＝ｍａｘ｛Ｆ（ｉ，ｋ−１），ｔ（ｉ，ｋ）｝＋Ｌ（ｉ，ｋ）／ｒ（ｉ，ｋ）  …（２）
但し、ｒ（ｉ）＝Φ（ｉ）／ΣΦ×Ｒ、ここでΣΦはキューイングされているコネクションのウェイトの合計であり、Ｒは出力リンクのレートである。
ここで、ｒ（ｉ，ｋ）はパケットがキューから読み出される度に変化するため、全コネクションについてＦ（ｉ，ｋ）の再計算が必要となり、また、キューイングされている全パケットについて、終了予定時刻Ｆ（ｉ，ｋ）を保持しなければならないため、ハード規模が大きくなるという問題があった。そのため実時間の代わりにVirtual Time（キューイングされているコネクション数に応じて刻みの変化する時間カウンタ）を式（３）のように定義し、Ｆ（ｉ，ｋ）を式（４）のように再定義し、Virtual TimeをΣΦとＲが変化するたびに再計算し、Ｆ（ｉ，ｋ）については、パケット到着時に１回計算するのみで実現する方式が提案されている。
【０００９】
Ｖｔ＝Ｖ（τ）＋（Ｒ／ΣΦ）（ｔ−τ）  …（３）
Ｆ（ｉ，ｋ）＝ｍａｘ｛Ｆ（ｉ，ｋ−１），Ｖｔ（ｉ，ｋ）｝＋Ｌ（ｉ，ｋ）／Φ（ｉ）  …（４）
しかしながら、Virtual timeを用いると、演算量の削減が図れるが、実時間で処理する必要のある、転送レートが規定された帯域保証クラスのパケットとの間の優先度制御が困難となるという問題が生じていた。
【００１０】
廃棄制御に関しては、アダプティブな廃棄方式としてＲＥＤ（Random Early Detection）が知られている（Internet Society RFC2309）。これは、輻輳状態が同期してしまうことを防ぐため、輻輳状態になったらバッファが溢れる前に輻輳状態に応じた確率でランダムに廃棄を行う方式である。これにより、ＴＣＰ(Transmission Control Protocol）のような輻輳制御機能を持つプロトコルでは早めに送信レートを落とすことが出来、かつ全端末の動作が同期しないので安定したスループットが出るという特長を持つ。
【００１１】
しかしながら、ＲＥＤは、廃棄をランダムに行う必要があるためアルゴリズムが複雑でソフトウェアにより実装されており、高速化には向いていなかった。また、基本的に廃棄はフレーム（可変長パケット）到着時に行うため、その時点でバッファに溜まっているデータが全て掃けた後でないと廃棄が端末に通知されないという問題があった。
【００１２】
マルチキャスト制御に関しては、バッファアドレス管理方式として、従来では固定長パケットに対するパケットｂｙパケットの動作のみが実現されており、複数の固定長パケットの連続からなる可変長パケットを意識した制御は実現されていない。
【００１３】
【発明が解決しようとする課題】
したがって本発明の目的は、可変長パケットに対して、高速かつ少ないハードウェア規模でＱｏＳ制御、廃棄制御、マルチキャスト制御といった複雑な制御を実現する大容量パケットスイッチ、それに用いることの可能なスケジューリング装置、廃棄制御回路、マルチキャスト制御回路およびＱｏＳ制御装置を提供することにある。
【００１４】
【課題を解決するための手段】
本発明によれば、複数の入力回線からの可変長パケットを固定長パケットに分割するパケット分割部と、複数の入力回線のそれぞれに対して設けられ、その各々が、複数の出力回線の各々について、指定可能なＱｏＳ（Quality of Service）クラス数よりも少数の相異なる優先度が与えられたキューを有し、対応する入力回線からの固定長パケットを、出力回線およびＱｏＳクラスに従って該キューのいずれかに格納する複数の入力バッファ部と、入力バッファ部のキューに格納された固定長パケットを、キューに与えられた優先度に従って単位時間内では出力回線が同じである２以上の固定長パケットが読み出されないように読み出すスケジューラと、スケジューラが読み出した固定長パケットの各々を複数の出力回線のうちの指定された１つにルーチングするスイッチと、複数の出力回線のそれぞれに対して設けられ、スイッチから出力される固定長パケットからの可変長パケットの組み立ておよびＱｏＳクラスに基づく優先制御を行なうための複数の出力バッファ部とを具備するパケットスイッチが提供される。
【００１５】
本発明によれば、指定可能なＱｏＳクラス数と同数のキューであって、可変長パケットをＱｏＳクラスに応じてそれぞれに登録し得るものと、可変長パケットがキューの先頭に達したとき第１の値を対応するトークンに加算する手段と、単位時間が経過するごとにアクティブなＱｏＳクラスのトークンから第２の値を減算する手段と、出力回線へのパケット装置が可能なとき、アクティブなＱｏＳクラスの中で、対応するトークンが最小もしくは０であるものの可変長パケットの読み出しを開始する手段とを具備するスケジューリング装置もまた提供される。
【００１６】
本発明によれば、指定可能なＱｏＳクラス数と同数のキューであって、可変長パケットをＱｏＳクラスに応じてそれぞれに登録し得るものと、帯域保証クラスの可変長パケットおよび指定帯域内で入力された最低帯域保証クラスの可変長パケットの固定長パケット数をＱｏＳクラスごとにカウントする第１のカウンタと、ベストエフォートクラスの可変長パケットおよび指定帯域を超えて入力された最低帯域保証クラスの可変長パケットの固定長パケット数をＱｏＳクラスごとにカウントする第２のカウンタと、第１のカウンタについて０でないカウント値を有するＱｏＳクラスおよび第２のカウンタについて０でないカウント値を有するＱｏＳクラスを対象としてパケット長一定として優先して出力すべきパケットのＱｏＳクラスを決定して通知する優先制御部と、優先制御部からの通知をＱｏＳクラスごとにカウントし、カウント値が対応するキューの先頭の可変長パケットのパケット長に相当する値に達したＱｏＳクラスについて、可変長パケットを読み出して出力回線へ送出する可変長パケット管理部とを含むスケジューリング装置もまた提供される。
【００１７】
本発明によれば、バッファ内に格納されているパケットの量のその閾値との差分にバッファの先頭に存在する可変長パケットのパケット長を乗じてその結果を出力する演算回路と、カウンタと、演算回路の演算結果をカウンタに加算する加算回路と、カウンタの値が所定値を超えているときバッファの先頭に存在する可変長パケットを一度に廃棄し、前記パケット長に所定値を乗じた値をカウンタから減算する制御回路とを具備する可変長パケットの廃棄制御回路もまた提供される。
【００１８】
本発明によれば、バッファ内に格納されているパケットの量のその閾値との差分を出力する演算回路と、カウンタと、演算回路の演算結果をカウンタに加算する加算回路と、カウンタの値が所定値を超えているときバッファの先頭に存在する固定長パケットを廃棄し、所定値をカウンタから減算する制御回路とを具備する可変長パケットの廃棄制御回路もまた提供される。
【００１９】
本発明によれば、バッファに格納されている、マルチキャスト制御すべき可変長パケットのアドレスを格納するマルチキャストキューと、複数の出力回線のそれぞれに対して設けられた複数の出力バッファキューと、バッファに格納されている可変長パケットのアドレスを管理するアドレス管理テーブルと、マルチキャスト制御すべき可変長パケットのアドレスがマルチキャストキューに格納されたとき、該可変長パケットのアドレスを含むレコードをその出力先の数だけアドレス管理テーブルに格納し、その出力先に対応する出力バッファキューに、該レコードのアドレスをそれぞれ格納する制御手段とを具備するマルチキャスト制御回路もまた提供される。
【００２０】
本発明によれば、ＱｏＳクラスを有する可変長パケットをスイッチングするパケットスイッチにおいて、複数のＱｏＳクラスを簡易な優先度クラスにマッピングする手段と、簡易な優先度クラスに基づいて、前記可変長パケットの読み出し制御を行う手段を備えたことを特徴とするパケットスイッチもまた提供される。
本発明によれば、ＱｏＳクラスを有するＩＰパケットを固定長パケットへ変換し、固定長パケット単位でスイッチングするパケットスイッチにおいて、ＩＰパケットの優先度クラスを、ＩＰパケットに割り当てられるＱｏＳクラスの数より少ない数の簡易な優先度クラスにマッピングする手段と、簡易な優先度クラスに基づいて、前記固定長パケットの読み出し制御を行う手段を備えたことを特徴とするパケットスイッチもまた提供される。
【００２１】
本発明によれば、ＱｏＳクラスを有するＩＰパケットを固定長パケットへ変換し、固定長パケット単位でスイッチングするパケットスイッチにおいて、ＩＰパケットの優先度クラスを、ＩＰパケットに割り当てられるＱｏＳクラスの数より少ない数の簡易な優先度クラスにマッピングする手段と、簡易な優先度クラスに基づいて、前記固定長パケットをスイッチへ読み出し制御を行う手段と、スイッチング後の前記固定長パケットを、ＩＰパケットに割り当てられるＱｏＳクラスに基づいて読み出し制御する手段を備えたことを特徴とするパケットスイッチもまた提供される。
【００２２】
本発明によれば、高優先グループに属する１つ以上のＱｏＳクラスの中からパケットを読み出すべき１つのＱｏＳクラスを選択する第１の選択部と、低優先グループに属する１つ以上のＱｏＳクラスの中からパケットを読み出すべき１つのＱｏＳクラスを選択する第２の選択部と、高優先グループと低優先グループのいずれか一方を選択し、それによって第１または第２の選択部が選択したＱｏＳクラスのパケットを選択する第３の選択部とを具備するＱｏＳ制御装置もまた提供される。
【００２３】
【発明の実施の形態】
図１に本発明の一実施形態に係るパケットスイッチを概念的に示す。入力回線から入力された可変長パケットは、パケット分割部１０において固定長パケットに分割され入力バッファ部１２にバッファリングされる。入力バッファ部１２は、Ｎ本の入力回線数分あり、各入力バッファは論理的にＭ本の出力回線毎、およびＱｏＳ毎（帯域保証クラス１１、ベストエフォートクラス１７）に分かれている。各入力回線より入力バッファ部１２へ入力されたパケットは各々対応する出力回線毎、ＱｏＳ毎にバッファリングされる。この際、ＱｏＳクラスを予め契約や呼受け付け制御により入力トラヒック量の予想可能な帯域保証クラスと、契約や呼受け付け制御がなく入力トラヒック量の予想ができないベストエフォートクラスの２クラスのいずれかに縮退して割り当てる。
【００２４】
入力バッファ部１２にバッファリングされた各パケットは、回線間スケジューラ１４により、スイッチ部１６への送出タイミングが調整される。この際、回線間スケジューラ１４では、はじめに出力回線毎にバッファリングされたパケットのうち帯域保証クラスのパケットについて、複数の入力回線で同一の出力回線を選択しないように出力回線を選択する、競合制御を行う（図１：１３）。次にベストエフォートクラスのパケットについて、このとき選択されなかった出力回線について、同様に複数の入力回線で同一の出力回線を選択しないように競合制御を行う（図１：１５）。以上のような回線間スケジューリング動作を単位時間内、例えば、１つの出力回線で固定長パケット１個に相当するデータを送出するに要する時間内で実施する。これにより、各入力回線間の論理出力バッファ毎、ＱｏＳクラス毎の競合制御のもとで各入力バッファから出力されるパケットが選択され、スイッチ部１６へ転送される。転送されたパケットはスイッチ部１６でパケットに付与されたあて先情報を元に各出力バッファ部１８へスイッチングされる。
【００２５】
出力バッファ部１８に入力した各パケットは、実際のＱｏＳクラス毎（通常３クラス以上）にバッファリングされる。出力バッファ部１８では、各出力回線内の各ＱｏＳクラス毎のＱｏＳ制御（設定レートや優先順位に応じた読み出し順序制御）を行い、各出力回線にパケットを出力する。
ここでは、入力バッファ部１２でのＱｏＳクラス数を帯域保証クラスとベストエフォートクラスの２クラスに縮退させている。これにより、多数のキュー間（入力回線数×出力回線数×ＱｏＳクラス数（３以上））での競合制御を入力回線数×出力回線数×２に削減できる。
【００２６】
一般にＱｏＳ制御としては、単純な優先制御だけでなく、読み出しレートなどの複雑な読み出し順序の制御が必要であるが、ＱｏＳクラスを帯域保証クラスとベストエフォートクラスに縮退させ、帯域保証クラスをスケジューリングしてからベストエフォートクラスをスケジューリングすることによりスケジューリング処理を簡単化している。
【００２７】
さらに、スイッチの内部動作速度を入力バッファの到着速度より高め、スイッチング後の出力バッファ１８において、実際のＱｏＳクラス毎のＱｏＳ制御を行うことにより、パケットスイッチトータルとしてのＱｏＳ制御ポイントを出力バッファ部のＱｏＳ制御に集約できる。この際、出力バッファ部では、各出力回線毎のＱｏＳクラス制御のみ行えば良いことから、スイッチ全体のＱｏＳ制御が必要な入力バッファ部で行う場合に比べ、必要なハードウェアの量は少ない。
【００２８】
図１のパケットスイッチで採用されている、出力回線毎の論理キューを持つ入力バッファ型スイッチでは、ほぼ１００％のスループットが実現されるので、予めトラヒック量が予想できるクラスに対しては、入力バッファ側におけるパケットの廃棄率や遅延時間を出力バッファ側におけるＱｏＳ制御によって生じるパケット廃棄率や遅延時間に比べて非常に小さくできる。スイッチ内部の動作速度を高めることにより、これらはさらに小さくすることができる。したがって、入力側で複数のＱｏＳクラスを２クラスにマッピングしても実質的に問題ない。
【００２９】
図２および図３にそれぞれ本発明における可変長パケットフォーマットの一例、および可変長パケットを複数の固定長パケットに分離するときの固定長パケットのフォーマットの一例を示す。また、表１および表２にはそれぞれ、図２および図３における各フィールドの説明を示す。ここでは、可変長パケットとしてＩＰｖ４フォーマット（Internet Society RFC791 ）を用いている。但し、宛先アドレスのような、それによって各パケットのフローまたはコネクションを識別できる情報要素、およびＱｏＳクラス値が含まれているパケットであれば、どのようなフォーマットでも良い。ここでＱｏＳクラス値は、パケット中に記述されたＱｏＳクラス値ではなく、フローやコネクションに対して予め設定されたテーブルからＱｏＳクラスを変換して求めても良い。固定長パケットも同様に装置内部ローカルなパケットであるため、必要な情報要素が含まれていれば、フォーマットはどのようなフォーマットでも良い。
表１
Ｖｅｒｓ                                バージョン番号
ＩＨＬ                                  ヘッダ長
Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ          優先度
Ｔｏｔａｌ  Ｌｅｎｇｔｈ                ＩＰｖ４ペイロード長
Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ            フラグメントＩＤ
Ｆｌａｇｓ                              フラグ
Ｆｌａｇｍｅｎｔ  Ｏｆｆｓｅｔ          フラグメントオフセット
Ｔｉｍｅ  ｔｏ  Ｌｉｖｅ                ホップ期限
Ｐｒｏｔｏｃｏｌ                        プロトコル
Ｈｅａｄｅｒ  Ｃｈｅｃｋｓｕｍ          ヘッダチェックサム
Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ            送信元アドレス
Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ  あて先アドレス
Ｐａｙｌｏａｄ                          ペイロード
表２
ＥＮ      空きセル識別子（０：空きセル、１：有効セル）
Ｃ        マルチキャスト識別子
ＱＣＰ    Ouality of Service：品質クラス識別子
ＣＩＤ    コネクション識別子
ＰＫＬ    ペイロード長
Ｆ        タギングフラグ（０：高優先クラス、１：低優先クラス）
ＦＲＩ    フレームタイプ（００：中間、０１：先頭、１０：最終、１１：先頭＆最終）
図４に図１のスイッチ部１６の入力側におけるスケジューリングを実現する具体的な構成を示す。図４の入力バッファ部のスケジューラ構成において、入力されたフレームは、ポリシング制御部２０において、予め設定されたレート以上のものについてはタギングされる。タギング情報はフレーム毎に付与され、別線、または図２の可変長パケットフォーマットに内部ヘッダを追加してそこにビットを付与することにより後段に転送される。パケット分割部１０では入力された可変長パケットを一定長のセグメントに分割する。ヘッダ付与部２２では、ヘッダ変換テーブル２４の情報をもとに各セグメントに各種ヘッダ情報を付与して図３の固定長パケットを組み上げる。
【００３０】
ここで、ＱｏＳクラスに関しては、予めコネクション毎、またはフロー毎に設定されたＱｏＳクラス（例えば４クラス）のテーブルを参照しＱＣＰビットに０〜３の値を付与するとともに、これらのＱｏＳクラスをさらに帯域保証クラスとベストエフォートクラスの２クラスにマッピングする。この２クラスにマッピングされたＱｏＳクラスを縮退ＱｏＳクラスと呼ぶことにする。入力バッファ部１２、およびスケジューラ部２５ではこの縮退ＱｏＳクラスと出力回線番号情報に基づき、それぞれパケットのキューイング、パケット読み出しのスケジューリングを行う。
【００３１】
ここで、スケジューラ部２５では、後段のマトリックススイッチ部へ入力される全パケットについて、効率良くしかも同一の出力回線を持つパケットが同時に転送されないようにスケジューリングを行う。さらにこの競合制御時に縮退ＱｏＳクラスに応じて、初めに帯域保証クラスについてスケジューリングを行い、次に帯域保証クラスのスケジューリングで選択されなかった入力回線と出力回線についてベストエフォートクラスについてスケジューリングを行う。スケジューリング処理の具体的な例については後に詳しく説明する。
【００３２】
図５は、スケジューラの正順、逆順を考慮したパイプラインの８回線について帯域保証クラス、ベストエフォートクラスをスケジューリングした場合のパイプラインのシーケンスである。
図５に示した例では、パイプラインのシーケンス順序を入れ替えることにより、１周期に正順、逆順を考慮したパイプラインと同じパターンが同数現れるようになっており、入力回線間の公平性を保証している。さらに同一時間に同一入力回線に対する処理の競合を避けることになり、同じ処理をしなければならないハード処理量を削減している。
【００３３】
尚、スケジューリングアルゴリズムについては、帯域保証クラスの方がベストエフォートクラスより優先度が高くなれば、他のアルゴリズムを用いても良い。
以上のようなスケジューリング処理により決定されたパケットは入力バッファ部からよみだされ、マトリックススイッチにおいて、出回線情報にもとづいてスイッチングされる。このとき、マトリックススイッチのスイッチング速度を各回線のデータレートの総和より大きく（内部速度アップという）することにより、入力バッファ部の廃棄遅延特性の向上を図り、入力バッファ部における競合によりスイッチトータルとしての品質が劣化するのを抑制してもよい。
【００３４】
スイッチングされた固定長パケットは一旦出力バッファ部にキューイングされる（図１：１８）。この際、後に説明するように、可変長パケットへ戻してからＱｏＳ制御を行なうか、または先に固定長パケットのままでＱｏＳ制御を行ってから可変長パケット組立てを行っても良い。
以上のような一連の処理により、入力バッファ側では、縮退した２クラスのみ簡易なＱｏＳ制御を行いながら、出力バッファ側で３クラス以上のＱｏＳ制御を行うことにより、スイッチトータルとして、３クラス以上のＱｏＳ制御を可能としている。
【００３５】
上記は、入力可変長パケットを一旦固定長パケットに分割して行っているが、スケジューラ部において、可変長パケットの連続性を崩さない選択を行うことにより、実質的に可変長パケットのままでスイッチング処理を行なうようにしても良い。
図６は、入力バッファ部１２において、1 ＱｏＳクラス内に帯域保証が必要な最低保証レート分と帯域保証が不要だがトラヒック量が予測できないベストエフォート分を合わせ持つ、最低帯域保証クラスを収容する手法の一例を示す。最低帯域保証クラスを収容する際、最低帯域保証クラスのパケットもベストエフォートクラスのキュー１７にバッファリングする。但し、キューの前段のポリシング制御部２６において、最低帯域保証クラスに対して、最低保証レートを超えて入力されるパケットに対してはタギングを行っておき、タギングなしのパケットの廃棄閾値θ3 に対して、タギングありのパケットとベストエフォートクラスのパケットに対する、使用可能なキューのしきい値θ2 を低く設定する。
【００３６】
これにより最低帯域保証クラスを含む場合についても２クラスにマッピングすることが可能になる。この際、最低帯域保証クラスの最低保証レート内で入力されるパケットの廃棄閾値θ3 を帯域保証クラスのパケットの廃棄閾値θ1 と等しく設定して、帯域保証クラスと同等の品質保証を可能としても良い。また最低帯域保証クラスの最低保証レートを超えて入力されるパケットについては、同じベストエフォートクラスにマッピングされる。
【００３７】
図７にフローチャートを示す。入力バッファ部において、到着パケットが最低帯域保証クラスのときに、ベストエフォートクラスとしてキューイングしておき、その際図７のようにタギング情報に基づいた廃棄制御を行うことにより、扱うクラス数を増やさずに帯域保証クラスの品質保持を可能としている。
図８および９に出力バッファ部１８の構成の２つの例を示す。出力バッファ部１８には複数の入力回線からのパケットが混在した状態で到着する。この混在した状態をパケットインタリーブまたは単にインタリーブという。従って、出力バッファ部１８でこのインタリーブされた複数の固定長パケットを組立て、元の可変長パケットに戻してから、出力回線よりパケットを送出する必要がある。さらにＱｏＳ保証するためには、予め設定されたレートや優先度に応じた順序でパケットが送出されなければならない。
【００３８】
図８の例では、出力バッファ部にインタリーブして到着した固定長パケットを可変長パケット組立てバッファ２８に一旦バッファリングし、元の可変長パケットに戻す。この際インタリーブして到着したパケットは、複数の入力回線のものからのものが混在しており、さらに同一入力回線内でも入力回線側でＱｏＳクラス制御をした場合には、複数のクラスからのパケットが混在する。前述の例ではこのＱｏＳクラス数は２クラスとなる。従って、入力回線数（Ｎ）×入力回線側のＱｏＳクラス数（ｅｘ．２）個のキューを用意し、インタリーブして到着した固定長パケットを一旦バッファリングし、元の可変長パケットを組立てる。
【００３９】
可変長パケットが組立て終わったら、ＱｏＳクラス（ｅｘ．４クラス）に応じて、可変長ベースＱｏＳ制御部３０に転送し、可変長ベースＱｏＳ制御部３０において、パケット長を考慮したＱｏＳ制御を行うことにより、予め設定されたレートや優先度に応じた順序でパケットを出力回線より転送する。
図９の例では、出力バッファ部にインタリーブして到着した固定長パケットのままで、固定長ベースＱｏＳ制御部３２においてバッファリングし、予め設定されたレートや優先度に応じた順序でパケットを後段の可変長パケット組立て部に転送する。この場合のＱｏＳ制御はパケット長が固定であるので容易である。
【００４０】
後段の可変長パケット組立てバッファ３４には入力回線毎および、出側でのＱｏＳクラス毎にパケットがインタリーブされた状態で到着するので、入力回線数（Ｎ）×出側のＱｏＳクラス数（ｅｘ．４）個のキューを用意し、インタリーブして到着した固定長パケットを一旦バッファリングし、元の可変長パケットを組立て、パケットが組みあがった順番に出力回線より可変長パケットを転送する。
【００４１】
図１０は図８をより詳しくした図である。可変長パケット組立てバッファ２８に到着するパケットは、異なる入力回線、異なる縮退ＱｏＳクラスのものがインタリーブして到着するので、可変長パケット組立てバッファ２８では、入力回線毎、縮退ＱｏＳクラス毎にキューイングする。可変長パケット管理部３６では、各パケットに付与された可変長パケットの先頭、末尾の情報より１可変長パケット分のパケットを監視し、１可変長パケット分が組みあがったら、可変長パケット送信通知をだし、１可変長パケット分連続的に後段へ転送する。この際、実際のパケット内の情報を転送するのではなく、バッファに書きこまれたアドレス、およびアドレスチェーン情報のみをコピーしてもよい。さらに後段のＱｏＳ制御部３０では、ＱｏＳクラス数分のバッファを用意しておき、到着パケットをＱｏＳクラス（ｅｘ．４クラス）毎にキューイングする。ＱｏＳスケジューリング部３８では、キューへ書きこまれた、パケットのＱｏＳクラスやフレーム長を監視し、パケット長や予め設定されたレートやウェイト、優先度に応じて読み出し順序の競合制御を行い、読み出し可能となったＱｏＳクラスに対して出力回線への送出を指示する。
【００４２】
図１１は出力回線がさらに複数の低速回線へＤＭＵＸ（分離）される場合を示す。可変長パケット組立てバッファ２８の処理は同じであるが、ＱｏＳ制御部３０において、ＱｏＳクラス毎のキューを論理出方路（ＤＭＵＸ）分保持しており、ＱｏＳスケジューリング部３８において、各ＤＭＵＸ中の各ＱｏＳクラスキューからの読み出しがＤＭＵＸの帯域を超えないように制御する。ここで、各ＤＭＵＸへのタイムスロットを割り当て、タイムスロットに対応するＤＭＵＸキュー内の各ＱｏＳクラスについてＱｏＳスケジューリングを行う。
【００４３】
図１２では図９の構成において、図１１と同様に複数の低速回線へＤＭＵＸ（分離）されるとともに、ＱｏＳ制御部と可変長パケット組立てバッファの論理的な配備位置が逆になっている。このため、ＱｏＳ制御部３２では、ＱｏＳクラス毎、ＤＭＵＸ毎にキューイングし、固定長パケットのまま各ＤＭＵＸ中の各ＱｏＳクラスキューからの読み出しがＤＭＵＸの帯域を超えないように行なわれてＱｏＳスケジューリングを行う。また可変長パケット組立て部３４には、入力回線毎、ＱｏＳクラス毎、ＤＭＵＸ毎にキューイングしておき、１可変長パケット分組みあがった時点で出力回線へ１可変長パケット分連続的に出力する。
【００４４】
出力バッファ部１８での処理を考慮すると、スイッチ部１６の各出力回線から出力される固定長パケットの並びが、複数の入力回線からのパケットが混在した状態であるとしても、同じ可変長パケットから生じた固定長パケットができるだけ連続するように入力側でスケジューリングすることが望ましい。図１３は、この点を考慮した回線間スケジューラ１４の構成を示す。スケジューラ部の可変長パケット管理部４０は、各論理出方路毎の可変長パケット送出状態を管理するものであり、可変長パケットを構成する最初の固定長パケットを送出したときフラグをセットし、最終パケットを送出したときクリアすることにより、可変長パケット送出状態を識別する。また、未確定管理部４２は、他の入力回線によって読み出しが確定している回線を管理するもの、要求管理部４４は、入力バッファ部からの読み出し要求数を管理するもの、スケジューリング処理部４６は、要求情報、未確定情報、可変長パケット送出状態をもとに送出論理出方路を決定するものである。
【００４５】
スケジューリング処理部４６は、各論理出力回線毎に、現在可変長パケットを構成する固定長パケットを送出中であるかを判定し、スケジューリングの際に送出中の論理出力回線を優先的に選択する。これにより、１つの可変長パケットを構成する固定長パケットがまとめて読み出されやすくなるため、出力側の可変長パケットバッファでの待ち合わせ時間を低減することが可能となり、出力側の可変長パケット組み立てバッファ量を削減することができる。
【００４６】
以下にスケジューリング動作の具体的な例を図１４および図１５を参照して説明する。ここでは、簡略化のため３×３スイッチを例にとり動作を説明する。各入力回線は、論理的に出力方路毎に分割された論理キュー（以下、ＶＯＱ：Virtual Output Queueと記す）４７を有している。また、可変長パケット送出状態を示す可変長パケット状態レジスタ４８を各ＶＯＱ毎に備える。各ＶＯＱはさらに複数のＱｏＳクラスごとに分割されているがここでは図示が省略されている。
【００４７】
上記可変長パケット状態レジスタ４８は、可変長パケット送出中のＶＯＱを識別するためのレジスタであり、バッファからパケットを読み出したとき、そのパケットのパケット種別を識別し、可変長パケットエンドパケットで無いとき、“１”にセットされ、可変長パケットエンドパケットのときにリセットされる。スケジューラでは、本レジスタが“１”に設定されている状態を可変長パケット送出状態として扱う。読み出したパケットが可変長パケットエンドパケットであるか否かは、パケットヘッダのパケット識別ビットを参照することにより判定可能である。
【００４８】
スケジューリング処理部４６は、上記可変長パケット状態レジスタ４８を参照して、各入力回線について以下の２つのＳＴＥＰに沿って読み出しＶＯＱを決定する。
ＳＴＥＰ１：可変長パケット送出中のＶＯＱのみをスケジューリング対象としてスケジューリング処理を実施。
【００４９】
ＳＴＥＰ２：ＳＴＥＰ１において読み出しＶＯＱが確定しなかった場合に限り、可変長パケット未送出状態のＶＯＱを対象としてスケジューリングを実施。
まず、初期状態として図１４（左側）に示すようなパケットが蓄積されており、スケジューリング順序として、入力回線＃０から順に入力回線＃１→＃２の順でスケジューリングが実行されるとする。スケジューリングの開始入力回線（図中●印）は、スケジューリング周期毎に所定の規則に従って更新される。
(1) Ｔ＝０におけるスケジューリング動作
入力回線＃０では全てのＶＯＱが可変長パケット未送出状態であるため、上記ＳＴＥＰ１ではどのＶＯＱも確定されない。従って、ＳＴＥＰ２として可変長パケット未送出回線（この例では全てのＶＯＱ）の中からラウンドロビン方式により読み出しＶＯＱを決定する。ここでは、ＶＯＱ＃０が選択されたとする。（図中、読み出しＶＯＱを★印で示す）入力回線＃１でも同様の手順でスケジューリングが実行されるが、既に入力回線＃０によってＶＯＱ＃０が選択されているため、Ｔ＝０ではどのＶＯＱも選択することが出来ない。入力回線＃２では、ＶＯＱ＃１が選択されたとする。
(2) Ｔ＝０における可変長パケット状態レジスタ更新
スケジューリング処理によって決定されたＶＯＱからパケットを読み出し、読み出したパケット種別に応じて可変長パケット状態レジスタを更新する。
【００５０】
Ｔ＝０では、入力回線＃０−ＶＯＱ＃０と、入力回線＃２−ＶＯＱ＃１からパケットが読み出される。これら読み出しパケットはいずれも、可変長パケットエンドパケットでないため、可変長パケット状態レジスタを“１”に設定する。（図１４の右側参照）これにより、次回のスケジューリング周期では、入力回線＃０−ＶＯＱ＃０と、入力回線＃２−ＶＯＱ＃１は、可変長パケット送出中ＶＯＱとして扱われ、優先的にスケジューリングされるようになる。
【００５１】
次に図１５を参照してＴ＝１におけるスケジューリング動作を示す。Ｔ＝１では、開始入力回線が更新され、入力回線＃１→＃２→＃０の順でスケジューリングが実行される。
(3) Ｔ＝１におけるスケジューリング処理
入力回線＃１では、全ての可変長パケット状態レジスタ４８が“０”であるため、可変長パケット未送出ＶＯＱの中から選択を行いＶＯＱ＃０を読み出しＶＯＱとする。
【００５２】
入力回線＃２では、可変長パケット送出中のＶＯＱがあるため、そのＶＯＱを優先的に選択する。この例では、可変長パケット送出ＶＯＱはＶＯＱ＃１しかないため、ＶＯＱ＃１を読み出しＶＯＱとする。複数のＶＯＱが存在する場合は、ラウンドロビン方式で選択する。
次に入力回線＃０でも、可変長パケット送出中のＶＯＱがあるため、同様に優先的に可変長パケット送出中のＶＯＱの中から読み出しＶＯＱを決定しようとするが、既にＶＯＱ＃０は入力回線＃１によって選択されているため、選択することが出来ない。従って、可変長パケット未送出回線の中から読み出しＶＯＱを決定する。この例では、ＶＯＱ＃１とＶＯＱ＃２が可変長パケット未送出であり、ラウンドロビンによりＶＯＱ＃１を選択する。このように、可変長パケット送出中のＶＯＱがある場合でも、他の入力回線によって選択されている場合で、可変長パケット送出中のＶＯＱが選択できない場合には、可変長パケット未送出ＶＯＱを選択する。
(4) Ｔ＝１における可変長パケット状態レジスタ更新
スケジューリング処理によって決定されたＶＯＱからパケットを読み出し、読み出したパケット種別に応じて可変長パケット状態レジスタを更新する。
【００５３】
Ｔ＝１では、入力回線＃０−ＶＯＱ＃１、入力回線＃１−ＶＯＱ＃０および入力回線＃２−ＶＯＱ＃１からパケットが読み出される。
入力回線＃０−ＶＯＱ＃１、入力回線＃１−ＶＯＱ＃０から読み出されたパケットは共に可変長パケットエンドパケットで無いため可変長パケット送出レジスタを“１”に設定する。これにより、これらのＶＯＱは次のスケジューリング周期では、可変長パケット送出中ＶＯＱとして扱われ、優先的にスケジューリングされる。
【００５４】
一方、入力回線＃２−ＶＯＱ＃１から読み出されたパケットは、可変長パケットエンドパケットであるため、可変長パケット状態レジスタを“０”にクリアする。従って、本ＶＯＱは次のスケジューリング周期では、可変長パケット未送出ＶＯＱとして扱われる。
このように、可能な限り可変長パケット送出中のＶＯＱを優先的にスケジューリングすることにより、１つの入力回線から送出されるパケットは、ＶＯＱ毎に連続して読み出されやすくなるため、出力側の可変長パケット待ち合わせ時間を短くすることが可能となる。
【００５５】
図１６にこのスケジューリング処理のフローを示す。本フローは、１つの入力回線におけるスケジューリング処理フローである。
ステップ１００１〜１００４はスケジューリングプロセスである。まず、ステップ１００１において、優先的に可変長パケット送出中のＶＯＱについてスケジューリングを行う。ここで、未確定とは、他の入力回線によって選択されていないＶＯＱを意味し、要求ありとは、バッファにパケットが蓄積されていることを意味し、可変長パケット送出中とは、可変長パケット状態レジスタに“１”が設定されていることを意味する。次にステップ１００２において、上記ステップ１００１の処理によって、読み出しＶＯＱが確定したかを判定し、確定した場合には、可変長パケット状態レジスタの更新プロセスへ、未確定の場合には、可変長パケット未送出ＶＯＱのスケジューリングプロセスに移る。
【００５６】
ステップ１００３は、ステップ１００１において、ＶＯＱが確定されなかった場合にのみ実行され、可変長パケット未送出（可変長パケット状態レジスタ＝０）のＶＯＱについてスケジューリングを行う。ステップ１００４は、上記ステップ１００３において、読み出しＶＯＱが確定したかを判定するプロセスであり、未確定の場合にはスケジューリング処理を終了し、確定時は可変長パケット状態レジスタ更新プロセスに移る。
【００５７】
ステップ１００５〜１００７は、可変長パケット状態レジスタの更新プロセスである。ステップ１００１／１００３のスケジューリング処理によって決定されたＶＯＱからパケットを読み出し、読み出したパケット種別を判定し、可変長パケットエンドパケットで無いときには、可変長パケット状態レジスタを“１”に設定し、可変長パケットエンドパケットのときに同レジスタをクリアする。
【００５８】
図８，１０，１１の可変長ベースＱｏＳ制御部３０ではパケット長を考慮したＱｏＳ制御が必要になる。図１７は、このパケット長を考慮したＱｏＳ制御を実現する手法の一例を概念的に示す。図８の可変長ベースＱｏＳ制御部３０において、各ＱｏＳクラス毎にバッファリングされた先頭のパケットのパケット長に対応するカウンタ値（ここではトークンと呼ぶことにする）を設定する。この際トークン値は、例えば、各ＱｏＳクラスに対するウェイト値（Φi ）として式（５）のような正規化した値を使用すれば、パケット長をそのまま使用できる。
【００５９】
Φi ＝Ｒ×τ×Φis／ΣΦis  …（５）
ここでＲは全体の目標リンクレート、τは内部処理の単位時間（ｅｘ．固定長パケット時間）、Φisは各ＱｏＳクラスに割り当てられたウェイト値、ΣΦisはアクティブなＱｏＳクラスに対するΦisの総和である。また添え字のｉは、ＱｏＳクラスに付された番号に対応している。なお、式（５）中のＲ×τ／ΣΦisの値は一定であるので、（５）式から計算されるΦi の代わりに各ＱｏＳクラスのウェイト値Φisを使うことができる。
【００６０】
図１７に示すように、各ＱｏＳクラスの先頭パケットに対応するトークン値（Ｔi ）を単位時間（τ）毎、Φi ／ΣΦi ずつ減算していき、回線にパケットが読出し可能なとき、各トークン値の中で最小値（ベストエフォートクラスのパケットのとき）または０（レートが規定される帯域保証クラスのパケットのとき）のトークン値を持つＱｏＳクラスのパケットを読み出す。
【００６１】
この手法では、ＷＦＱのようにウェイト値に応じて各ＱｏＳクラスの帯域をアクティブなＱｏＳクラスで比例分配することが可能である。またＷＦＱようにキューイングされている全パケットについて、終了予定時刻Ｆ（ｉ，ｋ）を保持しなくて良いため、ハード規模が削減できる。さらに、実時間でスケジューリングするための、読出しレートを規定する帯域保証型のＱｏＳスケジューリングとの間の優先度制御が可能である。また、ΣΦi をアクティブなキューの数によらず一定とすることにより、そのまま、読出しレートを規定する帯域保証型のＱｏＳスケジューラとして使用できるため、回路を共通化してハード規模の削減や設計工数の削減が図れる。また、トークンを加算する処理とトークンから減算値を減算する処理と各ＱｏＳクラスのトークンを比較し、最も小さいまたは０のトークンを持つＱｏＳクラスのキューを選択して読み出す処理は、パイプライン化することも可能であり、高速なＱｏＳ制御を行うことも可能である。
【００６２】
図１８に実際のハードウェア構成の例、図１９にフローチャートを示す。図示した例は、可変長ベースＱｏＳ制御部において、可変長パケット組立てバッファ部とＱｏＳ制御部でパケットバッファは共通でバッファへの書きこみアドレスのみを転送する場合の構成に対応している。出力回線部に入力された固定長パケットは、パケットバッファ５０へ書きこまれるとともに、アドレス管理ＦＩＦＯ５２において、入力回線毎、縮退ＱｏＳ毎にアドレスのＦＩＦＯチェーンを構成する。可変長パケット組立て部５４では、各キューへの１可変長パケット分の到着を管理し、１可変長パケット分到着した可変長パケットについて、対応するパケットバッファのアドレスをコピーし、ＱｏＳクラス毎、ＤＭＵＸ毎のアドレスＦＩＦＯを構成する。さらに、ヘッダ情報をパケット識別部５６に転送する。パケット識別部５６ではパケットヘッダからＱｏＳクラス、ＤＭＵＸ番号やパケット長といったＱｏＳスケジューリングに必要な情報を抽出し、後で詳述する図１９の処理フローに従い、読み出しＱｏＳクラスの選択を行い、ＤＭＵＸ読み出し部５８より対応するパケットをパケットバッファから出力パケットハイウェイへ読み出す。このときＤＭＵＸ読み出し部５８では、各ＤＭＵＸ毎の固定的なタイムスロットを管理しておき、各タイムスロットのタイミングにおいてスケジューリングすべきＤＭＵＸの番号を通知し、対応するＤＭＵＸについて図１９の処理フローを実行する。
【００６３】
図１９の処理フローでは、３つのプロセスが連携して動作する。パケット到着処理プロセスでは、可変長パケットが到着したとき、または前述のアドレス管理ＦＩＦＯ５２において、可変長パケットがＦＩＦＯの先頭に来たとき、対応する可変長パケットのＱｏＳクラスごとにトークン値の加算（ステップ１１００）、および、ウェイト値総和ΣΦi への加算を行う（ステップ１１０２）。またパケット読み出しプロセスでは、前可変長パケットの読み出しが終了し、次の可変長パケットを選択する前、もしくは初期状態において、可変長パケットの選択が行われていないとき、各ＱｏＳ毎のトークン値（ｉ）を比較し、最小トークン値を持つＱｏＳクラスを選択し（ステップ１１０４）、当該ＱｏＳクラスのパケットの読み出しを開始する（ステップ１１０６）。このとき、同一ＱｏＳクラスにキューイングされている他のパケットが無く、キューが空になるときは、ΣΦi からの減算処理を行う（ステップ１１０８）。一方、減算値処理プロセスでは、単位時間毎に、全ＱｏＳクラスの減算値を計算し（ステップ１１１０）、全ＱｏＳクラスのトークン値から減算値の減算を行う（ステップ１１１２）。
【００６４】
図２０は、パケット長を考慮したＱｏＳ制御の第２の例を概念的に示す図である。トークン値（Ｔi ）をトークン値×ΣΦi に置き換え、さらに単位時間毎の減算値としてΦi を使用する。
この手法では、一般に処理時間がかかるΦi ／ΣΦi の除算処理をなくすことができる。但し、ＱｏＳクラスキューの状態を反映するΣΦi の更新が、前述の手法では１単位時間毎に可能であるのに対して、パケットの先頭を読出してトークン値を積みあげるときのみになるため、多少公平性に関して特性的な劣化が生じる。
【００６５】
図２１にフローチャートを示す。パケット到着処理プロセスにおけるトークン値の加算値にパケット長の代わりにパケット長×ΣΦi を用い、また減算値処理プロセスにおいて、減算値をΦi ／ΣΦi の代わりにΦi としている。
図２２は、パケット長を考慮したＱｏＳ制御の第３の例を示す。この手法では、トークン値をトークン値×ΣΦi に置き換える代わりに、ΣΦi の加算をパケット長に相当する回数だけ繰返すことに置き換えている。
【００６６】
トークン回数を管理するカウンタが必要となるため多少複雑になるが、乗算処理をなくすことができるためハード量の削減が図れる。またパケット長に相当する回数分のΣΦi の加算の際に、逐次最新のΣΦi を使用することにより、ＱｏＳクラスキューの状態を反映する頻度が多くなり、公平性に関して特性的な向上が図れる。
【００６７】
図２３にフローチャートを示す。パケット到着処理プロセスにおけるトークン値の加算値にパケット長の代わりにΣΦi を用い、累積パケット長カウンタによって、加算したΣΦi の回数を管理する。また減算値処理プロセスにおいて、累積パケット長カウンタが０になるまで、トークン値のフレームへの加算処理を繰返し、減算値をΦi ／ΣΦi の代わりにΦi としている。
【００６８】
図２４は、最低帯域が保証されさらに余剰帯域の使用が許される最低帯域保証クラスの可変長パケットについてのパケット長を考慮した制御が可能なＱｏＳ制御の一例を概念的に示す。入力された最低帯域保証クラスの可変長パケットについては通常はスイッチ部１４の前段に設けられるポリシング制御部２０において、最低保証帯域を超えて到着したパケットにタギングを行うことにより、帯域保証のパケットとベストエフォート分のパケットが識別される。スイッチ部１４の後段のＱｏＳ制御部５８では到着した可変長パケットを構成する固定長パケットの数をＱｏＳクラス（ｅｘ１６クラス）別にカウンタする。すべてのＱｏＳクラスのそれぞれについて帯域保証クラス用のカウンタとベストエフォートクラス用のカウンタを用意し、最低帯域保証クラスについてはそれらの双方を使用し、ベストエフォートクラスについてはベストエフォートクラスのカウンタのみを使用し、帯域保証クラスについては帯域保証クラスのカウンタのみを使用するようにすることが好ましい。この様にすることにより、システムの柔軟性が向上する。
【００６９】
ここでＱｏＳ制御部５８では、カウンタ値が正の値のものについて、前述した重み付けによる読出し制御を行う。トークン演算のアルゴリズムは前述の３通りのいずれでも良い。但し、この際、可変長パケットのパケット長の代わりに固定長パケットのパケット長を用い、また帯域保証クラスについては設定レートに従う読出しを行う。また帯域保証クラスとベストエフォートクラスからの要求の競合時は単純に帯域保証クラスを高くするかラウンドロビンや予め設定された優先度に応じて読み出す。このようなスケジューリング処理は固定長パケット毎に行い、選択されたＱｏＳクラスのカウンタ値を１減算するとともに、可変長バッファ部６０へ選択されたＱｏＳクラスを通知する。
【００７０】
可変長バッファ部６０では、通知数をＱｏＳクラス毎に計数し、累積数が各キューの先頭のパケット長に達したら、１可変長パケットの読み出しを行なう。
上記の制御により、１ＱｏＳクラス内に帯域保証分とベストエフォート分が含まれる最低帯域保証クラスに対して可変長パケットに対するＱｏＳ制御が可能となる。図６，７を参照して説明した制御のように同一キューにマッピングしてキューしきい値で制御する方法だとベストエフォート分のパケットが使用できるキュー領域は帯域保証クラスが利用できるキュー領域より小さくなるという制限が生じるが、このような問題が解消される。また、単純に１ＱｏＳクラスのキューを帯域保証分とベストエフォート分とで２つに分けると生じるパケットの順序逆転も起きない。
【００７１】
さらに、帯域保証クラスのスケジューリングとベストエフォートクラスのスケジューリングを別々に行うことができるので単純に帯域保証クラスの優先度を高くするような優先制御だけでなく、ラウンドロビンにしたり予め優先度を設定しておくなどより複雑な優先制御が可能となる。
図２５に具体的な構成を示す。ここでは、固定長パケット単位にパケットバッファへのキューイングを管理しているが、連続する固定長パケットを可変長パケットと置き換え、可変長パケットの先頭と末尾を管理し、１可変長パケット分連続的に読み出すことにより、可変長パケットにおいても全く同様に当てはまる。
【００７２】
ＱｏＳスケジューラ６２において、到着した可変長パケットを構成する固定長パケットの数がカウントされる。この際、最低帯域保証クラスについては、当該フレームがタギングされているか否かによって、適合パケット数カウンタにカウントするか、不適合パケット数カウンタにカウントするかに分かれる。前述のように帯域保証クラスおよびベストエフォートクラスについては一方のカウンタのみが使用される。ＱｏＳスケジューラ６２では各カウンタ値が０で無いものについて、予め設定されたレートやウェイト、優先度に応じて、１つのＱｏＳクラスを選択する。選択されたＱｏＳクラスは可変長パケット管理部６４に通知される。可変長パケット管理部６４では、通知された選択ＱｏＳクラス数を管理しており、累積数をパケット長に換算して、各ＱｏＳクラス毎のキューの先頭パケットのパケット長より大きくなった場合には、当該可変長パケットを出力ハイウェイから出力する。
【００７３】
このとき、固定長パケットサイズやフォーマットは、どのようなものでもよく、可変長パケットの先頭と末尾を管理できれば、ここでの固定長パケットにヘッダを付与する必要はない。
図２６は、最低保証帯域クラスの可変長パケットの制御が可能なＱｏＳ制御の他の例の原理を説明する図である。図２６は或るＱｏＳクラスに対するトークン値の動作を示している。ここで、入力された可変長パケットはＱｏＳクラスごとにキューイングされている。Φigは帯域保証クラス用に設定された読出しレート値である。またΦibはベストエフォートクラス用に設定されたウェイト値である。ベストエフォート分を含まない帯域保証クラスのΦibはゼロに、帯域保証分を含まないベストエフォートクラスのΦigはゼロに設定される。最低帯域保証クラスについては、ΦigとΦibにゼロでない値が設定される。
【００７４】
ここでは、１単位時間内にトークン減算処理を帯域保証クラスサイクル用とベストエフォートクラスサイクル用の２回行う。このとき、いずれのＱｏＳクラスにおいても帯域保証クラスのパケットの読み出しが無いときは、ベストエフォートクラスサイクル用のトークン減算処理も行うが、帯域保証クラスの可変長パケットの読み出しがあるときまたは帯域保証クラスの可変長パケットの読み出しが続いているときは、ベストエフォートクラスサイクル用のトークン減算処理を行わない。最低帯域保証クラスのパケットには予め前段のポリシング制御部において、最低保証帯域を超えたフレームにタギングをしておく。帯域保証クラスサイクル用のスケジューリングを行い読み出すべきフームの有無を判定する際、タギングのない最低保証帯域以下のパケットについてのみ読み出すべきパケットが有りとして処理し、タギングがある場合は読み出すべきパケットが無しとして処理する。
【００７５】
もしくは、帯域保証クラスの読み出しパケットの有り無しに関わらず、常にベストエフォートクラスサイクル用のトークン減算処理を行い、ΣΦibの代わりにΣΦiall（アクティブなコネクションについてのΦigとΦibの総和）を使用することもできる。
このようにすれば、可変長パケットの状態のままで、スケジューリングができ、帯域保証クラスのスケジューリングを行ってからベストエフォートクラスのスケジューリングを行うという簡単な制御で最低帯域保証クラスの収容が可能となる。但し、一般にΣΦigとΣΦibは異なる値であるため、前記の３通りのトークン演算アルゴリズムのうち、トークンとしてどちらのクラスにも共通であるパケット長を用いる第１番目の演算アルゴリズムのみが適用できる。
【００７６】
図２７に処理のフローチャートを示す。可変長パケット到着処理プロセスにおいて、帯域保証クラスとベストエフォートクラスで、ΣΦi を各々ΣΦigとΣΦibとして別々に管理する（ステップ１２００）。また同様に減算値更新プロセスにおいても減算値Φi ／ΣΦi の代わりにΦig／ΣΦigとΦib／ΣΦibを別々に管理し（ステップ１２０２）、トークンの減算処理を帯域保証クラスからパケットが読み出されているときと、そうでないときに分けて行う（ステップ１２０４）。また可変長パケット読み出しプロセスにおいて、先に帯域保証クラスのパケットまたはタギングのない最低帯域保証クラスのパケットがキューイングされているキューの中からの可変長パケットの選択を行い（ステップ１２０６）、次にベストエフォートクラスのパケットまたはタギングされている最低帯域保証クラスのパケットがキューイングされているキューの中からの可変長パケットの選択を行う（ステップ１２０８）。またΣΦの減算についても同様に帯域保証クラスとベストエフォートクラスで別々に行う（ステップ１２１０）。なお、図２７に示した例では、帯域保証クラスについては、Φibがゼロに設定され、ベストエフォートクラスについては、Φigがゼロに設定されるものとする。その代わりとして、減算値更新プロセスにおいて、帯域保証クラスについては、Φibの減算を行なわず、ベストエフォートクラスについては、Φigの減算を行なわないようにしても良い。
【００７７】
図２８は、最低帯域保証クラスの可変長パケットの制御が可能なＱｏＳ制御のさらに他の例の原理を説明する図である。図２８は図２６と同様に前述の第１番目の演算アルゴリズムを適用した場合の、或るＱｏＳクラスに対するトークン値の動作を示している。この例では、最低帯域保証クラスのパケットは、帯域保証クラス用とベストエフォートクラス用の２つのスケジューラにより並列に処理する。但し、トークン値はＱｏＳクラス毎のキューの先頭パケットのパケット長に対応する同一のトークン値を使用する。このとき、ベストエフォートクラス用のスケジューラでは、ΣΦibの代わりにΣΦiallを使用する。
【００７８】
最低帯域保証クラスについては、帯域保証クラス用とベストエフォートクラス用の２つのスケジューラによるスケジューリングが行なわれる。それらの読出し処理により、いずれか先に読出しが行われたときは、読出しが行われなかった方の読み出された可変長パケットに対して行われた累積トークン減算値を繰り越し分として、次の可変長パケットのトークン値を計算する際に減算する。
【００７９】
この手法では、帯域保証クラス用とベストエフォートクラス用で別々にトークンの減算処理が必要となるため、ハード規模が増加する。但し、帯域保証クラス用とベストエフォートクラス用を並列に処理できるので、高速なスケジューリングが可能となる。また、ΣΦigとΣΦiallが一致する必要がないので、前述した３つの演算アルゴリズムのいずれもが適用可能である。
【００８０】
図２９にフローチャートを示す。この例では、フレーム到着処理プロセスにおいて、１つのＱｏＳクラスｉについてトークン値を帯域保証クラスとベストエフォートクラスでトークン値（ｉｇ）、トークン値（ｉｂ）として別々に管理する（ステップ１３００）。さらに、減算値更新プロセスにおいて、トークン値（ｉｇ）とトークン値（ｉｂ）からそれぞれΦ(ig)／ΣΦ(ig)とΦ(ib)／ΣΦ(isll)を減算するときに、減算量をそれぞれ繰越分（ｉｇ）と繰越分（ｉｂ）として記憶しておく（ステップ１３０２）。読み出しパケットの選択の際には、可変長パケット読出プロセスにおいて、まず、可変長パケットが存在するすべてのＱｏＳクラスの中からトークン値（ｉｇ）がゼロになっているクラスを選択する（ステップ１３０４）。このとき、帯域保証分を持たないベストエフォートクラスについては、Φigをゼロに設定すれば、ステップ１３０２におけるトークン値（ｉｇ）の減算が実質的に行なわれないので、ここで選択されることはない。次に、可変長パケットが存在するすべてのＱｏＳクラスの中からトークン値（ｉｂ）が最小であるものを選択する（ステップ１３０６）。このとき同様に、ベストエフォート分を持たない帯域保証クラスについては、Φibをゼロに設定すれば、ステップ１３０２におけるトークン値（ｉｂ）の減算が実質的に行なわれないので、ここで選択されることはない。帯域保証分とベストエフォート分を併せ持つ最低帯域保証クラスについては、両者のいずれかとして選択され、選択されなかった方の繰越分を次のパケットの選択に反映させるため、選択されなかった方のトークン値に−（繰越分）を設定する（ステップ１３０８）。
【００８１】
次に、本発明の一実施形態に係るパケット廃棄の手法を説明する。なお、以下の記述において、「可変長パケット」は「フレーム」と、「固定長パケット」は単に「パケット」と称される。本発明において、廃棄はランダムでなく周期的に行い、その周期をキュー長の状態に応じて変えることにより、確率的な廃棄を実現する。また、廃棄を読み出し時に行うことにより、キューの先頭から廃棄することが出来るため、廃棄を早く端末に通知することが出来る。廃棄判定はキューの先頭パケット読み出し時に行う。図３０および式（６）に示すように、キュー長に応じた廃棄確率を決定し、式（７）で決定される周期で廃棄を行う。これにより、長いフレームはそれだけ高い確率で廃棄することが出来る。廃棄時は、１フレーム分のパケットを１パケット時間に廃棄することにより、スループットの低下を防ぐことが出来る。
【００８２】
廃棄確率＝（平均キュー長−ＴＨmin ）／（ＴＨv −ＴＨmin ）  …（６）
廃棄周期＝１／（廃棄確率×パケット長）                      …（７）
具体的な回路構成を図３１に、動作フローを図３２に、動作の一例を図３３に示す。バッファ内のキュー長を管理するキュー長カウンタ６６、設定されたしきい値を保持するしきい値レジスタ６８、設定された読み出し間隔パラメータを保持する読み出し間隔レジスタ７０、読み出し間隔制御に用いるＬＢカウンタ７２、バッファの先頭のフレームのフレーム長を管理するフレーム長カウンタ７４、ＬＢカウンタ動作を制御するカウンタ制御７６、その他演算器より構成される。
【００８３】
フレームの先頭のパケットを読み出す時、平均キュー長としきい値を比較する。平均キュー長がしきい値を越えていない場合はそのまま読み出しを行う。しきい値を越えた場合、しきい値と平均キュー長との差分にフレーム長を掛け合わせた値を、ＬＢカウンタ７２に加算する。そして加算結果が０を越えていた場合、該当フレームに属するパケットを全て廃棄し（具体的な方法は後述）、ＬＢカウンタ値から、読み出し間隔レジスタ７０の値にフレーム長を掛け合わせた値を減算する。加算結果が０を越えていない場合は、そのまま読み出しを行う。ＬＢカウンタに加算する値が大きいほど、カウンタ値が０を越える確率が高くなる。よって本動作により、輻輳度合いとフレーム長に応じた確率でフレームを廃棄することが出来る。
【００８４】
ここで、平均キュー長はその時点での値を用いることも、移動平均を取った値を用いることも可能である。一時的な輻輳ではなく、長期的な輻輳時のみ廃棄制御をかけるため、移動平均を取った値を用いることが有効であるが、バッファを大きく取ることができれば、しきい値を大きく設定し実キュー長がしきい値越えとなった時点で長期輻輳と判断することも可能である。また、読み出し時に廃棄することで、バッファの先頭のフレームに対し廃棄することが出来る。
【００８５】
図３４および図３５に１フレームに属するすべてのパケットの廃棄を１パケット時間内に行なう手法の一例を示す。図の左上に概念的に表されるアドレス管理ＦＩＦＯは、実際には各キューのスタート／エンドポインタ９２とアドレス管理テーブル９４により構成される。アドレス管理テーブル９４には、次のアドレスを示す次アドレス、フレーム最終パケットのアドレスを示すＥＮＤアドレス、キューに次のフレームが存在することを示す次先頭アドレスイネーブル、次のフレームの先頭アドレスを示す次先頭アドレス、フレームの先頭を示すフレーム先頭フラグ、フレーム長のフィールドを有するレコードが格納される。
【００８６】
図３４において、廃棄するフレームを空きアドレスキューにつなぎ替えるため、空きアドレスキューのエンドポインタによって示される最終アドレス（アドレス９）のレコードの次アドレスの値をつなぎ替えるフレームの先頭アドレス（アドレス５）に書き替える（ステップＡ）。そして空きアドレスキューのエンドポインタをつなぎ替えるフレームのＥＮＤアドレス値（アドレス１）に書き替える（ステップＢ）。次に廃棄が行われたキューから廃棄フレームを取り除くため、キューのスタートポインタを次先頭アドレス（アドレス１３）に書き替える（ステップＣ）。以上のようにアドレスリンクを書き替えることにより図３５に示すようになり、１パケット時間内に１フレーム分の廃棄を行うことが出来る。
【００８７】
パケット廃棄方式の他の例として、基本的な考えは前述と同じであるが、廃棄判定は各パケット読み出し毎に行い、廃棄確率は、平均キュー長がしきい値を越えた量のみに比例させ、それに見合った周期で廃棄を行う。パケット毎に廃棄判定を行うため、結果的に長いフレームはそれだけ高い確率で廃棄することが出来る。１パケット廃棄したら同一フレームに属する以降のパケットの読み出し毎に廃棄する。廃棄に廃棄パケット数分の時間掛かるため特性的に前述の手法に劣るが、逆にパケットｂｙパケットの動作のため回路構成が簡単になるため、より高速動作が必要なバッファ制御に適する。
【００８８】
以上の廃棄方式はキュー毎に制御される。また、複数のしきい値を持たせることにより廃棄に対するプライオリティを持たせることが出来る。
このパケット廃棄方式の具体的な構成の例を、図３６に示す。キュー長を管理するキュー長カウンタ７８、設定されたしきい値を保持するしきい値レジスタ８０、設定された読み出し間隔パラメータを保持する読み出し間隔レジスタ８２、読み出し間隔制御に用いるＬＢカウンタ８４、フレーム廃棄中であることを示す廃棄フラグ８６、ＬＢカウンタを制御するカウンタ制御部８８、その他演算器より構成される。各パケットの読み出し時、平均キュー長としきい値を比較する。平均キュー長がしきい値を越えていない場合はそのまま読み出しを行う。しきい値を越えた場合、しきい値とキュー長との差分を、ＬＢカウンタに加算する。そして加算結果が０を越えていた場合、該当パケットを廃棄、廃棄ＬＢカウンタ値から読み出し間隔レジスタ値を減算し、廃棄フラグを立てる。加算結果が０を越えていない場合は、そのまま読み出しを行う。パケット廃棄を行った場合、同一フレームの以降のパケット読み出し時に廃棄を行い、ＬＢカウンタ値に対し、ＬＢしきい値とキュー長との差分値の加算と、カウンタ値から読み出し間隔レジスタ値を減算する。同一フレームの最終になったら、フラグをクリアする。（先頭フレーム到着時、廃棄フラグをクリアしてから廃棄判定をしても良い。）最終パケットは廃棄しないことで、廃棄フレームと次のフレームとを識別させることが出来る。パケット毎に廃棄判定を行うため、廃棄確率はフレームが長いほど高くなる。よって本動作により、輻輳度合いとフレーム長に応じた確率でフレームを廃棄することが出来る。以上の動作フローを図３７に、ＬＢカウンタ動作例を図３８に示す。ここで、平均キュー長はその時点での値を用いることも、移動平均を取った値を用いることも可能である。一時的な輻輳ではなく、長期的な輻輳時のみ廃棄制御をかけるため、移動平均を取った値を用いることが有効であるが、バッファが大きく取れれば、しきい値を大きく設定し実キュー長がしきい値越えとなった時点で長期輻輳と判断することも可能である。また、読み出し時に廃棄することで、バッファの先頭のフレームに対し廃棄することが出来る。パケットの廃棄に１フレーム時間かかるため、前述の方式より特性的には劣化するが、回路構成が簡単になるため、より高速な動作が必要なところに適する。
【００８９】
ＬＢカウンタ制御については、正負を逆転したり、廃棄判定を０でなくしきい値を用いて行っても良い。
可変長パケットであるフレームをスイッチングするパケットスイッチにおいては、１つのフレームを複数の低速回線へマルチキャストする場合に次の様な解決すべき問題がある。図３９に示すように、スイッチ部１６からフレーム組立バッファ２８に１フレーム分のパケットが溜まった後にＤＭＵＸ９０にパケットが移し替えられるが、その移し替えを１パケットづつ行うと、マルチキャストを行う場合、図４０に示すように複数の低速回線に同時に複製するためにはマルチキャスト数分のアドレス更新を１パケット時間内に行う必要があり高速動作には適さない。また図４１に示すように、マルチキャスト用として別のキュー９１を設ける場合、フレーム連続性を保証するためにマルチキャストを行なわないパケットとマルチキャストの複製先が競合しないように制御する必要がある。更に、フレーム長に比例してマルチキャストに時間がかかる問題もある。
【００９０】
そこで、図４２に示すように、フレーム組立てバッファ２８からＤＭＵＸ９０への移動を１パケットずつでなく１フレーム分のパケットをまとめて移動するようにすれば、フレーム組立てバッファ２８での読み出し競合の問題は解消される。１フレーム分のパケットの移動は、以下に説明するように、パケットのデータを実際に移動するのでなく、パケットバッファ内の格納アドレスを移動するようにすれば、１パケット時間内で可能になる。
【００９１】
フレーム単位でのパケットの移動の具体例を図４３，４４を参照して説明する。図の左上に概念的に示されるアドレス管理ＦＩＦＯは、実際には、各キューのスタート／エンドポインタ９２とアドレス管理テーブル９４により構成される。アドレス管理テーブル９４には、次のアドレスを示す次アドレス、フレーム最終パケットのアドレスを示すＥＮＤアドレス、キューに次のフレームが存在することを示す次先頭アドレスイネーブル、次のフレームの先頭アドレスを示す次先頭アドレス、フレームの先頭を示すフレーム先頭フラグ、及びフレーム長のフィールドを有するレコードが格納される。
【００９２】
ここで、図４３において、１フレーム分のパケットがフレーム組立バッファに溜まった場合、まずフレームを出力バッファキューにつなぐために、出力バッファのエンドポインタが示す最終アドレス（アドレス２）のレコードの次アドレスの値を、フレームの先頭アドレス（アドレス５）に書き替える（ステップＡ）。そして出力バッファのエンドポインタを、つなぎ替えるフレームのＥＮＤアドレス値（アドレス１）に書き替える（ステップＢ）。次にフレーム組立キューを更新するために、フレーム組立キューのスタートポインタを次先頭アドレス（アドレス１３）に書き替える（ステップＣ）。以上により、図４４に示すようになり、１パケット時間内にフレーム組立バッファから出力バッファに移動することが出来る。
【００９３】
図４５に本発明におけるマルチキャストの処理を概念的に示す。マルチキャストすべきフレームはまずＤＭＵＸ９０を経てマルチキャストキュー９６に移動される。勿論、この移動もアドレスの書き替えのみによって行なわれる。マルチキャストキュー９６からＤＭＵＸ９０の各出力回線に複製する際、複製フレーム毎に１つのマルチキャストアドレス９８を付与する。そしてアドレスリンクにはマルチキャストアドレス９８をつなぎ変える。これにより、１フレーム分を１パケット時間で仮想的に複製できるため、ユニキャストパケットとの間でフレーム連続性が保証され競合制御が不要になる。同時に複製に掛かる時間が複製数×パケット時間のみで可能となる。
【００９４】
マルチキャスト処理の具体例を図４６〜図５３に示す。図４３，４４の構成に加え、出力バッファは更に複数の出力回線に対するキューを含むので、複数の出力回線へのキューとマルチキャストキュー９６のスタート／エンドアドレスポインタとコネクション管理テーブル１００を用意する。また、アドレス管理テーブル９４には、マルチキャスト識別ビット、マルチキャストコネクションを識別するＣＩＤ、マルチキャストキューからの再配置完了を示す振分完了フラグ、フレームのマルチキャスト出力数を管理するマルチキャスト数カウンタ、及びマルチキャストアドレスに対応するフレームのアドレスを示すフレームアドレスのフィールドが追加される。コネクション管理テーブルには、マルチキャストされるコネクションのＣＩＤが実際の出力回線の番号とともに格納される。図示されている例は、ＣＩＤの２と１がこの順で登録され、それらに対応する出力回線はそれぞれ１と４であることを示す。
【００９５】
マルチキャストフレームのフレーム組立が完了すると、出力バッファではなくマルチキャストキューに移動する（図４６）。出力回線別のキューに同一のアドレスを使用できないため、複製時に新たな空きアドレス（アドレス３，１１）を確保し、そのアドレスをフレームの代理として該当する出力バッファキュー（キュー１，４）につなぎ変える。同時にアドレス管理テーブルのマルチキャストアドレス（アドレス３，１１）に対し、フレームアドレスのフィールドに実際のフレームのスタートアドレス（アドレス５）を、そのアドレスのＥＮＤアドレスのフィールドにフレームのエンドアドレス（アドレス１）を保持する。また、フレームがコピーされる毎にそのアドレスのマルチキャストカウンタをインクリメントし、同一フレームの最終コピー時（コネクション管理テーブルのＥＮＤフラグで識別）に再配置完了フラグを立てる（図４７〜図４９）。
【００９６】
ＤＭＵＸからの読み出し時は、マルチキャストアドレス（アドレス３，１１）のフレームアドレス（アドレス５）からＥＮＤアドレス（アドレス１）までのパケットを読み出す。１フレーム分のパケット読み出し完了後、マルチキャストアドレスを空きアドレスキューに返却し、マルチキャストカウンタをデクリメントする。その結果が０で且つ再配置完了フラグが立っていれば、リンクとポインタの書き換えにより１フレーム分のアドレスを空きアドレスに返却する（図５０〜図５３）。ここで、第一回目のコピーではマルチキャストアドレスを用いずリンクとエンドポインタの書き換えにより再配置することで、制御が複雑になるものの使用アドレスを削減することも出来る。
【００９７】
図５４には、スイッチ１６の入力側および出力側のいずれにも適用可能なＱｏＳ制御の他の例を概念的に示す。
選択部２００は、所定の規則に従って高優先グループに属するＱｏＳクラスの中から１つを選択する。選択部２０２は、所定の規則に従って低優先グループに属するＱｏＳクラスの中から１つを選択する。選択部２０４は選択部２００が選択したＱｏＳクラスおよび選択部２０２が選択したＱｏＳのいずれか一方を選択する。
【００９８】
このＱｏＳ制御は、単純な優先度選択回路のみで実現でき、予め各ＱｏＳクラスにレートや読み出し比を設定して競合制御を行う場合に比べて、ハード規模の削減が可能となる。
このＱｏＳ制御はパケット廃棄などによる品質劣化が少ない入力側に適用可能であるが、品質劣化ポイントでなければ出力側にも適用可能である。
【００９９】
図５５は図５４のＱｏＳ制御を図１のスイッチ１６の入力側の入力バッファ部１２および回線間スケジューラ１４に適用した例を示す。図５５において、入力回線の各々について、入力バッファ部１２はＭ個のＶｏＱ毎にＱｏＳクラス毎のキューを保持している。スケジューリング部１４は全ＶｏＱ×ＱｏＳ個のキューについて、１単位時間には同じＶｏＱを選択しないように競合制御する。このとき、各スケジューリング部１４は、未確定管理部２０６において、確定していないＶｏＱ情報を交換することにより競合制御を実施する。
【０１００】
入力バッファ部１２のＶｏＱ毎のＱｏＳキューに固定長パケットが到着した際、スケジューリング部１４に対して、対応するＶｏＱ番号と当該パケットのＱｏＳクラスが属する優先グループを通知し、スケジューリング部１４の各要求数カウンタ２０８，２１０で要求数を管理する。この際、例えば、帯域保証クラスのパケットは高優先グループとして通知し、ベストエフォートクラスのパケットは低優先グループとして通知する。
【０１０１】
次に１つのスケジューリング部１４内の高優先グループの選択部２１２において、要求カウンタ数が０でないものの中から１つのＶｏＱを選択し、隣接するスケジューリング部１４へは未確定管理部２０６を経由して、確定していないＶｏＱを通知する。未確定ＶｏＱを受信したスケジューリング部１４は未確定ＶｏＱの中から同様の手順で１つのＶｏＱを選択し、順次この操作を繰り返し、全入力回線について高優先グループに対するスケジューリングが完了する。
【０１０２】
次に、高優先グループに対してＶｏＱが選択されなかった入力回線について、選択されなかったＶｏＱを対象として、各スケジューラ部１４の低優先グループ選択部２１４で高優先グループのときと同じ手順でＶｏＱが順次選択される。
以上の処理により全入力回線について、高優先グループまたは低優先グループに対応するユニークなＶｏＱ値が選択される。以上の機能が図５４の選択部２０４に対応する。
【０１０３】
次にスケジューラ部１４は決定したＶｏＱ値、および優先グループを入力バッファ部１２に通知し、入力バッファ部１２では図５６の処理を行い、高優先グループまたは低優先グループの中から１つのＱｏＳキューを選択する。またこのとき、１可変長パケットの連続性を維持するように選択を管理することにより、同一ＱｏＳクラス内のフレームの連続性が保証される。
【０１０４】
図５７は、図５４のＱｏＳ制御を図８のＱｏＳ制御部３０におけるＱｏＳ制御に適用した例を示す。入力バッファ部１２における制御との違いは、高優先グループか低優先グループかの選択を競合制御によって行うのではなく、高優先グループに対応するパケットの有無で判定している。すなわち、図５７のステップ２０００，２００２、および２００４の処理が図５４の選択部２０４，２００、および２０２にそれぞれ相当する。
【０１０５】
図５８は図５４のＱｏＳ制御において、各ＱｏＳクラスを高優先グループおよび低優先グループのいずれかへ割り当てる手法の一例を示す。
図５８に示した例では、帯域保証クラスのキューを高優先グループにマッピングし、ベストエフォートクラスのキューを低優先グループにマッピングする。最低レートまでは帯域保証し、最低レート以上は帯域の余剰がある場合のみ読み出し可能とする最低帯域保証クラスに関しては、高優先グループと低優先グループの両方にマッピングし、帯域保証分の読み出しを高優先グループとして、余剰帯域分の読み出しを低優先グループとして読み出すことにより最低帯域保証クラスのＱｏＳ制御を実現する。
【０１０６】
これにより、単純な優先度選択のみで最低帯域保証クラスの帯域保証分をベストエフォートクラスより優先度を高くし、帯域保証クラスと同等の優先度に設定し、最低帯域保証クラスの余剰帯域分を帯域保証クラスより優先度を低くし、ベストエフォートクラスと同等の優先度に設定できるため、帯域保証クラスやベストエフォートクラスに影響を与えずに最低帯域保証クラスを収容することが可能となる。
【０１０７】
図５９に図５８の手法をスイッチ１６の入力側のＱｏＳ制御に適用した場合の、入力バッファ部１２およびスケジューリング部１４の具体的な回路構成を示す。最低帯域保証クラスを高優先グループ、または低優先グループにマッピングするために、前段のポリシング制御部２２０において、到着するパケットのトラヒックを監視し、予め規定された最低保証レート以下のパケットに対してはタギングを行わず、最低保証レートより上のパケットについてはタギングを行う。
【０１０８】
そしてタギングなしのパケットが到着した際は高優先グループとしてスケジューリング部１４へ通知し、タギングありのパケットが到着した際はスケジューリング部１４へ低優先パケットとして通知する。この際、どちらのパケットも同一のＱｏＳキュー２２２に保持する。図示されていないが、帯域保証クラスおよびベストエフォートクラスのパケットの到着はポリシング制御部２０の処理を経ることなく、それぞれ高優先グループおよび低優先グループとして通知される。
【０１０９】
各スケジューリング部１４において、ＶｏＱ、および優先グループが決定され、入力バッファ部１２に通知されると、当該ＶｏＱに対する通知された優先グループ内のＱｏＳクラス選択部２２４または２２６において、１つのＱｏＳクラスを選択し、対応するＱｏＳキュー２２２から１パケットを読み出す。この際、最低帯域保証クラスについては、高優先グループの中から選択されたとしても低優先グループの中から選択されたとしても、タギングの有無にかかわらず対応するキューの先頭からパケットが読み出される。
【０１１０】
高優先グループ内および低優先グループ内での１つのＱｏＳクラスの選択は、例えば図６０に示すように単純なラウンドロビン方式を適用することができる。ラウンドロビン方式の場合、小さなハードウェアの規模で帯域を各ＱｏＳクラスで公平に配分することができる。しかしながら、ＱｏＳクラス間で到着トラヒック量に偏りがあると、トラヒック量の増加に比例して遅延時間が増加して遅延時間に不公平を生じるという問題がある。
【０１１１】
グループ内での選択をパケットの到着順に行なえば、遅延時間の不公平は解消される。これを実現するためには、例えば、図６１に示すように、ＱｏＳクラス選択部２２４，２２６のキューに格納されるデータに、到着順を示すタイムスタンプを付し、この順で選択すれば良い。図６１において、巡回カウンタ２４０，２４２は各優先グループ内のＱｏＳクラスのパケットの情報を登録する度に１だけインクリメントされ、入力バッファ量に対応するパケット数までカウントしたら０に戻るカウンタであり、このカウンタの値がパケットの情報に付加される。またカウンタ値検索部２４４，２４６もパケットを選択する毎に１づつインクリメントされる内部カウンタを有し、この値に一致する巡回カウンタ値を有する情報を検索する。
【０１１２】
別の方法として、図６２に示すように、それぞれのグループ内において、パケットが到着したＱｏＳクラスの番号をＦＩＦＯ２３０およびＦＩＦＯ２３２に格納する。選択の際に、ＦＩＦＯから読み出された番号に対応するパケットを選択するようにすれば、到着順に選択することができる。
図６３は遅延時間が比較的公平なさらに他のグループ内選択方法を示す。まず、カウンタ２３４により、到着したパケットの数がＱｏＳクラスごとにカウントされる。パケットが選択されるとカウント値がデクリメントされる。一定の観測周期が経過するごとに、選択されずに残ったパケット数がＱｏＳクラスごとにカウンタ２３６に加算される。すなわち、カウンタ２３６では前周期とそれ以前の周期で到着し未だ選択されていないパケットの数がカウントされる。セレクタ２３８による選択の際に、カウンタ２３６の値がすべてゼロであるときは、カウンタ２３４の中でゼロでない値を持つＱｏＳクラスの中からラウンドロビン方式で１つのＱｏＳクラスが選択される。カウンタ２３６の中にゼロでない値を持つＱｏＳクラスがあればそちらを優先してラウンドロビン方式で１つのＱｏＳクラスが選択される。図６３に示した例では、現周期に到着した未選択のパケットをカウントするカウンタ２３４と、前周期およびそれ以前の周期で到着した未選択のパケットをカウントするカウンタ２３６の２組のカウンタが使用されているが、前周期のパケット数と前々周期およびそれ以前の周期のパケット数を別々にカウントするといったように、履歴をさらに細分化してカウントすれば、一層公平性が向上する。
【０１１３】
この手法は到着パケット数をカウントするだけなので、到着パケットごとにタイムスタンプまたはＱｏＳクラスの番号を記憶する手法と比べてハードウェアの量が少なくて済む。
図６４はグループ内選択のさらに他の手法を示す。図６４において、キュー長カウンタ２４０，２４２は各ＱｏＳクラスごとに未選択の固定長パケットのパケット数をカウントする。比較器２４４，２４６はキュー長カウンタ２４０，２４２の中でカウント値が最大のものを選択する。
【０１１４】
キュー長が長いことと到着トラヒック比が高いことは必ずしも一致しないが、ほぼ同様の傾向をもつため、ラウンドロビン方式の場合に比べより公平な遅延特性となることが期待できる。またキュー長はキュー長による廃棄制御等に利用するためのものと共用可能であるため、比較的ハード規模を小さく実現できる。
【０１１５】
【発明の効果】
以上説明したように本発明によれば、高速かつ少ないハードウェア規模で、可変長パケットのＱｏＳ制御、廃棄制御およびマルチキャスト制御を実現する大容量パケットスイッチが提供される。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る大容量パケットスイッチを概念的に示す図である。
【図２】可変長パケットの一例としてのＩＰｖ４のフレーム形式を示す図である。
【図３】固定長パケットの形式の一例を示す図である。
【図４】スイッチ部１６の入力例におけるスケジューリングを実現する具体的な構成を示す図である。
【図５】パイプライン処理によるスケジューリングの一例を示す図である。
【図６】入力側における最低帯域保証クラスのパケットのスケジューリングの一例を示す図である。
【図７】図６のスケジューリング処理のフローチャートである。
【図８】出力バッファ部１８の構成の第１の例を示す図である。
【図９】出力バッファ部１８の構成の第２の例を示す図である。
【図１０】図８の例の詳細な構成を示す図である。
【図１１】図８および図１０の構成において、出力回線がさらに複数の低速回線へ分離される場合を示す図である。
【図１２】図９の構成において、出力回線がさらに複数の低速回線へ分離される場合を示す図である。
【図１３】出力側の処理を考慮した入力側のスケジューラの構成を示す図である。
【図１４】図１３のスケジューラの動作の一例を示す図である。
【図１５】図１３のスケジューラの動作の一例を示す図である。
【図１６】図１３のスケジューラの動作のフローチャートである。
【図１７】本発明における可変長パケットのＱｏＳ制御の第１の例を概念的に示す図である。
【図１８】図１７のＱｏＳ制御を実現する回路構成の一例を示す図である。
【図１９】図１７のＱｏＳ制御の動作のフローチャートである。
【図２０】可変長パケットのＱｏＳ制御の第２の例を概念的に示す図である。
【図２１】図２０のＱｏＳ制御の動作のフローチャートである。
【図２２】可変長パケットのＱｏＳ制御の第３の例を概念的に示す図である。
【図２３】図２２のＱｏＳ制御の動作のフローチャートである。
【図２４】最低帯域保証クラスの可変長パケットの制御が可能なＱｏＳ制御の第１の例を示す図である。
【図２５】図２４のＱｏＳ制御を実現する具体的な構成を示す図である。
【図２６】最低帯域保証クラスの可変長パケットの制御が可能なＱｏＳ制御の第２の例を示す図である。
【図２７】図２６のＱｏＳ制御の動作のフローチャートである。
【図２８】最低帯域保証クラスの可変長パケットの制御が可能なＱｏＳ制御の第３の例を示す図である。
【図２９】図２６のＱｏＳ制御の動作のフローチャートである。
【図３０】本発明のパケット廃棄制御における平均キュー長と廃棄確率の関係を示す図である。
【図３１】本発明のパケット廃棄制御の第１の例の構成を示すブロック図である。
【図３２】図３１の廃棄制御の処理のフローチャートである。
【図３３】図３１の廃棄制御におけるＬＢカウンタの動作の一例を示すグラフである。
【図３４】本発明の廃棄制御の動作の一例を示す図である。
【図３５】本発明の廃棄制御の動作の一例を示す図である。
【図３６】本発明のパケット廃棄制御の第２の例の構成を示すブロック図である。
【図３７】図３６の廃棄制御の処理のフローチャートである。
【図３８】図３６の廃棄制御におけるＬＢカウンタの動作の一例を示す図である。
【図３９】可変長パケットのマルチキャスト制御において解決すべき課題を説明する図である。
【図４０】可変長パケットのマルチキャスト制御において解決すべき課題を説明する図である。
【図４１】可変長パケットのマルチキャスト制御において解決すべき課題を説明する図である。
【図４２】本発明における、フレーム組立てバッファからＤＭＵＸのフレーム単位での移動を概念的に示す図である。
【図４３】フレーム単位での移動の具体例を示す図である。
【図４４】フレーム単位での移動の具体例を示す図である。
【図４５】本発明の一実施例に係るマルチキャスト制御を概念的に示す図である。
【図４６】マルチキャスト制御の具体例を示す図である。
【図４７】マルチキャスト制御の具体例を示す図である。
【図４８】マルチキャスト制御の具体例を示す図である。
【図４９】マルチキャスト制御の具体例を示す図である。
【図５０】マルチキャスト制御の具体例を示す図である。
【図５１】マルチキャスト制御の具体例を示す図である。
【図５２】マルチキャスト制御の具体例を示す図である。
【図５３】マルチキャスト制御の具体例を示す図である。
【図５４】本発明の他のＱｏＳ制御を概念的に示す図である。
【図５５】図５４のＱｏＳ制御をスイッチの入力側に適用した例を示す図である。
【図５６】図５５の回路の動作のフローチャートである。
【図５７】図５４のＱｏＳ制御をスイッチの出力側に適用した例を示す図である。
【図５８】図５４のＱｏＳ制御において各ＱｏＳクラスのアービングの例を示す図である。
【図５９】最低帯域保証クラスに対するＱｏＳ制御を実現する構成の例を示す図である。
【図６０】優先グループ内のＱｏＳクラスの選択をラウンドロビン方式で行なう場合を示す図である。
【図６１】優先グループ内のＱｏＳクラスの選択をタイムスタンプにより行なう場合を示す図である。
【図６２】優先グループ内のＱｏＳクラスの選択を到着順序管理ＦＩＦＯにより行なう場合を示す図である。
【図６３】優先グループ内のＱｏＳクラスの選択を観測周期内パケット数の履歴により行なう場合を示す図である。
【図６４】優先グループ内のＱｏＳクラスの選択をキュー長により行なう場合を示す図である。
【符号の説明】
１０…パケット分割部
１２…入力バッファ部
１４…回線間スケジューラ
１６…スイッチ部
１８…出力バッファ部
【図１】
0004879382.tif 000002
【図２】
0004879382.tif 000003
【図３】
0004879382.tif 000004
【図４】
0004879382.tif 000005
【図５】
0004879382.tif 000006
【図６】
0004879382.tif 000007
【図７】
0004879382.tif 000008
【図８】
0004879382.tif 000009
【図９】
0004879382.tif 000010
【図１０】
0004879382.tif 000011
【図１１】
0004879382.tif 000012
【図１２】
0004879382.tif 000013
【図１３】
0004879382.tif 000014
【図１４】
0004879382.tif 000015
【図１５】
0004879382.tif 000016
【図１６】
0004879382.tif 000017
【図１７】
0004879382.tif 000018
【図１８】
0004879382.tif 000019
【図１９】
0004879382.tif 000020
【図２０】
0004879382.tif 000021
【図２１】
0004879382.tif 000022
【図２２】
0004879382.tif 000023
【図２３】
0004879382.tif 000024
【図２４】
0004879382.tif 000025
【図２５】
0004879382.tif 000026
【図２６】
0004879382.tif 000027
【図２７】
0004879382.tif 000028
【図２８】
0004879382.tif 000029
【図２９】
0004879382.tif 000030
【図３０】
0004879382.tif 000031
【図３１】
0004879382.tif 000032
【図３２】
0004879382.tif 000033
【図３３】
0004879382.tif 000034
【図３４】
0004879382.tif 000035
【図３５】
0004879382.tif 000036
【図３６】
0004879382.tif 000037
【図３７】
0004879382.tif 000038
【図３８】
0004879382.tif 000039
【図３９】
0004879382.tif 000040
【図４０】
0004879382.tif 000041
【図４１】
0004879382.tif 000042
【図４２】
0004879382.tif 000043
【図４３】
0004879382.tif 000044
【図４４】
0004879382.tif 000045
【図４５】
0004879382.tif 000046
【図４６】
0004879382.tif 000047
【図４７】
0004879382.tif 000048
【図４８】
0004879382.tif 000049
【図４９】
0004879382.tif 000050
【図５０】
0004879382.tif 000051
【図５１】
0004879382.tif 000052
【図５２】
0004879382.tif 000053
【図５３】
0004879382.tif 000054
【図５４】
0004879382.tif 000055
【図５５】
0004879382.tif 000056
【図５６】
0004879382.tif 000057
【図５７】
0004879382.tif 000058
【図５８】
0004879382.tif 000059
【図５９】
0004879382.tif 000060
【図６０】
0004879382.tif 000061
【図６１】
0004879382.tif 000062
【図６２】
0004879382.tif 000063
【図６３】
0004879382.tif 000064
【図６４】
0004879382.tif 000065