(57)【要約】【課題】帯域保証と遅延時間を独立に制御して、低保証帯域で、かつ低遅延時間が要求されるアプリケーションや、保証帯域は大きいが低遅延時間が要求されないアプリケーションなどを効率良く収容してデータ伝送すること。【解決手段】複数のフロー１〜ｎを、所定のグループに区分し、各フロー１〜ｎに対して個別にトークンバケツ、たとえばフロー１〜３にはトークンバケツ３２〜３４が割り当てられ、この状態でトークン入力バケツ選択部３１が所定のアルゴリズムを用いて、グループポリサー１５が予め設定されたグループレートで、これらトークンバケツ３２〜３４にトークン３０を配分し、トラフィックの流量を制限し、さらに予め設定された各トラフィックフローの遅延時間に基づいて、スケジューラ２４が各トラフィックフローの伝送時間を個別に制限することで、所定の通信品質制御を行う。【選択図】        図２
2005236669.tif 000002
【特許請求の範囲】
【請求項１】
入力したデータに対し、所定の帯域制御を行ってデータ伝送することによって通信品質を制御する通信品質制御方法において、
各トラフィックフローの前記データを、予め設定されたトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行う帯域制御工程と、
予め設定された前記各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの伝送時間を制限する伝送制御工程と、
を含むことを特徴とする通信品質制御方法。
【請求項２】
前記通信品質制御方法では、前記各トラフィックフローは、所定のグループに区分され、
前記帯域制御工程では、当該各トラフィックフローのデータを、予め設定されたグループ毎のトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、
前記伝送制御工程では、前記予め設定された各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの送信優先度の設定を行い、該送信優先度に応じて、前記伝送時間を制限して、前記各トラフィックフローのデータ伝送を行うことを特徴とする請求項１に記載の通信品質制御方法。
【請求項３】
前記通信品質制御方法では、前記各トラフィックフローは、所定のグループに区分され、
前記帯域制御工程では、当該各トラフィックフローのデータを、予め設定されたグループ毎のトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、
前記伝送制御工程では、前記予め設定された各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの伝送時間の重み付けを行い、該重み付けに応じて、前記伝送時間を制限して、前記各トラフィックフローのデータ伝送を行うことを特徴とする請求項１に記載の通信品質制御方法。
【請求項４】
入力したデータのトラフィック流量を帯域制御する帯域制御手段と、前記帯域制御されたデータを伝送する伝送制御手段とを備えた通信品質制御装置において、
前記帯域制御手段は、各トラフィックフローの前記データを、予め設定されたトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、
前記伝送制御手段は、予め設定された前記各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの伝送時間を制限することを特徴とする通信品質制御装置。
【請求項５】
通信品質制御装置では、前記各トラフィックフローは、グループに分類され、
前記帯域制御手段は、当該各トラフィックフローのデータを、予め設定されたグループ毎のトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、
前記伝送制御手段は、前記予め設定された各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの送信優先度の設定を行い、該送信優先度に応じて、前記伝送時間を制限して、前記各トラフィックフローのデータ伝送を行うことを特徴とする請求項４に記載の通信品質制御装置。
【請求項６】
通信品質制御装置では、前記各トラフィックフローは、グループに分類され、
前記帯域制御手段は、当該各トラフィックフローのデータを、予め設定されたグループ毎のトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、
前記伝送制御手段は、前記予め設定された各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの伝送時間の重み付けを行い、該重み付けに応じて、前記伝送時間を制限して、前記各トラフィックフローのデータ伝送を行うことを特徴とする請求項４に記載の通信品質制御装置。
【請求項７】
通信品質制御装置は、
少なくとも、前記グループと、当該グループを構成する前記トラフィックフローと、各グループのトータルレートとを記憶する第１の記憶手段と、
少なくとも、前記各トラフィックフローと、該トラフィックフローに対応する送信優先度とを記憶する第２の記憶手段と、
をさらに備え、前記帯域制御手段は、少なくとも、入力するトラフィックフローの情報に基づいて、当該トラフィックフローが属するグループの前記トータルレートを、前記記憶手段の記憶内容から判断し、該判断したトータルレートに基づいて、トラフィックの流量を制限し、前記所定の帯域制御を行い、
前記伝送制御手段は、前記第２の記憶手段に記憶された送信優先度の情報に応じて、前記各トラフィックフローの伝送時間を制限して、データ伝送することを特徴とする請求項５に記載の通信品質制御装置。
【請求項８】
通信品質制御装置は、
少なくとも、前記グループと、当該グループを構成する前記トラフィックフローと、各グループのトータルレートとを記憶する第１の記憶手段と、
少なくとも、前記各トラフィックフローと、該トラフィックフローに対応する伝送時間の重み付けとを記憶する第２の記憶手段と、
をさらに備え、前記帯域制御手段は、少なくとも、入力するトラフィックフローの情報に基づいて、当該トラフィックフローが属するグループの前記トータルレートを、前記記憶手段の記憶内容から判断し、該判断したトータルレートに基づいて、トラフィックの流量を制限し、前記所定の帯域制御を行い、
前記伝送制御手段は、前記第２の記憶手段に記憶された重み付けの情報に応じて、前記各トラフィックフローの伝送時間を制限して、データ伝送することを特徴とする請求項５に記載の通信品質制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のトラフィックフローを、トータルのトラフィックレート（以下、「トータルレート」という）で帯域制限を行ってデータ伝送する帯域制御方法およびその帯域制御装置に関し、特に複数のトラフィックフローからなるフローグループを作成し、フローグループの各トラフィックフローを、フローグループ毎のトータルレート（以下、「グループレート」という）で帯域制御を行ってデータ伝送することにより通信品質を制御する通信品質制御方法およびその通信品質制御装置に関するものである。
【背景技術】
【０００２】
近年、通信ネットワークの接続サービスでは、ＦＴＴＨ（Ｆｉｂｅｒ  Ｔｏ  Ｔｈｅ  Ｈｏｍｅ）の普及によって高速な接続サービスが低コストで提供できるようになってきている。このような通信ネットワークを流れるデータトラフィックは、その使用するアプリケーションに応じたＱｏＳ（通信品質）制御を行う必要がある。
【０００３】
このＱｏＳ制御を行うための技術手法としては、出力ポート毎に異なるキューを用いるスケジューリング手法や、トラフィックの最大流量を制限するポリシング手法などが用いられている。これらの手法を用いる場合として、あるユーザへの送信トラフィックをそのアプリケーション、たとえば通信ネットワーク上に音声パケットを通すためのＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ）用トラフィックを、他のデータトラフィックに比べて低遅延で優先的に送信するなど、あるユーザへのトラフィックの総量を契約帯域（たとえば１０Ｍｂｐｓ）に制限したい場合がある。
【０００４】
たとえば、遅延時間を制御するためには、ＶｏＩＰトラフィック用に異なる送信キューを用意して、他のデータ用キューよりも常に先にＶｏＩＰのパケットを送信する手法を用いることができる。しかし、この手法では、ユーザへの送信トラフィックの総量を制限するという要求を満たすことができない。
【０００５】
そこで、帯域制限機構であるポリシング手法を用いて、ユーザのトラフィック量を制限することも考えられるが、この場合、ポリシングアルゴリズムでは、トラフィックの優先度は考慮されないので、トラフィックの制限総量を超えると、ＶｏＩＰなどの優先トラフィックが廃棄されてしまう事態が発生する。
【０００６】
このような事態を解決する方法としては、複数の送信キューを使いつつ、それら送信キューからの送信レートの総量を制御するスケジューリングを行う方法があった。
【０００７】
【特許文献１】特開２００１−５１９１２０号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来例では、特にユーザ数が多い場合には、複雑な処理となり、高速なネットワーク上での実現は困難になるという問題点があった。また、特許文献１では、多段階のスケジューリングを行うために実装が複雑になるという問題点があった。さらに、上記従来例では、低遅延時間を要求されるフローに対しては、送信優先度を高くする代わりに、ポリシングやシェービングによって帯域制限を行う必要があり、このため遅延時間と帯域が互いに関連した状態でＱｏＳ制御を行わなければならなかった。
【０００９】
この発明は、上記問題点に鑑みなされたもので、帯域保証と遅延時間を独立に制御して、低保証帯域で、かつ低遅延時間が要求されるアプリケーションや、保証帯域は大きいが低遅延時間が要求されないアプリケーションなどを効率良く収容してデータ伝送することができる通信品質制御方法およびその通信品質制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明にかかる通信品質制御方法は、入力したデータに対し、所定の帯域制御を行ってデータ伝送することによって通信品質を制御する通信品質制御方法において、各トラフィックフローの前記データを、予め設定されたトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行う帯域制御工程と、予め設定された前記各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの伝送時間を制限する伝送制御工程と、を含むことを特徴とする。
【００１１】
また、請求項２の発明にかかる通信品質制御方法は、上記発明において、前記通信品質制御方法では、前記各トラフィックフローは、所定のグループに区分され、前記帯域制御工程では、当該各トラフィックフローのデータを、予め設定されたグループ毎のトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、前記伝送制御工程では、前記予め設定された各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの送信優先度の設定を行い、該送信優先度に応じて、前記伝送時間を制限して、前記各トラフィックフローのデータ伝送を行うことを特徴とする。
【００１２】
また、請求項３の発明にかかる通信品質制御方法は、上記発明において、前記通信品質制御方法では、前記各トラフィックフローは、所定のグループに区分され、前記帯域制御工程では、当該各トラフィックフローのデータを、予め設定されたグループ毎のトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、前記伝送制御工程では、前記予め設定された各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの伝送時間の重み付けを行い、該重み付けに応じて、前記伝送時間を制限して、前記各トラフィックフローのデータ伝送を行うことを特徴とする。
【００１３】
また、請求項４の発明にかかる通信品質制御装置は、入力したデータのトラフィック流量を帯域制御する帯域制御手段と、前記帯域制御されたデータを伝送する伝送制御手段とを備えた通信品質制御装置において、前記帯域制御手段は、各トラフィックフローの前記データを、予め設定されたトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、前記伝送制御手段は、予め設定された前記各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの伝送時間を制限することを特徴とする。
【００１４】
また、請求項５の発明にかかる通信品質制御装置は、上記発明において、前記各トラフィックフローは、グループに分類され、前記帯域制御手段は、当該各トラフィックフローのデータを、予め設定されたグループ毎のトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、前記伝送制御手段は、前記予め設定された各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの送信優先度の設定を行い、該送信優先度に応じて、前記伝送時間を制限して、前記各トラフィックフローのデータ伝送を行うことを特徴とする。
【００１５】
また、請求項６の発明にかかる通信品質制御装置は、上記発明において、前記各トラフィックフローは、グループに分類され、前記帯域制御手段は、当該各トラフィックフローのデータを、予め設定されたグループ毎のトータルレートに基づいて、トラフィックの流量を制限して、前記所定の帯域制御を行い、前記伝送制御手段は、前記予め設定された各トラフィックフローの遅延時間に基づいて、前記各トラフィックフローの伝送時間の重み付けを行い、該重み付けに応じて、前記伝送時間を制限して、前記各トラフィックフローのデータ伝送を行うことを特徴とする。
【００１６】
また、請求項７の発明にかかる通信品質制御装置は、上記発明において、少なくとも、前記グループと、当該グループを構成する前記トラフィックフローと、各グループのトータルレートとを記憶する第１の記憶手段と、少なくとも、前記各トラフィックフローと、該トラフィックフローに対応する送信優先度とを記憶する第２の記憶手段と、をさらに備え、前記帯域制御手段は、少なくとも、入力するトラフィックフローの情報に基づいて、当該トラフィックフローが属するグループの前記トータルレートを、前記記憶手段の記憶内容から判断し、該判断したトータルレートに基づいて、トラフィックの流量を制限し、前記所定の帯域制御を行い、前記伝送制御手段は、前記第２の記憶手段に記憶された送信優先度の情報に応じて、前記各トラフィックフローの伝送時間を制限して、データ伝送することを特徴とする。
【００１７】
また、請求項８の発明にかかる通信品質制御装置は、上記発明において、少なくとも、前記グループと、当該グループを構成する前記トラフィックフローと、各グループのトータルレートとを記憶する第１の記憶手段と、少なくとも、前記各トラフィックフローと、該トラフィックフローに対応する伝送時間の重み付けとを記憶する第２の記憶手段と、をさらに備え、前記帯域制御手段は、少なくとも、入力するトラフィックフローの情報に基づいて、当該トラフィックフローが属するグループの前記トータルレートを、前記記憶手段の記憶内容から判断し、該判断したトータルレートに基づいて、トラフィックの流量を制限し、前記所定の帯域制御を行い、前記伝送制御手段は、前記第２の記憶手段に記憶された重み付けの情報に応じて、前記各トラフィックフローの伝送時間を制限して、データ伝送することを特徴とする。
【発明の効果】
【００１８】
本発明にかかる通信品質制御方法は、トラフィックフロー毎に個別に、予め設定されたトータルレートに基づいて、トラフィックの流量を制限し、さらに予め設定された各トラフィックフローの遅延時間に基づいて、各トラフィックフローの伝送時間を個別に制限することで、帯域保証と遅延時間を独立に制御して、低保証帯域で、かつ低遅延時間が要求されるアプリケーションや、保証帯域は大きいが低遅延時間が要求されないアプリケーションなどを効率良く収容してデータ伝送することができるという効果を奏する。
【００１９】
本発明にかかる通信品質制御装置は、入力したデータのトラフィック流量を、帯域制御手段がトータルレートに基づいて、トラフィックフロー毎に個別に帯域制御し、さらに伝送制御手段が各トラフィックフローの遅延時間に基づいて、トラフィックフロー毎に伝送時間を制限することで、帯域保証と遅延時間を独立に制御して、低保証帯域で、かつ低遅延時間が要求されるアプリケーションや、保証帯域は大きいが低遅延時間が要求されないアプリケーションなどを効率良く収容してデータ伝送することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に、本発明にかかる通信品質制御方法およびその通信品質制御装置の実施の形態を、図１〜図７の図面に基づいて詳細に説明する。なお、本発明は、これらの実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変更実施の形態が可能である。
【００２１】
（実施の形態１）
図１は、本発明にかかる通信品質制御装置の実施の形態１の構成の一例を示す構成図である。図１において、通信品質制御装置であるルータ１０は、入力ポート（この実施の形態では３つの入力ポート）毎に設けられてパケットの入力処理を行う複数の入力側ＮＰ（ネットワーク・プロセッサ）１１〜１３と、入力したパケットを適切な出力ポートに振り分けるスイッチファブリック２１と、出力ポート（この実施例では３つの出力ポート）毎に設けられて振り分けられたパケットに対して出力処理を行う出力側ＮＰ３１〜３３とから構成されている。
【００２２】
入力側ＮＰ１１〜１３は、入力ポートを介して受信したパケットのヘッダ情報から、どの出力ポートへこのパケットを送信するかを決定して、その情報をパケットに付加してスイッチファブリック２１に送出している。
【００２３】
スイッチファブリック２１は、入力側ＮＰ１１〜１３よりパケットを受け取ると、このパケットのヘッダ情報に付加された宛先ポート情報を参照して、所定の宛先ポートにスイッチングする振り分け処理を行う。
【００２４】
出力側ＮＰ３１〜３３は、スイッチファブリック２１から受け取ったパケットに対し、出力処理としてポリシングやスケジューリングなどのＱｏＳ制御を行う。なお、これら出力側ＮＰ３１〜３３は、同一の構成からなっているので、ここでは代表して出力側ＮＰ３１の構成を、図２に示してその詳細に関して説明する。
【００２５】
出力側ＮＰ３１は、クラシファイア１４と、本発明にかかる帯域制御手段としてのグループポリサー１５と、ポリシーアクション処理部１６と、ユーザインターフェース制御部１７とグループポリサーパラメータ制御部１８と、本発明にかかる第１の記憶手段としてのグループポリサーパラメータテーブル１９と、パケットを格納する送信キュー２２，２３と、これら送信キュー２２，２３を選択してパケット取り出して送信する、本発明にかかる伝送制御手段としてのスケジューラ２４と、スケジューラパラメータ制御部２５と、本発明にかかる第２の記憶手段としてのスケジューラパラメータテーブル２６とから構成されている。
【００２６】
この出力側ＮＰ３１において、クラシファイア１４は、たとえばＣＡＭ（Ｃｏｎｔｅｎｔｓ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）などを用いており、入力するパケットのヘッダ情報を参照して、トラフィックをユーザ毎、サービスタイプ毎の個別のトラフィックフローに分類して、この情報を内部ヘッダ部（図１参照）に追加してパケットとともにグループポリサー１５に出力している。なお、この実施の形態では、参照するヘッダ情報の例としては、ＩＰヘッダ内のＴｏＳ情報やトランスポート層のポート番号などがあり、内部ヘッダに追加される情報としては、このフローの識別子の情報（フローＩＤ）と、フローが属するグループの識別子の情報（グループＩＤ）などがある。
【００２７】
グループポリサー１５は、グループポリサーパラメータテーブル１９を参照して、フロークラス毎の保証帯域に基づいてポリシング制御を行い、各フローからのパケットの合計が、予め設定されたグループレートの帯域以内に収まるように帯域制御を行っている。具体的には、たとえばグループＩＤが「ａ」では、グループレートの帯域が３０Ｍｂｐｓに、グループＩＤが「ｂ」では、グループレートの帯域が５０Ｍｂｐｓに設定されているので、この帯域以内に収まるようにトラフィック流量を制限している。通常は、グループレートの帯域は（仮想）出力インターフェースの帯域と同じ値とする。
【００２８】
ここで、この発明の特徴であるポリシングを行うアルゴリズムとしては、たとえばトークンバケツを用いる。このトークンバケツのアルゴリズムでは、トークンと呼ばれるトラフィック送信権を表す仮想的な量を用いる。すなわち、グループポリサー１５では、図３に示すように、各フロー１〜ｎには、トラフィック流量を制限するトークン３０，４０をためておくための仮想的なトークンバケツ３２〜ｎ（ｎは、任意の整数）が用意され、このトークンバケツ３２〜ｎには、トラフィックの制限流量に等しいグループレートでトークンが補充される。そして、トークン入力バケツ選択部３１，４１によって、パケット到着時に、このトークンバケツ３２〜ｎ内にパケット長分のトークン３０，４０がためられていれば、パケット処理部３５〜３７，４５〜４７は、パケットが制限帯域に適合していると判断されて、パケット長分のトークンがこのバケツから取り除かれ、また十分なトークンがなければ、パケットは、不適合と判断される。
【００２９】
この実施の形態では、フローグループａ，ｂ，…毎にトークン入力バケツ選択部３１，４１が設けられており、このトークン入力バケツ選択部３１，４１は、フローグループａ，ｂ，…に対する制限帯域で補充されるトークンを、どのフロー１〜ｎのトークンバケツ３２〜３４，４２〜４４に配分するかを決めている。
【００３０】
このトークン入力バケツ選択部３１（４１）は、予め設定されたアルゴリズムによって、各フロー１〜３（ｎ−５，ｎ−３〜ｎ）にどのように制限帯域を割り当てるかを制御しており、たとえば典型的な例としては、各フロー１〜３（ｎ−５，ｎ−３〜ｎ）のトークンバケツ３２〜３４（４２〜４４）にラウンドロビンでトークン３０（４０）を入力することである。このとき、もしトークン３０（４０）を入力しようとしたトークンバケツ３２〜３４（４２〜４４）がいっぱいの時には、次のフロー１〜３（ｎ−５，ｎ−３〜ｎ）のトークンバケツ３２〜３４，４２〜４４にトークン１〜３（ｎ−５，ｎ−３〜ｎ）の入力を試みる。そして、トークン入力バケツ選択部３１（４１）は、自己の管轄する全てのフロー１〜３（ｎ−５，ｎ−３〜ｎ）のトークンバケツ３２〜３４（４２〜４４）がいっぱいのときにのみ、トークン３０（４０）の入力をスキップする。
【００３１】
これにより、この実施の形態では、トークン入力バケツ選択部３１（４１）の動作によって、各フローが公平に帯域を利用でき、かつフローグループ全体での帯域制限が実現される。
【００３２】
また、各フロー内に異なるサービスタイプ（たとえばＶｏＩＰ）を持つパケットが混在する場合（以下、各サービスタイプのフローを、「マイクロフロー」という）には、個々のフローのトークンバケツにマイクロフロー毎の閾値を設けて、トークンバケツ内のトークン量が、この閾値未満のときには、対応するマイクロフローのパケットを制御帯域に不適合と判定することで、フロー内のトラフィックに優先制御を行うことが実現される。
【００３３】
ポリシーアクション処理部１６は、入力されるパケットのフロー識別子とポリサー判定結果を抽出して、これら情報に基づいて、この入力パケットに対する処理を決定する。たとえばポリシーアクション処理部１６は、低遅延通信が必要なトラフィッククラスの適合パケットに対しては、優先的にサービスされるキュー（たとえば、送信キュー２２に）へパケットを入力させ、また不適合と判断されたパケットに対しては、そのパケットを廃棄する。
【００３４】
また、ユーザインターフェース制御部１７は、この通信品質制御装置の管理者からの指示（帯域情報などの設定パラメータ）をグループポリサーパラメータ制御部１８および後述するスケジューラパラメータ制御部２５に出力しており、グループポリサーパラメータ制御部１８は、これらの指示に従って、トークン入力バケツ選択アルゴリズムに基づく、重み（上記アルゴリズムがたとえば、ＷＲＲ：重み付けラウンドロビン方式の場合）や優先度（上記アルゴリズムがたとえば、ＰＱ：プライオリティキューイング方式の場合）を計算するとともに、トークン入力バケツ選択アルゴリズムや各フローグループに属するフローやこの計算値などをグループポリサーパラメータテーブル１９に書き込む書き込み制御を行っている。
【００３５】
すなわち、グループポリサーパラメータ制御部１８は、図４のフローチャートに示すように、ユーザインターフェース制御部１７からの要求待ち状態にあり（ステップ１０１）、ユーザインターフェース制御部１７から帯域情報などの帯域要求があると、この帯域要求に基づいて、パラメータの計算を行う（ステップ１０２）。たとえばグループａの場合で説明すると、フローＩＤ１〜３の各フローのトータルであるグループレートで１０Ｍｂｐｓにポリシングして、かつ各フロー１，２，３の保証帯域がそれぞれ１Ｍｂｐｓ，２Ｍｂｐｓ，４Ｍｂｐｓの設定要求があった場合、グループポリサー１５のアルゴリズムは、ＷＲＲ方式なので、各フロー１，２，３にそれぞれ１：２：４の重みを持たせることになる。
【００３６】
そして、グループポリサーパラメータ制御部１８は、ステップ１０２で計算したパラメータ（１：２：４の重み情報）を、各フローＩＤ１〜３に対応付けて、グループポリサーパラメータテーブル１９に書き込む書き込み制御を行う（ステップ１０３）。
【００３７】
グループポリサーパラメータテーブル１９は、図２に示すように、グループＩＤ（識別子）と、帯域（グループレート）と、トークン入力バケツを選択するための選択アルゴリズムと、このグループに属するフローのメンバリスト（フローＩＤ）と、選択アルゴリズムによって計算されたフローＩＤに対応した重み／優先度の情報とが書き込まれている。
【００３８】
スケジューラ２４は、グループ毎のフローの数に対応して用意された送信キュー２２〜２３から、適切なタイミングでパケットを取り出して、各出力ポートに出力している。すなわち、スケジューラ２４は、パケットの遅延時間を制御することを目的としており、その制御方式のアルゴリズムとして、たとえば上述したＰＱ方式やＷＦＱ（重み付けファイアーキューイング）方式などを選択することができる。
【００３９】
ここで、たとえばＰＱ方式を用いた場合には、スケジューラ２４は、遅延時間の要求が厳しいフローから順に高い送信優先度を割り当てて、それぞれの送信優先度に応じたタイミングでパケットを取り出して、各出力ポートに出力することで、各フローの遅延時間の制御を行う。また、たとえばＷＦＱ方式を用いた場合には、スケジューラ２４は、各フローの要求遅延時間から各送信キューに割り当てる帯域を決定して、それぞれの重み付けに応じた遅延時間内のタイミングでパケットを取り出して、各出力ポートに出力することで、各フローの遅延時間の制御を行う。
【００４０】
スケジューラパラメータ制御部２５は、ユーザインターフェース制御部１７の指示（遅延時間情報などの設定パラメータ）に従って、遅延時間制御のための選択アルゴリズムに基づく、重み（上記アルゴリズムがＷＦＱ：重み付けファイアーキューイング方式の場合）を計算するとともに、フローＩＤやこの計算値などをスケジューラパラメータテーブル２６に書き込む書き込み制御を行っている。
【００４１】
すなわち、スケジューラパラメータ制御部２５は、図５のフローチャートに示すように、ユーザインターフェース制御部１７からの要求待ち状態にあり（ステップ２０１）、ユーザインターフェース制御部１７から遅延時間情報などの遅延要求があると、この遅延要求に基づいて、パラメータの計算を行う（ステップ２０２）。たとえばグループａの場合で説明すると、フローＩＤ１，２，３の各フローの最大遅延時間を、１ｍｓ，２ｍｓ，１０ｍｓ以内に制御する必要がある場合、この実施の形態にかかるスケジューラ２４には、アルゴリズムにたとえばＷＦＱ方式が選択されており、ＷＦＱ方式が制御する遅延時間は、重みの逆数に比例することが分かっているので、ＷＦＱ方式による各フローの重みは、それぞれ１０：５：１に決定される。
【００４２】
そして、スケジューラパラメータ制御部２５は、ステップ２０２で計算したパラメータ（１０：５：１の重み情報）を、各フローＩＤ１〜３に対応付けて、スケジューラパラメータテーブル２６に書き込む書き込み制御を行う（ステップ２０３）。
【００４３】
スケジューラパラメータテーブル２６は、図２に示すように、選択アルゴリズムと、フローＩＤと、選択アルゴリズムによって計算されたフローＩＤに対応した重み付けの情報とが書き込まれている。
【００４４】
また、出力側ＮＰ３１〜３３は、スイッチファブリック２１から入力するパケットに対して、必要に応じて再度帯域制御を行い、このパケットをネットワークに転送している。
【００４５】
次に、図２に示した出力側ＮＰの制御動作を、図６のフローチャートに基づいて説明する。図において、出力側ＮＰ３１では、クラシファイア１４がスイッチファブリック２１からパケットを受信すると（ステップ３０１）、図示しないアクセスリストテーブルを検索して、適切なグループポリサーＩＤ、フローＩＤおよび出力キューＩＤなどを取得して、上述したフローＩＤなどの情報を内部ヘッダに追加してパケットとともにグループポリサー１５に出力する、クラシフィケーション処理を行う（ステップ３０２）。
【００４６】
グループポリサー１５では、クラシファイア１４からパケットが入力すると、グループポリサーＩＤとフローＩＤから適切なトークンバケツを選択してトークンバケツアルゴリズムを実行するグループポリサー処理を行う（ステップ３０３）。
【００４７】
ここで、グループポリサー１５の各グループ毎の処理動作を、図７のフローチャートに基づいて説明する。なお、ここでは、説明の都合上、代表してグループポリサー１５のうちの任意のグループｇのポリシングについて説明する。まず、図７において、グループポリサー１５のトークン入力バケツ選択部３１は、ｔ−ｔ０＝１／Ｒｇになったかどうか判断する（ステップ４０１）。なお、ｔは、現在の時間、ｔ０は、前回トークンを補充した時間、Ｒｇは、グループｇの制御帯域を示す。
【００４８】
ここで、ｔ−ｔ０＝１／Ｒｇの場合には、トークン入力バケツ選択部３１は、トークンをトークンバケツ３２〜３４に入力する時間に達したと判断して、次にグループｇに属する全てのフローｉ（ｉは、任意の整数）に対して、Ｂｉ＝ＢＭａｘｉかどうか判断する（ステップ４０２）。ここで、ＢＭａｘｉは、バケツの最大値を示し、このステップ４０２は、グループｇの全てのトークンバケツがいっぱいで、いずれのユーザも使ってない場合を想定したものである。
【００４９】
ここで、Ｂｉ＝ＢＭａｘｉでなく、いずれかのフローが使用されている場合には、Ｂｋ＜ＢＭａｘｋとなるフローｋを選択する（ステップ４０３）。すなわち、ここでは、トークンがいっぱいになっていないトークンバケツの中から、どのトークンバケツにトークンを入力させるか、トークンバケツの選択を行う。たとえば、この選択のアルゴリズムがラウンドロビンの場合には、前回トークンを入れたフローの番号を覚えておき、次にトークンを入れる場合には、そのフローの番号ｋに１を加えたフローのトークンバケットＢｋ＝Ｂｋ＋１を選出する（ステップ４０４）。
【００５０】
そして、前回トークンを補充した時間ｔ０を、現在の時間ｔに更新して（ステップ４０５）、次にトークンを入れる時間間隔を測り始める。なお、ステップ４０１でｔ−ｔ０＝１／Ｒｇでない場合は、ステップ４０６に進む。また、ステップ４０２で全てのフローがいっぱいの場合には、何もせずにステップ４０５に進んで、次にトークンを入れる時間を計り始める。次に、パケット処理部は、パケットが到着したかどうか判断する（ステップ４０６）。
【００５１】
ここで、パケットがまだ到着していない場合には、ステップ４０１に戻って、トークンを補充する時間になったかどうか判断し、またパケットが到着している場合には、そのパケットのパケットサイズＬとフローｆを抽出する（ステップ４０７）。このフローｆの抽出だが、通常はクラシファイア１４からこのパケットは、どのフローかという情報をグループポリサー１５に出力するので、グループポリサー１５は、この情報を受け取ることによって、フローｆを認識する。そして、パケット処理部は、該当するトークンバケツにたまっているトークンの残量ＢｆがパケットサイズＬ以上かどうか判断する（ステップ４０８）。
【００５２】
ここで、パケット処理部は、トークンバケツにたまっているトークンの残量ＢｆよりもパケットサイズＬが大きい場合には、パケット不適合と判断し（ステップ４０９）、またトークンバケツにたまっているトークンの残量ＢｆがパケットサイズＬ以上の場合には、パケットが適合しているとして（ステップ４１０）、後続のポリシーアクション処理部１６に伝える。
【００５３】
このように、この実施の形態では、複数のフローを所定のグループに区分し、各フローに対して個別にトークンバケツを割り当てるとともに、これら複数のトークンバケツに所定の選択アルゴリズムを用いて、トークンを配分するトークン入力バケツ選択部を備えて、個別のフローに対して帯域を制御しつつ、フローグループに対する帯域制御も同時に行うので、フローグループ全体に対して帯域制限を行うとともに、このフローグループ内の各フローに対して公平に帯域を配分することができ、これによりネットワークの運用ポリシーに従った柔軟なトラフィック制御を行うことができる。
【００５４】
そして、この実施の形態では、不適合と判断したパケットに関しては、図６に示すように、たとえばこのパケットを廃棄してもよいし（ステップ３０４）、またはいったん所定のバッファなどにためておいて、トークンバケツにたまっているトークンの残量ＢｆがパケットサイズＬ以上になったときに適合と判断するように設定することも可能である。
【００５５】
また、グループポリサー１５で適合と判断されたパケットは、ポリシーアクション処理部１６に出力されて、このポリシーアクション処理部１６が出力キューＩＤに対応した送信キュー２２〜２３にパケットを入力させる（ステップ３０５）。
【００５６】
そして、送信キュー２２〜２３に入力されたパケットは、ここで出力待ちの状態となり、スケジューラ２４によって適切なタイミングで取り出されるまで送信キューの中で待機することとなる（ステップ３０６）。スケジューラ２４は、書くフローの遅延時間制御を行い、適切なタイミングでパケットを取り出して各出力ポートに出力する（ステップ３０７）。
【００５７】
このように、この実施の形態では、入力したデータのトラフィック流量を、グループポリサーがトータルレートに基づいて、トラフィックフロー毎に個別に帯域制御し、さらにスケジューラが各トラフィックフローの遅延時間に基づいて、トラフィックフロー毎に伝送時間を制限することで、帯域保証と遅延時間を独立に制御して、低保証帯域で、かつ低遅延時間が要求されるアプリケーションや、保証帯域は大きいが低遅延時間が要求されないアプリケーションなどを効率良く収容してデータ伝送することができる。
【００５８】
また、この実施の形態では、グループポリサーを用いて、グループ内の全フローで使用している帯域の和が契約帯域を越えた時にのみ、パケットの廃棄が発生するような制御を行うので、低遅延のフローに対する最大帯域の制限は必要なくなり、これによって柔軟なデータ伝送サービスをユーザに提供することが可能となる。
【図面の簡単な説明】
【００５９】
【図１】本発明にかかる通信品質制御装置の構成の一例を示す構成図である。
【図２】図１に示した出力側ＮＰの構成の一例を示す構成図である。
【図３】図２に示したグループポリサーの構成の一例を示す構成図である。
【図４】図２に示したグループポリサーパラメータ制御部の制御動作を説明するためのフローチャートである。
【図５】図２に示したスケジューラパラメータ制御部の制御動作を説明するためのフローチャートである。
【図６】図２に示した出力側ＮＰの制御動作を説明するためのフローチャートである。
【図７】３に示したグループポリサーのグループ毎の処理動作を説明するためのフローチャートである。
【符号の説明】
【００６０】
１〜６，（ｎ−５），（ｎ−３），ｎ  フロー
１０  ルータ（通信品質制御装置）
１１〜１３  送信側ＮＰ
１４  クラシファイア
１５  グループポリサー
１６  ポリシーアクション処理部
１７  ユーザインターフェース制御部
１８  グループポリサーパラメータ制御部
１９  グループポリサーパラメータテーブル
２１  スイッチファブリック
２２〜２３  送信キュー
２４  スケジューラ
２５  スケジューラパラメータ制御部
２６  スケジューラパラメータテーブル
３０，４０  トークン
３１，４１  トークン入力バケツ選択部
３２〜３４，４２〜４４  トークンバケツ
３５〜３７，４５〜４７  パケット処理部
ａ，ｂ  フローグループ
【図１】
2005236669.tif 000003
【図２】
2005236669.tif 000004
【図３】
2005236669.tif 000005
【図４】
2005236669.tif 000006
【図５】
2005236669.tif 000007
【図６】
2005236669.tif 000008
【図７】
2005236669.tif 000009