(57)【特許請求の範囲】
【請求項１】
複数の入力ポートから受信した可変長パケットを予め指定された最低帯域を保証して１つの出力ポートに転送するトラヒックシェーパーであって、
上記各入力ポートから受信した可変長パケットを一時的に蓄積するための複数のバッファメモリと、
パケットを読み出すべきバッファメモリを特定するための帯域制御部と、
上記帯域制御部で特定されたバッファメモリから１つの可変長パケットを読み出し、上記出力ポートに送出する読み出し制御部とを備え、
上記帯域制御部が、
上記バッファメモリと対応して用意された複数のリーキーバケット部と、
上記各リーキーバケット部から出力されるレベルカウント値と予め指定された最低保証帯域に対応する閾値との差分を示す数値を出力する複数の偏差検出部と、
上記各偏差検出部から出力される差分値に基づいて、パケットを読み出すべきバッファメモリを特定するための出力キュー決定部とを有し、
上記各リーキーバケット部が、
一定の速度でレベルカウント値を減少するレベルカウンタと、
上記レベルカウント値を、上記読み出し制御部によって対応バッファメモリから読み出されたパケットの長さに比例した値だけ増加させるレベル上昇手段とを有することを特徴とするトラヒックシェーパー。
【請求項２】
前記各偏差検出部が、前記各リーキーバケット部から出力されるレベルカウント値が前記閾値以下となった時、前記差分値として零値を出力し、
前記出力キュー決定部が、前記各バッファメモリにおけるパケットの蓄積状態を示すレジスタを有し、上記偏差検出部から出力される差分値の中から、上記レジスタが示すパケット蓄積中のバッファメモリと対応する偏差検出部からの出力値を有効にして、１つの最小値を選択することを特徴とする請求項１に記載のトラヒックシェーパー。
【請求項３】
前記出力キュー決定部が、前記有効となった差分値の中に最小値となる複数の差分値が存在した時、ラウンドロビン形式で１つの最小値を選択するための手段を備えることを特徴とする請求項２に記載のトラヒックシェーパー。
【請求項４】
複数の入力ポートから入力される可変長パケットを各入力ポートと対応したバッファメモリに一時的に蓄積し、バッファメモリ毎に予め指定された最大許容帯域の範囲内で最低帯域を保証して、各バッファメモリから蓄積パケットを読み出し、１つの出力ポートに転送するトラヒックシェーパーであって、
パケットを読み出すべきバッファメモリを特定するための帯域制御部を備え、該帯域制御部が、
上記バッファメモリと対応して用意された複数のリーキーバケット部と、
上記各リーキーバケット部から出力されるレベルカウント値と予め指定された最低保証帯域に対応する第２の閾値との差分値に基づいて、レベルカウント値が予め指定された最大許容帯域に対応する第１の閾値以下となるリーキーバケット部に対応するバッファメモリのうちから、パケットを読み出すべきバッファメモリを特定するための出力キュー決定部とを有し、
上記各リーキーバケット部が、
一定の速度でレベルカウント値を減少するレベルカウンタと、
対応するバッファメモリからパケットが読み出された時、上記レベルカウント値を上記パケットの長さに比例した値だけ増加させるレベル上昇手段とを備えたことを特徴とするトラヒックシェーパー。
【請求項５】
前記出力キュー決定部が、
前記各リーキーバケット部から出力されるレベルカウント値と前記第２の閾値との差分値を出力する複数の偏差検出部と、
上記各偏差検出部から出力される差分値に基づいて、パケットを読み出すべきバッファメモリを特定するためのバッファ選択部とからなり、
上記各偏差検出部が、前記各リーキーバケット部から出力されるレベルカウント値が前記第２の閾値以下となった時、前記差分値として零値を出力し、
前記バッファ選択部が、上記偏差検出部から出力される差分値の中から、パケット蓄積中のバッファメモリと対応する偏差検出部からの出力値を有効にして、１つの最小値を選択することを特徴とする請求項４に記載のトラヒックシェーパー。
【請求項６】
前記バッファ選択部が、前記有効となった差分値の中に最小値となる複数の差分値が存在した時、ラウンドロビン形式で１つの最小値を選択することを特徴とする請求項５に記載のトラヒックシェーパー。
【請求項７】
受信した可変長パケットを予め指定された最低帯域を保証して転送する集線装置であって、
複数の入力ポートと、出力ポートと、トラヒックシェーパーを備え、
該トラヒックシェーパーが、
上記各入力ポートから受信した可変長パケットを一時的に蓄積するための複数のバッファメモリと、
パケットを読み出すべきバッファメモリを特定するための帯域制御部と、
上記帯域制御部で特定されたバッファメモリから１つの可変長パケットを読み出し、上記出力ポートに送出する読み出し制御部とを備え、
上記帯域制御部が、
上記バッファメモリと対応して用意された複数のリーキーバケット部と、
上記各リーキーバケット部から出力されるレベルカウント値と予め指定された最低保証帯域に対応する閾値との差分を示す数値を出力する複数の偏差検出部と、
上記各偏差検出部から出力される差分値に基づいて、パケットを読み出すべきバッファメモリを特定するための出力キュー決定部とを有し、
上記各リーキーバケット部が、
一定の速度でレベルカウント値を減少するレベルカウンタと、
上記レベルカウント値を、上記読み出し制御部によって対応バッファメモリから読み出されたパケットの長さに比例した値だけ増加させるレベル上昇手段とを有することを特徴とする集線装置。
【請求項８】
前記各偏差検出部が、前記各リーキーバケット部から出力されるレベルカウント値が前記閾値以下となった時、前記差分値として零値を出力し、
前記出力キュー決定部が、前記各バッファメモリにおけるパケットの蓄積状態を示すレジスタを有し、上記偏差検出部から出力される差分値の中から、上記レジスタが示すパケット蓄積中のバッファメモリと対応する偏差検出部からの出力値を有効にして、１つの最小値を選択することを特徴とする請求項７に記載の集線装置。
【請求項９】
前記出力キュー決定部が、前記有効となった差分値の中に最小値となる複数の差分値が存在した時、ラウンドロビン形式で１つの最小値を選択するための手段を備えることを特徴とする請求項８に記載の集線装置。
【請求項１０】
受信した可変長パケットを予め指定された最低帯域を保証して転送する集線装置であって、
複数の入力ポートと、出力ポートと、上記複数の入力ポートから入力される可変長パケットを各入力ポートと対応したバッファメモリに一時的に蓄積し、バッファメモリ毎に予め指定された最大許容帯域の範囲内で最低帯域を保証して、各バッファメモリから蓄積パケットを読み出し、上記出力ポートに転送するトラヒックシェーパーとを備え、
該トラヒックシェーパーが、パケットを読み出すべきバッファメモリを特定するための帯域制御部を備え、
該帯域制御部が、
上記バッファメモリと対応して用意された複数のリーキーバケット部と、
上記各リーキーバケット部から出力されるレベルカウント値と予め指定された最低保証帯域に対応する第２の閾値との差分値に基づいて、レベルカウント値が予め指定された最大許容帯域に対応する第１の閾値以下となるリーキーバケット部に対応するバッファメモリのうちから、パケットを読み出すべきバッファメモリを特定するための出力キュー決定部とを有し、
上記各リーキーバケット部が、
一定の速度でレベルカウント値を減少するレベルカウンタと、
対応するバッファメモリからパケットが読み出された時、上記レベルカウント値を上記パケットの長さに比例した値だけ増加させるレベル上昇手段とを備えたことを特徴とする集線装置。
【請求項１１】
前記出力キュー決定部が、
前記各リーキーバケット部から出力されるレベルカウント値と前記第２の閾値との差分値を出力する複数の偏差検出部と、
上記各偏差検出部から出力される差分値に基づいて、パケットを読み出すべきバッファメモリを特定するためのバッファ選択部とからなり、
上記各偏差検出部が、前記各リーキーバケット部から出力されるレベルカウント値が前記第２の閾値以下となった時、前記差分値として零値を出力し、
前記バッファ選択部が、上記偏差検出部から出力される差分値の中から、パケット蓄積中のバッファメモリと対応する偏差検出部からの出力値を有効にして、１つの最小値を選択することを特徴とする請求項１０に記載の集線装置。
【請求項１２】
前記バッファ選択部が、前記有効となった差分値の中に最小値となる複数の差分値が存在した時、ラウンドロビン形式で１つの最小値を選択することを特徴とする請求項１１に記載の集線装置。
【請求項１３】
前記各リーキーバケット部が、前記レベルカウンタが示すレベルカウント値に応じて段階的に変化する可変の単位インクリメント値を前記レベル上昇手段に供給するための手段を有し、前記レベル上昇手段が、上記可変の単位インクリメント値と前記パケット長との乗算結果に従って、前記レベルカウント値を増加させることを特徴とする請求項１〜請求項６の何れかに記載のトラヒックシェーパー。
【請求項１４】
前記レベル上昇手段に供給される単位インクリメント値が、前記レベルカウンタが示すレベルカウント値の減少に従って段階的に大きくなることを特徴とする請求項１３に記載のトラヒックシェーパー。
【請求項１５】
前記各リーキーバケット部が、前記レベルカウンタが示すレベルカウント値に応じて段階的に変化する可変の単位インクリメント値を前記レベル上昇手段に供給するための手段を有し、前記レベル上昇手段が、上記可変の単位インクリメント値と前記パケット長との乗算結果に従って、前記レベルカウント値を増加させることを特徴とする請求項７〜請求項１２の何れかに記載の集線装置。
【請求項１６】
前記レベル上昇手段に供給される単位インクリメント値が、前記レベルカウンタが示すレベルカウント値の減少に従って段階的に大きくなることを特徴とする請求項１５に記載の集線装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、受信した可変長パケットを帯域制御して送出するトラヒックシェーパーおよび帯域制御装置に関し、更に詳しくは、バッファメモリに一時的に蓄積された受信パケットを、リーキーバケットによる帯域制御によって予め指定された最低保証帯域を遵守して、出力回線に送出する可変長パケット用のトラヒックシェーパーおよび帯域制御装置に関する。
【０００２】
【従来の技術】
インターネットユーザーの増加に伴い、通信ネットワークにおけるトラヒック量が急増している。現在のインターネット通信は、回線の空き状態に応じてユーザ毎の情報転送量が決まるベストエフォート形式で行われている。しかしながら、ＦＴＴＨ（Fiber To The Home）等のブロードバンド回線が各家庭に行き渡り、例えば、動画のストリーミング配信など、転送情報量の多い通信サービスが増加すると、各ユーザに最低帯域を保証した通信サービスが必要となる。
【０００３】
インターネット上のトラヒックは、公衆網における従来の電話トラヒックと異なって、ユーザ端末からの送信データがバースト的に発生し、パケットフロー（トラヒック）が不連続的になる。そのため、通信に先立って、ユーザ毎に固定の回線帯域を常時確保する必要はなく、通信回線帯域を有効に利用するために複数ユーザのトラヒックを１つの通信回線に多重化し、実際に発生したトラヒックを制御対象として、ユーザ毎に予め契約した最大許容帯域の範囲内で最低保証帯域を保証した通信制御を行うことが望まれる。上記最低保証帯域と最大許容帯域は、非同期転送転送モード(Asynchronous Transfer Mode：ＡＴＭ)における最小セルレート（Minimum Cell Rate：ＭＣＲ）と最大セルレート（Peak Cell Rate：ＰＣＲ）に相当する。
【０００４】
この場合、最低保証帯域は、例えば、通信回線の全帯域を該通信回線に多重化された複数のユーザトラヒックでシェアするように割り当てることができる。基本的にベストエフォートで通信が行われるインターネットでは、ユーザ毎の最大許容帯域の設定は必ずしも必要ではないが、何れかのユーザのトラヒック量が最低保証帯域よりも少なくなった時、通信回線に発生した空き帯域を最低保証帯域以上のトラヒック量を持つユーザが公平にシェアできるような帯域制御が望まれる。
【０００５】
上述した帯域制御を行うトラヒックシェーパー機能に関する従来技術として、例えば、特開２００１−１６８８６９号公報（従来技術１）には、重み付けラウンドロビン（Weighted Round Robin：ＷＲＲ）方式を応用してＭＣＲとＰＣＲを制御するＡＴＭ網用の帯域制御方法が開示されている。
【０００６】
特開平２−２３９７４８号公報（従来技術２）には、リーキーバケットを用いたＡＴＭセル用の帯域制御技術が開示されている。上記従来技術２では、伝送チャネル毎にカウンタを設けておき、セルがキューに到達した時、到着セル長に相当する値をカウンタに加算すると共に、前回のセル到達時刻からの経過時間に比例する値を上記カウンタのカウント値から減算する。各カウンタには１つの閾値が設定してあり、カウント値が閾値未満となった伝送チャネルのセルキューに対して、セルの送出権が与えられる。
【０００７】
可変長パケット用のトラヒックシェーピング技術としては、例えば、特開２０００−３３２７８７号公報（従来技術３）に、公衆網に接続された回線対応部に、各出力回線と対応して、帯域保証すべきパケットを蓄積する優先キューと、空き帯域で送信すべきパケットを蓄積する非優先キューとを設け、保証すべき帯域に応じて各キューの先頭パケットの送信予定時刻を計算しておき、先頭パケットが送信予定時刻に達したキューからパケットを読み出すパケット中継装置が開示されている。
【０００８】
【発明が解決しようとする課題】
しかしながら、上述した従来技術は、インターネット上で通信される可変長パケットについて、予め契約された最低保証帯域を遵守し、空き帯域を有効に利用して最低保証帯域以上のパケット転送を可能とする実用的なトラヒックシェーピング技術を開示していない。例えば、従来技術１と従来技術２は、固定長のＡＴＭセルを制御対象としているため、そのままでは可変長パケットのトラヒックには適用できない。
【０００９】
従来技術３では、パケット送信予定時刻に達した優先キューから先頭パケットを読み出して出力回線に送信し、同一優先キュー内の次のパケットに対して、最低保証帯域を超えない新たな送信予定時刻を割り当てることによって、優先パケットの最低帯域を保証している。また、優先キューに一定量以上のパケットが蓄積された場合は、最低保証帯域には関係なく直ちにパケット送信時刻となる送信予定時刻を与えることによって、キューが溢れるのを防止している。非優先キューの蓄積パケットは、送信予定時刻に達した優先キューに送信すべきパケットがなかった場合に送信権が与えられ、最低帯域の空き時間を利用して出力回線に送信される。
【００１０】
然るに、上記従来技術３では、先頭パケットに割り当てた送信予定時刻に達した優先キュー、または送信予定時刻を経過した優先キューからパケットを読み出すことを原則としているため、送信予定時刻に到達する前に発生した空き帯域を利用することは原理的に困難となる。上記従来技術３には、パケット送信ユーザが減少したとき、送信帯域を最大契約帯域まで増加できる旨の記述があるが、具体的な制御技術は開示されていない。
【００１１】
本発明の目的は、各トラヒックの最低保証帯域を保証し、且つ、通信回線の空き帯域を有効に利用して可変長パケットを転送できるトラヒックシェーパーを提供することにある。
本発明の他の目的は、複数のトラヒックが通信回線の空き帯域を公平にシェアできるトラヒックシェーパーを提供することにある。
本発明の更に他の目的は、各トラヒックに最低帯域を保証し、最大許容帯域の範囲内で通信回線の空き帯域を利用した可変長パケット転送を可能とするトラヒックシェーパーを提供することにある。
本発明の更に他の目的は、予め指定された最低帯域を保証するためのパケット送信タイミングを的確に検出できるリーキーバケット型の帯域制御装置を提供することにある。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明は、複数の入力ポートから受信した可変長パケットを予め指定された最低帯域を保証して１つの出力ポートに転送するトラヒックシェーパーにおいて、
上記各入力ポートから受信した可変長パケットを一時的に蓄積するための複数のバッファメモリと、パケットを読み出すべきバッファメモリを特定するための帯域制御部と、上記帯域制御部で特定されたバッファメモリから１つの可変長パケットを読み出し、上記出力ポートに送出する読み出し制御部とからなり、
上記帯域制御部が、上記バッファメモリと対応して用意された複数のリーキーバケット部と、上記各リーキーバケット部から出力されるレベルカウント値と予め指定された最低保証帯域に対応する閾値との差分値に基づいて、パケットを読み出すべきバッファメモリを特定するための出力キュー決定部とからなり、
上記各リーキーバケット部が、一定の速度でカウント値を減少するレベルカウンタと、上記読み出し制御部による対応バッファメモリからのパケットの読み出しに応答して、上記レベルカウンタのカウント値を上記パケットの長さに比例した値だけ増加させるレベル上昇手段とを備えたことを特徴とする。
【００１３】
更に詳述すると、上記出力キュー決定部は、各リーキーバケット部から出力されるレベルカウント値と前記最低保証帯域に対応する閾値との差分を示す数値を出力する複数の偏差検出部と、上記各偏差検出部から出力される差分値に基づいて、パケットを読み出すべきバッファメモリを特定するためのバッファ選択部とからなる。上記各偏差検出部は、各リーキーバケット部から出力されるレベルカウント値が閾値以下となった時、上記差分値として零を出力する。また、上記バッファ選択部は、各バッファメモリにおけるパケットの蓄積状態を示すレジスタを有し、上記偏差検出部から出力される差分値の中から、上記レジスタが示すパケット蓄積中のバッファメモリと対応する偏差検出部からの出力値を有効にして、１つの最小値を選択する。
【００１４】
本発明の１実施例によれば、上記バッファ選択部は、有効となった差分値の中に最小値となる複数の差分値が存在した時、ラウンドロビン形式で１つの最小値を選択する。これによって、パケットの送信が可能となったバッファメモリに順次に送信権を与えることが可能となる。
【００１５】
本発明の１つの特徴は、上記各リーキーバケット部が、上記レベルカウンタが示すレベルカウント値によって変化する可変の単位インクリメント値を上記レベル上昇手段に供給し、上記レベル上昇手段が、上記単位インクリメント値とパケット長との乗算結果に従って、上記レベルカウンタのカウント値を増加させることにある。
【００１６】
本発明の１実施例によれば、各リーキーバケット部は、上記レベルカウンタが示し得るレベルカウント値の範囲内に定義された複数のレベル区域と対応して、レベル区域毎に異なった単位インクリメント値を表すインクリメント値テーブルを有し、上記レベル上昇手段が、上記テーブルが示すレベルカウンタのレベルカウント値と対応する単位インクリメント値とパケット長との乗算結果に従って、レベルカウンタのカウント値を増加させる。
【００１７】
本発明の好ましい実施例によれば、各リーキーバケット部は、バッファメモリに指定された最低保証帯域に対応する閾値が上記何れかのレベル区域の略中央部に位置するように、レベル区域の境界定義が異なったインクリメント値テーブルを使用する。上記インクリメント値テーブルには、レベルカウンタが示すレベルカウント値の減少に従って段階的に大きくなる可変の単位インクリメント値が記憶してある。
【００１８】
本発明のトラヒックシェーパーでは、このように可変の単位インクリメント値を適用することによって、トラヒックが途絶えてリーキーバケットのレベルが閾値を大きく下回った場合でも、新たに到着したパケットがバッファメモリから読み出された時点で、リーキーバケットのレベルを急激に上昇させることができる。従って、本発明によれば、一時的に途絶えたトラヒックが回復した時、リーキーバケットのレベルを閾値（最低保証帯域のレベル）よりも高い位置にまで短時間で上昇させることができ、各バッファメモリに対してそれぞれの最低保証帯域に応じた送信権を付与することが可能となる。
【００１９】
本発明の他の特徴は、上記帯域制御部の出力キュー決定部が、レベルカウント値が予め指定された最大許容帯域に対応する閾値以下となったリーキーバケットを選択対象として、上述した差分値に基づくバッファメモリの特定を行うようにしたことにある。
【００２０】
本発明のトラヒックシェーパーでは、最低保証帯域によって決まる閾値とレベルカウント値との差分が最小となったリーキーバケットと対応関係にあるバッファメモリに対して、パケット送信権が与えられる。従って、パケット蓄積中のバッファメモリと対応する全てのリーキーバケットにおいて、レベルカウント値が上記最低保証帯域によって決まる閾値よりも高くなった場合、レベルカウント値が閾値に最も接近したバッファメモリに対してパケット送信権が与えられ、最大許容帯域の範囲内で、最低保証帯域を超えたトラヒックシェーピングを実現できる。
【００２１】
パケット送信権は、各トラヒックの最低保証帯域を基準にして配分されるため、本発明によれば、全てのトラヒックに最低保証帯域を保証した状態で生まれた出力回線の空き帯域を、各トラヒックの最低保証帯域に従った比率で公平に配分することが可能となる。
【００２２】
本発明による帯域制御装置は、複数のバッファメモリと対応する複数のリーキーバケット部と、上記各リーキーバケット部から出力されるレベルカウント値と予めバッファメモリ毎に指定された最低保証帯域に対応する閾値との差分値に基づいて、パケットを読み出すべきバッファメモリを特定するための出力キュー決定部と、上記出力キュー決定部で特定されたバッファメモリから１つの可変長パケットを読み出す読み出し制御部とを有し、
上記各リーキーバケット部が、一定の速度でカウント値を減少するレベルカウンタと、対応するバッファメモリからパケットが読み出された時、上記レベルカウンタのカウント値を上記パケットの長さに比例した値だけ増加させるレベル上昇手段とを有し、
上記レベル上昇手段が、上記レベルカウンタが示すレベルカウント値の減少に従って段階的に大きくなる可変の単位インクリメント値とパケット長との乗算結果に従って、上記レベルカウンタのカウント値を増加させることを特徴とする。
本発明の更に他の目的と特徴は、以下に図面を参照して説明される実施例から明らかになる。
【００２３】
【発明の実施の形態】
図１は、本発明のトラヒックシェーパーが適用されるパケット交換システムの１例を示す。
パケット交換システムは、それぞれ入力回線群ＩＮ１−１〜ＩＮ１−ｎ、ＩＮｍ−１〜ＩＮｍ−ｎに接続されたトラヒックシェーパー１００−１〜１００−ｍと、トラヒックシェーパー１００−１〜１００−ｍから出力された可変長パケットを各パケットに付された内部ヘッダ情報に従ってパケット振分け部３１０−１〜３１０−ｍに選択的に転送するスイッチ部３００と、パケット振分け部３１０−１〜３１０−ｍに接続されたパケット送信部３２０−１〜３２０−ｍと、トラヒックシェーパー１００−１〜１００−ｍとスイッチ部３００に接続された制御部３０１とからなる。
【００２４】
各トラヒックシェーパー１００−ｉ（ｉ＝１〜ｍ）は、入力回線群ＩＮｉ−１〜ＩＮｉ−ｎから入力される可変長パケットを、コネクション毎に予め指定された最低保証帯域、最大許容帯域に従って帯域制御しながら、スイッチ部３００の入力ポートＰＩ−ｉに多重化して出力する。最低保証帯域、最大許容帯域の値は、制御部３０１から信号線Ｓ３０１−１〜Ｓ３０１−ｍを介して各トラヒックシェーパーに設定される。
【００２５】
各パケット振分け部３１０−ｉ（ｉ＝１〜ｍ）は、スイッチ部３００の出力ポートＰＯ−ｉから供給された出力パケットを内部ヘッダ情報に従って出力回線ＯＵＴ１ｉ−１〜ＯＵＴ１ｉ−ｎと対応した信号線Ｌｉ−１〜Ｌｉ−ｎに振り分ける。各パケット送信部３２０−ｉ（ｉ＝１〜ｍ）は、信号線Ｌｉ−１〜Ｌｉ−ｎから入力された出力パケットから不要となった内部ヘッダ情報を外して、出力パケットを出力回線ＯＵＴｉ−１〜ＯＵＴｉ−ｎに送出する。
【００２６】
図２は、本発明によるトラヒックシェーパー１００−ｉの１実施例を示すブロック図である。
トラヒックシェーパー１００−ｉは、それぞれ入力回線ＩＮｉ−ｊに接続された複数の入力回線インタフェース１０−ｊ（ｊ＝１〜ｎ）と、それぞれ信号線Ｓ１０−ｊを介して入力回線インタフェース１０−ｊに接続された複数のパケットバッファ２０−ｊ（ｊ＝１〜ｎ）と、入力回線インタフェース１０−ｊから信号線Ｓ１７−ｊを介して与えられるパケット長Ｌに従って、各パケットバッファ２０−ｊにパケットを書き込む複数の書き込み制御回路２１−ｊ（ｊ＝１〜ｎ）と、信号線Ｓ２２−ｊを介してパケットバッファ２０−ｊ（ｊ＝１〜ｎ）のパケットの読み出しを制御する読み出し制御回路２２と、パケットバッファ２０−ｊ（ｊ＝１〜ｎ）からの出力パケットをポートＰＩｉに転送するためのセレクタ２４と、バッファ制御部３０と、帯域制御部４０とからなる。
【００２７】
バッファ制御部３０は、信号線Ｓ１７−ｊを介して入力回線インタフェース１０−ｊ（ｊ＝１〜ｎ）から受信したパケット長Ｌを記憶しておき、帯域制御部４０から信号線Ｓ４０を介して与えられた出力キュー指定信号に応答して、信号線Ｓ３０、Ｓ３１にパケット長Ｌとバッファ指定番号ｋを出力する。
【００２８】
読み出し制御回路２２は、上記バッファ指定番号ｋと対応するパケットバッファ２０−ｋからパケット長Ｌが示す１パケット分のデータを読み出す。１パケット分のデータの読み出しが完了すると、読み出し制御回路２２は、信号線Ｓ２２、Ｓ２３にバッファ番号ｋと出力パケット長Ｌを出力する。
【００２９】
上記パケットの読み出し期間中は、セレクタ２４が、バッファ指定番号ｋで指定されたパケットバッファ２０−ｋからの出力を選択し、ポートＰＩｉに出力する。帯域制御部４０は、信号線Ｓ２２、Ｓ２３を介して読み出し制御回路２２から受け取ったバッファ番号ｋとパケット長Ｌに基づいて、リーキーバケットによる帯域監視を実行する。また、バッファ制御部３０から信号線Ｓ３３を介して受け取った出力キュー状態情報を参照して、次にパケットを読み出すべき出力キューを決定して、信号線Ｓ４０に上記出力キューの番号ｋを示す出力キュー指定信号を出力する。
【００３０】
図３は、入力回線インタフェースの１実施例を示す。
入力回線インタフェース１０−１は、入力回線ＩＮｉ−１に接続されたフレーム終端回路１１と、フレーム終端回路１１から信号線Ｓ１１に出力されるパケットフレームに内部ヘッダを付加し、信号線Ｓ１０−１に出力する内部ヘッダ付加回路１２と、信号線Ｓ１１に出力されるパケットフレームのヘッダ部から宛先アドレスを抽出する宛先アドレス抽出回路１３と、宛先アドレス抽出回路１３で抽出された宛先アドレスに従ってルーティングテーブル１５から内部ルーティング情報を検索し、該内部ルーティング情報を含む内部ヘッダを生成して内部ヘッダ付加回路１２に供給するルーティング部１４と、信号線Ｓ１１に出力されるパケットフレームのヘッダ部からパケット長を抽出するパケット長抽出回路１６と、パケット長抽出回路１６で抽出されたパケット長に内部ヘッダ長を加えたパケット長Ｌを生成し、信号線Ｓ１７−１に出力するパケット長出力回路１７とからなる。上記パケット長Ｌは、パケットバッファから読み出すべきパケット長をバイト単位で示している。
【００３１】
尚、１８は、図１３、図１４で説明する本発明の他の実施例で必要となる優先度情報抽出回路であり、図２に示した入力回線インタフェース１０−１には不要な要素である。他の入力回線インタフェース１０−２〜１０−ｎも、上記入力回線インタフェース１０−１と同様の構成となっている。
【００３２】
図４は、バッファ制御部３０の１実施例を示す。
バッファ制御部３０は、信号線Ｓ１７−１〜Ｓ１７−ｎから受信したパケット長Ｌを順次に蓄積するための複数のパケット長ＦＩＦＯ３１−１〜３１−ｎと、帯域制御部４０が信号線Ｓ４０に出力した出力キュー指定信号で特定されるパケット長ＦＩＦＯ３１−ｋの先頭パケット長Ｌを読み出し、信号線Ｓ３０に出力するためのセレクタ３２と、上記各パケット長ＦＩＦＯ３１−ｉ（ｉ＝１〜ｎ）に有効データが格納されているか否かを示すｎビットのステータスビットパターンを発生するステータスビットレジスタ３３とからなる。
【００３３】
レジスタ３３から信号線Ｓ３３に出力されるステータスビットパターンの第１ビットは、パケット長ＦＩＦＯ３１−１における有効データの有無、すなわち、パケットバッファ２０−１におけるパケットデータの有無を示し、第ｎビットは、パケットバッファ２０−ｎにおけるパケットデータの有無を示している。また、信号線Ｓ４０から入力された出力キュー指定信号は、信号線Ｓ３１からバッファ指定番号ｋとして出力される。
【００３４】
図５は、帯域制御部４０の１実施例を示す。
帯域制御部４０は、パケットバッファ２０−１〜２０−ｎと対応して用意された複数の階層化リーキーバケット部４１−１〜４１−ｎと、読み出し制御回路２２から信号線Ｓ２３に出力されたパケット長Ｌを信号線Ｓ２２で通知されたバッファ番号ｋで特定される階層化リーキーバケット部４１―ｋに入力するための分配回路４２と、階層化リーキーバケット部４１−１〜４１−ｎの各出力線に接続された出力キュー決定部４３とからなる。
【００３５】
出力キュー決定部４３は、後述するように、階層化リーキーバケット部４１−１〜４０−ｎから信号線Ｓ４１−１〜Ｓ４１−ｎに出力されるリーキーバケットのレベル値（カウンタ値）と、パケットバッファ（２０−１〜２０−ｎ）毎に予め指定された最低保証帯域および最大許容帯域の値と、バッファ制御部３０が信号線Ｓ３３に出力したステータスビットパターンとに基づいて、次にパケットを読み出すべき出力キューを決定し、信号線Ｓ４０に上記出力キューの番号ｋを示す出力キュー指定信号を出力する。
【００３６】
ここで、本発明による階層化リーキーバケット部４１−ｉ（ｉ＝１〜ｎ）の特徴の理解を容易にするために、図６（Ａ）〜（Ｆ）を参照して、従来のリーキーバケットの問題点について説明する。
今、パケットフローに最低６００Ｍｂｐｓの帯域を保証する場合を想定する。この場合、パケットフローは、図６（Ａ）に示すように、最低保証帯域と対応したレベルに閾値ＴＨ６００をもつリーク速度が６００Ｍｂｐｓのリーキーバケットによって制御される。
【００３７】
上記リーキーバケットには、パケットバッファ（出力キュー）からのパケットの読み出しの都度、パケット長に比例した量の水が注ぎ込まれる。水位が閾値ＴＨ６００を越えている間は、パケットバッファからのパケットの読み出しが抑制され、図６（Ｂ）に示すように、水位が閾値ＴＨ６００以下に低下した時、次のパケットの送出権が与えられる。従って、入力回線から最低保証帯域６００Ｍｂｐｓにほぼ等しいレートでパケットが流入している間は、図６（Ｂ）、図６（Ｃ）が示すように、リーキーバケット水位は閾値ＴＨ６００の近辺を下限として上下を繰り返し、パケットバッファ内での過度の滞留を招くことなく、入力パケットが出力回線に転送される。
【００３８】
入力回線から最低保証帯域６００Ｍｂｐｓを超えてパケットが流入した場合、パケットバッファからの出力フローが６００Ｍｂｐｓに制御されていれば、パケットキュー内で滞留するパケットの量が増加する。逆に、入力回線から流入するパケット量が大きく減少すると、図６（Ｄ）に示すように水位が落ち込む。この状態で、最低保証帯域６００Ｍｂｐｓにほぼ等しいレートでパケットが流入した場合、図６（Ｅ）、図６（Ｆ）が示すように、リーキーバケット水位が閾値ＴＨ６００よりも低い水位ＴＨ２８０の近辺を下限として上下する。
【００３９】
リーキーバケットを利用した帯域制御では、水位が閾値以下となった時、パケット送信権が発生する。従って、図６（Ｄ）〜（Ｆ）に示すように、水位が閾値ＴＨ６００よりも大きく下がると、このリーキーバケットと対応したパケットバッファには、蓄積パケットが存在する限り、頻繁に送信権が与えられる。従って、水位が閾値よりも大きく下がった後、最低保証帯域６００Ｍｂｐｓを上回るレートでパケットが流入した場合、水位が閾値ＴＨ６００に達する迄の期間は、最低保証帯域を超えてパケットが出力回線に送出されてしまう。つまり、リーキーバケット水位が閾値の近辺で上下しているパケットバッファからは最低保証帯域でパケットが送出され、リーキーバケット水位が閾値よりも大きく落ち込んだパケットバッファからは、相当の期間、最低保証帯域を超えてパケットが送出され続けると言う不公平が発生する。
【００４０】
本発明の特徴は、パケット送信に伴う水位上昇量をリーキーバケットの現在の水位に応じて変えることにある。
すなわち、本発明は、上昇水位の計算に適用する単位インクリメントの値をリーキーバケットの現在の水位に応じて可変にすることにより、同一長さのパケットが送出された場合でも、現在水位によってリーキーバケットへの注水量が異なるようにしたことを特徴とする。
【００４１】
本発明によれば、例えば、図６（Ｄ）のように水位が大きく落ち込んだ時、単位インクリメントの値を大きくすることによって、パケット送出に伴うリーキーバケットの上昇水位を増加し、リーキーバケット水位を閾値に急速に近づける。
【００４２】
通信回線の空き帯域あるいは余裕帯域を利用して、最低保証帯域を越える帯域でパケット転送サービスを実行するためには、リーキーバケット水位が最低保証帯域を示す閾値ＴＨ６００を超えた状態にあるバッファに対して送信権を与える必要がある。本発明では、最低保証帯域を超えてパケット送信権を与えた場合、上昇水位計算に適用する単位インクリメントの値を小さくすることによって、水位の上昇量を少なくする。
【００４３】
図７は、本発明の階層化リーキーバケット４１におけるリーキーバケット水位と、上昇水位計算に適用される単位インクリメントとの関係を説明するための図である。
本実施例では、リーキーバケットを深さ方向に複数のレベル区域（ゾーン）に分割し、レベル区域毎に異なる単位インクリメント値を割り当て、水位が１つのレベル区域から別のレベル区域に変化した時、上昇水位計算に適用される単位インクリメントの値を段階的に切り換える。
【００４４】
テーブル６０、６１において、Ｚ−１〜Ｚ−１０は、リーキーバケットの深さ方向に等間隔に分割されたレベル区域であり、水位が同一レベル区域内で変化する限り、同一の単位インクリメント値を適用して上昇水位の値が計算される。
【００４５】
テーブル６０は、レベル区域Ｚ−１〜Ｚ−１０の境界が１００Ｍbps、２００Ｍbps、…１０００Ｍbpsとなるように区切った第１のレベル区域定義ステーブルであり、テーブル６１は、レベル区域Ｚ−１〜Ｚ−１０の境界が５０Ｍbps、１５０Ｍbps、２５０Ｍbps、…１０５０Ｍbpsとなるように区切った第２のレベル区域定義ステーブルを示す。
【００４６】
テーブル６０の左側に付したレベルカウンタ値「86526」〜「4554」は、帯域値１０００Ｍbps〜１００Ｍbpsに相当するレベルカウンタのカウント値を示し、テーブル６１の右側に付したレベルカウンタ値「81972」〜「9108」は、帯域値９５０Ｍbps〜１５０Ｍbpsに相当するレベルカウンタのカウント値を示す。各レベル区域に割り当てられる単位インクリメントの値は、水位が高くなるに従って小さくなっている。
【００４７】
本発明の特徴は、パケットが送出された時、可変の単位インクリメントを適用してリーキーバケットの水位を閾値の近傍まで上昇させ、水位が閾値以下となったパケットバッファの中からパケットを送出すべきパケットバッファを選択することにある。各リーキーバケットには、最低保証帯域と対応した第１の閾値と、最大許容帯域に対応した第２の閾値が設定される。このうち、帯域制御で重要となる閾値は、最低保証帯域と対応した第１の閾値であり、リーキーバケット水位が上記第１の閾値よりも低下したパケットバッファ、またはリーキーバケット水位が上記第１の閾値に最も接近したパケットバッファに対して、パケットの送信権が与えられる。
【００４８】
本実施例で、レベル区域の境界値が異なる第１、第２のレベル区域定義ステーブル６０、６１を用意した理由は、１つのパケットバッファに対してパケットの送信権を与えた時、最低保証帯域において、リーキーバケット水位が最低保証帯域を超えていたか否かで異なった単位インクリメント値が適用されるのを回避するためである。
【００４９】
例えば、最低保証帯域（第１の閾値）が６００Ｍbpsに設定されたトラヒックに対して、第１のレベル区域定義ステーブル６０に従ってリーキーバケット水位の存在区域を判定した場合、リーキーバケット水位が６００Ｍbps相当のカウント値「50094」よりも僅かでも低ければ、レベル区域Ｚ−５の単位インクリメントが適用され、逆に僅かでも高ければ、レベル区域Ｚ−６の単位インクリメントが適用される。従って、同一パケットを送出した場合でも上昇水位の計算結果に差異が発生し、次のパケット送信権を得るまでの待ち時間に影響する。
【００５０】
上記トラヒックに対して、６００Ｍbpsの閾値をレベル区域Ｚ−６の中央にもつ第２のレベル区域定義ステーブル６１を適用すれば、閾値近傍でのリーキーバケット水位に多少の揺らぎがあった場合でも、同一の単位インクリメント値を適用できるため、安定した最低保証帯域制御が可能となる。
リーキーバケットのリーク量が６００Ｍｂｐｓの場合、レベル区域Ｚ−６で使用する単位インクリメント値を「１」とし、この値を基準として、その他のレベル区域Ｚ−１〜Ｚ−５、Ｚ−７〜Ｚ−１０に割り当てるべき単位インクリメント（α）の値を決定する。
【００５１】
図８（Ａ）と図８（Ｂ）は、本発明の実施例で使用する第１、第２の単位インクリメント（α）値テーブル４１１、４１２の１例を示す。
これらのテーブルには、図７で示した第１、第２のレベル区域定義ステーブル６０、６１が示すレベル区域定義（Ｚ−１〜Ｚ−１０）に従って、レベルカウンタ値の範囲と単位インクリメント（α）の値が登録されている。各レベル区域には、レベル区域Ｚ−６のα値「１」を基準にして、区域番号に反比例したα値が設定されている。
【００５２】
図９は、図５に示した階層化リーキーバケット部４１−１の１実施例を示す。
階層化リーキーバケット部４１−１は、図８に示した第１、第２のα値テーブル４１１および４１２と、これらのテーブルに接続された単位インクリメント値決定部４１３と、信号線Ｓ４２−１から入力されたパケット長Ｌから内部パケットヘッダ長を減算して、入力パケットの真のパケット長Ｌ０を出力する減算器４１４と、上記決定部４１３から与えられたα値と減算器４１４から出力されたパケット長Ｌ０とを乗算する乗算器４１５と、クロックＣＬに同期してカウンタ値をデクリメントするレベルカウンタ４１６と、上記乗算器４１５の出力値とレベルカウンタ４１６の出力値とを加算してレベルカウンタに設定する加算器４１７と、使用テーブル指定レジスタ４１８とからなる。上記レジスタ４１８には、図１に示した制御部３０１から信号線Ｓ３０１−ｉを介して使用テーブル指定情報が設定される。
【００５３】
第１α値テーブル４１１と第２α値テーブル４１２からは、レベルカウンタ４１６の出力が示すリーキーバケットの現在水位に対応したインクリメント値α１、α２が読み出される。単位インクリメント値決定部４１３は、信号線Ｓ４２−１にパケット長Ｌが出力されたタイミングで、使用テーブル指定レジスタ４１８が示すα値テーブルの出力値、α１またはα２を取り込み、上昇水位計算用の単位インクリメント値αとして乗算器４１５に供給する。
【００５４】
乗算器４１５からは、上記単位インクリメント値αとパケット長Ｌ０との乗算結果、すなわち、リーキーバケットの上昇水位を示す値が出力される。加算器４１７は、レベルカウンタ４１６から出力されているリーキーバケットの現在水位を示すカウンタ値に、乗算器４１５から出力される上昇水位を加算して、レベルカウンタ４１６に設定する。
【００５５】
本実施例では、階層化リーキーバケット部４１−１が、使用テーブル指定情報に従って、第１、第２のα値テーブル４１１、４１２の出力値を選択的に使用して上昇水位をカウントしたが、３種類以上のα値テーブルを選択的に使用するようにしてもよい。このようにすれば、最低保証帯域が、例えば、７０Ｍbpsや６８０Ｍbpsのように半端な値の場合でも、最低保証帯域を示す閾値をレベル区域の略中央にもつα値テーブルを選択することが可能となる。また、各階層化リーキーバケット部には１つのα値テーブルを用意し、指定された最低保証帯域の値に合わせて、α値テーブルの内容を書き換えるようにしてもよい。
【００５６】
図１０は、図５に示した出力キュー決定部４３の１実施例を示す。
出力キュー決定部４３は、上述した階層化リーキーパケット部４１−１〜４１−ｎに接続された複数の偏差検出部４４−１〜４４−ｎと、これらの偏差検出部の出力値に基づいて、パケット出力の候補となる１つまたは複数のパケットバッファ番号を選択する候補バッファ選択回路４５と、候補バッファ選択回路４５から出力された候補バッファ番号の中からラウンドロビン方式で１つのバッファ番号ｋを選択し、信号線Ｓ４０に出力キュー指定信号として出力するラウンドロビンセレクタ４６と、バッファ制御部３０から信号線Ｓ３３を介して供給されたステータスビットパターンを記憶するためのステータスビットレジスタ４７からなる。
【００５７】
第１の偏差検出部４４−１は、図２に示した第１のパケットバッファ２０−１と対応しており、第ｉ番目の偏差検出部４４−ｉは、パケットバッファ２０−ｉと対応している。偏差検出部４４−１は、最大許容帯域レジスタ４４１と、信号線Ｓ４１−１を介して入力されるリーキーバケットの現在のレベル値（レベルカウンタ４１６の出力値）ＬＢを保持するためのレジスタ４４２と、固定値レジスタ４４３と、最低保証帯域レジスタ４４４とを備えている。
【００５８】
上記最大許容帯域レジスタ４４１には、パケットバッファ２０−１の蓄積パケットに対して許容できる最大許容帯域の値が、図７に示したレベルカウンタ値に換算した値Ｌmaxで設定されている。同様に、レジスタ４４４には、パケットバッファ２０−１の蓄積パケットに対して保証すべき最低保証帯域を示すレベル値Ｌminが設定される。これらの値は、図１に示した制御部３０１から信号線Ｓ３０１−ｉを介して供給される。レジスタ４４３には、リーキーバケットにおける最大のカウント値ＭＡＸが固定値として設定されている。
【００５９】
偏差検出部４４−１は、レジスタ４４１の値Ｌmaxとレジスタ４４２の値ＬＢを比較器４４５で比較し、ＬＢがＬmaxを超えていた場合は、セレクタ４４６でレジスタ４４３の値ＭＡＸを選択し、ＬＢがＬmaxよりも小さい場合は、セレクタ４４６でレジスタ４４２の値ＬＢを選択して、差分検出器４４７に入力する。差分検出器４４７は、セレクタ４４６の出力値ＬＢまたはＭＡＸから、レジスタ４４４が示す最低保証帯域値Ｌminを差し引いて得られる差分値を出力する。ＬＢからＬminを差し引いた値が負数となった場合、差分検出器４４７は零値を出力する。
【００６０】
候補バッファ選択回路４５は、偏差検出部４４−１〜４４−ｎから出力される差分値のうち、ステータスビットレジスタ４７が“０”のビット位置、すなわち、送信すべきパケットを蓄積していないパケットバッファに対応した差分値を無効にし、残りの差分値の中から最小値を選択する。
【００６１】
上述したように、各偏差検出部４４は、リーキーバケットの現在のレベルＬＢが最低保証帯域の値Ｌminより低い（“ＬＢ”−“Ｌmin”＜０）場合、差分値として「０」を出力しているため、候補バッファ選択回路４５には、最小値「０」となる差分値が複数の偏差検出部から同時に入力される可能性がある。候補バッファ選択回路４５は、第ｉビットを第ｉ偏差検出部４４−ｉと対応させたｎビットのビットパターンにおいて、最小値を出力した偏差検出部と対応するビットに“１”、その他のビット位置に“０”を設定した形式で、選択結果を示すビットパターンをラウンドロビンセレクタ４６に出力する。
【００６２】
ラウンドロビンセレクタ４６は、送信すべきパケットを蓄積中のパケットバッファ２０に対して公平に送信権を与えるため、選択回路４５から出力されたビットパターンの“１”ビットが示す候補バッファのうち、前回送信権を得たパケットバッファの選択順位が最後となるラウンドロビン形式で“１”ビットのビット位置ｋを選択し、バッファ番号ｋを出力バッファ指示信号として出力する。この動作は、読み出し制御回路２２から信号線Ｓ２３へのパケット長Ｌの出力に応答するタイミングで、トラヒックシェーパーからパケットが送出される度に実行される。
【００６３】
次に、本発明のトラヒックシェーパーの機能について、図１１に示す簡単な使用モデルで説明する。
図１１に示したトラヒックシェーパー１００は、例えば、ギガビットイーサーのように最大１Ｇｂｐｓまでのトラヒックを流せる４本の入力回線ＩＮ−１〜ＩＮ−４を有し、これらの入力回線から流入するトラヒックを、それぞれの最低保証帯域を保証して、２．４Ｇｂｐｓ帯域をもつ出力線に多重化して出力する。
【００６４】
ここでは、説明を簡単にするために、各入力回線をそれぞれ１人のユーザが使用し、出力線の帯域２．４Ｇｂｐｓを入力回線ＩＮ−１〜ＩＮ−４のトラヒックで公平にシェアした場合を仮定する。１トラヒック当たりの平均帯域である６００Ｍbps（７５ＭBytes）を基本帯域とし、リーキーバケットのリーク速度とする。６００Ｍbpsは、各階層化リーキーバケットにおけるレベルカウンタ４１６のカウント値が、時間経過に従って７５ＭＨｚで減少すること意味している。また、上記基本帯域６００Ｍbpsに対応するレベル区域で使用される１バイト当たりの単位インクリメント値を「１」とし、図７に示した第１、第２のα値テーブル４１１、４１２に従って、リーキーバケットの各レベル区域での単位インクリメント値を切り換えるものとする。
【００６５】
各ユーザに割り当てる最低保証帯域は、各入力回線がもつ帯域の範囲内（０Ｍbps〜１０００Ｍbps）で自由に選択できるが、全ユーザの帯域合計が出力線の帯域２．４Ｇbpsを超えてはならない。最大許容帯域も、各入力回線の帯域の範囲内でユーザに自由に割り当てることができるが、同一ユーザに対して最低保証帯域以下の最大許容帯域を設定することはできない。最大許容帯域は、出力線に空き帯域が発生した場合に各ユーザが利用可能な帯域の上限値を示しているため、全ユーザの最大許容帯域の合計値は、出力線の帯域（２．４Ｇbps）を超えてもよい。ユーザが最大許容帯域を指定しなかった場合、デフォルト値として、例えば、入力回線の帯域値を設定すればよい。
【００６６】
ここでは、Ｌminで表される最低保証帯域の値として、入力回線ＩＮ−１〜ＩＮ−４の各トラヒックに、それぞれ８００Ｍbps、３５０Ｍbps、４００Ｍbps、８００Ｍbpsを割り当て、Ｌmaxで表される最大許容帯域の値として、入力回線ＩＮ−１〜ＩＮ−４にそれぞれ９００Ｍbps、６００Ｍbps、８００Ｍbps、１０００Ｍbpsを割り当てた場合を仮定する。
【００６７】
この場合の入力回線ＩＮ−１〜ＩＮ−４に対応するリーキーバケット６００−１〜６００−４の状態は、図１２（Ａ）〜図１２（Ｄ）のようになる。ここで、リーキーバケット６００−２のレベル区分Ｚ−１〜Ｚ−１０は、図７に示した第１のレベル区分定義テーブル６０に従って定義されており、第１のα値テーブル４１１によって単位インクリメントの値が決定される。他のリーキーバケット６００−１、６００−３、６００−４のレベル区分Ｚ−１〜Ｚ−１０は、第２のレベル区分定義テーブル６１に従って定義されており、第２のα値テーブル４１２によって単位インクリメントの値が決定される。
【００６８】
各リーキーバケットの水位は、初期状態において、斜線を付して示すように、それぞれの最低保証帯域Ｌminのレベルにある。リーキーバケットの水位は、リーク速度６００Ｍbpsで下降するが、各入力回線から最低保証帯域でパケットの流入する限り、注水による水位の上昇とリークによる水位の低下とが釣り合うため、最低水位はレベルＬminに保たれる。
【００６９】
例えば、リーキーバケット６００−３と６００−４を比較すると、リーキーバケット６００−４の最低水位（閾値Ｌmin）は、リーキーバケット６００−３の２倍の高さにあり、上昇水位の計算に適用される単位インクリメントαの値が１対２の関係にある。従って、同一長さのパケットが出力された時、水位Ｌminからのリーキーバケット６００−３の上昇水位は、リーキーバケット６００−４の上昇水位の２倍となる。リーキーバケットからのリーク速度は同一となっているため、水位が減少してＬminに到達するまでの所要時間は、リーキーバケット６００−３の方が６００−４の２倍となり、結果的に、パケットの送出レートがそれぞれの最低保証帯域に比例する。
【００７０】
本発明では、上述したように、上昇水位計算に適用される単位インクリメントの値を現在の水位に応じて切り換える階層化リーキーバケットを採用している。従って、一時的にパケットフローが途絶えて、水位が最低保証帯域のレベルＬminから著しく低下した場合でも、次のパケットを送出した時、大きな値をもつ単位インクリメントを適用して水位を大幅に上昇させることにより、水位を閾値Ｌminの位置まで急速に復帰させることができ、その後に流入するパケットフローに対して、最低保証帯域を保証した適正な帯域制御を施すことが可能となる。
【００７１】
また、本発明では、図１０に示した出力キュー決定部４３によって、送出すべきパケットを保有する複数のパケットバッファのうち、現在の水位と最低保証帯域Ｌminとの差分値が最小となったパケットバッファにパケット送信権を与えている。また、対応するリーキーバケットの水位が最低保証帯Ｌminよりも下がった場合は、現在水位と最低保証帯域のレベルＬminとの差分値を零とし、複数の出力バッファ候補が存在した場合は、ラウンドロビン形式で各パケットバッファに平等に送信権を与えるようにしている。
【００７２】
上記キュー決定部４３によれば、パケット蓄積中のパケットバッファと対応した全てのリーキーバケットにおいて現在水位が最低保証帯域のレベルＬminを超えた場合は、現在水位が閾値レベルＬminに最も近い状態にあるパケットバッファにパケット送信権が与えられる。従って、本発明によれば、出力線の空き帯域を利用して、最低保証帯域を越えた帯域制御も可能となる。最低保証帯域を超えるパケットの送信は、予め設定された最大許容帯域（レベルＭmax）の範囲内で行われる。この場合、前述した図１２のリーキーバケット６００−３と６００−４の動作説明から明らかなように、各トラヒックへのパケット送信権の割り当ては、最低保証帯域に比例して行われる。従って、本発明において、出力線の空き帯域は、出力線に多重化される各トラヒックの最低保証帯域に比例して公平に配分されることになる。
【００７３】
図１３は、本発明によるトラヒックシェーパー１００−ｉの第２の実施例を示す。
ここに示したトラヒックシェーパー１００−ｉは、入力回線ＩＮｉ−ｊ（ｉ＝１〜ｍ、ｊ＝１〜ｎ）毎に、入力パケットを優先度別にバッファリングしておき、優先度順に、高優先度のパケットがなくなったら次優先度のパケットを送出する完全優先制御型となっている。
【００７４】
本実施例では、入力回線インタフェース１０−ｉ（ｉ＝１〜ｎ）として、図３に示した優先度情報抽出回路１８−ｉを備えた構造のものを使用する。優先度情報抽出回路１８−ｉは、入力パケットのヘッダ部から優先度情報、例えば、サービスタイプを抽出し、信号線Ｓ１８−ｉに優先クラス識別子として出力する。また、本実施例では、図２に示したパケットバッファ２０−ｉの代わりに、優先クラス別に用意された複数のバッファ２０１−１〜２０１−ｍと、優先バッファセレクタ２０２とを有するパケットバッファ部２００−ｉを適用し、各パケットバッファ部２００−ｉの出力線にパケット長検出回路２５−ｉを設けている。
【００７５】
各書き込み制御回路２１−ｉは、信号線Ｓ１７−ｉ、Ｓ１８−ｉを介して、対応する入力回線インタフェース１０−ｉからパケット長Ｌと優先クラス識別子ｐを受信し、信号線Ｓ１０−ｉに出力された入力パケットを上記優先クラス識別子ｐで特定されるバッファ２０１−ｐに書き込む。本実施例の場合、各パケットバッファ部２００−ｉからのパケットの読み出しが優先クラス順の行われるため、パケットバッファ部２００−ｉにおけるパケットの入力順序と出力順序とが異なる。このため、入力回線インタフェース１０−ｉからバッファ制御部３０に供給されたパケット長を利用してパケットの読み出し制御を行おうとすると、バッファ制御部３０内でパケット長を優先クラス別に保持する必要があり、構成が複雑になる。
【００７６】
そこで、本実施例では、読み出し制御回路２２が、バッファ制御部３０から与えられたバッファ指定信号ｋに従って、パケットバッファ部２００−ｋにパケットデータの読み出し制御信号を与え、読み出されたパケットの長さＬをパケット長検出回路２５−ｋで検出する。読み出し制御回路２２は、上記パケット長検出回路２５−ｋから信号線Ｓ２５−ｋを介して与えられるパケット長Ｌに従って、パケットバッファ部２００−ｋに１パケット分のデータ読み出し制御信号を与える。
【００７７】
パケットバッファ部２００−ｋの優先バッファセレクタ２０２は、パケット送信権が与えられた時、優先度の最も高いバッファからパケットを読み出す。すなわち、最優先クラスのバッファ２０１−１にパケットが蓄積されている限り、上記バッファ２０１−１からパケットを読み出し、最優先クラスのパケットが無くなった時、次の優先クラスのバッファ２０１−２からパケットを読み出す完全優先制御形式で、パケットを読み出すべきバッファを選択する。これによって、信号線Ｓ２２−ｋにパケットデータ読み出し制御信号が出力された時、パケットバッファ部２００−ｋからは、優先度の最も高いパケットが読み出される。
【００７８】
パケットバッファ部２００−ｋから１パケット分のデータの読み出しが完了すると、読み出し制御回路２２は、信号線Ｓ２２にバッファ番号ｋを出力し、信号線Ｓ２３にパケット長検出回路２５−ｋから受信したパケット長Ｌを出力する。帯域制御部４０は、第１の実施例と同様、パケットバッファ部２００−ｉ（ｉ＝１〜ｎ）毎に予め設定された最大許容帯域の範囲内で、それぞれの最低保証帯域に従ったパケットの送出制御を行う。
【００７９】
図１４は、本発明によるトラヒックシェーパーの更に他の実施例を示す。
本実施例では、優先クラス毎に最低保証帯域と最大許容帯域を指定しておき、図２に示したパケットバッファ２０−１〜２０−ｎを優先クラス別のバッファとして使用する。
【００８０】
各入力回線インタフェース１０−ｉ（ｉ＝１〜ｎ）から信号線Ｓ１０−ｉ、Ｓ１７−ｉ、Ｓ１８−ｉに出力されたパケット、パケット長および優先クラス識別子は、多重化回路２６を介して、優先クラス振分け回路２７に供給される。優先クラス振分け回路２７は、多重化回路２６から受信したパケットを優先クラス識別子ｐが示すパケットバッファ２０−ｐに供給し、パケット長を優先クラス識別子ｐが示す書き込み制御回路２１−ｐに供給する。
【００８１】
書き込み制御回路２１−ｐによるパケットバッファ２０−ｐへのパケットの書き込み動作は、図２に示した第１の実施例と同様に行われる。これによって、パケットバッファ２０−ｐは、複数の入力回線から入力された同一優先クラスｐのパケットが順次に蓄積される。
【００８２】
帯域制御部４０は、優先クラス毎に予め設定された最大許容帯域の範囲内で、それぞれの最低保証帯域に従ったパケットの送出制御を行う。この場合、図５に示した階層化リーキーバケット４１−１〜４１−ｎは、第１実施例と同様、パケットバッファ２０−１〜２１−ｎからのパケット送信と対応したリーキーバケット水位を算出する。また、出力キュー決定部４３は、偏差検出部４４−１〜４４−ｎに優先クラス毎に設定された最低保証帯域を閾値として、第１実施例と同様に候補バッファを選択し、信号線Ｓ４０に出力バッファ指示信号を発生する。
【００８３】
本実施例は、ＡＴＭ（Asynchronous Transfer Mode）のバーチャルチャネルにおけるＭＣＲ（Maximum Cell Rate)や、ＰＣＲ（Peak Cell Rate）の帯域制御にも適用できる。
【００８４】
本発明によるトラヒックシェーパーは、図１５に示すように、ＦＴＴＨ（Fiber To The Home）用の回線集線装置にも応用できる。
現在、加入者宅に対して、光ファイバーを用いたブロードバンドサービスが提供されつつある。現在のＦＴＴＨのサービスは、回線の空き状態に応じて帯域が決まるベストエフォートで提供されているが、テレビ電話や、ビデオレター、動画ストリーミング配信等のサービスが本格化すると、一般の末端ユーザに対しても、最低保証帯域と最大許容帯域の契約した情報転送サービスの展開が予想される。
【００８５】
図１５において、加入者宅７０−１〜７０−ｍの接続回線Ｌ７０−１〜Ｌ７０１−ｍは、集線装置８０−１で多重化して集線装置８１に接続され、該集線装置８１を介して広域ネットワーク８００に接続されている。同様に、加入者宅７１−１〜７０−ｍの接続回線Ｌ７１−１〜Ｌ７１−ｍは、集線装置８０−ｍで多重化して集線装置８１に接続されている。ここで、集線装置８０−１、８０−ｍおよび８１に、本発明のトラヒックシェーパー機能を適用すれば、各加入者のパケットトラヒックに対して、各加入者が契約した最低保証帯域と最大許容帯域、あるいは優先クラスに従った帯域制御を実施できる。
【００８６】
【発明の効果】
本発明によれば、レベルカウント値が閾値に最も接近したバッファメモリに対してパケット送信権を与えることによって、各トラヒックに最低保証帯域を保証し、最大許容帯域の範囲内で、最低保証帯域を超えたトラヒックシェーピングを実現できる。また、パケット送信権が、各トラヒックの最低保証帯域を基準にして配分されるため、全てのトラヒックに最低保証帯域を保証した状態で生まれた出力回線の空き帯域を、各トラヒックの最低保証帯域に従った比率で公平に配分することが可能となる。
【図面の簡単な説明】
【図１】本発明のトラヒックシェーパーが適用されるパケット交換システムの１例を示す図。
【図２】本発明によるトラヒックシェーパーの１実施例を示す図。
【図３】図２に示した入力回線インタフェース１０−１の１実施例を示す図。
【図４】図２に示したバッファ制御部３０の１実施例を示す図。
【図５】図２に示した帯域制御部４０の１実施例を示す図。
【図６】従来のリーキーバケットの問題点を説明するための図。
【図７】階層化リーキーバケットにおけるリーキーバケット水位と、上昇水位計算用の単位インクリメントとの関係を説明するための図。
【図８】単位インクリメント（α）値テーブルの１実施例を示す図。
【図９】図５に示した階層化リーキーバケット４１−１の１実施例を示す図。
【図１０】図５に示した出力キュー決定部４３の１実施例を示す図。
【図１１】トラヒックシェーパーのモデルの１例を示す図。
【図１２】図１１に示したトラヒックシェーパーにおける各入力回線と対応した階層化リーキーバケットの状態説明図。
【図１３】本発明によるトラヒックシェーパーの第２の実施例を示す図。
【図１４】本発明によるトラヒックシェーパーの第３の実施例を示す図。
【図１５】本発明によるトラヒックシェーパーの応用例を示す図。
【符号の説明】
１００：トラヒックシェーパー、１０：入力回線インタフェース、
２０：パケットバッファ、２１：書き込み制御部、
２２：読み出し制御部、３０：バッファ制御部、４０：帯域制御部、
４１：階層化リーキーバケット部、４３：出力キュー決定部、
４４：偏差検出部、４５：候補バッファ選択回路、
４６：ラウンドロビンセレクタ、４７：ステータスビットレジスタ、
４１１、４１２：単位インクリメント（α）値テーブル、
４１６：レベルカウンタ。
【図１】
0003904922.tif 000002
【図２】
0003904922.tif 000003
【図３】
0003904922.tif 000004
【図４】
0003904922.tif 000005
【図５】
0003904922.tif 000006
【図６】
0003904922.tif 000007
【図７】
0003904922.tif 000008
【図８】
0003904922.tif 000009
【図９】
0003904922.tif 000010
【図１０】
0003904922.tif 000011
【図１１】
0003904922.tif 000012
【図１２】
0003904922.tif 000013
【図１３】
0003904922.tif 000014
【図１４】
0003904922.tif 000015
【図１５】
0003904922.tif 000016