(57)【要約】【課題】ユーザ間の公平性を向上させることを可能とする帯域制御装置、帯域制御方法、及び、プログラムを提供する。【解決手段】更新処理部１３Ｃは、所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新する。第１ポリシング処理部１３Ａは、直前のタイミングで更新された更新後の最小帯域幅に基づいて、受信側での帯域制御を行う。第２ポリシング処理部１３Ｂは、送信側での帯域制御を行う。【選択図】図２
2016158080.tif 000002
【特許請求の範囲】
【請求項１】
デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置であって、
所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新する更新手段と、
直前のタイミングで更新された前記更新後の最小帯域幅に基づいて、受信側での帯域制御を行う第１ポリシング手段と、
送信側での帯域制御を行う第２ポリシング手段と、
を備える、
ことを特徴とする帯域制御装置。
【請求項２】
前記更新手段は、前記通信を行わなかったユーザの最小帯域幅を略０にする、
ことを特徴とする請求項１に記載の帯域制御装置。
【請求項３】
前記所定のタイミングは、通信中のユーザ数が増減したタイミングである、
ことを特徴とする請求項１又は２に記載の帯域制御装置。
【請求項４】
前記更新手段は、ユーザに割り当てられている最大帯域幅が広い程、前記最小帯域幅を広くする、
ことを特徴とする請求項１乃至３のいずれか一に記載の帯域制御装置。
【請求項５】
前記出力回線の帯域幅の一部がベストエフォート用に割り当てられており、
前記更新手段は、前記最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、前記合計が前記ベストエフォート用に割り当てられている帯域幅を除く前記出力回線の帯域幅を超えないように更新する、
ことを特徴とする請求項１乃至４のいずれか一に記載の帯域制御装置。
【請求項６】
直前の前記最小帯域幅の更新後に新たに通信を開始したユーザのパケットを破棄する破棄手段を、更に、備える、
ことを特徴とする請求項１乃至５のいずれか一に記載の帯域制御装置。
【請求項７】
前記受信側での帯域制御の過程で前記パケットにマーキングされる色を識別するための識別情報を前記パケットのヘッダの所定のフィールドに格納する、
ことを特徴とする請求項１乃至６のいずれか一に記載の帯域制御装置。
【請求項８】
前記受信側での帯域制御の過程で前記パケットにマーキングされる色を識別するための識別情報を保持する記憶手段を、更に、備える、
ことを特徴とする請求項１乃至６のいずれか一に記載の帯域制御装置。
【請求項９】
前記パケットはイーサネットフレームである、
ことを特徴とする請求項１乃至８のいずれか一に記載の帯域制御装置。
【請求項１０】
デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置の帯域制御方法であって、
所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新し、
直前のタイミングで更新した前記更新後の最小帯域幅に基づいて、受信側での帯域制御を行う、
ことを特徴とする帯域制御方法。
【請求項１１】
デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置のコンピュータに、
所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新し、
直前のタイミングで更新した前記更新後の最小帯域幅に基づいて、受信側での帯域制御を行う、
処理を実行させる、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、帯域制御装置、帯域制御方法、及び、プログラムに関する。
【背景技術】
【０００２】
現在、ユーザが使用している情報端末装置のネットワークインターフェースコントローラ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ：ＮＩＣ）の多くは１０００ｂａｓｅ−Ｔとなっており、同一のネットワーク内であれば最大１Ｇｂｐｓまでの通信が可能である。
【０００３】
しかしながら、外部ネットワークへの出入り口では、通常、帯域幅が制限されているため、多数のユーザが同時に外部ネットワークにアクセスする際には、帯域制御が必要となる。このような帯域制御を行う帯域制御装置に関する技術が、例えば、特許文献１と２において提案されている。
【０００４】
帯域制御をベストエフォートとすると、ユーザごとの帯域幅が片寄る可能性がある。そのため、ユーザ間の公平性が保てるような帯域制御の実現が望まれている。
【０００５】
帯域制御の方法として、シェービングとポリシングとがある。シェービングでは、トラフィックレートが制限レートに達すると、超過トラフィックのパケットはキューにバッファされ、ある時間遅延させられた後に送信される。これによりトラフィックレートは平滑化される。一方、ポリシングでは、トラフィックレートが制限レートに達すると、超過トラフィックのパケットが破棄される。
【０００６】
ポリシングのアルゴリズムの一つとて、デュアルトークンバケットが知られている。デュアルトークンバケットには、ＲＦＣ２６９７で規定されているアルゴリズムであるシングルレート３カラーマーカー（Ｓｉｎｇｌｅ  Ｒａｔｅ  Ｔｈｒｅｅ  Ｃｏｌｏｒ  Ｍａｋｅｒ：ｓｒＴＣＭ）と、ＲＦＣ２６９８で規定されているアルゴリズムである２レート３カラーマーカー（Ｔｗｏ  Ｒａｔｅ  Ｔｈｒｅｅ  Ｃｏｌｏｒ  Ｍａｋｅｒ：ｔｒＴＣＭ）と、がある。以下、２レート３カラーマーカーについて説明する。また、以下において特に断りがない場合は、デュアルトークンバケットは２レート３カラーマーカーであるものとする。
【０００７】
デュアルトークンバケットでは、２つのトークンバケットがある。第１トークンバケットでは、最小帯域幅（Ｃｏｍｍｉｔｅｄ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒａｔｅ：ＣＩＲ）で第１トークンバケットの最大許容バーストサイズ（Ｃｏｍｍｉｔｅｄ  Ｂｕｒｓｔ  Ｓｉｚｅ：ＣＢＳ）までトークンが補給される。第２トークンバケットでは、最大帯域幅（Ｐｅａｋ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｒａｔｅ：ＰＩＲ）で第２トークンバケットの最大許容バーストサイズ（Ｐｅａｋ  Ｂｕｒｓｔ  Ｓｉｚｅ：ＰＢＳ）までトークンが補給される。
【０００８】
そして、パケットサイズＢが第２トークンバケットのトークン貯蓄量Ｔｐを超えている場合には、パケットに赤色がマーキングされる。また、パケットサイズＢが第２トークンバケットのトークン貯蓄量Ｔｐ以下であるが第１トークンバケットのトークン貯蓄量Ｔｃを超えている場合には、パケットに黄色がマーキングされ、第２トークンバケットのトークン貯蓄量ＴｐからパケットサイズＢ分のトークンが減算される。また、パケットサイズＢが第１トークンバケットのトークン貯蓄量Ｔｃ以下である場合には、パケットに緑色がマーキングされ、第１トークンバケットのトークン貯蓄量Ｔｃと第２トークンバケットのトークン貯蓄量Ｔｐの両方からパケットサイズＢ分のトークンが減算される。
【０００９】
このようにすることで、パケットに赤色がマーキングされている場合にはパケットは破棄、パケットに緑色がマーキングされている場合にはパケットは転送、パケットに黄色がマーキングされている場合にはパケットの転送はベストエフォート、といった帯域制御を行うことができる。
【００１０】
図１９は、従来におけるデュアルトークンバケットを利用した最小帯域幅ＣＩＲの設定について説明するための具体例を示す図である。本具体例では、図１９に示すように、契約ユーザ数が１９名であり、ユーザ０１の契約最大帯域幅ＰＩＲが２００Ｍｂｐｓで、その他の全てのユーザの契約最大帯域幅ＰＩＲが１００Ｍｂｐｓである。契約最大帯域幅ＰＩＲと最小帯域幅ＣＩＲは、上述したように、デュアルトークンバケットを利用することでユーザごとに設定することができる。出力回線を共有するユーザの最小帯域幅ＣＩＲの合計は出力回線の帯域幅を超えることができないため、従来では、最小帯域幅ＣＩＲは、一般的には、契約最大帯域幅ＰＩＲに応じてユーザごとに予め設定されている。
【００１１】
本具体例では、ユーザ０１の最小帯域幅ＣＩＲが１００Ｍｂｐｓに、それ以外の全てのユーザの最小帯域幅ＣＩＲが５０Ｍｂｐｓに設定されている。図１９において、最小帯域幅ＣＩＲは、網掛けの領域である。そして、送信側の帯域制御において緑色にマーキングされているパケットを優先して送信することで、各ユーザの最小帯域幅ＣＩＲを保証することができる。
【００１２】
図１９の具体例のように、契約ユーザ数が少ない場合には、上述したように、ある程度の帯域幅を保証できることからユーザ間の公平性を保つことができる。しかしながら、契約ユーザ数が増加するにつれて、保証される最小帯域幅ＣＩＲは狭くなり、ユーザ間の公平性を保つことが困難となる。
【００１３】
図２０は、従来におけるデュアルトークンバケットを利用した最小帯域幅ＣＩＲの設定について説明するための別の具体例を示す図である。本具体例では、図２０に示すように、契約ユーザ数が９９９名であり、ユーザ００１の契約最大帯域幅ＰＩＲが２００Ｍｂｐｓで、その他の全てのユーザの契約最大帯域幅ＰＩＲが１００Ｍｂｐｓである。また、契約最大帯域幅ＰＩＲに応じて最小帯域幅ＣＩＲが割り当てられ、本具体例では、ユーザ００１の最小帯域幅ＣＩＲが２Ｍｂｐｓに、それ以外の全てのユーザの最小帯域幅ＣＩＲが１Ｍｂｐｓに設定されている。このように、契約ユーザ数が多くなるにつれて、最小帯域幅ＣＩＲが非常に狭くなってしまう。
【００１４】
一方、契約ユーザ数が多い場合であっても、同時に通信を行うユーザ数が多いとは限らない。例えば、図２０の例は、ユーザ００１〜０１９の１９名のユーザのみが同時に通信を行っている場合の例である。この場合、通信を行っている全ユーザの最小帯域幅ＣＩＲの合計は２０Ｍｂｐｓであり、出力回線の帯域幅の僅か２％である。つまり、残りの９８％の９８０Ｍｂｐｓはベストエフォートとなり、例え最小帯域幅ＣＩＲが保証されたとしても、ユーザごとの帯域幅に片寄りが生じてしまう。つまり、ユーザ間の公平性を保つことはできない。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０００−３１９９７号公報
【特許文献２】特開２００３−７８５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
一つの側面では、本発明は、ユーザ間の公平性を向上させることを可能とする帯域制御装置、帯域制御方法、及び、プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１７】
一態様における帯域制御装置は、デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置であって、所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新する更新手段と、直前のタイミングで更新された更新後の最小帯域幅に基づいて、受信側での帯域制御を行う第１ポリシング手段と、送信側での帯域制御を行う第２ポリシング手段と、を備えることを特徴としている。
【００１８】
一態様における帯域制御方法は、デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置の帯域制御方法であって、所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新し、直前のタイミングで更新した更新後の最小帯域幅に基づいて、受信側での帯域制御を行う、ことを特徴としている。
【００１９】
一態様におけるプログラムは、デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置のコンピュータに、所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新し、直前のタイミングで更新した更新後の最小帯域幅に基づいて、受信側での帯域制御を行う、処理を実行させることを特徴としている。
【発明の効果】
【００２０】
一つの側面では、ユーザ間の公平性を向上させることができる帯域制御を実現することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】実施形態１におけるネットワークシステムの一部を示す図である。
【図２】実施形態１における帯域制御装置の構成例を示す機能ブロック図である。
【図３】実施形態１におけるユーザ管理記憶部が保持するユーザ管理情報の例を示す図である。
【図４】実施形態１におけるパケット管理記憶部が保持するパケット管理情報の例を示す図である。
【図５】実施形態１におけるＡｃｔｉｖｅユーザ管理記憶部が保持するＡｃｔｉｖｅユーザ管理情報の例を示す図である。
【図６】実施形態１における出力ポート管理記憶部が保持する出力ポート管理情報の例を示す図である。
【図７】実施形態１における第１ポリシング処理のフローを説明するためのフローチャートの例の第１部である。
【図８】実施形態１における第１ポリシング処理のフローを説明するためのフローチャートの例の第２部である。
【図９】実施形態１における第１ポリシング処理のフローを説明するためのフローチャートの例の第３部である。
【図１０】実施形態１における第２ポリシング処理のフローを説明するためのフローチャートの例の一部である。
【図１１】実施形態１における第２ポリシング処理のフローを説明するためのフローチャートの例の他の一部である。
【図１２】実施形態１における更新処理のフローを説明するためのフローチャートの例である。
【図１３】実施形態１における更新処理を説明するための具体例を示す図である。
【図１４】ＡとＢは、いずれも、図１３に示す具体例におけるＡｃｔｉｖｅユーザ管理情報とユーザ管理情報を示す図である。
【図１５】実施形態２における第１ポリシング処理のフローを説明するためのフローチャートの例の一部である。
【図１６】実施形態３における第２ポリシング処理のフローを説明するためのフローチャートの例の一部である。
【図１７】状態識別情報の別の保持方法について説明するための図である。
【図１８】各実施形態における帯域制御装置のハードウェア構成の例を示す図である。
【図１９】従来におけるデュアルトークンバケットを利用した最小帯域幅の設定について説明するための具体例を示す図である。
【図２０】従来におけるデュアルトークンバケットを利用した最小帯域幅の設定について説明するための別の具体例を示す図である。
【発明を実施するための形態】
【００２２】
以下に本発明の実施の形態について図面を参照しながら詳細に説明する。
【００２３】
（実施形態１）
図１は、本実施形態１におけるネットワークシステム１００の一部を示す図である。本ネットワークシステム１００は、一例として、図１に示すように、内部ネットワークＮＷ１と外部ネットワークＮＷ２を含んでいる。内部ネットワークＮＷ１は、図１に示すように、外部ネットワークＮＷ２への出入り口となるルータＲＴと、ルータＲＴに接続されている帯域制御装置１０と、帯域制御装置１０に接続されている１又は複数のスイッチＳＷと、各スイッチＳＷに接続されている情報端末装置２０と、を含んでいる。なお、内部ネットワークＮＷ１は、複数の外部ネットワークＮＷ２と接続されていても良い。
【００２４】
図２は、本実施形態１における帯域制御装置１０の構成例を示す機能ブロック図である。
本実施形態１における帯域制御装置１０は、図２に示すように、送受信部１１と、記憶部１２と、制御部１３と、を備えている。
【００２５】
送受信部１１は、例えば、回線インターフェースなどを備えており、ネットワークに接続されている他の装置との間で通信を行う。
【００２６】
記憶部１２は、 例えば、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）、フラッシュメモリなどを備えている。記憶部１２は、制御部１３が備える、例えば、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）のワークエリア、帯域制御装置１０全体を制御するための動作プログラムなどの各種プログラムを格納するプログラムエリア、各種データを格納するデータエリアとして機能する。
【００２７】
また、記憶部１２は、図２に示すように、受信キュー１２Ａと、送信キュー１２Ｂと、ユーザ管理記憶部１２Ｃと、パケット管理記憶部１２Ｄと、Ａｃｔｉｖｅユーザ管理記憶部１２Ｅと、出力ポート管理記憶部１２Ｆとして機能する。
【００２８】
受信キュー１２Ａは、受信したパケットを一時的に格納するためのキューである。送信キュー１２Ｂは、送信対象のパケットを一時的に格納するためのキューである。ここで、パケットは、例えば、イーサネットパケット（イーサネットフレーム）やＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ（ＩＰ）パケットやＵｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ（ＵＤＰ）パケットなどである。
【００２９】
ユーザ管理記憶部１２Ｃは、ユーザ管理情報ＩＮＦ１を保持する記憶部である。図３は、本実施形態１におけるユーザ管理記憶部１２Ｃが保持するユーザ管理情報ＩＮＦ１の例を示す図である。ユーザ管理情報ＩＮＦ１は、第１ポリシング処理部１３Ａ（詳しくは後述）が受信側でのポリシング処理を実行する際に必要となる情報をユーザごとに管理している情報である。なお、ユーザ管理記憶部１２Ｃは、出力ポートごとにユーザ管理情報ＩＮＦ１を保持しているものとする。
【００３０】
ユーザ管理情報ＩＮＦ１は、例えば、図３に示すように、ユーザ（ユーザＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ））ごとに、重みＷと、最小帯域トークンＴｃｉと、最小帯域トークン最大値ＣＢＳｉと、最小帯域幅ＣＩＲｉと、最大帯域トークンＴｐｉと、最大帯域トークン最大値ＰＢＳｉと、最大帯域幅ＰＩＲｉと、前回到着時刻ｔｉ’と、Ａｃｔｉｖｅフラグと、が対応付けられているテーブルである。
【００３１】
ユーザＩＤは、ユーザを一意に識別可能な識別子である。ユーザＩＤは、例えば、送信元（あるいは宛先）のＩＰアドレスであっても良いし、ＩＰアドレスとポート番号とプロトコル番号との組合せであっても良い。
【００３２】
重みＷは、対応するユーザの契約最大帯域幅に応じて設定される重みである。例えば、重みＷは、契約最大帯域幅に対する重みＷの比率が全てのユーザにおいて等しくなるように設定される。つまり、ユーザ０１の契約最大帯域幅がＢＷ０１であり、ユーザ０１以外のユーザの契約最大帯域幅がＢＷである場合、ユーザ０１の重みをＷ０１、ユーザ０１以外の重みをＷで表わすとすると、Ｗ０１／ＢＷ０１＝Ｗ／ＢＷとなる。
【００３３】
最小帯域トークンＴｃｉ（Ｂｙｔｅ）は、受信側第１トークンバケットに貯蓄されているトークンであり、受信側第１トークンバケットには最小帯域幅ＣＩＲｉ（ｂｐｓ）でトークンが補充される。
【００３４】
最小帯域トークン最大値ＣＢＳｉ（Ｂｙｔｅ）は、受信側第１トークンバケットに貯蓄できるトークンの最大値である。つまり、受信側第１トークンバケットには最小帯域トークン最大値ＣＢＳｉを超えてトークンを貯蓄することはできない。
【００３５】
最小帯域幅ＣＩＲｉは、契約最大帯域幅に応じて設定される帯域幅であり、受信側第１トークンバケットにトークンを補充する速度である。本実施形態１においては、最小帯域幅ＣＩＲｉは、所定のタイミング（詳しくは後述）が到来するごとに、更新処理部１３Ｃ（詳しくは後述）により更新される。なお、更新の方法については後述する。
【００３６】
最大帯域トークンＴｐｉ（Ｂｙｔｅ）は、受信側第２トークンバケットに貯蓄されているトークンであり、受信側第２トークンバケットには最大帯域幅ＰＩＲｉ（ｂｐｓ）でトークンが補充される。
【００３７】
最大帯域トークン最大値ＰＢＳｉ（Ｂｙｔｅ）は、受信側第２トークンバケットに貯蓄できるトークンの最大値である。つまり、受信側第２トークンバケットには最大帯域トークン最大値ＰＢＳｉを超えてトークンを貯蓄することはできない。
【００３８】
最大帯域幅ＰＩＲｉは、契約最大帯域幅に相当する帯域幅であり、受信側第２トークンバケットにトークンを補充する速度である。
【００３９】
前回到着時刻ｔｉ’は、対応するユーザの情報端末装置２０より送信されたパケットの前回の受信時刻である。
【００４０】
Ａｃｔｉｖｅフラグは、最小帯域幅ＣＩＲｉの直前の更新後から次の更新タイミングの到来までの間に、通信を行ったユーザであるか否かを示すフラグである。本実施形態１においては、フラグ値“０”は通信を行っていないユーザであることを示し、フラグ値“１”は通信を行ったユーザであることを示す。なお、Ａｃｔｉｖｅフラグの初期値は”０”である。
【００４１】
図２に戻り、パケット管理記憶部１２Ｄは、パケット管理情報ＩＮＦ２を保持する記憶部である。図４は、本実施形態１におけるパケット管理記憶部１２Ｄが保持するパケット管理情報ＩＮＦ２の例を示す図である。パケット管理情報ＩＮＦ２は、パケット状態、つまり、受信側のポリシング処理でパケットにマーキングされた色を識別するための状態識別情報を管理している情報である。
【００４２】
パケット管理情報ＩＮＦ２は、例えば、図４に示すように、パケット（パケットＩＤ）ごとに、パケット状態フラグが対応付けられているテーブルである。
【００４３】
パケットＩＤは、受信したパケットを一意に識別可能な識別子である。パケット状態フラグは、対応するパケットにマーキングされた色を識別するためのフラグである。本実施形態１においては、フラグ値“０”はマーキングされた色が黄色であることを示し、フラグ値“１”はマーキングされた色が緑色であることを示す。つまり、パケット状態フラグが本実施形態１における状態識別情報である。
【００４４】
図２に戻り、Ａｃｔｉｖｅユーザ管理記憶部１２Ｅは、Ａｃｔｉｖｅユーザ管理情報ＩＮＦ３を保持する記憶部である。図５は、本実施形態１におけるＡｃｔｉｖｅユーザ管理記憶部１２Ｅが保持するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３の例を示す図である。Ａｃｔｉｖｅユーザ管理情報ＩＮＦ３は、Ａｃｔｉｖｅフラグのフラグ値が“１”のユーザの重みＷの合計を管理している情報である。なお、Ａｃｔｉｖｅユーザ管理記憶部１２Ｅは、出力ポートごとにＡｃｔｉｖｅユーザ管理情報ＩＮＦ３を保持しているものとする。
【００４５】
Ａｃｔｉｖｅユーザ管理情報ＩＮＦ３は、例えば、図５に示すように、Ａｃｔｉｖｅユーザ（ＡｃｔｉｖｅユーザＩＤ）の一覧と、Ａｃｔｉｖｅユーザ重み合計ＴＷとが対応付けられているテーブルである。
【００４６】
ＡｃｔｉｖｅユーザＩＤの一覧は、Ａｃｔｉｖｅフラグのフラグ値が“１”のユーザのユーザＩＤの一覧である。Ａｃｔｉｖｅユーザ重み合計ＴＷは、Ａｃｔｉｖｅフラグのフラグ値が“１”のユーザの重みＷの合計である。例えば、Ａｃｔｉｖｅフラグのフラグ値が“１”のユーザがユーザ０１とユーザ０４の場合、Ａｃｔｉｖｅユーザ重み合計ＴＷはユーザ０１の重みＷ１とユーザ０４の重みＷ４の合計となる（ＴＷ＝Ｗ１＋Ｗ４）。
【００４７】
図２に戻り、出力ポート管理記憶部１２Ｆは、出力ポート管理情報ＩＮＦ４を保持する記憶部である。図６は、本実施形態１における出力ポート管理記憶部１２Ｆが保持する出力ポート管理情報ＩＮＦ４の例を示す図である。出力ポート管理情報ＩＮＦ４は、第２ポリシング処理部１３Ｂ（詳しくは後述）が送信側でのポリシング処理を実行する際に必要となる情報を出力ポートごとに管理している情報である。
【００４８】
出力ポート管理情報ＩＮＦ４は、例えば、図６に示すように、出力ポート（出力ポートＩＤ）ごとに、最小帯域トークンＴｃｏと、最小帯域トークン最大値ＣＢＳｏと、最小帯域幅ＣＩＲｏと、最大帯域トークンＴｐｏと、最大帯域トークン最大値ＰＢＳｏと、最大帯域幅ＰＩＲｏと、前回到着時刻ｔｏ’と、が対応付けられているテーブルである。
【００４９】
出力ポートＩＤは、出力ポートを一意に識別可能な識別子である。出力ポートＩＤは、例えば、ポート番号であっても良い。
【００５０】
最小帯域トークンＴｃｏ（Ｂｙｔｅ）は、送信側第１トークンバケットに貯蓄されているトークンであり、送信側第１トークンバケットには最小帯域幅ＣＩＲｏ（ｂｐｓ）でトークンが補充される。
【００５１】
最小帯域トークン最大値ＣＢＳｏ（Ｂｙｔｅ）は、送信側第１トークンバケットに貯蓄できるトークンの最大値である。つまり、送信側第１トークンバケットには最小帯域トークン最大値ＣＢＳｏを超えてトークンを貯蓄することはできない。
【００５２】
最小帯域幅ＣＩＲｏは、ベストエフォート用に割り当てられた帯域幅に相当する帯域幅であり、送信側第１トークンバケットにトークンを補充する速度である。
【００５３】
最大帯域トークンＴｐｏ（Ｂｙｔｅ）は、送信側第２トークンバケットに貯蓄されているトークンであり、送信側第２トークンバケットには最大帯域幅ＰＩＲｏ（ｂｐｓ）でトークンが補充される。
【００５４】
最大帯域トークン最大値ＰＢＳｏ（Ｂｙｔｅ）は、送信側第２トークンバケットに貯蓄できるトークンの最大値である。つまり、送信側第２トークンバケットには最大帯域トークン最大値ＰＢＳｏを超えてトークンを貯蓄することはできない。
【００５５】
最大帯域幅ＰＩＲｏは、対応する出力ポートに接続されている回線の帯域幅に相当する帯域幅であり、送信側第２トークンバケットにトークンを補充する速度である。
【００５６】
前回到着時刻ｔｏ’は、対応する出力ポートから前回送信されたパケットの受信時刻である。
【００５７】
図２に戻り、制御部１３は、例えば、ＣＰＵなどを備えており、記憶部１２のプログラムエリアに格納されている動作プログラムを実行して、図２に示すように、第１ポリシング処理部１３Ａと、第２ポリシング処理部１３Ｂと、更新処理部１３Ｃとしての機能を実現する。また、制御部１３は、動作プログラムを実行して、帯域制御装置１０全体を制御する制御処理や詳しくは後述の第１ポリシング処理などの処理を実行する。
【００５８】
第１ポリシング処理部１３Ａは、受信側のポリシング処理を行う。より具体的には、第１ポリシング処理部１３Ａは、パケットを受信すると、受信したパケットのヘッダなどを解析してユーザＩＤを特定する。そして、第１ポリシング処理部１３Ａは、受信したパケットを送信する場合に使用する出力ポートに対応するユーザ管理情報ＩＮＦ１を参照して、特定したユーザＩＤに対応する最大帯域トークンＴｐｉと最大帯域幅ＰＩＲｉと前回到着時刻ｔｉ’とを特定する。
【００５９】
そして、第１ポリシング処理部１３Ａは、以下の式１にしたがって、特定した最大帯域トークンＴｐｉと最大帯域幅ＰＩＲｉと前回到着時刻ｔｉ’と、受信したパケットの受信時刻ｔｉとに基づいて、現時点における最大帯域トークンＴｐｉを算出する。なお、式１中のＴｐｉ’はユーザ管理情報ＩＮＦ１に登録されている特定したユーザＩＤに対応する最大帯域トークン、つまり、特定した最大帯域トークンである。
【００６０】
（式１）
Ｔｐｉ＝Ｔｐｉ’＋（ｔｉ−ｔｉ’）×ＰＩＲｉ／８
【００６１】
この際、算出した最大帯域トークンＴｐｉが特定したユーザＩＤに対応する最大帯域トークン最大値ＰＢＳｉより大きい場合には、最大帯域トークン最大値ＰＢＳｉが現時点における最大帯域トークンＴｐｉとして設定される。なぜなら、受信側第２トークンバケットは最大帯域トークン最大値ＰＢＳｉを超えるトークンを貯蓄することができないからである。
【００６２】
また、第１ポリシング処理部１３Ａは、受信したパケットを送信する場合に使用する出力ポートに対応するユーザ管理情報ＩＮＦ１を参照して、特定したユーザＩＤに対応する最小帯域トークンＴｃｉと最小帯域幅ＣＩＲｉと前回到着時刻ｔｉ’とを特定する。
【００６３】
そして、第１ポリシング処理部１３Ａは、以下の式２にしたがって、特定した最小帯域トークンＴｃｉと最小帯域幅ＣＩＲｉと前回到着時刻ｔｉ’と、受信したパケットの受信時刻ｔｉとに基づいて、現時点における最小帯域トークンＴｃｉを算出する。なお、式２中のＴｃｉ’はユーザ管理情報ＩＮＦ１に登録されている特定したユーザＩＤに対応する最小帯域トークン、つまり、特定した最小帯域トークンである。
【００６４】
（式２）
Ｔｃｉ＝Ｔｃｉ’＋（ｔｉ−ｔｉ’）×ＣＩＲｉ／８
【００６５】
この際、算出した最小帯域トークンＴｃｉが特定したユーザＩＤに対応する最小帯域トークン最大値ＣＢＳｉより大きい場合には、最小帯域トークン最大値ＣＢＳｉが現時点における最小帯域トークンＴｃｉとして設定される。なぜなら、受信側第１トークンバケットは最小帯域トークン最大値ＣＢＳｉを超えるトークンを貯蓄することができないからである。
【００６６】
そして、第１ポリシング処理部１３Ａは、受信したパケットのパケットサイズが現時点における最大帯域トークンＴｐｉより大きい場合には、受信したパケットを破棄する。一方、受信したパケットのパケットサイズが現時点における最大帯域トークンＴｐｉ以下である場合には、第１ポリシング処理部１３Ａは、現時点における最大帯域トークンＴｐｉから受信したパケットのパケットサイズ分のトークンを減算し、減算後の値でユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する最大帯域トークンＴｐｉを更新する。
【００６７】
そして、第１ポリシング処理部１３Ａは、受信したパケットのパケットサイズが現時点における最小帯域トークンＴｃｉより大きい場合には、受信したパケットに黄色をマーキングする。つまり、本実施形態１においては、第１ポリシング処理部１３Ａは、パケット管理情報ＩＮＦ２の受信したパケットに対応するパケット状態フラグに“０”を設定する。
【００６８】
一方、受信したパケットのパケットサイズが現時点における最小帯域トークンＴｃｉ以下である場合には、第１ポリシング処理部１３Ａは、受信したパケットに緑色をマーキングする。つまり、本実施形態１においては、第１ポリシング処理部１３Ａは、パケット管理情報ＩＮＦ２の受信したパケットに対応するパケット状態フラグに“１”を設定する。受信したパケットのパケットサイズが現時点における最小帯域トークンＴｃｉ以下である場合には、第１ポリシング処理部１３Ａは、更に、現時点における最小帯域トークンＴｃｉから受信したパケットのパケットサイズ分のトークンを減算し、減算後の値でユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する最小帯域トークンＴｃｉを更新する。
【００６９】
そして、第１ポリシング処理部１３Ａは、受信したパケットの受信時刻ｔｉでユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する前回到着時刻ｔｉ’を更新する。そして、第１ポリシング処理部１３Ａは、ユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応するＡｃｔｉｖｅフラグのフラグ値が“０”である場合には、フラグ値を“１”に設定する。そして、第１ポリシング処理部１３Ａは、受信したパケットを送信する場合に使用する出力ポートに対応するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３にユーザＩＤを登録し、ユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する重みＷをＡｃｔｉｖｅユーザ管理情報ＩＮＦ３のＡｃｔｉｖｅユーザ重み合計ＴＷに加算する。そして、第１ポリシング処理部１３Ａは、受信したパケットを対応する送信キュー１２Ｂに登録する。
【００７０】
一方、第１ポリシング処理部１３Ａは、ユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応するＡｃｔｉｖｅフラグのフラグ値が既に“１”である場合には、Ａｃｔｉｖｅユーザ管理情報ＩＮＦ３へのユーザＩＤの登録などを行うことなく、受信したパケットを対応する送信キュー１２Ｂに登録する。なぜなら、Ａｃｔｉｖｅユーザ管理情報ＩＮＦ３には、既に受信したパケットに対応するユーザＩＤが登録されており、当該ユーザＩＤに対応する重みＷがＡｃｔｉｖｅユーザ重み合計ＴＷに加算されているからである。
【００７１】
第２ポリシング処理部１３Ｂは、送信側ポリシング処理を行う。より具体的には、第２ポリシング処理部１３Ｂは、パケットが送信キュー１２Ｂに登録されると、送信対象のパケットを送信する出力ポートの出力ポートＩＤを特定する。そして、第２ポリシング処理部１３Ｂは、出力ポート管理情報ＩＮＦ４を参照して、特定した出力ポートＩＤに対応する最大帯域トークンＴｐｏと最大帯域幅ＰＩＲｏと前回到着時刻ｔｏ’とを特定する。
【００７２】
そして、第２ポリシング処理部１３Ｂは、以下の式３にしたがって、特定した最大帯域トークンＴｐｏと最大帯域幅ＰＩＲｏと前回到着時刻ｔｏ’と、送信対象のパケットの受信時刻ｔｏとに基づいて、現時点における最大帯域トークンＴｐｏを算出する。なお、式３中のＴｐｏ’は出力ポート管理情報ＩＮＦ４に登録されている特定した出力ポートＩＤに対応する最大帯域トークン、つまり、特定した最大帯域トークンである。
【００７３】
（式３）
Ｔｐｏ＝Ｔｐｏ’＋（ｔｏ−ｔｏ’）×ＰＩＲｏ／８
【００７４】
この際、算出した最大帯域トークンＴｐｏが特定した出力ポートＩＤに対応する最大帯域トークン最大値ＰＢＳｏより大きい場合には、最大帯域トークン最大値ＰＢＳｏが現時点における最大帯域トークンＴｐｏとして設定される。なぜなら、送信側第２トークンバケットは最大帯域トークン最大値ＰＢＳｏを超えるトークンを貯蓄することができないからである。
【００７５】
また、第２ポリシング処理部１３Ｂは、出力ポート管理情報ＩＮＦ４を参照して、特定した出力ポートＩＤに対応する最小帯域トークンＴｃｏと最小帯域幅ＣＩＲｏと前回到着時刻ｔｏ’とを特定する。
【００７６】
そして、第２ポリシング処理部１３Ｂは、以下の式４にしたがって、特定した最小帯域トークンＴｃｏと最小帯域幅ＣＩＲｏと前回到着時刻ｔｏ’と、送信対象のパケットの受信時刻ｔｏとに基づいて、現時点における最小帯域トークンＴｃｏを算出する。なお、式４中のＴｃｏ’は出力ポート管理情報ＩＮＦ４に登録されている特定した出力ポートＩＤに対応する最小帯域トークン、つまり、特定した最小帯域トークンである。
【００７７】
（式４）
Ｔｃｏ＝Ｔｃｏ’＋（ｔｏ−ｔｏ’）×ＣＩＲｏ／８
【００７８】
この際、算出した最小帯域トークンＴｃｏが特定した出力ポートＩＤに対応する最小帯域トークン最大値ＣＢＳｏより大きい場合には、最小帯域トークン最大値ＣＢＳｏが現時点における最小帯域トークンＴｃｏとして設定される。なぜなら、送信側第１トークンバケットは最小帯域トークン最大値ＣＢＳｏを超えるトークンを貯蓄することができないからである。
【００７９】
そして、第２ポリシング処理部１３Ｂは、送信対象のパケットのパケットサイズが現時点における最大帯域トークンＴｐｏより大きい場合には、送信対象のパケットを破棄する。一方、送信対象のパケットのパケットサイズが現時点における最大帯域トークンＴｐｏ以下であり、且つ、現時点における最小帯域トークンＴｃｏ以下である場合には、第２ポリシング処理部１３Ｂは、現時点における最大帯域トークンＴｐｏと現時点における最小帯域トークンＴｃｏとから送信対象のパケットのパケットサイズ分のトークンをそれぞれ減算し、減算後の値で出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する最大帯域トークンＴｐｏと最小帯域トークンＴｃｏをそれぞれ更新する。
【００８０】
一方、送信対象のパケットのパケットサイズが現時点における最小帯域トークンＴｃｏより大きく、且つ、送信対象のパケットにマーキングされている色が黄色である場合には、第２ポリシング処理部１３Ｂは、送信対象のパケットを破棄する。一方、送信対象のパケットのパケットサイズが現時点における最小帯域トークンＴｃｏより大きく、且つ、送信対象のパケットにマーキングされている色が緑色である場合には、第２ポリシング処理部１３Ｂは、現時点における最大帯域トークンＴｐｏから送信対象のパケットのパケットサイズ分のトークンを減算し、減算後の値で出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する最大帯域トークンＴｐｏを更新する。
【００８１】
そして、第２ポリシング処理部１３Ｂは、送信対象のパケットの受信時刻ｔｏで出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する前回到着時刻ｔｏ’を更新する。そして、第２ポリシング処理部１３Ｂは、送受信部１１を介して、送信対象のパケットを送信する。
【００８２】
更新処理部１３Ｃは、所定のタイミングが到来するごとに、ユーザ管理情報ＩＮＦ１の最小帯域幅ＣＩＲｉ、つまり、受信側のポリシング処理で使用する最小帯域幅ＣＩＲｉを更新する。所定のタイミングは、例えば、一定周期ごとのタイミングであっても良いし、同じ出力ポートを介してパケットを送信するユーザ数に変化が生じたタイミングであっても良いし、受信又は送信したパケット数が所定数に達したタイミングであっても良いし、管理者などのオペレータにより更新の指示がなされたタイミングであっても良い。同じ出力ポートを介してパケットを送信するユーザ数に変化が生じたタイミングは、例えば、対応するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３にユーザＩＤが追加登録されたタイミングや、同じ出力ポートを介してパケットを送信するユーザの少なくとも一部が通信を終了させたタイミングなどである。
【００８３】
より具体的には、更新処理部１３Ｃは、所定のタイミングが到来すると、出力ポート管理情報ＩＮＦ４を参照して、更新対象のユーザ管理情報ＩＮＦ１に対応する出力ポートに接続されている回線の帯域幅（対応する出力ポートの最大帯域幅ＰＩＲｏ）と、ベストエフォート用の帯域幅（対応する出力ポートの最小帯域幅ＣＩＲｏ）と、を特定する。そして、更新処理部１３Ｃは、以下の式５にしたがって、特定した回線の帯域幅（最大帯域幅ＰＩＲｏ）とベストエフォート用の帯域幅（最小帯域幅ＣＩＲｏ）と、更新対象のユーザ管理情報ＩＮＦ１に対応するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３のＡｃｔｉｖｅユーザ重み合計ＴＷとに基づいて、単位重み当たりの最小帯域幅ＣＩＲｉ＿ｐｅｒを算出する。
【００８４】
（式５）
ＣＩＲｉ＿ｐｅｒ＝（ＰＩＲｏ−ＣＩＲｏ）／ＴＷ
【００８５】
そして、更新処理部１３Ｃは、更新対象のユーザ管理情報ＩＮＦ１の最小帯域幅ＣＩＲｉを初期化する。そして、更新処理部１３Ｃは、Ａｃｔｉｖｅフラグのフラグ値が“１”の最小帯域幅ＣＩＲｉを、以下の式６にしたがって、算出した単位重み当たりの最小帯域幅ＣＩＲｉ＿ｐｅｒと対応する重みＷとに基づいて、それぞれ算出する。
【００８６】
（式６）
ＣＩＲｉ＝ＣＩＲｉ＿ｐｅｒ×Ｗ
【００８７】
そして、更新処理部１３Ｃは、算出した値で更新対象のユーザ管理情報ＩＮＦ１の対応する最小帯域幅ＣＩＲｉを更新する。つまり、更新処理部１３Ｃは、直前の更新後に通信を行ったユーザに対してのみ最小帯域幅ＣＩＲｉを割り当てる。そして、更新処理部１３Ｃは、Ａｃｔｉｖｅフラグを初期化すると共に、更新対象のユーザ管理情報ＩＮＦ１に対応するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３を初期化する。
【００８８】
次に、図７乃至図９を参照して、本実施形態１おける受信側でのポリシング処理である第１ポリシング処理の流れについて説明する。図７、図８、図９は、それぞれ、本実施形態１における第１ポリシング処理のフローを説明するためのフローチャートの例の第１部と、第２部と、第3部である。本第１ポリシング処理は、パケットの受信をトリガとして開始する。なお、第１ポリシング処理は、同時に複数の処理が並列に実行されうるが、ここでは、一つのパケットに着眼し、着眼したパケットにおける第１ポリシング処理の流れについて説明する。
【００８９】
第１ポリシング処理部１３Ａは、受信キュー１２Ａを確認して、パケットを受信したか否かを判定する（ステップＳ００１）。第１ポリシング処理部１３Ａによりパケットを受信していないと判定された場合には（ステップＳ００１；ＮＯ）、処理はステップＳ００１の処理を繰り返して、パケットの受信を待つ。
【００９０】
一方、パケットを受信したと判定した場合には（ステップＳ００１；ＹＥＳ）、第１ポリシング処理部１３Ａは、受信したパケットのヘッダなどを解析してユーザＩＤを特定する（ステップＳ００２）。そして、第１ポリシング処理部１３Ａは、受信したパケットを送信する場合に使用する出力ポートに対応するユーザ管理情報ＩＮＦ１を参照して、特定したユーザＩＤに対応する最大帯域トークンＴｐｉと最大帯域幅ＰＩＲｉと前回到着時刻ｔｉ’とを特定する（ステップＳ００３）。
【００９１】
そして、第１ポリシング処理部１３Ａは、上述の式１にしたがって、特定した最大帯域トークンＴｐｉと最大帯域幅ＰＩＲｉと前回到着時刻ｔｉ’と、受信したパケットの受信時刻ｔｉとに基づいて、現時点における最大帯域トークンＴｐｉを算出する（ステップＳ００４）。
【００９２】
そして、第１ポリシング処理部１３Ａは、算出した最大帯域トークンＴｐｉが特定したユーザＩＤに対応する最大帯域トークン最大値ＰＢＳｉより大きいか否かを判定する（ステップＳ００５）。算出した最大帯域トークンＴｐｉが最大帯域トークン最大値ＰＢＳｉより大きいと判定した場合には（ステップＳ００５；ＹＥＳ）、第１ポリシング処理部１３Ａは、最大帯域トークン最大値ＰＢＳｉを現時点における最大帯域トークンＴｐｉとして設定する（ステップＳ００６）。そして、処理は後述のステップＳ００７の処理へと進む。
【００９３】
一方、算出した最大帯域トークンＴｐｉが最大帯域トークン最大値ＰＢＳｉ以下であると判定した場合には（ステップＳ００５；ＮＯ）、第１ポリシング処理部１３Ａは、受信したパケットを送信する場合に使用する出力ポートに対応するユーザ管理情報ＩＮＦ１を参照して、特定したユーザＩＤに対応する最小帯域トークンＴｃｉと最小帯域幅ＣＩＲｉと前回到着時刻ｔｉ’とを特定する（ステップＳ００７）。
【００９４】
そして、第１ポリシング処理部１３Ａは、上述の式２にしたがって、特定した最小帯域トークンＴｃｉと最小帯域幅ＣＩＲｉと前回到着時刻ｔｉ’と、受信したパケットの受信時刻ｔｉとに基づいて、現時点における最小帯域トークンＴｃｉを算出する（ステップＳ００８）。
【００９５】
そして、第１ポリシング処理部１３Ａは、算出した最小帯域トークンＴｃｉが特定したユーザＩＤに対応する最小帯域トークン最大値ＣＢＳｉより大きいか否かを判定する（ステップＳ００９）。算出した最小帯域トークンＴｃｉが最小帯域トークン最大値ＣＢＳｉより大きいと判定した場合には（ステップＳ００９；ＹＥＳ）、第１ポリシング処理部１３Ａは、最小帯域トークン最大値ＣＢＳｉを現時点における最小帯域トークンＴｃｉとして設定する（ステップＳ０１０）。そして、処理は後述のステップＳ０１１の処理へと進む。
【００９６】
一方、算出した最小帯域トークンＴｃｉが最小帯域トークン最大値ＣＢＳｉ以下であると判定した場合には（ステップＳ００９；ＮＯ）、第１ポリシング処理部１３Ａは、更に、受信したパケットのパケットサイズが現時点における最大帯域トークンＴｐｉより大きいか否かを判定する（ステップＳ０１１）。受信したパケットのパケットサイズが現時点における最大帯域トークンＴｐｉより大きいと判定した場合には（ステップＳ０１１；ＹＥＳ）、第１ポリシング処理部１３Ａは、受信したパケットを破棄する（ステップＳ０１２）。そして、処理はステップＳ００１の処理へと戻り、前述の処理を繰り返す。
【００９７】
一方、受信したパケットのパケットサイズが現時点における最大帯域トークンＴｐｉ以下であると判定した場合には（ステップＳ０１１；ＮＯ）、第１ポリシング処理部１３Ａは、現時点における最大帯域トークンＴｐｉから受信したパケットのパケットサイズ分のトークンを減算し、減算後の値でユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する最大帯域トークンＴｐｉを更新する（ステップＳ０１３）。
【００９８】
そして、第１ポリシング処理部１３Ａは、受信したパケットのパケットサイズが現時点における最小帯域トークンＴｃｉより大きいか否かを判定する（ステップＳ０１４）。受信したパケットのパケットサイズが現時点における最小帯域トークンＴｃｉより大きいと判定した場合には（ステップＳ０１４；ＹＥＳ）、第１ポリシング処理部１３Ａは、受信したパケットに黄色をマーキングする（ステップＳ０１５）。そして、処理は後述のステップＳ０１８の処理へと進む。
【００９９】
一方、受信したパケットのパケットサイズが現時点における最小帯域トークンＴｃｉ以下であると判定した場合には（ステップＳ０１４；ＮＯ）、第１ポリシング処理部１３Ａは、受信したパケットに緑色をマーキングする（ステップＳ０１６）。そして、第１ポリシング処理部１３Ａは、現時点における最小帯域トークンＴｃｉから受信したパケットのパケットサイズ分のトークンを減算し、減算後の値でユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する最小帯域トークンＴｃｉを更新する（ステップＳ０１７）。
【０１００】
そして、第１ポリシング処理部１３Ａは、受信したパケットの受信時刻ｔｉでユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する前回到着時刻ｔｉ’を更新する（ステップＳ０１８）。そして、第１ポリシング処理部１３Ａは、ユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応するＡｃｔｉｖｅフラグのフラグ値が“０”であるか否かを判定する（ステップＳ０１９）。
【０１０１】
Ａｃｔｉｖｅフラグのフラグ値が“０”であると判定した場合には（ステップＳ０１９；ＹＥＳ）、第１ポリシング処理部１３Ａは、フラグ値を“１”に設定する（ステップＳ０２０）。そして、第１ポリシング処理部１３Ａは、受信したパケットを送信する場合に使用する出力ポートに対応するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３にユーザＩＤを登録し、ユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する重みＷをＡｃｔｉｖｅユーザ管理情報ＩＮＦ３のＡｃｔｉｖｅユーザ重み合計ＴＷに加算する（ステップＳ０２１）。そして、処理は後述のステップＳ０２２の処理へと進む。
【０１０２】
一方、Ａｃｔｉｖｅフラグのフラグ値が“１”であると判定した場合には（ステップＳ０１９；ＮＯ）、第１ポリシング処理部１３Ａは、受信したパケットを対応する送信キュー１２Ｂに登録する（ステップＳ０２２）。そして、処理はステップＳ００１の処理へと戻り、前述の処理を繰り返す。
【０１０３】
次に、図１０と図１１を参照して、本実施形態１における送信側でのポリシング処理である第２ポリシング処理の流れについて説明する。図１０と図１１は、それぞれ、本実施形態１における第２ポリシング処理のフローを説明するためのフローチャートの例の一部と、他の一部である。本第２ポリシング処理は、パケットが送信キュー１２Ｂに登録されたことをトリガとして開始する。なお、第２ポリシング処理は、同時に複数の処理が並列に実行されうるが、ここでは、一つのパケットに着眼し、着眼したパケットにおける第２ポリシング処理の流れについて説明する。
【０１０４】
第２ポリシング処理部１３Ｂは、送信キュー１２Ｂを確認して、送信対象のパケットが有るか否かを判定する（ステップＳ１０１）。第２ポリシング処理部１３Ｂにより送信対象のパケット無いと判定された場合には（ステップＳ１０１；ＮＯ）、処理はステップＳ１０１の処理を繰り返して、パケットが送信キュー１２Ｂに登録されるのを待つ。
【０１０５】
一方、送信対象のパケットが有ると判定した場合には（ステップＳ１０１；ＹＥＳ）、第２ポリシング処理部１３Ｂは、送信対象のパケットを送信する出力ポートの出力ポートＩＤを特定する（ステップＳ１０２）。そして、第２ポリシング処理部１３Ｂは、出力ポート管理情報ＩＮＦ４を参照して、特定した出力ポートＩＤに対応する最大帯域トークンＴｐｏと最大帯域幅ＰＩＲｏと前回到着時刻ｔｏ’とを特定する（ステップＳ１０３）。
【０１０６】
そして、第２ポリシング処理部１３Ｂは、上述の式３にしたがって、特定した最大帯域トークンＴｐｏと最大帯域幅ＰＩＲｏと前回到着時刻ｔｏ’と、送信対象のパケットの受信時刻ｔｏとに基づいて、現時点における最大帯域トークンＴｐｏを算出する（ステップＳ１０４）。
【０１０７】
そして、第２ポリシング処理部１３Ｂは、算出した最大帯域トークンＴｐｏが特定した出力ポートＩＤに対応する最大帯域トークン最大値ＰＢＳｏより大きいか否かを判定する（ステップＳ１０５）。算出した最大帯域トークンＴｐｏが最大帯域トークン最大値ＰＢＳｏより大きいと判定した場合には（ステップＳ１０５；ＹＥＳ）、第２ポリシング処理部１３Ｂは、最大帯域トークン最大値ＰＢＳｏを現時点における最大帯域トークンＴｐｏとして設定する（ステップＳ１０６）。そして、処理は後述のステップＳ１０７の処理へと進む。
【０１０８】
一方、算出した最大帯域トークンＴｐｏが最大帯域トークン最大値ＰＢＳｏ以下であると判定した場合には（ステップＳ１０５；ＮＯ）、第２ポリシング処理部１３Ｂは、出力ポート管理情報ＩＮＦ４を参照して、特定した出力ポートＩＤに対応する最小帯域トークンＴｃｏと最小帯域幅ＣＩＲｏと前回到着時刻ｔｏ’とを特定する（ステップＳ１０７）。
【０１０９】
そして、第２ポリシング処理部１３Ｂは、上述の式４にしたがって、特定した最小帯域トークンＴｃｏと最小帯域幅ＣＩＲｏと前回到着時刻ｔｏ’と、送信対象のパケットの受信時刻ｔｏとに基づいて、現時点における最小帯域トークンＴｃｏを算出する（ステップＳ１０８）。
【０１１０】
そして、第２ポリシング処理部１３Ｂは、算出した最小帯域トークンＴｃｏが特定した出力ポートＩＤに対応する最小帯域トークン最大値ＣＢＳｏより大きいか否かを判定する（ステップＳ１０９）。算出した最小帯域トークンＴｃｏが最小帯域トークン最大値ＣＢＳｏより大きいと判定した場合には（ステップＳ１０９；ＹＥＳ）、第２ポリシング処理部１３Ｂは、最小帯域トークン最大値ＣＢＳｏを現時点における最小帯域トークンＴｃｏとして設定する（ステップＳ１１０）。そして、処理は後述のステップＳ１１１の処理へと進む。
【０１１１】
一方、算出した最小帯域トークンＴｃｏが最小帯域トークン最大値ＣＢＳｏ以下であると判定した場合には（ステップＳ１０９；ＮＯ）、第２ポリシング処理部１３Ｂは、更に、送信対象のパケットのパケットサイズが現時点における最大帯域トークンＴｐｏより大きいか否かを判定する（ステップＳ１１１）。送信対象のパケットのパケットサイズが現時点における最大帯域トークンＴｐｏより大きいと判定した場合には（ステップＳ１１１；ＹＥＳ）、第２ポリシング処理部１３Ｂは、送信対象のパケットを破棄する（ステップＳ１１２）。そして、処理はステップＳ１０１の処理へと戻り、前述の処理を繰り返す。
【０１１２】
一方、送信対象のパケットのパケットサイズが現時点における最大帯域トークンＴｐｏ以下であると判定した場合には（ステップＳ１１１；ＮＯ）、第２ポリシング処理部１３Ｂは、更に、送信対象のパケットのパケットサイズが現時点における最小帯域トークンＴｃｏより大きいか否かを判定する（ステップＳ１１３）。送信対象のパケットのパケットサイズが現時点における最小帯域トークンＴｃｏより大きいと判定した場合には（ステップＳ１１３；ＹＥＳ）、第２ポリシング処理部１３Ｂは、更に、送信対象のパケットにマーキングされている色は緑色であるか否かを判定する（ステップＳ１１４）。
【０１１３】
第２ポリシング処理部１３Ｂにより、送信対象のパケットにマーキングされている色は黄色であると判定された場合には（ステップＳ１１４；ＮＯ）、処理は前述のステップＳ１１２の処理へと進む。一方、第２ポリシング処理部１３Ｂにより、送信対象のパケットにマーキングされている色は緑色であると判定された場合には（ステップＳ１１４；ＹＥＳ）、処理は後述のステップＳ１１６の処理へと進む。
【０１１４】
ステップＳ１１３の処理において、送信対象のパケットのパケットサイズが現時点における最小帯域トークンＴｃｏ以下であると判定した場合には（ステップＳ１１３；ＮＯ）、第２ポリシング処理部１３Ｂは、現時点における最小帯域トークンＴｃｏから送信対象のパケットのパケットサイズ分のトークンを減算し、減算後の値で出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する最小帯域トークンＴｃｏを更新する（ステップＳ１１５）。
【０１１５】
そして、第２ポリシング処理部１３Ｂは、現時点における最大帯域トークンＴｐｏから送信対象のパケットのパケットサイズ分のトークンを減算し、減算後の値で出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する最大帯域トークンＴｐｏを更新する（ステップＳ１１６）。そして、第２ポリシング処理部１３Ｂは、送信対象のパケットの受信時刻ｔｏで出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する前回到着時刻ｔｏ’を更新すると共に（ステップＳ１１７）、送受信部１１を介して、送信対象のパケットを送信する（ステップＳ１１８）。そして、処理はステップＳ１０１の処理へと戻り、前述の処理を繰り返す。
【０１１６】
次に、図１２を参照して、本実施形態１における更新処理の流れについて説明する。図１２は、本実施形態１における更新処理のフローを説明するためのフローチャートの例である。本更新処理は、所定のタイミングの到来をトリガとして開始する。
【０１１７】
更新処理部１３Ｃは、所定のタイミングが到来したか否かを判定する（ステップＳ２０１）。更新処理部１３Ｃにより、所定のタイミングは到来していないと判定された場合には（ステップＳ２０１；ＮＯ）、処理はステップＳ２０１の処理を繰り返して、所定のタイミングの到来を待つ。
【０１１８】
一方、所定のタイミングが到来したと判定した場合には（ステップＳ２０１；ＹＥＳ）、更新処理部１３Ｃは、出力ポート管理情報ＩＮＦ４を参照して、更新対象のユーザ管理情報ＩＮＦ１に対応する出力ポートに接続されている回線の帯域幅（対応する出力ポートの最大帯域幅ＰＩＲｏ）と、ベストエフォート用の帯域幅（対応する出力ポートの最小帯域幅ＣＩＲｏ）と、を特定する（ステップＳ２０２）。
【０１１９】
そして、更新処理部１３Ｃは、上述の式５にしたがって、特定した回線の帯域幅（最大帯域幅ＰＩＲｏ）とベストエフォート用の帯域幅（最小帯域幅ＣＩＲｏ）と、更新対象のユーザ管理情報ＩＮＦ１に対応するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３のＡｃｔｉｖｅユーザ重み合計ＴＷとに基づいて、単位重み当たりの最小帯域幅ＣＩＲｉ＿ｐｅｒを算出する（ステップＳ２０３）。
【０１２０】
そして、更新処理部１３Ｃは、更新対象のユーザ管理情報ＩＮＦ１の最小帯域幅ＣＩＲｉを初期化し（ステップＳ２０４）、Ａｃｔｉｖｅフラグのフラグ値が“１”の最小帯域幅ＣＩＲｉを、上述の式６にしたがって、算出した単位重み当たりの最小帯域幅ＣＩＲｉ＿ｐｅｒと対応する重みＷとに基づいて、それぞれ算出する（ステップＳ２０５）。
【０１２１】
そして、更新処理部１３Ｃは、算出した値で更新対象のユーザ管理情報ＩＮＦ１の対応する最小帯域幅ＣＩＲｉを更新すると共に（ステップＳ２０６）、更新対象のユーザ管理情報ＩＮＦ１のＡｃｔｉｖｅフラグを初期化する（ステップＳ２０７）。そして、更新処理部１３Ｃは、更新対象のユーザ管理情報ＩＮＦ１に対応するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３を初期化する（ステップＳ２０８）。そして、処理はステップＳ２０１の処理へと戻り、前述の処理を繰り返す。
【０１２２】
次に、図１３と図１４を参照して、具体例にしたがって、本実施形態１における更新処理について更に説明する。図１３は、本実施形態１における更新処理を説明するための具体例を示す図である。図１４Ａと図１４Ｂは、いずれも、図１３に示す具体例におけるＡｃｔｉｖｅユーザ管理情報ＩＮＦ３とユーザ管理情報ＩＮＦ１を示す図である。
【０１２３】
なお、図１３に示す具体例では、ユーザがユーザ０１〜ユーザ０５の５名であり、時点（１）と時点（２）において、更新処理の所定のタイミングが到来するものとする。また、図１３中の実線は通信中であることを表し、パケットは全て同一の出力ポートを介して送信されるものとする。また、図１４Ａに示すＡｃｔｉｖｅユーザ管理情報ＩＮＦ３とユーザ管理情報ＩＮＦ１が時点（１）に対応し、図１４Ｂに示すＡｃｔｉｖｅユーザ管理情報ＩＮＦ３とユーザ管理情報ＩＮＦ１が時点（２）に対応するものとする。さらに、本具体例におけるパケットを送信する出力ポートに接続されている回線の帯域幅は１００Ｍｂｐｓであり、ベストエフォート用に割り当てられる帯域幅は２０Ｍｂｐｓであるとする。
【０１２４】
時点（１）における更新処理では、時点（１）までに、ユーザ０１とユーザ０２とユーザ０４とが通信を行ったことから、図１４ＡのＡｃｔｉｖｅユーザ管理情報ＩＮＦ３に示すように、Ａｃｔｉｖｅユーザ管理情報ＩＮＦ３にはユーザ０１とユーザ０２とユーザ０４にそれぞれ対応するユーザＩＤが登録されている。また、図１４Ａのユーザ管理情報ＩＮＦ１に示すように、ユーザ０１とユーザ０２とユーザ０４の重みＷは、それぞれ、１０、５、５であるので、図１４ＡのＡｃｔｉｖｅユーザ管理情報ＩＮＦ３に示すように、Ａｃｔｉｖｅユーザ重み合計ＴＷは“２０”となる。
【０１２５】
したがって、本具体例におけるパケットを送信する出力ポートに接続されている回線の帯域幅は１００Ｍｂｐｓであり、ベストエフォート用に割り当てられる帯域幅は２０Ｍｂｐｓであることから、更新処理部１３Ｃは、単位重み当たりの最小帯域幅ＣＩＲｉ＿ｐｅｒとして、（１００−２０）／２０＝４を算出する。
【０１２６】
Ａｃｔｉｖｅフラグが“１”のユーザは、ユーザ０１とユーザ０２とユーザ０４であることから、更新処理部１３Ｃは、図１４Ａのユーザ管理情報ＩＮＦ１に示すように、ユーザ０１の最小帯域幅ＣＩＲｉとして“４０Ｍｂｐｓ”を、ユーザ０２の最小帯域幅ＣＩＲｉとして“２０Ｍｂｐｓ”を、ユーザ０４の最小帯域幅ＣＩＲｉとして“２０Ｍｂｐｓ”を、それぞれ、算出する。
【０１２７】
時点（２）における更新処理では、時点（１）と時点（２）との間に、ユーザ０１とユーザ０２とユーザ０３とが通信を行ったことから、図１４ＢのＡｃｔｉｖｅユーザ管理情報ＩＮＦ３に示すように、Ａｃｔｉｖｅユーザ管理情報ＩＮＦ３にはユーザ０１とユーザ０２とユーザ０３にそれぞれ対応するユーザＩＤが登録されている。また、図１４Ｂのユーザ管理情報ＩＮＦ１に示すように、ユーザ０１とユーザ０２とユーザ０３の重みＷは、それぞれ、１０、５、１０であるので、図１４ＢのＡｃｔｉｖｅユーザ管理情報ＩＮＦ３に示すように、Ａｃｔｉｖｅユーザ重み合計ＴＷは“２５”となる。
【０１２８】
したがって、本具体例におけるパケットを送信する出力ポートに接続されている回線の帯域幅は１００Ｍｂｐｓであり、ベストエフォート用に割り当てられる帯域幅は２０Ｍｂｐｓであることから、更新処理部１３Ｃは、単位重み当たりの最小帯域幅ＣＩＲｉ＿ｐｅｒとして、（１００−２０）／２５＝３．２を算出する。
【０１２９】
Ａｃｔｉｖｅフラグが“１”のユーザは、ユーザ０１とユーザ０２とユーザ０３であることから、更新処理部１３Ｃは、図１４Ｂのユーザ管理情報ＩＮＦ１に示すように、ユーザ０１の最小帯域幅ＣＩＲｉとして“３２Ｍｂｐｓ”を、ユーザ０２の最小帯域幅ＣＩＲｉとして“１６Ｍｂｐｓ”を、ユーザ０３の最小帯域幅ＣＩＲｉとして“３２Ｍｂｐｓ”を、それぞれ、算出する。
【０１３０】
上記実施形態１によれば、帯域制御装置１０は、直前の更新後に通信を行ったユーザのみに対して最小帯域幅ＣＩＲｉが割り当てられるように最小帯域幅ＣＩＲｉを所定のタイミングで更新する。つまり、帯域制御装置１０は、直前の更新後に通信を行ったか否かに基づいて最小帯域幅ＣＩＲｉを割り当てる。このようにすることで、最小帯域幅ＣＩＲｉが固定されている従来の場合と比較して、通信を行っているユーザに対して保証される最小帯域幅ＣＩＲｉをより多く割り当てることができる。したがって、ユーザ間の公平性を向上させることができる。
【０１３１】
また、上記実施形態１によれば、帯域制御装置１０は、契約最大帯域幅が広い程、最小帯域幅ＣＩＲｉを広くする。このようにすることで、契約最大帯域幅が広い程、保証される帯域幅が広くなるので、ユーザ間の公平性を向上させることができる。
【０１３２】
また、上記実施形態１によれば、帯域制御装置１０は、同じ出力ポートを介してパケットを送信するユーザ数に変化が生じたタイミングで最小帯域幅ＣＩＲｉを更新する。このようにすることで、通信を行っているユーザ数の増減に応じて保証する帯域幅を適切に変化させることができる。したがって、ユーザ間の公平性を向上させることができる。
【０１３３】
（実施形態２）
実施形態１においては、最小帯域幅ＣＩＲｉの更新後に新たに通信を開始したユーザに対しては、次の更新までの間、ベストエフォートとするようにした。本実施形態２においては、最小帯域幅ＣＩＲｉの更新後に新たに通信を開始したユーザに対しては、次の更新までの間、パケットを破棄し、疎通させないようにする。
【０１３４】
本実施形態２における帯域制御装置１０の基本的な構成は、実施形態１の場合と同じである。但し、第１ポリシング処理部１３Ａが果たす機能が実施形態１の場合と若干異なっている。なお、本実施形態２における第１ポリシング処理部１３Ａが果たす機能の内で異なる部分については、第１ポリシング処理のフローチャートにしたがって、説明することとする。
【０１３５】
図１５は、本実施形態２における第１ポリシング処理のフローを説明するためのフローチャートの例の一部である。本第１ポリシング処理は、パケットの受信をトリガとして開始する。なお、第１ポリシング処理は、同時に複数の処理が並列に実行されうるが、ここでは、一つのパケットに着眼し、着眼したパケットにおける第１ポリシング処理の流れについて説明する。また、実施形態１と同じ処理については同一の符号が付されている。
【０１３６】
第１ポリシング処理部１３Ａは、受信キュー１２Ａを確認して、パケットを受信したか否かを判定する（ステップＳ００１）。第１ポリシング処理部１３Ａによりパケットを受信していないと判定された場合には（ステップＳ００１；ＮＯ）、処理はステップＳ００１の処理を繰り返して、パケットの受信を待つ。
【０１３７】
一方、パケットを受信したと判定した場合には（ステップＳ００１；ＹＥＳ）、第１ポリシング処理部１３Ａは、受信したパケットのヘッダなどを解析してユーザＩＤを特定する（ステップＳ００２）。そして、第１ポリシング処理部１３Ａは、ユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する最小帯域幅ＣＩＲｉが“０”であるか否かを判定する（ステップＳ３０１）。つまり、第１ポリシング処理部１３Ａは、受信したパケットが直前の更新後に新たに通信を開始したユーザのパケットであるか否かを判定する。
【０１３８】
第１ポリシング処理部１３Ａにより、最小帯域幅ＣＩＲｉが“０”より大きいと判定された場合には（ステップＳ３０１；ＮＯ）、処理は実施形態１で説明したステップＳ００３の処理へと進む。一方、最小帯域幅ＣＩＲｉが“０”であると判定した場合には（ステップＳ３０１；ＹＥＳ）、第１ポリシング処理部１３Ａは、受信したパケットを破棄し（ステップＳ３０２）、ユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応するＡｃｔｉｖｅフラグのフラグ値が“０”であるか否かを判定する（ステップＳ３０３）。
【０１３９】
Ａｃｔｉｖｅフラグのフラグ値が“０”であると判定した場合には（ステップＳ３０３；ＹＥＳ）、第１ポリシング処理部１３Ａは、フラグ値を“１”に設定する（ステップＳ３０４）。そして、第１ポリシング処理部１３Ａは、受信したパケットを送信する場合に使用する出力ポートに対応するＡｃｔｉｖｅユーザ管理情報ＩＮＦ３にユーザＩＤを登録し、ユーザ管理情報ＩＮＦ１の特定したユーザＩＤに対応する重みＷをＡｃｔｉｖｅユーザ管理情報ＩＮＦ３のＡｃｔｉｖｅユーザ重み合計ＴＷに加算する（ステップＳ３０５）。そして、処理はステップＳ００１の処理へと戻り、前述の処理を繰り返す。
【０１４０】
一方、第１ポリシング処理部１３Ａにより、Ａｃｔｉｖｅフラグのフラグ値が“１”であると判定された場合には（ステップＳ３０３；ＮＯ）、処理はステップＳ００１の処理へと戻り、前述の処理を繰り返す。
【０１４１】
上記実施形態２によれば、帯域制御装置１０は、最小帯域幅ＣＩＲｉの直前の更新後に新たに通信を開始したユーザのパケットを破棄し、疎通させないようにする。こうすることで、通信中の既存ユーザのパケットを優先的に送信することができる。
【０１４２】
（実施形態３）
実施形態１と２における第２ポリシング処理において、送信対象のパケットのパケットサイズが最小帯域トークンＴｃｏ以下の場合には、送信対象のパケットにマーキングされている色に関係なくベストエフォート用の帯域幅を利用して送信対象のパケットを送信するようにした。本実施形態３においては、送信対象のパケットにマーキングされている色が黄色の場合のみ、ベストエフォート用の帯域幅を利用して送信対象のパケットを送信するようにする。
【０１４３】
本実施形態３における帯域制御装置１０の基本的な構成は、実施形態１の場合と同じである。但し、第２ポリシング処理部１３Ｂが果たす機能が実施形態１の場合と若干異なっている。なお、本実施形態３における第２ポリシング処理部１３Ｂが果たす機能の内で異なる部分については、第２ポリシング処理のフローチャートにしたがって、説明することとする。
【０１４４】
図１６は、本実施形態３における第２ポリシング処理のフローを説明するためのフローチャートの例の一部である。本第２ポリシング処理は、パケットが送信キュー１２Ｂに登録されたことをトリガとして開始する。なお、第２ポリシング処理は、同時に複数の処理が並列に実行されうるが、ここでは、一つのパケットに着眼し、着眼したパケットにおける第２ポリシング処理の流れについて説明する。また、実施形態１と同じ処理については同一の符号が付されている。
【０１４５】
第２ポリシング処理部１３Ｂは、算出した最小帯域トークンＴｃｏが特定した出力ポートＩＤに対応する最小帯域トークン最大値ＣＢＳｏより大きいか否かを判定する（ステップＳ１０９）。算出した最小帯域トークンＴｃｏが最小帯域トークン最大値ＣＢＳｏより大きいと判定した場合には（ステップＳ１０９；ＹＥＳ）、第２ポリシング処理部１３Ｂは、最小帯域トークン最大値ＣＢＳｏを現時点における最小帯域トークンＴｃｏとして設定する（ステップＳ１１０）。そして、処理は後述のステップＳ１１１の処理へと進む。
【０１４６】
一方、算出した最小帯域トークンＴｃｏが最小帯域トークン最大値ＣＢＳｏ以下であると判定した場合には（ステップＳ１０９；ＮＯ）、第２ポリシング処理部１３Ｂは、送信対象のパケットのパケットサイズが現時点における最大帯域トークンＴｐｏより大きいか否かを判定する（ステップＳ１１１）。送信対象のパケットのパケットサイズが現時点における最大帯域トークンＴｐｏより大きいと判定した場合には（ステップＳ１１１；ＹＥＳ）、第２ポリシング処理部１３Ｂは、送信対象のパケットを破棄する（ステップＳ１１２）。そして、処理はステップＳ１０１の処理へと戻り、前述の処理を繰り返す。
【０１４７】
一方、送信対象のパケットのパケットサイズが現時点における最大帯域トークンＴｐｏ以下であると判定した場合には（ステップＳ１１１；ＮＯ）、第２ポリシング処理部１３Ｂは、更に、送信対象のパケットにマーキングされている色は緑色であるか否かを判定する（ステップＳ１１４）。送信対象のパケットにマーキングされている色は緑色であると判定した場合には（ステップＳ１１４；ＹＥＳ）、第２ポリシング処理部１３Ｂは、現時点における最大帯域トークンＴｐｏから送信対象のパケットのパケットサイズ分のトークンを減算し、減算後の値で出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する最大帯域トークンＴｐｏを更新する（ステップＳ１１６）。
【０１４８】
そして、第２ポリシング処理部１３Ｂは、送信対象のパケットの受信時刻ｔｏで出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する前回到着時刻ｔｏ’を更新すると共に（ステップＳ１１７）、送受信部１１を介して、送信対象のパケットを送信する（ステップＳ１１８）。そして、処理はステップＳ１０１の処理へと戻り、前述の処理を繰り返す。
【０１４９】
一方、ステップＳ１１４の処理において、送信対象のパケットにマーキングされている色は黄色であると判定した場合には（ステップＳ１１４；ＮＯ）、第２ポリシング処理部１３Ｂは、更に、送信対象のパケットのパケットサイズが現時点における最小帯域トークンＴｃｏより大きいか否かを判定する（ステップＳ１１３）。送信対象のパケットのパケットサイズが現時点における最小帯域トークンＴｃｏより大きいと判定した場合には（ステップＳ１１３；ＹＥＳ）、第２ポリシング処理部１３Ｂは、送信対象のパケットを破棄する（ステップＳ１１２）。そして、処理はステップＳ１０１の処理へと戻り、前述の処理を繰り返す。
【０１５０】
一方、送信対象のパケットのパケットサイズが現時点における最小帯域トークンＴｃｏ以下であると判定した場合には（ステップＳ１１３；ＮＯ）、第２ポリシング処理部１３Ｂは、現時点における最小帯域トークンＴｃｏから送信対象のパケットのパケットサイズ分のトークンを減算し、減算後の値で出力ポート管理情報ＩＮＦ４の特定した出力ポートＩＤに対応する最小帯域トークンＴｃｏを更新する（ステップＳ１１５）。そして、処理はステップＳ１１６の処理へと進む。
【０１５１】
上記実施形態３によれば、帯域制御装置１０は、送信対象のパケットに黄色がマーキングされているパケットのみを、ベストエフォート用の帯域幅を利用して疎通させる。こうすることで、出力ポートに接続されている回線の帯域幅をより有効に利用できる。
【０１５２】
（実施形態４）
実施形態１乃至３においては、パケットにマーキングされた色を識別するための状態識別情報は、パケット状態フラグにより保持されるようにした。本実施形態４においては、状態識別情報をパケットのヘッダに格納するようにする。
【０１５３】
図１７は、状態識別情報の別の保持方法について説明するための図であり、パケットがイーサネットフレームである場合のフォーマット例を示す図である。パケットがイーサネットフレームである場合、Ｐｒｉｏｒｉｔｙ  Ｃｏｄｅ  Ｐｏｉｎｔ（ＰＣＰ）と、Ｔｙｐｅ  Ｏｆ  Ｓｅｒｖｉｃｅ（ＴＯＳ）と、オプション部（Ｏｐｔｉｏｎｓ）のいずれかのフィールドに状態識別情報を格納することができる。
【０１５４】
ＰＣＰは、ＥｔｈｅｒヘッダにおけるＩＥＥＥ８０２．１ｐで定義されたＶＬＡＮタグの優先度を指定するフィールドである。ＴＯＳは、ＩＰヘッダにおけるＲＦＣ７９１で定義されたサービスの優先度などを指定するフィールドである。オプション部は、ＩＰヘッダにおけるＲＦＣ７９１で定義されたオプション部であり、個別に定義可能なフィールドである。
【０１５５】
このように、パケットのヘッダに状態識別情報を格納することで、パケット管理記憶部１２Ｄを備える必要がなくなるため、メモリ資源の有効活用が可能となる。
【０１５６】
図１８は、各実施形態における帯域制御装置１０のハードウェア構成の例を示す図である。図２に示す帯域制御装置１０は、例えば、図１８に示す各種ハードウェアにより実現されてもよい。図１８の例では、帯域制御装置１０は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、フラッシュメモリ２０４、回線を接続するための回線インターフェース２０５、読取装置２０６を備え、これらのハードウェアはバス２０７を介して接続されている。
【０１５７】
ＣＰＵ２０１は、例えば、フラッシュメモリ２０４に格納されている動作プログラムをＲＡＭ２０２にロードし、ＲＡＭ２０２をワーキングメモリとして使いながら各種処理を実行する。ＣＰＵ２０１は、動作プログラムを実行することで、図２に示す制御部１３の各機能部を実現することができる。
【０１５８】
なお、上記動作を実行するための動作プログラムを、フレキシブルディスク、Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ）、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ（ＤＶＤ）、Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ  ｄｉｓｋ（ＭＯ）などのコンピュータで読み取り可能な記録媒体２０８に記憶して配布し、これを帯域制御装置１０の読取装置２０６で読み取ってコンピュータにインストールすることにより、上述の処理を実行するようにしてもよい。さらに、インターネット上のサーバ装置が有するディスク装置等に動作プログラムを記憶しておき、帯域制御装置１０のコンピュータに動作プログラムをダウンロード等するものとしてもよい。
【０１５９】
なお、実施形態に応じて、ＲＡＭ２０２、ＲＯＭ２０３、フラッシュメモリ２０４以外の他の種類の記憶装置が利用されてもよい。例えば、帯域制御装置１０は、Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ（ＣＡＭ）、Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＳＲＡＭ）、Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＳＤＲＡＭ）などの記憶装置を有してもよい。
【０１６０】
なお、実施形態に応じて、帯域制御装置１０のハードウェア構成は図１８とは異なっていてもよく、図１８に例示した規格・種類以外のその他のハードウェアを帯域制御装置１０に適用することもできる。
【０１６１】
例えば、図２に示す帯域制御装置１０の制御部１３の各機能部は、ハードウェア回路により実現されてもよい。具体的には、ＣＰＵ２０１の代わりに、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）などのリコンフィギュラブル回路や、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＡＳＩＣ）などにより、図２に示す制御部１３の各機能部が実現されてもよい。もちろん、ＣＰＵ２０１とハードウェア回路の双方により、これらの機能部が実現されてもよい。
【０１６２】
以上において、いくつかの実施形態及びその変形例について説明した。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態を成すことができることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
【０１６３】
以上の実施形態１乃至４を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置であって、
所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新する更新手段と、
直前のタイミングで更新された前記更新後の最小帯域幅に基づいて、受信側での帯域制御を行う第１ポリシング手段と、
送信側での帯域制御を行う第２ポリシング手段と、
を備える、
ことを特徴とする帯域制御装置。
（付記２）
前記更新手段は、前記通信を行わなかったユーザの最小帯域幅を略０にする、
ことを特徴とする付記１に記載の帯域制御装置。
（付記３）
前記所定のタイミングは、通信中のユーザ数が増減したタイミングである、
ことを特徴とする付記１又は２に記載の帯域制御装置。
（付記４）
前記更新手段は、ユーザに割り当てられている最大帯域幅が広い程、前記最小帯域幅を広くする、
ことを特徴とする付記１乃至３のいずれか一に記載の帯域制御装置。
（付記５）
前記出力回線の帯域幅の一部がベストエフォート用に割り当てられており、
前記更新手段は、前記最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、前記合計が前記ベストエフォート用に割り当てられている帯域幅を除く前記出力回線の帯域幅を超えないように更新する、
ことを特徴とする付記１乃至４のいずれか一に記載の帯域制御装置。
（付記６）
直前の前記最小帯域幅の更新後に新たに通信を開始したユーザのパケットを破棄する破棄手段を、更に、備える、
ことを特徴とする付記１乃至５のいずれか一に記載の帯域制御装置。
（付記７）
前記受信側での帯域制御の過程で前記パケットにマーキングされる色を識別するための識別情報を前記パケットのヘッダの所定のフィールドに格納する、
ことを特徴とする付記１乃至６のいずれか一に記載の帯域制御装置。
（付記８）
前記受信側での帯域制御の過程で前記パケットにマーキングされる色を識別するための識別情報を保持する記憶手段を、更に、備える、
ことを特徴とする付記１乃至６のいずれか一に記載の帯域制御装置。
（付記９）
前記パケットはイーサネットフレームである、
ことを特徴とする付記１乃至８のいずれか一に記載の帯域制御装置。
（付記１０）
デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置の帯域制御方法であって、
所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新し、
直前のタイミングで更新した前記更新後の最小帯域幅に基づいて、受信側での帯域制御を行う、
ことを特徴とする帯域制御方法。
（付記１１）
デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置のコンピュータに、
所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新し、
直前のタイミングで更新した前記更新後の最小帯域幅に基づいて、受信側での帯域制御を行う、
処理を実行させる、
ことを特徴とするプログラム。
（付記１２）
デュアルトークンバケットのアルゴリズムである２レート３カラーマーカーに基づいて、収容しているユーザの情報端末装置から送信されたパケットに対して、受信側と送信側の両方で帯域制御を行う帯域制御装置のコンピュータに、
所定のタイミングが到来すると、ユーザごとに保証されている最小帯域幅の直前の更新後に通信を行ったユーザの最小帯域幅のみを、更新後の最小帯域幅の合計が出力回線の帯域幅を超えないように更新し、
直前のタイミングで更新した前記更新後の最小帯域幅に基づいて、受信側での帯域制御を行う、
処理を実行させる、
ことを特徴とするプログラムを記憶した記録媒体。
【符号の説明】
【０１６４】
１００      ネットワークシステム
ＮＷ１    内部ネットワーク
ＮＷ２    外部ネットワーク
１０      帯域制御装置
１１      送受信部
１２      記憶部
１２Ａ    受信キュー
１２Ｂ    送信キュー
１２Ｃ    ユーザ管理記憶部
ＩＮＦ１  ユーザ管理情報
１２Ｄ    パケット管理記憶部
ＩＮＦ２  パケット管理情報
１２Ｅ    Ａｃｔｉｖｅユーザ管理記憶部
ＩＮＦ３  Ａｃｔｉｖｅユーザ管理情報
１２Ｆ    出力ポート管理記憶部
ＩＮＦ４  出力ポート管理情報
１３      制御部
１３Ａ    第１ポリシング処理部
１３Ｂ    第２ポリシング処理部
１３Ｃ    更新処理部
２０      情報端末装置
ＲＴ      ルータ
ＳＷ      スイッチ
２０１    ＣＰＵ
２０２    ＲＡＭ
２０３    ＲＯＭ
２０４    フラッシュメモリ
２０５    回線インターフェース
２０６    読取装置
２０７    バス
２０８    記録媒体
【図１】
2016158080.tif 000003
【図２】
2016158080.tif 000004
【図３】
2016158080.tif 000005
【図４】
2016158080.tif 000006
【図５】
2016158080.tif 000007
【図６】
2016158080.tif 000008
【図７】
2016158080.tif 000009
【図８】
2016158080.tif 000010
【図９】
2016158080.tif 000011
【図１０】
2016158080.tif 000012
【図１１】
2016158080.tif 000013
【図１２】
2016158080.tif 000014
【図１３】
2016158080.tif 000015
【図１４】
2016158080.tif 000016
【図１５】
2016158080.tif 000017
【図１６】
2016158080.tif 000018
【図１７】
2016158080.tif 000019
【図１８】
2016158080.tif 000020
【図１９】
2016158080.tif 000021
【図２０】
2016158080.tif 000022