(57)【特許請求の範囲】
【請求項１】
到着したパケットから廃棄確率に応じた量のパケットを廃棄するパケット廃棄部と、
前記到着したパケットの内の、前記パケット廃棄部で廃棄されなかったパケットを一時的に蓄積してから出力するバッファと、
前記バッファに蓄積されている前記パケットの蓄積量の移動平均値を逐次算出する平均値算出部と、
前記平均値算出部で逐次算出された複数の移動平均値のうちの、現在の移動平均値と同じ値を持つ過去の移動平均値の算出時点を含む算出期間についての頻度分布を生成する統計処理部と、
前記統計処理部で生成された前記頻度分布に応じて、前記移動平均値についての複数の閾値を決定する閾値決定部と、
前記閾値決定部で決定された前記複数の閾値によって区切られた複数の区間のいずれかに、前記平均値算出部で算出された前記移動平均値を分類する閾値処理を実行し、前記閾値処理の結果に応じて前記廃棄確率を決定する確率決定部と
を有することを特徴とするパケット制御装置。
【請求項２】
前記閾値決定部は、前記頻度分布によって示される前記移動平均値の頻度が高いほど、前記区間が狭くなるように前記複数の閾値を決定することを特徴とする請求項１に記載のパケット制御装置。
【請求項３】
前記到着したパケットの種類である到着種類を判別する判別部をさらに有し、
前記確率決定部は、予め決められたパケットの種類である基準種類毎に前記廃棄確率を決定し、
前記パケット廃棄部は、前記到着種類に属するパケットを、前記到着種類に対応する前記基準種類についての前記廃棄確率に応じた量、廃棄する
ことを特徴とする請求項１又は２に記載のパケット制御装置。
【請求項４】
前記到着したパケットの種類である到着種類を判別する判別部をさらに有し、
前記閾値決定部は、予め決められたパケットの種類である基準種類毎に前記複数の閾値の決定を行い、
前記確率決定部は、前記基準種類毎に、前記閾値処理を実行して前記廃棄確率を決定し、
前記パケット廃棄部は、前記到着種類に属するパケットを、前記到着種類に対応する前記基準種類についての前記廃棄確率に応じた量、廃棄する
ことを特徴とする請求項１又は２に記載のパケット制御装置。
【請求項５】
前記確率決定部は、前記複数の区間に対応する複数の廃棄確率候補値を決定し、
前記複数の区間のうちの前記閾値処理の結果が示す区間に対応する、前記複数の廃棄確率候補値のうちの廃棄確率候補値を、前記廃棄確率とする
ことを特徴とする請求項１から４のいずれか１項に記載のパケット制御装置。
【請求項６】
前記確率決定部は、前記複数の区間と前記複数の廃棄確率候補値を対応付けたテーブルを有し、前記閾値決定部で前記複数の閾値が決定される度に、前記テーブルを更新し、
前記テーブルを参照して、前記閾値処理の結果が示す区間に対応する前記廃棄確率候補値を、前記廃棄確率として抽出する
ことを特徴とする請求項５に記載のパケット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バッファを有するパケット制御装置に関し、より詳細には、バッファが溢れないようにパケットを廃棄するパケット制御装置に関するものである。
【背景技術】
【０００２】
近年、通信を行うユーザ数の増加及びユーザ当りのトラヒック量の増大に伴い、パケット制御装置において効率的な輻輳制御機能の実装が重要となってきている。輻輳制御を実現する手法の一つとしてはＲＥＤ（Ｒａｎｄｏｍ  Ｅａｒｌｙ  Ｄｅｔｅｃｔｉｏｎ）が挙げられる（例えば、非特許文献１参照）。
【０００３】
ＲＥＤは、パケット制御装置に到着するパケットを、バッファに格納する前に、設定された廃棄確率（パケットが廃棄される確率）に基づいてランダムに廃棄することで、バッファの溢れを回避する輻輳制御を行う。ＲＥＤは、バッファ内に蓄積されたデータ量であるバッファ蓄積量を定期的に観測し、観測したバッファ蓄積量から上記廃棄確率を算出しており、上記廃棄確率はそのパケットを送信するユーザに依らず決定される。よって、ＲＥＤでは、各ユーザ間で同一の廃棄確率となり、ユーザ間の公平性が確保される。
【０００４】
ＲＥＤは、廃棄確率の算出に複雑な演算処理が必要となることから、ハードウェアとソフトウェアを組み合わせた手法で元来実現されてきた。しかし、この手法では、処理速度に大幅な時間を要することから、近年増加傾向にあるトラヒック量に対応できないことが予想される。
【０００５】
この問題に対し、特許文献１では、ハードウェアのみでＲＥＤを実現する手法が提案されている。特許文献１に記載のパケット処理装置では、ＲＥＤをハードウェアで実現するにあたり、廃棄確率の算出に用いるバッファ蓄積量の移動平均値を、均等な間隔の閾値で閾値処理し、閾値処理した結果に対応する廃棄確率の値を、ルックアップテーブルを参照して得ている。このルックアップテーブルは、各閾値で区切られた区間のそれぞれに廃棄確率の値を関連付けたものである。以上のように、このパケット処理装置では、廃棄確率を求めるために、予め定められた均等な間隔での閾値処理とルックアップテーブルを用いた参照処理を採用することにより、限られたハードウェアリソースで効率的にＲＥＤを実現する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−９４３９２号公報
【非特許文献】
【０００７】
【非特許文献１】Ｓ．  Ｆｌｏｙｄ  ａｎｄ  Ｖ．  Ｊａｃｏｂｓｏｎ，  “Ｒａｎｄｏｍ  Ｅａｒｌｙ  Ｄｅｔｅｃｔｉｏｎ  Ｇａｔｅｗａｙｓ  ｆｏｒ  Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ”，  ＩＥＥＥ／ＡＣＭ  Ｔｒａｎｓ．  ｏｎ  Ｎｅｔｗｏｒｋｉｎｇ，  ｖｏｌ．１，  ｐｐ．３９７−４１３，  Ａｕｇ．  １９９３．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載のパケット処理装置は、閾値処理で用いる閾値の間隔が均等であり、かつＲＥＤとの処理速度の差を大きくするためには間隔をある程度広くする必要がある。これらの要因から、このパケット処理装置では、バッファ蓄積量の移動平均値の分布が特定の範囲に集中する場合に、トラヒック条件によっては、ＲＥＤの利点の一つであるユーザ間の公平性が十分に確保できない。具体的には、ある閾値の近辺に移動平均値の分布が集中する場合には、バッファ蓄積量の微小な増減で廃棄確率に大きな差が発生することになり、特定ユーザのパケットが到着した時のみバッファ蓄積量が僅かに増加するトラヒック条件を想定すると、同ユーザのパケットのみ廃棄確率が高くなり、他のユーザとの間に不公平が生じる。
【０００９】
本発明は、上述のような実情に鑑みてなされたものであり、その目的は、バッファを有するパケット制御装置において、バッファが溢れないように到着パケットを廃棄するに際し、パケットを送信するユーザ間に不公平が生じ難いようにすることにある。
【課題を解決するための手段】
【００１０】
本発明のパケット制御装置は、到着したパケットから廃棄確率に応じた量のパケットを廃棄するパケット廃棄部と、前記到着したパケットの内の、前記パケット廃棄部で廃棄されなかったパケットを一時的に蓄積してから出力するバッファと、前記バッファに蓄積されている前記パケットの蓄積量の移動平均値を逐次算出する平均値算出部と、前記平均値算出部で逐次算出された複数の移動平均値のうちの、現在の移動平均値と同じ値を持つ過去の移動平均値の算出時点を含む算出期間についての頻度分布を生成する統計処理部と、前記統計処理部で生成された前記頻度分布に応じて、前記移動平均値についての複数の閾値を決定する閾値決定部と、前記閾値決定部で決定された前記複数の閾値によって区切られた複数の区間のいずれかに、前記平均値算出部で算出された前記移動平均値を分類する閾値処理を実行し、前記閾値処理の結果に応じて前記廃棄確率を決定する確率決定部とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、バッファを有し、バッファが溢れないように到着パケットを廃棄することが可能なパケット制御装置において、バッファ蓄積量の移動平均値の頻度分布に基づき移動平均値についての複数の閾値を決定し、それらの閾値を用いて廃棄確率を決定するため、パケットを送信するユーザ間に不公平が生じ難くなる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１に係るパケット制御装置の一構成例を示すブロック図である。
【図２】比較例１におけるバッファ蓄積量の移動平均値と廃棄確率の関係を示す図である。
【図３】比較例２におけるバッファ蓄積量の移動平均値と廃棄確率の関係を、比較例１の関係と比較して示す図である。
【図４】比較例２におけるバッファ蓄積量の移動平均値と廃棄確率との関係を示す近似廃棄確率テーブルを示す図である。
【図５】図１のパケット制御装置における統計処理部で生成される頻度分布の一例を示す図である。
【図６】図１のパケット制御装置において決定される閾値と廃棄確率候補値の関係の一例を示す図である。
【図７】本発明の実施の形態１に係るパケット制御装置の他の構成例を示すブロック図である。
【図８】図７のパケット制御装置におけるテーブル更新処理の一例を示すフローチャートである。
【図９】図８のテーブル更新処理により更新されたテーブルの一例を示す図である。
【図１０】本発明の実施の形態２に係るパケット制御装置で時間情報とともに蓄積されたバッファ蓄積量の移動平均値の一例を示す図である。
【図１１】本発明の実施の形態２に係るパケット制御装置で閾値の決定に用いる頻度分布の一例を示す図である。
【図１２】本発明の実施の形態３に係るパケット制御装置の一構成例を示すブロック図である。
【図１３】本発明の実施の形態３に係るパケット制御装置の他の構成例を示すブロック図である。
【図１４】本発明の実施の形態１〜３に係るパケット制御装置の他の構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の各実施の形態に係るパケット制御装置について、図面を参照しながら説明する。本発明に係るパケット制御装置は、パケットで信号やデータが送信される様々なプロトコルを採用したネットワークにおいて、トラヒックの輻輳を回避するために設置することができる。このパケット制御装置は、好適にはルータ又はサーバ装置などのゲートウェイ装置に組み込まれるが、例えばテレビ装置又は音声再生装置等の様々な電子機器におけるパケット入力部に組み込むこともできる。
【００１４】
実施の形態１．
図１は、本発明の実施の形態１に係るパケット制御装置の一構成例を示すブロック図である。図１において、太線の矢印はパケットの流れ、細線の矢印は制御情報の流れを示している。
【００１５】
図１で例示するパケット制御装置１は、パケット廃棄部１１、パケット収容部として機能するバッファ１２、平均値算出部１３、確率決定部１４、統計処理部１５、及び閾値決定部１６を有する。また、パケット制御装置１はその全体を制御する制御部（図示せず）を有するように構成しておいてもよい。パケット制御装置１に到着するパケットは、パケット廃棄部１１及びバッファ１２を経由して、パケット制御装置１から出力される。
【００１６】
パケット廃棄部１１は、確率決定部１４にて決定された廃棄確率に応じた量、パケット制御装置１に到着したパケット、つまりパケット制御装置１に入力されたパケットを廃棄する。パケット廃棄部１１は、到着したパケットから上記廃棄確率に応じた量のパケットを廃棄すればよく、上記廃棄確率に従ってランダムに廃棄対象とするのか通過対象とするのかを選択してもよいし、上記廃棄確率に合うような一定周期で廃棄対象を選択するなどしてもよい。
【００１７】
バッファ１２は、上記到着したパケットの内の、パケット廃棄部１１で廃棄されなかったパケットを一時的に蓄積してから出力する。つまり、バッファ１２は、パケット廃棄部１１にて廃棄されずに通過されたパケットをパケット制御装置１から出力されるまで保持する。なお、バッファ１２は、例えばＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ，  Ｆｉｒｓｔ  Ｏｕｔ）でパケットを出力すればよいが、これに限ったものではない。また、バッファ１２の容量、並びにパケット制御装置１におけるパケットの出力タイミングは、例えば、パケット制御装置１の後段に接続する装置での処理がオーバーフローしないように決めておけばよい。
【００１８】
平均値算出部１３は、バッファ１２に蓄積されているパケットの蓄積量（以下、バッファ蓄積量と称す）の平均値を逐次算出する。ここで算出される平均値は、時系列データに基づき、予め定めた算出間隔で逐次算出される平均値、つまり移動平均値を意味する。ここで、平均値算出部１３は、バッファ１２の蓄積量、或いは蓄積可能な残量を上記算出間隔で計測（監視）しておけばよい。若しくは、バッファ１２が上記蓄積量又は上記残量の計測を行い、その計測結果を平均値算出部１３に渡すようにしてもよい。また、他の実施の形態も含め、以下ではバッファ蓄積量に基づき、様々な処理を行うが、バッファ１２の残量に基づき移動平均値を間接的に取得する処理についても本発明の概念に含まれる。
【００１９】
確率決定部１４は、上記廃棄確率を算出するか、或いは後述のテーブルを用いるなどして抽出することで上記廃棄確率を決定する。上記廃棄確率は、トラヒックの輻輳回避を図るために、バッファ１２を溢れさせずバッファ１２の容量に応じた適切な割合で、到着パケットを廃棄するように決定される。この決定方法の詳細については後述する。
【００２０】
統計処理部１５は、平均値算出部１３で逐次算出された複数の移動平均値についての頻度分布（度数分布）を生成する。頻度分布の生成間隔は、平均値算出部１３における移動平均値の算出間隔と同じであってもよいが、それより大きくしておくことが処理負荷低減の点から好ましい。また、統計処理部１５は、頻度分布の生成のために、内部に記憶部１５ａを有し、その記憶部１５ａに、平均値算出部１３で逐次算出された複数の移動平均値を入力して蓄積（保持）しておく。記憶部１５ａは統計処理部１５の外部に設けられていてもよい。
【００２１】
閾値決定部１６は、統計処理部１５で生成された頻度分布の情報（統計情報と称す）を入力し、その頻度分布に応じて、バッファ蓄積量の移動平均値についての複数の閾値を決定する。そして、確率決定部１４は、閾値決定部１６で決定された複数の閾値によって区切られた複数の区間のいずれかに、平均値算出部１３で算出された移動平均値を分類する閾値処理を実行し、その閾値処理の結果（つまり分類結果）に応じてパケット廃棄部１１で使用する上記廃棄確率を決定する。確率決定部１４は、基本的に平均値算出部１３での移動平均値の算出間隔と同じ間隔で閾値処理を行って上記廃棄確率を決定すればよいが、その算出間隔より長い確率決定間隔でそれらの処理を実行してもよい。
【００２２】
本実施の形態における上記廃棄確率の決定について具体的に説明する前に、図２〜図４を参照しながら、ＲＥＤに関する比較例１及び２について説明する。図２は、比較例１におけるバッファ蓄積量の移動平均値と廃棄確率の関係を示す図である。図３は、比較例２におけるバッファ蓄積量の移動平均値と廃棄確率の関係を、比較例１の関係と比較して示す図、図４は、比較例２におけるバッファ蓄積量の移動平均値と廃棄確率との関係を示す近似廃棄確率テーブルを示す図である。
【００２３】
比較例１のパケット制御装置は、バッファ蓄積量の移動平均値を基に、パケットの廃棄確率を決定する。なお、ここでのバッファ蓄積量の移動平均値は、バッファ蓄積量の移動平均値をＱａｖ、現在のバッファ蓄積量をＱ、重み係数をｗとして、以下の式（１）にて定義される。
Ｑａｖ←（１−ｗ）×Ｑａｖ＋ｗ×Ｑ      （１）
【００２４】
また、図２に示すように比較例１では、バッファ蓄積量が最小閾値ｍｉｎＴＨを下回る場合、パケットが全く廃棄されず（廃棄確率が０％となり）、バッファ蓄積量が最大閾値ｍａｘＴＨを上回る場合、パケットが全て廃棄される（廃棄確率が１００％となる）。バッファ蓄積量がｍｉｎＴＨ以上、ｍａｘＴＨ以下の場合には、図２の廃棄確率直線Ｋｒで示したようなバッファ蓄積量の値に応じた廃棄確率に基づき、パケットが廃棄される。なお、図２において、ｍａｘＰは最大閾値ｍａｘＴＨにおける廃棄確率であり、廃棄確率直線Ｋｒの傾きを決定するパラメータである。
【００２５】
一方で、比較例２のパケット制御装置は、近似廃棄確率テーブルと呼ばれる、バッファ蓄積量の移動平均値と廃棄確率を関連付けたテーブルを用いて、比較例１における廃棄確率を算出している。この近似廃棄確率テーブルは、比較例１の３つのパラメータｍｉｎＴＨ，ｍａｘＴＨ，ｍａｘＰを基に予め生成されている。具体的には、この近似廃棄確率テーブルは、基本的に比較例１の最小閾値ｍｉｎＴＨと最大閾値ｍａｘＴＨの間のバッファ蓄積量をＮ等分して得られる、図３の廃棄確率線Ｋｐで示したようなバッファ蓄積量の移動平均値と廃棄確率の関係を予めテーブル化したものであり、図４で示すような近似廃棄確率テーブルである。例えば、比較例２のパケット制御装置は、予め定められた図４の近似廃棄確率テーブルを参照し、現在のバッファ蓄積量の移動平均値が７０．００％の場合、廃棄確率候補値の中から３７．５％を選択して廃棄確率に設定し、その廃棄確率に従い到着パケットを廃棄する。なお、図４では簡略化して記述しているが、バッファ蓄積量の移動平均値は、例えば２行目で５６．２５（％）以上、６２．５０（％）未満を指しており、他の行も同様である。但し、図４の最下行については移動平均値が１００．００（％）を指す。
【００２６】
ここで、図３において、例えば図中の領域Ｒａのような閾値近辺の特定の領域にバッファ蓄積量の移動平均値の分布が集中する場合について、廃棄確率線Ｋｐを比較例１の廃棄確率直線Ｋｒと比較する。領域Ｒａにおいて、比較例１における廃棄確率の差Ｄｒは小さいが、比較例２における廃棄確率の差Ｄｐは大きくなっており、これは比較例２のパケット制御装置が等間隔でＮ段階に閾値処理しているため、並びに分布とは無関係に予め定められた固定の閾値群で閾値処理を実行しているためである。よって、比較例１においては、上記の分布が領域Ｒａに集中する場合でも、到着するパケット間で廃棄確率に大きな差が発生しないため、どのようなトラヒック条件でもユーザ間に不公平は生じない。一方で、比較例２においては、上記の分布が領域Ｒａに集中する場合、バッファ蓄積量の微小な増減で廃棄確率に量子化に起因する大きな差が生じることから、到着するパケット間で廃棄確率に大きな差が発生するため、特定ユーザのパケットが比較例２のパケット制御装置に到着した時のみバッファ蓄積量が僅かに増加するトラヒック条件を想定すると、同ユーザのパケットのみ廃棄確率が高くなり、パケットを送信するユーザ間で不公平が生じる。
【００２７】
このような不公平性を低減させるために、本実施の形態では、上述したようにバッファ蓄積量の移動平均値の頻度分布に応じて複数の閾値を決定してそれらの閾値を用いて廃棄確率を決定する。以下、図５及び図６を併せて参照しながら、このような処理について具体例を挙げて説明する。図５は、パケット制御装置１における統計処理部１５で生成される頻度分布の一例を示す図、図６は、パケット制御装置１において決定される閾値と廃棄確率候補値の関係の一例を示す図である。
【００２８】
まず、平均値算出部１３は、上述したようにバッファ蓄積量の移動平均値を算出するが、その移動平均値の算出式としては式（１）が利用できる。本実施の形態では、この算出式の代わりに他の種類の重み付け手法を適用した算出式を採用することもできる。但し、式（１）の演算は、平均値算出部１３をハードウェアで構成できる点、及び過去の移動平均値と現在のバッファ蓄積量のみから実行できるため処理速度が速い点から望ましい。
【００２９】
式（１）を利用する場合、平均値算出部１３は、その内部又は外部に、過去の移動平均量を格納しておき、移動平均値を算出する度に上書きするような移動平均値記憶部（図示せず）を設けておけばよい。また、式（１）では過去のバッファ蓄積量が算出結果に影響を与える式となっているが、遠い過去のバッファ蓄積量の影響はその値に重み付け係数（１−ｗ）が累積されるため少ない。他の種類の重み付け手法を適用する場合にも、平均値算出部１３の内部又は外部に、現在までの過去のバッファ蓄積量を記憶する蓄積量記憶部（図示せず）を設けておけばよく、これにより、現在のバッファ蓄積量の移動平均値を算出時には平均値算出部１３がその蓄積量記憶部に記憶されたバッファ蓄積量を読み出すことができる。
【００３０】
式（１）を利用する場合には現在までのバッファ蓄積量を全て反映させることを前提とし、また、上記蓄積量記憶部が現在までの全てのバッファ蓄積量を記憶することを前提として説明した。しかし、平均値算出部１３は、現在の移動平均値の算出に際し、過去の全てのバッファ蓄積量を用いなくてもよい。式（１）を採用する場合には、例えばパケット制御装置１に別途設けたリセットボタンの押下により、或いは電源オフ後の電源オンにより、平均値算出部１３等が、上記移動平均値記憶部に記憶された過去の移動平均値のデータも消去するようにすればよい。式（１）のような過去の移動平均値をそのまま利用するのではなく、過去のバッファ蓄積量のデータを利用する方式で現在の移動平均値を算出する場合、上記リセットボタン或いは電源オフ後の電源オンにより、平均値算出部１３等が、蓄積量記憶部に記憶された過去のバッファ蓄積量のデータを消去するようにすればよい。この代替処理として、平均値算出部１３が、上記蓄積量記憶部に現在から一定期間前までの過去のバッファ蓄積量を記憶するように、つまりそれ以前のバッファ蓄積量を消去していくようにしておいてもよい。なお、パケット制御装置１において、記憶部１５ａと上記移動平均値記憶部又は上記蓄積量記憶部は共通の記憶装置を利用することができる。
【００３１】
平均値算出部１３で逐次算出された移動平均値は、確率決定部１４及び統計処理部１５に逐次出力される。統計処理部１５は、これらの移動平均値を記憶部１５ａに記憶し、記憶された移動平均値について、頻度分布を生成する。この頻度分布としては、図５で例示するようなヒストグラム（度数分布図）であってもよいし、例示したヒストグラムを図示できるような、ビンＢの値（移動平均値）とその頻度値とを関連付けたルックアップテーブル（以下、頻度テーブルと称す）であってもよい。但し、後述する閾値決定処理は少なくとも頻度テーブルがあれば実行できるため、頻度テーブルを生成するだけで十分である。なお、図５の縦軸は、バッファ１２におけるバッファ蓄積量の移動平均値の頻度（発生頻度）であり、全ユーザ（具体的には全ユーザの端末）から送信されたパケットについての合計の頻度を表している。
【００３２】
この頻度分布におけるビンＢの幅及び数は、比較例１で使用したような最小閾値ｍｉｎＴＨ及び最大閾値ｍａｘＴＨに基づき、予め決めておいたものを用いてもよいし、単純に平均値算出部１３において算出できる単位をビンの幅とし、算出された移動平均値をそのまま各ビンＢに割り当てるようにして、ビンＢの数だけ最小閾値ｍｉｎＴＨ及び最大閾値ｍａｘＴＨに基づき決定してもよい。ビンＢの数は、最大閾値ｍａｘＴＨと最小閾値ｍｉｎＴＨの差をビンの幅で除算することで算出することができる。なお、除算に際しては、実際には天井関数を用いるなどして整数化も併せて施すようにしておけばよく、その場合、頻度分布における両端の幅を増減させるなどの処理が必要となる場合がある。
【００３３】
ここでは、比較例１における最小閾値ｍｉｎＴＨ及び最大閾値ｍａｘＴＨを使用した例を挙げたが、本実施の形態における最小閾値及び最大閾値は、それぞれ０％及び１００％としてもよいし、いずれも変動値であってもよい。最小閾値及び最大閾値を変動値とする例では、統計処理部１５は、記憶部１５ａに記憶された移動平均値を参照し、実際の移動平均値の最小値及び最大値をそれぞれ最小閾値及び最大閾値として使用するようにすればよい。この場合、ビンの幅又は数を予め決めておけばよい。ビンの幅が決まっていれば、上述したようにビンの数を算出することができ、この場合にも整数化を行うに際しては、頻度分布における両端の幅を増減させるなどの処理が必要となることもある。逆にビンの数が決まっていれば、最大閾値と最小閾値との差をビンの数で除算することで、ビンの幅を算出することができる。
【００３４】
また、記憶部１５ａには、生成された頻度分布の情報（統計情報）も記憶しておくことで、その統計情報を利用して次回の統計情報の生成を実行することができる。例えば、統計処理部１５は、現在の移動平均値を平均値算出部１３から受けた場合、その時点での統計情報に対しその移動平均値に対応する頻度値を１だけ増加させる処理のみで、統計情報の更新が可能となる。
【００３５】
また、記憶部１５ａに蓄積した移動平均値は、一定期間の経過により、若しくは上述したリセットボタンの押下や電源オフ後の電源オンにより、削除されるようにすることもできる。これにより、統計処理部１５は、最近の傾向をより反映した頻度分布を得、閾値決定部１６においても閾値等の決定にそれを利用することができる。一定期間の経過により記憶部１５ａに蓄積した移動平均値を削除する場合、統計処理部１５は、移動平均値を時間情報とともに記憶部１５ａに記憶させておけばよい。また、統計処理部１５は、記憶部１５ａに生成された統計情報も併せて記憶させておくことで、削除対象の移動平均値に対応する頻度値を１だけ減少させる処理のみで、統計情報の更新が可能となる。
【００３６】
閾値決定部１６は、統計処理部１５で生成された統計情報を入力し、その統計情報によって示された頻度分布に応じて、バッファ蓄積量の移動平均値についての複数の閾値（上記廃棄確率の決定に使用する複数の閾値）を決定する。なお、閾値決定部１６では、基本的に統計処理部１５で使用した最小閾値及び最大閾値をそのまま利用し、それらが示す範囲内の閾値を決定すればよく、以下ではそのような例を挙げる。但し、閾値決定部１６は、統計処理部１５で使用した最小閾値及び最大閾値が示す範囲を絞る又は拡げるように、別途、最小閾値及び最大閾値を決定してもよい。
【００３７】
閾値決定部１６における閾値決定処理の一例について説明する。図５では、生成されたヒストグラムに基づき、各ビンＢの頻度値を結んだ頻度曲線Ｆｄを描いた結果も示している。閾値決定部１６は、統計処理部１５からヒストグラムを入力し、このような頻度曲線Ｆｄを導出する。この頻度曲線Ｆｄは上記頻度テーブルのみから導出することもできる。頻度曲線Ｆｄの導出処理は統計処理部１５側が担ってもよい。
【００３８】
次いで、閾値決定部１６（又は統計処理部１５）は、頻度曲線Ｆｄとバッファ蓄積量の移動平均値の軸とで囲まれる面積Ｓを算出する。閾値決定部１６（又は統計処理部１５）は、頻度曲線Ｆｄを得ずとも上記頻度テーブルのみから、［ビンＢの幅］×［その頻度値］を全てのビンＢについて足し合わせることで、面積Ｓを算出するように構成することもできる。
【００３９】
そして、閾値決定部１６は、取得したヒストグラムを面積ＳがＮ等分（Ｓ１＝Ｓ２＝…＝ＳＮ＝Ｓ／Ｎ）となるように分割し、その分割した境界である分割点Ｘ０，Ｘ１，…，ＸＮを算出する。ここで、Ｎは予め定めておいた閾値の数であり、Ｘ０は最小閾値ｍｉｎＴＨ、ＸＮは最大閾値ｍａｘＴＨにそれぞれ予め定めておく。なお、Ｓ＝Ｓ１＋Ｓ２＋…＋ＳＮである。また、この分割も上記頻度テーブルのみから実行することができる。各ビンＢについて別途、累積頻度値を算出しておけば、面積ＳのＮ等分の値に該当する累積頻度値を示すビンＢを得ることができ、同様に面積Ｓのｋ／Ｎの値に該当する累積頻度値を示すビンＢを得ることもできる。このように、閾値決定部１６は上記頻度テーブルを有するように構成することができる。
【００４０】
図５からも分かるように、面積ＳをＮ等分することから、頻度値が小さい範囲では頻度値が大きい範囲に比べて、隣り合う分割点同士の差が広くなる。例えば、Ｘ０からＸ１の間では頻度値がＸｋ−１からＸｋの間のような他の範囲に比べて小さく、分割点の差ΔＸ１が差ΔＸｋのような他の範囲に比べて広くなる。
【００４１】
そして、閾値決定部１６は、分割点Ｘ０，Ｘ１，…，ＸＮをバッファ蓄積量の移動平均値の代表値（以下、移動平均代表値と称す）とする。また、閾値決定部１６は、図６で例示したように、決定した移動平均代表値と隣接する移動平均代表値の平均値を閾値Ｙ１，Ｙ２，…，ＹＮに決定する。具体的には、例えば、閾値決定部１６は、式、Ｙｋ＝（Ｘｋ−１＋Ｘｋ）／２により閾値Ｙｋを決定する。図６で示すように、隣り合う閾値Ｙｋ−１，Ｙｋによって区切られた区間Δｋ（ｋ＝１，２，…，Ｎ）は、移動平均値の頻度が大きい区間では狭く（例えば区間Δ５，Δ６）、頻度が小さい区間では広く（例えば区間Δ２，Δ３）なっている。閾値決定部１６は、決定した閾値を確率決定部１４に出力（通知）する。なお、ここで説明している例では、閾値決定部１６は移動平均代表値を確率決定部１４に出力しない。
【００４２】
また、ここでは、分割点Ｘｋを移動平均代表値とし、隣り合う分割点の平均値Ｙｋを閾値とした例を挙げて説明しているが、閾値決定部１６は、分割点Ｘｋを閾値に決定し、隣り合う分割点の平均値Ｙｋ（＝（Ｘｋ−１＋Ｘｋ）／２）を移動平均代表値に決定してもよい。
【００４３】
図５を参照し、面積ＳをＮ等分することにより閾値を決定した例を挙げているが、この例のように、閾値決定部１６は、頻度分布によって示される移動平均値の頻度が高いほど、区間が狭くなるように複数の閾値を決定することが好ましい。このように、閾値決定部１６において、頻度値が大きい範囲（移動平均値の範囲）では区間（隣り合う閾値の間隔）を狭く、頻度値が小さい範囲では区間を広くすることで、バッファ蓄積量の移動平均値の分布が集中する部分に閾値を多く配置することができる。
【００４４】
他の方法でもこのような傾向での閾値の決定を実現することは可能である。例えば、閾値決定部１６は、最も頻度値の高い移動平均値を抽出し、その移動平均値を中心とする一定範囲（例えば中心から一定数のビンだけ離れた範囲）を求め、それ以外の範囲を上記一定範囲より広い他の一定範囲とする。そして、閾値決定部１６は、これらの範囲の境界を閾値として決定する。
【００４５】
次に確率決定部１４における確率決定処理の一例について説明する。確率決定部１４は、閾値決定部１６で決定された複数の閾値によって区切られた複数の区間に対応する複数の廃棄確率候補値を決定することが好ましい。パケット制御装置１は、確率決定部１４の内部又は外部に、閾値決定部１６で決定された閾値を記憶する閾値記憶部及び廃棄確率候補値を記憶する廃棄確率候補値記憶部を備えるとともに、いずれかの記憶部において廃棄確率候補値と区間（又はその両端の閾値）との関連付けに関する情報も記憶させる。この閾値記憶部は、区間のそれぞれに対応するような電圧値を出力するような可変抵抗器等の電気素子で代用することもできる。廃棄確率候補値記憶部は、廃棄確率候補値のそれぞれに対応するような電圧値を出力するような可変抵抗器等の電気素子で代用することもできる。
【００４６】
具体的には、確率決定部１４は、閾値決定部１６から複数の閾値が入力された場合、過去の複数の閾値を入力された値で更新するとともに、例えば図６に示す廃棄確率線Ｋｉのように複数の区間に一対一に対応する複数の廃棄確率候補値を算出する。廃棄確率線Ｋｉの例では、隣り合う閾値Ｙｋ−１，Ｙｋによって区切られた区間Δｋ（ｋ＝１，２，…，Ｎ）のそれぞれに対し、最小値０％から最大値ｍａｘＰまで隣り合う廃棄確率候補値Ｐｋ−１，Ｐｋの間隔と区間Δｋとが比例するように、廃棄確率候補値Ｐ１，Ｐ２，…，Ｐｋ−１，…ＰＮ−１を算出している。この比例係数は、比較例１の廃棄確率直線Ｋｒの傾きと同じにしているが、これに限ったものではない。
【００４７】
また、確率決定部１４は、予め用意された比較例１の廃棄確率直線Ｋｒにおける、各区間Δｋの中央値（移動平均代表値Ｘｋ−１に相当）に対応する廃棄確率の値を算出することで、若しくは予め記憶された対応関係を参照して抽出することで、その区間における廃棄確率候補値Ｐｋ−１を決定してもよい。
【００４８】
そして、確率決定部１４は、平均値算出部１３で算出された移動平均値に閾値処理を施し、上記複数の区間のうちのその閾値処理の結果が示す区間に対応する、上記複数の廃棄確率候補値のうちの廃棄確率候補値を、廃棄確率とし、パケット廃棄部１１に出力する。図６の例で簡略化して説明すると、確率決定部１４は、廃棄確率線Ｋｉ（又はその関係を記した情報）を参照して、入力された移動平均値から廃棄確率を決定する。
【００４９】
これにより、パケット廃棄部１１では、現在の移動平均値と移動平均値の分布とに応じた廃棄確率で、到着パケットの廃棄を実行することができる。例えば図６においてｄ２で示した部分において、廃棄確率候補値がＰ１からＰ２へと大きく変化しているが、この部分を含む区間ΔＸ２においてはパケット蓄積量の移動平均値の頻度が少ない（つまり平均値算出部１３からこの近辺に該当する移動平均値が入力されることは少ない）。一方で、例えば図６においてｄ５で示した部分においては、この部分を含む区間ΔＸ５においてはパケット蓄積量の移動平均値の頻度が大きい（つまり平均値算出部１３からこの近辺に該当する移動平均値の入力が集中する）が、廃棄確率候補値の変化が小さい。従って、本実施の形態では、全体的に見ると、ユーザ間での不公平さが残る頻度が少なく、公平性を高めることができる。
【００５０】
なお、上述した例では、閾値決定部１６が移動平均代表値を決定しているが、決定しない例も採用できる。例えば分割点Ｘｋを閾値に決定し、隣り合う分割点の平均値Ｙｋの算出を行わなければよい。このような例においても、確率決定部１４は、複数の閾値によって区切られた複数の区間に対応する複数の廃棄確率候補値を決定でき、かつ平均値算出部１３から入力された移動平均値に閾値処理を施すこともできるため、パケット廃棄部１１に出力する廃棄確率を決定することができる。
【００５１】
図７には、図１のパケット制御装置１とは異なる構成例のパケット制御装置１ａを示している。パケット制御装置１ａで示すように、確率決定部１４の代わりに設ける確率決定部２４は、複数の区間と複数の廃棄確率候補値を対応付けたテーブル（ルックアップテーブル）２４ｔを有する。なお、テーブル２４ｔは確率決定部２４の内部の記憶部に格納しておけばよいが、テーブル２４ｔを確率決定部２４と別のハードウェアとして構成してもよい。また、上述の閾値記憶部及び廃棄確率候補値記憶部は、テーブル２４ｔを記憶する記憶部であってもよい。
【００５２】
また、確率決定部２４は、閾値決定部１６で複数の閾値が決定される度に、それらの閾値を入力し、それらの閾値に応じて廃棄確率候補値を決定し、その結果でテーブル２４ｔを更新すればよい。テーブル２４ｔは、形式的には図４の近似廃棄確率テーブルと同じとなる。しかし、上述のように、閾値決定部１６では区間の幅が異なることを許容して閾値を決め、閾値に応じて廃棄確率候補値を決めているため、テーブル２４ｔはこれらの値が図４の近似廃棄確率テーブルと異なる。
【００５３】
そして、確率決定部２４は、テーブル２４ｔを参照して、平均値算出部１３から入力された現在の移動平均値に閾値処理を施して、その閾値処理の結果が示す区間に対応する廃棄確率候補値を、パケット廃棄部１１に出力する廃棄確率として抽出する。このように、確率決定部２４は、テーブル２４ｔを有するように構成することで、そのテーブル２４ｔを更新、参照するだけの処理で済む。
【００５４】
以上のように、本実施の形態では、バッファ蓄積量の移動平均値についての頻度分布を活用して、バッファ蓄積量の移動平均値についての複数の閾値を決定し、それらの閾値に基づき廃棄確率を決定し、バッファ蓄積量の移動平均値の分布が集中する部分（蜜となる部分）に多くの閾値を配置しかつ分布が疎となる部分に少ない閾値を配置している。よって、本実施の形態では、移動平均値の分布が集中する部分においてパケット間の廃棄確率に大きな差が発生するのを防ぎ、パケットを送信するユーザ間に不公平が生じ難くなり、ユーザ間の公平性を図ることができる。また、本実施の形態では、ハードウェアによる構成が可能であり、比較例１より処理速度が速い。また、閾値及び廃棄確率候補値の更新処理の間隔を、それらの値を用いた現在の廃棄確率の決定処理の間隔より長くすることで、特に処理の負荷を減らすことができる。
【００５５】
以上の例では、平均値算出部１３から出力された移動平均値に閾値処理を施すことにより廃棄確率を決定したが、廃棄確率の決定に際し、一旦、移動平均値を閾値処理して移動平均代表値に変換してから（換言すれば量子化してから）、廃棄確率の決定を行うようにしてもよい。この場合の量子化は、閾値の間隔に対応する量子化ステップ幅が一定ではないため、非線形量子化に該当する。また、この場合、閾値は量子化閾値を意味し、移動平均代表値は量子化代表値を意味する。
【００５６】
このような非線形量子化を用いた廃棄確率の決定方法の一例について説明する。但し、ここでは、図５及び図６を参照して説明した廃棄確率の決定方法の流れの一例を、非線形量子化といった観点から再度、簡略化して説明するとともに、現在の移動平均値を移動平均代表値（量子化代表値）に変換してから廃棄確率を決定するような応用例を採用する場合の変更箇所の説明を行う。
【００５７】
本例において、閾値決定部１６は、量子化閾値だけでなく量子化代表値も決定し、確率決定部２４に出力するようにしておく。確率決定部２４は、量子化代表値のそれぞれに廃棄確率候補値を関連付けて記憶する。本例においてもテーブル２４ｔのようなルックアップテーブルを用いることができる。上記応用例においては、テーブル２４ｔには、量子化閾値の代わりに量子化代表値が記述されることになる。以下、テーブル２４ｔを用いる例を挙げて説明するが、用いない例でも同様に非線形量子化を利用することができる。
【００５８】
まず、テーブル２４ｔにおける量子化代表値の初期値としては、例えばバッファ蓄積量を均等にＮ等分した場合の値としておく。なお、この例においても、量子化代表値、量子化閾値、及び廃棄確率候補値の更新処理（この例ではテーブル２４ｔの更新処理）とそれらの値を用いた現在の廃棄確率の決定処理とを、同じ時間間隔で定期的に行えばよい。この例においては、上記同じ時間間隔が量子化周期を指すこととなる。
【００５９】
このようなテーブル２４ｔの更新処理の一例について、図８及び図９を併せて参照しながら説明する。図８は図７のパケット制御装置１ａにおけるテーブル更新処理の一例を示すフローチャート、図９は、図８のテーブル更新処理により更新されたテーブルの一例を示す図である。
【００６０】
まず、統計処理部１５が平均値算出部１３から入力されたバッファ蓄積量の移動平均値についての頻度分布（図５で示したようなヒストグラムで例示）を生成し、閾値決定部１６がその頻度分布を示す統計情報を取得する（ステップＳ１）。次いで、閾値決定部１６が、その統計情報によって示されるヒストグラムを面積が均等になるようにＮ分割し（ステップＳ２）、Ｎ分割した時の境界となる値を量子化代表値に決定し（ステップＳ３）、隣り合う量子化代表値の平均値を量子化閾値に決定する（ステップＳ４）。次に、閾値決定部１６は、確率決定部２４に量子化代表値と量子化閾値を通知する（ステップＳ５）。これらの処理の詳細については図５及び図６を用いて説明した通りである。
【００６１】
次いで、確率決定部２４は、閾値決定部１６から量子化代表値及び量子化閾値が入力される度に、量子化代表値（又は量子化閾値）に基づき廃棄確率候補値（例えば図６の廃棄確率候補値Ｐ１，Ｐ２，…，ＰＮ−１）を算出する（ステップＳ６）。この算出処理の詳細についても図６を用いて説明した通りである。
【００６２】
次いで、確率決定部２４は、量子化閾値及び廃棄確率候補値に基づき、近似廃棄確率のテーブル２４ｔを更新する（ステップＳ７）。このテーブル２４ｔは、図９で例示できる。なお、図９においてＹ１，Ｙ２，…，ＹＮは量子化閾値を指す。また、図９では簡略化して記述しているが、バッファ蓄積量の移動平均値は、例えば２行目でｍｉｎＴＨ（％）以上、Ｙ１（％）未満を指しており、他の行も同様である。また、図９の最下行については移動平均値がｍａｘＴＨ（％）以上を指している。上記応用例では、ステップＳ７において、量子化閾値の代わりに量子化代表値を用い、複数の量子化代表値と複数の廃棄確率候補値とを一対一に対応付けるようにテーブル２４ｔを更新する。
【００６３】
以上のようにしてテーブル２４ｔが更新される。その後の確率決定部２４における現在の移動平均値に対応する廃棄確率の決定については上述した通りである。但し、上記応用例ではテーブル２４ｔにおいて量子化閾値の代わりに量子化代表値が記述されているため、現在の移動平均値の単なる閾値処理ではそのテーブル２４ｔを参照できない。
【００６４】
よって、上記応用例では、確率決定部２４は、平均値算出部１３から入力された現在の移動平均値に対し、閾値決定部１６で決定された複数の量子化閾値及び複数の量子化代表値に基づき量子化（非線形量子化）を施し、量子化代表値に変換する。つまり、確率決定部２４は、入力された現在の移動平均値を、量子化閾値によって区切られた複数の区間のいずれかに分類し、分類した結果が示す区間に対応付けられた量子化代表値に変換する。その後、確率決定部２４が、テーブル２４ｔを参照して、量子化した結果の量子化代表値に対応付けられた廃棄確率候補値を抽出し、抽出した廃棄確率候補値を廃棄確率としてパケット廃棄部１１に出力する。
【００６５】
上記応用例においてテーブル２４ｔを用いる場合、複数の量子化閾値と複数の量子化代表値とを一対一に対応付けたテーブルと、複数の量子化代表値と複数の廃棄確率候補値とを一対一に対応付けたテーブルの、２つのテーブルで構成しておく。また、上記応用例においては、量子化代表値は量子化インデックスなどのより情報量の少ない値としてもよい。
【００６６】
また、以上では、閾値及び廃棄確率候補値の更新処理（例えばテーブル２４ｔの更新処理）とそれらの値を用いた現在の廃棄確率の決定処理とを、上記同じ時間間隔で定期的に行うこと、或いは特に閾値及び廃棄確率候補値の更新処理の間隔を、それらの値を用いた現在の廃棄確率の決定処理の間隔より長くすることを前提として、本実施の形態の説明を行った。
【００６７】
しかし、上述の更新処理は、一定の時間間隔で実行しないようにしてもよい。例えば、統計処理部１５で一定量の統計情報を取得する度に、閾値決定部１６が閾値を更新し、確率決定部１４又は確率決定部２４がそれに合わせて廃棄確率候補値等の更新処理（例えばテーブル２４ｔの更新処理）を実行するようにしてもよい。
【００６８】
このような処理の一例について説明する。まず、平均値算出部１３は、移動平均値を算出した結果、一定値（例えば図５及び図６のｍｉｎＴＨ等）より小さい場合、その結果を統計処理部１５に出力しないように構成しておく。なお、この場合にも平均値算出部１３は確率決定部１４又は確率決定部２４にはその結果を出力するように構成しておいてもよい。平均値算出部１３は結果に関係なく統計処理部１５に移動平均値を出力するようにしておき、統計処理部１５は、その結果が上記一定値より小さい場合にその結果を無視し、上記一定値以上の場合にのみ有効な移動平均値として取り扱うようにしてもよい。
【００６９】
そして、統計処理部１５は、一定量の有効な移動平均値を取得する度に、つまり一定量の統計情報を取得する度に、閾値決定部１６に閾値の更新タイミングであることを通知する。若しくは、閾値決定部１６が統計処理部１５での統計情報の蓄積量を監視し、一定の蓄積量だけ増えたタイミングを更新タイミングとして決定する。いずれの場合でも、閾値決定部１６は、更新タイミングで閾値の更新処理を実行し、その結果を受けた確率決定部１４又は確率決定部２４は、廃棄確率候補値等の更新処理を実行する。また、このようにして更新タイミングを決定する場合には、統計処理部１５は、上記一定の蓄積量を超える古い統計情報は廃棄するようにしておくか、若しくは閾値決定部１６での参照対象としないようにしておくことが好ましい。
【００７０】
このような処理により、パケット制御装置１，１ａへの入力レートが高い場合には多くの統計情報が取得できるため更新間隔が短くなり、入力レートが低い場合には少ししか統計情報が取得できないため更新間隔が長くなる。つまり、このような処理により、入力レートに依らず同量の統計情報（サンプル数）が蓄積されたタイミングで、更新処理が実行でき、以下のような効果を奏する。
【００７１】
すなわち、入力レートが高い場合には、一定量の統計情報を取得する度に更新処理を実行すると、定期的な更新処理に比べ、十分な統計情報が獲得できた段階で即座に閾値を更新できる（最新の統計情報に最適化できる）ことから、常に高い公平性を確保しておくことができる。また、入力レートが低い場合には、一定量の統計情報を取得する度に更新処理を実行すると、定期的な更新処理に比べ、更新に意味のあるタイミングで閾値を更新するため、不必要な演算処理が実施されず、処理時間を抑制できる。
【００７２】
実施の形態２．
本発明の実施の形態２に係るパケット制御装置について、図１０及び図１１を併せて参照しながら説明する。本実施の形態に係るパケット制御装置の構成は基本的に図１又は図７と同様である。その他、本実施の形態においても実施の形態１で説明した様々な例が適用できる。図１０は、本実施の形態に係るパケット制御装置で時間情報とともに蓄積されたバッファ蓄積量の移動平均値の一例を示す図、図１１は、このパケット制御装置で閾値の決定に用いる統計情報の一例を示す図である。
【００７３】
実施の形態１では、バッファ蓄積量の移動平均値についての頻度分布に応じて複数の閾値を決定してそれらの閾値に基づき廃棄確率を決定しているが、本実施の形態では、その頻度分布を現在のバッファ蓄積量の移動平均値に近い情報から生成する。具体的には、本実施形態における統計処理部１５は、平均値算出部１３で算出された複数の移動平均値のうちの、現在の移動平均値と同じ値を持つ過去の移動平均値の算出時点を含む算出期間について、頻度分布を生成する。
【００７４】
より詳細に説明すると、統計処理部１５は、まず図１０で例示するようなバッファ蓄積量の移動平均値の時系列データＸ（ｔ）を使用し、図中のＮＯＷで示す現在時刻のバッファ蓄積量の移動平均値ＸＰと同じ値を持つ過去の移動平均値及びその算出時刻（算出日も含めた算出日時が好ましい）を抽出する。そして、統計処理部１５は、その算出日時を始点として算出期間Ｔが経過するまでに算出された移動平均値のみを、統計処理の対象として抽出し、頻度分布を生成する。上記算出期間Ｔは予め定めた期間としておけばよい。また、現在のバッファ蓄積量の移動平均値も統計処理の対象としてカウントしてもよい。統計処理部１５は、図１０で例示した時系列データＸ（ｔ）のように対象となる始点が複数存在する場合にはその全てについて抽出する。
【００７５】
なお、統計処理部１５は、上記算出日時を始点とするのではなく、上記算出日時を含む算出期間Ｔ以内で算出された移動平均値のみを統計処理の対象としてもよいが、基本的には現時点から未来で発生する可能性があるバッファ１２の溢れに対処する必要があるため、算出期間Ｔは上記算出日時より新しい移動平均値を多く含めるように決めておくことが好ましい。
【００７６】
図１１で例示するように、上記算出日時を始点等として含む算出期間Ｔにおける移動平均値から生成されたヒストグラムＨＴは、実施の形態１でのように全期間の移動平均値から生成されたヒストグラムＨＡに比べると、基本的に現在のバッファ蓄積量の移動平均値ＸＰ付近で他の範囲に比べて頻度が高くなるようになる。
【００７７】
上述のように生成されたヒストグラムは、実施の形態１と同様に、閾値決定部１６において閾値等を決定する処理に用いられ、それ以降の処理も実施の形態１と同様になる。その結果、ヒストグラムＨＴから決定された閾値は、ヒストグラムＨＡから決定された閾値に比べて、現在のバッファ蓄積量の移動平均値ＸＰ近辺に多く配置できる。よって、本実施の形態では実施の形態１と比較すると、パケット間の廃棄確率に大きな差が発生し難くなり、さらなるユーザ間の公平性の確保が可能になる。
【００７８】
また、以上の例では、統計処理部１５が上記算出日時を含む算出期間Ｔについての移動平均値から頻度分布を生成したが、現在のバッファ蓄積量の移動平均値に近い過去の移動平均値の抽出方法（抽出条件）はこれに限ったものではない。例えば、統計処理部１５は、現在のバッファ蓄積量の移動平均値ＸＰとの差が一定値に収まる値を持つ過去の移動平均値及びその算出日時を抽出し、その算出日時を含む算出期間Ｔ以内に算出された移動平均値のみを、頻度分布の生成に用いる。この場合、重複するデータが存在するが、重複分は１つのみ用いるものとする。
【００７９】
その他の例を挙げると、統計処理部１５は、現在の移動平均値ＸＰから算出期間Ｔ（又は長さが異なる算出期間）遡った移動平均値を参照して現在が増加傾向であるのか減少傾向であるのかを判定する。そして、統計処理部１５は、移動平均値ＸＰと同じ（又は差が一定値に収まる）過去の移動平均値の算出日時を含む算出期間Ｔ内で算出された移動平均値のうち、現在の傾向と同じ傾向をもつもののみから頻度分布の生成を行う。図１０の例では現在が減少傾向であるため、時系列データＸ（ｔ）において４箇所存在する算出期間Ｔのうち、３番目の算出期間Ｔについての移動平均値のみから頻度分布を生成することになる。このような抽出条件を採用することで、結果として移動平均値ＸＰ近辺に多くの閾値が配置されることになるだけでなく、時系列データＸ（ｔ）に基づく予測も反映できるようになる。
【００８０】
実施の形態３．
本発明の実施の形態３について、図１２及び図１３を参照しながら説明する。図１２は、本実施の形態に係るパケット制御装置の一構成例を示すブロック図、図１３は、その他の構成例を示すブロック図である。本実施の形態について実施の形態１における図１のパケット制御装置１との相違点を中心に説明するが、本実施の形態においても実施の形態１及び２で説明した様々な例が適用できる。
【００８１】
実施の形態１では、輻輳制御方式としてＲＥＤを利用した例を挙げ、パケット制御装置１に到着するパケットが１種類であること、或いは複数種類存在したとしてもその種類毎に処理を異ならせないことを前提としている。本実施の形態に係るパケット制御装置は、到着するパケットが複数種類存在する場合に、種類毎に処理を異ならせるようにしたものである。
【００８２】
図１２で例示するように、本実施の形態の一構成例に係るパケット制御装置１ｂは、図１のパケット制御装置１の構成に加え、到着したパケットの種類である到着種類を判別する判別部１７を有する。パケット制御装置１ｂはさらに確率決定部を有する。この確率決定部は、予め決められたパケットの種類である基準種類毎に廃棄確率を決定するものであり、例えば図１の確率決定部１４を基準種類の数だけ設けることで構成することができる。
【００８３】
ここではパケットの種類として、高優先度、中優先度、及び低優先度のいずれかを示す優先度情報が付加された優先度付きのパケットを考慮し、３つの確率決定部１４を設けた例を挙げており、それらを第１の確率決定部１４ａ、第２の確率決定部１４ｂ、及び第３の確率決定部１４ｃと称する。但し、確率決定部１４ａ〜１４ｃをハードウェアで構成するに際しても、１つのハードウェアとして構成することもできる。
【００８４】
本実施の形態における判別部１７は、パケット廃棄部１１に対し、到着したパケットだけでなく到着種類を示す情報を送信する。パケット廃棄部１１は、この到着種類を示す情報を入力し、この到着種類に属するパケットを、その到着種類に対応する基準種類についての廃棄確率に応じた量、廃棄する。そのため、パケット廃棄部１１には基準種類のそれぞれに対応する廃棄確率が設定される。この例では、到着種類を示す情報は、優先度を判別した結果（優先度情報）に該当し、パケット廃棄部１１には基準種類の例としての優先度の種類に対応する３つの廃棄確率が設定される。
【００８５】
つまり、第１の確率決定部１４ａが基準種類の１つとしての高優先度に対する廃棄確率Ｐａを決定し、第２の確率決定部１４ｂが基準種類の１つとしての中優先度に対する廃棄確率Ｐｂを決定し、第３の確率決定部１４ｃが基準種類の１つとしての低優先度に対する廃棄確率Ｐｃを決定し、それぞれパケット廃棄部１１に出力する。
【００８６】
具体的に廃棄確率Ｐａ〜Ｐｃの決定方法について説明する。まず、閾値決定部１６は実施の形態１と同様に複数の閾値（以下、閾値群と称す）を決定し、第１〜第３の確率決定部１４ａ〜１４ｃに出力する。第１〜第３の確率決定部１４ａ〜１４ｃはいずれも共通の閾値群を受け取ることになる。なお、閾値決定部１６で閾値群の決定の際に用いる頻度分布も共通であり、統計処理部１５は、基準種類毎に統計処理を行うわけではない。つまり、統計処理部１５は、高優先度、中優先度、及び低優先度のそれぞれについて別個に統計処理を行うわけではない。
【００８７】
第１の確率決定部１４ａは、閾値群によって区切られた複数の区間のそれぞれについて、高優先度用の廃棄確率候補値を決定し、対応する隣り合う閾値（閾値群の中の隣り合う閾値）又は対応する区間に関連付けておく。また、第２の確率決定部１４ｂは、閾値群によって区切られた複数の区間のそれぞれについて、高優先度用に比べて大きな値となるように中優先度用の廃棄確率候補値を決定し、対応する隣り合う閾値又は対応する区間に関連付けておく。補足すると、このような決定により、ある１つの区間Δｋに対応する中優先度用の廃棄確率候補値はその区間Δｋに対応する高優先度用の廃棄確率候補値に比べて大きな値になり、このことが全ての区間について当てはまる。同様に、第３の確率決定部１４ｃは、閾値群によって区切られた区間のそれぞれについて、中優先度用に比べて大きな値となるように低優先度用の廃棄確率候補値を決定し、対応する隣り合う閾値又は対応する区間に関連付けておく。この例では、廃棄確率候補値の最大値（ｍａｘＰ）は、高優先度用の方が中優先度用より小さくなり、中優先度用の方が低優先度用より小さくなる。
【００８８】
また、このようにして決定された廃棄確率候補値等は、図７で示したテーブル２４ｔのようなルックアップテーブルに記述しておいてもよく、その場合、各確率決定部１４ａ〜１４ｃのそれぞれで異なるテーブルを有するように構成することもできる。
【００８９】
そして、第１の確率決定部１４ａは、平均値算出部１３で算出された移動平均値を、上記共通の閾値群によって区切られた複数の区間のいずれかに分類する閾値処理を施し、その閾値処理の結果が示す区間に対応する高優先度用の廃棄確率候補値を、廃棄確率Ｐａとしてパケット廃棄部１１に出力する。
【００９０】
パケット廃棄部１１は、判別部１７での判別結果が基準種類の１つである高優先度であることを示している場合には、高優先度用の廃棄確率Ｐａに従って高優先度のパケットの廃棄を実行する。つまりパケット廃棄部１１は、高優先度のパケットが到着した場合、この廃棄確率Ｐａに従ってその到着した高優先度のパケットを廃棄するのか、或いは通過させるのかを判定し、判定結果に従って廃棄又は通過を実行する。
【００９１】
同様に、第２の確率決定部１４ｂは、平均値算出部１３で算出された移動平均値に対し、上記共通の閾値群を用いて閾値処理を施し、その閾値処理の結果が示す区間に対応する中優先度用の廃棄確率候補値を、廃棄確率Ｐｂとしてパケット廃棄部１１に出力する。パケット廃棄部１１は、判別部１７での判別結果が中優先度であることを示している場合には、中優先度用の廃棄確率Ｐｂに従って中優先度のパケットの廃棄を実行する。
【００９２】
同様に、第３の確率決定部１４ｃは、平均値算出部１３で算出された移動平均値に対し、上記共通の閾値群を用いて閾値処理を施し、その閾値処理の結果が示す区間に対応する低優先度用の廃棄確率候補値を、廃棄確率Ｐｃとしてパケット廃棄部１１に出力する。パケット廃棄部１１は、判別部１７での判別結果が低優先度であることを示している場合には、低優先度用の廃棄確率Ｐｃに従って、低優先度のパケットの廃棄を実行する。
【００９３】
なお、優先度毎に処理を異ならせる手法は、上述のような優先度情報がパケットに付されて到着することを想定したＷＲＥＤ（Ｗｅｉｇｈｔｅｄ  ＲＥＤ）で実現されているが、本実施の形態では、上述したように各優先度についての廃棄確率を統計情報に応じて異ならせるようにしたものである。本実施の形態においても、ＷＲＥＤに適用可能な様々な応用が適用できる。
【００９４】
次に、本実施の形態の他の構成例について、図１３を参照しながら説明する。本構成例におけるパケット制御装置は、予め決められたパケットの種類である基準種類毎に複数の閾値の決定を行う閾値決定部を有する。この閾値決定部は、例えば図１の閾値決定部１６を基準種類の数だけ設けることで構成することができる。
【００９５】
本構成例においてもパケットの種類として３種類の優先度を適用した例を挙げて説明する。図１３で例示するように、本構成例のパケット制御装置１ｃは、パケット制御装置１ｂにおいて閾値決定部１６を３つ設けたものであり、それらを第１の閾値決定部１６ａ、第２の閾値決定部１６ｂ、及び第３の閾値決定部１６ｃと称する。但し、閾値決定部１６ａ〜１６ｃをハードウェアで構成するに際しても、１つのハードウェアとして構成することもできる。
【００９６】
本構成例において、第１の閾値決定部１６ａは基準種類の１つとしての高優先度用の閾値群を決定する。同様に、第２の閾値決定部１６ｂは基準種類の１つとしての中優先度用の閾値群を決定し、第３の閾値決定部１６ｃは基準種類の１つとしての低優先度用の閾値群を決定する。第１〜第３の閾値決定部１６ａ〜１６ｃではいずれも共通の統計情報を用いて、異なる閾値群に決定することになる。第１〜第３の閾値決定部１６ａ〜１６ｃは、例えば、優先度が高いほど、閾値群によって区切られる区間が小さいように設定しておけばよい。これは、後述するように、この例においても低い優先度ほど廃棄確率候補値の最大値（ｍａｘＰ）が大きくなり、高い優先度ほど隣り合う区間での廃棄確率候補値の差が小さく設定できるためである。
【００９７】
本構成例における確率決定部は、基準種類毎に、閾値処理を実行して廃棄確率を決定する。具体的には、まず第１の確率決定部１４ａは、第１の閾値決定部１６ａで決定された高優先度用の閾値群Ｔｈａを用い、閾値群Ｔｈａによって区切られた複数の区間のそれぞれについて、高優先度用の廃棄確率候補値を決定し、対応する隣り合う閾値（閾値群Ｔｈａの中の隣り合う閾値）又は対応する区間に関連付けておく。第２の確率決定部１４ｂは、第２の閾値決定部１６ｂで決定された中優先度用の閾値群Ｔｈｂを用い、閾値群Ｔｈｂによって区切られた複数の区間のそれぞれについて、中優先度用の廃棄確率候補値を決定し、対応する隣り合う閾値（閾値群Ｔｈｂの中の隣り合う閾値）又は対応する区間に関連付けておく。第３の確率決定部１４ｃは、第３の閾値決定部１６ｃで決定された低優先度用の閾値群Ｔｈｃを用い、閾値群Ｔｈｃによって区切られた複数の区間のそれぞれについて、低優先度用の廃棄確率候補値を決定し、対応する隣り合う閾値（閾値群Ｔｈｃの中の隣り合う閾値）又は対応する区間に関連付けておく。
【００９８】
第１〜第３の確率決定部１４ａ〜１４ｃは、それぞれ閾値群が異なることとなるが、いずれの移動平均値に対しても、高優先度用に比べて中優先度用の廃棄確率候補値が大きくなり、かつ中優先度用に比べて低優先度用の廃棄確率候補値が大きくなるように決定しておけばよい。この例でも、廃棄確率候補値の最大値（ｍａｘＰ）は、高優先度用の方が中優先度用より小さくなり、中優先度用の方が低優先度用より小さくなる。
【００９９】
そして、第１の確率決定部１４ａは、平均値算出部１３で算出された移動平均値を、閾値群Ｔｈａによって区切られた複数の区間のいずれかに分類する閾値処理を施し、その閾値処理の結果が示す区間に対応する高優先度用の廃棄確率候補値を、廃棄確率Ｐａとしてパケット廃棄部１１に出力する。同様に、第２の確率決定部１４ｂは、平均値算出部１３で算出された移動平均値に対し、閾値群Ｔｈｂを用いて閾値処理を施し、その閾値処理の結果が示す区間に対応する中優先度用の廃棄確率候補値を、廃棄確率Ｐｂとしてパケット廃棄部１１に出力する。同様に、第３の確率決定部１４ｃは、平均値算出部１３で算出された移動平均値に対し、閾値群Ｔｈｃを用いて閾値処理を施し、その閾値処理の結果が示す区間に対応する低優先度用の廃棄確率候補値を、廃棄確率Ｐｃとしてパケット廃棄部１１に出力する。
【０１００】
本構成例においても、パケット廃棄部１１は図１２の構成例と同様の処理を行う。つまり、パケット廃棄部１１は、到着種類に属するパケットを、その到着種類に対応する基準種類についての廃棄確率に応じた量、廃棄することになる。
【０１０１】
以上、本実施の形態によれば、多大なハードウェアリソースを追加せずに、複数種類のパケットが到着するＷＲＥＤのような輻輳制御技術にも対応させることができる。また、パケットの種類として優先度の違いによってパケットを分類する例を挙げたが、例えば映像、音声、他の情報（受信側機器での出力制御に必要な制御情報など）といった種類でパケットを分類するなど、他の種類で分類することもできる。なお、映像、音声、他の情報のそれぞれのパケットはパケットのヘッダに種別を示す情報を記述しておき、パケット制御装置１ｂ，１ｃでは、例えば映像パケットより音声パケットの方が廃棄確率を低く、かつ音声パケットより他の情報パケットの方が廃棄確率を低くするように処理を実行すればよい。
【０１０２】
変形例．
図１４は、上記実施の形態１〜３に係るパケット制御装置の他の構成例を示す図である。図１，図７，図１２，図１３で例示したパケット制御装置１，１ａ，１ｂ，１ｃはいずれも、ソフトウェアとしてのプログラムと各種データを格納する記憶装置としてのメモリ３１と、メモリ３１に格納されたプログラムを実行する情報処理部（パケット制御装置の処理タイミングなどの全体の制御を行う上述した制御部を含む）としてのプロセッサ３２とを用いて（例えば、コンピュータにより）実現することができる。
【０１０３】
この場合には、図１等におけるバッファ１２をはじめ記憶部１５ａ、上述した移動平均値記憶部、蓄積量記憶部、閾値記憶部、及び廃棄確率候補値記憶部はメモリ３１に相当する。また、プロセッサ３２は、図１等におけるパケット廃棄部１１、平均値算出部１３、確率決定部１４（第１〜第３の確率決定部１４ａ〜１４ｃ）、統計処理部１５、閾値決定部１６（第１〜第３の閾値決定部１６ａ〜１６ｃ）、及び判別部１７の機能や、上記制御部の機能を実現するためのプログラムを実行する。このプログラムはメモリ３１の代わりにプロセッサ３２の内部のメモリに格納しておいてもよい。これらの各部１１〜１７の一部を、図１４に示されるメモリ３１と、プログラムを実行するプロセッサ３２とによって実現してもよい。また、上述したソフトウェアとしてのプログラムは非一時的な記録媒体に記憶させて頒布することで流通させること、或いはサーバ装置に格納しておきインターネットを介して流通させることができる。
【符号の説明】
【０１０４】
１，１ａ，１ｂ，１ｃ  パケット制御装置、  １１  パケット廃棄部、  １２  バッファ（パケット収容部）、  １３  平均値算出部、  １４  確率決定部、  １４ａ  第１の確率決定部、  １４ｂ  第２の確率決定部、  １４ｃ  第３の確率決定部、  １５  統計処理部、  １５ａ  記憶部、  １６  閾値決定部、  １６ａ  第１の閾値決定部、  １６ｂ  第２の閾値決定部、  １６ｃ  第３の閾値決定部、  １７  判別部、  ２４  確率決定部、  ２４ｔ  テーブル、  ３１  メモリ、  ３２  プロセッサ。
【図１】
0006660716.tif 000002
【図２】
0006660716.tif 000003
【図３】
0006660716.tif 000004
【図４】
0006660716.tif 000005
【図５】
0006660716.tif 000006
【図６】
0006660716.tif 000007
【図７】
0006660716.tif 000008
【図８】
0006660716.tif 000009
【図９】
0006660716.tif 000010
【図１０】
0006660716.tif 000011
【図１１】
0006660716.tif 000012
【図１２】
0006660716.tif 000013
【図１３】
0006660716.tif 000014
【図１４】
0006660716.tif 000015