(57)【要約】【課題】  通知する情報量が低減された帯域制御が可能なパケット中継装置及び帯域制御方法を提供する。【解決手段】  パケット中継装置は、通過するパケットの帯域をそれぞれ制御する複数の帯域制御部を有し、前記複数の帯域制御部は、それぞれ、一定のレートで供給されパケットの通過により減算される通過許容量に基づきパケットの通過の可否を判定し、該判定結果に従ってパケットを通過させ、または廃棄する通過制御部と、一定の期間ごとにパケットの通過量を計測し、前記複数の帯域制御部のうち、他の帯域制御部に前記通過量の上位側の桁の数値を通知して、前記通過量の下位側の桁の数値を、次の期間に計測する前記通過量に引き継ぐ通過量管理部と、前記他の帯域制御部から通知された前記上位側の桁の数値を該桁に戻すことにより仮通過量を得る通過量取得部と、前記仮通過量を前記通過許容量から減算する通過許容量管理部とを有する。【選択図】図９
2016201664.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）のパケット処理をそれぞれ行う。入力処理部９１２は、ＰＨＹ／ＭＡＣ部９１１から入力されたパケットの帯域制御処理などを行って、スイッチカード９２にパケットを出力する。
【００２８】
出力処理部９１３は、スイッチカード９２から入力されたパケットの送信レートの制御処理などを行って、ＰＨＹ／ＭＡＣ部９１１にパケットを出力する。記憶部９１５は、メモリなどの記憶手段であり、入力処理部９１２及び出力処理部９１３が処理に用いる各種のデータを記憶する。
【００２９】
制御部９１４は、コントロールカード９３と通信を行い、入力処理部９１２及び出力処理部９１３の制御を行う。制御部９１４は、ＣＰＵなどのプロセッサ及びメモリ（図示せず）を備える。制御部９１４の処理としては、例えば、入力処理部９１２及び出力処理部９１３の各種の設定処理、及び入力処理部９１２及び出力処理部９１３で検出された警報の収集処理などが挙げられる。
【００３０】
図３には、パケット中継装置内のパケットの経路が示されている。なお、図３は、入力処理部９１２及び出力処理部９１３の構成も示す。
【００３１】
まず、パケットは、ＩＦカード９１の入力処理部９１２に入力される。入力処理部９１２は、フロー判定部８０と、帯域制御部８１と、分配部８２と、複数の入力キュー８３と、出力部８４とを有する。
【００３２】
フロー判定部８０は、入力されたパケットに付与されたＶＩＤやＭＰＬＳラベルなどに基づいてパケットのトラフィック、つまりフローを判定する。フロー判定部８０は、判定後、例えばパケットのフローに応じたＰＩＤ（Policer ID：ポリサ識別子）をパケットに付与する。なお、ＰＩＤは、例えばパケット中継装置内でパケットに付与された装置内ヘッダに格納される。
【００３３】
帯域制御部８１は、ＰＩＤに対応する複数のポリサ＃１〜＃Ｍ（Ｍ：正の整数）を有する。帯域制御部８１は、例えばパケットに付与されたＰＩＤに基づきパケットを複数のポリサ＃１〜＃Ｍに振り分ける。このため、例えば同一のユーザのパケットが異なるポート９１０から入力された場合でも、そのユーザのパケットは共通のポリサ＃１〜＃Ｍに入力される。複数のポリサ＃１〜＃Ｍは、入力されるパケットのトラフィック量が所定の帯域を超えないように、所定帯域を超える分のパケットを廃棄する。
【００３４】
ポリサ＃１〜＃Ｍは、一定のポリシングレートで供給されるトークンを消費することでパケットを通過させ、トークンが不足する場合、パケットを廃棄することにより、帯域制御部８１を通過するパケットの帯域を制御する。トークンは、パケットを通過させるための通過許容量の一例である。ポリサ＃１〜＃Ｍは、ユーザのトラフィックごとに帯域を制御するため、各ポリサ＃１〜＃Ｍのトークンの供給レート、つまりリシングレートは、ユーザが契約した帯域などに応じて決定される。ポリサ＃１〜＃Ｍを通過したパケットは、分配部８２に入力される。
【００３５】
分配部８２は、パケットを宛先となるＩＦカード９１に応じて複数の入力キュー８３に分配する。つまり、入力キュー８３は、ＩＦカード９１ごとに設けられている。複数の入力キュー８３は、パケットを出力部８４により読み出されるまで蓄積する。出力部８４は、複数の入力キュー８３から１つを選択して、選択した入力キュー８３からパケットを読み出して、スイッチカード９２のスイッチ部９２０に出力する。スイッチ部９２０は、入力されたパケットを宛先に応じたＩＦカード９１の出力処理部９１３に出力する。
【００３６】
出力処理部９１３は、分配部７０と、複数のキュー７１と、読み出し処理部７２と、シェーパ（スケジューラ）７３とを有する。スイッチ部９２０から出力されたパケットは、分配部７０に入力される。分配部７０は、例えば、上記のユーザのトラフィックごとにパケットを複数のキュー７１に分配する。
【００３７】
読み出し処理部７２は、シェーパ７３からの指示に従って、複数のキュー７１からパケットを読み出す。読み出されたパケットは、ポート９１０から他装置に送信される。
【００３８】
シェーパ７３は、分配部７０から、複数のキュー７１にそれぞれ格納されたパケットの情報（パケットのデータ量など）などを取得し、取得した情報に基づいて、複数のキュー７１から、読み出し対象となるキューを読み出し処理部７２に指示する。これにより、トラフィックごとの送信レートが適切に制御される。
【００３９】
図４は、帯域制御部８１の一例を示す構成図である。帯域制御部８１は、上記の複数のポリサ＃１〜＃Ｍと、トークン管理テーブル２０と、通過量管理テーブル３０と、通過量通知部３１と、仮通過量管理テーブル４０と、通過量受信部４１と、ポリサテーブル５０と、ＭＳＢ設定部５１とを含む。帯域制御部８１は、ポリサ＃１〜＃Ｍを通過するパケットの帯域を制御する。
【００４０】
複数のポリサ＃１〜＃Ｍは、それぞれ、ポリシング部１と、トークンバケット２として機能するトークン管理部２１とを有する。なお、図４には、複数のポリサ＃１〜＃Ｍのうち、ポリサ＃ｉ（ｉ：正の整数）の構成のみが示されているが、他のポリサもポリサ＃ｉと同様の構成を有する。
【００４１】
ポリサ＃ｉは、他のＩＦカード９１のポリサ＃ｉと同一のグループに属し、グループポリシングを行う。すなわち、複数のＩＦカード９１間において同一のＰＩＤのポリサは、同一のグループに属する。このため、各ＩＦカード９１において、ポリシング部１及びトークン管理部２１は、グループごとに設けられている。なお、グループ化されるポリサの数に限定はない。
【００４２】
トークンバケット２は、一定のポリシングレートで供給されるトークンを蓄積する。ポリシングレート（＝１度のトークンの供給量Ｔｍ／トークンが供給される時間間隔Ｔｓ）は、入力されるトラフィックについて、ユーザが契約した帯域に応じて決定される。なお、トークンバケット２は、トークンの蓄積量Ｔｃの管理手段として示された概念上の構成である。
【００４３】
また、ポリシングレートは、同一グループに属するポリサ＃ｉ間において同一の値に設定される。つまり、各ＩＦカード９１間において、同一グループに属するポリサのポリシングレートは共通である。また、同一グループに属する何れかのポリサ＃ｉがパケットを通過させると、全てのポリサ＃ｉのトークンが減少する。
【００４４】
これにより、複数の異なるＩＦカード９１のポリサ#iにわたって入力される同一ユーザのトラフィックの合計帯域、または異なるユーザのトラフィックの合計帯域が、全体的に制限される。
【００４５】
トークン管理部２１は、記憶部９１５に格納されたトークン管理テーブル２０によりトークンの蓄積量Ｔｃなどを管理する。
【００４６】
図５には、トークン管理テーブル２０の一例が示されている。トークン管理テーブル２０には、「最大蓄積量（Ｔｍａｘ）［Ｂｙｔｅ］」、「供給量（Ｔｍ）［Ｂｙｔｅ］」、及び「蓄積量（Ｔｃ）［Ｂｙｔｅ］」がＰＩＤごとに登録されている。なお、トークン管理テーブル２０は、各ポリサ＃１〜＃Ｍ間において共有される。
【００４７】
「蓄積量（Ｔｃ）［Ｂｙｔｅ］」は、トークンバケット２内のトークンの蓄積量Ｔｃを、Ｂｙｔｅ単位で示し、「最大蓄積量（Ｔｍａｘ）［Ｂｙｔｅ］」は、トークンバケット２内に蓄積可能なトークンの最大量を、Ｂｙｔｅ単位で示す。蓄積量Ｔｃは、最大蓄積量を超えないように制限される。「供給量（Ｔｍ）［Ｂｙｔｅ］」は、時間間隔Ｔｓで周期的に供給されるトークンの量Ｔｍを、Ｂｙｔｅ単位で示す。
【００４８】
同一グループ内において、トークンの最大蓄積量Ｔｍａｘ及び供給量Ｔｍは、ポリシングレートが共通であるため、各ポリサ間で共通である。例えば、同一グループであるＩＦカード９１の各ポリサ＃１は、ともに、トークンの最大蓄積量Ｔｍａｘ及び供給量Ｔｍがそれぞれ１００００（Ｂｙｔｅ）及び３０００（Ｂｙｔｅ）である。トークンの最大蓄積量Ｔｍａｘ及び供給量Ｔｍは、それぞれ、例えばコントロールカード９３から予め設定される。なお、トークンが供給される時間間隔Ｔｓは、ポリサテーブル５０に登録されたポリシングレートに応じて決定され、同一グループ内のポリサ間で共通である。
【００４９】
トークン管理部２１は、トークンの供給タイミングが到来すると、トークン管理テーブル２０から蓄積量Ｔｃ及び供給量Ｔｍを取得し、蓄積量Ｔｃに供給量Ｔｍを加算することにより、トークン管理テーブル２０内の蓄積量Ｔｃを更新する。
【００５０】
図６は、トークン管理部２１の処理の一例を示すフローチャートである。なお、本処理は一定の周期で繰り返し実行される。
【００５１】
まず、トークン管理部２１は、トークンの供給タイミングが到来したか否かを判定する（ステップＳｔ１１）。トークン管理部２１は、例えば、内蔵タイマによりトークン供給タイミングを検出する。トークンの供給タイミングは、時間間隔Ｔｓごとに到来し、ポリサテーブル５０に登録された各ポリサ＃１〜＃Ｍのポリシングレートにより決定される。この時間間隔Ｔｓは、供給量Ｔｍをポリシングレートで除算することで算出される。トークン管理部２１は、トークンの供給タイミングが到来していない場合（ステップＳｔ１１のＮｏ）、処理を終了する。
【００５２】
また、トークン管理部２１は、トークンの供給タイミングが到来した場合（ステップＳｔ１１のＹｅｓ）、蓄積量Ｔｃと供給量Ｔｍの和が、最大蓄積量Ｔｍａｘ以下であるか否かを判定する（ステップＳｔ１２）。トークン管理部２１は、Ｔｃ＋Ｔｍ≦Ｔｍａｘの場合（ステップＳｔ１２のＹｅｓ）、蓄積量Ｔｃに供給量Ｔｍを加算して（ステップＳｔ１３）、処理を終了する。
【００５３】
また、トークン管理部２１は、Ｔｃ＋Ｔｍ＞Ｔｍａｘの場合（ステップＳｔ１２のＮｏ）、トークン管理部２１は、蓄積量Ｔｃを最大蓄積量Ｔｍａｘとして（ステップＳｔ１４）、処理を終了する。このようにして、トークン管理部２１は処理を実行する。
【００５４】
このように、トークン管理部２１は、ポリサ＃ｉのグループごとに共通する一定のポリシングレートでトークンをポリサ＃ｉに供給する。また、トークンは、グループ内の何れかのポリサ＃ｉにおけるパケットの通過により減算される。
【００５５】
再び図４を参照すると、ポリシング部１は、通過制御部の一例であり、トークンに基づきパケットの通過の可否を判定し、その判定結果に従ってパケットを通過させ、または廃棄する。より具体的には、ポリシング部１は、パケットの通過の可否を、トークンの蓄積量Ｔｃと、所定の閾値との比較結果に基づいて判定し、その比較結果に従って、パケットを通過させ、または廃棄する。なお、本実施例において閾値は０とするが、これに限定されない。
【００５６】
このため、ポリシング部１は、Ｔｃ＞０の場合、パケットを通過させ、Ｔｃ≦０の場合、パケットを廃棄する。通過したパケットは、分配部８２に出力される。なお、ポリシング部１は、パケット長（つまりデータ量）Ｌとトークンの蓄積量Ｔｃの比較結果に応じてパケットの通過の可否を判定してもよい。この場合、ポリシング部１は、Ｔｃ≧Ｌの場合、パケットを通過させ、Ｔｃ＜Ｌの場合、パケットを廃棄する。このため、トークンの蓄積量Ｔｃは、常に０より大きく、負の値にはならない。
【００５７】
図７は、ポリシング部１の処理の一例を示すフローチャートである。なお、本処理は一定の周期で繰り返し実行される。
【００５８】
まず、ポリシング部１は、パケットの入力の有無を検出する（ステップＳｔ１）。ポリシング部１は、パケットの入力がない場合（ステップＳｔ１のＮｏ）、処理を終了する。また、ポリシング部１は、パケットが入力された場合（ステップＳｔ１のＹｅｓ）、入力されたパケット長Ｌを検出する（ステップＳｔ２）。パケット長は、例えばバイトカウンタなどを用いて検出される。
【００５９】
次に、ポリシング部１は、トークンの蓄積量Ｔｃが０より大きいか否かを判定する（ステップＳｔ３）。ポリシング部１は、Ｔｃ≦０の場合（ステップＳｔ３のＮｏ）、パケットを廃棄して（ステップＳｔ６）、処理を終了する。また、ポリシング部１は、Ｔｃ＞０の場合（ステップＳｔ３のＹｅｓ）、パケットを通過させる（ステップＳｔ４）。
【００６０】
次に、ポリシング部１は、通過量管理テーブル３０に登録された当該ポリサ＃ｉの通過量にパケット長Ｌを加算し（ステップＳｔ５）、処理を終了する。このようにして、ポリシング部１は、処理を実行する。
【００６１】
通過量通知部３１は、通過量管理部の一例であり、各ポリサ＃１〜＃Ｍを通過したパケットのデータ量（Ｂｙｔｅ）、つまり通過量を管理する。通過量管理テーブル３０にはポリサ＃１〜＃Ｍごとの通過量が登録されており、上述したように、ポリサ＃ｉをパケットが通過するたびにそのポリサ＃ｉの通過量にパケット長Ｌが加算される。
【００６２】
通過量通知部３１は、通過量管理テーブル３０により一定の期間ごとにパケットの通過量を計測する。本実施例において、通過量通知部３１は、１０（ｍｓ）間隔で通過量管理テーブル３０から各ポリサ＃１〜＃Ｍの通過量を取得するが、後述するように、制御部９１４からの設定に応じてポリサ＃ｉのグループごとに異なる時間間隔で取得してもよい。
【００６３】
通過量通知部３１は、当該ＩＦカード９１及び他のＩＦカード９１の帯域制御部８１に通過量の上位側の桁の数値を通知して、通過量の下位側の桁の数値を、次の期間に計測する通過量に引き継ぐ。より具体的には、通過量通知部３１は、通過量の全ての桁の数値ではなく、上位側の一部の桁の数値だけを他のＩＦカード９１の帯域制御部８１に通知し、残りの下位側の桁の数値を通過量管理テーブル３０に残す。
【００６４】
これにより、帯域制御の精度を低下させることなく、通知する情報量が低減される。なお、通過量通知部３１は、後述するように、通過量の２進数表記を示すビット列の最上位ビット（MSB: Most Significant Bit）から４ビット分のビット値を通過量管理テーブル３０から取得して通知する。
【００６５】
通過量受信部４１は、当該ＩＦカード９１及び他のＩＦカード９１の帯域制御部８１の通過量通知部３１から送信された数値を受信する。通過量受信部４１は、通過量取得部の一例であり、他のＩＦカード９１の帯域制御部８１から通知された数値を元の桁に戻すことにより仮通過量を得る。
【００６６】
仮通過量は、通過量通知部３１が測定した通過量の上位の桁の数値のみで表される、おおよその通過量である。通過量受信部４１は、ポリサごとに仮通過量を仮通過量管理テーブル４０に登録する。なお、通過量受信部４１は、後述するように、仮通過量を得るにあたって、通過量を示すビット列の最上位ビットを仮通過量管理テーブル４０から取得する。
【００６７】
トークン管理部２１は、ポリサ＃ｉのトークンの蓄積量Ｔｃから、仮通過量管理テーブル４０に登録された当該ポリサの＃ｉの仮通過量を減算する。これにより、ポリサ＃ｉのトークンは、当該ポリサ＃ｉまたは同一のグループの他のポリサ＃ｉを通過したパケットの仮通過量が一定の期間ごとに減算される。したがって、複数のＩＦカード９１の各ポリサ＃ｉに入力されるトラフィックの合計帯域は全体的に制限される。
【００６８】
また、ポリサテーブル５０は、記憶部９１５に保持されており、ポリサ＃１〜＃Ｍごとのポリシングレートが登録されている。ポリシングレートは、上述したように、ポリサのグループ、つまりＰＩＤごとに共通であり、例えば制御部９１４により登録される。
【００６９】
ＭＳＢ設定部５１は、ポリサテーブル５０に登録されたポリサ＃１〜＃Ｍごとのポリシングレートに基づき、各ポリサ＃１〜＃Ｍの通過量の最大値を算出する。ＭＳＢ設定部５１は、通過量の最大値から通過量の最上位の桁、つまり２進数の場合のＭＳＢを求めて通過量管理テーブル３０及び仮通過量管理テーブル４０に登録する。
【００７０】
次に通過量の通知処理について説明する。なお、以降の説明においては、図８に示される構成を前提とする。
【００７１】
図８にはポリシンググループを構成するインターフェースカードの一例が示されている。ＩＦカード（＃１）９１及びＩＦカード（＃２）９１の間において、ＰＩＤが同一のポリサ＃１〜＃Ｍ同士は同一のグループに属する。このため、ＩＦカード（＃１）９１の通過量通知部３１は、通過量の数値をＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各通過量受信部４１に送信する。また、ＩＦカード（＃２）９１の通過量通知部３１も、通過量の数値をＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各通過量受信部４１に送信する。
【００７２】
図９には通過量の通知処理の一例が示されている。本例では、ＩＦカード（＃２）９１のポリサ＃１〜＃Ｍの通過量の数値をＩＦカード（＃１）９１に通知する場合を挙げるが、ＩＦカード（＃１）９１のポリサ＃１〜＃Ｍの通過量の数値をＩＦカード（＃２）９１に通知する場合も同様の処理が行われる。
【００７３】
図９には、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１のポリサテーブル５０と、ＩＦカード（＃１）９１の通過量管理テーブル３０と、ＩＦカード（＃２）９１の仮通過量管理テーブル４０とが示されている。
【００７４】
ポリサテーブル５０は、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１間において共通の設定内容が登録されている。本例において、ＰＩＤ＝＃０のポリシングレートは１（Ｇｂ／ｓ）であり、ＰＩＤ＝＃１のポリシングレートは１００（Ｍｂ／ｓ）であり、ＰＩＤ＝＃Ｍのポリシングレートは１０（Ｇｂ／ｓ）である。
【００７５】
上述したように、ポリシングレートは、ポリサのグループごと、つまりＰＩＤごとに共通である。このため、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１は、ポリシングレートを換算することで、他方のＩＦカード（＃２、＃１）９１において計測される各ＰＩＤの通過量の最大値（上限値）を得ることができる。
【００７６】
図９中のポリサテーブル５０には、通知間隔が１０（ｍｓ）の場合の通過量の最大値（Ｂｙｔｅ／１０ｍｓ）が点線の枠内に記載されている。ＰＩＤ＝＃０の通過量の最大値は１．２５（ＭＢｙｔｅ／１０ｍｓ）であり、ＰＩＤ＝＃１の通過量の最大値は０．１２５（ＭＢｙｔｅ／１０ｍｓ）であり、ＰＩＤ＝＃Ｍの通過量の最大値は１２．５（ＭＢｙｔｅ／１０ｍｓ）である。なお、通過量の最大値は、説明の便宜上、ポリサテーブル５０に記載されているが、実際にはポリサテーブル５０に登録されなくてよい。
【００７７】
通過量管理テーブル３０及び仮通過量管理テーブル４０内のＭＳＢは、通過量を２進数表記のビット列で示した場合の最上位の桁を示し、通過量の最大値から算出される。例えば、ＰＩＤ＝＃０の通過量の最大値は１．２５（ＭＢｙｔｅ／１０ｍｓ）であるため、１．２５Ｍを１０進数表記から２進数表記に変換することで、ＰＩＤ＝＃０のＭＳＢは２１ビットであると算出される。これと同様の方法で、ＰＩＤ＝＃１のＭＳＢは１７ビットであると算出され、ＰＩＤ＝＃ＭのＭＳＢは２４ビットであると算出される。なお、ＭＳＢの算出及び通過量管理テーブル３０及び仮通過量管理テーブル４０への登録は、ＭＳＢ設定部５１により行われる。
【００７８】
通過量管理テーブル３０には、ＰＩＤごとにＭＳＢ及び通過量のビット列が登録されている。通過量管理テーブル３０には最大で２７（ｂｉｔ）のビット列が登録できるが、使用されるのはＭＳＢ以下の桁である。例えば、ＰＩＤ＝＃０の通過量は２１ビットのビット列で登録され、ＰＩＤ＝＃１の通過量は１７ビットのビット列で登録され、ＰＩＤ＝＃Ｍの通過量は２４ビットのビット列で登録されている。
【００７９】
通過量通知部３１は、通過量の２進数表記を示すビット列のＭＳＢから一部の桁数分のビット値をＩＦカード（＃１）９１の帯域制御部８１に通知して、ビット列の残りを次の期間に計測する通過量に引き継ぐ。より具体的には、通過量通知部３１は、ビット列のＭＳＢから４ビット分のビット値ＢＮ＃０，ＢＮ＃１，ＢＮ＃Ｍをビット列から抽出して通知する。なお、抽出するビット数は４ビットに限定されない。
【００８０】
本実施例において、ＰＩＤ＝＃０の通過量のビット列は「10000101・・・1111」であるため、ＭＳＢである２１ビットの桁から４ビット分の「1000」がビット値ＢＮ＃０として通知される。ＰＩＤ＝＃１の通過量のビット列は「10101100・・・0001」であるため、ＭＳＢである１７ビットの桁から４ビット分の「1010」がビット値ＢＮ＃１として通知される。さらに、ＰＩＤ＝＃Ｍの通過量のビット列は「11001010・・・1011」であるため、ＭＳＢである２４ビットの桁から４ビット分の「1100」がビット値ＢＮ＃Ｍとして通知される。
【００８１】
通過量受信部４１は、通過量通知部３１から通知されたビット値ＢＮ＃０，ＢＮ＃１，ＢＮ＃ＭをＭＳＢに合わせるようにシフトすることにより仮通過量を得る。例えば、通過量受信部４１は、ビット値ＢＮ＃Ｍを２４ビット分だけ上位側にシフトすることで仮通過量（ビット列「11000000・・・・0000」）を得る。これと同様の方法で、通過量受信部４１は、ビット値ＢＮ＃０を２１ビット分だけシフトし、ビット値ＢＮ＃１を１７ビット分だけシフトすることにより仮通過量を得る。
【００８２】
通過量受信部４１は、仮通過量管理テーブル４０のＭＳＢを参照して、シフトするビット数を判断する。ＭＳＢは、ＩＦカード（＃１）９１及びＩＦカード（＃２）において、同一グループ内で共通するポリシングレートに基づき設定されるため、通過量受信部４１は、通過量通知部３１から通知された数値に基づき、正常に仮通過量を得ることができる。
【００８３】
このように、通過量通知部３１は、通過量の全ての桁の数値ではなく、上位側の一部の桁（本例では４（ｂｉｔ））の数値だけを他のＩＦカード９１の帯域制御部８１に通知することができるので、帯域制御のために通知する情報量が低減される。
【００８４】
また、通過量通知部３１は、通過量の２進数表記を示すビット列の最上位ビット（ＭＳＢ）から一部の桁数分（本例では４（ｂｉｔ））のビット値ＢＮ＃ｉを通知する。通過量受信部４１は、通知された一部の桁数分のビット値ＢＮ＃ｉを最上位ビットに合わせるようにシフトする。
【００８５】
このため、本実施例によると、通過量の１０進数表記や１６進数表記の一部の桁をビット列で通知する場合より少ない情報量で通過量を通知できる。もっとも、通過量通知部３１は、２進数表記に代えて、１０進数表記や１６進数表記のビット列で通過量を通知してもよい。
【００８６】
さらに、通過量通知部３１は、ポリシングレートに基づく通過量の最大値から算出された通過量の最上位の桁（ＭＳＢ）から所定の桁数分（本例では４（ｂｉｔ））の数値ＢＮ＃ｉを通知する。通過量受信部４１は、通知された数値ＢＮ＃ｉの桁をその最上位の桁（ＭＳＢ）に合わせるように繰り上げることにより仮通過量を得る。
【００８７】
通過量通知部３１及び通過量受信部４１は、共通のポリシングレートに基づき通過量の最上位の桁を算出できるため、通過量受信部４１は、正常に仮通過量を得ることができる。したがって、通過量通知部３１は、通過量受信部４１に最上位の桁を通知する必要がないので、通知する情報量が低減される。
【００８８】
図１０は、通過量通知部３１の処理の一例を示すフローチャートである。なお、本処理は一定の周期で繰り返し実行される。
【００８９】
まず、通過量通知部３１は、通知タイミングが到来したか否かを判定する（ステップＳｔ２１）。通過量通知部３１は、例えば、内蔵タイマにより通知タイミングを検出する。なお、通知タイミングは例えば１０（ｍｓ）ごとに到来するが、後述するように、グループごとに相違してもよい。
【００９０】
通過量通知部３１は、通知タイミングが到来していない場合（ステップＳｔ２１のＮｏ）、処理を終了する。また、通過量通知部３１は、通知タイミングが到来した場合（ステップＳｔ２１のＹｅｓ）、通過量のＭＳＢを特定する（ステップＳｔ２２）。本実施例において、通過量通知部３１は、通過量管理テーブル３０からＭＳＢを特定するが、後述するように、通過量の２進数表記を示すビット列のうち、「１」を示す最上位の桁をＭＳＢとして特定してもよい。
【００９１】
次に、通過量通知部３１は、通過量の２進数表記のビット列のうち、ＭＳＢから所定の桁数分のビット値ＢＮ＃ｉを取得する（ステップＳｔ２３）。本実施例において、通過量通知部３１は、通過量の２進数表記のビット列から、ＭＳＢから４ビット分のビット値ＢＮ＃ｉを抽出する。
【００９２】
次に、通過量通知部３１は、取得したビット値ＢＮ＃ｉを他のＩＦカード９１の帯域制御部８１に通知する（ステップＳｔ２４）。次に、通過量通知部３１は、通過量管理テーブル３０に対して、通過量のビット列のうち、通知したビット値ＢＮ＃ｉの桁を０にクリアする（ステップＳｔ２５）。このため、残りのビット値は、クリアされずに次の期間に計測される通過量に引き継がれる。このようにして、通過量通知部３１は処理を実行する。
【００９３】
また、図１１は、通過量受信部４１の処理の一例を示すフローチャートである。なお、本処理は一定の周期で繰り返し実行される。
【００９４】
まず、通過量受信部４１は、他のＩＦカード９１の通過量通知部３１からのビット値ＢＮ＃ｉの通知の有無を判定する（ステップＳｔ３１）。通過量受信部４１は、通知がない場合（ステップＳｔ３１のＮｏ）、処理を終了する。
【００９５】
次に、通過量受信部４１は、ビット値ＢＮ＃ｉをＭＳＢに合わせるように上位側にシフトすることで仮通過量を取得する（ステップＳｔ３２）。次に、通過量受信部４１は、仮通過量を仮通過量管理テーブル４０に登録する（ステップＳｔ３３）。
【００９６】
次に、通過量受信部４１は、トークン管理部２１に対し、トークンの蓄積量Ｔｃから仮通過量を減算する（つまり、Ｔｃ＝Ｔｃ−仮通過量とする）ように依頼する（ステップＳｔ３４）。このようにして、通過量受信部４１は処理を実行する。
【００９７】
図１２は、通過量管理テーブル３０及び仮通過量管理テーブル４０の処理の一例が示されている。本例では、ＩＦカード（＃２）９１のポリサ＃Ｍのある期間内のパケットの通過量を５００００００（Ｂｙｔｅ）であると仮定する。
【００９８】
このため、ＩＦカード（＃２）９１の通過量管理テーブル３０には、ポリサ＃Ｍの通過量として、５００００００（Ｂｙｔｅ）の２進数表記を示すビット列「010011000100101101000000」が記録されている。通過量通知部３１は、そのビット列のＭＳＢ（＝２４）から所定の桁数（Ｘ）分のビット値ＢＮ＃Ｍを抽出して、ＩＦカード（＃１）９１の帯域制御部８１に通知する。本例では、Ｘ＝４（ｂｉｔ）分のビット値ＢＮ＃Ｍ（＝「0100」）が通知される。
【００９９】
ＩＦカード（＃１）９１において、通過量受信部４１は、ＩＦカード（＃１）９１の通過量通知部３１から通知されたビット値ＢＮ＃ＭをＭＳＢ（＝２４）に合わせるようにシフトする。より具体的には、通過量受信部４１は、ビット値ＢＮ＃Ｍを２４ビット分だけ上位側にシフトする。すなわち、通過量受信部４１は、上位側の桁の数値であるビット値ＢＮ＃Ｍを元のＭＳＢの桁に戻す。なお、ＭＳＢは、上述したように、ＭＳＢ設定部５１によって、ポリシングレートに基づく通過量の最大値から算出されて通過量管理テーブル３０及び仮通過量管理テーブル４０に設定される。
【０１００】
このようにして、通過量受信部４１は仮通過量を得て、仮通過量管理テーブル４０に記録する。仮通過量は、通過量のビット列のうち、通過量の上位側の桁の数値であるＭＳＢ側のビット値ＢＮ＃ｉ以外の全ての桁のビット値を「０」とした数値であるため、通過量との間には誤差が生ずる。
【０１０１】
しかし、通過量の下位側の桁の数値は、次の期間に計測する通過量に引き継がれるので、次の期間にＩＦカード（＃１）９１の帯域制御部８１に通知される数値に反映される。より具体的には、ＩＦカード（＃１）９１の通過量通知部３１は、ビット値ＢＮ＃Ｍの通知後、通過量のビット列のうち、ビット値ＢＮ＃Ｍの桁である２１〜２４ビットのビット値を０にクリアし、他の桁のビット値はクリアせずにそのままの値にしておく。
【０１０２】
このため、通過量のビット列内における残りの下位側の桁（１〜２０ビット）のビット値「11000100101101000000」は次の期間に計測される通過量に加算されることとなる。すなわち、次の期間において、通過量は、０（Ｂｙｔｅ）ではなく、８０５６９６（Ｂｙｔｅ）（「11000100101101000000」の１０進数表記）からカウントが開始される。このため、本実施例における帯域制御の精度は、通過量自体を通知した場合と同程度に維持される。これについて、以下にシミュレーション結果を用いて説明する。
【０１０３】
図１３は、期間ごとの通過量及び仮通過量の変化の一例を示すグラフである。図１３には、各期間Ｔ１〜Ｔ５の実際の通過量及び仮通過量が棒グラフで示され、また、通過量の累積値及び仮通過量の累積値が線グラフで示されている。なお、実際の通過量とは、前の期間Ｔ１〜Ｔ５の通過量の下位側の桁の数値が加算されていない、実際に通過したパケットのデータ量を意味し、本例では一定値（１（ＭＢｙｔｅ））であると仮定する。
【０１０４】
また、グラフの下部には、各期間Ｔ１〜Ｔ５における通知前の通過量、仮通過量、及び通知後の通過量が１０進数で記載されている。ここで、通過後の通過量とは、通過量のビット列のうち、通知するＭＳＢ側の４ビット（つまりＸ＝４（ｂｉｔ））のビット値を０にクリアした後の通過量を意味する。
【０１０５】
最初の期間Ｔ１では、実際の通過量の１００００００（Ｂｙｔｅ）より少ない９１７５０４（Ｂｙｔｅ）が通知され、仮通過量として処理される。
【０１０６】
次の期間Ｔ２の通過量は、実際の通過量の１００００００（Ｂｙｔｅ）に前の期間Ｔ１の通知後の通過量の８２４９６（Ｂｙｔｅ）が加算されることで、１０８２４９６（Ｂｙｔｅ）となる。期間Ｔ２では、実際の通過量の１００００００（Ｂｙｔｅ）より多い１０４８５７６（Ｂｙｔｅ）が通知され、仮通過量として処理される。
【０１０７】
次の期間Ｔ３の通過量は、実際の通過量の１００００００（Ｂｙｔｅ）に前の期間Ｔ２の通知後の通過量の３３９２０（Ｂｙｔｅ）が加算されることで、１０３３９２０（Ｂｙｔｅ）となる。期間Ｔ３では、実際の通過量の１００００００（Ｂｙｔｅ）より少ない９１７５０４（Ｂｙｔｅ）が通知され、仮通過量として処理される。
【０１０８】
次の期間Ｔ４の通過量は、実際の通過量の１００００００（Ｂｙｔｅ）に前の期間Ｔ３の通知後の通過量の１１６４１６（Ｂｙｔｅ）が加算されることで、１１１６４１６（Ｂｙｔｅ）となる。期間Ｔ４では、実際の通過量の１００００００（Ｂｙｔｅ）より多い１０４８５７６（Ｂｙｔｅ）が通知され、仮通過量として処理される。
【０１０９】
次の期間Ｔ５の通過量は、実際の通過量の１００００００（Ｂｙｔｅ）に前の期間Ｔ４の通知後の通過量の６７８４０（Ｂｙｔｅ）が加算されることで、１０６７８４０（Ｂｙｔｅ）となる。期間Ｔ５では、実際の通過量の１００００００（Ｂｙｔｅ）より多い１０４８５７６（Ｂｙｔｅ）が通知され、仮通過量として処理される。
【０１１０】
このように、仮通過量は、期間Ｔ１〜Ｔ５ごとに実際の通過量より多い場合と少ない場合がある。このため、個々の期間Ｔ１〜Ｔ５の通過量と仮通過量には差分が存在するが、通過量の累積値及び仮通過量の累積値には差分がほとんど存在しない。したがって、本実施例における帯域制御の精度は、通過量自体を通知した場合と同程度に維持される。
【０１１１】
本実施例において、通過量通知部３１は、ポリシングレートに基づく通過量の最大値から算出された通過量の最上位の桁から所定の桁数分の数値を通知したが、これに限定されない。通過量通知部３１は、通過量の最上位の桁及び通過量の最上位の桁から所定の桁数分の数値を通知してもよい。この場合、通過量受信部４１は、通知された所定の桁数分の数値の桁を、通知された最上位の桁に合わせるように繰り上げることにより仮通過量を得る。この場合の実施例について以下に述べる。
【０１１２】
図１４は、通過量管理テーブル３０及び仮通過量管理テーブル４０の処理の他例が示されている。本例では、ＩＦカード（＃２）９１のポリサ＃Ｍのある期間内のパケットの通過量を５００００００（Ｂｙｔｅ）であると仮定する。
【０１１３】
このため、ＩＦカード（＃２）９１の通過量管理テーブル３０には、ポリサ＃Ｍの通過量として、５００００００（Ｂｙｔｅ）の２進数表記を示すビット列「010011000100101101000000」が記録されている。通過量通知部３１は、そのビット列のうち、ビット値が「１」である最上位の桁（Ｙ）から所定の桁数（Ｘ）分のビット値ＢＮ＃Ｍを抽出して、ＩＦカード（＃１）９１の帯域制御部８１に通知する。
【０１１４】
また、本例では、ビット値が「１」である最上位の桁は２３であり（Ｙ＝２３）、通知する桁数Ｘを４（ｂｉｔ）とする。このため、通過量通知部３１は、通過量のビット列のうち、２０〜２３ビットの桁のビット値ＢＮ＃Ｍ（＝「1001」）を通知する。また、通過量通知部３１は、ビット値ＢＮ＃Ｍとともに、最上位の桁Ｙ＝２３（ｂｉｔ）も通知する。
【０１１５】
通過量通知部３１は、ビット値ＢＮ＃Ｍの通知後、通過量のビット列のうち、ビット値ＢＮ＃Ｍの桁である２０〜２３ビットのビット値を０にクリアし、他の桁のビット値はクリアせずにそのままの値にしておく。このため、通過量のビット列内における残りの下位側の桁（１〜１９ビット）のビット値「1000100101101000000」は次の期間に計測される通過量に加算されることとなる。
【０１１６】
すなわち、このビット値は次の期間に計測される通過量に引き継がれる。したがって、本実施例における帯域制御の精度は、上記の実施例と同様に、通過量自体を通知した場合と同程度に維持される。
【０１１７】
また、ＩＦカード（＃１）９１において、通過量受信部４１は、ＩＦカード（＃２）９１の通過量通知部３１から通知されたビット値ＢＮ＃Ｍを、これと同様に通知された最上位の桁Ｙ＝２３ビットに合わせるようにシフトする。より具体的には、通過量受信部４１は、ビット値ＢＮ＃Ｍを２３ビット分だけ上位側にシフトする。このようにして、通過量受信部４１は仮通過量を得て、仮通過量管理テーブル４０に記録する。
【０１１８】
このように、本実施例において、通過量通知部３１は、通過量のビット列の２４ビットの桁のビット値「０」の通知を省き、代わりに２０ビットの桁のビット値ＢＮ＃Ｍを通知する。すなわち、通過量通知部３１は、ビット列の上位側の桁のビット値「０」を無駄に通知されず、代わりに下位側の桁のビット値を通知する。これにより、仮通過量の精度が向上する。
【０１１９】
例えば、本実施例を図１２に示された先の実施例と比較した場合、本実施例では仮通過量が１０進数表記で４７１８５９２（Ｂｙｔｅ）であるのに対し、先の実施例では仮通過量が１０進数表記で４１９４３０４（Ｂｙｔｅ）である。このため、本実施例の仮通過量は、先の実施例の仮通過量より通過量の５００００００（Ｂｙｔｅ）に近い値となる。
【０１２０】
これまで述べた実施例において、通知されるビット値ＢＮ＃Ｍの桁数（Ｘ（ｂｉｔ））及び通知の時間間隔、つまり通過量の計測の期間は、ポリサのグループごとに相違してもよい。
【０１２１】
図１５には通過量の通知処理の他例が示されている。本例において、通知されるビット値ＢＮ＃Ｍの桁数（Ｘ（ｂｉｔ））及び通知の時間間隔（以下、「通知間隔」と表記）がポリサ＃０，＃１，＃Ｍのグループごとに相違する。
【０１２２】
このため、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各ポリサテーブル５０にはグループごとに共通の通知間隔が設定されている。ＩＦカード（＃２）９１の通過量通知部３１は、ポリサテーブル５０に設定されたポリサ＃１〜＃Ｍごとの通知間隔で通知処理を行う。なお、通知間隔の設定は、例えば制御部９１４により行われる。
【０１２３】
本例において、ポリサ＃０，＃１の通知間隔は、上記の例と同様に１０（ｍｓ）であり、ポリサ＃Ｍの通知間隔は１（ｍｓ）である。また、ポリサ＃Ｍのポリシングレートは１０（Ｇｂ／ｓ）であり、これを１ｍｓ当たりのデータ伝送量に換算すると１．２５（Ｂｙｔｅ／ｍｓ）となる。このため、ＩＦカード（＃２）９１の通過量管理テーブル３０には、ＰＩＤ＃ＭのＭＳＢとして２１ビットが設定される。
【０１２４】
このように、ポリシングレートが最も高いポリサ＃Ｍのグループの通知間隔を他のポリサ＃０，＃１のグループより短くすることにより、そのポリサ＃Ｍのポリシングの精度を向上できる。
【０１２５】
また、ＩＦカード（＃２）９１の通過量管理テーブル３０及びＩＦカード（＃１）９１の仮通過量管理テーブル４０には、ポリサ＃１〜＃Ｍごとに共通の桁数Ｘ（ｂｉｔ）が設定されている（符号Ｗ参照）。ＩＦカード（＃２）９１の通過量通知部３１は、通過量管理テーブル３０に設定されたＸ（ｂｉｔ）分のビット値ＢＮ＃０，＃１，＃Ｍを通知する。
【０１２６】
一方、ＩＦカード（＃１）９１の通過量受信部４１は、仮通過量管理テーブル４０に設定されたＸ（ｂｉｔ）のビット値ＢＮ＃０，＃１，＃Ｍを受信する。これにより、ＩＦカード（＃１）９１とＩＦカード（＃２）９１の間でＸ（ｂｉｔ）のビット値ＢＮ＃０，＃１，＃Ｍが正常に送受信される。なお、Ｘ（ｂｉｔ）の設定は、例えば制御部９１４により行われる。
【０１２７】
本例において、ポリサ＃０，＃ＭのＸ（ｂｉｔ）は４（ｂｉｔ）であり、ポリサ＃１ののＸ（ｂｉｔ）は８（ｂｉｔ）である。このため、ポリサ＃１のポリシングの精度は、通知間隔が同一であるポリサ＃０より高い。なお、本例とは異なり、ポリシングレートが最も高いポリサ＃Ｍのグループの通知間隔を他のポリサ＃０，＃１のグループと同じ値（１０ｍｓ）に設定し、ポリサ＃ＭのＸ（ｂｉｔ）を他のポリサ＃０，＃１より大きい値に設定することで、そのポリサ＃Ｍのポリシングの精度を向上してもよい。
【０１２８】
このように、本実施例では、他のＩＦカード９１に通知する上位側の桁の数値の桁数（Ｘ（ｂｉｔ））または通知間隔、つまり通過量の測定期間がポリサ＃０，＃１，＃Ｍのグループごとに相違する。したがって、ポリサ＃０，＃１，＃Ｍのグループごとにポリシングの精度を調整できる。
【０１２９】
次に、上述した実施例の効果について説明する。以下の説明では、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１のポリサ＃Ｍの間でグループポリシングを行う例を挙げる。
【０１３０】
図１６には帯域制御の一例が示されている。ＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各ポリサ＃Ｍは、パケットの通過帯域を合計１００（Ｇｂｐｓ）のポリシングレートで制限する。ここで、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１のポリサ＃Ｍのパケットの入力レートは、それぞれ、１００（Ｇｂｐｓ）及び５０（Ｇｂｐｓ）とする。
【０１３１】
ＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各ポリサ＃Ｍから出力されたパケットは、スイッチカード（ＳＷ）９２を介して、出力側のＩＦカード（＃３）９１に入力される。ＩＦカード（＃３）９１は、１００ＧｂＥ（ギガビットイーサネット）の通信回線を介してパケットを他装置に送信する。
【０１３２】
ＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各ポリサ＃Ｍのパケットの出力レートは、一例として通過率が均等になるように決定される。このため、各ポリサ＃Ｍのパケットの出力レートの期待値は、それぞれ、ポリシングレートを入力レートの比に応じて割り当てた値となる。
【０１３３】
Ｓｒ＝Ｐｒ×（Ｎｒ／ΣＮｒ）  ・・・（１）
【０１３４】
より具体的には、入力レートをＮｒとし、ポリシングレートをＰｒとした場合、出力レートの期待値Ｓｒは、上記の式（１）により算出される。ここで、ΣＮｒは、各ポリサ＃Ｍの入力レートの合計である。
【０１３５】
したがって、ＩＦカード（＃１）９１のポリサ＃Ｍのパケットの出力レートの期待値は、１００×１００／（１００＋５０）＝６６．６（Ｇｂｐｓ）となり、ＩＦカード（＃２）９１のポリサ＃Ｍのパケットの出力レートの期待値は、１００×５０／（１００＋５０）＝３３．３（Ｇｂｐｓ）となる。このとき、各ポリサ＃Ｍの通過率は、均等に６６．６（％）となる。これにより、出力側のＩＦカード（＃３）９１には、合計約１００（Ｇｂｐｓ）の入力レートでパケットが入力される。
【０１３６】
なお、帯域制御は、上述したように同一グループ内のポリサ＃Ｍ間で通過率を公平とする方式に限定されず、パケットの通過量を公平とする方式も用いられる。この場合、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各ポリサ＃Ｍは、期待値として、均等に５０（Ｇｂｐｓ）の出力レートでパケットをスイッチカード９２に出力する。これにより、出力側のＩＦカード（＃３）９１には、合計１００（Ｇｂｐｓ）の入力レートでパケットが入力される。
【０１３７】
次に、図１６に示された帯域制御におけるＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各ポリサ＃Ｍの出力レートのシミュレーション結果について説明する。
【０１３８】
図１７（ａ）は、比較例における出力レートのシミュレーション結果を示すグラフである。図１７（ａ）において、横軸は経過時間（ｍｓ）を示し、縦軸は出力レート（Ｇｂｐｓ）を示す。比較例において、ＩＦカード（＃１）９１の通過量通知部３１は、ＩＦカード（＃２）９１の通過量受信部４１に、通過量の２進数表記を示す２７ビットのビット列の全てを通知する。
【０１３９】
図１７（ａ）に示されるように、ＩＦカード（＃１）９１のポリサ＃Ｍの出力レートは約６６．６（Ｇｂｐｓ）であり、ＩＦカード（＃２）９１のポリサ＃Ｍの出力レートは約３３．３（Ｇｂｐｓ）である。このため、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各ポリサ＃Ｍの出力レートは期待値通りであると言える。
【０１４０】
一方、図１７（ｂ）は、上述した実施例における出力レートのシミュレーション結果を示すグラフである。図１７（ｂ）において、横軸は経過時間（ｍｓ）を示し、縦軸は出力レート（Ｇｂｐｓ）を示す。本実施例において、ＩＦカード（＃１）９１の通過量通知部３１は、ＩＦカード（＃２）９１の通過量受信部４１に、通過量の２進数表記を示すビット列のうち、ＭＳＢ側のＸ＝４（ｂｉｔ）のビット値ＢＮ＃Ｍを通知する。
【０１４１】
図１７（ｂ）に示されるように、ＩＦカード（＃１）９１のポリサ＃Ｍの出力レートは、揺らぎの程度が比較例より大きいが、約６６．６（Ｇｂｐｓ）に維持されている。ＩＦカード（＃２）９１のポリサ＃Ｍの出力レートも、揺らぎの程度が比較例より大きいが、約３３．３（Ｇｂｐｓ）である。このため、ＩＦカード（＃１）９１及びＩＦカード（＃２）９１の各ポリサ＃Ｍの出力レートは、比較例と同様に期待値通りであると言える。
【０１４２】
このように、本実施例によると、ＩＦカード（＃１）９１からＩＦカード（＃２）９１に通知される通過量の情報量が約７分の１（＝４（ｂｉｔ）÷２７（ｂｉｔ））に低減されるとともに、帯域制御（ポリシング）の精度が、通過量自体を通知する比較例の場合と同程度に維持される。
【０１４３】
なお、上述したようなトークンバケット方式は、パケットの入力レートに対して、ある程度のバースト性を許容しつつ、パケットの転送レートの平均に制限を課すものである。このため、ポリシングに要求される精度は、短期的な観点（ミクロ的な視点）よりも長期的な観点（マクロ的な視点）で得られるものが重要である。したがって、ミクロ的な視点の精度が低下してもマクロ的な視点の精度を維持しつつ（図１３参照）、通知する情報量を低減するという利点は、グループポリシングには望ましいものである。
【０１４４】
これまで述べたように、実施例に係るパケット中継装置は、通過するパケットの帯域をそれぞれ制御する複数の帯域制御部８１を有する。複数の帯域制御部８１は、それぞれ、ポリシング部１と、通過量通知部３１と、通過量受信部４１と、トークン管理部２１とを有する。
【０１４５】
ポリシング部１は、一定のポリシングレートで供給されパケットの通過により減算されるトークンに基づきパケットの通過の可否を判定し、その判定結果に従ってパケットを通過させ、または廃棄する。通過量通知部３１は、一定の期間ごとにパケットの通過量を計測し、他の帯域制御部８１に通過量の上位側の桁の数値を通知して、通過量の下位側の桁の数値を、次の期間に計測する通過量に引き継ぐ。
【０１４６】
通過量受信部４１は、他の帯域制御部８１から通知された上位側の桁の数値を該桁に戻すことにより仮通過量を得る。トークン管理部２１は、仮通過量をトークンから減算する。
【０１４７】
上記の構成によると、通過量通知部３１は、通過量の全ての桁の数値ではなく、上位側の一部の桁の数値だけを他の帯域制御部８１に通知することができるので、帯域制御のために通知する情報量が低減される。
【０１４８】
また、通過量通知部３１は、通過量の下位側の桁の数値を、次の期間に計測する通過量に引き継ぐ。このため、通過量の下位側の桁の数値は、次の期間に他の帯域制御部８１に通知される数値に反映される。したがって、帯域制御の精度は、通過量自体を通知した場合と同程度に維持される。
【０１４９】
よって、本実施例に係るパケット中継装置によると、通知する情報量を低減された帯域制御が可能となる。
【０１５０】
また、実施例に係る帯域制御方法は、複数の帯域制御部８１を通過するパケットの帯域をそれぞれ制御する方法において、複数の帯域制御部８１が、それぞれ、以下のステップを実行する方法である。
ステップ（１）：一定のポリシングレートで供給されパケットの通過により減算されるトークンに基づきパケットの通過の可否を判定し、その判定結果に従ってパケットを通過させ、または廃棄する。
ステップ（２）：一定の期間ごとにパケットの通過量を計測する。
ステップ（３）：他の帯域制御部８１に通過量の上位側の桁の数値を通知する。
ステップ（４）：通過量の下位側の桁の数値を、次の期間に計測する通過量に引き継ぐ。
ステップ（５）：他の帯域制御部から通知された上位側の桁の数値を該桁に戻すことにより仮通過量を得る。
ステップ（６）：仮通過量をトークンから減算する。
【０１５１】
実施例に係る帯域制御方法は、上記のパケット中継装置と同様の構成を含むので、上述した内容と同様の作用効果を奏する。
【０１５２】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１５３】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  通過するパケットの帯域をそれぞれ制御する複数の帯域制御部を有するパケット中継装置において、
前記複数の帯域制御部は、それぞれ、
一定のレートで供給されパケットの通過により減算される通過許容量に基づきパケットの通過の可否を判定し、該判定結果に従ってパケットを通過させ、または廃棄する通過制御部と、
一定の期間ごとにパケットの通過量を計測し、前記複数の帯域制御部のうち、他の帯域制御部に前記通過量の上位側の桁の数値を通知して、前記通過量の下位側の桁の数値を、次の期間に計測する前記通過量に引き継ぐ通過量管理部と、
前記他の帯域制御部から通知された前記上位側の桁の数値を該桁に戻すことにより仮通過量を得る通過量取得部と、
前記仮通過量を前記通過許容量から減算する通過許容量管理部とを有することを特徴とするパケット中継装置。
（付記２）  前記通過量管理部は、前記一定のレートに基づく前記通過量の最大値から算出された前記通過量の最上位の桁から所定の桁数分の数値を前記他の帯域制御部に通知し、
前記通過量取得部は、前記他の帯域制御部から通知された前記所定の桁数分の数値の桁を、前記通過量の最上位の桁に合わせるように繰り上げることにより前記仮通過量を得ることを特徴とする付記１に記載のパケット中継装置。
（付記３）  前記通過量管理部は、前記通過量の最上位の桁及び前記通過量の前記最上位の桁から所定の桁数分の数値を前記他の帯域制御部に通知し、
前記通過量取得部は、前記他の帯域制御部から通知された前記所定の桁数分の数値の桁を、前記他の帯域制御部から通知された前記最上位の桁に合わせるように繰り上げることにより前記仮通過量を得ることを特徴とする付記１に記載のパケット中継装置。
（付記４）  前記通過量管理部は、前記通過量の２進数表記を示すビット列の最上位ビットから一部の桁数分のビット値を通知して、前記ビット列の残りを次の期間に計測する前記通過量に引き継ぎ、
前記通過量取得部は、前記他の帯域制御部から通知された前記一部の桁数分のビット値を前記最上位ビットに合わせるようにシフトすることにより前記仮通過量を得ることを特徴とする付記１乃至３の何れかに記載のパケット中継装置。
（付記５）  前記通過制御部及び前記通過許容量管理部は、前記複数の帯域制御部の間において前記一定のレートが共通するグループごとに設けられ、
前記通過量管理部は、前記他の帯域制御部に通知する前記上位側の桁の数値の桁数が前記グループごとに相違することを特徴とする付記１乃至４の何れかに記載のパケット中継装置。
（付記６）  前記通過制御部及び前記通過許容量管理部は、前記複数の帯域制御部の間において前記一定のレートが共通するグループごとに設けられ、
前記通過量管理部は、前記グループごとに前記一定の期間が相違することを特徴とする付記１乃至５の何れかに記載のパケット中継装置。
（付記７）  複数の帯域制御部を通過するパケットの帯域をそれぞれ制御する帯域制御方法において、
前記複数の帯域制御部は、それぞれ、
一定のレートで供給されパケットの通過により減算される通過許容量に基づきパケットの通過の可否を判定し、該判定結果に従ってパケットを通過させ、または廃棄し、
一定の期間ごとにパケットの通過量を計測し、
前記複数の帯域制御部のうち、他の帯域制御部に前記通過量の上位側の桁の数値を通知して、
前記通過量の下位側の桁の数値を、次の期間に計測する前記通過量に引き継ぎ、
前記他の帯域制御部から通知された前記上位側の桁の数値を該桁に戻すことにより仮通過量を得て、
前記仮通過量を前記通過許容量から減算することを特徴とする帯域制御方法。
（付記８）  前記一定のレートに基づく前記通過量の最大値から算出された前記通過量の最上位の桁から所定の桁数分の数値を前記他の帯域制御部に通知し、
前記他の帯域制御部から通知された前記所定の桁数分の数値の桁を、前記通過量の最上位の桁に合わせるように繰り上げることにより前記仮通過量を得ることを特徴とする付記７に記載の帯域制御方法。
（付記９）  前記通過量の最上位の桁及び前記通過量の前記最上位の桁から所定の桁数分の数値を前記他の帯域制御部に通知し、
前記他の帯域制御部から通知された前記所定の桁数分の数値の桁を、前記他の帯域制御部から通知された前記最上位の桁に合わせるように繰り上げることにより前記仮通過量を得ることを特徴とする付記７に記載の帯域制御方法。
（付記１０）  前記通過量の２進数表記を示すビット列の最上位ビットから一部の桁数分のビット値を通知して、前記ビット列の残りを次の期間に計測する前記通過量に引き継ぎ、
前記他の帯域制御部から通知された前記一部の桁数分のビット値を前記最上位ビットに合わせるようにシフトすることにより前記仮通過量を得ることを特徴とする付記７乃至９の何れかに記載の帯域制御方法。
（付記１１）  前記パケットの通過の可否の判定及び前記仮通過量の前記通過許容量から減算は、前記複数の帯域制御部の間において前記一定のレートが共通するグループごとに行われ、
前記他の帯域制御部に通知する前記上位側の桁の数値の桁数が前記グループごとに相違することを特徴とする付記７乃至１０の何れかに記載の帯域制御方法。
（付記１２）  前記パケットの通過の可否の判定及び前記仮通過量の前記通過許容量から減算は、前記複数の帯域制御部の間において前記一定のレートが共通するグループごとに行われ、
前記グループごとに前記一定の期間が相違することを特徴とする付記７乃至１０の何れかに記載の帯域制御方法。
【符号の説明】
【０１５４】
１      ポリシング部
２０      トークン管理テーブル
２１      トークン管理部
３０      通過量通知部
３１      通過量管理テーブル
４０      仮通過量管理テーブル
４１      通過量受信部
【図１】
2016201664.tif 000003
【図２】
2016201664.tif 000004
【図３】
2016201664.tif 000005
【図４】
2016201664.tif 000006
【図５】
2016201664.tif 000007
【図６】
2016201664.tif 000008
【図７】
2016201664.tif 000009
【図８】
2016201664.tif 000010
【図９】
2016201664.tif 000011
【図１０】
2016201664.tif 000012
【図１１】
2016201664.tif 000013
【図１２】
2016201664.tif 000014
【図１３】
2016201664.tif 000015
【図１４】
2016201664.tif 000016
【図１５】
2016201664.tif 000017
【図１６】
2016201664.tif 000018
【図１７】
2016201664.tif 000019