(57)【要約】【課題】ユーザのフローをクラス分けし、各クラスのトラヒック量の比率を守りながらトラヒック量の制御を行うこと。【解決手段】本発明は、各クラスのデータのトラヒック量を観測しておき、受信したデータのトラヒック量と受信したデータとは別のクラスに属するデータのトラヒック量との比率が、予め定められた比率になるようにデータの廃棄確率を決定し、決定した廃棄確率を用いて受信したデータの廃棄を行うことで、データのクラス別のトラヒック量の制御を行うようにすることにより、各クラス間のトラヒック量の比率を守りながらクラス別のトラヒック量の制御を行うものである。【選択図】　　　図１
2004056726.tif 000002
【特許請求の範囲】
【請求項１】
データのフローを分類したクラス毎に予め設定されたトラヒック量の前記クラス間の比率を格納したトラヒック比率格納手段と、受信したデータの前記クラスを検出するクラス検出手段と、前記受信したデータの前記クラスのトラヒック量と前記受信したデータとは別の前記クラスの前記トラヒック量との比率を算出し、算出した前記比率が前記トラヒック比率格納手段に格納された前記比率になるように前記データの廃棄確率を計算する廃棄確率計算手段と、計算した前記廃棄確率に基づき前記受信したデータを廃棄するか決定することで前記受信データのトラヒック量を制御する廃棄決定手段と、を具備したことを特徴とするトラヒック量制御装置。
【請求項２】
前記受信したデータの前記クラスのトラヒック量が所定の最低トラヒック量を下回らないように前記廃棄確率を決定することを特徴とする請求項１記載のトラヒック量制御装置。
【請求項３】
請求項１または請求項２記載のトラヒック量制御装置と、受信したデータを前記トラヒック量制御装置に振り分ける振り分け手段と、を具備したことを特徴とする中継装置。
【請求項４】
データのフローを分類したクラス毎に予め設定されたトラヒック量の前記クラス間の比率を格納するステップと、受信したデータの前記クラスを検出するステップと、前記受信したデータの前記クラスのトラヒック量と前記受信したデータとは別の前記クラスの前記トラヒック量との比率を算出するステップと、算出した前記比率が前記トラヒック比率格納手段に格納された前記比率になるように前記データの廃棄確率を計算するステップと、計算した前記廃棄確率に基づき前記受信したデータを廃棄するが決定することで前記受信データのトラヒック量を制御するステップと、を具備したことを特徴とするトラヒック量制御方法。
【請求項５】
コンピュータに、データのフローを分類したクラス毎に予め設定されたトラヒック量の前記クラス間の比率を格納するステップと、受信したデータの前記クラスを検出するステップと、前記受信したデータの前記クラスのトラヒック量と前記受信したデータとは別の前記クラスの前記トラヒック量との比率を算出するステップと、算出した前記比率が前記トラヒック比率格納手段に格納された前記比率になるように前記データの廃棄確率を決定するステップと、決定した前記廃棄確率に基づき前記受信したデータを廃棄するか決定することで前記受信データのトラヒック量を制御するステップと、を行わせることを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムを格納したことを特徴とするコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、中継ネットワークと端末より構成される通信ネットワークにおいて、中継ネットワークと端末との間のデータのフローをクラス分けし、クラス毎にトラヒック量の制御を行うトラヒック量制御装置及びトラヒック量制御方法に関する。
【０００２】
【従来の技術】
従来より、中継装置と端末との間のデータのフローをユーザによってクラス分けし、クラス毎にトラヒック量（帯域）制御することが行われている。
【０００３】
このトラヒック量制御の方法としては、スケジューリングアルゴリズムがある。スケジューリングアルゴリズムの中でもよく使われる方法としてＣＢＱ（Ｃｌａｓｓ　Ｂａｓｅｄ　Ｑｕｅｕｅ）がある。ＣＢＱは各クラスに所定のトラヒック量を割り当てるようにクラス毎にトラヒック量をコントロールするスケジューリングアルゴリズムである。
【０００４】
また、クラス毎にトラヒック量を制御する方法として、特開平１１−１８７０７２号公報に開示された「ネットワーク内パケット伝送方式およびパケット端末」がある。この方法では、まず、各クラスの転送情報の入力量を観測し、その入力量と各クラスに予め決められたトラヒック量を基に、各クラスの使用するトラヒック量が所定のトラヒック量になるようにフローの廃棄を行う優先値を決定する。そして、この優先値に基づいて、各クラスのフローの廃棄確率を変動させるものである。
【０００５】
また、クラス毎にトラヒック量の制御を行う方法として、ＤＲＥＤ（Ｎｏｒｉｏ　ＹＡＭＡＧＡＫＩ，　“Ｐａｃｋｅｔ　Ｄｉｓｃａｒｄｉｎｇ　Ｓｃｈｅｍｅ　Ｃｏｎｓｉｄｅｒｉｎｇ　Ｂｏｔｈ　Ｉｎｓｔａｎｔａｎｅｏｕｓ　ａｎｄＨｉｓｔｏｒｉｃａｌ　Ｕｓｅ　ｏｆ　Ｎｅｔｗｏｒｋ　Ｒｅｓｏｕｒｃｅｓ，”　ＩＥＩＣＥ　Ｔｒａｎｓ．　Ｃｏｍｍｕｎ．，　ｖｏｌ．Ｅ８４−Ｂ，　ｎｏ．８，　ｐｐ．２１１５−２１２３，　Ａｕｇ．　２００１．）がある。この手法では、各クラスのＩＰパケット蓄積部内の残留パケット数と成功時間とを基にＩＰパケットの廃棄確率をクラス毎に決定することで、トラヒック量の制御を行うものである。
【０００６】
【発明が解決しようとする課題】
近年、インターネットプロバイダのサービス多様化につれて、ユーザ毎にクラス分けを行うことで、ユーザ毎にフローを制御したいという要望が増えている。一般的にユーザは、インターネットプロバイダとトラヒック量（帯域幅）を基準に契約を行う。
【０００７】
こういった場合には、フローの状態によって使用できるトラヒック量は変化するが、各ユーザが契約したトラヒック量の比率が一定になるように使用できるトラヒック量を各ユーザに分配することが好ましい。
【０００８】
つまり、輻輳が発生している時には、限られたトラヒック量を各ユーザが契約したトラヒック量の比率になるように各ユーザに分配することが望ましい。一方、余剰帯域がある時には、各ユーザの契約したトラヒック量は確保しつつ、トラヒック量の余剰分を契約したトラヒック量の比率になるようにユーザに分配することが望ましい。
【０００９】
しかしながら、スケジューリングアルゴリズムは、各クラスに所定のトラヒック量を割り当てるように、クラス毎で独立して制御するため、クラス間のトラヒック量比率を予め定められた比率になるように制御することができない。また、制御する単位にあわせてキューを複数用意しなければならない。そのため、クラス分けの数が多くなったり、出力ポートの数が多くなったりする場合は、キューの数が増え、その管理が大変になる。また、キューの数の上限を超えるクラス分けには対応できない。
【００１０】
また、特開平１１−１８７０７２号公報に開示された手法は、単一キューを用いてフローをクラス分けし、各クラス毎に廃棄確率を決定し、各クラス毎にトラック量を予め決められたトラヒック量になるように制御するものである。各クラス間のトラヒック量の比率を一定にするような仕組みは入っていない。よって、この手法でも、各クラス間のトラヒック量の比率が定められた比率になるように制御することはできない。また、この手法では、各クラスのトラヒック量が予め決められた幅になるように制御するため、余剰トラヒック（余剰帯域）がある時に、余剰トラヒックを各クラスに割り当てるということは行わない。このため、余剰トラヒックを有効に使用することができない。
【００１１】
また、ＤＲＥＤも、単一キューを用いてフローをクラス分けするが、この手法もクラス毎に廃棄確率を決定することでトラヒック量を所定のものとなるように制御するものである。この手法も、クラス間のトラヒック量の比率を一定にするような仕組みはない。よって、この手法でも、クラス間のトラヒック量が定められた比率になるように制御することはできない。
【００１２】
このように、従来法では、クラス別のトラヒック量の制御は行えても、各クラス間のトラヒック量の比率が定められた比率になるようなトラヒック量制御は行えないという問題がある。
【００１３】
本発明は、かかる点に鑑みてなされたものであり、ユーザのフローをクラス分けし、各クラスのトラヒック量の比率を守りながらトラヒック量の制御を行うことを目的とする。
【００１４】
【課題を解決するための手段】
本発明は、各クラスのトラヒック量を観測しておき、受信したデータのクラスのトラヒック量と受信したデータのクラスとは別のクラスのトラヒック量との比率が、予め定められた比率になるようにデータの廃棄確率を決定し、決定した廃棄確率を用いて受信したデータの廃棄を行うことで、データのクラス別トラヒック量の制御を行うようにした。
【００１５】
これにより、各クラス間のトラヒック量の比率を守りながらクラス別のトラヒック量の制御を行うことができる。
【００１６】
【発明の実施の形態】
本発明の第１の態様にかかるトラヒック量制御装置は、データのフローを分類したクラス毎に予め設定されたトラヒック量の前記クラス間の比率を格納したトラヒック比率格納手段と、受信したデータの前記クラスを検出するクラス検出手段と、前記受信したデータの前記クラスのトラヒック量と前記受信したデータとは別の前記クラスの前記トラヒック量との比率を算出し、算出した前記比率が前記トラヒック比率格納手段に格納された前記比率になるように前記データの廃棄確率を計算する廃棄確率計算手段と、計算した前記廃棄確率に基づき前記受信したデータを廃棄するか決定することで前記受信データのトラヒック量を制御する廃棄決定手段と、を具備した構成を採る。
【００１７】
この構成により、各クラスの廃棄確率を動的に変化させることができるので、各クラスのトラヒック量を予め設定された比率に制御することが可能となる。
【００１８】
本発明の第２の態様は、第１の態様にかかるトラヒック量制御装置において、前記受信したデータの前記クラスのトラヒック量が所定の最低トラヒック量を下回らないように前記廃棄確率を決定する。
【００１９】
これにより、各クラスの最低帯域を保証しつつ、帯域があまっている場合にはあまった帯域を各クラスのトラヒックの比を設定された値に保ちながら有効に使うことが可能となる。
【００２０】
本発明の第３の態様は、第１の態様または第２の態様にかかるトラヒック量制御装置と、受信したデータを前記トラヒック量制御装置に振り分ける振り分け手段と、を具備したことを特徴とする中継装置である。
【００２１】
本発明の第４の態様は、データのフローを分類したクラス毎に予め設定されたトラヒック量の前記クラス間の比率を格納するステップと、受信したデータの前記クラスを検出するステップと、前記受信したデータの前記クラスのトラヒック量と前記受信したデータとは別の前記クラスの前記トラヒック量との比率を算出するステップと、算出した前記比率が前記トラヒック比率格納手段に格納された前記比率になるように前記データの廃棄確率を計算するステップと、計算した前記廃棄確率に基づき前記受信したデータを廃棄することで前記受信データのトラヒック量を制御するステップと、を具備したことを特徴とするトラヒック量制御方法である。
【００２２】
本発明の第５の態様は、コンピュータに、データのフローを分類したクラス毎に予め設定されたトラヒック量の前記クラス間の比率を格納するステップと、受信したデータの前記クラスを検出するステップと、前記受信したデータの前記クラスのトラヒック量と前記受信したデータとは別の前記クラスの前記トラヒック量との比率を算出するステップと、算出した前記比率が前記トラヒック比率格納手段に格納された前記比率になるように前記データの廃棄確率を計算するステップと、計算した前記廃棄確率に基づき前記受信したデータを廃棄するか決定することで前記受信データのトラヒック量を制御するステップと、を行わせることを特徴とするプログラムである。
【００２３】
本発明の第６の態様は、第５の態様にかかるプログラムを格納したことを特徴とするコンピュータ読取可能な記憶媒体である。
【００２４】
以下、本発明の一実施の形態にかかるトラヒック量制御装置を適用した中継装置について添付図面を参照して説明する。まず、上記実施の形態にかかる中継装置の構成について図１を用いて説明する。図１は、上記実施の形態にかかる中継装置の構成図である。
【００２５】
本発明の中継装置１０５は、送信端末１０３から送られてきたデータを複数の受信端末１０４ａ〜１０４ｎに中継する。送信端末１０３及び受信端末１０４は、具体的にはサーバ、ＰＣなどのユーザ端末などである。
【００２６】
中継装置１０５には、送信端末１０３から到着したＩＰパケットのＩＰヘッダーの「あて先アドレス」などの情報を基にＩＰパケットを複数のトラヒック量制御部１０２ａ〜１０２ｎに振り分けるＩＰパケット振り分け部１０１と、ＩＰパケットの廃棄や蓄積等の管理を行うトラヒック量制御部１０２ａ〜１０２ｎが複数設けられている。なお、本文中の廃棄とは、ＩＰパケット廃棄を意味する。また、トラヒック量制御部１０２ａ〜１０２ｎの個数は限定しない。
【００２７】
また、中継装置１０５は、具体的にはルータやゲートウェイなどである。本実施の形態で仮定するネットワークは、インターネットプロトコル（ＩＰ）を前提とし、伝送路は有線（例えばＦＴＴＨ，ＡＤＳＬ）／無線（例えば無線ＬＡＮ）のいずれであってもよい。
【００２８】
次に、トラヒック量制御部１０２ａ〜１０２ｎの構成について図２を用いて説明する。図２は、上記実施の形態にかかるトラヒック量制御部１０２ａ〜１０２ｎの構成図である。
【００２９】
トラヒック量制御部１０２ａ〜１０２ｎには、ＩＰパケット振り分け部１０１からの到着ＩＰパケットのクラスを確認するクラス検出部２０１が設けられている。クラス検出部２０１は、確認したＩＰパケットのクラスをパラメータ決定部２０５に送る。
【００３０】
また、トラヒック量制御部１０２ａ〜１０２ｎには、ＩＰパケットを蓄積しておくキューであるＩＰパケット蓄積部２０４が設けられている。
【００３１】
また、トラヒック量制御部１０２ａ〜１０２ｎには、各クラスのスループットを測定するスループット観測部２０６が設けられている。スループット観測部２０６は、キューであるＩＰパケット蓄積部２０４を参照することで、過去における各クラスのＩＰパケットの転送量から各クラスのスループットを観測する。スループット観測部２０６は、測定した各クラスのスループットをパラメータ決定部２０５に送る。
【００３２】
また、トラヒック量制御部１０２ａ〜１０２ｎには、クラス検出部２０１が検出したクラスと、スループット観測部２０６が観測した各クラスのスループットと、トラヒック比率格納部２０７に格納された各クラス間のトラヒック比率と、パラメータ格納部２０８に格納された初期値と、を基に各クラスの廃棄確率を計算する際に必要なパラメータを決定するパラメータ決定部２０５が設けられている。パラメータ決定部２０５は、決定したパラメータをパラメータ格納部２０８に送り。そして、パラメータ格納部２０８は、送られてきたパラメータを随時更新しながら格納する。
【００３３】
また、トラヒック比率格納部２０７に格納されたトラヒック比率は、全てのクラス間の割り当てトラヒック量の比である。また、トラヒック比率格納部２０７には、各クラスに割り当てられたトラヒック量も格納している。
【００３４】
また、トラヒック量制御部１０２ａ〜１０２ｎには、ＩＰパケット蓄積部２０４に蓄積されたＩＰパケットから平均キュー長を測定するキュー長測定部２０３が設けられている。ここで、平均キュー長は、ＩＰパケットの数から求めてもよいし、蓄積されたデータ長から求めてもよい。また、各クラス単位で求めてもよいし、全てのクラス全体で求めてもよい。キュー長測定部２０３は、測定した平均キュー長を廃棄制御部２０２に送る。
【００３５】
また、トラヒック量制御部１０２ａ〜１０２ｎには、パラメータ決定部２０５が決定したパラメータとキュー長測定部２０３が測定した平均キュー長を基にＩＰパケットを廃棄するかどうかの制御を行う廃棄制御部２０２が設けられている。廃棄制御部２０２は、ＩＰパケットを通過すると決定した場合は、このＩＰパケットをＩＰパケット蓄積部２０４に送る。一方、廃棄制御部２０２は、ＩＰパケットを廃棄すると決定した場合は、このＩＰパケットを廃棄する。
【００３６】
次に、廃棄制御部２０２の構成について、図３を用いて説明する。図３は、上記実施の形態にかかる廃棄制御部２０２の構成図である。
【００３７】
廃棄制御部２０２は、ＩＰパケットを廃棄する確率をパラメータ決定部２０５の決定したパラメータ、キュー長測定部２０３が測定した平均キュー長、および廃棄閾値格納部３０３に格納された廃棄閾値に基づいて計算する廃棄確率計算部３０１が設けられている。
【００３８】
また、廃棄確率計算部３０１から送られた廃棄確率を基に該ＩＰパケットを廃棄するか通過させるかを決定する廃棄決定部３０２が設けられている。
【００３９】
ここで、廃棄確率を求める際に用いる廃棄確率曲線について説明する。廃棄確率曲線とは、平均キュー長の値と廃棄確率との関係を決める曲線である。本実施の形態では、トラヒック量制御を行うために廃棄確率を変動させる。廃棄確率は、到着ＩＰパケットの属するクラス、各クラスのスループット、ＩＰパケット蓄積部２０４の平均キュー長を基に変動する。
【００４０】
また、廃棄確率曲線は、平均キュー長が短い時は、ＩＰパケットのロスをあまり発生させないように廃棄確率を低く設定し、平均キュー長が長い時は、バーストロスを防ぐために廃棄確率を高く設定するような曲線になっている。
【００４１】
また、本実施の形態では、各クラス毎に異なる廃棄確率曲線を用意している。これにより、各クラスのＩＰパケット廃棄確率に違いを持たせてクラス別トラヒック量制御を行うようにしている。
【００４２】
また、上記実施の形態では、各クラスのスループットを観測し、各クラスのトラヒックの比を基に、観測されたスループットが大き過ぎるクラスに関しては廃棄確率を上げてスループットを下げ、観測されたスループットが小さ過ぎるクラスに関しては廃棄確率を下げてスループットを上げることで帯域を制御する。
【００４３】
図４を用いて上記実施の形態にかかる廃棄確率曲線について具体的に説明する。図４は、上記実施の形態にかかる廃棄確率曲線を示した図である。
【００４４】
図４の横軸はＩＰパケット蓄積部の平均キュー長、縦軸は廃棄確率である。図４中で、ｍｉｎＴｈは、これ以上平均キュー長が短くなると絶対廃棄が行われない平均キュー長の値であり、最小廃棄閾値と呼ぶ。また、ｍａｘＴｈは、これ以上平均キュー長が長くなると絶対廃棄が行われるという平均キュー長の値であり、最大廃棄閾値と呼ぶ。廃棄閾値格納部３０３には、この最小廃棄閾値と最大廃棄閾値が格納されている。Ｐａ，Ｐｂ，Ｐｃは、各クラスの最大廃棄閾値における廃棄確率を表しており、パラメータと呼ぶ。
【００４５】
本実施の形態では、図４に示す廃棄確率曲線を用いることで、最小廃棄閾値と最大廃棄閾値は変動させないで、各クラスの観測されたスループットに基づいて、パラメータの値を変動させるようにしているが、最小廃棄閾値と最大廃棄閾値を、各クラスの観測されたスループットに基づいて変動させてもかまわない。
【００４６】
次に、中継装置１０５の動作について図５を用いて説明する。図５は、上記実施の形態にかかる中継装置１０５の動作の流れを示す図である。
【００４７】
まず、中継装置１０５に到着したＩＰパケットは、まずＩＰパケット振り分け部１０１に入る。そして、ＩＰパケット振り分け部１０１が、このＩＰパケットをＩＰパケットの「あて先アドレス」などに応じて、トラヒック量制御部１０２に振り分ける（ステップ５０１）。
【００４８】
次に、トラヒック量制御部１０２においてクラス検出部２０１が、到着したＩＰパケットのクラスを検出する（ステップ５０２）。
【００４９】
次に、スループット観測部２０６が、ＩＰパケット蓄積部２０４を参照し、過去のデータ転送量を観測することで、各クラスのスループットを測定する（ステップ５０３）。
【００５０】
次に、パラメータ決定部２０５が、クラス検出部２０１が検出したクラスと、スループット観測部２０６が観測した各クラスのスループットを基に、廃棄確率の計算に使うパラメータを計算する（ステップ５０４）。
【００５１】
続いて、キュー長測定部２０３が、ＩＰパケット蓄積部２０４を参照して、各クラスの平均キュー長を計算する（ステップ５０５）。
【００５２】
そして、廃棄確率計算部３０１が、ステップ５０４で計算したパラメータとステップ５０５で計算した平均キュー長を基に、廃棄確率を計算する（ステップ５０６）。そして、廃棄決定部３０２が、ステップ５０６において計算した廃棄確率に基づいて、到着したＩＰパケットを廃棄するか通過させるかを決定する（ステップ５０７）。
【００５３】
次に、廃棄決定部３０２が到着したＩＰパケットが通過すると決定した場合は（ステップ５０８）、このＩＰパケットをＩＰパケット蓄積部２０４に送り（ステップ５０９）、該ＩＰパケットが廃棄に決定した場合は（ステップ５０８）、このＩＰパケットを廃棄する（ステップ５１０）。
【００５４】
このようにして、中継装置１０５は、到着したＩＰパケットを廃棄するか否かを決定する。
【００５５】
次に、図５におけるステップ５０１の動作について図６を用いて詳細に説明する。図６は、上記実施の形態にかかるＩＰパケット振り分け部１０１の動作を示す図である。
【００５６】
ステップ５０１において、まず、ＩＰパケット振り分け部１０１は、到着したＩＰパケットのＩＰヘッダー情報から、「あて先アドレス」の情報を読み込み（ステップ６０１）、読み込んだ「あて先アドレス」を基に到着したＩＰパケットをトラヒック量制御部１０２に振り分ける（ステップ６０２）。
【００５７】
このようにして、ＩＰパケット振り分け部１０１は、到着ＩＰパケットを振り分ける。
【００５８】
なお、本実施の形態では、ＩＰパケット振り分け部１０１は、「あて先アドレス」に基づいて、到着したＩＰパケットを振り分けたが、ＩＰパケットから「送信元アドレス」、「ポート番号」、「ＶＬＡＮタグ」、「ＭＰＬＳタグ」、「Ｅｔｈｅｒアドレス」、「コンテンツの内容」などの情報を読み込み、これらの情報を基に、到着したＩＰパケットをトラヒック量制御部１０２に振り分けるようにしても良い。
【００５９】
次に、図５におけるステップ５０２の動作について図７を用いて詳細に説明する。図７は、上記実施の形態にかかるクラス検出部２０１の動作を示す図である。
【００６０】
本実施の形態では、各フローは、Ａ、Ｂ、Ｃの３つのクラスに分けられているとする。また、サーバで、ＩＰパケットのＴＯＳフィールドに、「１」、「２」、「３」のいずれかの値がつけられるとする。ＴＯＳフィールドの値が「１」の場合はＡクラス、「２」の場合はＢクラス、「３」の場合はＣクラスに属しているとする。
【００６１】
まず、クラス検出部２０１が、到着したＩＰパケットのＩＰヘッダーのＴＯＳフィールドからクラスの情報を読み込む（ステップ７０１）。例えば、ここで、「２」という値が読み込まれた場合には、このＩＰパケットがＢクラスに属していることがわかる。
【００６２】
次に、クラス検出部２０１は、ステップ７０１において検出した検出結果であるクラス情報（例えば「２」という値）をパラメータ決定部２０５に送る（ステップ７０２）。
【００６３】
このようにして、クラス検出部２０１は、到着したＩＰパケットのクラスを検出する。
【００６４】
なお、本実施の形態では、クラス検出部２０１は、ＩＰヘッダーのＴＯＳフィールドからクラスの情報を読み込む形態を採ったが、到着したＩＰパケットのＩＰパケットから「あて先アドレス」、「送信元アドレス」、「ポート番号」、「ＶＬＡＮタグ」、「ＭＰＬＳタグ」、「Ｅｔｈｅｒアドレス」、「コンテンツの内容」などの情報を読み込み、これらの情報を基に該ＩＰパケットのクラスを検出し、検出結果であるクラス情報をパラメータ決定部２０５に送る形態であっても良い。また、本実施の形態では、クラスを３つに分けたが、クラスの数はいくつでもかまわない。
【００６５】
次に、図５におけるステップ５０３の動作について図８を用いて詳細に説明する。図８は、上記実施の形態にかかるスループット観測部２０６の動作を示した図である。
【００６６】
スループット観測部２０６は、ＩＰパケット蓄積部２０４を参照し、各クラスについて過去１秒間のデータ転送量を観測し、スループットの値とする（ステップ８０１）。次に、スループット観測部２０６は、パラメータ決定部２０５からの要求に従い、各クラスのスループットの値をパラメータ決定部２０５に送る（ステップ８０２）。
【００６７】
このようにしてスループット観測部２０６は、各クラスのスループットを観測する。
【００６８】
なお、上記実施の形態では、スループット観測部２０６が、過去１秒間のデータ転送量を観測しスループットの値としたが、各クラスについて、「過去のある一定期間の平均データ転送量」や「過去のある一定期間の送信パケット数」などをスループットとして観測する形態であっても良い。
【００６９】
次に、図５におけるステップ５０４の動作について図９を用いて詳細に説明する。図９は、上記実施の形態にかかるパラメータ決定部２０５の動作を示した図である。
【００７０】
本実施の形態では、トラヒック量制御を行うために廃棄確率を変動させる。廃棄確率は、到着したＩＰパケットの属するクラス、各クラスのスループット、ＩＰパケット蓄積部２０４の平均キュー長を基に変動する。
【００７１】
パラメータ決定部２０５では、到着ＩＰパケットのクラスの情報と各クラスのスループットの値を基に、廃棄確率を計算する際に必要になるパラメータの値を決定し廃棄確率計算部３０１に送る。
【００７２】
具体的には、パラメータ決定部２０５は、クラス検出部２０１から該ＩＰパケットのクラス情報（例えば「２」という値）を取得し（ステップ９０１）、スループット観測部２０６から各クラスのスループットの値を取得する（ステップ９０２）。次に、パラメータ決定部２０５は、取得した該ＩＰパケットのクラス情報と各クラスのスループットの値を基に廃棄確率の計算に用いるパラメータを決定する（ステップ９０３）。決定したパラメータの値を廃棄確率計算部３０１に送る（ステップ９０４）。
【００７３】
次に、本実施の形態におけるパラメータ決定部２０５のパラメータ決定動作（ステップ９０３）について詳しく説明する。
【００７４】
本実施の形態は、各クラス間のトラヒック量の比率が定められた比率になるように各クラスの廃棄確率を制御することを特徴とするものであり、これを実現するために、各クラスのパラメータの値を変動させるようにしている。
【００７５】
そのために本実施の形態では、最もスループットの値の大きなクラスを基本クラスとし、到着ＩＰパケットのクラスと基本クラスについて、観測されたスループットに基づく比率と、トラヒック比率格納部２０７に設定されている比率とを比較する。
【００７６】
そして、基本クラスのスループットに対して、到着ＩＰパケットのクラスのスループットが大き過ぎた場合は、到着ＩＰパケットのクラスの廃棄確率を上げるため、該クラスのパラメータの値を増加させる。
【００７７】
逆に、基本クラスのスループットに対して、到着ＩＰパケットのクラスのスループットが小さ過ぎた場合は、到着ＩＰパケットのクラスの廃棄確率を下げるため、該クラスのパラメータの値を減少させる。
【００７８】
また、到着ＩＰパケットのクラスが最もスループットの値の大きなクラスだった場合は、トラヒック比率格納部２０７に設定されている、該クラスに割り当てられたトラヒック量の値と比較して、到着ＩＰパケットのクラスのスループットが大き過ぎた場合は、到着ＩＰパケットのクラスの廃棄確率を上げるため、該クラスのパラメータの値を増加させる。
【００７９】
逆に、到着ＩＰパケットのクラスが最もスループットの値の大きなクラスであって、トラヒック比率格納部２０７に設定されている、該クラスに割り当てられたトラヒック量の値と比較して、到着ＩＰパケットのクラスのスループットが小さ過ぎた場合は、到着ＩＰパケットのクラスの廃棄確率を下げるため、該クラスのパラメータの値を減少させる。
【００８０】
次に、本実施の形態にかかるパラメータ決定の動作（ステップ９０３）について、図１０、図１１を用いて具体的に説明する。図１０、図１１は、上記実施の形態にかかるパラメータ決定部２０５におけるパラメータ決定の動作を示した図である。
【００８１】
ステップ９０３では、パラメータ決定部２０５が、まずスループット観測部２０６から取得した各クラスのスループットの値を基に最もスループットの値の大きいクラスを調べ、それを基本クラスとする（ステップ１００１）。
【００８２】
基本クラスが決まったら、次に、パラメータ決定部２０５は、到着したＩＰパケットのクラスが基本クラスかどうか調べる（ステップ１００２）。
【００８３】
そして、到着したＩＰパケットのクラスが基本クラスだった場合は、パラメータ決定部２０５は、到着したＩＰパケットのクラスにおけるスループットの値ＴｂがこのＩＰパケットに予め割り当てられたトラヒック量の値Ｔｂｄｅｆであるか判断するために、到着したＩＰパケットのクラスにおけるスループットの値Ｔｂと該クラスに割り当てられたトラヒック量の値Ｔｂｄｅｆとを比較し、Ｔｂ＝Ｔｂｄｅｆか判断する（ステップ１００３）。なお、Ｔｂｄｅｆは、予めトラヒック比率格納部２０７に設定してある。
【００８４】
そして、ステップ１００３において、Ｔｂ＝Ｔｂｄｅｆでないと判断した場合は、到着したＩＰパケットのクラスにおけるスループットの値Ｔｂがこのクラスに予め割り当てられたトラヒックの量Ｔｂｄｅｆでない場合であるので、次に、パラメータ決定部２０５は、Ｔｂ＜Ｔｂｄｅｆか調べる（ステップ１００４）。
【００８５】
そして、ステップ１００４において、Ｔｂ＜Ｔｂｄｅｆと判断した場合は、到着したＩＰパケットのクラスのスループットが、予め割り当てられたトラヒック量より小さいので、パラメータ決定部２０５は、このクラスの廃棄確率を下げるようにパラメータの値Ｐｂを０．０１減らす（ステップ１００５）。このようにして、パラメータ決定部２０５は、到着したＩＰパケットのクラスの廃棄確率を下げることにより、該クラスのＩＰパケットが廃棄されにくくし、結果として該クラスのスループットを上げる。
【００８６】
一方、ステップ１００４において、Ｔｂ＞Ｔｂｄｅｆと判断した場合は、到着したＩＰパケットのクラスのスループットが、予め割り当てられたトラヒック量より大きいので、パラメータ決定部２０５は、このクラスの廃棄確率を上げるようにパラメータの値Ｐｂを０．０１増やす（ステップ１００６）。このようにして、パラメータ決定部２０５は、到着したＩＰパケットのクラスの廃棄確率を上げることにより、該クラスのＩＰパケットが廃棄されやすくし、結果として該クラスのスループットを下げる。
【００８７】
また、ステップ１００３において、Ｔｂ＝Ｔｂｄｅｆと判断した場合は、到着したＩＰパケットのクラスのスループットが、予め割り当てられたトラヒック量を満たすものであるので、パラメータ決定部２０５は、パラメータの値Ｐｂを変化させない。
【００８８】
また、ステップ１００２において、到着したＩＰパケットのクラスが基本クラスではなかったと判断した場合は、パラメータ決定部２０５は、到着したＩＰパケットのクラスのスループットと基本クラスのスループットの比と、予め設定されているこのＩＰパケットのクラスに割り当てられたトラヒック量と基本クラスに割り当てられたトラヒック量の比とを比較する。
【００８９】
本実施の形態では、予め定められた値として、クラスＡとＢに割り当てられたトラヒック量の比をＮａｂ、クラスＢとＡに割り当てられたトラヒック量の比をＮｂａ（＝１／Ｎａｂ）、クラスＢとＣに割り当てられたトラヒック量の比をＮｂｃ、クラスＣとＢに割り当てられたトラヒック量の比をＮｃｂ（＝１／Ｎｂｃ）、クラスＣとＡに割り当てられたトラヒック量の比をＮｃａ、クラスＡとＣに割り当てられたトラヒック量の比をＮａｃ（＝１／Ｎｃａ）とする。これらの値は予めトラヒック比率格納部２０７に設定しておく。また、この実施例では基本クラス（最もスループットの値が大きいクラス）がＡクラス、基本クラスのスループットの値をＴａとする。
【００９０】
以下、到着したＩＰパケットのクラスをＢとして説明する。つまり、到着したＩＰパケットのクラスと基本クラスに割り当てられたトラヒック量の比はＮｂａとなる。
【００９１】
パラメータ決定部２０５は、到着したＩＰパケットのスループットと基本クラスのスループットの比が予め定められた比率であるか判断するために、Ｔｂ／Ｔａ＝Ｎｂａであるか判断する（ステップ１００７）。
【００９２】
ステップ１００７において、Ｔｂ／Ｔａ＝Ｎｂａと判断した場合は、到着したＩＰパケットのクラスと基本クラスのスループットの比が予め設定されていた比率を満たすので、パラメータ決定部２０５は、この場合パラメータの値Ｐｂは変化させない。
【００９３】
逆に、ステップ１００７において、Ｔｂ／Ｔａ＝Ｎｂａでないと判断した場合は、到着したＩＰパケットのクラスと基本クラスのスループットの比が予め設定されていた比率を満たさないので、パラメータ決定部２０５は、パラメータの値Ｐｂを変化させる処理に移行する。そして、パラメータ決定部２０５は、到着したＩＰパケットのクラスと基本クラスのスループットの比が予め設定されていた比率と比較して大きいか小さいか調べるために、Ｔｂ／Ｔａ＜Ｎｂａであるか判断する（ステップ１００８）。
【００９４】
そして、ステップ１００８において、Ｔｂ／Ｔａ＜Ｎｂａでないと判断すると、到着したＩＰパケットのクラスのスループットが基本クラスのスループットに対して、予め設定されている値より大きいということであるので、パラメータ決定部２０５は、このクラスの廃棄確率を上げるようにパラメータの値Ｐｂを０．０１増やす（ステップ１００６）。このようにして、パラメータ決定部２０５は、到着したＩＰパケットのクラスの廃棄確率を上げることにより、該クラスのＩＰパケットが廃棄されやすくし、結果として該クラスのスループットを下げる。
【００９５】
一方、ステップ１００８において、Ｔｂ／Ｔａ＜Ｎｂａあると判断すると、該クラスのスループットが基本クラスのスループットに対して、予め設定されている値より小さいということであるので、パラメータ決定部２０５は、このクラスの廃棄確率を下げるようにパラメータの値Ｐｂを０．０１減らす（ステップ１００５）。このようにして、パラメータ決定部２０５は、到着したＩＰパケットのクラスの廃棄確率を下げることにより、該クラスのＩＰパケットが廃棄されにくくし、結果として該クラスのスループットを上げる。
【００９６】
次に、本実施の形態では、パラメータＰｂを０〜１の間に設定しているため、パラメータ決定部２０５は、パラメータＰｂを０〜１の間にあるか調べる必要がある。
【００９７】
よって、まず、パラメータ決定部２０５は、パラメータＰｂが０より小さい値になっているか判断する（ステップ１００９）。そして、ステップ１００９においてＰｂが０より小さいと判断した場合は、パラメータ決定部２０５は、Ｐｂ＝０とする（ステップ１０１０）。
【００９８】
また、ステップ１００９においてＰｂが０より小さくないと判断した場合は、パラメータ決定部２０５は、パラメータＰｂが１より大きい値になっているか判断する（ステップ１０１１）。そして、ステップ１０１１において、パラメータＰｂが１より大きいと判断した場合は、パラメータ決定部２０５は、Ｐｂ＝１とする（ステップ１０１２）。
【００９９】
そして、パラメータ決定部２０５は、最後に、決定したパラメータＰｂを廃棄確率計算部３０１に送る（ステップ１０１３）。
【０１００】
以上のようにして、パラメータ決定部２０５は、到着したＩＰパケットのクラスが基本クラスであった場合は、このＩＰパケットのクラスに割り当てられたトラヒック量が予め定められたものになるようにパラメータを変更し、到着したＩＰパケットのクラスが基本クラス以外の場合は、このＩＰパケットのクラスのスループットと基本クラスのスループットとの比率が所定の比率になるようにパラメータを変更する。
【０１０１】
次に、図５におけるステップ５０５の動作について図１２を用いて詳細に説明する。図１２は、上記実施の形態にかかるキュー長測定部２０３の動作を示した図である。実際のキュー長をＱｌｅｎ、前回測定した際の平均キュー長をＱａｖｅ０、今回測定する平均キュー長をＱａｖｅとする。
【０１０２】
キュー長測定部２０３は、まず現在のキュー長Ｑｌｅｎをカウントする（ステップ１１０１）。次に、キュー長測定部２０３は、Ｑｌｅｎと前回キュー長測定部２０３が計算した平均キュー長Ｑａｖｅ０とより、式Ｑａｖｅ＝αＱａｖｅ０＋（１−α）Ｑｌｅｎを用いて平均キュー長Ｑａｖｅを計算する（ステップ１１０２）。最後に、キュー長測定部２０３は、計算結果である平均キュー長Ｑａｖｅを廃棄確率計算部３０１に送る（ステップ１１０３）。
【０１０３】
このようにして、トラヒック量制御のため変動する廃棄確率を決定する際に必要となるＩＰパケット蓄積部２０４の平均キュー長を計算する。
【０１０４】
次に、図５におけるステップ５０６の動作について、図１３を用いて詳細に説明する。図１３は、上記実施の形態にかかる廃棄確率計算部３０１の動作を示した図である。
【０１０５】
まず、廃棄確率計算部３０１では、到着したＩＰパケットを廃棄する確率を決定する。そのためにまず、廃棄確率計算部３０１は、パラメータ決定部２０５より取得したパラメータの値と廃棄閾値格納部３０３より取得した最小廃棄閾値と最大廃棄閾値とを基に廃棄確率曲線を計算する。廃棄確率計算部３０１は、廃棄確率曲線が求まると、キュー長測定部２０３より取得した平均キュー長の値と該廃棄確率曲線から廃棄確率を決定する。
【０１０６】
具体的には、廃棄確率計算部３０１は、パラメータＰｂと廃棄閾値格納部３０３より取得した最小廃棄閾値ｍｉｎＴｈと最大廃棄閾値ｍａｘＴｈとを基に、図４の実線で示される廃棄確率曲線を求める（ステップ１２０１）。次に、廃棄確率計算部３０１は、該廃棄確率曲線とキュー長測定部２０３より取得した平均キュー長Ｑａｖｅより廃棄確率Ｐを決定する（ステップ１２０２）。そして、廃棄確率計算部３０１は、決定した廃棄確率Ｐを廃棄決定部３０２に送る（ステップ１２０３）。
【０１０７】
次に、図５におけるステップ５０７の処理について図１４を用いて詳細に説明する。図１４は、上記実施の形態にかかる廃棄決定部３０２の動作を示した図である。
【０１０８】
廃棄決定部３０２では、到着したＩＰパケットを通過させるか廃棄するかの決定を行い、実際に、ＩＰパケット蓄積部に送るか廃棄するかを行う。
【０１０９】
具体的には、廃棄決定部３０２は、廃棄確率計算部３０１より取得した廃棄確率を基に到着したＩＰパケットを廃棄するか通過させるかを決定する（ステップ１３０１）。そして、廃棄決定部３０２は、このＩＰパケットを通過させるということになった場合（ステップ５０８）、このＩＰパケットをＩＰパケット蓄積部２０４に送る（ステップ５０９）。また、このＩＰパケットが廃棄されるということになった場合（ステップ５０８）、廃棄決定部３０２は、このＩＰパケットを廃棄する（ステップ５１０）。
【０１１０】
以上説明したように、上記実施の形態によれば、各クラスのスループットを測定し、各クラス間のトラヒック量の比が予め設定された値になるようにトラヒック量を制御することができる。このように各クラスの廃棄確率を動的に変化させることができるので、各クラスのトラヒック量を予め設定された比に制御することが可能となる。
【０１１１】
また、上記実施の形態によれば、各クラスの最低帯域を保証しつつ、帯域があまっている場合にはあまった帯域を各クラスのトラヒックの比を設定された値に保ちながら有効に使うことが可能となる。
【０１１２】
さらに、上記実施の形態によれば、複数のクラスに対して、一つのキューで対応することが可能であり、クラスの分け方が細かくなった場合でもキューの数を増やすことなく処理することが可能となる。
【０１１３】
なお、上述した中継装置１０５が備える各処理部の処理を専用のハードウェアで実現しても、各処理部の処理をプログラムにし記憶媒体に格納し、汎用のコンピュータに記憶媒体に格納したプログラムを読み込ませ実行させる形態であっても良い。
【０１１４】
【発明の効果】
以上説明したように、本発明によれば、データの廃棄確率をクラスごとに個別に設定すると共に予め定められたトラヒック量の比率に基づいて変動させることにより、各クラス間のトラヒック量の比率を守りながらトラヒック量の制御を行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態における中継装置の構成図
【図２】上記実施の形態におけるトラヒック量制御部の構成図
【図３】上記実施の形態における廃棄制御部の構成図
【図４】上記実施の形態における廃棄確率曲線の例を示す図
【図５】上記実施の形態における中継装置の全体の動作を説明するためのフローチャート
【図６】上記実施の形態におけるＩＰパケット振り分け部の動作を説明するためのフローチャート
【図７】上記実施の形態におけるクラス検出部の動作を説明するためのフローチャート
【図８】上記実施の形態におけるスループット観測部の動作を説明するためのフローチャート
【図９】上記実施の形態におけるパラメータ決定部の動作を説明するためのフローチャート
【図１０】上記実施の形態におけるパラメータ決定部の動作におけるパラメータ決定の詳しい動作を説明するための第１のフローチャート
【図１１】上記実施の形態におけるパラメータ決定部の動作におけるパラメータ決定の詳しい動作を説明するための第２のフローチャート
【図１２】上記実施の形態におけるキュー長測定部の動作を説明するためのフローチャート
【図１３】上記実施の形態における廃棄確率計算部の動作を説明するためのフローチャート
【図１４】上記実施の形態における廃棄決定部の動作を説明するためのフローチャート
【符号の説明】
１０１　ＩＰパケット振り分け部
１０２　トラヒック量制御部
１０３　送信端末
１０４　受信端末
１０５　中継装置
２０１　クラス検出部
２０２　廃棄制御部
２０３　キュー長測定部
２０４　ＩＰパケット蓄積部
２０５　パラメータ決定部
２０６　スループット観測部
３０１　廃棄確率計算部
３０２　廃棄決定部
【図１】
2004056726.tif 000003
【図２】
2004056726.tif 000004
【図３】
2004056726.tif 000005
【図４】
2004056726.tif 000006
【図５】
2004056726.tif 000007
【図６】
2004056726.tif 000008
【図７】
2004056726.tif 000009
【図８】
2004056726.tif 000010
【図９】
2004056726.tif 000011
【図１０】
2004056726.tif 000012
【図１１】
2004056726.tif 000013
【図１２】
2004056726.tif 000014
【図１３】
2004056726.tif 000015
【図１４】
2004056726.tif 000016