(57)【要約】【課題】  同一のグループに属する他の帯域制御装置との通過帯域の差を効果的に低減する帯域制御装置及び帯域制御方法を提供する。【解決手段】  帯域制御装置は、パケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置のグループに属し、前記複数の帯域制御装置のうち、自装置または１以上の他の帯域制御装置がパケットを通過させるたびに自装置の前記通過許容量を減算する管理部と、自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正する補正部とを有する。【選択図】図８
2015216618.tif 000002
【特許請求の範囲】
【請求項１】
パケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置のグループに属する帯域制御装置において、
前記複数の帯域制御装置のうち、自装置または１以上の他の帯域制御装置がパケットを通過させるたびに自装置の前記通過許容量を減算する管理部と、
自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正する補正部とを有することを特徴とする帯域制御装置。
【請求項２】
前記補正部は、前記通過許容量または前記閾値の補正値を、自装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量の平均値との差として算出することを特徴とする請求項１に記載の帯域制御装置。
【請求項３】
前記補正部は、前記通過許容量または前記閾値の補正値を、前回算出した補正値に、自装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量の平均値との差を加えることにより算出することを特徴とする請求項１に記載の帯域制御装置。
【請求項４】
前記補正部は、前記１以上の他の帯域制御装置のうち、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下である帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする請求項２または３に記載の帯域制御装置。
【請求項５】
前記補正部は、前記１以上の他の帯域制御装置の各々の前記通過許容量が、前記閾値または前記閾値に所定値を加算して得た値より大きい場合、現在の補正値を維持することを特徴とする請求項４に記載の帯域制御装置。
【請求項６】
前記補正部は、さらに、新たに算出した補正値が現在の補正値以上である場合、現在の補正値を維持することを特徴とする請求項５に記載の帯域制御装置。
【請求項７】
前記補正部は、前記１以上の他の帯域制御装置のうち、複数回の補正値の算出において、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下となった回数が一定の回数を上回る帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする請求項２または３に記載の帯域制御装置。
【請求項８】
前記補正部は、前記１以上の他の帯域制御装置のうち、複数回の補正値の算出において、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下となった回数が一定の回数を上回り、かつ、パケットの通過量が自装置より多い帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする請求項２または３に記載の帯域制御装置。
【請求項９】
入力されたパケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置のグループに属する帯域制御装置において、
前記複数の帯域制御装置のうち、自装置及び１以上の他の帯域制御装置のパケットの通過量を自装置の前記通過許容量から減算する管理部と、
自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの入力量に対する通過量の比率と、前記１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正する補正部とを有することを特徴とする帯域制御装置。
【請求項１０】
前記補正部は、前記通過許容量または前記閾値の補正値を、自装置のパケットの入力量に対する通過量の比率、及び前記１以上の他の帯域制御装置のパケットの入力量の合計に対する通過量の合計の比率を等しくする条件に基づいて算出することを特徴とする請求項９に記載の帯域制御装置。
【請求項１１】
前記補正部は、前記通過許容量または前記閾値の補正値を、前回算出した補正値を用いて算出することを特徴とする請求項９または１０に記載の帯域制御装置。
【請求項１２】
前記補正部は、自装置及び前記１以上の他の帯域制御装置の前記入力量を、各々のパケットの通過量及び廃棄量からそれぞれ算出することを特徴とする請求項９乃至１１の何れかに記載の帯域制御装置。
【請求項１３】
前記補正部は、自装置及び前記１以上の他の帯域制御装置の前記通過量を、各々のパケットの入力量及び廃棄量からそれぞれ算出することを特徴とする請求項９乃至１１の何れかに記載の帯域制御装置。
【請求項１４】
同一のグループに属する複数の帯域制御装置が、パケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する帯域制御方法において、
前記複数の帯域制御装置のうち、１つの装置または１以上の他の帯域制御装置がパケットを通過させるたびに前記１つの装置の前記通過許容量を減算し、
前記１つの装置の前記通過許容量または前記１つの装置の前記閾値を、前記１つの装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正することを特徴とする帯域制御方法。
【請求項１５】
同一のグループに属する複数の帯域制御装置が、各々に入力されたパケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する帯域制御方法において、
前記複数の帯域制御装置のうち、１つの帯域制御装置または１以上の他の帯域制御装置のパケットの通過量を前記１つの帯域制御装置の前記通過許容量から減算し、
前記１つの帯域制御装置の前記通過許容量または前記閾値を、前記１つの帯域制御装置のパケットの入力量に対する通過量の比率と、前記１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正することを特徴とする帯域制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、帯域制御装置及び帯域制御方法に関する。
【背景技術】
【０００２】
通信需要の増加に伴い、レイヤ２スイッチやルータなどの中継装置の性能の向上が求められている。中継装置は、受信したパケットを、パケットの宛先に応じた他装置に転送する。
【０００３】
中継装置に関し、例えば特許文献１には、他装置から入力されるトラフィックの帯域を制限するポリシング機能を改善したとする中継装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１９４７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ポリシング機能を有するポリサは、周期的に供給されるトークンを消費することでパケットを通過させ、トークンが不足する場合、パケットを廃棄することにより、中継装置に入力される帯域を制御する。ポリサは、パケットのＶＩＤ（VLAN(Virtual Local Area Network) Identifier）やＭＰＬＳ（Multi-Protocol Label Switching）ラベルなどで識別されるユーザのトラフィックごとに帯域を制御する。このため、各ポリサのトークンの供給レートは、ユーザが契約した帯域などに応じて決定される。
【０００６】
例えば、見かけ上の通信速度を向上するため、複数のリンク（物理的な通信回線）を束ねるリンクアグリゲーション（Link Aggregation）が用いられた場合、互いに独立した複数のポリサに同一ユーザのトラフィックのパケットが入力される場合がある。この場合、複数のポリサは、グループ化され、該グループに属する何れかのポリサがパケットを通過させるたびに、全てのポリサのトークンが消費される。これにより、複数のポリサにわたって入力される同一ユーザのトラフィックの合計帯域を、全体的に制限することが可能となる。なお、上記の帯域制御方法は、異なるユーザのトラフィックのパケットがそれぞれ入力される複数のポリサのグループに対して行われてもよい。
【０００７】
しかし、上記の帯域制御方法には、複数のポリサ間における通過帯域の差が大きくなるという問題が存在する。例えば、各ポリサにトークンが供給されるタイミングが、同期していない場合、パケットの入力レートが同程度であり、トークンが不足している２つのポリサのうち、トークンの供給が早い方のポリサは、全てのトークンを消費して、パケットを通過させる。
【０００８】
一方、トークンの供給が遅い方のポリサは、トークンの供給が早い方のポリサがトークンを消費することで、トークンの蓄積量が負の値になるまで減らされてしまうため、トークンが供給されても必要な量に達せず、ほとんどパケットを通過させることができない。このため、２つのポリサ間における通過帯域の差が大きくなる。
【０００９】
これに対して、上記の特許文献１には、トークン供給の時間間隔を１周期とし、パケットを通過させた周期の次の周期には、パケットを通過させないように制限することで、ポリサ間で公平にパケットを通過させる点が記載されている。しかし、上記の技術では、例えば、１個のパケットの通過も、１０００個のパケットの通過も、パケットが通過した周期として一様に判定されるため、ポリサ間において、パケットの通過機会の一定の公平性は担保されるが、通過帯域の差は効果的に低減されない。
【００１０】
また、トークンの供給タイミングを、ポリサ間で同期させることもできるが、中継装置の全体的な制御が複雑化するため、ハードウェアやソフトウェアの規模が大きくなり、コストが増加するという他の問題が生ずる。
【００１１】
仮に、ポリサ間でトークンの供給タイミングを同期させても、パケットの入力タイミングがトークンの供給タイミングに近いポリサほど、タイムリーに多くのトークンを消費するため、パケットの時間的な入力パタンに応じて、ポリサ間での通過帯域の差が大きくなる。なお、上記の問題は、中継装置に限られず、例えば波長多重伝送装置などの他種の通信装置にも同様に生じ得る。
【００１２】
そこで本件は上記の課題に鑑みてなされたものであり、同一のグループに属する他の帯域制御装置との通過帯域の差を効果的に低減する帯域制御装置及び帯域制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本明細書に記載の帯域制御装置は、パケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置のグループに属し、前記複数の帯域制御装置のうち、自装置または１以上の他の帯域制御装置がパケットを通過させるたびに自装置の前記通過許容量を減算する管理部と、自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正する補正部とを有する。
【００１４】
本明細書に記載の他の帯域制御装置は、入力されたパケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置のグループに属し、前記複数の帯域制御装置のうち、自装置及び１以上の他の帯域制御装置のパケットの通過量を自装置の前記通過許容量から減算する管理部と、自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの入力量に対する通過量の比率と、前記１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正する補正部とを有する。
【００１５】
本明細書に記載の帯域制御方法は、同一のグループに属する複数の帯域制御装置が、パケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する方法において、前記複数の帯域制御装置のうち、１つの装置または１以上の他の帯域制御装置がパケットを通過させるたびに前記１つの装置の前記通過許容量を減算し、前記１つの装置の前記通過許容量または前記１つの装置の前記閾値を、前記１つの装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正する方法である。
【００１６】
本明細書に記載の他の帯域制御方法は、同一のグループに属する複数の帯域制御装置が、各々に入力されたパケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する方法において、前記複数の帯域制御装置のうち、１つの帯域制御装置または１以上の他の帯域制御装置のパケットの通過量を前記１つの帯域制御装置の前記通過許容量から減算し、前記１つの帯域制御装置の前記通過許容量または前記閾値を、前記１つの帯域制御装置のパケットの入力量に対する通過量の比率と、前記１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正する方法である。
【発明の効果】
【００１７】
同一のグループに属する他の帯域制御装置との通過帯域の差を効果的に低減できる。
【図面の簡単な説明】
【００１８】
【図１】通信装置の一例を示す構成図である。
【図２】ネットワークインターフェースカードの機能構成一例を示す構成図である。
【図３】通信装置内のパケットの経路を示す図である。
【図４】帯域制御部の比較例を示す構成図である。
【図５】トークンの供給のタイミングが同期していないことにより生ずるポリサ間の通過帯域の差の一例を示す図である。
【図６】トークンの供給のタイミングを同期させることによるポリサ間の通過帯域の差の改善例を示す図である。
【図７】ポリサ間のパケットの入力タイミングの差により生ずるポリサ間の通過帯域の差の一例を示す図である。
【図８】帯域制御部の実施例を示す構成図である。
【図９】トークン管理テーブルの一例を示す表である。
【図１０】通過量管理テーブルの一例を示す表である。
【図１１】補正値の算出のタイミングの一例を示す図である。
【図１２】ポリサ、通過量管理テーブル、及びトークン管理テーブルの物理的な構成の一例を示す構成図である。
【図１３】ポリサ、通過量管理テーブル、及びトークン管理テーブルの物理的な構成の他例を示す構成図である。
【図１４】パケットの処理の一例を示すフローチャートである。
【図１５】通過情報の受信処理の一例を示すフローチャートである。
【図１６】トークンの供給処理の一例を示すフローチャートである。
【図１７】補正値の算出処理の一例を示すフローチャートである。
【図１８】帯域制御部の他の実施例を示す構成図である。
【図１９】帯域制御部の動作シミュレーションの条件を示す図である。
【図２０】出力レート及び補正値のシミュレーション結果を示すグラフである。
【図２１】出力レート及び補正値の他のシミュレーション結果を示すグラフである。
【図２２】同一グループ内で１つのポリサのみが補正値の算出処理を行う場合における出力レート及び補正値のシミュレーション結果の一例を示すグラフである。
【図２３】補正値の算出処理の他例を示すフローチャートである。
【図２４】同一グループ内で１つのポリサのみが補正値の算出処理を行う場合における出力レート及び補正値のシミュレーション結果の改善例を示すグラフである。
【図２５】補正値の算出処理の他例を示すフローチャートである。
【図２６】他のシミュレーションの条件を示す図である。
【図２７】補正値のシミュレーション結果を示すグラフである。
【図２８】通過量管理テーブルの他例を示す表である。
【図２９】補正値の算出処理の他例を示すフローチャートである。
【図３０】補正値の算出処理の他例を示すフローチャートである。
【図３１】通過量公平制御及び通過率公平制御の一例を示す図である。
【図３２】ポリサ間でトークンの供給のタイミングが同期している場合のトークンの蓄積量の変化の一例を示すグラフである。
【図３３】ポリサ間でトークンの供給のタイミングが同期していない場合のトークンの蓄積量の変化の一例を示すグラフである。
【図３４】通過率を制御する帯域制御部の実施例を示す構成図である。
【図３５】通過量管理テーブル及び入力量管理テーブルの一例を示す表である。
【図３６】閾値の補正前後の通過率の算出例を示す表である。
【図３７】通過量管理テーブル及び入力量管理テーブルの他例を示す表である。
【図３８】パケットの処理の他例を示すフローチャートである。
【図３９】トークンの供給処理の他例を示すフローチャートである。
【図４０】補正値の算出処理の他例を示すフローチャートである。
【図４１】通過率を制御する帯域制御部の他の実施例を示す構成図である。
【図４２】通過率を制御する帯域制御部の他の実施例を示す構成図である。
【図４３】他のシミュレーションの条件を示す図である。
【図４４】他のシミュレーション結果の出力レートを示す表である。
【発明を実施するための形態】
【００１９】
図１は、通信装置の一例を示す構成図である。通信装置は、複数のネットワークインターフェースカード９１と、２枚のスイッチカード９２と、コントロールカード９３とを有する。各カード９１〜９３は、筐体に設けられた個別のスロットに収容され、互いに電気的に接続される。なお、本明細書では、実施例の帯域制御装置を実装した通信装置として、レイヤ２スイッチやルータなどの中継装置を例に挙げるが、これに限定されず、実施例の帯域制御装置は、例えば波長多重伝送装置などの他種の通信装置にも同様に実装される。
【００２０】
通信装置は、他装置から受信したパケットを、その宛先に従って他装置に中継する。なお、本明細書において、パケットとは、伝送されるデータ（情報）の伝送単位（ＰＤＵ：Protocol Data Unit）であり、例としてイーサネット（登録商標、以下同様）フレームを挙げるが、これに限られず、ＩＰ（Internet Protocol）パケットなどの他のＰＤＵが用いられてもよい。
【００２１】
複数のネットワークインターフェースカード９１は、それぞれ、他装置との間において、パケットを送受信する。他装置としては、例えば、パーソナルコンピュータなどの端末装置、サーバ装置、及びルータが挙げられる。複数のネットワークインターフェースカード９１は、複数のポートにより光ファイバと接続され、例えば１０ＧＢＡＳＥ−ＬＲの規格に基づく通信を行う。
【００２２】
２枚のスイッチカード９２は、それぞれ、複数のネットワークインターフェースカード９１の間において、パケットを交換する。より具体的には、スイッチカード９２は、ネットワークインターフェースカード９１からパケットが入力され、パケットを、その宛先に応じたネットワークインターフェースカード９１に出力する。２枚のスイッチカード９２は、例えば、ハードウェア故障などの障害に備えて、現用系及び予備系として使用される。
【００２３】
コントロールカード９３は、複数のネットワークインターフェースカード９１及び２枚のスイッチカード９２を制御する。コントロールカード９３は、ネットワーク制御装置などと接続され、ユーザーインターフェースに関する処理、各カード９１，９２に対する設定処理、及び各カード９１，９２からの情報収集処理などを行う。コントロールカード９３は、これらの処理を実行するＣＰＵ（Central Processing Unit）などのプロセッサ９３０、及び、プロセッサ９３０を駆動するプログラムを記憶するメモリ９３１を有する。
【００２４】
図２は、ネットワークインターフェースカード９１の機能構成を示す構成図である。ネットワークインターフェースカード９１は、複数の光送受信器９１０と、ＰＨＹ／ＭＡＣ部９１１と、入力処理部９１２と、出力処理部９１３と、制御部９１４と、記憶部９１５とを有する。
【００２５】
複数の光送受信器９１０は、それぞれ、他装置から光ファイバを介して受信した光信号を電気信号に変換してＰＨＹ／ＭＡＣ部９１１に出力し、また、ＰＨＹ／ＭＡＣ部９１１から入力された電気信号を光信号に変換し、光ファイバを介して他装置に送信する。つまり、複数の光送受信器９１０は、他装置との間でパケットを送受信するための複数のポート＃１〜＃Ｎ（Ｎ：正の整数）として機能する。
【００２６】
ＰＨＹ／ＭＡＣ部９１１は、他装置とのリンクの確立処理や複数の光送受信器９１０に対するパケットの分配処理などを行う。ＰＨＹ／ＭＡＣ部９１１は、複数の光送受信器９１０から入力されたパケットを入力処理部９１２に出力し、出力処理部９１３から入力されたパケットを複数の光送受信器９１０に出力する。
【００２７】
入力処理部９１２及び出力処理部９１３は、ＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などの論理回路であり、イングレス（INGRESS）及びイーグレス（EGRESS）のパケット処理をそれぞれ行う。入力処理部９１２は、ＰＨＹ／ＭＡＣ部９１１から入力されたパケットの帯域制御処理などを行って、スイッチカード９２にパケットを出力する。
【００２８】
出力処理部９１３は、スイッチカード９２から入力されたパケットの送信レートの制御処理などを行って、ＰＨＹ／ＭＡＣ部９１１にパケットを出力する。記憶部９１５は、メモリなどの記憶手段であり、入力処理部９１２及び出力処理部９１３が処理に用いる各種のデータを記憶する。
【００２９】
制御部９１４は、コントロールカード９３と通信を行い、入力処理部９１２及び出力処理部９１３の制御を行う。制御部９１４は、ＣＰＵなどのプロセッサ及びメモリ（図示せず）を備える。制御部９１４の処理としては、例えば、入力処理部９１２及び出力処理部９１３の各種の設定処理、及び入力処理部９１２及び出力処理部９１３で検出された警報の収集処理などが挙げられる。
【００３０】
図３には、通信装置内のパケットの経路が示されている。なお、図３は、入力処理部９１２及び出力処理部９１３の構成も示す。
【００３１】
まず、パケットは、ネットワークインターフェースカード９１の入力処理部９１２に入力される。入力処理部９１２は、帯域制御部８１と、分配部８２と、複数の入力キュー８３と、出力部８４とを有する。
【００３２】
帯域制御部８１は、複数のポリサ（帯域制御装置）＃１〜＃Ｍ（Ｍ：正の整数）により、入力されるパケットのトラフィック量が所定の帯域を超えないように、所定帯域を超える分のパケットを廃棄する。複数のポリサ＃１〜＃Ｍは、それぞれ、パケットに付与されたＶＩＤやＭＰＬＳラベルなどにより識別されるユーザのトラフィックに対応して設けられている。帯域制御部８１は、ポート＃１〜＃ＮからＰＨＹ／ＭＡＣ部９１１を介して入力されたパケットのトラフィックを識別して、該当するポリサ＃１〜＃Ｍに分配する。
【００３３】
ポリサ＃１〜＃Ｍは、周期的に供給されるトークン（通過許容量）を消費することでパケットを通過させ、トークンが不足する場合、パケットを廃棄することにより、通信装置に入力される帯域を制御する。ポリサ＃１〜＃Ｍは、ユーザのトラフィックごとに帯域を制御するため、各ポリサ＃１〜＃Ｍのトークンの供給レートは、ユーザが契約した帯域などに応じて決定される。ポリサ＃１〜＃Ｍを通過したパケットは、分配部８２に入力される。
【００３４】
分配部８２は、パケットを、宛先となるネットワークインターフェースカード９１に応じて、複数の入力キュー８３に分配する。つまり、入力キュー８３は、ネットワークインターフェースカード９１ごとに設けられている。複数の入力キュー８３は、パケットを、出力部８４により読み出されるまで蓄積する。出力部８４は、複数の入力キュー８３から１つを選択して、選択した入力キュー８３からパケットを読み出して、スイッチカード９２のスイッチ部９２０に出力する。スイッチ部９２０は、入力されたパケットを宛先に応じたネットワークインターフェースカード９１の出力処理部９１３に出力する。
【００３５】
出力処理部９１３は、分配部７０と、複数のキュー７１と、読み出し処理部７２と、シェーパ（スケジューラ）７３とを有する。スイッチ部９２０から出力されたパケットは、分配部７０に入力される。分配部７０は、例えば、上記のユーザのトラフィックごとにパケットを複数のキュー７１に分配する。
【００３６】
読み出し処理部７２は、シェーパ７３からの指示に従って、複数のキュー７１からパケットを読み出す。読み出されたパケットは、ポート＃１〜＃Ｎから他装置に送信される。
【００３７】
シェーパ７３は、分配部７０から、複数のキュー７１にそれぞれ格納されたパケットの情報（パケットのデータ量など）などを取得し、取得した情報に基づいて、複数のキュー７１から、読み出し対象となるキューを読み出し処理部７２に指示する。これにより、トラフィックごとの送信レートが適切に制御される。
【００３８】
（比較例）
図４は、帯域制御部８１の比較例を示す構成図である。ポリサ＃ｉ，＃ｊ，＃ｋ（ｉ，ｊ，ｋ：正の整数）は、グループ化され、同一のユーザのトラフィックまたは異なるユーザのトラフィックが入力される。これにより、複数のポリサ＃ｉ，＃ｊ，＃ｋにわたって入力される同一ユーザのトラフィックの合計帯域、または異なるユーザのトラフィックの合計帯域が、全体的に制限される。なお、グループ化されるポリサの数に限定はない。
【００３９】
例えば、見かけ上の通信速度を向上するため、複数のリンク（物理的な通信回線）を束ねるリンクアグリゲーションが用いられた場合、ポリサ＃ｉ，＃ｊ，＃ｋには、同一ユーザのトラフィックのパケットがそれぞれ入力される。この場合、ポリサ＃ｉ，＃ｊ，＃ｋは、互いに異なるインターフェースカード９１に設けられている。
【００４０】
上述したように、ポリサ＃１〜＃Ｍは、ユーザのトラフィックごとに設けられているため、同一ユーザのトラフィックのパケットは、共通のインターフェースカード９１の複数のポート９１０からそれぞれ入力されても、同一のポリサ＃１〜＃Ｍに集まる。これに対し、同一ユーザのトラフィックのパケットが、複数のインターフェースカード９１のポート９１０からそれぞれ入力されたとき、パケットは、インターフェースカード９１ごとに処理されて、異なるインターフェースカード９１のポリサ＃ｉ，＃ｊ，＃ｋに入力される。
【００４１】
また、ポリサ＃ｉ，＃ｊ，＃ｋに、互いに異なるユーザのトラフィックのパケットがそれぞれ入力される場合、ポリサ＃ｉ，＃ｊ，＃ｋが設けられたインターフェースカード９１は、共通であっても異なっていてもよい。
【００４２】
図４は、同一グループに属するポリサ＃ｉ，＃ｊ，＃ｋのうち、ポリサ＃ｉの構成のみを示すが、他のポリサ＃ｊ，＃ｋも同様の構成を備える。ポリサ＃ｉは、ポリシング部１０と、トークンバケット１９と、通過量通知部１１とを有する。
【００４３】
トークンバケット１９は、周期的に供給されるトークン（通過許容量）を蓄積する。トークンの供給レート、つまりポリシングレート（＝１度のトークンの供給量Ｔｍ／トークンが供給される時間間隔Ｔｓ）は、入力されるトラフィックについて、ユーザが契約した帯域に応じて決定される。なお、トークンバケット１９は、トークンの蓄積量Ｔｃの管理手段として示された概念上の構成である。
【００４４】
ポリシング部１０は、入力されたパケットの通過の可否を、トークンの蓄積量Ｔｃと、所定の閾値との比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する。閾値は、限定されないが、本例では０とする。より具体的には、ポリシング部１０は、Ｔｃ＞０の場合、パケットＰ１を通過させ、Ｔｃ≦０の場合、パケットＰ２を廃棄する。トークン及び閾値は、ポリサ＃ｉ，＃ｊ，＃ｋごとの個別の値である。なお、通過したパケットＰ１は、分配部８２に出力される。
【００４５】
パケットＰ１を通過させた場合、トークンの蓄積量Ｔｃは、パケットＰ１の長さ（データ量）Ｄｉだけ消費（減算）される（つまり、Ｔｃ＝Ｔｃ−Ｄｉ）。また、通過量通知部１１は、通過したパケットＰ１の長さＤｉを検出し、ポリサ＃ｉと同一グループに属する他のポリサ＃ｊ，＃ｋに通知する。他のポリサ＃ｊ，＃ｋも、入力されたパケットをそれぞれ通過させた場合、通過量通知部１１からパケットの長さＤｊ，Ｄｋをポリサ＃ｉに通知する。
【００４６】
他のポリサ＃ｊ、＃ｋからパケットの長さＤｊ，Ｄｋが通知された場合、トークンの蓄積量Ｔｃは、通知されたパケットの長さＤｊ，Ｄｋだけ消費される（Ｔｃ＝Ｔｃ−（Ｄｊ  or  Ｄｋ））。すなわち、同一グループに属する全てのポリサ＃ｉ，＃ｊ，＃ｋにおいて、トークンの蓄積量Ｔｃは、当該ポリサ＃ｉ（自装置）、または他のポリサ＃ｊ，＃ｋ（他の帯域制御装置）がパケットを通過させるたびに減算される。これにより、複数のポリサ＃ｉ，＃ｊ，＃ｋにわたって入力される同一ユーザのトラフィックの合計帯域を、全体的に制限することが可能となる。
【００４７】
しかし、上記の帯域制御方法には、以下に述べるように、ポリサ＃ｉ，＃ｊ，＃ｋ間における通過帯域の差が大きくなるという問題が存在する。
【００４８】
図５には、トークンの供給のタイミングが同期していないことにより生ずるポリサ＃ｉ，＃ｊ間の通過帯域の差の一例が示されている。図５において、横軸は時間ｔを示し、縦軸はトークンの蓄積量Ｔｃを示す。
【００４９】
また、横軸に沿って示された「パケット」について、ハッチングされた矩形枠は、ポリサ＃ｉ，＃ｊにより廃棄されたパケットを示し、ハッチングされていない矩形枠は、ポリサ＃ｉ，＃ｊを通過したパケットを示す。また、ポリサ＃ｉからポリサ＃ｊに延びる矢印は、ポリサ＃ｉからポリサ＃ｊへのパケットの長さＤｉの通知を示す。
【００５０】
本例において、各ポリサ＃ｉ，＃ｊにトークンがそれぞれ供給されるタイミングＴｉ，Ｔｊは、同期していない。つまり、ポリサ＃ｉ，＃ｊ間において、トークンの供給の時間間隔Ｔｓは同一であるが、トークンの供給タイミングＴｉ，Ｔｊは、一致せず、ずれている。また、ポリサ＃ｉ，＃ｊのパケットの入力レートは、同程度とする。
【００５１】
最初（時間ｔ＝０）、各ポリサ＃ｉ，＃ｊは、ともにトークンの蓄積量Ｔｃが不足している（Ｔｃ＝０）ため、パケットを廃棄する。その後、ポリサ＃ｉは、他方のポリサ＃ｊより先にトークンが供給されるため、パケットを通過させることができる。つまり、トークンが不足している２つのポリサ＃ｉ，＃ｊのうち、トークンの供給が早い方のポリサ＃ｉは、全てのトークンを消費して、パケットを通過させる。
【００５２】
一方、トークンの供給が遅い方のポリサ＃ｊは、他方のポリサ＃ｉがパケットを通過させるたびに、ポリサ＃ｉから、通過したパケットの長さＤｉが通知され、自己のトークンの蓄積量Ｔｃから、通知されたパケットの長さＤｉが減算される。これにより、ポリサ＃ｊのトークンの蓄積量Ｔｃは、０から負の値（マイナス値）になる。
【００５３】
したがって、ポリサ＃ｊのトークンの蓄積量Ｔｃは、トークンが供給されても、負の値から０になるだけで、パケットを通過させるため閾値（つまり０）を上回ることができない。これにより、ポリサ＃ｊは、トークンの供給後も、パケットを廃棄し続ける。
【００５４】
つまり、トークンの供給が遅い方のポリサ＃ｊは、トークンの供給が早い方のポリサ＃ｉがトークンを消費することで、トークンの蓄積量Ｔｃが負の値になるまで減らされてしまう。このため、トークンの供給が遅い方のポリサ＃ｊは、トークンが供給されても、トークンの蓄積量Ｔｃが必要な量（閾値より大きい値）に達せず、ほとんどパケットを通過させることができない。
【００５５】
このようにして、２つのポリサ＃ｉ，＃ｊ間における通過帯域の差が大きくなる。なお、本例では、ポリサ＃ｉ，＃ｊ間の通過帯域を挙げたが、他のポリサ＃ｉ，＃ｊ，＃ｋ間においても、同様に通過帯域の差が生ずる。
【００５６】
この問題に対して、上記の特許文献１の開示技術を用いた場合、上述したように、ポリサ＃ｉ，＃ｊ間において、パケットの通過機会の一定の公平性は担保できるが、通過帯域の差は効果的に低減されない。しかし、図５に例示された条件下において、各ポリサ＃ｉ，＃ｊのトークンの供給タイミングＴｉ，Ｔｊを同期（一致）させれば、ポリサ＃ｉ，＃ｊ間の通過帯域の差を低減しうる。
【００５７】
図６には、トークンの供給のタイミングＴｉ，Ｔｊを同期させることによるポリサ＃ｉ，＃ｊ間の通過帯域の差の改善例が示されている。本例では、各ポリサ＃ｉ，＃ｊのトークンの供給のタイミングＴｉ，Ｔｊが同期しているため、ポリサ＃ｉ，＃ｊは、トークンが供給されると、ともに自己のトークンを消費して、パケットを通過させることができる。このとき、ポリサ＃ｉ，＃ｊは、通過させたパケットの長さＤｉ，Ｄｊを互いに通知するため、トークンの蓄積量Ｔｃが、図５の例と比較すると、２倍の速さで減少する。
【００５８】
しかし、ポリサ＃ｉ，＃ｊは、同程度のレートでパケットを通過させることができるので、図５の例で述べたポリサ＃ｉ，＃ｊ間の通過帯域の差は低減されうる。もっとも、トークンの供給タイミングを、ポリサ＃ｉ，＃ｊ間で同期させる場合、上述したように、通信装置の全体的な制御が複雑化するため、ハードウェアやソフトウェアの規模が大きくなり、コストが増加する。
【００５９】
また、仮に、ポリサ＃ｉ，＃ｊのトークンの供給タイミングＴｉ，Ｔｊを同期させても、以下に述べるように、ポリサ＃ｉ，＃ｊ間でパケットの入力タイミングのばらつきが大きい場合、通過帯域の差が大きくなる。
【００６０】
図７には、ポリサ＃ｉ，＃ｊ間のパケットの入力タイミングの差により生ずるポリサ＃ｉ，＃ｊ間の通過帯域の差の一例が示されている。本例では、ポリサ＃ｉ，＃ｊのパケットの入力レートは同程度であるが、ポリサ＃ｉ，＃ｊ間のパケットの入力タイミングのばらつきが大きい。
【００６１】
より具体的には、各ポリサ＃ｉ，＃ｊには、バーストトラフィックのように、パケットが集中的に入力される時間帯と、パケットが全く入力されない時間帯とが存在する。そして、上記の２つの時間帯は、ポリサ＃ｉ，＃ｊ間で互い違いとなるように到来する。つまり、ポリサ＃ｉ，＃ｊのうち、一方のポリサにパケットが入力されているとき、他方のポリサにはパケットが入力されていない。
【００６２】
本例では、パケットの入力タイミングがトークンの供給タイミングＴｉに近いポリサ＃ｉは、タイムリーにトークンを消費して、パケットを通過させることができる。一方、パケットの入力タイミングがトークンの供給タイミングＴｊから離れているポリサ＃ｊは、他方のポリサ＃ｉのトークンの供給タイミングＴｉでは通過させるパケットがない。
【００６３】
しかし、ポリサ＃ｊにパケットが入力されたときには、ポリサ＃ｊのトークンは、他方のポリサ＃ｉにより消費されてしまっているので、ポリサ＃ｊは、パケットをほとんど通過させることができない。つまり、パケットの入力タイミングがトークンの供給タイミングに近いポリサ＃ｉほど、タイムリーに多くのトークンを消費するため、パケットの時間的な入力パタンに応じて、ポリサ＃ｉ，＃ｊ間での通過帯域の差が大きくなる。
【００６４】
（実施例）
そこで、実施例では、同一グループ内の各ポリサ＃ｉ，＃ｊ，＃ｋにおいて、パケットの通過可否の判定に用いられるトークンの閾値を、他のポリサとのパケットの通過量の比較結果に基づいて補正することで、ポリサ＃ｉ，＃ｊ，＃ｋ間の通過帯域の差を低減する。
【００６５】
図８は、帯域制御部８１の実施例を示す構成図である。図８には、同一グループ内のポリサ＃ｉ，＃ｊ，＃ｋのうち、ポリサ＃ｉの構成のみが示されているが、他のポリサ＃ｊ，＃ｋも同様の構成を備える。
【００６６】
ポリサ＃ｉは、ポリシング部１０ａと、通過量通知部１１ａと、トークンバケット１９ａとして機能するトークン管理部（管理部）１２と、通過量管理部１３と、補正部１４ａとを有する。トークン管理部１２は、記憶部９１５に格納されたトークン管理テーブル２０により、トークンの蓄積量Ｔｃなどを管理する。
【００６７】
図９には、トークン管理テーブル２０の一例が示されている。トークン管理テーブル２０には、「ポリサ番号」、「グループ番号」、「最大蓄積量［Ｂｙｔｅ］」、「供給量（Ｔｍ）［Ｂｙｔｅ］」、「蓄積量（Ｔｃ）［Ｂｙｔｅ］」、及び「補正値（±Δｔｈ）［Ｂｙｔｅ］」が登録されている。なお、トークン管理テーブル２０は、各ポリサ＃１〜＃Ｍ間において共有される。
【００６８】
「ポリサ番号」は、各ポリサを識別するための番号（＃１〜＃Ｍ）であり、「グループ番号」は、当該ポリサが属するグループを識別するための番号である。本例では、ポリサ＃１，＃２は、ともにグループ番号が「１」であるため、同一のグループに属する。
【００６９】
「蓄積量（Ｔｃ）［Ｂｙｔｅ］」は、トークンバケット１９ａ内のトークンの蓄積量Ｔｃを、Ｂｙｔｅ単位で示し、「最大蓄積量［Ｂｙｔｅ］」は、トークンバケット１９ａ内に蓄積可能なトークンの最大量を、Ｂｙｔｅ単位で示す。蓄積量Ｔｃは、最大蓄積量を超えないように制限される。「供給量（Ｔｍ）［Ｂｙｔｅ］」は、時間間隔Ｔｓで周期的に供給されるトークンの量Ｔｍを、Ｂｙｔｅ単位で示す。
【００７０】
トークンの最大蓄積量及び供給量は、同一グループ内の各ポリサ間で共通である。例えば、同一グループのポリサ＃１，＃２は、ともに、トークンの最大蓄積量及び供給量がそれぞれ１００００（Ｂｙｔｅ）及び３０００（Ｂｙｔｅ）である。トークンの最大蓄積量及び供給量は、それぞれ、例えばコントロールカード９３から予め設定される。なお、トークンが供給される時間間隔Ｔｓは、同一グループ内のポリサ間で共通であるが、トークンの供給タイミング（Ｔｉ）は、同一グループ内のポリサ間で同期していない。
【００７１】
「補正値（±Δｔｈ）［Ｂｙｔｅ］」は、補正部１４ａが算出したトークンバケット１９ａの閾値の補正値である。本例では、上記の比較例と同様に、トークンバケット１９ａの補正前の閾値を０とするため、補正値自体が閾値に等しくなる。なお、補正値の算出手法については後述する。
【００７２】
トークン管理部１２は、トークンの供給タイミングＴｉが到来すると、トークン管理テーブル２０から蓄積量Ｔｃ及び供給量Ｔｍを取得し、蓄積量Ｔｃに供給量Ｔｍを加算することにより、トークン管理テーブル２０内の蓄積量Ｔｃを更新する。また、トークン管理部１２は、ポリシング部１０ａから、通過させたパケットの長さＤｉを取得し、トークン管理テーブル２０から取得した蓄積量Ｔｃから、パケットの長さＤｉを減算することにより、トークン管理テーブル２０内の蓄積量Ｔｃを更新する。
【００７３】
ポリシング部１０ａは、トークン管理部１２を介して、トークン管理テーブル２０から、トークンの蓄積量Ｔｃ及び補正値を取得する。ポリシング部１０ａは、パケットの通過の可否を、トークンの蓄積量Ｔｃと、補正値により補正された閾値との比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する。より具体的には、ポリシング部１０ａは、Ｔｃ＞補正値の場合、パケットＰ１を通過させ、Ｔｃ≦補正値の場合、パケットＰ２を廃棄する。なお、通過したパケットＰ１は、分配部８２に出力される。
【００７４】
パケットＰ１を通過させた場合、トークンの蓄積量Ｔｃは、パケットＰ１の長さ（データ量）Ｄｉだけ消費（減算）される（Ｔｃ＝Ｔｃ−Ｄｉ）。また、通過量通知部１１ａは、通過したパケットＰ１の長さＤｉを検出し、ポリサ＃ｉと同一グループに属する他のポリサ＃ｊ，＃ｋに通知する。通過量通知部１１ａは、パケットＰ１の長さＤｉとともに、ポリサ＃ｉの閾値の補正可否を示す補正可否フラグを、通過情報として、同一グループ内の他のポリサ＃ｊ，＃ｋに送信する。
【００７５】
また、他のポリサ＃ｊ，＃ｋも、入力されたパケットをそれぞれ通過させた場合、通過量通知部１１ａからパケットの長さＤｊ，Ｄｋを、補正可否フラグとともに通過情報としてポリサ＃ｉにそれぞれ通知する。トークン管理部１２は、他のポリサ＃ｊ，＃ｋから、パケットの長さＤｊ，Ｄｋがそれぞれ通知された場合、トークン管理テーブル２０から取得した蓄積量Ｔｃから、パケットの長さＤｊ，Ｄｋを減算することにより、トークン管理テーブル２０内の蓄積量Ｔｃを更新する。つまり、トークンの蓄積量Ｔｃは、通知されたパケットの長さＤｊ，Ｄｋだけ消費される（Ｔｃ＝Ｔｃ−（Ｄｊ  or  Ｄｋ））。
【００７６】
したがって、トークン管理部１２は、上記の比較例と同様に、同一グループに属するポリサ＃ｉ，＃ｊ，＃ｋのうち、当該ポリサ＃ｉ（自装置）、または他のポリサ＃ｊ，＃ｋ（他の帯域制御装置）がパケットを通過させるたびに、ポリサ＃ｉのトークンの蓄積量Ｔｃを減算する。これにより、複数のポリサ＃ｉ，＃ｊ，＃ｋにわたって入力される同一ユーザのトラフィックの合計帯域、または異なるユーザのトラフィックの合計帯域を、全体的に制限することが可能となる。
【００７７】
通過量管理部１３は、他のポリサ＃ｊ，＃ｋから通知されたパケットの長さＤｊ，Ｄｋに基づいて、他のポリサ＃ｊ，＃ｋのパケットの通過量を、通過量管理テーブル２１により管理する。また、通過量通知部１１ａは、ポリサ＃ｉのパケットの長さＤｉに基づいて、通過量管理テーブル２１に登録されたポリサ＃ｉのパケットの通過量を更新する。
【００７８】
図１０には、通過量管理テーブル２１の一例が示されている。通過量管理テーブル２１には、「ポリサ番号」、「グループ内ポリサ番号」、「通過量［Ｂｙｔｅ］」、及び「補正可否フラグ」が登録されている。なお、通過量管理テーブル２１は、複数のポリサ＃１〜＃Ｍ間において共有される。
【００７９】
「ポリサ番号」は、ポリサを識別するための番号（＃１〜＃Ｍ）を示し、「グループ内ポリサ番号」は、当該ポリサと同一グループに属する全てのポリサのポリサ番号を示す。例えば、ポリサ番号が「１」の欄には、グループ内ポリサ番号として、「１」、「２」「１５」、及び「３７」が登録されているので、ポリサ＃１と同一グループに属するポリサは、ポリサ＃２，＃１５，＃３７である。
【００８０】
また、通過量管理テーブル２１は、「ポリサ番号」により、ポリサ＃１〜＃Ｍごとに使用される情報を区別する。つまり、ポリサ＃１〜＃Ｍの通過量管理部１３及び通過量通知部１１ａは、ポリサ番号「１」〜「Ｍ」の欄にそれぞれアクセスする。なお、各「ポリサ番号」の「グループ内ポリサ番号」欄の最上段には、当該ポリサ番号が登録され、該「グループ内ポリサ番号」欄の２段目以下には、同一グループに属する他のポリサ番号が登録されている。
【００８１】
「通過量［Ｂｙｔｅ］」は、グループ内ポリサ番号が示す各ポリサを一定期間内に通過したパケットの長さ（データ量）の合計を、Ｂｙｔｅ単位で示す。例えば、ポリサ＃１が一定期間内に累計したポリサ＃１，＃２，＃１５，＃３７のパケットの通過量は、それぞれ、３５００（Ｂｙｔｅ）、７２００（Ｂｙｔｅ）、５００（Ｂｙｔｅ）、２８００（Ｂｙｔｅ）である。また、ポリサ＃２が一定期間内に累計したポリサ＃２，＃１，＃１５，＃３７のパケットの通過量は、それぞれ、６０００（Ｂｙｔｅ）、３０００（Ｂｙｔｅ）、３００（Ｂｙｔｅ）、１０００（Ｂｙｔｅ）である。
【００８２】
このように、ポリサ＃１，＃２が累計したポリサ＃１，＃２，＃１５，＃３７のパケットの通過量は、相違する。これは、ポリサ＃１，＃２の通過量の累計期間の開始タイミング及び終了タイミングが相違するからである。つまり、本実施例において、各ポリサ＃１〜＃Ｍの通過量の累計期間は、トークン供給の時間間隔Ｔｓに一致しており、ポリサ間でトークンの供給タイミングは、同期していないため、通過量の累計期間の開始タイミング及び終了タイミングが相違する。なお、各ポリサ＃１〜＃Ｍの通過量の累計期間は、これに限定されず、トークンの供給の時間間隔Ｔｓとは無関係に設定されてもよい。
【００８３】
ポリサ＃１〜＃Ｍの通過量通知部１１ａは、ポリサ＃１〜＃Ｍをパケットが通過するたびに、ポリサ番号＃１〜＃Ｍ及びグループ内ポリサ番号＃１〜＃Ｍの通過量を、該通過量に、通過したパケットの長さ（Ｄｉ）を加算することにより、それぞれ更新する。例えば、ポリサ＃１の通過量通知部１１ａは、ポリサ番号「１」の欄内において、グループ内ポリサ番号「１」の通過量を更新する。また、ポリサ＃２の通過量通知部１１ａは、ポリサ番号「２」の欄内において、グループ内ポリサ番号「２」の通過量を更新する。
【００８４】
また、ポリサ＃１〜＃Ｍの通過量管理部１３は、同一グループに属する他のポリサから、該ポリサを通過したパケットの長さＤｊ，Ｄｋが通知されるたびに、ポリサ番号＃１〜＃Ｍの当該グループ内ポリサ番号＃１〜＃Ｍの通過量をそれぞれ更新する。更新は、該通過量に、他のポリサから通知されたパケットの長さＤｊ，Ｄｋを加算することにより行われる。
【００８５】
例えば、ポリサ＃１の通過量管理部１３は、同一グループに属する他のポリサ＃２からパケットの長さが通知された場合、ポリサ番号「１」の欄内において、グループ内ポリサ番号「２」の通過量を更新する。また、ポリサ＃２の通過量管理部１３は、同一グループに属する他のポリサ＃１からパケットの長さが通知された場合、ポリサ番号「２」の欄内において、グループ内ポリサ番号「１」の通過量を更新する。
【００８６】
このように、各ポリサ＃１〜＃Ｍの通過量通知部１１ａは、当該ポリサが属するグループ内の全てのポリサのうち、当該ポリサのパケットの通過量を累計する。また、各ポリサ＃１〜＃Ｍの通過量管理部１３は、当該ポリサが属するグループ内の全てのポリサのうち、他のポリサのパケットの通過量を累計する。各ポリサ＃１〜＃Ｍの全てのグループ内ポリサ番号の通過量は、該ポリサ＃１〜＃Ｍのトークンの供給タイミング（Ｔｉ）が到来したときに、補正部１４ａにより０（Ｂｙｔｅ）にクリアされる。
【００８７】
また、「補正可否フラグ」は、グループ内ポリサ番号が示すポリサが、補正部１４ａによる補正対象である（「１」）か否か（「０」）を示す。例えば、同一グループに属するポリサ＃１，＃２，＃１５，＃３７のうち、ポリサ＃１，＃２，＃３７は、補正可否フラグが「１」であるため、補正対象であり、ポリサ＃１５は、補正可否フラグが「０」であるため、補正対象ではない。補正部１４ａは、後述するように、補正可否フラグを参照することにより、補正値の算出処理の実行の可否、及び、補正値の算出処理における他の各ポリサの通過量の使用の可否を判定する。
【００８８】
再び図８を参照すると、補正部１４ａは、当該ポリサ＃ｉのパケットの通過量を、同一グループに属する他のポリサ＃ｊ，＃ｋのパケットの通過量と比較し、該比較結果に基づいて当該ポリサ＃ｉの閾値を補正する。補正部１４ａは、当該ポリサ＃ｉのパケットの通過量がグループ内で相対的に多ければ、トークンバケット１９ａの底（＝閾値）を上げ（＋Δｔｈ）、ポリサ＃ｉのパケットの通過量がグループ内で相対的に少なければ、トークンバケット１９ａの底を下げる（−Δｔｈ）。
【００８９】
つまり、補正部１４ａは、当該ポリサ＃ｉ（自装置）の閾値を、ポリサ＃ｉのパケットの通過量と、他のポリサ＃ｊ，＃ｋ（他の帯域制御装置）のパケットの通過量との比較結果に基づいて補正する。補正部１４ａは、補正値（±Δｔｈ）をトークン管理部１２に出力することで、トークン管理テーブル２０に登録する。ポリシング部１０ａは、登録された補正値（±Δｔｈ）を用いて、パケットの通過の可否を判定する。なお、本例では、閾値を０としたため、補正値は閾値と等しい（０±Δｔｈ＝±Δｔｈ）。
【００９０】
これにより、同一グループに属するポリサ＃ｉ，＃ｊ，＃ｋのうち、パケットの通過量が多いポリサは、パケットを通過させにくくなり、パケットの通過量が少ないポリサは、パケットを通過させやすくなる。したがって、同一グループに属するポリサ＃ｉ，＃ｊ，＃ｋのパケットの通過量が平均化されることにより、ポリサ＃ｉ，＃ｊ，＃ｋ間において通過帯域の差が低減される。本例では、各ポリサ＃ｉは、同一グループに属する他のポリサ＃ｊ，＃ｋとの通過帯域の差を低減する。
【００９１】
より具体的には、補正部１４ａは、通過量管理テーブル２１に通過量情報を要求して取得する。通過量情報には、当該ポリサ＃ｉのパケットの通過量（図１０の「グループ内ポリサ番号」欄の最上段の通過量）と、ポリサ＃ｉと同一グループに属する他のポリサ＃ｊ，＃ｋのパケットの通過量（「グループ内ポリサ番号」欄の二段目以降の通過量）とが含まれる。
【００９２】
補正部１４ａは、取得した通過量情報に基づいて補正値（±Δｔｈ）を算出する。図１１には、補正値の算出のタイミングの一例が示されている。図１１は、一例として、ポリサ＃１，＃２の補正値の算出のタイミングを示す。なお、図１１において、横軸は、時間を示す。
【００９３】
ポリサ＃１，＃２の補正部１４ａは、トークンの供給タイミングＴ１，Ｔ２に同期して、補正値を算出する。このため、ポリサ＃１，＃２は、同一グループに属していても、補正値の算出タイミングが異なる。
【００９４】
ポリサ＃１，＃２は、トークンが供給された後、補正値を算出し、通過量管理テーブル２１内の当該ポリサ番号の全ての通過量を０にクリアする。つまり、補正値は、トークン供給の時間間隔Ｔｓごとに累計された通過量に基づいて算出される。以下に補正値の算出手法について述べる。
【００９５】
補正部１４ａは、ポリサ＃ｉと同一グループに属する他のポリサ＃ｊ，＃ｋのパケットの通過量の平均値Ｘａを算出する。補正部１４ａは、当該ポリサ＃ｉのパケットの通過量Ｘと、算出した平均値Ｘａとの差分に基づいて補正値（±Δｔｈ）を算出する。
【００９６】
±Δｔｈ＝±Δｔｈ（ｐｒｅ）＋Ｘ−Ｘａ  ・・・（１）
【００９７】
補正部１４ａは、例えば、上記の式（１）に従って補正値（±Δｔｈ）を算出する。ここで、式（１）内の「±Δｔｈ（ｐｒｅ）」は、トークン管理テーブル２０から取得した補正値（図９参照）、つまり前回算出された補正値である。補正部１４ａは、補正値を、前回算出した補正値に、当該ポリサ＃ｉ（自装置）のパケットの通過量Ｘと、同一グループに属する他のポリサ＃ｊ，＃ｋ（他の帯域制御装置）のパケットの通過量の平均値Ｘａとの差を加えることで算出する。
【００９８】
式（１）を用いた場合、補正値は、前回の算出処理で得た補正値をベースとして算出される。このため、補正部１４ａは、算出処理の１区間内（つまり図１１の時間間隔Ｔｓ）だけでは、適切な補正値を算出できない場合でも、次の区間以降の算出処理に、前回算出した補正値を用いることで、長期にわたり累計された通過量に基づき適切な補正値を算出できる。
【００９９】
したがって、式（１）に基づく補正値の算出手法によると、例えば、パケットの入力タイミングにばらつきがあるバーストトラフィックがポリサに入力される場合に、高精度な補正値を得ることができる。
【０１００】
±Δｔｈ＝Ｘ−Ｘａ  ・・・（２）
【０１０１】
また、補正部１４ａは、上記の式（２）に従って補正値（±Δｔｈ）を算出してもよい。この場合、補正部１４ａは、補正値を、当該ポリサ＃ｉ（自装置）のパケットの通過量Ｘと、同一グループに属する他のポリサ＃ｊ，＃ｋ（他の帯域制御装置）のパケットの通過量の平均値Ｘａとの差として算出する。
【０１０２】
式（２）を用いた場合、式（１）を用いた場合とは異なり、補正値は、算出処理の１区間ごとに独立して算出される。このため、補正部１４ａは、短期間に累計された通過量に基づいて、即時に適切な補正値を算出できる。
【０１０３】
したがって、式（２）に基づく補正値の算出手法によると、例えば、映像や音楽の配信データのように、パケットの入力タイミングにばらつきが少ないトラフィックがポリサに入力される場合に、高精度な補正値を得ることができる。
【０１０４】
また、補正部１４ａは、上記の補正可否フラグ（図１０参照）に従って、当該ポリサ＃ｉの補正値の算出の可否、または当該ポリサ＃ｉと同一グループに属する他のポリサ＃ｊ，＃ｋのパケットの通過量を、補正値の算出に用いるか否かを判定してもよい。
【０１０５】
この場合、補正部１４ａは、グループ内ポリサ番号の当該ポリサ＃ｉの補正可否フラグが「１」である場合、補正値を算出し、補正可否フラグが「０」である場合、補正値を算出しない。また、補正部１４ａは、グループ内ポリサ番号の他のポリサ＃ｊ，＃ｋの補正可否フラグが「１」である場合、該ポリサのパケットの通過量を補正値の算出に使用し、補正可否フラグが「０」である場合、該ポリサの通過量を補正値の算出に使用しない。
【０１０６】
補正部１４ａは、当該ポリサ＃ｉの補正可否フラグを、トークンの蓄積量Ｔｃが閾値以下である場合、「１」にし、トークンの蓄積量Ｔｃが閾値より大きい場合、「０」にする。つまり、補正部１４ａは、同一グループに属する他のポリサ＃ｉ，＃ｊ，＃ｋのうち、トークンの蓄積量Ｔｃが、閾値以下であるポリサのパケットの通過量だけの平均値Ｘａを算出する。これは、パケットの入力レートが低いポリサのパケットの通過量を補正値の算出に用いた場合、パケットの入力レートが高い他の各ポリサのパケットの通過帯域を、必要以上に低下させうるからである。
【０１０７】
例えば、ポリサ＃１，＃２，＃１５，＃３７の通過帯域の合計を１０（Ｍｂｐｓ）に制限する場合、ポリサ＃１５の入力レートを１（Ｍｂｐｓ）とすると、理想的な帯域制御では、残りの９（Ｍｂｐｓ）をポリサ＃１，＃２，＃３７に、３（Ｍｂｐｓ）ずつ均等に割り当てる。つまり、ポリサ＃１，＃２，＃３７のパケットの通過帯域が、それぞれ、３（Ｍｂｐｓ）に収束するように、補正値の算出がなされる。
【０１０８】
しかし、補正値の算出にポリサ＃１５のパケットの通過量を用いると、ポリサ＃１，＃２，＃３７のパケットの通過帯域は、それぞれ、他のポリサのパケットの通過量の平均値に基づき、２．３（Ｍｂｐｓ）（＝（３＋３＋１）／３）に収束するように制御される。また、ポリサ＃１５は、パケットの通過量が常に他のポリサ＃１，＃２，＃３７のパケットの通過量の平均値以下となることにより、補正値の低下が継続しうるため、適切な帯域制御が行われない。一方で、ポリサ＃１５は、パケットの入力レートが低いため、トークンの蓄積量Ｔｃを全て消費する前にトークンが供給され、トークンが不足しにくい。
【０１０９】
そこで、上述したように、トークンの蓄積量Ｔｃが、閾値より多いポリサのパケットの通過量を、補正値の算出に用いないことで、不適切な帯域制御が防止される。上記の例では、図１０に示されるように、補正部１４ａは、グループ内ポリサ番号が「１５」の補正可否フラグを「０」にすることにより、ポリサ＃１５のパケットの通過量を補正値の算出に用いない。
【０１１０】
補正部１４ａは、パケットが通過するたびに、トークンの蓄積量Ｔｃと閾値を比較し、比較結果に応じて、通過量管理テーブル２１の当該ポリサ番号の補正可否フラグを更新する。例えば、ポリサ＃１の補正部１４ａは、グループ内ポリサ番号「１」の欄内において、ポリサ番号「１」の補正可否フラグを更新する。補正可否フラグは、パケットの通過後に更新されたトークンの蓄積量Ｔｃが、閾値以下である場合、「１」に更新され、閾値より大きい場合、「０」に更新される。
【０１１１】
本例において、補正可否フラグは、トークンの蓄積量Ｔｃと閾値の比較結果に基づいて決定されるが、補正可否の判定基準を調整できるように、トークンの蓄積量Ｔｃと、閾値に所定値を加算して得た値との比較結果に基づいて決定されてもよい。つまり、補正部１４ａは、同一グループに属する他のポリサ＃ｊ，＃ｋ（他の帯域制御装置）のうち、トークンの蓄積量Ｔｃが閾値以下、または閾値に所定値を加算して得た値以下であるポリサのパケットの通過量の平均値Ｘａを算出する。
【０１１２】
また、補正部１４ａは、通過量通知部１１ａに補正可否フラグを出力する。通過量通知部１１ａは、補正可否フラグを、パケットの長さＤｉとともに通過情報として、同一グループに属する他のポリサ＃ｊ，＃ｋに送信する。他のポリサ＃ｊ，＃ｋも、同様に、補正可否フラグ及びパケットの長さＤｊ，Ｄｋを含む通過情報を、ポリサ＃ｉに送信する。
【０１１３】
通過量管理部１３は、同一グループに属する他のポリサ＃ｊ，＃ｋから通過情報を受信すると、通過情報内の補正可否フラグを、通過量管理テーブル２１に登録する。例えば、ポリサ＃１の通過量管理部１３は、ポリサ＃２から通過情報を受信した場合、通過情報内の補正可否フラグを、ポリサ番号「１」の欄内のグループ内ポリサ番号「２」に登録する。通過量管理テーブル２１内の補正可否フラグは、補正部１４ａが補正値を算出するときに読み出されて使用される。次に、実施例の帯域制御部の物理的な構成を述べる。
【０１１４】
図１２は、ポリサ＃１〜＃Ｍ、通過量管理テーブル２１、及びトークン管理テーブル２０の物理的な構成の一例を示す構成図である。各ポリサ＃１〜＃Ｍは、例えばＦＰＧＡやＣＰＵのような物理的なポリシング回路内の複数の領域に形成され、通過量管理テーブル２１及びトークン管理テーブル２０は、例えば記憶部９１５（図２参照）のような物理的なメモリ内の複数の領域に形成されている。
【０１１５】
各ポリサ＃１〜＃Ｍは、バス６０を介して通過量管理テーブル２１及びトークン管理テーブル２０にアクセスすることにより、ポリサ＃１〜＃Ｍに関する情報を取得または更新する。また、ポリサ＃１〜＃Ｍは、バス６１を介して互いに通過情報を送受信する。
【０１１６】
また、図１３は、ポリサ＃１〜＃Ｍ、通過量管理テーブル２１、及びトークン管理テーブル２０の物理的な構成の他例を示す構成図である。本例において、ポリサ＃１〜＃Ｍは、２つの物理的なポリシング回路＃１，＃２に分かれて形成されている。つまり、ポリサ＃１〜＃ｍ（ｍ：正の整数）は、物理的なポリシング回路＃１の複数の領域に形成され、ポリサ＃（ｍ＋１）〜＃Ｍは、物理的なポリシング回路＃２の複数の領域に形成されている。
【０１１７】
一方、通過量管理テーブル２１及びトークン管理テーブル２０も、２つの物理的なメモリ＃１，＃２に分かれて形成されている。つまり、物理的なメモリ＃１内の複数の領域には、ポリサ＃１〜＃ｍに関する情報が登録された通過量管理テーブル２１及びトークン管理テーブル２０が形成されている。また、物理的なメモリ＃２内の複数の領域には、ポリサ＃（ｍ＋１）〜＃Ｍに関する情報が登録された通過量管理テーブル２１及びトークン管理テーブル２０が形成されている。
【０１１８】
物理的なポリシング回路＃１内の各ポリサ＃１〜＃ｍは、バス６０ａを介して、物理的なメモリ＃１内の通過量管理テーブル２１及びトークン管理テーブル２０にアクセスすることにより、ポリサ＃１〜＃ｍに関する情報を取得または更新する。また、物理的なポリシング回路＃２内の各ポリサ＃（ｍ＋１）〜＃Ｍは、バス６０ｂを介して、物理的なメモリ＃２内の通過量管理テーブル２１及びトークン管理テーブル２０にアクセスすることにより、ポリサ＃（ｍ＋１）〜＃Ｍに関する情報を取得または更新する。また、ポリサ＃１〜＃Ｍは、バス６１ａを介して互いに通過情報を送受信する。
【０１１９】
上記の物理的な構成は、例えば、物理的なポリシング回路＃１，＃２及び物理的なメモリ＃１，＃２が、２つのネットワークインターフェースカード９１にそれぞれ実装されている場合に適用される。上記の物理的な構成によれば、２つの異なるネットワークインターフェースカード９１内のポリサ同士（例えばポリサ＃１、＃Ｍ）をグループ化して、上述した帯域制御方法を行うことが可能である。
【０１２０】
次に、実施例の帯域制御方法における各処理を説明する。
【０１２１】
図１４は、パケットの処理の一例を示すフローチャートである。まず、トークン管理部１２は、パケットが入力されると、パケットの長さＤｉを取得する（ステップＳｔ１）。
【０１２２】
次に、ポリシング部１０ａは、トークン管理テーブル２０からトークンの蓄積量Ｔｃ及び補正値（±Δｔｈ）を取得する（ステップＳｔ２）。次に、ポリシング部１０ａは、トークンの蓄積量Ｔｃと補正値（＝補正後の閾値）を比較する（ステップＳｔ３）。トークンの蓄積量Ｔｃが、補正値より多い場合（ステップＳｔ３のＹｅｓ）、ポリシング部１０ａは、入力されたパケットを通過させる（ステップＳｔ４）。
【０１２３】
次に、通過量通知部１１ａは、通過量管理テーブル２１内の当該ポリサ番号「ｉ」の通過量を、該通過量に通過したパケットの長さＤｉを加算することで更新する（ステップＳｔ５）。次に、トークン管理部１２は、トークン管理テーブル２０内の当該ポリサ番号「ｉ」のトークンの蓄積量Ｔｃを、該蓄積量Ｔｃからパケットの長さＤｉを減算することで更新する（ステップＳｔ６）。なお、ステップＳｔ６の処理は、ステップＳｔ５の処理より先に実行されてもよい。
【０１２４】
次に、補正部１４ａは、更新後のトークンの蓄積量Ｔｃと補正値（＝補正後の閾値）を比較する（ステップＳｔ７）。更新後のトークンの蓄積量Ｔｃが、補正値より多い場合（ステップＳｔ７のＹｅｓ）、補正部１４ａは、通過量管理テーブル２１内の当該ポリサ番号「ｉ」の補正可否フラグを「０」にする（ステップＳｔ８）。
【０１２５】
次に、通過量通知部１１ａは、当該ポリサ番号「ｉ」、パケットの長さＤｉ、及び補正可否フラグ（＝「０」）を含む通過情報を生成する（ステップＳｔ９）。次に、通過量通知部１１は、生成した通過情報を、同一グループに属する他のポリサ＃ｊ，＃ｋに送信し（ステップＳｔ１０）、処理を終了する。
【０１２６】
また、トークンの蓄積量Ｔｃが、補正値以下である場合（ステップＳｔ３のＮｏ）、ポリシング部１０ａは、パケットを廃棄する（ステップＳｔ１１）。このように、ポリシング部１０ａは、入力されたパケットの通過の可否を、トークンの蓄積量Ｔｃと閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する。これにより、ポリサ＃ｉに入力されたパケットの通過帯域が制限される。
【０１２７】
次に、補正部１４ａは、通過量管理テーブル２１内の当該ポリサ番号「ｉ」の補正可否フラグを「１」にする（ステップＳｔ１２）。次に、通過量通知部１１は、当該ポリサ番号、パケットの長さ（＝０）、及び補正可否フラグ（＝「１」）を含む通過情報を生成する（ステップＳｔ１３）。次に、通過量通知部１１は、生成した通過情報を、同一グループに属する他のポリサ＃ｊ，＃ｋに送信し（ステップＳｔ１０）、処理を終了する。
【０１２８】
また、更新後のトークンの蓄積量Ｔｃが、補正値以下である場合（ステップＳｔ７のＮｏ）、補正部１４ａは、通過量管理テーブル２１内の当該ポリサ番号「ｉ」の補正可否フラグを「１」にする（ステップＳｔ１４）。次に、通過量通知部１１は、当該ポリサ番号、パケットの長さＤｉ、及び補正可否フラグ（＝「１」）を含む通過情報を生成する（ステップＳｔ１５）。次に、通過量通知部１１は、生成した通過情報を、同一グループに属する他のポリサ＃ｊ，＃ｋに送信し（ステップＳｔ１０）、処理を終了する。このようにして、パケットの処理は行われる。
【０１２９】
図１５は、通過情報の受信処理の一例を示すフローチャートである。まず、トークン管理部１２及び通過量管理部１３は、同一グループに属する他のポリサ＃ｊ，＃ｋから通過情報を受信すると、通過情報から受信元ポリサ番号「ｊ」，「ｋ」、通過したパケットの長さＤｊ，Ｄｋ、及び補正可否フラグを取得する（ステップＳｔ２１）。
【０１３０】
次に、トークン管理部１２は、トークン管理テーブル２０からトークンの蓄積量Ｔｃを取得する（ステップＳｔ２２）。次に、通過量管理部１３は、通過量管理テーブル２１から、受信元ポリサ番号「ｊ」，「ｋ」の通過量を取得する（ステップＳｔ２３）。なお、ステップＳｔ２３の処理は、ステップＳｔ２２の処理より先に実行されてもよい。
【０１３１】
次に、トークン管理部１２は、トークンの蓄積量Ｔｃから、取得したパケットの長さＤｊ，Ｄｋを減算することにより、トークン管理テーブル２０のトークンの蓄積量Ｔｃを更新する（ステップＳｔ２４）。すなわち、トークンの蓄積量Ｔｃは、ポリサ＃ｉ，＃ｊ，＃ｋの何れかがパケットを通過させるたびに消費される。
【０１３２】
次に、通過量管理部１３は、通過量管理テーブル２１の受信元ポリサ番号「ｊ」，「ｋ」の通過量及び補正可否フラグを、通過情報から取得した通過量及び補正可否フラグに基づいてそれぞれ更新する（ステップＳｔ２５）。つまり、通過量管理テーブル２１の受信元ポリサ番号「ｊ」，「ｋ」の通過量は、通過情報から取得した通過量が加算され、通過量管理テーブル２１の補正可否フラグは、通過情報から取得した補正可否フラグに更新される。なお、ステップＳｔ２５の処理は、ステップＳｔ２４の処理より先に実行されてもよい。このようにして、通過情報の受信処理は行われる。
【０１３３】
図１６は、トークンの供給処理の一例を示すフローチャートである。まず、トークン管理部１２は、トークンの供給タイミングＴｉが到来すると、トークン管理テーブル２０から当該ポリサ番号「ｉ」の最大蓄積量、供給量Ｔｍ、及び蓄積量Ｔｃを取得する（ステップＳｔ３１）。なお、トークン管理部１２は、例えば、内蔵タイマによりトークン供給タイミングＴｉを検出する。
【０１３４】
次に、トークン管理部１２は、蓄積量Ｔｃと供給量Ｔｍの和が、最大蓄積量以下であるか否かを判定する（ステップＳｔ３２）。蓄積量Ｔｃと供給量Ｔｍの和が、最大蓄積量以下である場合（ステップＳｔ３２のＹｅｓ）、トークン管理部１２は、蓄積量Ｔｃに供給量を加算して（ステップＳｔ３３）、トークン管理テーブル２０の蓄積量Ｔｃを更新し（ステップＳｔ３４）、処理を終了する。
【０１３５】
蓄積量Ｔｃと供給量Ｔｍの和が、最大蓄積量より多い場合（ステップＳｔ３２のＮｏ）、トークン管理部１２は、蓄積量Ｔｃを最大供給量として（ステップＳｔ３５）、トークン管理テーブル２０の蓄積量Ｔｃを更新し（ステップＳｔ３４）、処理を終了する。このように、トークンは、周期的に供給され、最大蓄積量を超えないように制限される。このようにして、トークンの供給処理は行われる。
【０１３６】
図１７は、補正値の算出処理の一例を示すフローチャートである。補正値の算出処理は、上記のトークンの供給処理の後に実行される。
【０１３７】
まず、補正部１４ａは、トークン管理テーブル２０から当該ポリサ番号「ｉ」の補正値（±Δｔｈ）を取得する（ステップＳｔ４１）。次に、補正部１４ａは、通過量管理テーブル２１から、同一グループに属する全てのポリサ番号「ｉ」，「ｊ」，「ｋ」の通過量及び補正可否フラグを取得する（ステップＳｔ４２）。なお、ステップＳｔ４２の処理は、ステップＳｔ４１の処理より先に実行されてもよい。
【０１３８】
次に、補正部１４ａは、当該ポリサ番号「ｉ」の補正可否フラグが「１」であるか否かを判定する（ステップＳｔ４３）。補正可否フラグが「０」である場合（ステップＳｔ４３のＮｏ）、補正部１４ａは、通過量管理テーブル２１の同一グループに属する全てのポリサ番号「ｉ」，「ｊ」，「ｋ」の通過量及び補正可否フラグをクリアして（ステップＳｔ４７）、処理を終了する。これにより、各通過量は０（Ｂｙｔｅ）になり、各補正可否フラグは「１」になる。
【０１３９】
当該ポリサ番号「ｉ」の補正可否フラグが「１」である場合（ステップＳｔ４３のＹｅｓ）、補正部１４ａは、補正可否フラグが「１」である他のポリサ番号「ｊ」，「ｋ」の通過量の平均値を算出する（ステップＳｔ４４）。つまり、補正部１４ａは、補正可否フラグが「１」である他のポリサ番号「ｊ」，「ｋ」の通過量の合計を、当該他のポリサ＃ｊ，＃ｋの数で除算して、平均値を算出する。
【０１４０】
図１０の例の場合、ポリサ＃１の補正部１４ａは、補正可否フラグが「１」である他のポリサ番号「２」，「３７」の通過量の平均値を算出する。ポリサ番号「２」の通過量は７２００（Ｂｙｔｅ）であり、ポリサ番号「３７」の通過量は２８００（Ｂｙｔｅ）である。したがって、平均値は、（７２００＋２８００）／２＝５０００（Ｂｙｔｅ）と算出される。なお、ポリサ番号「１５」の通過量は、当該補正可否フラグが「０」であるため、平均値の算出に用いられない。
【０１４１】
すなわち、補正部１４ａは、他のポリサ＃ｊ，＃ｋのうち、トークンの蓄積量Ｔｃが閾値以下、または閾値に所定値を加算して得た値以下であるポリサのパケットの通過量の平均値を算出する。これにより、上述したような不適切な通過帯域の制御が防止される。なお、平均値は、同一グループに属する他のポリサ＃ｊ，＃ｋの各通過量に、当該ポリサの補正可否フラグを乗算した値を合計し、該合計値を、他のポリサ＃ｊ，＃ｋの補正可否フラグの総和で除算することにより算出されてもよい。
【０１４２】
次に、補正部１４ａは、当該ポリサ番号「ｉ」の通過量と、算出した平均値との差を算出する（ステップＳｔ４５）。図１０の例の場合、ポリサ＃１の補正部１４ａは、当該ポリサ番号「１」の通過量が３５００（Ｂｙｔｅ）であるため、平均値との差は、３５００−５０００＝−１５００（Ｂｙｔｅ）となる。
【０１４３】
次に、補正部１４ａは、当該ポリサ番号「ｉ」の通過量と、算出した平均値との差に基づいて、補正値（±Δｔｈ）を算出する（ステップＳｔ４６）。補正値の算出方法としては、例えば、上記の式（１）、または式（２）により算出する手法が挙げられる。
【０１４４】
式（１）の場合、補正値は、トークン管理テーブル２０から取得した補正値に、当該ポリサ番号「ｉ」の通過量と、算出した平均値との差を加えることで算出される。つまり、補正値は、前回算出した補正値に、当該ポリサ＃ｉのパケットの通過量と、他のポリサ＃ｊ，＃ｋのパケットの通過量の平均値Ｘａとの差を加えることにより算出される。
【０１４５】
図９の例の場合、前回算出した補正値は、５００（Ｂｙｔｅ）である。また、図１０の例において、ポリサ＃１の通過量と他のポリサ＃２，＃３７の通過量の平均値との差は、上記のとおり、−１５００（Ｂｙｔｅ）である。したがって、式（１）を用いると、ポリサ＃１の補正部１４ａが算出する補正値は、−１０００（Ｂｙｔｅ）（＝５００−１５００）となる。
【０１４６】
一方、式（２）の場合、補正値は、当該ポリサ番号「ｉ」の通過量と、算出した平均値との差として算出される。つまり、補正値は、当該ポリサ＃ｉのパケットの通過量と、他のポリサ＃ｊ，＃ｋのパケットの通過量の平均値Ｘａとの差として算出される。図１０の例の場合、式（２）を用いると、ポリサ＃１の補正部１４ａが算出する補正値は、−１５００（Ｂｙｔｅ）である。
【０１４７】
このように、補正部１４ａは、ポリシング部１０ａにおけるパケットの通過の可否の判定に使用される閾値を、当該ポリサ＃ｉのパケットの通過量と、他のポリサ＃ｊ，＃ｋのパケットの通過量との比較結果に基づいて補正する。これにより、上述したように、同一グループに属するポリサ＃ｉ，＃ｊ，＃ｋのパケットの通過量が平均化されることで、ポリサ＃ｉ，＃ｊ，＃ｋ間において通過帯域の差が低減される。なお、算出された補正値は、トークン管理部１２により、トークン管理テーブル２０に登録される。
【０１４８】
次に、補正部１４ａは、通過量管理テーブル２１の同一グループに属する全てのポリサ番号「ｉ」，「ｊ」，「ｋ」の通過量及び補正可否フラグをクリアして（ステップＳｔ４７）、処理を終了する。このようにして、補正値の算出処理は行われる。
【０１４９】
上述した実施例では、補正部１４ａは、トークンバケット１９ａの閾値（底）を補正したが、これに代えて、トークンの蓄積量Ｔｃを補正してもよい。
【０１５０】
図１８は、帯域制御部８１の他の実施例を示す構成図である。図１８において、図８と共通する構成については、同一の符号を付し、その説明を省略する。
【０１５１】
図１８は、同一グループに属するポリサ＃ｉ，＃ｊ，＃ｋのうち、ポリサ＃ｉの構成のみを示すが、他のポリサ＃ｊ，＃ｋも同様の構成を備える。ポリサ＃ｉは、ポリシング部（制御部）１０ａと、通過量通知部１１ａと、トークンバケット１９ｂとして機能するトークン管理部１２と、通過量管理部１３と、補正部１４ｂとを有する。
【０１５２】
補正部１４ｂは、パケットの通過の可否の判定に使用されるトークンの蓄積量（通過許容量）Ｔｃを、当該ポリサ＃ｉのパケットの通過量と、他のポリサ＃ｊ，＃ｋのパケットの通過量との比較結果に基づいて補正する。補正部１４ｂは、当該ポリサ＃ｉのパケットの通過量がグループ内で相対的に多ければ、トークンバケット１９ｂ内の蓄積量Ｔｃを減じ（−ΔＴｃ）、ポリサ＃ｉのパケットの通過量がグループ内で相対的に少なければ、トークンバケット１９ｂ内の蓄積量Ｔｃを増す（＋ΔＴｃ）。
【０１５３】
Ｔｃ＋補正値＞閾値（０）    ・・・（３）
【０１５４】
ポリシング部１０ａは、パケットの通過の可否を、補正されたトークンの蓄積量Ｔｃと閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する。つまり、ポリシング部１０ａは、上記の式（３）が成立する場合、パケットを通過させ、上記の式（３）が成立しない場合、パケットを廃棄する。
【０１５５】
Ｔｃ＞閾値（０）＋補正値    ・・・（４）
【０１５６】
一方、図８に示された実施例において、ポリシング部１０ａは、上記の式（４）が成立する場合、パケットを通過させ、上記の式（４）が成立しない場合、パケットを廃棄する。補正部１４ａは、当該ポリサ＃ｉのパケットの通過量がグループ内で相対的に多ければ、トークンバケット１９ａの底（＝閾値）を上げ（＋Δｔｈ）、ポリサ＃ｉのパケットの通過量がグループ内で相対的に少なければ、トークンバケット１９ａの底を下げる（−Δｔｈ）。
【０１５７】
つまり、同一の条件下において、補正部１４ａが算出する補正値の符号（プラスまたはマイナス）と補正部１４ｂが算出する補正値の符号は、正反対となる。このため、式（３）及び式（４）の判定条件は、同一とみなすことができる。したがって、本実施例でも、図８に示された実施例と同様の処理（図１４〜図１７参照）が可能である。
【０１５８】
すなわち、トークンの蓄積量Ｔｃの補正値（±ΔＴｃ）は、例えば、上記の式（１）または式（２）に基づいて算出される。これにより、本実施例でも、既に述べた内容と同様の作用効果が得られる。なお、本実施例において、トークンの蓄積量Ｔｃの補正値（±ΔＴｃ）は、トークン管理テーブル２０内の蓄積量Ｔｃに反映させなくてもよい。
【０１５９】
（シミュレーション結果）
次に、図８に示された実施例に基づいて行った帯域制御部８１の動作のシミュレーションの結果について説明する。
【０１６０】
図１９には、帯域制御部８１の動作のシミュレーションの条件が示されている。本シミュレーションにおいて、ポリサ＃１〜＃３は、グループ化され、グループ全体の通過帯域が０．６（ｋＢｙｔｅ／ｍｓ）に制限される。このため、ポリサ＃１〜＃３のトークン供給の時間間隔Ｔｓ及び供給量Ｔｍを、それぞれ、１０（ｍｓ）及び６（ｋＢｙｔｅ）とする。
【０１６１】
また、ポリサ＃１〜＃３のトークンの供給タイミングは、非同期である。つまり、ポリサ＃１のトークンの供給タイミングは、２＋１０×ｎ（ｎ：正の整数）（ｍｓ）であり、ポリサ＃２のトークンの供給タイミングは、９＋１０×ｎ（ｍｓ）である。ポリサ＃３のトークンの供給タイミングは、６＋１０×ｎ（ｍｓ）である。
【０１６２】
また、ポリサ＃１〜＃３には、３（ｋＢｙｔｅ／ｍｓ）、１（ｋＢｙｔｅ／ｍｓ）、２（ｋＢｙｔｅ／ｍｓ）の入力レートでパケットがそれぞれ入力されている。上述したように、グループ全体の通過帯域は０．６（ｋＢｙｔｅ／ｍｓ）に制限されるため、ポリサ＃１〜＃３には、平均値０．２（ｋＢｙｔｅ／ｍｓ）（＝０．６／３）以上の帯域が入力されている。すなわち、本シミュレーションにおいて、この平均値０．２（ｋＢｙｔｅ／ｍｓ）が、各ポリサ＃１〜＃３の出力レートの期待値となる。
【０１６３】
図２０（ａ）及び図２０（ｂ）は、出力レート及び補正値のシミュレーション結果をそれぞれ示すグラフである。図２０（ａ）及び図２０（ｂ）において、横軸は、経過時間（ｍｓ）を示す。また、図２０（ａ）及び図２０（ｂ）の縦軸は、各ポリサ＃１〜＃３のパケットの平均出力レート（１）〜（３）（ｋＢｙｔｅ／ｍｓ）及び補正値（１）〜（３）（ｋＢｙｔｅ）をそれぞれ示す。
【０１６４】
図２０（ａ）を参照すると、ポリサ＃１，＃３は、ポリサ＃２より早いタイミングでトークンが供給されるため、ポリサ＃１，＃３の平均出力レート（１），（３）は、３０（ｍｓ）程度までは、期待値である０．２（ｋＢｙｔｅ／ｍｓ）を上回る。一方、ポリサ＃２は、ポリサ＃１，＃３より遅いタイミングでトークンが供給されるため、ポリサ＃２の平均出力レート（２）は、６０（ｍｓ）程度までは、期待値である０．２（ｋＢｙｔｅ／ｍｓ）を下回る時間が長い。
【０１６５】
このため、図２０（ｂ）に示されるように、ポリサ＃１，＃３は、正の補正値（＋Δｔｈ）で閾値が補正され、ポリサ＃２は、負の補正値（−Δｔｈ）で閾値が補正される。これにより、図２０（ａ）に示されるように、ポリサ＃１〜＃３の平均出力レート（１）〜（３）は、期待値である０．２（ｋＢｙｔｅ／ｍｓ）に徐々に収束する。
【０１６６】
また、図２１（ａ）及び図２１（ｂ）は、出力レート及び補正値の他のシミュレーション結果をそれぞれ示すグラフである。本シミュレーションは、上記のシミュレーションの条件のうち、ポリサ＃３の入力レートだけを０．１（ｋＢｙｔｅ／ｍｓ）に変更して行われたものである。つまり、ポリサ＃１〜＃３のうち、ポリサ＃３だけが、平均値０．２（ｋＢｙｔｅ／ｍｓ）以下の帯域が入力されている。
【０１６７】
このため、本シミュレーションでは、ポリサ＃３の平均出力レート（３）の期待値は、０．１（ｋＢｙｔｅ／ｍｓ）である。また、ポリサ＃１，＃２の平均出力レート（１），（２）の期待値は、残りの通過帯域０．５（ｋＢｙｔｅ／ｍｓ）（＝０．６−０．１）を均等に分けた０．２５（ｋＢｙｔｅ／ｍｓ）（＝０．５／２）となる。
【０１６８】
図２１（ａ）に示されるように、ポリサ＃１，＃２の平均出力レート（１），（２）は、期待値である０．２５（ｋＢｙｔｅ／ｍｓ）に徐々に収束する。また、ポリサ＃３の平均出力レート（３）は、期待値である０．１（ｋＢｙｔｅ／ｍｓ）に徐々に収束する。
【０１６９】
図２１（ｂ）に示されるように、ポリサ＃３は、シミュレーションの開始直後、補正値が変動する。しかし、ポリサ＃３は、入力レートが低いため、約７０（ｍｓ）以降、トークンの蓄積量Ｔｃが、補正により十分に低くなった閾値を上回る。これにより、ポリサ＃３は、補正可否フラグが「０」になるため、補正値が一定値（約―１０（ｋＢｙｔｅ））に安定する。
【０１７０】
一方、ポリサ＃１、＃２は、約７０（ｍｓ）以降、補正値の算出処理において、ポリサ＃３のパケットの通過量を使用しない。これにより、ポリサ＃１，＃２の平均出力レート（１），（２）が、期待値である０．２５（ｋＢｙｔｅ／ｍｓ）に収束する。
【０１７１】
このように、上述した帯域制御方法によれば、ポリサごとのパケットの出力レートが期待値に制御されるため、ポリサ間のパケットの通過帯域の差が低減される。
【０１７２】
しかし、グループ化された複数のポリサのうち、補正可否フラグが「１」であるポリサが１つしかない場合、当該ポリサは、補正値が増加することにより、パケットの出力レートが期待値を下回る。
【０１７３】
例えば、ポリシングレートを１０（Ｍｂｐｓ）とし、グループ化された４つのポリサ＃１〜＃４のうち、ポリサ＃１〜＃３の入力レートが１（Ｍｂｐｓ）である場合、理想的な帯域制御では、残りの７（Ｍｂｐｓ）（＝１０−１×３）がポリサ＃４に割り当てられる。しかし、補正値の算出に全てのポリサ＃１〜＃４のパケットの通過量を用いると、ポリサ＃４のパケットの通過帯域は、それぞれ、他のポリサのパケットの通過量の平均値に基づき、１（Ｍｂｐｓ）（＝（１＋１＋１）／３）に収束するように制御される。
【０１７４】
このため、補正部１４ａ，１４ｂは、上述したように、ポリサ＃１〜＃３の補正可否フラグを「０」に制御することで、ポリサ＃１〜＃３のパケットの通過量を補正値の算出対象外とする。つまり、補正可否フラグが「１」であるポリサ＃４のみが補正値の算出対象となる。
【０１７５】
この場合、ポリサ＃４は、自装置の通過量だけに基づいて補正値が算出されるため、算出のたびに補正値が増加することにより、通過量が期待値の７（Ｍｂｐｓ）を下回る。以下にシミュレーション結果を用いた具体例を示す。
【０１７６】
図２２（ａ）及び図２２（ｂ）は、同一グループ内で１つのポリサのみが補正値の算出処理を行う場合における出力レート及び補正値のシミュレーション結果の一例をそれぞれ示すグラフである。本シミュレーションは、図１９に示されたシミュレーションの条件のうち、ポリサ＃２，＃３の入力レートを０．２（ｋＢｙｔｅ／ｍｓ）、０．１（ｋＢｙｔｅ／ｍｓ）にそれぞれ変更して行われたものである。この場合、ポリサ＃１の入力レート３（ｋＢｙｔｅ／ｍｓ）だけが、ポリシングレート０．６（ｋＢｙｔｅ／ｍｓ）の平均値０．２（ｋＢｙｔｅ／ｍｓ）を上回ることになる。
【０１７７】
このため、本シミュレーションでは、ポリサ＃２，＃３の平均出力レート（２），（３）の期待値は、入力レートに応じ、それぞれ０．２（ｋＢｙｔｅ／ｍｓ）、０．１（ｋＢｙｔｅ／ｍｓ）である。また、ポリサ＃１の平均出力レート（１）の期待値は、ポリシングレートの残りの通過帯域０．３（ｋＢｙｔｅ／ｍｓ）（＝０．６−０．２−０．１）となる。
【０１７８】
図２２（ｂ）に示されるように、ポリサ＃２，＃３の補正値は、ポリサ＃２，＃３の補正フラグが「０」になることにより、一定値に制御される。これに対し、ポリサ＃１は、補正フラグが「１」であるため、自装置のパケットの通過量だけが補正値の算出に用いられることにより、補正値が時間の経過とともに単調に増加し続ける。
【０１７９】
したがって、図２２（ａ）に示されるように、ポリサ＃２，＃３の平均出力レート（２），（３）は期待値に収束するが、ポリサ＃１の平均出力レート（１）は、不適切な補正値の増加によりパケットの通過量が必要以上に抑制されるため、期待値を下回る。
【０１８０】
そこで、ポリサ＃１は、同一グループの他の全てのポリサ＃２，＃３の補正可否フラグが「０」である場合、新たに算出された補正値を使用せず、現在の補正値を維持してもよい。この場合、補正部１４ａ，１４ｂは、新たに算出した補正値をトークン管理部１２に出力しないため、トークン管理テーブル２０内の補正値は、変更されない。
【０１８１】
図２３は、上記の例における補正値の算出処理を示すフローチャートである。なお、図２３において、図１７と共通する処理については、同一の符号を付し、その説明を省略する。
【０１８２】
補正部１４ａ，１４ｂは、新たな補正値を算出した後（ステップＳｔ４６）、同一グループに属する他の各ポリサ番号「ｊ」，「ｋ」の補正可否フラグが「０」であるか否かを判定する（ステップＳｔ５１）。補正部１４ａ，１４ｂは、他の各ポリサ番号「ｊ」，「ｋ」の補正可否フラグが「０」ではない場合（ステップＳｔ５１のＮｏ）、つまり何れかのポリサ番号「ｊ」，「ｋ」の補正可否フラグが「１」である場合、通過量管理テーブル２１をクリアして（ステップＳｔ４７）、処理を終了する。
【０１８３】
また、補正部１４ａ，１４ｂは、他の各ポリサ番号「ｊ」，「ｋ」の補正可否フラグが「０」である場合（ステップＳｔ５１のＮｏ）、現在の補正値を維持する（ステップＳｔ５３）。上述したように、補正可否フラグは、トークンの蓄積量Ｔｃが、閾値または閾値に所定値を加算して得た値以下である場合、「１」に更新され、閾値または閾値に所定値を加算して得た値より大きい場合、「０」に更新される。すなわち、補正部１４ａ，１４ｂは、他のポリサ＃ｊ，＃ｋの各々のトークンの蓄積量が、閾値または閾値に所定値を加算して得た値より大きい場合、現在の補正値を維持する。
【０１８４】
次に、補正部１４ａ，１４ｂは、ステップＳｔ４７の処理を行い、処理を終了する。このようにして、補正値の算出処理は行われる。
【０１８５】
このように、本例の補正部１４ａ，１４ｂは、同一グループの他の全てのポリサ＃ｊ，＃ｋの補正可否フラグが「０」である場合、現在の補正値を変更しない。したがって、図２２（ａ）及び図２２（ｂ）に示された例のように、継続的な補正値の増加のために出力レートが低下することが防止される。
【０１８６】
図２４（ａ）及び図２４（ｂ）は、同一グループ内で１つのポリサのみが補正値の算出処理を行う場合における出力レート及び補正値のシミュレーション結果の改善例をそれぞれ示すグラフである。本シミュレーションは、図２２（ａ）及び図２２（ｂ）の例と同じ条件下において、上記の補正値の算出処理を行ったものである。
【０１８７】
図２４（ｂ）に示されるように、ポリサ＃１の補正値は、シミュレーションの開始時刻から約１２（ｍｓ）経過した後、一定値に維持される。このため、ポリサ＃１のパケットの通過量は、必要以上に抑制されることはないので、図２４（ａ）に示されるように、平均出力レート（１）は、期待値の０．３（ｋＢｙｔｅ／ｍｓ）に収束する。なお、他のポリサ＃２，＃３の平均出力レート（２），（３）も期待値に収束する。
【０１８８】
また、上記の補正値の算出処理において、新たに算出した補正値が現在の補正値より小さい場合、トークンの閾値が減少する方向に補正されるため、パケットの通過量は増加する。図８に示されたポリサ＃ｉを例に挙げれば、上記の場合、トークンバケット１９ａの底（＝閾値）が下がるため、パケットの通過量が増加する。
【０１８９】
したがって、補正部１４ａ，１４ｂは、新たに算出した補正値が現在の補正値より小さい場合、新たに算出した補正値により閾値を補正してもよい。
【０１９０】
図２５は、上記の例における補正値の算出処理を示すフローチャートである。なお、図２５において、図１７及び図２３と共通する処理については、同一の符号を付し、その説明を省略する。
【０１９１】
補正部１４ａ，１４ｂは、同一グループの他の各ポリサ番号「ｊ」，「ｋ」の補正可否フラグが「０」である場合（ステップＳｔ５１のＹｅｓ）、ステップＳｔ４６において新たに算出した補正値を、現在の補正値と比較する（ステップＳｔ５２）。補正部１４ａ，１４ｂは、新たに算出した補正値が現在の補正値より小さい場合（ステップＳｔ５２のＮｏ）、通過量管理テーブル２１をクリアして（ステップＳｔ４７）、処理を終了する。この場合、新たに算出した補正値が閾値の補正に使用される。
【０１９２】
また、補正部１４ａ，１４ｂは、新たに算出した補正値が現在の補正値以上である場合（ステップＳｔ５２のＹｅｓ）、現在の補正値を維持する（ステップＳｔ５３）。つまり、補正部１４ａ，１４ｂは、他のポリサ＃ｊ，＃ｋの各々のトークンの蓄積量が、閾値または閾値に所定値を加算して得た値より大きく、さらに、新たに算出した補正値が現在の補正値以上である場合、現在の補正値を維持する。この場合、現在の補正値が閾値の補正に使用される。
【０１９３】
次に、補正部１４ａ，１４ｂは、ステップＳｔ４７の処理を行い、処理を終了する。このようにして、補正値の算出処理は行われる。本実施例によると、パケットの通過量が必要以上に抑制されることが防止される。
【０１９４】
これまで述べた実施例では、現在の補正可否フラグに基づいて、補正値の算出対象のポリサが決定されるが、これに限定されず、過去の補正可否フラグも考慮して、補正値の算出対象のポリサが決定されてもよい。以下に、シミュレーション結果の一例を挙げて説明する。
【０１９５】
図２６には、本シミュレーションの条件が示されている。本シミュレーションの条件は、上述した図１９のシミュレーション条件と比べると、ポリサ＃１〜＃３のトークンの供給タイミング及びパケットの入力レートが異なる。
【０１９６】
ポリサ＃１のトークンの供給タイミングは、１０×ｎ（ｍｓ）であり、ポリサ＃２のトークンの供給タイミングは、４＋１０×ｎ（ｍｓ）である。ポリサ＃３のトークンの供給タイミングは、８＋１０×ｎ（ｍｓ）である。
【０１９７】
また、ポリサ＃１〜＃３には、それぞれ０．４（ｋＢｙｔｅ／ｍｓ）の入力レートでパケットが入力されている。すなわち、ポリサ＃１〜＃３には、ポリシングレート０．６（ｋＢｙｔｅ／ｍｓ）の平均値０．２（ｋＢｙｔｅ／ｍｓ）（＝０．６／３）以上の帯域が入力されている。したがって、本シミュレーションでは、この平均値０．２（ｋＢｙｔｅ／ｍｓ）が各ポリサ＃１〜＃３の出力レートの期待値となる。
【０１９８】
図２７は、上記のシミュレーション条件による補正値のシミュレーション結果を示すグラフである。図２７には、ポリサ＃１の補正値の算出区間１〜３ごとに、ポリサ＃１の補正値の変化、ポリサ＃１のパケットの通過量、及び他のポリサ＃２，＃３から通知された通過量が示されている。
【０１９９】
補正値の算出区間１〜３は、時間軸ｔにおけるポリサ＃１のトークンの供給タイミングＴ１間の期間であり、算出区間１が現在の算出区間であるとする。なお、Ｔ２，Ｔ３は、ポリサ＃２，＃３のトークンの供給タイミングをそれぞれ示す。
【０２００】
また、図２７には、時間軸ｔに沿ってポリサ＃１〜＃３のパケットの通過及び廃棄が示されている。ハッチングされた矩形枠は、ポリサ＃１〜＃３により廃棄されたパケットを示し、ハッチングされていない矩形枠は、ポリサ＃１〜＃３を通過したパケットを示す。
【０２０１】
ポリサ＃１のパケットの通過量は、各算出区間１〜３において、ほぼ平均的な値であるのに対し、ポリサ＃２のパケットの通過量は、算出区間１，３では少なく、算出区間２では多い。また、ポリサ＃３のパケットの通過量は、算出区間１，３では多く、算出区間２では少ない。平均的に見れば、ポリサ＃１〜＃３とも、出力レートはほぼ期待値通りとなるが、ポリサ＃１〜＃３間で算出処理（トークン供給タイミングＴ１〜Ｔ３）が非同期であるため、算出区間１〜３ごとに見た場合は、ポリサ＃２，＃３の通過量に偏りがある。
【０２０２】
算出区間３において、ポリサ＃３は全てパケットを通過させている。つまり、算出区間３において、ポリサ＃３は、トークンの蓄積量Ｔｃが閾値（補正値）を上回っており、補正可否フラグが「０」となる。このため、ポリサ＃３のパケットの通過量は、ポリサ＃１の補正値の算出処理に用いられない。
【０２０３】
しかし、ポリサ＃３のパケットの入力レートは、他のポリサ＃１，＃２と同様に、出力レートの期待値を上回るため、上記の場合、ポリサ＃１の補正値は、算出区間３以降、符号Ｇ１で示されるように大きく増加することで（点線参照）、パケットの通過量が必要以上に抑制される。
【０２０４】
そこで、補正部１４ａ，１４ｂは、複数回の補正値の算出において、補正可否フラグが「１」となった回数が一定の回数を上回るポリサを、補正値の算出対象としてもよい。
【０２０５】
例えば、現在の算出区間３及び前回の算出区間２の何れか一方において、補正可否フラグが「１」であるポリサを補正値の算出対象とした場合、ポリサ＃３は、算出区間２において、ほとんどのパケットを廃棄しており、補正可否フラグが「１」であるため、算出対象となる。ポリサ＃２も、算出区間３における補正可否フラグが「１」であるため、算出対象となる。
【０２０６】
したがって、ポリサ＃１は、算出区間３において、ポリサ＃２，＃３のパケットの通過量を用いて補正値を算出する。より具体的には、ポリサ＃１は、ポリサ＃２，＃３のパケットの通過量の平均値を算出し、自装置のパケットの通過量から減算することで補正値を算出する。
【０２０７】
この場合、ポリサ＃１の補正値は、算出区間３以降、符号Ｇ２で示されるように一定の範囲内に制御されるため（実線参照）、パケットの通過量が必要以上に抑制されることはない。なお、本例において、算出区間１〜３のうち、２つ以上の算出区間において補正可否フラグが「０」であるポリサを補正値の算出対象とした場合も、補正値は、一定の範囲内に制御される。
【０２０８】
このように、補正部１４ａ，１４ｂは、現在及び過去の複数回の補正値の算出、つまり複数の算出区間における補正可否フラグに基づいて、補正値の算出対象を決定する。このため、通過量管理テーブル２１には、複数の算出区間における補正可否フラグが格納される。
【０２０９】
図２８には、本例の通過量管理テーブル２１が示されている。通過量管理テーブル２１には、「ポリサ番号」、「グループ内ポリサ番号」、「通過量［Ｂｙｔｅ］」、及び「補正可否フラグ」が登録されている。「ポリサ番号」、「グループ内ポリサ番号」、及び「通過量［Ｂｙｔｅ］」については、図１０を参照して述べた通りである。
【０２１０】
「補正可否フラグ」は、複数の算出区間１〜Ｚ（正の整数）ごとに値が登録されている。複数の算出区間１〜Ｚのうち、算出区間１は現在の算出区間であり、算出区間２〜Ｚは過去の算出区間である。
【０２１１】
補正部１４ａ，１４ｂは、各算出区間１〜Ｚの補正可否フラグを参照し、Ｌ（正の整数）以上の算出区間において補正可否フラグ＝「１」であるポリサを、補正値の算出対象とする。また、補正部１４ａ，１４ｂは、補正値の算出処理が完了すると、各算出区間１〜Ｚの補正可否フラグを更新する。より具体的には、補正部１４ａ，１４ｂは、算出区間２〜Ｚの補正可否フラグに、算出区間１〜Ｚ−１の補正可否フラグの値をそれぞれコピーする。なお、算出区間１の補正可否フラグは、更新時、「１」または「０」にセットされる。
【０２１２】
図２９は、本例の補正値の算出処理を示すフローチャートである。なお、図２９において、図１７と共通する処理については、同一の符号を付し、その説明を省略する。
【０２１３】
補正部１４ａ，１４ｂは、当該ポリサ番号「ｉ」の補正可否フラグが「１」である場合（ステップＳｔ４３のＹｅｓ）、Ｌ以上の算出区間において補正可否フラグ＝「１」である他のポリサ番号「ｊ」，「ｋ」の通過量の平均値を算出する（ステップＳｔ５４）。すなわち、補正部１４ａ，１４ｂは、複数回の補正値の算出において、トークンの蓄積量Ｔｃが閾値以下、または閾値に所定値を加算して得た値以下となった回数が一定の回数Ｌを上回る他のポリサ＃ｊ，＃ｋのパケットの通過量の平均値を算出する。
【０２１４】
補正部１４ａ，１４ｂは、算出した平均値に基づいて補正値を算出した後（ステップＳｔ４５，Ｓｔ４６）、通過量管理テーブル２１の同一グループに属する全てのポリサ番号「ｉ」，「ｊ」，「ｋ」の通過量をクリアする（ステップＳｔ５５）。次に、補正部１４ａ，１４ｂは、通過量管理テーブル２１の同一グループに属する全てのポリサ番号「ｉ」，「ｊ」，「ｋ」の補正可否フラグを更新して（ステップＳｔ５６）、処理を終了する。このようにして、補正値の算出処理は行われる。
【０２１５】
上述したように、本実施例において、補正部１４ａ，１４ｂは、複数の算出区間における補正可否フラグに基づいて、他のポリサのパケットの通過量を補正値の算出処理に用いるか否かを決定する。したがって、補正値の算出対象の判定精度、つまり補正値の算出精度が向上することにより、パケットの通過量が必要以上に抑制されることが防止される。
【０２１６】
また、補正部１４ａ，１４ｂは、複数の算出区間の補正可否フラグの条件を満たした他のポリサのうち、パケットの通過量が自装置より多いポリサを補正値の算出対象として決定してもよい。これは、他のポリサのパケットの通過量が自装置のパケットの通過量より多い場合、平均値の算出により自装置の補正値が減少することで、パケットの通過量が増加するからである。図８に示されたポリサ＃ｉを例に挙げれば、上記の場合、トークンバケット１９ａの底（＝閾値）が下がるため、パケットの通過量が増加する。
【０２１７】
図３０は、本例の補正値の算出処理を示すフローチャートである。なお、図３０において、図１７及び図２９と共通する処理については、同一の符号を付し、その説明を省略する。
【０２１８】
補正部１４ａ，１４ｂは、当該ポリサ番号「ｉ」の補正可否フラグが「１」である場合（ステップＳｔ４３のＹｅｓ）、Ｌ以上の算出区間において補正可否フラグ＝「１」であり、かつ、パケットの通過量が自装置より多い他のポリサ番号「ｊ」，「ｋ」の通過量の平均値を算出する（ステップＳｔ５７）。すなわち、補正部１４ａ，１４ｂは、複数回の補正値の算出において、トークンの蓄積量Ｔｃが閾値以下、または閾値に所定値を加算して得た値以下となった回数が一定の回数Ｌを上回り、かつ、パケットの通過量が自装置より多い他のポリサ＃ｊ，＃ｋのパケットの通過量の平均値を算出する。
【０２１９】
補正部１４ａ，１４ｂは、算出した平均値に基づいて補正値を算出した後（ステップＳｔ４５，Ｓｔ４６）、通過量のクリア（ステップＳｔ５５）及び補正可否フラグの更新（ステップＳｔ５６）を行い、処理を終了する。このようにして、補正値の算出処理は行われる。本実施例によると、補正値の算出対象として、パケットの通過量が自装置より多いポリサが選択されるため、自装置の補正値が減少し、パケットの通過量が増加する。
【０２２０】
これまで述べたように、本実施例に係る帯域制御装置（ポリサ＃ｉ）は、パケットの通過の可否を、個別の通過許容量（蓄積量）Ｔｃ及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置（ポリサ＃ｉ，＃ｊ，＃ｋ）のグループに属する。
【０２２１】
帯域制御装置は、管理部（トークン管理部）１２と、補正部１４ａ，１４ｂとを有する。管理部１２は、複数の帯域制御装置のうち、自装置（ポリサ＃ｉ）または１以上の他の帯域制御装置（ポリサ＃ｊ，＃ｋ）がパケットを通過させるたびに自装置の通過許容量を減算する。補正部１４ａ，１４ｂは、自装置の通過許容量または自装置の閾値を、自装置のパケットの通過量と、１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正する。
【０２２２】
上記の構成によると、パケットの通過の可否が、同一グループに属する何れかの帯域制御装置がパケットを通過させるたびに減算される通過許容量Ｔｃと、閾値との比較結果に基づいてそれぞれ判定される。このため、複数の帯域制御装置に入力されるパケットの合計帯域を、全体的に制限することが可能である。
【０２２３】
また、補正部１４ａ，１４ｂは、自装置の通過許容量Ｔｃまたは自装置の閾値を、自装置のパケットの通過量と、自装置と同一グループの他の帯域制御装置のパケットの通過量との比較結果に基づいて補正する。これにより、帯域制御装置は、同一グループの他の帯域制御装置と比較して、パケットの通過量が多い場合、パケットを通過させにくくなり、パケットの通過量が少ない場合、パケットを通過させやすくなる。
【０２２４】
したがって、本実施例に係る帯域制御装置は、同一グループの他の帯域制御装置との通過帯域の差を低減することができる。
【０２２５】
また、本実施例に係る帯域制御方法は、同一のグループに属する複数の帯域制御装置（ポリサ＃ｉ，＃ｊ，＃ｋ）が、パケットの通過の可否を、個別の通過許容量（蓄積量）Ｔｃ及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する方法である。本実施例に係る帯域制御方法は、以下の工程を含む。
工程（１）：複数の帯域制御装置のうち、１つの装置（ポリサ＃ｉ）または１以上の他の帯域制御装置（ポリサ＃ｊ、＃ｋ）がパケットを通過させるたびに１つの装置の通過許容量を減算する。
工程（２）：１つの装置の通過許容量または１つの装置の閾値を、１つの装置のパケットの通過量と、１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正する。
【０２２６】
本実施例に係る帯域制御方法は、上記の帯域制御装置と同様の構成を含むので、上述した内容と同様の作用効果を奏する。
【０２２７】
（他形態の実施例）
このように、上述した実施例では、同一グループの他の帯域制御装置との通過帯域の差、つまり通過量の差が低減されるように帯域制御（以下、「通過量公平制御」と記載）が行われたが、これに限定されない。上記のポリサ＃ｉ，＃ｊ，＃ｋは、通過量公平制御に代えて、パケットの入力レートに対する出力レートの比率（入力帯域に対する通過帯域の比率）である通過率の差が低減されるように帯域制御（以下、「通過率公平制御」と記載）を行ってもよい。
【０２２８】
図３１（ａ）及び図３１（ｂ）には、通過量公平制御及び通過率公平制御の一例がそれぞれ示されている。本例において、グループ化されたポリサ＃１，＃２は、ネットワークインターフェースカード（＃１，＃２）９１にそれぞれ実装されている。ポリサ＃１，＃２は、ネットワークインターフェースカード（＃１，＃２）９１に入力されたパケットの通過帯域を、合計１００（Ｇｂｐｓ）のポリシングレートで制限する。ここで、ポリサ＃１，＃２のパケットの入力レートは、それぞれ、１００（Ｇｂｐｓ）及び５０（Ｇｂｐｓ）とする。
【０２２９】
ポリサ＃１，＃２から出力されたパケットは、スイッチカード９２を介して、出力側のネットワークインターフェースカード（＃３）９１に入力される。ネットワークインターフェースカード（＃３）９１は、１００ＧｂＥ（ギガビットイーサネット）の通信回線を介してパケットを他装置に送信する。
【０２３０】
図３１（ａ）に示されるように、通過量公平制御の場合、ポリサ＃１，＃２は、期待値として、均等に５０（Ｇｂｐｓ）の出力レートでパケットをスイッチカード９２に出力する。これにより、出力側のネットワークインターフェースカード（＃３）９１には、合計１００（Ｇｂｐｓ）の入力レートでパケットが入力される。
【０２３１】
一方、図３１（ｂ）に示されるように、通過率公平制御の場合、ポリサ＃１，＃２のパケットの出力レートは、通過率が均等になるように決定される。このため、ポリサ＃１，＃２のパケットの出力レートの期待値は、それぞれ、ポリシングレートを入力レートの比に応じて割り当てた値となる。
【０２３２】
Ｓｒ＝Ｐｒ×（Ｎｒ／ΣＮｒ）  ・・・（５）
【０２３３】
より具体的には、各ポリサ＃１，＃２の入力レートをＮｒとし、ポリシングレートをＰｒとした場合、各ポリサ＃１，＃２の出力レートの期待値Ｓｒは、上記の式（５）により算出される。ここで、ΣＮｒは、ポリサ＃１，＃２の入力レートの合計である。
【０２３４】
したがって、ポリサ＃１のパケットの出力レートの期待値は、１００×１００／（１００＋５０）＝６６．６（Ｇｂｐｓ）となり、ポリサ＃２のパケットの出力レートの期待値は、１００×５０／（１００＋５０）＝３３．３（Ｇｂｐｓ）となる。このとき、ポリサ＃１，＃２の通過率は、均等に６６．６（％）となる。これにより、出力側のネットワークインターフェースカード（＃３）９１には、合計約１００（Ｇｂｐｓ）の入力レートでパケットが入力される。
【０２３５】
通過量公平制御の場合、ポリサ＃２は、全てのパケットを通過させることができるため、パケットの廃棄量が０であるが、ポリサ＃１は、５０（Ｇｂｐｓ）分のパケットを廃棄する。一方、通過率公平制御の場合、ポリサ＃１は、入力レートの比に応じて、１００−６６．６＝３３．４（Ｇｂｐｓ）分のパケットを廃棄し、ポリサ＃２は、５０−３３．３＝１６．７（Ｇｂｐｓ）分のパケットを廃棄する。したがって、通過率公平制御によると、ポリサ＃１，＃２間のパケットの通過率だけでなく、廃棄率も公平に制御することが可能となる。
【０２３６】
しかし、通過率公平制御には、以下に述べるように、通過量公平制御と同様に、同一グループ内の複数のポリサ間でトークンの供給のタイミングが同期していない場合、ポリサ間で公平性を担保できず、通過帯域に差が生ずるという問題が存在する。
【０２３７】
図３２は、ポリサ＃１，＃２間でトークンの供給のタイミングＴ１，Ｔ２が同期している場合のトークンの蓄積量Ｔｃの変化の一例を示すグラフである。図３２において、横軸は時間ｔを示し、縦軸はトークンの蓄積量Ｔｃを示す。なお、本例において、各ポリサ＃１，＃２におけるパケットの通過によるトークンの蓄積量Ｔｃの更新処理は、トークンの供給タイミングＴ１，Ｔ２で一度に行われる。
【０２３８】
各ポリサ＃１，＃２のトークンの供給のタイミングＴ１，Ｔ２は同期しているため、各ポリサ＃１，＃２のトークンの蓄積量Ｔｃは同様に変化する。ポリサ＃１，＃２は、最初の２つの算出区間ではＴｃ＞０（閾値）であるため、パケットを通過させ、最後の算出区間ではＴｃ≦０であるため、パケットを廃棄する。このため、結果として、ポリサ＃１，＃２の通過率は、均等に６６．６（％）となる。
【０２３９】
図３３は、ポリサ＃１，＃２間でトークンの供給のタイミングＴ１，Ｔ２が同期していない場合のトークンの蓄積量Ｔｃの変化の一例を示すグラフである。ポリサ＃１のトークンの供給のタイミングＴ１は、ポリサ＃２のトークンの供給のタイミングＴ２に先行するため、ポリサ＃１は、ポリサ＃２より先にトークンを消費して、パケットを通過させることができる。すなわち、ポリサ＃１は、全ての算出区間で蓄積量＞０（閾値）であるため、パケットを通過させることができる。
【０２４０】
一方、ポリサ＃２は、最初の算出区間では、蓄積量＞０（閾値）であるため、パケットを通過させるが、最後の２つの算出区間では、ポリサ＃１より多くのトークンを消費して、蓄積量≦０となるため、パケットを廃棄する。これにより、ポリサ＃１，＃２の通過率は不均等になる。
【０２４１】
このように、通過率公平制御において、同一グループ内の複数のポリサ＃１，＃２間でトークンの供給のタイミングが同期していない場合、ポリサ＃１，＃２間の通過率に差が生ずる。仮に、トークンの供給タイミングＴ１，Ｔ２を、ポリサ＃１，＃２間で同期させた場合、上述したように、通信装置の全体的な制御が複雑化するため、ハードウェアやソフトウェアの規模が大きくなり、コストが増加するという他の問題が生ずる。
【０２４２】
そこで、以下の実施例において、ポリサは、自装置の閾値を、自装置のパケットの入力量に対する通過量の比率と、他のポリサのパケットの入力量に対する通過量の比率との比較結果に基づいて補正する。すなわち、ポリサは、自装置の通過率と他のポリサの通過率を比較し、比較結果に基づいてトークンバケットの底を補正する。
【０２４３】
図３４は、通過率を制御する帯域制御部８１の実施例を示す構成図である。図３４において、図８と共通する構成については同一の符号を付し、その説明を省略する。なお、図３４には、同一グループ内のポリサ＃ｉ，＃ｊ，＃ｋのうち、ポリサ＃ｉの構成のみが示されているが、他のポリサ＃ｊ，＃ｋも同様の構成を備える。ポリサ＃ｉ，＃ｊ，＃ｋは、共通のネットワークインターフェースカード９１、または個別のネットワークインターフェースカード９１に実装されている。
【０２４４】
ポリサ＃ｉは、入力されたパケットの通過の可否を、トークンの蓄積量Ｔｃ及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する。ポリサ＃ｉは、ポリシング部１０ａと、通過量通知部１１ｂと、トークンバケット１９ｃとして機能するトークン管理部（管理部）１２ａと、補正部１４ｃと、入力量通知部１５とを有する。
【０２４５】
トークン管理部１２ａは、記憶部９１５に格納されたトークン管理テーブル２０により、トークンの蓄積量Ｔｃなどを管理する。トークン管理部１２ａは、トークンの供給タイミングＴｉが到来すると、トークン管理テーブル２０から蓄積量Ｔｃ及び供給量Ｔｍを取得し、蓄積量Ｔｃに供給量Ｔｍを加算することにより、トークン管理テーブル２０内の蓄積量Ｔｃを更新する。トークンが供給される時間間隔Ｔｓは、同一グループ内のポリサ＃ｉ，＃ｊ，＃ｋ間で共通であるが、トークンの供給タイミングは、同一グループ内のポリサ＃ｉ，＃ｊ，＃ｋ間で同期していない。
【０２４６】
また、トークン管理部１２ａは、トークンの供給タイミングにおいて、記憶部９１５に格納された通過量管理テーブル２１ａから、同一グループ内の各ポリサ＃ｉ，＃ｊ，＃ｋのパケットの通過量を取得し、トークン管理テーブル２０の蓄積量Ｔｃから減算する。つまり、トークン管理部１２ａは、トークン管理テーブル２０の蓄積量Ｔｃから、各ポリサ＃ｉ，＃ｊ，＃ｋがそれぞれ通過させたパケットの長さＤｉ，Ｄｊ，Ｄｋの合計を減算する。これにより、トークン管理テーブル２０内の蓄積量Ｔｃが、トークンの供給タイミングに同期して更新される。
【０２４７】
また、通過量通知部１１ｂは、通過したパケットＰ１の長さＤｉを検出し、通過量管理テーブル２１ａに通知する。他のポリサ＃ｊ，＃ｋの通過量通知部１１ｂも、同様に、通過したパケットＰ１の長さＤｊ,Ｄｋを検出し、通過量管理テーブル２１ａに通知する。通知されたパケットＰ１の長さＤｉ，Ｄｊ,Ｄｋは、通過量管理テーブル２１ａ内の当該ポリサ番号の通過量に加算される。
【０２４８】
図３５（ａ）には、通過量管理テーブル２１ａの一例が示されている。通過量管理テーブル２１ａには、「ポリサ番号」、「グループ内ポリサ番号」、及び「通過量［Ｂｙｔｅ］」が登録されている。
【０２４９】
「ポリサ番号」、「グループ内ポリサ番号」、及び「通過量［Ｂｙｔｅ］」は、図１０を参照して述べた通りである。図３５（ａ）には、一例として、グループ化されたポリサ＃１，＃２，＃Ｎの通過量が示されている。なお、通過量管理テーブル２１ａは、複数のポリサ＃１〜＃Ｍ間において共有される。
【０２５０】
入力量通知部１５は、通過したパケットＰ１の長さＤｉ及び廃棄されたパケットＰ２の長さを検出し、記憶部９１５に格納された入力量管理テーブル２２に通知する。他のポリサ＃ｊ，＃ｋの入力量通知部１５も、同様に、通過したパケットＰ１の長さＤｊ,Ｄｋ及び廃棄されたパケットＰ２の長さを検出し、入力量管理テーブル２２に通知する。通知されたパケットＰ１，Ｐ２の長さＤｉ，Ｄｊ,Ｄｋは、入力量管理テーブル２２内の当該ポリサ番号の入力量に加算される。
【０２５１】
図３５（ｂ）には、入力量管理テーブル２２の一例が示されている。入力量管理テーブル２２には、「ポリサ番号」、「グループ内ポリサ番号」、及び「入力量［Ｂｙｔｅ］」が登録されている。「ポリサ番号」及び「グループ内ポリサ番号」の内容は、通過量管理テーブル２１ａの「ポリサ番号」及び「グループ内ポリサ番号」と同様である。
【０２５２】
「入力量［Ｂｙｔｅ］」は、グループ内ポリサ番号が示す各ポリサに一定期間（補正値の算出区間）内に入力されたパケットの長さ（データ量）の合計を、Ｂｙｔｅ単位で示す。例えば、ポリサ＃１が一定期間内に累計したポリサ＃１，＃２，＃Ｎのパケットの通過量は、それぞれ、２５０００（Ｂｙｔｅ）、３００００（Ｂｙｔｅ）、１３０００（Ｂｙｔｅ）である。
【０２５３】
「入力量［Ｂｙｔｅ］」は、入力量通知部１５から通知されるパケットの通過量及び廃棄量を加算することにより得られる。パケットの通過量及び廃棄量の加算処理は、入力量通知部１５及び入力量管理テーブル２２の何れで行われてもよい。なお、入力量管理テーブル２２は、複数のポリサ＃１〜＃Ｍ間において共有される。また、入力量管理テーブル２２の「入力量［Ｂｙｔｅ］」は、当該ポリサ＃１〜＃Ｍのトークンの供給タイミングが到来したときに、補正部１４ｃにより０（Ｂｙｔｅ）にクリアされる。
【０２５４】
補正部１４ｃは、当該ポリサ＃ｉのトークンバケット１９ｃの閾値を、当該ポリサ＃ｉのパケットの入力量に対する通過量の比率と、同一グループに属する他のポリサ＃ｊ，＃ｋのパケットの入力量に対する通過量の比率との比較結果に基づいて補正する。すなわち、補正部１４ｃは、当該ポリサ＃ｉのトークンバケット１９ｃの閾値を、当該ポリサ＃ｉのパケットの通過率と、同一グループに属する他のポリサ＃ｊ，＃ｋの通過率との比較結果に基づいて補正する。
【０２５５】
これにより、ポリサ＃ｉは、同一グループの他のポリサ＃ｊ，＃ｋと比較して、パケットの通過率が多い場合、パケットを通過させにくくなり、パケットの通過率が少ない場合、パケットを通過させやすくなる。したがって、当該ポリサ＃ｉのパケットの通過率は、他のポリサ＃ｊ，＃ｋの通過率と等しくなるように制御される。
【０２５６】
より具体的には、補正部１４ｃは、当該ポリサ＃ｉのトークンの供給タイミングが到来したとき、通過量管理テーブル２１ａ及び入力量管理テーブル２２から、同一グループの各ポリサ＃ｉ，＃ｊ，＃ｋのパケットの通過量及び入力量をそれぞれ取得する。補正部１４ｃは、取得した通過量及び入力量に基づいて、通過率の比較を行う。
【０２５７】
（ＮＰ（ｉ）＋α）／ＮＩ（ｉ）＝（ΣＮＰ（ｓ）−α）／ΣＮＩ（ｓ）・・・（６）
【０２５８】
通過率＝通過量／入力量であることから、補正部１４ｃは、当該ポリサ＃ｉと他のポリサ＃ｊ，＃ｋの通過率を等しくするように、例えば上記の式（６）を満たす変数αを算出する。ここで、ＮＰ（ｉ）及びＮＩ（ｉ）は、それぞれ、当該ポリサ＃ｉのパケットの通過量及び入力量であり、ΣＮＰ（ｓ）及びΣＮＩ（ｓ）は、それぞれ、他のポリサ＃ｊ，＃ｋのパケットの通過量の合計及び入力量の合計である。
【０２５９】
α＝（ＮＩ（ｉ）×ΣＮＰ（ｓ）−ＮＰ（ｉ）×ΣＮＩ（ｓ））／
（ＮＩ（ｉ）＋ΣＮＩ（ｓ））     ・・・（７）
【０２６０】
変数αは、式（６）に基づいて上記の式（７）により算出される。変数α＞０（正の値）の場合、当該ポリサ＃ｉの通過率は、他のポリサ＃ｊ，＃ｋの通過率の平均値より小さいことになるため、補正部１４ｃは、トークンバケット１９ｃの底（＝閾値）を下げることにより通過率を増加させる。一方、変数α＜０（負の値）の場合、当該ポリサ＃ｉの通過率は、他のポリサ＃ｊ，＃ｋの通過率の平均値より大きいことになるため、補正部１４ｃは、トークンバケット１９ｃの底を上げることにより通過率を減少させる。以下に数値例を挙げて説明する。
【０２６１】
図３６（ａ）及び図３６（ｂ）には、閾値の補正前及び補正後の通過率の算出例がそれぞれ示されている。閾値の補正前において、ポリサ＃ｉのパケットの通過量ＮＰ（ｉ）及び入力量ＮＩ（ｉ）を、それぞれ１００００（Ｂｙｔｅ）及び２００００（Ｂｙｔｅ）とすると、ポリサ＃ｉの通過率は、５０（％）（＝１００００／２００００×１００）である。
【０２６２】
また、他のポリサ＃ｊ，＃ｋのパケットの通過量の合計ΣＮＰ（ｓ）及び入力量の合計ΣＮＩ（ｓ）を、それぞれ６０００（Ｂｙｔｅ）及び１００００（Ｂｙｔｅ）とすると、他のポリサ＃ｊ，＃ｋの通過率の平均値は、６０（％）（＝６０００／１００００×１００）である。
【０２６３】
上記の条件によると、式（７）から変数α＝６６７と算出される。したがって、補正部１４ｃは、トークンバケット１９ｃの閾値を下げることにより、図３６（ｂ）に示されるように、当該ポリサ＃ｉのパケットの通過量を６６７だけ増加させ、他のポリサ＃ｊ，＃ｋのパケットの通過量の合計を６６７だけ減少させる。これにより、ポリサ＃ｉの通過率及び他のポリサ＃ｊ，＃ｋの通過率の平均値は５３．３（％）に平均化される。
【０２６４】
±Δｔｈ＝±Δｔｈ（ｐｒｅ）−α  ・・・（８）
【０２６５】
補正部１４ｃは、例えば、上記の式（８）に従って補正値（±Δｔｈ）を算出する。つまり、補正部１４ｃは、トークン管理テーブル２０から取得した前回の補正値（±Δｔｈ（ｐｒｅ））から、上記の変数αを減算することにより、新たな補正値を算出する。
【０２６６】
このように、補正部１４ｃは、閾値の補正値を、前回算出した補正値を用いて算出する。このため、補正部１４ｃは、１つの算出区間内（つまり図１１の時間間隔Ｔｓ）だけでは、適切な補正値を算出できない場合でも、次の算出区間以降の算出処理に、前回算出した補正値を用いることで、長期にわたる通過量及び入力量に基づいた適切な補正値を算出できる。
【０２６７】
また、補正部１４ｃは、閾値の補正値を、当該ポリサ＃ｉのパケットの入力量ＮＩ（ｉ）に対する通過量ＮＰ（ｉ）の比率、及び他のポリサ＃ｊ，＃ｋのパケットの入力量の合計ΣＮＩ（ｓ）に対する通過量の合計ΣＮＰ（ｓ）の比率を等しくする条件（式（７））に基づいて算出する。このため、補正部１４ｃは、当該ポリサ＃ｉと他のポリサ＃ｊ，＃ｋの通過率を等しくする補正値を、高精度に算出できる。
【０２６８】
また、式（７）によれば、補正部１４ｃは、ポリサ＃ｉのパケットの通過量ＮＰ（ｉ）及び入力量ＮＩ（ｉ）と、他のポリサ＃ｊ，＃ｋのパケットの通過量の合計ΣＮＰ（ｓ）及び入力量の合計ΣＮＩ（ｓ）とを用いて変数αを算出する。このため、通過量管理テーブル２１ａ及び入力量管理テーブル２２には、他のポリサ＃ｊ，＃ｋの個別の通過量及び入力量に代えて、他のポリサ＃ｊ，＃ｋの通過量の合計及び入力量の合計が登録されてもよい。
【０２６９】
図３７（ａ）及び図３７（ｂ）には、通過量管理テーブル２１ａ及び入力量管理テーブル２２の他例がそれぞれ示されている。本例の通過量管理テーブル２１ａには、ポリサ番号ごとに、当該ポリサの通過量と、同一グループに属する他のポリサの通過量の合計が登録されている。
【０２７０】
例えば、ポリサ番号「１」について、当該ポリサ＃１の通過量１００００（Ｂｙｔｅ）と、同一グループの他のポリサ＃２，＃Ｎの通過量の合計１５０００（Ｂｙｔｅ）とが登録されている。これに対し、図３５（ａ）に示された通過量管理テーブル２１ａには、ポリサ番号「１」について、ポリサ＃１の通過量１００００（Ｂｙｔｅ）と、ポリサ＃２の通過量１００００（Ｂｙｔｅ）と、ポリサ＃Ｎの通過量５０００（Ｂｙｔｅ）とが個別に登録されている。
【０２７１】
また、本例の入力量管理テーブル２２には、ポリサ番号ごとに、当該ポリサの入力量と、同一グループに属する他のポリサの入力量の合計が登録されている。
【０２７２】
例えば、ポリサ番号「１」について、当該ポリサ＃１の入力量２５０００（Ｂｙｔｅ）と、同一グループの他のポリサ＃２，＃Ｎの入力量の合計４３０００（Ｂｙｔｅ）とが登録されている。これに対し、図３５（ｂ）に示された入力量管理テーブル２２には、ポリサ番号「１」について、ポリサ＃１の入力量２５０００（Ｂｙｔｅ）と、ポリサ＃２の入力量３００００（Ｂｙｔｅ）と、ポリサ＃Ｎの入力量１３０００（Ｂｙｔｅ）とが個別に登録されている。
【０２７３】
このように、通過量管理テーブル２１ａ及び入力量管理テーブル２２に、他のポリサ＃ｊ，＃ｋの通過量の合計及び入力量の合計をそれぞれ登録することにより、通過量管理テーブル２１ａ及び入力量管理テーブル２２に登録される情報量が低減される。
【０２７４】
次に、図３４に示された実施例の帯域制御方法における各処理を説明する。
【０２７５】
図３８は、パケットの処理の一例を示すフローチャートである。ポリシング部１０ａは、トークン管理テーブル２０からトークンの蓄積量Ｔｃ及び補正値（±Δｔｈ）を取得する（ステップＳｔ７１）。
【０２７６】
次に、ポリシング部１０ａは、トークンの蓄積量Ｔｃと補正値（＝補正後の閾値）を比較する（ステップＳｔ７２）。トークンの蓄積量Ｔｃが、補正値より多い場合（ステップＳｔ７２のＹｅｓ）、ポリシング部１０ａは、入力されたパケットを通過させる（ステップＳｔ７３）。
【０２７７】
次に、通過量通知部１１ｂは、通過させたパケットの長さＤｉを検出して、通過量管理テーブル２１ａ内の当該ポリサ番号「ｉ」の通過量に加算することにより、通過量を更新する（ステップＳｔ７４）。次に、入力量通知部１５は、通過させたパケットの長さＤｉを検出して、入力量管理テーブル２２内の当該ポリサ番号「ｉ」の入力量に加算することにより、入力量を更新する（ステップＳｔ７５）。その後、処理は終了する。
【０２７８】
一方、トークンの蓄積量Ｔｃが、補正値以下である場合（ステップＳｔ７２のＮｏ）、ポリシング部１０ａは、パケットを廃棄する（ステップＳｔ７６）。次に、入力量通知部１５は、廃棄されたパケットの長さを検出して、入力量管理テーブル２２内の当該ポリサ番号「ｉ」の入力量に加算することにより、入力量を更新する（ステップＳｔ７５）。その後、処理は終了する。このようにして、パケットの処理は行われる。
【０２７９】
図３９は、トークンの供給処理の一例を示すフローチャートである。トークン管理部１２ａは、トークンの供給タイミングＴｉが到来すると、トークン管理テーブル２０から当該ポリサ番号「ｉ」の最大蓄積量、供給量Ｔｍ、及び蓄積量Ｔｃを取得する（ステップＳｔ８１）。なお、トークン管理部１２ａは、例えば、内蔵タイマによりトークン供給タイミングＴｉを検出する。
【０２８０】
次に、トークン管理部１２ａは、蓄積量Ｔｃと供給量Ｔｍの和が、最大蓄積量以下であるか否かを判定する（ステップＳｔ８２）。蓄積量Ｔｃと供給量Ｔｍの和が、最大蓄積量以下である場合（ステップＳｔ８２のＹｅｓ）、トークン管理部１２ａは、蓄積量Ｔｃに供給量を加算する（ステップＳｔ８３）。また、蓄積量Ｔｃと供給量Ｔｍの和が、最大蓄積量より多い場合（ステップＳｔ８２のＮｏ）、トークン管理部１２ａは、蓄積量Ｔｃを最大供給量とする（ステップＳｔ８７）。
【０２８１】
次に、トークン管理部１２ａは、通過量管理テーブル２１ａから同一グループ内の全ポリサ番号「ｉ」，「ｊ」，「ｋ」の通過量を取得する（ステップＳｔ８４）。次に、トークン管理部１２ａは、蓄積量Ｔｃから、取得した各ポリサ＃ｉ，＃ｊ，＃ｋの通過量を減算する（ステップＳｔ８５）。次に、トークン管理部１２ａは、トークン管理テーブル２０の蓄積量Ｔｃを更新し（ステップＳｔ８６）、処理を終了する。このようにして、トークンの供給処理は行われる。
【０２８２】
このように、本実施例では、トークンの供給タイミングに同期して、トークンの蓄積量Ｔｃから、当該ポリサ＃ｉ及び他のポリサ＃ｊ，＃ｋの通過量がまとめて減算されるため、帯域制御が容易である。なお、トークン管理部１２ａは、これとは異なり、図８に示された実施例と同様に、当該ポリサ＃ｉがパケットを通過させたとき、及び他のポリサ＃ｊ，＃ｋから通過情報を受信したときにパケットの長さ分を、蓄積量Ｔｃから減算してもよい。
【０２８３】
図４０は、補正値の算出処理の一例を示すフローチャートである。補正値の算出処理は、上記のトークンの供給処理の後に実行される。
【０２８４】
補正部１４ｃは、トークン管理テーブル２０から当該ポリサ番号「ｉ」の補正値（±Δｔｈ）を取得する（ステップＳｔ６１）。次に、補正部１４ｃは、通過量管理テーブル２１ａから同一グループ内の全ポリサ番号「ｉ」，「ｊ」，「ｋ」の通過量を取得する（ステップＳｔ６２）。次に、補正部１４ｃは、入力量管理テーブル２２から同一グループ内の全ポリサ番号「ｉ」，「ｊ」，「ｋ」の入力量を取得する（ステップＳｔ６３）。
【０２８５】
次に、補正部１４ｃは、上記の式（７）から変数αを算出する（ステップＳｔ６４）。次に、補正部１４ｃは、上記の式（８）から、変数αを用いて補正値を算出する（ステップＳｔ６５）。
【０２８６】
次に、補正部１４ｃは、通過量管理テーブル２１ａ内の全ポリサ番号「ｉ」，「ｊ」，「ｋ」の通過量と、入力量管理テーブル２２の全ポリサ番号「ｉ」，「ｊ」，「ｋ」の入力量を０にクリアして（ステップＳｔ６６）、処理を終了する。このようにして、補正値の算出処理は行われる。
【０２８７】
本実施例において、補正部１４ｃは、パケットの入力量及び通過量から、上記の式（７）に基づいて変数αを算出したが、これに限定されず、パケットの廃棄量及び通過量から変数αを算出してもよい。
【０２８８】
図４１は、通過率を制御する帯域制御部８１の他の実施例を示す構成図である。図４１において、図３４及び図８と共通する構成については同一の符号を付し、その説明を省略する。なお、図４１には、同一グループ内のポリサ＃ｉ，＃ｊ，＃ｋのうち、ポリサ＃ｉの構成のみが示されているが、他のポリサ＃ｊ，＃ｋも同様の構成を備える。ポリサ＃ｉ，＃ｊ，＃ｋは、共通のネットワークインターフェースカード９１、または個別のネットワークインターフェースカード９１に実装されている。
【０２８９】
ポリサ＃ｉは、ポリシング部１０ａと、通過量通知部１１ｂと、トークンバケット１９ｃとして機能するトークン管理部１２ａと、補正部１４ｄと、廃棄量通知部１６とを有する。
【０２９０】
廃棄量通知部１６は、廃棄されたパケットＰ２の長さを検出し、記憶部９１５に格納された廃棄量管理テーブル２３に通知する。他のポリサ＃ｊ，＃ｋの廃棄量通知部１６も、同様に、廃棄されたパケットＰ２の長さを検出し、廃棄量管理テーブル２３に通知する。通知されたパケットＰ２の長さは、廃棄量管理テーブル２３内の当該ポリサ番号の廃棄量に加算される。なお、廃棄量管理テーブル２３には、通過量管理テーブル２１ａや入力量管理テーブル２２と同様の「ポリサ番号」及び「グループ内ポリサ番号」に、パケットの「廃棄量［Ｂｙｔｅ］」が対応付けられて登録されている。
【０２９１】
補正部１４ｄは、当該ポリサ＃ｉ及び他のポリサ＃ｊ，＃ｋのパケットの入力量を、各々のパケットの通過量及び廃棄量からそれぞれ算出する。より具体的には、パケットの入力量は、通過量及び廃棄量を合計することにより算出される。
【０２９２】
ＮＩ（ｉ）＝ＮＰ（ｉ）＋ＮＤ（ｉ）  ・・・（９）
ΣＮＩ（ｓ）＝ΣＮＰ（ｓ）＋ΣＮＤ（ｓ） ・・・（１０）
【０２９３】
当該ポリサ＃ｉのパケットの廃棄量をＮＤ（ｉ）とし、他のポリサ＃ｊ，＃ｋのパケットの廃棄量の合計をΣＮＤ（ｓ）とした場合、当該ポリサ＃ｉのパケットの入力量ＮＩ（ｉ）及び他のポリサ＃ｊ，＃ｋのパケットの入力量の合計ΣＮＩ（ｓ）は、上記の式（９）及び式（１０）でそれぞれ算出される。
【０２９４】
α＝（ＮＤ（ｉ）×ΣＮＰ（ｓ）−ＮＰ（ｉ）×ΣＮＤ（ｓ））／
（ＮＰ（ｉ）＋ＮＤ（ｉ）＋ΣＮＰ（ｓ）＋ΣＮＤ（ｓ）） ・・・（１１）
【０２９５】
したがって、変数αは、上記の式（７）、式（９）、及び式（１０）に基づき、上記の式（１１）により算出される。
【０２９６】
補正部１４ｄは、図３４に示された実施例と同様に、算出した変数αに基づいて補正値（±Δｔｈ）を算出する。補正部１４ｄは、補正値の算出後、通過量管理テーブル２１ａ内の通過量及び廃棄量管理テーブル２３内の廃棄量を０にクリアする。なお、補正値の算出処理は、トークンの供給後に行われる。
【０２９７】
本実施例によれば、ポリサ＃ｉ，＃ｊ，＃ｋは、パケットの入力量を累計することなく、補正値を算出することができる。また、ポリサ＃ｉ，＃ｊ，＃ｋは、パケットの通過量を累計せずに、パケットの入力量及び廃棄量から通過量を算出してもよい。
【０２９８】
図４２は、通過率を制御する帯域制御部８１の他の実施例を示す構成図である。図４２において、図３４、図４１、及び図８と共通する構成については同一の符号を付し、その説明を省略する。なお、図４２には、同一グループ内のポリサ＃ｉ，＃ｊ，＃ｋのうち、ポリサ＃ｉの構成のみが示されているが、他のポリサ＃ｊ，＃ｋも同様の構成を備える。ポリサ＃ｉ，＃ｊ，＃ｋは、共通のネットワークインターフェースカード９１、または個別のネットワークインターフェースカード９１に実装されている。
【０２９９】
ポリサ＃ｉは、ポリシング部１０ａと、トークンバケット１９ｃとして機能するトークン管理部１２ａと、補正部１４ｅと、入力量通知部１５と、廃棄量通知部１６と、減算部１７とを有する。
【０３００】
補正部１４ｅは、当該ポリサ＃ｉ及び他のポリサ＃ｊ，＃ｋのパケットの通過量を、各々のパケットの入力量及び廃棄量からそれぞれ算出する。より具体的には、パケットの通過量は、入力量から廃棄量を減算することにより算出される。
【０３０１】
ＮＰ（ｉ）＝ＮＩ（ｉ）−ＮＤ（ｉ）  ・・・（１２）
ΣＮＰ（ｓ）＝ΣＮＩ（ｓ）−ΣＮＤ（ｓ） ・・・（１３）
【０３０２】
すなわち、当該ポリサ＃ｉのパケットの通過量ＮＩ（ｉ）及び他のポリサ＃ｊ，＃ｋのパケットの通過量の合計ΣＮＰ（ｓ）は、上記の式（１２）及び式（１３）でそれぞれ算出される。
【０３０３】
α＝（ＮＤ（ｉ）×ΣＮＩ（ｓ）−ＮＩ（ｉ）×ΣＮＤ（ｓ））／
（ＮＩ（ｉ）＋ΣＮＩ（ｓ））     ・・・（１４）
【０３０４】
したがって、変数αは、上記の式（７）、式（１２）、及び式（１３）に基づき、上記の式（１４）により算出される。
【０３０５】
補正部１４ｅは、図３４に示された実施例と同様に、算出した変数αに基づいて補正値（±Δｔｈ）を算出する。補正部１４ｅは、補正値の算出後、入力量管理テーブル２２内の入力量及び廃棄量管理テーブル２３内の廃棄量を０にクリアする。なお、補正値の算出処理は、トークンの供給後に行われる。
【０３０６】
また、減算部１７は、当該ポリサ＃ｉ及び他のポリサ＃ｊ，＃ｋのパケットの通過量を、各々のパケットの入力量から廃棄量から減算することにより算出する。パケットの入力量及び廃棄量は、入力量管理テーブル２２及び廃棄量管理テーブル２３からそれぞれ取得される。減算部１７は、トークンの供給タイミングに同期するように、算出したパケットの通過量をトークン管理部１２ａに通知する。
【０３０７】
本実施例によれば、ポリサ＃ｉ，＃ｊ，＃ｋは、パケットの通過量を累計することなく、補正値を算出することができる。なお、図３４、図４１、及び図４２に示された実施例において、補正部１４ｃ〜１４ｅは、トークンバケット１９ｃの底である閾値を補正したが、図１８を参照して述べたように、閾値に代えて、トークンの蓄積量Ｔｃを補正してもよい。
【０３０８】
次に、通過率公平制御を行うポリサのパケットの出力レートのシミュレーション結果を、比較例のポリサ（図４参照）及び通過量公平制御のポリサ（図８参照）と比較して説明する。図４３には、本シミュレーションの条件が示されている。
【０３０９】
本シミュレーションにおいて、グループ化されたポリサ＃１〜＃３は、ネットワークインターフェースカード（＃１〜＃３）９１にそれぞれ実装されている。ポリサ＃１〜＃３は、パケットの入力レートが、それぞれ、５０（Ｇｂｐｓ）、４０（Ｇｂｐｓ）、及び１０（Ｇｂｐｓ）であり、合計５０（Ｇｂｐｓ）のポリシングレートでパケットの通過帯域が制限される。
【０３１０】
したがって、ポリサ＃１〜＃３の出力レートの期待値は、通過量公平制御の場合、それぞれ、２０（Ｇｂｐｓ）、２０（Ｇｂｐｓ）、及び１０（Ｇｂｐｓ）であり、通過率公平制御の場合、それぞれ、２５（Ｇｂｐｓ）、２０（Ｇｂｐｓ）、及び５（Ｇｂｐｓ）である。ポリサ＃１〜＃３から出力されたパケットは、スイッチカード９２を介して、出力側のネットワークインターフェースカード（＃４）９１に入力される。
【０３１１】
図４４には、本シミュレーション結果の出力レートが示されている。ポリサ＃１〜＃３の各出力レートは、図４に示された比較例（「比較例」参照）、図８に示された実施例（「通過量公平制御」参照）、及び図３４に示された実施例（「通過率公平制御」参照）について、期待値とともに示されている。
【０３１２】
また、ポリサ＃１〜＃３の出力レートは、ポリサ間のトークン供給タイミングが同期する場合（「トークン同期時」参照）と、ポリサ間のトークン供給タイミングが非同期である場合（「トークン非同期時」参照）とに分けて示されている。なお、トークン非同期時において、各ポリサ＃１〜＃３のトークン供給タイミングは、１周期Ｔｓの３分の１ずつずれている。
【０３１３】
比較例において、トークン同期時、ポリサ＃１〜＃３の出力レートは、入力レートに依存して、通過率が同等となるように制御される。一方、トークン非同期時、ポリサ＃１は、トークン供給タイミングが他のポリサ＃２，＃３に先行するため、全てのトークンを消費してパケットを通過させる。したがって、ポリサ＃１の出力レートは５０（Ｇｂｐｓ）となり、他のポリサ＃２，＃３の出力レートは０（Ｇｂｐｓ）となる。
【０３１４】
通過量公平制御において、ポリサ＃１〜＃３の各出力レートは、トークン同期時及びトークン非同期時の両方で、期待値通り、通過量が公平となるように制御されている。また、通過率公平制御において、ポリサ＃１〜＃３の各出力レートは、トークン同期時及びトークン非同期時の両方で、期待値通り、通過率（本例では約５０（％））が公平となるように制御されている。
【０３１５】
これまで述べたように、本実施例に係る帯域制御装置（ポリサ＃ｉ）は、入力されたパケットの通過の可否を、個別の通過許容量（蓄積量）Ｔｃ及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置（ポリサ＃ｉ，＃ｊ，＃ｋ）のグループに属する。
【０３１６】
帯域制御装置は、管理部（トークン管理部）１２ａと、補正部１４ｃ〜１４ｅとを有する。管理部１２ａは、複数の帯域制御装置のうち、自装置（ポリサ＃ｉ）及び１以上の他の帯域制御装置（ポリサ＃ｊ，＃ｋ）のパケットの通過量を自装置の通過許容量から減算する。補正部１４ｃ〜１４ｅは、自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの入力量に対する通過量の比率と、１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正する。
【０３１７】
上記の構成によると、パケットの通過の可否が、同一グループの各帯域制御装置のパケットの通過量が減算される通過許容量Ｔｃと、閾値との比較結果に基づいてそれぞれ判定される。このため、複数の帯域制御装置に入力されるパケットの合計帯域を、全体的に制限することが可能である。
【０３１８】
また、補正部１４ｃ〜１４ｅは、自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの入力量に対する通過量の比率と、１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正する。これにより、帯域制御装置は、同一グループの他の帯域制御装置と比較して、パケットの通過率が多い場合、パケットを通過させにくくなり、パケットの通過率が少ない場合、パケットを通過させやすくなる。
【０３１９】
したがって、本実施例に係る帯域制御装置は、同一グループの他の帯域制御装置とのパケットの通過帯域の差を低減することができる。
【０３２０】
また、本実施例に係る帯域制御方法は、同一のグループに属する複数の帯域制御装置（ポリサ＃ｉ，＃ｊ，＃ｋ）が、各々に入力されたパケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する方法である。本実施例に係る帯域制御方法は、以下の工程を含む。
工程（１）：複数の帯域制御装置のうち、１つの帯域制御装置または１以上の他の帯域制御装置のパケットの通過量を該１つの帯域制御装置の通過許容量から減算する。
工程（２）：該１つの帯域制御装置の通過許容量または閾値を、１つの帯域制御装置のパケットの入力量に対する通過量の比率と、１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正する。
【０３２１】
本実施例に係る帯域制御方法は、上記の帯域制御装置と同様の構成を含むので、上述した内容と同様の作用効果を奏する。
【０３２２】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０３２３】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  パケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置のグループに属する帯域制御装置において、前記複数の帯域制御装置のうち、自装置または１以上の他の帯域制御装置がパケットを通過させるたびに自装置の前記通過許容量を減算する管理部と、自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正する補正部とを有することを特徴とする帯域制御装置。
（付記２）  前記補正部は、前記通過許容量または前記閾値の補正値を、自装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量の平均値との差として算出することを特徴とする付記１に記載の帯域制御装置。
（付記３）  前記補正部は、前記通過許容量または前記閾値の補正値を、前回算出した補正値に、自装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量の平均値との差を加えることにより算出することを特徴とする付記１に記載の帯域制御装置。
（付記４）  前記補正部は、前記１以上の他の帯域制御装置のうち、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下である帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする付記２または３に記載の帯域制御装置。
（付記５）  前記補正部は、前記１以上の他の帯域制御装置の各々の前記通過許容量が、前記閾値または前記閾値に所定値を加算して得た値より大きい場合、現在の補正値を維持することを特徴とする付記４に記載の帯域制御装置。
（付記６）  前記補正部は、さらに、新たに算出した補正値が現在の補正値以上である場合、現在の補正値を維持することを特徴とする付記５に記載の帯域制御装置。
（付記７）  前記補正部は、前記１以上の他の帯域制御装置のうち、複数回の補正値の算出において、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下となった回数が一定の回数を上回る帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする付記２または３に記載の帯域制御装置。
（付記８）  前記補正部は、前記１以上の他の帯域制御装置のうち、複数回の補正値の算出において、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下となった回数が一定の回数を上回り、かつ、パケットの通過量が自装置より多い帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする付記２または３に記載の帯域制御装置。
（付記９）  入力されたパケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する複数の帯域制御装置のグループに属する帯域制御装置において、
前記複数の帯域制御装置のうち、自装置及び１以上の他の帯域制御装置のパケットの通過量を自装置の前記通過許容量から減算する管理部と、
自装置の前記通過許容量または自装置の前記閾値を、自装置のパケットの入力量に対する通過量の比率と、前記１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正する補正部とを有することを特徴とする帯域制御装置。
（付記１０）  前記補正部は、前記通過許容量または前記閾値の補正値を、自装置のパケットの入力量に対する通過量の比率、及び前記１以上の他の帯域制御装置のパケットの入力量の合計に対する通過量の合計の比率を等しくする条件に基づいて算出することを特徴とする付記９に記載の帯域制御装置。
（付記１１）  前記補正部は、前記通過許容量または補正値を、前回算出した補正値を用いて算出することを特徴とする付記９または１０に記載の帯域制御装置。
（付記１２）  前記補正部は、自装置及び前記１以上の他の帯域制御装置の前記入力量を、各々のパケットの通過量及び廃棄量からそれぞれ算出することを特徴とする付記９乃至１１の何れかに記載の帯域制御装置。
（付記１３）  前記補正部は、自装置及び前記１以上の他の帯域制御装置の前記通過量を、各々のパケットの入力量及び廃棄量からそれぞれ算出することを特徴とする付記９乃至１１の何れかに記載の帯域制御装置。
（付記１４）  同一のグループに属する複数の帯域制御装置が、パケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する帯域制御方法において、
前記複数の帯域制御装置のうち、１つの装置または１以上の他の帯域制御装置がパケットを通過させるたびに前記１つの装置の前記通過許容量を減算し、
前記１つの装置の前記通過許容量または前記１つの装置の前記閾値を、前記１つの装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量との比較結果に基づいて補正することを特徴とする帯域制御方法。
（付記１５）  前記通過許容量または前記閾値の補正値を、前記１つの装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量の平均値との差として算出することを特徴とする付記１４に記載の帯域制御方法。
（付記１６）  前記通過許容量または前記閾値の補正値を、前回算出した補正値に、前記１つの装置のパケットの通過量と、前記１以上の他の帯域制御装置のパケットの通過量の平均値との差を加えることにより算出することを特徴とする付記１５に記載の帯域制御方法。
（付記１７）  前記１以上の他の帯域制御装置のうち、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下である帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする付記１５または１６に記載の帯域制御方法。
（付記１８）  前記１以上の他の帯域制御装置の各々の前記通過許容量が、前記閾値または前記閾値に所定値を加算して得た値より大きい場合、現在の補正値を維持することを特徴とする付記１７に記載の帯域制御方法。
（付記１９）  さらに、新たに算出した補正値が現在の補正値以上である場合、現在の補正値を維持することを特徴とする付記１８に記載の帯域制御方法。
（付記２０）  前記１以上の他の帯域制御装置のうち、複数回の補正値の算出において、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下となった回数が一定の回数を上回る帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする付記１５または１６に記載の帯域制御方法。
（付記２１）  前記１以上の他の帯域制御装置のうち、複数回の補正値の算出において、前記通過許容量が前記閾値以下、または前記閾値に所定値を加算して得た値以下となった回数が一定の回数を上回り、かつ、パケットの通過量が前記１つの装置より多い帯域制御装置のパケットの通過量の前記平均値を算出することを特徴とする付記１５または１６に記載の帯域制御方法。
（付記２２）  同一のグループに属する複数の帯域制御装置が、各々に入力されたパケットの通過の可否を、個別の通過許容量及び閾値の比較結果に基づいて判定し、該判定結果に従って、パケットを通過させ、または廃棄する帯域制御方法において、
前記複数の帯域制御装置のうち、１つの帯域制御装置または１以上の他の帯域制御装置のパケットの通過量を前記１つの帯域制御装置の前記通過許容量から減算し、
前記１つの帯域制御装置の前記通過許容量または前記閾値を、前記１つの帯域制御装置のパケットの入力量に対する通過量の比率と、前記１以上の他の帯域制御装置のパケットの入力量に対する通過量の比率との比較結果に基づいて補正することを特徴とする帯域制御方法。
（付記２３）  前記１つの帯域制御装置の前記通過許容量または前記閾値の補正値を、前記１つの帯域制御装置のパケットの入力量に対する通過量の比率、及び前記１以上の他の帯域制御装置のパケットの入力量の合計に対する通過量の合計の比率を等しくする条件に基づいて算出することを特徴とする付記２２に記載の帯域制御方法。
（付記２４）  前記通過許容量または前記閾値の補正値を、前回算出した補正値を用いて算出することを特徴とする付記２２または２３に記載の帯域制御方法。
（付記２５）  前記１つの帯域制御装置及び前記１以上の他の帯域制御装置の前記入力量を、各々のパケットの通過量及び廃棄量からそれぞれ算出することを特徴とする付記２２乃至２４の何れかに記載の帯域制御方法。
（付記２６）  前記１つの帯域制御装置及び前記１以上の他の帯域制御装置の前記通過量を、各々のパケットの入力量及び廃棄量からそれぞれ算出することを特徴とする付記２２乃至２４の何れかに記載の帯域制御方法。
【符号の説明】
【０３２４】
１０，１０ａ    ポリシング部
１２，１２ａ    トークン管理部（管理部）
１１，１１ａ    通過量通知部
１４ａ〜１４ｅ   補正部
２０     トークン管理テーブル
２１，２１ａ    通過量管理テーブル
２２     入力量管理テーブル
２３     廃棄量管理テーブル
８１     帯域制御部
９１０    光送受信器
【図１】
2015216618.tif 000003
【図２】
2015216618.tif 000004
【図３】
2015216618.tif 000005
【図４】
2015216618.tif 000006
【図５】
2015216618.tif 000007
【図６】
2015216618.tif 000008
【図７】
2015216618.tif 000009
【図８】
2015216618.tif 000010
【図９】
2015216618.tif 000011
【図１０】
2015216618.tif 000012
【図１１】
2015216618.tif 000013
【図１２】
2015216618.tif 000014
【図１３】
2015216618.tif 000015
【図１４】
2015216618.tif 000016
【図１５】
2015216618.tif 000017
【図１６】
2015216618.tif 000018
【図１７】
2015216618.tif 000019
【図１８】
2015216618.tif 000020
【図１９】
2015216618.tif 000021
【図２０】
2015216618.tif 000022
【図２１】
2015216618.tif 000023
【図２２】
2015216618.tif 000024
【図２３】
2015216618.tif 000025
【図２４】
2015216618.tif 000026
【図２５】
2015216618.tif 000027
【図２６】
2015216618.tif 000028
【図２７】
2015216618.tif 000029
【図２８】
2015216618.tif 000030
【図２９】
2015216618.tif 000031
【図３０】
2015216618.tif 000032
【図３１】
2015216618.tif 000033
【図３２】
2015216618.tif 000034
【図３３】
2015216618.tif 000035
【図３４】
2015216618.tif 000036
【図３５】
2015216618.tif 000037
【図３６】
2015216618.tif 000038
【図３７】
2015216618.tif 000039
【図３８】
2015216618.tif 000040
【図３９】
2015216618.tif 000041
【図４０】
2015216618.tif 000042
【図４１】
2015216618.tif 000043
【図４２】
2015216618.tif 000044
【図４３】
2015216618.tif 000045
【図４４】
2015216618.tif 000046