(57)【要約】【課題】パケット交換装置で、通信品質のうち、帯域と同様に重要である遅延を制御する。【解決手段】ウエイト計算部１４ｃは複数のキュー長カウンタ１３ｂ及び複数のウエイトカウンタ１３ｃの全てをチェックして全てのクラスのキュー長が０か又は全てのクラスのウエイトが０の場合に、各クラスｉの制御遅延量をＤｉ、そのキュー長カウンタの値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉをＬｉ×α／Ｄｉを用いて算出し、各クラスｉのウエイトカウンタにセットする。【選択図】　　　　図１
2004080081.tif 000002
【特許請求の範囲】
【請求項１】
入力パケットをそのクラス毎に振り分けるクラス振り分け手段と、
前記クラス振り分け手段により振り分けられた各クラスの入力パケットをそれぞれキューイングする複数のクラスキューと、
前記複数のクラスキューのそれぞれにキューイングされた各入力パケットのキュー長をカウントアップし、出力時にカウントダウンする複数のキュー長カウント手段と、
前記複数のクラスキューのそれぞれにキューイングされている入力パケットのウエイトをカウントする複数のウエイトカウント手段と、
前記複数のウエイトカウント手段の各値をラウンドロビンでチェックして、その値が１以上の場合に、当該クラスキューにキューイングされている入力パケットを送出して当該ウエイトカウント手段をカウントダウンさせる手段と、
前記複数のキュー長カウント手段及び複数のウエイトカウント手段の全てをチェックして全てのクラスのキュー長が０か又は全てのクラスのウエイトが０の場合に、各クラスのキュー長及び制御遅延量に基づいて各クラスのウエイトを計算して前記複数のウエイトカウント手段の各々にセットするウエイト計算手段とを、
有するパケット交換装置。
【請求項２】
前記ウエイト計算手段は、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
Ｌｉ×α／Ｄｉ
を用いて算出するよう構成された請求項１に記載のパケット交換装置。
【請求項３】
前記ウエイト計算手段は、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
Ｌｉ×α／Ｄｉ又は
１／Ｄｉ
の内の大きい方を用いて算出するよう構成された請求項１又は２に記載のパケット交換装置。
【請求項４】
前記ウエイト計算手段は、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
Ｅｘｐ（Ｌｉ×α／Ｄｉ）
を用いて算出するよう構成された請求項１から３のいずれか１つに記載のパケット交換装置。
【請求項５】
前記ウエイト計算手段は、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
（Ｌｉ×α／Ｄｉ）のＸ乗（Ｘは整数）
を用いて算出するよう構成された請求項１から４のいずれか１つに記載のパケット交換装置。
【請求項６】
前記ウエイト計算手段は、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
Ｌｏｇ（Ｌｉ×α／Ｄｉ）
を用いて算出するよう構成された請求項１から５のいずれか１つに記載のパケット交換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケットネットワークにおいて、パケット送出順序をスケジューリングすることによりパケットの遅延制御を行うパケット交換装置に関する。
【０００２】
【従来の技術】
この種の従来例として、下記の技術が知られている。
（１）下西英之他、『待ち行列長数に依存しない処理量を実現したＷｅｉｇｈｔｅｄ　Ｒｏｕｎｄ　Ｒｏｂｉｎ方式の提案』、１９９７年電子情報通信学会通信ソサイティー大会　Ｂ−６−４４（２）小林正伸他、『最低帯域保証が可能な共用帯域制御方式の一検討』、電子情報通信学会信学技報ＳＳＥ９７−９２
【０００３】
従来技術として、上記文献に示されたＷｅｉｇｈｔｅｄ　Ｒｏｕｎｄ　Ｒｏｂｉｎ（ＷＲＲ）方式によるパケット送出スケジューリング装置の説明を行う。パケット送出スケジューリング装置の例を図７に示す。図７では、パケット送出スケジューリング装置１をパケットネットワークのパケットスイッチ（ＳＷ）２における出力回線２ｂに置いている。入力回線２ａ上の各種通信品質を要求するパケットが多重化されて出力回線２ｂ上に送出されるとき、パケットの通信品質に応じてパケット送出順番を決定する必要がある。パケット送出順番を決定し、それに従って送出を行うのがパケット送出スケジューリング装置１である。
【０００４】
パケット送出スケジューリング装置１の基本モデルを図８に示す。パケットはスケジューリング装置１に到着すると、クラス振り分け部１１によりその品質クラスｉ（＝１、２〜Ｎ）ごとに振り分けられ、クラスｉ毎のキュー１２［１］〜１２［Ｎ］にキューイングされる。例えばユーザＡから送出されたパケット（又はパケット流）と、ユーザＢから送出されたパケット流が同じ品質を要求するものならば、同じクラスキュー１２にキューイングされるし、異なる品質クラスを要求するパケット流は異なるクラスキュー１２にキューイングされる。各クラスキュー１２から品質に対応した順番でパケットを送出するのがスケジューラ１’である。各クラスでは品質に応じたウエイトが設定されており、スケジューラ１’はこのウエイトの割合に従って各クラスキュー１２からパケットを送出する。
【０００５】
スケジューラ１’の具体的方法を次に示す。各クラス毎にウエイトカウンタを設け、最初にそのウエイトカウンタに、品質に応じたウエイト値を設定する。スケジューラ１’は、Ｒｏｕｎｄ　Ｒｏｂｉｎ（ラウンドロビン）方式で順番に各クラスのウエイトカウンタをチェックし、ウエイトカウンタの値が１以上であるクラスから、パケットを１つ送出する。それと同時にウエイトカウンタの値を削減用ウエイト値分だけ減少させ、ウエイトカウンタ値が０以下になるとＲｏｕｎｄ　Ｒｏｂｉｎによる送出の順番がまわってきてもパケット送出を行わない。全てのクラスについて、ウエイトカウンタ値が０であるかキューにパケットがない場合は、全クラスのウエイトカウンタ値を各々のウエイトに再設定する。
【０００６】
従来の技術のＷＲＲ方式によるパケット送出スケジューリング装置は、特に品質として帯域を取り上げた場合に有効であることが示されている。各クラスのウエイト比＝各クラスの帯域比とするのである。クラス数をＮ、クラスｉ（＝１、２〜Ｎ）で保証する１つのパケット流の帯域をＢｉ、及びそのクラスのパケット流の数をＦｉとした場合、クラスｉのウエイトＷｉは次式（１）
【０００７】
【数１】
2004080081.tif 000003
【０００８】
のとおりになる。ただし、式（１）中のＢｋ、ＦｋはクラスＫの１つのパケットフローの帯域及びそのパケットフローの数を表し、トータルウエイト値は、全クラスのウエイト値の総和を示す。また、上記式の右辺を［Ｘ］　で表すと、［Ｘ］はＸを小数点以下で四捨五入した０以上の整数値を表している（なお、便宜上数式の一部を代表してＸやＹで表す）。
【０００９】
クラス毎のウエイトを上記のように決定し、ＷＲＲ方式によるパケット送出を行うと、各クラスにおける帯域制御に有効である。なお、トータルウエイト値と削減用ウエイト値は、システムで適切に決定する。従来技術では、削減用ウエイト値を送出したパケットの長さ（Ｂｙｔｅ）とし、トータルウエイト値は送出可能なデータ量（Ｂｙｔｅ）としている
【００１０】
【発明が解決しようとする課題】
しかしながら、上記のパケット送出スケジューリング装置１では、通信品質のうち、帯域と同様に重要である遅延の制御ができていないのは明らかである。なぜならば、装置の中に遅延に関する要素が含まれていないからである。例えばユーザがパケット遅延を５０ｍｓ程度に抑えてほしいという要求があってもこの装置１のままでは実現できない。パケットの遅延制御を行うためには、遅延要素をパケット送出スケジューリング装置に入れる必要がある。
【００１１】
本発明は上記従来例の問題点に鑑み、通信品質のうち、帯域と同様に重要である遅延を制御することができるパケット交換装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
請求項１に記載の発明は上記目的を達成するために、入力パケットをそのクラス毎に振り分けるクラス振り分け手段と、
前記クラス振り分け手段により振り分けられた各クラスの入力パケットをそれぞれキューイングする複数のクラスキューと、
前記複数のクラスキューのそれぞれにキューイングされた各入力パケットのキュー長をカウントアップし、出力時にカウントダウンする複数のキュー長カウント手段と、
前記複数のクラスキューのそれぞれにキューイングされている入力パケットのウエイトをカウントする複数のウエイトカウント手段と、
前記複数のウエイトカウント手段の各値をラウンドロビンでチェックして、その値が１以上の場合に、当該クラスキューにキューイングされている入力パケットを送出して当該ウエイトカウント手段をカウントダウンさせる手段と、
前記複数のキュー長カウント手段及び複数のウエイトカウント手段の全てをチェックして全てのクラスのキュー長が０か又は全てのクラスのウエイトが０の場合に、各クラスのキュー長及び制御遅延量に基づいて各クラスのウエイトを計算して前記複数のウエイトカウント手段の各々にセットするウエイト計算手段とを、
有することを特徴とする。
請求項１に記載の発明によれば、各クラスのキュー長と制御遅延量に基づいて各クラスのウエイトを計算するので、通信品質のうち、帯域と同様に重要である遅延を制御することができる。
【００１３】
請求項２に記載の発明は、請求項１に記載のパケット交換装置において、
前記ウエイト計算手段が、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
Ｌｉ×α／Ｄｉ
を用いて算出することを特徴とする。
請求項２に記載の発明によれば、各クラスのキュー長Ｌｉと、制御遅延量Ｄｉとキュー長補正パラメータαに基づいて各クラスのウエイトを計算するので、通信品質のうち、帯域と同様に重要である遅延を制御することができる。
【００１４】
請求項３に記載の発明は、請求項１又は２に記載のパケット交換装置において、
前記ウエイト計算手段が、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
Ｌｉ×α／Ｄｉ又は
１／Ｄｉ
の内の大きい方を用いて算出することを特徴とする。
請求項３に記載の発明によれば、トラフィックの形態によって適切なウエイトＷｉを算出することができる。
【００１５】
請求項４に記載の発明は、請求項１から３のいずれか１つに記載のパケット交換装置において、
前記ウエイト計算手段が、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
Ｅｘｐ（Ｌｉ×α／Ｄｉ）
を用いて算出することを特徴とする。
請求項４に記載の発明によれば、トラフィックの形態によって適切なウエイトＷｉを算出することができる。
【００１６】
請求項５に記載の発明は、請求項１から４のいずれか１つに記載のパケット交換装置において、
前記ウエイト計算手段が、各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
（Ｌｉ×α／Ｄｉ）のＸ乗（Ｘは整数）
を用いて算出することを特徴とする。
請求項５に記載の発明によれば、トラフィックの形態によって適切なウエイトＷｉを算出することができる。
【００１７】
請求項６に記載の発明は、請求項１から５のいずれか１つに記載のパケット交換装置において、
各クラスｉの制御遅延量をＤｉ、そのキュー長カウント手段の値をＬｉ、キュー長補正パラメータをαとして、各クラスｉのウエイトＷｉを
Ｌｏｇ（Ｌｉ×α／Ｄｉ）
を用いて算出することを特徴とする。
請求項６に記載の発明によれば、トラフィックの形態によって適切なウエイトＷｉを算出することができる。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
＜第１の実施の形態＞
図１は本発明に係るパケット交換装置の第１の実施の形態を示すブロック図、図２は図１のウエイト計算部の構成を示すブロック図である。
【００１９】
（構成の説明）
図１に示すパケット交換装置は、クラス振り分け部１１と、クラスｉ（＝１、２〜Ｎ）毎のキュー１２［１］〜１２［Ｎ］と、クラスｉ毎の状態変数部１３［１］〜１３［Ｎ］、スケジューリング部１４の４つから構成される。クラス振り分け部１１は、入力されてきたパケットをその品質に応じたクラスに振り分け、クラスｉ毎のキュー１２［１］〜１２［Ｎ］には、クラスｉ別に振り分けられたパケットがキューイングされる。
【００２０】
クラスｉ毎の状態変数部１３［１］〜１３［Ｎ］の各々は、制御遅延レジスタ１３ａと、キュー長カウンタ１３ｂと、ウエイトカウンタ１３ｃの３つの要素から構成される。制御遅延レジスタ１３ａには、そのクラスｉで制御されるべき遅延量Ｄｉが設定されている。その遅延量Ｄｉは、システム固有かあるいは何らかの手段で動的に決められている。キュー長カウンタ１３ｂにはキュー長Ｌｉが保持されている。つまりパケットが１つキュー１２に入力するとキュー長カウンタ１３ｂの値Ｌｉはパケット長分増加し、パケットが１つ出力されるとキュー長カウンタ１３ｂの値Ｌｉはパケット長分減少する。ウエイトカウンタ１３ｃはウエイトＷｉを保持している。つまり現時点での送出可能なデータ量（Ｂｙｔｅ）＝Ｗｉを保持しており、パケットが１つ送出される毎にウエイトカウンタ１３ｃの値Ｗｉはそのパケット長分減少される。ウエイトカウンタ１３ｃは、あるリセットタイミングで、ウエイト値に再設定される。
【００２１】
スケジューリング部１４は、パケット送出判定部１４ａと、ウエイトカウンタリセット判定部１４ｂと、図２に詳しく示すようなウエイト計算部１４ｃから構成される。パケット送出判定部１４ａは、そのクラスｉのパケットを送出するかどうかを決定する。Ｒｏｕｎｄ　Ｒｏｂｉｎに従って各クラスｉ毎にウエイトカウンタ１３ｃをチェックし、その値が１以上ならばそのクラスｉのキュー１２［ｉ］からパケットを１つ取り出して送出し、値が０以下ならばそのクラスｉのキュー１２［ｉ］からはパケット送出は行わず次のクラスｉ＋１のパケット送出判定に移る。
【００２２】
パケット送出を行った場合、ウエイトカウンタ１３ｃの値Ｗｉをパケット長分だけ減少させ、ウエイトカウンタリセット判定部１４ｂは、全クラスのウエイトカウンタ１３ｃをリセット（再設定）する契機を決定する。全てのクラスのキュー長とウエイトカウンタ１３ｃをチェックし、全てのクラスにおいてキュー長カウンタ１３ｂが０かウエイトカウンタ１３ｃが０のどちらかであるならば、全クラスのウエイトカウンタ１３ｃをクラス毎に計算されたウエイト値に再設定する。ウエイト計算部１４ｃは、リセット時に再設定するウエイト値を各クラス毎に計算する。その計算方法は動作の説明で行う。
【００２３】
（動作の説明）
パケットがクラスキュー１２［ｉ］に入ってくると、そのクラスｉのキュー長カウンタ１３ｂが入力パケット長分だけ増加する。またパケットがクラスキュー１２［ｉ］から出力されると、そのクラスｉのキュー長カウンタ１３ｂは出力パケット長分だけ減少する。それとは非同期にパケット送出判定部１４ａは、１パケット処理単位時間毎に、１つのクラスｉのウエイトカウンタ１３ｃの値をチェックし、その値が１以上ならばそのクラスキュー１２から１パケット送出してウエイトカウンタ１３ｃ及びキュー長カウンタ１３ｂをパケット長分だけ減少させる。パケット送出判定部１４ａは、この処理を全てのクラスについてＲｏｕｎｄ　Ｒｏｂｉｎ方式で行う。
【００２４】
ウエイトカウンタリセット判定部１４ｂは、各クラスｉのキュー長カウンタ１３ｂ及びウエイトカウンタ１３ｃをチェックし、全クラスにおいてキュー長カウンタ１３ｂが０か、ウエイトカウンタ１３ｃが０かのどちらかであるならば、全クラスについてウエイトカウンタ１３ｃの再設定を行う。そうでなければ再設定は行わない。ウエイトカウンタリセット判定部１４ｂの起動契機は、パケット送出判定部１４ａの処理後に行ってもよいし、パケット送出判定部１４ａの処理が全クラスについて１順した後で行ってもよく、ここでは特定はしない。
【００２５】
ウエイト計算部１４ｃは、再設定する場合のウエイト値をクラスｉ毎に計算する。計算方法を以下に示す。クラスｉで保証する１つのパケット流の許容遅延量をＤｉ、かつそのキュー長をＬｉとした場合、クラスｉのウエイトＷｉは次式（２）のとおりになる。
【００２６】
【数２】
2004080081.tif 000004
【００２７】
なお、αはキュー長補正パラメータであり、例えば、
α＝そのクラスの平均パケット長／全クラスの平均パケット長
として、可変長パケットによるキュー長の不公平性を補正するためのパラメータである。Ｌｋ、Ｄｋはそれぞれ、クラスｋのキュー長、制御遅延量である。
【００２８】
この方法を実現するためのウエイト計算部１４ｃの構成を図２に示し、その動作を説明する。『（キュー長×α）／制御遅延量の除算処理部』１４１は、全クラスについて式（２）の除算処理（＝Ｌｉ×α／Ｄ）を行う。『求めるクラスの結果保持部』１４２は、ウエイトを求めるクラスｉの『（キュー長×α）／制御遅延量の除算処理部』１４１の結果を保持する。
【００２９】
『累積処理部』１４３は、『（キュー長×α）／制御遅延量の除算処理部』１４１によって得られた値について全クラスの総和（＝ΣＬｋ／Ｄｋ）をとる。『除算処理部』１４４は、
『求めるクラスの結果保持部』１４２の値／『累積処理部』１４３の値
を計算する。『トータルウエイト値との乗算処理部』１４５は、
トータルウエイト値×『除算処理部』の値
を計算し、その値を小数点以下で四捨五入して０以上の整数値Ｗｉを求める。以上の計算により再設定する際のウエイトＷｉを導出することができる。ウエイト計算部１４ｃにより導出されたウエイトＷｉはウエイトカウンタ１３ｃに設定される。
【００３０】
（効果の説明）
以上のように第１の実施の形態によると、ウエイトカウンタ１３ｃのリセット時に、キュー長×αと制御遅延量Ｄｉの比に基づいて各クラスｉのウエイトＷｉをダイナミックに決定するため、
・キュー長Ｌｉが長いほど（待たされているパケットの数が多いほど）、多くのウエイトＷｉが与えられるので、パケット送出機会がより多くなりパケット遅延量が少なくなる方向となる
・制御遅延量Ｄが大きい（多少遅延が多くてもかまわない）クラスほど少ないウエイトＷｉが与えられるので、パケット送出機会がより少なくなりパケット遅延量が多くなる方向となる
という特性を持つことになり、トラフィック量（キュー長Ｌｉ）と制御遅延量Ｄｉに応じたリアルタイムなパケット遅延制御が行われることになる。これにより従来技術の『遅延制御ができない』という課題を解決することができる。
【００３１】
＜第２の実施の形態＞
（構成の説明）
全体構成は図１と同じである。
（動作の説明）
第１の実施の形態との違いは、ウエイト計算部１４ｃにおける計算方法である。その方法を以下に示す。クラス数をＮ、クラスｉで保証する１つのパケット流の制御遅延量をＤｉ、かつそのキュー長をＬｉとした場合、クラスｉのウエイトＷｉを次式（３）で求める。
【００３２】
【数３】
2004080081.tif 000005
【００３３】
ただし、式中のＭａｘ（Ｘ，Ｙ）は、Ｘ，Ｙのうち大きい方を表す。ウエイト値計算部１４ｃにより導出されたウエイトＷｉはウエイトカウンタ１３ｃに設定される。この計算式（３）によると、ウエイトカウンタ１３ｃのリセット時に、たとえキュー１２にパケットがない場合でも、制御遅延量Ｄｉの逆数の比でウエイトＷｉが計算されて設定される。ここで、第１の実施の形態では、そのクラスｉのウエイトＷｉは０になる。
【００３４】
この方法を実現するためのウエイト計算部１４ｃの構成を図３に示し、その動作を説明する。『（キュー長×α）／制御遅延量の除算処理部』１４１は、全クラスについて式（３）の除算処理（＝Ｌｉ×α／Ｄｉ）を行い、『１／制御遅延量の除算処理部』１４６は、式（３）の除算処理（＝１／Ｄｉ）を行う。『Ｍａｘ演算処理部』１４７は、『（キュー長×α）／制御遅延量の除算処理部』１４１の値と『１／制御遅延量の除算処理部』１４６の値を比較して、値の大きい方Ｍａｘ（Ｌｉ×α／Ｄｉ，１／Ｄｉ）を出力する。
【００３５】
『求めるクラスの結果保持部』１４２は、ウエイトＷｉを求めるクラスｉの『Ｍａｘ演算処理部』１４７の値を保持する。『累積処理部』１４３は、『Ｍａｘ演算処理部』１４７によって得られた値について全クラスの総和｛＝Σ（Ｌｋ×α／Ｄｋ，１／Ｄｋ）｝をとる。『除算処理部』１４４は、『求めるクラスの結果保持部』１４２の値／『累積処理部』１４３の値を計算する。『トータルウエイト値との乗算処理部』１４５は、トータルウエイト値×『除算処理部』１４４の値を計算し、その値を小数点以下で四捨五入して０以上の整数値Ｗｉを求める。以上の計算により再設定する際のウエイトＷｉを導出することができる。
【００３６】
（効果の説明）
以上のように第２の実施の形態によると、トラフィック量と制御遅延量Ｄｉに応じたリアルタイムなパケット遅延制御が行われることになる。第１の実施の形態との効果の違いは、トラフィックの形態によっては第２の実施の形態のウエイト計算方法の方がより適切であり、結果としてパケット遅延量の制御を効果的（各クラスにおける制御遅延量を保証できる確率を向上させること）に行えることである。
【００３７】
各クラスの入力パケットのトラフィック形態が、
・分散が小さくてより平均性が強い（パケットの入力間隔がその平均値から大きく変動しない）という特徴を持つ場合には、
・ある瞬間（ウエイトカウンタ１３ｃのリセット時）にクラスキュー１２にパケットがなくても、次の周期の間（次のウエイトカウンタ１３ｃのリセット時までの期間）にはパケットが入力される確率が高いと考えられるので、ウエイト値を正に設定しておいた方がパケットを送出することができて遅延量を減少することができると考えられる。したがって、入力トラフィック形態によっては、第２の実施の形態で示したウエイト計算方法がより効果的になる。
【００３８】
＜第３の実施の形態＞
（構成の説明）
全体構成は図１と同じである。
（動作の説明）
第１、第２の実施の形態との違いは、ウエイト計算部１４ｃにおける計算方法である。その方法を以下に示す。クラス数をＮ、クラスｉで保証する１つのパケット流の制御遅延量をＤｉ、かつそのキュー長をＬｉとした場合、クラスｉのウエイトＷｉを次式（４）で求める。
【００３９】
【数４】
2004080081.tif 000006
【００４０】
ただし、式（４）中のＥｘｐ（ｘ）はｅｘを表す。この方法を実現するためのウエイト計算部１４ｃの構成を図４に示し、その動作を説明する。『（キュー長×α）／制御遅延量の除算処理部』１４１は、全クラスについて式（４）の除算処理（＝Ｌｉ×α／Ｄｉ）を行う。『ｅを底とする指数演算処理部』１４８は、『（キュー長×α）／制御遅延量の除算処理部』１４１の値を基に『指数値テーブル』１４９を検索して、Ｅｘｐ（Ｌｉ×α／Ｄｉ）を求める。『指数値テーブル』１４９は、定数ＡとＥｘｐ（Ａ）との表である。
【００４１】
『求めるクラスの結果保持部』１４２は、ウエイトＷｉを求めるクラスｉの『ｅを底とする指数演算処理部』１４８の値を保持する。『累積処理部』１４３は、『ｅを底とする指数演算処理部』１４８によって得られた値について全クラスの総和｛＝ΣＥｘｐ（Ｌｋ×α／Ｄｋ）｝をとる。『除算処理部』１４４は、
『求めるクラスの結果保持部』１４２の値／『累積処理部』１４３の値
を計算する。『トータルウエイト値との乗算処理部』１４５は、
トータルウエイト値×『除算処理部』１４４の値
を計算し、その値を小数点以下で四捨五入して０以上の整数値Ｗｉを求める。以上の計算により再設定する際のウエイトＷｉを導出することができる。
【００４２】
（効果の説明）
以上のように第３の実施の形態によると、トラフィック量と制御遅延量Ｄに応じたリアルタイムなパケット遅延制御が行われることになる。第１、２の実施の形態との効果の違いは、トラフィックの形態によっては第３の実施の形態のウエイト計算方法の方がより適切であり、結果としてパケット遅延量の制御を効果的（各クラスにおける制御遅延量を保証できる確率を向上させ、パケットごと）に行えることである。
【００４３】
各クラスｉの入力パケットのトラフィック形態が、
・いったんバースト的になると急激にそのバースト性が強くなるという特徴
・あるいはいったんバースト性が弱まりだすと急激に弱まっていくという特徴
を持つ場合には、
・ウエイトＷｉを指数関数的に増加させてより多くのパケットを送出させたほうがパケット遅延量を減少させることができるし
・あるいはウエイトＷｉを指数関数的に減少させてその減少させたウエイト分を他のクラスのウエイトにまわした方がウエイトを適切にクラス配分できてパケット遅延量の減少につながる
と考えられる。したがって、入力トラフィック形態によっては、第３の実施の形態で示したウエイト計算方法がより効果的になる。
【００４４】
＜第４の実施の形態＞
（構成の説明）
全体構成は図１と同じである。
（動作の説明）
第１〜第３の実施の形態との違いは、ウエイト計算部１４ｃにおける計算方法である。その方法を以下に示す。クラス数をＮ、クラスｉで保証する１つのパケット流の制御遅延量をＤｉ、かつそのキュー長をＬｉとした場合、クラスｉのウエイトＷｉを次式（５）で求める。
【００４５】
【数５】
2004080081.tif 000007
【００４６】
ただし、式中のＸは実数である。この方法を実現するためのウエイト計算部１４ｃの構成を図５に示し、その動作を説明する。『（キュー長×α）／制御遅延量の除算処理部』１４１は、全クラスについて式（５）の除算処理（＝Ｌｉ×α／Ｄｉ）を行う。『Ｘ次乗演算処理部』１５０は、『（キュー長×α）／制御遅延量の除算処理部』１４１の値のＸ乗を求める。
【００４７】
『求めるクラスの結果保持部』１４２は、ウエイトＷｉを求めるクラスｉの『Ｘ次乗演算処理部』１５０の値を保持する。
『累積処理部』１４３は、『Ｘ次乗演算処理部』１５０によって得られた値について全クラス総和をとる。『除算処理部』１４４は、『求めるクラスの結果保持部』１４２の値／『累積処理部』１４３の値を計算する。『トータルウエイト値との乗算処理部』１４５は、トータルウエイト値×『除算処理部』１４４の値を計算し、その値を小数点以下で四捨五入して０以上の整数値Ｗｉを求める。以上の計算により再設定する際のウエイトＷｉを導出することができる。ウエイト値計算部１４ｃにより導出されたウエイトＷｉはウエイトカウンタ１３ｃに設定される。
【００４８】
（効果の説明）
以上のように第４の実施の形態によると、トラフィック量と制御遅延量Ｄに応じたリアルタイムなパケット遅延制御が行われることになる。第１、２、３の実施例との効果の違いは、トラフィックの形態によっては第４の実施の形態のウエイト計算方法の方がより適切であり、結果としてパケット遅延量の制御を効果的（各クラスにおける制御遅延量を保証できる確率を向上させること）に行えることである。
【００４９】
各クラスの入力パケットのトラフィック形態の、
・いったんバースト的になると急激にそのバースト性が強くなるという特徴
・あるいはいったんバースト性が弱まりだすと急激に弱まっていくという特徴
が第３の実施の形態よりも強い場合には、
第４の実施の形態のウエイト計算方法でしめした『Ｘ』の値を大きくとることにより、
・ウエイトＷｉを高次関数的に増加させてより多くのパケットを送出させたほうがパケット遅延量を減少さパケットことができるし
・あるいはウエイトＷｉを高次関数的に減少させてその減少させたウエイト分を他のクラスのウエイトにまわした方がウエイトを適切にクラス配分できてパケット遅延量の減少につながる
と考えられる。したがって、入力トラフィック形態によっては、第４の実施の形態で示したウエイト計算方法がより効果的になる。
【００５０】
＜第５の実施の形態＞
（構成の説明）
全体構成は図１と同じである。
（動作の説明）
第１〜第４の実施の形態との違いは、ウエイト計算部１４ｃにおける計算方法である。その方法を以下に示す。クラス数をＮ、クラスｉで保証する１つのパケット流の制御遅延量をＤｉ、かつそのキュー長をＬｉとした場合、クラスｉのウエイトＷｉを次式（６）で求める。
【００５１】
【数６】
2004080081.tif 000008
【００５２】
ただし、式中のＬｏｇ（Ｘ）はＸの自然対数である。この方法を実現するためのウエイト計算部１４ｃの構成を図６に示し、その動作を説明する。『（キュー長×α）／制御遅延量の除算処理部』１４１は、全クラスについて式（６）の除算処理（＝Ｌｉ×α／Ｄｉ）を行う。『ｅを底とする対数演算処理部』１５１は、『（キュー長×α）／制御遅延量の除算処理部』１４１の値を基に『対数値テーブル』１５２を検索して、Ｌｏｇ（Ｌｉ×α／Ｄｉ）の値を求める。『対数値テーブル』１５２は、定数ＡとＬｏｇ（Ａ）との表である。
【００５３】
『求めるクラスの結果保持部』１４２は、ウエイトＷｉを求めるクラスｉの『ｅを底とする対数演算処理部』１５１の値を保持する。『累積処理部』１４３’は、『ｅを底とする対数演算処理部』１５１によって得られた値について全クラスの総和を、その値を小数点以下で四捨五入して０以上の整数値を求める。『除算処理部』１４４は、『求めるクラスの結果保持部』１４２の値／『累積処理部』１４３’の値を計算する。『トータルウエイト値との乗算処理部』１４５は、トータルウエイト値×『除算処理部』１４４の値を計算し、その値を小数点以下で四捨五入して０以上の整数値Ｗｉを求める。以上の計算により再設定する際のウエイトＷｉを導出することができる。ウエイト値計算部１４ｃにより導出されたウエイトＷｉはウエイトカウンタ１３ｃに設定される。
【００５４】
（効果の説明）
以上のように第５の実施の形態によると、トラフィック量と制御遅延量Ｄに応じたリアルタイムなパケット遅延制御が行われることになる。第１、２、３、４の実施の形態との効果の違いは、トラフィックの形態によっては第５の実施の形態のウエイト計算方法の方がより適切であり、結果としてパケット遅延量の制御を効果的（各クラスにおける制御遅延量を保証できる確率を向上させること）に行えることである。
【００５５】
各クラスの入力パケットのトラフィック形態が、
・バースト的になると、ゆるやかにそのバースト性が強くなるという特徴
・あるいはバースト性が弱まりだすとゆるやかに弱まっていくという特徴
を持つ場合には、
・ウエイトＷｉをＬｏｇ関数的に増加させてパケット送出量の増加を抑制させて、その抑制させたウエイト分を他のクラスのウエイトにまわした方がウエイトを適切にクラス配分できてパケット遅延量の減少につながるし
・あるいはウエイトＷｉをＬｏｇ関数的に減少させてパケット送出量の減少を抑制したほうがより多くのパケットを送出することができてパケット遅延量の減少につながる
と考えられる。したがって、入力トラフィック形態によっては、第５の実施の形態で示したウエイト計算方法がより効果的になる。
【００５６】
（利用形態の説明）
各実施の形態の構成／動作では、クラスキュー１２とクラス毎の状態変数部１３とスケジューリング部１４とを、ある処理機能で分けて、互いに指示／通知により連携処理を行うようになっていたが、「処理機能の分け方」、「指示／通知の主体」を特定することはしない。例えば処理機能の分け方において、クラス毎の状態変数部１３には、状態変数（制御遅延レジスタ１３ａ、キュー長カウンタ１３ｂ、ウエイトカウンタ１３ｃ）とその増減処理機能を持たせ、指示／通知においては、クラスキュー１２がパケット入出力の通知をクラス毎の状態変数部１３に行い、スケジューリング部１４がクラス毎の状態変数部１３に増減の指示を行うという構成でもよい。
【００５７】
また、例えば処理機能の分け方において、クラス毎の状態変数部１３自体がクラスキュー１２を監視していてパケットが入力してきたらキュー長カウンタ１３ｂをパケット長分だけ増減し、パケットが出力したらキュー長カウンタ１３ｂをパケット長分だけ減少させるという構成でもよい。また、例えば処理機能の分け方において、クラス毎の状態変数部１３の制御遅延レジスタ１３ａをスケジューリング部１４に持たせた構成でもよい。
【００５８】
同様にクラス毎の状態変数部１３とスケジューリング部１４の内部構成においても、「処理機能の分け方」、「指示／通知の主体」を特定することはしない。例えば処理機能の分け方において、ウエイトカウンタ１３ｃのリセット時、ウエイトカウンタ１３ｃにウエイト値を再設定するのはウエイト計算部１４ｃが行ってもよいし、指示／通知の主体においては、ウエイト計算部１４ｃからのクラス毎の状態変数部１３の通知によりクラス毎の状態変数部１３がウエイトカウンタ１３ｃにウエイト値を再設定してもよい。
【００５９】
さらに、各実施の形態では、クラス毎の状態変数部１３として「レジスタ」、「カウンタ」という特別のハードウェアをイメージさせる用語を用いたが、「ハードウェアとソフトウェアの切り分け」を特定することはしない。例えば、クラス毎の状態変数部１３の「レジスタ」、「カウンタ」をソフトウェアが使用する汎用メモリ上で実現してもよい。その場合には、クラスキュー１２へのパケット出入力の際にクラスキュー１２からソフトウェアへ通知（割り込み）が入るという構成をとってもよい。また、各実施の形態で示したウエイト計算部１４ｃにおけるウエイト計算方法は１つの例であり、その計算方法を特定することはしない。例えば、第１、第２の実施の形態の各ウエイト計算方法を組み合わせてもよいし、まったく別の計算式を使用してもよい。
【００６０】
【発明の効果】
以上説明したように請求項１に記載の発明によれば、各クラスのキュー長と制御遅延量に基づいて各クラスのウエイトを計算するので、通信品質のうち、帯域と同様に重要である遅延を制御することができる。
請求項２に記載の発明によれば、各クラスのキュー長Ｌｉと、制御遅延量Ｄｉとキュー長補正パラメータαに基づいて各クラスのウエイトを計算するので、通信品質のうち、帯域と同様に重要である遅延を制御することができる。
請求項３、４、５、６に記載の発明によれば、トラフィックの形態によって適切なウエイトＷｉを算出することができる。
【図面の簡単な説明】
【図１】本発明に係るパケット交換装置の第１の実施の形態を示すブロック図
【図２】図１のウエイト計算部の構成を示すブロック図
【図３】本発明の第２の実施の形態のウエイト計算部の構成を示すブロック図
【図４】本発明の第３の実施の形態のウエイト計算部の構成を示すブロック図
【図５】本発明の第４の実施の形態のウエイト計算部の構成を示すブロック図
【図６】本発明の第５の実施の形態のウエイト計算部の構成を示すブロック図
【図７】従来のパケット交換装置の配置例を示すブロック図
【図８】従来のパケット交換装置の基本モデルを示すブロック図
【符号の説明】
１１　クラス振り分け部
１２　キュー
１３ａ　制御遅延レジスタ
１３ｂ　キュー長カウンタ
１３ｃ　ウエイトカウンタ
１４ａ　パケット送出判定部
１４ｂ　ウエイトカウンタリセット判定部
１４ｃ　ウエイト計算部
【図１】
2004080081.tif 000009
【図２】
2004080081.tif 000010
【図３】
2004080081.tif 000011
【図４】
2004080081.tif 000012
【図５】
2004080081.tif 000013
【図６】
2004080081.tif 000014
【図７】
2004080081.tif 000015
【図８】
2004080081.tif 000016