(57)【特許請求の範囲】
【請求項１】
ネットワークへ送信及び／又はネットワークから受信するデータを保持するデータバッファと、
トークンを出力するトークン生成手段と、
トークン生成手段が出力したトークンを保持するトークンバッファと、
トークンバッファがトークンを保持している場合、データバッファからデータを読み出す読出手段と、
を有するトラヒック制御装置であって、
ネットワークの状態を監視する回線監視手段と、
トークンバッファにトークンが保持されている間に回線監視手段が監視するネットワークの状態に基づきトークン生成手段でのトークンの出力レートを更新するレート決定手段と、
を備えていることを特徴とするトラヒック制御装置。
【請求項２】
回線監視手段は、読出手段が読み出すデータ量をネットワークの状態として監視すること、
を特徴とする請求項１に記載のトラヒック制御装置。
【請求項３】
トークン調整手段を備え、
レート決定手段は、トークンバッファにトークンが所定期間以上保持されていない場合、トークン調整手段にトークン調整指示を行い、
トークン調整手段は、トークン調整指示で指定された数のトークンをトークンバッファに挿入すること、
を特徴とする請求項１又は２に記載のトラヒック制御装置。
【請求項４】
トークンバケットによるトラヒック制御方法であって、
ネットワークの状態を監視するステップと、
トークンバッファにトークンが保持されている間のネットワークの状態に基づきトークンの出力レートを更新するステップと、
を有することを特徴とするトラヒック制御方法。
【請求項５】
請求項１から３のいずれか１項に記載のトラヒック制御装置としてコンピュータを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、トークンバケットを用いたトラヒック制御技術に関する。
【背景技術】
【０００２】
通信装置におけるトラヒック制御方式の１つとして、トークンバケットと呼ばれる方式が提案され、使用されている（例えば、非特許文献１参照。）。図５は、トークンバケットによるトラヒック制御のブロック図であり、通信装置の送信側及び／又は受信側に設けられる。
【０００３】
図５によると、トークンバケットによるトラヒック制御は、トークン生成部１１と、トークンバッファ１２と、読出部１３と、データバッファ１４とを備えている。
【０００４】
トークン生成部１１は、トークン１０をあるレートにて生成してトークンバッファ１２に出力し、トークンバッファ１２は、トークン生成部１１が生成するトークン１０を保持する。一方、データバッファ１４は、データ２０を保持するバッファである。尚、通信装置の送信側におけるトラヒック制御の場合、データ２０は、ネットワークに送信されるデータ又はパケットであり、通信装置の受信側におけるトラヒック制御の場合、ネットワークから受信するデータ又はパケットであり、通信装置内の他の機能ブロックや、共通バス等に出力される。
【０００５】
トークン１０とは、読出し権利のことであり、読出部１３は、トークンバッファ１２にトークン１０が保持されている場合に限り、１つのトークン１０当たり所定データ量のデータ１０をトークンバッファ１２から読み出して出力する。したがって、トークンバケットによるトラヒック制御では、トークン生成部１１でのトークン１０の出力レートと、１つのトークン１０で読出可能なデータ量の積によりデータレートが規定され、１つのトークン１０で読出可能なデータ量と、トークンバッファ１２が保存可能なトークン１０の数の積により最大バースト長が規定される。尚、データバッファ１４に保存されるデータが既にパケット化されている場合には、読出部１３は、所定データ量以下のパケットを、パケット単位で読み出す。
【０００６】
トークンバケットによるトラヒック制御では、処理すべきデータ量が少ないときには、使用しないトークン１０をトークンバッファ１２に蓄えておくため、送信するデータ量が多くなったときに、前記トークン１０の出力レートと、トークン１０当たりの読出可能なデータ量の積で規定されるデータレートを超えるレートで、データの送信ができるという特徴がある。
【０００７】
【非特許文献１】Ａ．Ｐａｒｅｋｈ、Ｒ．Ｇａｌｌｅｒｇｅｒ、“Ａ  ｇｅｎｅｒａｌｉｚｅｄ  ｐｒｏｃｅｓｓｏｒ  ｓｈａｒｉｎｇ  ａｐｐｒｏａｃｈ  ｔｏ  ｆｌｏｗ  ｃｏｎｔｒｏｌ  ｉｎ  ｉｎｔｅｇｒａｔｅｄ  ｓｅｒｖｉｃｅｓ  ｎｅｔｗｏｒｋ：  ｔｈｅ  ｓｉｎｇｌｅ  ｎｏｄｅ  ｃａｓｅ”、ＩＥＥＥ／ＡＣＭ  ｔｒａｎｓａｃｔｉｏｎ  ｏｎ  Ｎｅｔｗｏｒｋｉｎｇ  Ｖｏｌ．１、  ｎｏ．３、  １９９３年１月
【発明の開示】
【発明が解決しようとする課題】
【０００８】
トークンバケットによるトラヒック制御においては、通信装置に予め設定されているトークン生成部１１によるトークン１０の出力レートに応じて、データレートが決定される。
【０００９】
このため、例えば、通信装置における送信側でのトラヒック制御を考えたときに、ネットワークへの接続状態の悪化に伴うネットワークとの接続リンクの速度低下や、ネットワーク内部で輻輳が発生した場合でも、与えられたトークン１０に基づきデータを、ネットワークに送信しようとする状態が発生する。これらデータは、ネットワーク内部で輻輳が発生している場合にはネットワーク内部にて廃棄される可能性があり、ネットワークとの接続リンクの速度低下が発生している場合には、装置の出力端でバッファリングされ、バッファあふれが生じた場合には、やはり廃棄されることになり、結局トークン１０が無駄に消費されてしまうことになる。
【００１０】
特に、複数の異なる優先度の通信を並行して行っている場合、優先度の高低に係らずデータの廃棄が生じ得るが、各通信に対するトークン１０の出力レートをネットワークの状態等に基づき、その優先度に応じて変更することで、データ廃棄を回避して、優先度に応じた帯域を割り当てることが可能となる。
【００１１】
また、例えば、通信装置における受信側でのトラヒック制御を考えたときに、ネットワークへの接続状態が良好で多量のデータが受信される場合、優先度の低い、又は、リアルタイムでの処理が必要ではない通信に対するトークン１０の出力レートを下げることで、優先度の低い通信についての上位レイヤでの処理を抑え、優先度の高い通信についての処理に影響を与えないようにすることが好ましい場合も生じる。この場合、上位レイヤが、例えば、ＴＣＰレイヤ等のフロー制御を行うプロトコルであれば、上位レイヤでのフロー制御により受信するトラヒック制限が行われるが、優先度の低い通信だけが制限されるわけではない。また、上位レイヤでのトラヒック制限の場合には、トークンバケットによるトラヒック制御と異なり、トラヒックが抑えられた場合、後に規定データレート以上のトラヒックが許容されるという利点を享受することはできない。したがって、トークン１０によるトラヒック制限を優先することが望ましい。
【００１２】
したがって、本発明は、ネットワークの状態、例えば、ネットワークの輻輳状態及び／又はネットワークとの接続状態をトークンバケットの制御に使用するトラヒック制御装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明によるトラヒック制御装置によれば、
ネットワークへ送信及び／又はネットワークから受信するデータを保持するデータバッファと、トークンを出力するトークン生成手段と、トークン生成手段が出力したトークンを保持するトークンバッファと、トークンバッファがトークンを保持している場合、データバッファからデータを読み出す読出手段とを有するトラヒック制御装置であって、ネットワークの状態を監視する回線監視手段と、トークンバッファにトークンが保持されている間に回線監視手段が監視するネットワークの状態に基づきトークン生成手段でのトークンの出力レートを更新するレート決定手段とを備えていることを特徴とする。
【００１４】
本発明のトラヒック制御装置における他の実施形態によれば、
回線監視手段は、読出手段が読み出すデータ量をネットワークの状態として監視することも好ましい。
【００１５】
また、本発明のトラヒック制御装置における他の実施形態によれば、
トークン調整手段を備え、レート決定手段は、トークンバッファにトークンが所定期間以上保持されていない場合、トークン調整手段にトークン調整指示を行い、トークン調整手段は、トークン調整指示で指定された数のトークンをトークンバッファに挿入することも好ましい。
【００１６】
本発明によるトラヒック制御方法によれば、
トークンバケットによるトラヒック制御方法であって、ネットワークの状態を監視するステップと、トークンバッファにトークンが保持されている間のネットワークの状態に基づきトークンの出力レートを更新するステップとを有することを特徴とする。
【００１７】
本発明によるプログラムによれば、コンピュータを上記トラヒック制御装置として機能させることを特徴とする。
【発明の効果】
【００１８】
回線監視手段が監視するネットワークの状態に基づきレート決定手段でトークンの出力レートを決定するが、トークンバッファにトークンが蓄えられていない間にはトークンの出力レートの更新処理を行わないことで、トークンの出力レートをネットワークの状態とより正確にリンクさせることができる。
【００１９】
また、トークンバッファにトークンが蓄えられていない期間が所定期間以上継続した場合に、強制的にトークンバッファにトークンを挿入することで、トークンの出力レートをネットワークの状態に正確にリンクさせることができる。
【発明を実施するための最良の形態】
【００２０】
以下では、本発明を実施するための最良の形態について、図面を用いて詳細に説明する。
【００２１】
図１は、本発明によるトラヒック制御装置のブロック図であり、本発明によるトラヒック制御方法を送信側で行う場合の実施形態を示している。図１によると、トラヒック制御装置は、トークン生成部１と、トークンバッファ２と、読出部３と、データバッファ４と、回線監視部５と、トークンバッファ監視部６と、トークン調整部７と、レート決定部８とを備えている。
【００２２】
トークン生成部１は、レート決定部８が決定するトークン１０の出力レート（以後、トークン出力レートと呼ぶ。）に従い、トークン１０を生成してトークンバッファ２に出力し、トークンバッファ２は、トークン生成部１が生成するトークン１０を保持する。一方、データバッファ４は、ネットワークに送信されるデータ２０を保持するバッファである。
【００２３】
読出部３は、トークンバッファ２からトークン１０が１つ出力されるごとに、１つのトークン１０当たり許容される、所定量以下のデータ２０をデータバッファ４から読み出す。言い換えると、データバッファ４にデータ２０が保持されている場合、読出部３は、トークンバッファ２からトークンを１つ取り出して、トークン１０当たり許容されるデータ量のデータ２０をデータバッファ４から読み出すことを、データバッファ４にデータ２０がある限り繰り返す。尚、データ２０が既にパケット化されている場合には、読出部１３は、所定量以下のパケットをパケット単位で読み出す。
【００２４】
回線監視部５は、読出部３が読み出すデータ量からトラヒック量を測定してレート決定部８に出力し、トークンバッファ監視部６は、トークンバッファ２に１つ以上のトークン１０が保持されているか、トークン１０が保持されていないかの情報であるトークン保持情報をレート決定部８に出力する。なお、トラヒック量の測定周期は任意であり、例えば、１秒毎に実行しても、１００ミリ秒毎に実行してもよい。
【００２５】
レート決定部８は、回線監視部５が出力するトラヒック量と、レート決定部８が出力するトークン保持情報に基づきトークン１０の出力レートを決定し、更新する。図３は、レート決定部８におけるトークン出力レート決定及び／又は更新のフロー図である。
【００２６】
（Ｓ３１）  レート決定部８は、トークン保持情報がトークンバッファ２にトークン１０が保持されていないことを示しているときは、トークン出力レートを更新することなく終了する。これは、トークンバッファ２にトークン１０が保持されていないことは、トークンバッファによるレート制限が行われていることを意味し、トークンバッファ２にトークン１０が保持されていない間に回線監視部５が監視するトラヒック量は、ネットワークの状態を反映したものとならないからである。
【００２７】
（Ｓ３２）  トークン保持情報がトークンバッファ２にトークン１０が保持されていることを示している場合、トークンバッファによるレート制限が行われていないため、回線監視部５が監視するトラヒック量に基づき、トークン出力レートを決定し、更新する。
【００２８】
レート決定部８は、例えば、回線監視部５が監視するトラヒック量から１秒当たりに読み出されるデータ量、つまり、データレートを計算し、あらかじめ保持しているデータレートと、トークン出力レートの対応関係を示すテーブルに基づきトークン出力レートを決定する。図４にトークン出力レート決定のためのテーブルを示す。なお、このテーブルは、通信の優先度ごとに設けることが好ましい。また、図４では、回線監視部５が監視するトラヒック量から、トークン出力レートが一義的に決定されるが、例えば、出力レートを上げるときと、出力レートを下げるときでは、異なる値の範囲、つまり、異なるテーブルを使用することも可能である。更に、テーブルではなく、複数の閾値を保存し、閾値からトークン出力レートを計算して算出する構成でもよい。
【００２９】
トークン出力レートの決定及び更新は、トークンバッファ２にトークン１０が保持されている場合にのみ行われるため、例えば、トークン１０の出力レートを下げた後、回線状態が良くなり、かつ、送信データ量も増加したため、トークンバッファ２にトークン１０が保持されない状態が継続してしまうことが生じ得る。
【００３０】
このため、レート決定部８は、トークンバッファ２にトークン１０が保持されていない期間が所定期間以上継続した場合には、トークン調整部７に対してトークン調整を指示し、トークン調整部７は、トークン調整指示で指定された数のトークン１０をトークンバッファ２に強制的に挿入する。これにより、トークン１０によるレート制御を解除した状態でのトラヒック状況の監視を可能とする。尚、トークン調整部７が強制的に挿入したトークン１０の数に対応するデータレートだけ、許容できるデータレートが増加することになるが、その増加分は、トークン生成部１が出力するトークン１０を減少させることで調整することが帯域割当ての公平性の観点からは望ましい。
【００３１】
尚、上記実施形態において、回線監視部５は、読出部３が読み出すデータ量からトラヒック量を測定し、レート決定部８は、トラヒック量からトークン１０の出力レートを決定するものとして説明を行ったが、回線状況を判定できる総てのパラメータも使用可能である。回線状況を判定できるパラメータとしては、回線の物理速度や、Ｓ／Ｎ比や、ネットワークの所定の通信装置までのラウンドトリップディレイ等がある。ラウンドトリップディレイを測定する場合には、回線監視部５はネットワークに対して、測定用のパケットを送信する。
【００３２】
図２は、本発明によるトラヒック制御装置のブロック図であり、本発明によるトラヒック制御方法を受信側で行う場合の実施形態を示している。図２に示す様に、図１の送信側での構成とは、データ２０の方向が異なるのみであり、動作は同じものである。
【００３３】
以上、回線監視部５が監視するネットワークの状態に基づきレート決定部８でトークン１０の出力レートを決定するが、トークンバッファ２にトークン１０が蓄えられていない間にはトークン１０の出力レートの更新処理を行わないことで、トークン１０の出力レートをネットワークの状態とより正確にリンクさせることができる。
【００３４】
また、トークンバッファ２にトークンが蓄えられていない期間が所定期間以上継続した場合に、強制的にトークンバッファ２にトークン１０を挿入することで、トークン１０の出力レートをネットワークの状態に正確にリンクさせることができる。
【図面の簡単な説明】
【００３５】
【図１】本発明によるトラヒック制御装置のブロック図である。
【図２】本発明によるトラヒック制御装置の他の実施形態のブロック図である。
【図３】トークン出力レート決定のフロー図である。
【図４】トークン出力レート決定のテーブルを示す図である。
【図５】トークンバケットによるトラヒック制御のブロック図である。
【符号の説明】
【００３６】
１０  トークン
２０  データ
１、１１  トークン生成部
２、１２  トークンバッファ
３、１３  読出部
４、１４  データバッファ
５  回線監視部
６  トークンバッファ監視部
７  トークン調整部
８  レート決定部
【図１】
0004577220.tif 000002
【図２】
0004577220.tif 000003
【図３】
0004577220.tif 000004
【図４】
0004577220.tif 000005
【図５】
0004577220.tif 000006