(57)【要約】【課題】  リーキバケット・アルゴリズムを用いて、ユーザパラメータにもとづく高品質のトラフィックサービスを実現する。【解決手段】  リーキバケットカウンタ部３１は、１セルスロット時間毎に、出力レートとカウント変更値Ｃ２とを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値Ｃ１を算出する。上限値算出部３４は、カウント値Ｃ１の上限値を算出する。カウント値変更部３２−１は、カウント値Ｃ１が上限値以上の場合は、カウント値Ｃ１を上限値に変更し、上限値未満の場合は変更しないカウント値変更処理を行う。比較部３３は、カウント変更値Ｃ２が出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値Ｃ２が出力基準値未満ならば出力タイミング信号を無効とする。【選択図】  図１
2006101004.tif 000002
【特許請求の範囲】
【請求項１】
帯域制御を行ってセルを伝送する伝送装置において、
セルを格納し、有効なセル出力要求を受信してセルを出力するセルバッファと、
前記セルバッファの蓄積セル数を管理する蓄積セル数管理部と、
１セルスロット時間毎に、出力レートとカウント変更値とを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値を算出するリーキバケットカウンタ部と、カウント値の上限値を算出する上限値算出部と、カウント値が上限値以上の場合は、カウント値を上限値に変更し、カウント値が上限値未満の場合は変更しないカウント値変更処理を行って、変更処理後の値をカウント変更値として出力するカウント値変更部と、カウント変更値と出力基準値とを比較し、カウント変更値が出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値が出力基準値未満ならば出力タイミング信号を無効とする比較部と、から構成されて、リーキバケット・アルゴリズムにもとづく送信側での帯域制御を行うリーキバケット制御部と、
出力タイミング信号が有効で、蓄積セル数が１以上ならば、セル出力要求を有効とし、出力タイミング信号が無効、または蓄積セル数が０ならば、セル出力要求を無効とする出力判断部と、
を有することを特徴とする伝送装置。
【請求項２】
セル送信時の最大バーストセル数を制御する際は、前記上限値算出部は、ユーザパラメータとして最大バーストセル数をMBS、出力レートをRout、フルレートをRmaxとして、
Lmax＝（Rmax−Rout）×（MBS−１）  …（１）
で上限値Lmaxを算出することを特徴とする請求項１記載の伝送装置。
【請求項３】
セル送信時のセル遅延変動許容値を制御する際は、前記上限値算出部は、ユーザパラメータとしてセル遅延変動許容値をCDVT、出力レートをRout、１セルスロット時間をTとして、
【数１】
2006101004.tif 000007
で上限値Lmaxを算出することを特徴とする請求項１記載の伝送装置。
【請求項４】
帯域制御を行ってセルを伝送する伝送装置において、
セルを格納し、有効なセル出力要求を受信してセルを出力するセルバッファと、
前記セルバッファの蓄積セル数を管理する蓄積セル数管理部と、
１セルスロット時間毎に、出力レートとカウント変更値とを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値を算出するリーキバケットカウンタ部と、カウント値と出力基準値とを比較し、カウント値が出力基準値以上であり、かつ蓄積セル数がゼロの場合はカウント値を出力基準値に変更し、カウント値が出力基準値未満、または蓄積セル数が１以上の場合は変更しないカウント値変更処理を行って、変更処理後の値をカウント変更値として出力するカウント値変更部と、カウント変更値と出力基準値とを比較し、カウント変更値が出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値が出力基準値未満ならば出力タイミング信号を無効とする比較部と、から構成されて、リーキバケット・アルゴリズムにもとづく送信側での平均セルレート制御を行うリーキバケット制御部と、
出力タイミング信号が有効で、蓄積セル数が１以上ならば、セル出力要求を有効とし、出力タイミング信号が無効、または蓄積セル数が０ならば、セル出力要求を無効とする出力判断部と、
を有することを特徴とする伝送装置。
【請求項５】
リーキバケット・アルゴリズムにもとづいて、送信側での帯域制御を行うリーキバケット帯域制御方法において、
リーキバケットカウンタにより、１セルスロット時間毎に出力レートを加算し、セルを出力した際には加算後の値からフルレートを減算してカウント値を算出し、
最大バーストセル数、セル遅延変動許容値、平均セルレートのいずれかを設定し、
最大バーストセル数またはセル遅延変動許容値を設定した場合には、算出されたカウント値に対し、カウント値の上限値を算出し、
カウント値が上限値以上の場合は、カウント値を上限値に変更し、カウント値が上限値未満の場合は変更しないカウント値の変更処理を行い、
平均セルレートを設定した場合には、算出されたカウント値に対し、カウント値と出力基準値とを比較し、
カウント値が出力基準値以上であり、かつ蓄積セル数がゼロの場合は、カウント値を出力基準値に変更し、カウント値が出力基準値未満、または蓄積セル数が１以上の場合は変更しないカウント値の変更処理を行い、
変更処理後のカウント変更値に対して、カウント変更値と出力基準値とを比較し、カウント変更値が出力基準値以上ならば、セルを出力し、カウント変更値が出力基準値未満ならばセルの出力を停止して帯域制御を行うことを特徴とするリーキバケット帯域制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は伝送装置及びリーキバケット帯域制御方法に関し、特に帯域制御を行ってセルを伝送する伝送装置及びリーキバケット・アルゴリズムにもとづいて、送信側での帯域制御を行うリーキバケット帯域制御方法に関する。
【背景技術】
【０００２】
高速ネットワークに代表されるATM（Asynchronous Transfer Mode）ネットワークにおいては、ATMネットワーク内部に流れ込むセルの入力を規制して、実際のセルフローが最初に申告した範囲内であるか否かをチェックする流量制御（帯域制御）が行われる。
【０００３】
この帯域制御は、UPC（Usage Parameter Control）とも呼ばれ、UPCを実現するアルゴリズムとして、リーキバケット（Leaky Bucket）方式が広く用いられている。
図１４はリーキバケットの概念を示す図である。リーキバケットとは、穴開きバケツのことを意味し、バケツに水を注ぎ、バケツの水量が一定量の深さ（bucket depth）を超えると、穴（leaking hole on the bucket）から水が流れ出すといった方式のアルゴリズムである。
【０００４】
一般的な動作概念としては、一定レートの漏れがあるバケツでトラフィックを監視し、セルが到着する度にバケツに水がたまり、一定量の深さでセルが漏れていく（漏れとは、申告された平均レートに該当する）。また、セルが一時的に多量に到着するとバケツの深さは深くなり、ある値（申告値）を超えたセルはバケツからあふれる（あふれたセルは違反とみなして通常は廃棄される）。
【０００５】
バケツはカウンタ（リーキバケットカウンタ）であり、毎セルスロット単位にカウントアップし、セル出力に応じてカウントダウンする。このような動作により、リーキバケットのアルゴリズムを実現して、セルの帯域制御を行っている。
【０００６】
リーキバケットを用いた通信の従来技術として、入力パケットのトラフィック特性を測定して、規則に反する場合には違反通知を出力してパケット通信の安定化を図る技術が提案されている（例えば、特許文献１）。
【特許文献１】特開２０００−８３０５２号公報（段落番号〔００２３〕〜〔００２４〕，第３図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ATMネットワークでは、音声や映像、データなどの様々なカテゴリを取り扱うことが可能なので、これらのカテゴリに応じて、MBS（Maximum Burst Size：最大バーストセル数）、CDVT（Cell Delay Variation Tolerance：セル遅延変動許容値）、SCR（Sustainable Cell Rate：平均セルレート）といったトラフィックサービスを提供するユーザパラメータを用いて、柔軟な帯域制御を行うことが必要である。
【０００８】
ここで、MBSは、PCR（Peak Cell Rate：最大セル速度）値での伝送状態において許容されるバーストセルの最大個数のことである。CDVTは、コネクション上でのPCR値の伝送状態において、セル遅延量の蓄積が最大に許容される値のことである。SCRは、コネクション上にて一定時間間隔に維持される平均のセル速度のことである。
【０００９】
しかし、従来の帯域制御では、リーキバケット方式を用いてMBS、CDVT、SCRのトラフィックサービスを提供するといったことは行っておらず、MBS、CDVT、SCRのサービス毎にリーキバケット方式とは別の専用回路をそれぞれ具備して制御を行っていた。このため、回路規模が増加し、処理速度が低下するといった問題があった。
【００１０】
一方、上記の従来技術（特開２０００−８３０５２号公報）では、受信側において、リーキバケットカウンタにしきい値を設けて、しきい値を超えてカウントが行われた場合に、申告トラフィックの超過セル（MBS違反）を検出するものであり、送信側でMBSを制御するものではない。また、このような受信側において到着セルが違反しているか否かを検出する制御では、伝送路上には不要なセルが流れることになり、トラフィック負荷が増大してしまう。
【００１１】
本発明はこのような点に鑑みてなされたものであり、リーキバケット・アルゴリズムを用いて、ユーザパラメータにもとづく高品質のトラフィックサービスを実現した伝送装置を提供することを目的とする。
【００１２】
また、本発明の他の目的は、リーキバケット・アルゴリズムを用いて、ユーザパラメータにもとづく高品質のトラフィックサービスを実現したリーキバケット帯域制御方法を提供することである。
【課題を解決するための手段】
【００１３】
本発明では上記課題を解決するために、図１に示すような、帯域制御を行ってセルを伝送する伝送装置１−１において、セルを格納し、有効なセル出力要求を受信してセルを出力するセルバッファ部１０と、セルバッファ部１０の蓄積セル数を管理する蓄積セル数管理部２０と、１セルスロット時間毎に、出力レートとカウント変更値Ｃ２ａとを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値Ｃ１を算出するリーキバケットカウンタ部３１と、カウント値Ｃ１の上限値を算出する上限値算出部３４と、カウント値Ｃ１が上限値以上の場合は、カウント値Ｃ１を上限値に変更し、カウント値Ｃ１が上限値未満の場合は変更しないカウント値変更処理を行って、変更処理後の値をカウント変更値Ｃ２ａとして出力するカウント値変更部３２−１と、カウント変更値Ｃ２ａと出力基準値とを比較し、カウント変更値Ｃ２ａが出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値Ｃ２ａが出力基準値未満ならば出力タイミング信号を無効とする比較部３３と、から構成されて、リーキバケット・アルゴリズムにもとづく送信側での帯域制御を行うリーキバケット制御部３０−１と、出力タイミング信号が有効で、蓄積セル数が１以上ならば、セル出力要求を有効とし、出力タイミング信号が無効、または蓄積セル数が０ならば、セル出力要求を無効とする出力判断部４０と、を有することを特徴とする伝送装置１−１が提供される。
【００１４】
ここで、セルバッファ部１０は、セルを格納し、有効なセル出力要求を受信してセルを出力する。蓄積セル数管理部２０は、セルバッファ部１０の蓄積セル数を管理する。リーキバケットカウンタ部３１は、１セルスロット時間毎に、出力レートとカウント変更値Ｃ２ａとを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値Ｃ１を算出する。上限値算出部３４は、カウント値Ｃ１の上限値を算出する。カウント値変更部３２−１は、カウント値Ｃ１が上限値以上の場合は、カウント値Ｃ１を上限値に変更し、カウント値Ｃ１が上限値未満の場合は変更しないカウント値変更処理を行って、変更処理後の値をカウント変更値Ｃ２ａとして出力する。比較部３３は、カウント変更値Ｃ２ａと出力基準値とを比較し、カウント変更値Ｃ２ａが出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値Ｃ２ａが出力基準値未満ならば出力タイミング信号を無効とする。出力判断部４０は、出力タイミング信号が有効で、蓄積セル数が１以上ならば、セル出力要求を有効とし、出力タイミング信号が無効、または蓄積セル数が０ならば、セル出力要求を無効とする。
【発明の効果】
【００１５】
本発明の伝送装置は、リーキバケットカウンタ部によるカウント値が上限値以上の場合は、カウント値を上限値に変更し、上限値未満の場合は変更しない。そして、カウント変更値と出力基準値とを比較して、カウント変更値が出力基準値以上ならば、出力タイミング信号を有効としてセルを出力し、カウント変更値が出力基準値未満ならば出力タイミング信号を無効とする構成とした。これにより、リーキバケット・アルゴリズムを用いて、ユーザパラメータにもとづく高品質のトラフィックサービスを実現することが可能になる。
【００１６】
また、本発明のリーキバケット帯域制御方法は、最大バーストセル数、セル遅延変動許容値、平均セルレートのいずれかを設定し、最大バーストセル数またはセル遅延変動許容値の場合には、カウント値が上限値以上の場合は、カウント値を上限値に変更し、上限値未満の場合は変更しない。また、平均セルレートの場合には、カウント値と出力基準値とを比較し、カウント値が出力基準値以上であり、かつ蓄積セル数がゼロならば、カウント値を出力基準値に変更し、カウント値が出力基準値未満、または蓄積セル数が１以上ならば変更しない。そして、変更処理後のカウント変更値に対して、カウント変更値と出力基準値とを比較して、カウント変更値が出力基準値以上ならば、セルを出力し、カウント変更値が出力基準値未満ならばセル出力を停止するものとした。これにより、リーキバケット・アルゴリズムを用いて、ユーザパラメータにもとづく高品質のトラフィックサービスを実現することが可能になる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を参照して説明する。図１は伝送装置の原理図である。伝送装置１−１は、セルバッファ部１０、蓄積セル数管理部２０、リーキバケット制御部３０−１、出力判断部４０から構成されて、ATM網において、送信側での帯域制御（送信側でのMBS制御またはCDVT制御）を行ってセルを伝送する装置である（IP網におけるパケット伝送も可能であるが、このことについては後述する）。なお、以降ではリーキバケットをＬＢと略して表記する。
【００１８】
セルバッファ部１０は、入力セルを格納し、出力判断部４０から送られた有効なセル出力要求を受信した場合には、セルを出力する。蓄積セル数管理部２０は、入力セルを受信し、セル出力要求にもとづき、セルバッファ部１０の蓄積セル数を管理する。
【００１９】
ＬＢ制御部３０−１は、ＬＢカウンタ部３１、カウント値変更部３２−１、比較部３３、上限値算出部３４から構成される。ＬＢカウンタ部３１は、Leaky Bucket Shaper機能を実現し、１セルスロット時間毎に、出力レートとカウント変更値Ｃ２ａとを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値Ｃ１を算出する。なお、出力レートとは、装置から出力されるセルの伝送レートのことであり、フルレート（full rate）とは、回線上の最大伝送レート（PCR）のことである。
【００２０】
上限値算出部３４は、ユーザパラメータ（MBSまたはCDVT）、出力レート、フルレートにもとづいて、ＬＢカウンタ部３１から出力されたカウント値Ｃ１の上限値を算出する（上限値の算出式は後述する）。
【００２１】
カウント値変更部３２−１は、ＬＢカウンタ部３１から出力されたカウント値Ｃ１に対し、カウント値Ｃ１が上限値以上の場合は（カウント値Ｃ１が上限値に到達した場合は）、カウント値Ｃ１を上限値に変更し、カウント値Ｃ１が上限値未満の場合は変更せずにそのままのカウント値Ｃ１とし、変更処理後の値をカウント変更値Ｃ２ａとして出力する。
【００２２】
比較部３３は、カウント値変更部３２−１から出力されたカウント変更値Ｃ２ａ（カウント値Ｃ１または上限値のいずれか）に対し、カウント変更値Ｃ２ａと、内部で設定された出力基準値とを比較し、カウント変更値Ｃ２ａが出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値Ｃ２ａが出力基準値未満ならば出力タイミング信号を無効とする。
【００２３】
出力判断部４０は、セルバッファ部１０、蓄積セル数管理部２０及びＬＢカウンタ部３１へセル出力要求を送信する。この場合、出力判断部４０は、出力タイミング信号が有効で、蓄積セル数が１以上と判断したならば、セル出力要求を有効とする。また、出力タイミング信号が無効、または蓄積セル数が０ならば、セル出力要求を無効とする。
【００２４】
このような構成において、ユーザパラメータ、出力レート、フルレートを所望の値にして上限値を設定することで、ＬＢアルゴリズムを用いて、MBS（最大バーストセル数）またはCDVT（セル遅延変動許容値）の制御を行うことが可能になる（詳細動作は図４以降で後述する）。
【００２５】
次にＬＢ制御部３０−１の構成について説明する。図２はＬＢ制御部３０−１の構成を示す図である。ＬＢ制御部３０−１は、ＬＢカウンタ部３１、カウント値変更部３２−１、比較部３３、上限値算出部３４から構成される。
【００２６】
ＬＢカウンタ部３１は、加算器３１ａ、減算器３１ｂ、セレクタ３１ｃ、論理和素子３１ｄを含む。カウント値変更部３２−１は、比較器３２ａ、セレクタ３２ｂ、Ｄフリップフロップ３２ｃを含む。
【００２７】
ＬＢカウンタ部３１に対して、加算器３１ａは、１セルスロット時間毎に、出力レートとカウント変更値Ｃ２ａとを加算して、加算結果をセレクタ３１ｃの０端子及び減算器３１ｂへ出力する。減算器３１ｂは、加算器３１ａによる加算結果とフルレートとの減算処理を行って、減算結果をセレクタ３１ｃの１端子へ出力する。
【００２８】
セレクタ３１ｃは、セル出力要求が“Ｈ”で有効の場合は、１端子に入力される信号（減算結果）を選択して、カウント値Ｃ１として出力し、セル出力要求が“Ｌ”で無効の場合は、０端子に入力される信号（加算結果）を選択し、カウント値Ｃ１として出力する。論理和素子３１ｄは、１セルスロットタイミング信号とセル出力要求との論理和結果を出力する。
【００２９】
カウント値変更部３２−１に対して、比較器３２ａは、カウント値Ｃ１と、上限値算出部３４で算出された上限値とを受信し、カウント値Ｃ１が上限値に到達したか否かを比較する。カウント値Ｃ１が上限値に到達したら“Ｈ”の信号を出力し、カウント値Ｃ１が上限値に到達していないなら“Ｌ”の信号を出力する。
【００３０】
セレクタ３２ｂは、０端子にはカウント値Ｃ１が入力し、１端子には上限値算出部３４で算出された上限値が入力する。そして、比較器３２ａから“Ｈ”の信号を受信した場合には、１端子に入力される信号（上限値）を選択して出力する。また、比較器３２ａから“Ｌ”の信号を受信した場合には、０端子に入力される信号（カウント値Ｃ１）を選択して出力する。
【００３１】
Ｄフリップフロップ３２ｃはクロックが入力し、Ｄ端子には、セレクタ３２ｂからの出力信号が入力し、ＥＮ端子には論理和素子３１ｄの出力信号が入力する。そして、論理和素子３１ｄの出力信号が“Ｈ”のときにイネーブル状態となって、そのとき入力されるセレクタ３２ｂからの出力信号をラッチして、カウント変更値Ｃ２ａを出力する。
【００３２】
比較部３３は、カウント変更値Ｃ２ａと出力基準値（ＧＮＤ）とを比較し、カウント変更値Ｃ２ａが出力基準値（０）以上ならば、出力タイミング信号を有効とし、カウント変更値Ｃ２ａが出力基準値（０）未満ならば出力タイミング信号を無効とする。
【００３３】
次にＬＢ制御部３０−１の動作について説明する。最初に、ユーザパラメータを制御するための上限値を設定しないときの、通常のＬＢカウントを行った際の動作について説明する。なお、この場合は、セレクタ３１ｃから出力されたカウント値Ｃ１は、スルーでＤフリップフロップ３２ｃのＤ端子へ送信されることになる（カウント値Ｃ１＝カウント変更値Ｃ２ａ）。
【００３４】
図３は上限値を設定しないときのＬＢカウント動作を示す図である。グラフの横軸は時間、縦軸はカウント変更値Ｃ２ａであり、図ではフルレートを５Mbps、出力レートを３Mbps、出力基準値を０bpsと設定した場合のＬＢカウントの動作を示している。なお、入力セル状況に記されている番号は、入力したセルのセル番号であり、出力セル状況に記されている番号は、出力したセルのセル番号である。
【００３５】
〔Ｓ１〕セル１が入力する。セル１の入力時は、カウント変更値Ｃ２ａはゼロであり、カウント変更値Ｃ２ａ（０）＝出力基準値（０）なので、カウント変更値Ｃ２ａが出力基準値（０）以上であるから、セルの出力処理が行われて、セル１が出力する（出力処理の部分を詳細に記せば、比較部３３の出力タイミング信号が有効となり、蓄積する数＝１（セル１）であるので、出力判断部４０がセル出力要求を有効にし、セルバッファ部１０からセル１が出力されることになる）。
【００３６】
また、加算器３１ａにおいて、カウント変更値Ｃ２ａ（０）に＋３（出力レートの値）して、減算器３１ｂにおいて、その加算結果から−５（フルレートの値）する。そして、セル出力要求は有効であるから、セレクタ３１ｃの１端子（減算結果）が選択されて、カウント値Ｃ１（−２）となる。
【００３７】
〔Ｓ２〕セル２が入力する。セル２の入力時は、カウント変更値Ｃ２ａ（−２）であり、カウント変更値Ｃ２ａ（−２）＜出力基準値（０）なので、カウント変更値Ｃ２ａが出力基準値（０）未満であるから、セルの出力処理は行われない（出力処理の部分を詳細に記せば、比較部３３の出力タイミング信号が無効となるので、出力判断部４０がセル出力要求を無効にし、セルバッファ部１０からセル読み出しは行われない）。
【００３８】
また、加算器３１ａにおいて、カウント変更値Ｃ２ａ（−２）に＋３する。セル出力要求は無効であるから、セレクタ３１ｃの０端子（加算結果）が選択されて、カウント値Ｃ１（＋１）となる。
【００３９】
〔Ｓ３〕セル３が入力する。セル３の入力時は、カウント変更値Ｃ２ａ（＋１）であり、カウント変更値Ｃ２ａ（＋１）＞出力基準値（０）なのでセルの出力処理が行われて、先に格納されているセル２が出力する。したがって、加算器３１ａにおいて、カウント変更値Ｃ２ａ（＋１）に＋３して、減算器３１ｂにおいて、その加算結果から−５する。そして、セル出力要求は有効であるから、セレクタ３１ｃの１端子が選択されて、カウント値Ｃ１（−１）となる。
【００４０】
このように、出力レートの加算は毎セルスロット行われ、セルを出力しない場合は、加算結果がカウント変更値Ｃ２ａとなり、セルを出力する場合は、加算結果からフルレートを減算した値がカウント変更値Ｃ２ａとなる。
【００４１】
上記のようなカウント制御が以降同様にして行われることで、フルレートが５Mbpsのときに出力レートを３Mbpsとする帯域制御が実現される（図からわかるように、５セルスロットうち、３セルスロットの出力が行われている）。
【００４２】
なお、上記の例では、セルが出力するときは、カウント値に対して、出力レートの３を加算してフルレートの５を減算するので、この場合結果としてカウント値から２の減算を行うことになる。このため、図に示す折れ線グラフでは、セルの出力時においては、出力レートの加算時のグラフ表示は省略して、カウント値から２の減算を行った状態のみグラフで表示する形式としている。
【００４３】
次にMBS制御を行う場合の動作について説明する。伝送装置１−１におけるMBS制御とは、例えば、PCRで許容される最大バーストセル数を５セルとしたならば、連続して送信するセル数が最大５セルとなるように（セルの密集度合いを最大５セルで抑えるように）、セルの送信制御を行うものである。
【００４４】
上限値算出部３４は、MBS制御を行う場合、ユーザパラメータとして、最大バーストセル数のMBS[cell]を設定し、出力レートをRout[bps]、フルレートをRmax[bps]として、Rmax≧Rout、MBS≧2cellを条件とした場合、式（１）により上限値Lmax[bps]を算出する。ただし、出力レートRout[bps]には、SCR（平均セルレート）、フルレートRmax[bps]にはPCR（最大セル速度）を割り当てる。
【００４５】
Lmax＝（Rmax−Rout）×（MBS−１）  …（１）
図４はMBS制御の動作を示す図である。グラフの横軸は時間、縦軸はカウント変更値Ｃ２ａである。また、入力セル状況、セルバッファ蓄積状況、蓄積セル数、出力セル状況を合わせて示す。セルバッファ蓄積状況は、セルバッファ部１０内に蓄積されているセルのセル番号を示している。蓄積セル数は、セルバッファ部１０内に蓄積されているセルの個数を示している（括弧付き数字で示す）。
【００４６】
図は、PCRで出力可能な最大バーストセル数を５セル、出力レートを３Mbps、フルレートを５Mpsと設定した場合の動作を示している。したがって、Rmax＝５、Rout＝３、MBS＝５なので、式（１）より上限値Lmaxは８となる。なお、以降ではセル４が入力したところから説明する。
【００４７】
〔Ｓ１１〕セル４が入力する。このとき、セルバッファ蓄積状況から、セル３、４がセルバッファ部１０に格納されており、蓄積セル数は２個である。セル４の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（＋２）＜上限値（＋８）なので、カウント値Ｃ１の上限値への変更は行わず、カウント変更値Ｃ２ａ（＋２）（＝カウント値Ｃ１（＋２））となる。また、比較部３３において、カウント変更値Ｃ２ａ（＋２）＞出力基準値（０）なので、セルの出力処理が行われて、先に格納されていたセル３が出力する。
【００４８】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（＋２）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って（−２の減算を行って）、カウント値Ｃ１（０）となる。
【００４９】
〔Ｓ１２〕セルバッファ蓄積状況から、セル４がセルバッファ部１０に格納されており、蓄積セル数は１個である。カウント値変更部３２−１において、カウント値Ｃ１（０）＜上限値（＋８）なので、カウント値Ｃ１の上限値への変更は行わず、カウント変更値Ｃ２ａ（０）となる。また、比較部３３において、カウント変更値Ｃ２ａ（０）＝出力基準値（０）なので、セル４の出力処理が行われる。
【００５０】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（０）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−２）となる。
【００５１】
〔Ｓ１３〕ステップＳ１２以降の５セルスロット区間において、セルの入出力がない時間帯が存在している。ＬＢカウンタ部３１は、出力レートの＋３の加算を毎セルスロット行うが、出力するセルがないので、加算演算のみ行われることになる。加算結果はカウント値変更部３２−１において、いずれ上限値（＋８）に到達し、上限値（＋８）に到達した時点で、カウント値Ｃ１は上限値（＋８）に変更される。
【００５２】
カウント値変更後のカウント変更値Ｃ２ａ（＋８）は、ＬＢカウンタ部３１にフィードバックされて出力レートと加算されて、この加算結果が再びカウント値変更部３２−１へ入力することになるので、有効なセル出力要求がくるまでは、カウント変更値Ｃ２ａ（＋８）のままで一定となる（実質、上限値でカウント停止となる）。
【００５３】
〔Ｓ１４〕セル５が入力する。このとき、セルバッファ蓄積状況から、セル５がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル５の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（＋８）＝上限値（＋８）なので、カウント変更値Ｃ２ａ（＋８）である。また、比較部３３において、カウント変更値Ｃ２ａ（＋８）＞出力基準値（０）なので、セルの出力処理が行われて、セル５が出力する。したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（＋８）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（＋６）となる。
【００５４】
〔Ｓ１５〕セル６が入力する。このとき、セルバッファ蓄積状況から、セル６がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル６の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（＋６）＜上限値（＋８）なので、カウント変更値Ｃ２ａ（＋６）である。また、比較部３３において、カウント変更値Ｃ２ａ（＋６）＞出力基準値（０）なので、セルの出力処理が行われて、セル６が出力する。したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（＋６）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（＋４）となる。
【００５５】
〔Ｓ１６〕セル７が入力する。このとき、セルバッファ蓄積状況から、セル７がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル７の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（＋４）＜上限値（＋８）なので、カウント変更値Ｃ２ａ（＋４）である。また、比較部３３において、カウント変更値Ｃ２ａ（＋４）＞出力基準値（０）なので、セルの出力処理が行われて、セル７が出力する。したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（＋４）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（＋２）となる。
【００５６】
〔Ｓ１７〕セル８が入力する。このとき、セルバッファ蓄積状況から、セル８がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル８の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（＋２）＜上限値（＋８）なので、カウント変更値Ｃ２ａ（＋２）である。また、比較部３３において、カウント変更値Ｃ２ａ（＋２）＞出力基準値（０）なので、セルの出力処理が行われて、セル８が出力する。したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（＋２）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（０）となる。
【００５７】
〔Ｓ１８〕セル９が入力する。このとき、セルバッファ蓄積状況から、セル９がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル９の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（０）＜上限値（＋８）なので、カウント変更値Ｃ２ａ（０）である。また、比較部３３において、カウント変更値Ｃ２ａ（０）＝出力基準値（０）なので、セルの出力処理が行われて、セル９が出力する。したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（０）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−２）となる。
【００５８】
〔Ｓ１９〕セル１０が入力する。このとき、セルバッファ蓄積状況から、セル１０がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル１０の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（−２）＜上限値（＋８）なので、カウント変更値Ｃ２ａ（−２）である。また、比較部３３において、カウント変更値Ｃ２ａ（−２）＜出力基準値（０）なので、セルの出力処理は行われない。したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（−２）に対して、出力レートの＋３のカウント演算を行って、カウント値Ｃ１（＋１）となる。
【００５９】
このように、MBS制御を行う場合に、式（１）を用いて上限値を設定することで、カウント値Ｃ１が上限値（＋８）に到達してから、出力基準値（０）未満となるまで、PCRで５セルバースト出力されることになる。なお、バースト出力終了後は、SCRで保たれる（５セルスロットのうち、３セル出力）。
【００６０】
図５はMBSの上限値算出式（１）の内容を説明するための図である。図４の折れ線グラフ部分を示している。上記の例で最大バーストセル数を５とするには、すなわち、セルが５個連続して出力し、６個目のセルが出力しないようにするには、上限値からカウント値Ｃ１が下降してくる際に、５回目までのカウント値Ｃ１がどれも出力基準値（０）以上であり、６回目のカウント値Ｃ１が出力基準値（０）未満となるような上限値を設定すればよい。
【００６１】
５回目までのカウント値Ｃ１がどれも出力基準値（０）以上ということは、フルレート減算時の減算結果（（Rmax−Rout）に該当）が−２であるから、上限値（＋８）から２セルスロット単位で４回（（MBS−１）に該当）下がれば、５回目のカウント値Ｃ１が出力基準値（０）に達することになる。
【００６２】
すなわち、（Rmax−Rout）が（MBS−１）回下がって出力基準値（０）に達すれば、最大バーストセル数はMBS個となるので、上限値Lmaxは、式（１）で算出できることがわかる。
【００６３】
以上説明したように、伝送装置１−１によれば、セルの送信側で、上限値を設けてＬＢカウント値を制御してMBS制御を行う構成とした。従来では、受信装置において、ＬＢカウント値にしきい値を設け、しきい値を超えたセルはMBS違反として廃棄する構成であったが、このような構成では、受信装置に到着するまでに違反セルが流れてくることになり、トラフィック負荷が増加し、ネットワーク資源の無駄が発生していた。
【００６４】
一方、伝送装置１−１では、セルの入出力がない区間後に、セルがバースト状に入力した場合であっても、所望の最大バーストセル数となるような上限値を設定して、送信側でMBSを効率よく制御して、所望の最大バースト数分のセルを出力するので、MBS違反となるセルを流したりすることがなく、ネットワーク品質の向上を図ることが可能になる。
【００６５】
なお、伝送装置１−１で算出・設定する上限値は、ＬＢカウント値が上限値に達した場合に、この上限値でカウントを停止させるものであり、従来のＬＢカウント値に設けられているしきい値とは本質的に役割が異なるものである。
【００６６】
次にCDVT制御を行う場合の動作について説明する。図６は伝送装置１−１のCDVT制御の概念を示す図である。出力レートを１セル／ｓ、フルレートを５セル／ｓとした場合、通常は５セルスロット中、１セルが出力されるSCR伝送となる。したがって、区間Ａ１の５セルスロット中でセル１が出力し、次の区間Ａ２の５セルスロット中でセル２が出力する。
【００６７】
このようなセルの伝送時に、送信側でCDVT制御を行うと、CDVT＝ｋとした場合には、実際のセル出力時間よりもｋセル時間分速く送信することが許容される。例えば、図のセル２に対して、CDVT＝２セルスロットの制御を行うとしたら、本来のセル２の出力時間ｔ２よりも、２セルスロット分速い時間ｔ１でセル２を出力することができる。
【００６８】
すなわち、送信側におけるCDVTを設定した場合には、最小セル間隔（本来期待されるセルとセルとの時間間隔）より、CDVTの設定値分速くセルを出力することが可能になる。ただし、設定した値よりも速く出力すると、この例では、セル１とセル２の送信間隔が３セルスロットより小さくなると、CDVT違反となる（時間ｔ１より速く出力すると違反である）。
【００６９】
ここで、上限値算出部３４は、CDVT制御を行う場合、ユーザパラメータとして、セル遅延変動許容値をCDVT[s]、出力レートをRout[bps]、１セルスロット時間をT[s]とした場合、式（２）より上限値Lmax[bps]を算出する。
【００７０】
【数１】
2006101004.tif 000003
【００７１】
図７はCDVT制御の動作を示す図である。グラフの横軸は時間、縦軸はカウント変更値Ｃ２ａである。また、入力セル状況、セルバッファ蓄積状況、蓄積セル数、出力セル状況を合わせて示す。
【００７２】
図は、１セルスロット時間Tが１sのときに、CDVTを２s（したがって、CDVT／T=２セルスロットであるが、以下、CDVTが２セルスロットと表記する）、出力レートを物理レートの４２４bps（＝１cell/s）、フルレートをPCRの２１２０bps（＝５cell/s）と設定した場合の動作を示している（図６と同じ動作を示す）。
【００７３】
したがって、Rout＝４２４、CDVT＝２、T＝１なので、式（２）より上限値Lmaxは８４８（＝２セルスロット）となる。なお、以降ではセル２が出力するところから説明する。
〔Ｓ２１〕セルバッファ蓄積状況から、セル２がセルバッファ部１０に格納されており、蓄積セル数は１個である。カウント値変更部３２−１において、カウント値Ｃ１（０）＜上限値（＋２）なので、カウント値Ｃ１の上限値への変更は行わず、カウント変更値Ｃ２ａ（０）（＝カウント値Ｃ１（０））となる。また、比較部３３において、カウント変更値Ｃ２ａ（０）＝出力基準値（０）なので、セル２の出力処理が行われる。
【００７４】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（０）に対して、出力レートの＋１、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−４）となる。
【００７５】
〔Ｓ２２〕ステップＳ２１以降の９セルスロット区間において、セルの入出力がない時間帯が存在している。ＬＢカウンタ部３１は、出力レートの＋１の加算を毎セルスロット行うが、出力するセルがないので、加算演算のみ行われる。加算結果はカウント値変更部３２−１において、いずれ上限値（＋２）に到達し、上限値（＋２）に到達した時点で、カウント値Ｃ１は上限値（＋２）に変更される。
【００７６】
カウント値変更後のカウント変更値Ｃ２ａ（＋２）は、ＬＢカウンタ部３１にフィードバックされて出力レートと加算されて、この加算結果が再びカウント値変更部３２−１へ入力することになるので、有効なセル出力要求がくるまでは、カウント変更値Ｃ２ａ（＋２）のままで一定となる（実質、上限値でカウント停止となる）。
【００７７】
〔Ｓ２３〕セル３が入力する。このとき、セルバッファ蓄積状況から、セル３がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル３の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（＋２）＝上限値（＋２）なので、カウント変更値Ｃ２ａ（＋２）である。また、比較部３３において、カウント変更値Ｃ２ａ（＋２）＞出力基準値（０）なので、セルの出力処理が行われて、セル３が出力する。したがって、ＬＢカウンタ部３１において、カウント変更値（＋２）に対して、出力レートの＋１、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−２）となる。
【００７８】
〔Ｓ２４〕セル４が入力する。このとき、セルバッファ蓄積状況から、セル４がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル４の入力時は、カウント値変更部３２−１において、カウント値Ｃ１（−２）＜上限値（＋２）なので、カウント変更値Ｃ２ａ（−２）である。また、比較部３３において、カウント変更値Ｃ２ａ（−２）＜出力基準値（０）なので、セルの出力処理が行われない。したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（−２）に対して、出力レートの＋１のカウント演算を行って、カウント値Ｃ１（−１）となる。
【００７９】
〔Ｓ２５〕セルバッファ蓄積状況から、セル４がセルバッファ部１０に格納されており、蓄積セル数は１個である。カウント値変更部３２−１において、カウント値Ｃ１（−１）＜上限値（＋２）なので、カウント値Ｃ１の上限値への変更は行わず、カウント変更値Ｃ２ａ（−１）となる。また、比較部３３において、カウント変更値Ｃ２ａ（−１）＜出力基準値（０）なので、セル４の出力処理は行われない。
【００８０】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（−１）に対して、出力レートの＋１のカウント演算を行って、カウント値Ｃ１（０）となる。
〔Ｓ２６〕セルバッファ蓄積状況から、セル４がセルバッファ部１０に格納されており、蓄積セル数は１個である。カウント値変更部３２−１において、カウント値Ｃ１（０）＜上限値（＋２）なので、カウント値Ｃ１の上限値への変更は行わず、カウント変更値Ｃ２ａ（０）となる。また、比較部３３において、カウント変更値Ｃ２ａ（０）＝出力基準値（０）なので、セル４の出力処理が行われる。
【００８１】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ａ（０）に対して、出力レートの＋１、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−４）となる。上記のような制御により、本来のセル４の出力時間よりも、２セルスロット分速い時間でセル４を出力することができる。
【００８２】
このように、CDVT制御を行う場合に、式（２）を用いて上限値を設定することで、CDVT違反となることなく（セル３とセル４との送信セル間隔が３セルスロットより小さくなることなく）、所望のCDVTでセルを送信することができ、トラフィックを有効に活用することが可能になる。
【００８３】
図８はCDVT制御の動作を示す図である。フルレートをｎ、出力レート（Rout）を１、CDVT＝ｋとした場合を考える。すなわち、図に示すセル１とセル２の最小セル間隔はｎセルスロットであるが、CDVTのｋセルスロット分セル２を速く出力するものとする。また、式（２）から上限値＝ｋとなる。
【００８４】
本来のセル２の出力時間は、時間ｔ２であるが、時間ｔ２よりCDVTのｋセルスロット分速く、時間ｔ１でセル２を出力する。図を見ると、セル１は、カウント値（ｋ）＞出力基準値（０）なので、セル１が出力し、出力レートが１、フルレートがｎなので、ｋから（ｎ−１）セルスロット分下がる。その後、カウント値は負なので出力基準値に達するまでカウント値が＋１ずつカウントされて、（ｎ−１−ｋ）個上がる。そして、カウント値（０）＝出力基準値（０）となるので、セル２が時間ｔ１で出力する。
【００８５】
したがって、フルレートをｎ、出力レート（Rout）を１、CDVT＝ｋとした場合、上限値をｋに設定すれば、ＬＢカウント動作により、セル１とセル２の送信セル間隔は、必ず（ｎ−ｋ）となり（セル出力ポイントｐ０から、１セルスロット間隔で（ｎ−１）下がり、その下がったところのポイントｐ１から（ｎ−１−ｋ）のセルスロット分上がったところは出力基準値となる。このとき最初のセル出力ポイントｐ０から次のセル出力ポイントｐ２までのセルスロット間隔は（ｎ−ｋ）となる）、このことは、セル２は必ず最小セル間隔よりもｋセルスロット分速く出力されることを意味し、式（２）を用いて所望のCDVT制御が実現されることがわかる。
【００８６】
次にSCR制御（平均セルレート制御）を行う伝送装置について説明する。図９は伝送装置の原理図である。伝送装置１−２は、セルバッファ部１０、蓄積セル数管理部２０、ＬＢ制御部３０−２、出力判断部４０から構成されて、送信側での帯域制御としてSCR制御を行ってセルを伝送する装置である。なお、セルバッファ部１０、蓄積セル数管理部２０、出力判断部４０は図１と同様なので説明は省略する。
【００８７】
ＬＢ制御部３０−２は、ＬＢカウンタ部３１、カウント値変更部３２−２、比較部３３から構成される。ＬＢカウンタ部３１と比較部３３は図１と同様なので説明は省略する。
カウント値変更部３２−２は、カウント値Ｃ１と出力基準値とを比較し、カウント値Ｃ１が出力基準値以上であり、かつ蓄積セル数がゼロの場合はカウント値Ｃ１を出力基準値に変更し、カウント値Ｃ１が出力基準値未満、または蓄積セル数が１以上の場合は変更せずにそのままのカウント値Ｃ１として、変更処理後の値をカウント変更値Ｃ２ｂとして出力する。
【００８８】
図１０はＬＢ制御部３０−２の構成を示す図である。ＬＢ制御部３０−２は、ＬＢカウンタ部３１、カウント値変更部３２−２、比較部３３から構成される。カウント値変更部３２−２は、０デコーダ３２ｄ、比較器３２ｅ、論理積素子３２ｆ、セレクタ３２ｇ、Ｄフリップフロップ３２ｈから構成される。
【００８９】
０デコーダ３２ｄは、蓄積セル数が０の場合に“Ｈ”の信号を出力し、蓄積セル数が１以上の場合に“Ｌ”の信号を出力する。比較器３２ｅは、ＬＢカウンタ部３１からのカウント値Ｃ１と出力基準値（ＧＮＤ）とを比較して、カウント値Ｃ１が出力基準値（０）以上ならば“Ｈ”の信号を出力し、カウント値Ｃ１が出力基準値（０）未満ならば“Ｌ”の信号を出力する。論理積素子３２ｆは、０デコーダ３２ｄの出力と比較器３２ｅの出力との論理積結果を出力する。
【００９０】
セレクタ３２ｇは、０端子にはカウント値Ｃ１が入力し、１端子には出力基準値（０）が入力する。そして、論理積素子３２ｆから“Ｈ”の信号を受信した場合には、１端子に入力される信号（出力基準値（０））を選択して出力する。また、論理積素子３２ｆから“Ｌ”の信号を受信した場合には、０端子に入力される信号（カウント値Ｃ１）を選択して出力する。
【００９１】
Ｄフリップフロップ３２ｈはクロックが入力し、Ｄ端子には、セレクタ３２ｇからの出力信号が入力し、ＥＮ端子には論理和素子３１ｄの出力信号が入力する。そして、論理和素子３１ｄの出力信号が“Ｈ”のときにイネーブル状態となって、そのとき入力されるセレクタ３２ｇからの出力信号をラッチして、カウント変更値Ｃ２ｂを出力する。
【００９２】
次にSCR制御を行う場合の動作について説明する。SCR制御とは、例えば、フルレートが５セル、出力レートを３セルとしたならば、５セルのうち３セルが平均的に出力されることを意味するが、従来のSCRでは、セル入力のない区間が続き、その後に連続してセルが入力したような場合には、瞬間的にバースト出力が生じ、その後に平均レートでセル出力が保たれるといったものであった。
【００９３】
一方、伝送装置１−２におけるSCR制御では、セル入力のない区間が続き、その後に連続してセルが入力したような場合であっても、瞬間的なバースト出力を起こさずに、常に平均レートを維持してセルを出力するものである。
【００９４】
図１１はSCR制御の動作を示す図である。グラフの横軸は時間、縦軸はカウント変更値Ｃ２ａである。また、入力セル状況、セルバッファ蓄積状況、蓄積セル数、出力セル状況を合わせて示す。図は、出力レートを３Mbps、フルレートを５Mpsと設定した場合の動作を示している。なお、以降ではセル４が出力するところから説明する。
〔Ｓ３１〕セルバッファ蓄積状況から、セル４がセルバッファ部１０に格納されており、蓄積セル数は１個である。カウント値変更部３２−２において、蓄積セル数＝１なので、カウント値Ｃ１の出力基準値への変更は行わず、カウント値Ｃ１（０）なので、カウント変更値Ｃ２ｂ（０）となる。また、比較部３３において、カウント変更値Ｃ２ｂ（０）＝出力基準値（０）なので、セル４の出力処理が行われる。
【００９５】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ｂ（０）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−２）となる。
【００９６】
〔Ｓ３２〕ステップＳ３１以降の５セルスロット区間において、セルの入出力がない時間帯が存在している。ＬＢカウンタ部３１は、出力レートの＋３の加算を毎セルスロット行うが、出力するセルがないので、加算演算のみ行われる。加算結果はカウント値変更部３２−２において、いずれ出力基準値（０）に到達し、かつ蓄積セル数＝０であるから、カウント値Ｃ１は出力基準値（０）に変更される。
【００９７】
カウント値変更後のカウント変更値Ｃ２ｂ（０）は、ＬＢカウンタ部３１にフィードバックされて出力レートと加算されて、この加算結果が再びカウント値変更部３２−２へ入力することになるので、有効なセル出力要求がくるまでは、カウント値Ｃ１（０）のままで一定となる（実質、出力基準値でカウント停止となる）。
【００９８】
〔Ｓ３３〕セル５が入力する。このとき、セルバッファ蓄積状況から、セル５がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル５の入力時は、カウント値変更部３２−２において、蓄積セル数＝１なので、カウント値Ｃ１の出力基準値への変更は行わず、カウント値Ｃ１（０）なので、カウント変更値Ｃ２ｂ（０）となる。また、比較部３３において、カウント変更値Ｃ２ｂ（０）＝出力基準値（０）なので、セル５の出力処理が行われる。
【００９９】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ｂ（０）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−２）となる。
【０１００】
〔Ｓ３４〕セル６が入力する。このとき、セルバッファ蓄積状況から、セル６がセルバッファ部１０に格納されており、蓄積セル数は１個となる。セル６の入力時は、カウント値変更部３２−２において、蓄積セル数＝１なので、カウント値Ｃ１の出力基準値への変更は行わず、カウント値Ｃ１（−２）なので、カウント変更値Ｃ２ｂ（−２）となる。また、比較部３３において、カウント変更値Ｃ２ｂ（−２）＜出力基準値（０）なので、セル６の出力処理が行われない。
【０１０１】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ｂ（−２）に対して、出力レートの＋３のカウント演算を行って、カウント値Ｃ１（＋１）となる。
〔Ｓ３５〕セル７が入力する。このとき、セルバッファ蓄積状況から、セル６、７がセルバッファ部１０に格納されており、蓄積セル数は２個となる。セル７の入力時は、カウント値変更部３２−２において、蓄積セル数＝２なので、カウント値Ｃ１の出力基準値への変更は行わず、カウント値Ｃ１（＋１）なので、カウント変更値Ｃ２ｂ（＋１）となる。また、比較部３３において、カウント変更値Ｃ２ｂ（＋１）＞出力基準値（０）なので、先に格納されていたセル６の出力処理が行われる。
【０１０２】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ｂ（＋１）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−１）となる。
【０１０３】
〔Ｓ３６〕セル８が入力する。このとき、セルバッファ蓄積状況から、セル７、８がセルバッファ部１０に格納されており、蓄積セル数は２個となる。セル８の入力時は、カウント値変更部３２−２において、蓄積セル数＝２なので、カウント値Ｃ１の出力基準値への変更は行わず、カウント値Ｃ１（−１）なので、カウント変更値Ｃ２ｂ（−１）となる。また、比較部３３において、カウント変更値Ｃ２ｂ（−１）＜出力基準値（０）なので、セルの出力処理が行われない。
【０１０４】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ｂ（−１）に対して、出力レートの＋３のカウント演算を行って、カウント値Ｃ１（＋２）となる。
〔Ｓ３７〕セル９が入力する。このとき、セルバッファ蓄積状況から、セル７、８、９がセルバッファ部１０に格納されており、蓄積セル数は３個となる。セル９の入力時は、カウント値変更部３２−２において、蓄積セル数＝３なので、カウント値Ｃ１の出力基準値への変更は行わず、カウント値Ｃ１（＋２）なので、カウント変更値Ｃ２ｂ（＋２）となる。また、比較部３３において、カウント変更値Ｃ２ｂ（＋２）＞出力基準値（０）なので、先に格納されていたセル７の出力処理が行われる。
【０１０５】
したがって、ＬＢカウンタ部３１において、カウント変更値Ｃ２ｂ（＋２）に対して、出力レートの＋３、フルレートの−５のカウント演算を行って、カウント値Ｃ１（−２）となる。
【０１０６】
上記のようなSCR制御により、セル入力のない区間が続き、その後に連続してセルが入力したような場合であっても、瞬間的なバースト出力を防止して、常に平均レートでセルを出力することが可能になる。
【０１０７】
次に上記で説明したMBS、CDVT、SCRのいずれか１つの制御を選択して、セルの伝送を行う伝送装置について説明する。図１２は伝送装置の原理図である。伝送装置１−３は、セルバッファ部１０、蓄積セル数管理部２０、ＬＢ制御部３０−３、出力判断部４０から構成されて、送信側での帯域制御を行ってセルを伝送する装置である。なお、セルバッファ部１０、蓄積セル数管理部２０、出力判断部４０は図１と同様なので説明は省略する。
【０１０８】
ＬＢ制御部３０−３は、ＬＢカウンタ部３１、第１のカウント値変更部３２−１（以下、カウント値変更部３２−１）、第２のカウント値変更部３２−２（以下、カウント値変更部３２−２）、比較部３３、上限値算出部３４、セレクタ３５から構成される。なお、カウント値変更部３２−１は、図２で上述したものと同じであり、カウント値変更部３２−２は図１０で上述したものと同じである。
【０１０９】
セレクタ３５は、０端子にカウント値変更部３２−１からのカウント変更値Ｃ２ａが入力し、１端子にカウント値変更部３２−２からのカウント変更値Ｃ２ｂが入力する。
そして、サービスモードがMBS／CDVTモードならば、０端子に入力されるカウント変更値Ｃ２ａを選択し、サービスモードがSCRならば、１端子に入力されるカウント変更値Ｃ２ｂを選択して、カウント変更値Ｃ３として出力する。、カウント変更値Ｃ３はフィードバックされて、ＬＢカウンタ部３１に入力する。このような構成にすることで、MBS、CDVT、SCRの３種のトラフィックサービスを制御することが可能になる。
【０１１０】
次に伝送装置１−１〜１−３を複数コネクションに対応させた場合について説明する。図１３は複数コネクションに対応した伝送装置の構成を示す図である。伝送装置１−４は、セルバッファ部１０、蓄積セル数管理部２０、ＬＢ制御部３０、出力判断部４０、コネクション情報保持部５１−１〜５１−ｎ、セレクタ５２から構成される。
【０１１１】
コネクション情報保持部５１−１〜５１−ｎはそれぞれ、各コネクションで用いられる出力レート、フルレート、ユーザパラメータのコネクション情報を保持している。セレクタ５２は、使用するコネクションが指示されると、該当のコネクション情報を保持しているコネクション情報保持部を選択して、該当のコネクション情報をＬＢ制御部３０へ送信する（コネクション情報保持部５１−１〜５１−ｎからの出力を、時分割でＬＢ制御部３０へ入力してもよい）。このような構成にすることで、複数コネクションに対応した制御を行うことが可能になる。
【０１１２】
次にIP網上でパケット伝送を行う場合の動作について説明する。上記では、伝送装置１−１〜１−４は、ATM網上でセルの伝送を行う装置として説明したが、IP網上でのパケット伝送を行う場合にも上記と同様なMBS、CDVT、SCR制御を行うことが可能である。以下、ＬＢ制御部におけるIPパケットへの適用動作について説明する。
【０１１３】
ATMセルとIPパケットでの出力動作において異なる点は、ATMセルが固定長（データサイズが固定）なのに対して、IPパケットは可変長（データサイズが可変）であるという点である。
【０１１４】
ATMセル（５３byte）の場合、ＬＢ制御部の精度を１bps、１セルスロット時間（セル送出を判定する間隔）を２．７μｓ、出力レートを１０Mbps、フルレートを１５０Mbpsとしたとき、ＬＢカウンタ部３１では、２．７μｓ毎に10,000,000（＝１０Mbps）ずつ加算し、セルを送出したときに150,000,000減算する。
【０１１５】
一方、IPパケットに適用する場合には、加算値（加算器３１ａの出力）から、パケット長に対応したレート変換を行ったフルレートを減算することで適用することが可能になる。
【０１１６】
例えば、IPパケットが５３byteであった場合は、パケット送出時に加算値から150,000,000減算する。これはATMセルと同じ操作になる。
また、IPパケットが１０６byte（＝５３×２）であった場合には、加算値から300,000,000（＝150,000,000×2）減算する。このように、可変長のIPパケットに対応するためには、データを送出した時に、加算値から減算する値を、データ長に比例した値に変換すればよい（このことは２倍のデータを送出した場合は、次のデータ送出まで２倍の時間を要することになり、Leaky Bucket Shaperの理にかなっている）。なお、減算値はパケットを出力する度に計算する必要がある。
【０１１７】
以上説明したように、ＬＢカウンタの上限値を制御することで、顧客要求に応じて、各種トラフィックサービスを提供することが可能になる。また、このような構成にすることで、ＬＢ方式とは別に、MBS、CDVT、SCRそれぞれ専用の回路を具備する必要がないので、回路規模を低減することができ、高速処理が可能になる。
【０１１８】
（付記１）  帯域制御を行ってセルを伝送する伝送装置において、
セルを格納し、有効なセル出力要求を受信してセルを出力するセルバッファと、
前記セルバッファの蓄積セル数を管理する蓄積セル数管理部と、
１セルスロット時間毎に、出力レートとカウント変更値とを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値を算出するリーキバケットカウンタ部と、カウント値の上限値を算出する上限値算出部と、カウント値が上限値以上の場合は、カウント値を上限値に変更し、カウント値が上限値未満の場合は変更しないカウント値変更処理を行って、変更処理後の値をカウント変更値として出力するカウント値変更部と、カウント変更値と出力基準値とを比較し、カウント変更値が出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値が出力基準値未満ならば出力タイミング信号を無効とする比較部と、から構成されて、リーキバケット・アルゴリズムにもとづく送信側での帯域制御を行うリーキバケット制御部と、
出力タイミング信号が有効で、蓄積セル数が１以上ならば、セル出力要求を有効とし、出力タイミング信号が無効、または蓄積セル数が０ならば、セル出力要求を無効とする出力判断部と、
を有することを特徴とする伝送装置。
【０１１９】
（付記２）  セル送信時の最大バーストセル数を制御する際は、前記上限値算出部は、ユーザパラメータとして最大バーストセル数をMBS、出力レートをRout、フルレートをRmaxとして、
Lmax＝（Rmax−Rout）×（MBS−１）  …（１）
で上限値Lmaxを算出することを特徴とする付記１記載の伝送装置。
【０１２０】
（付記３）  セル送信時のセル遅延変動許容値を制御する際は、前記上限値算出部は、ユーザパラメータとしてセル遅延変動許容値をCDVT、出力レートをRout、１セルスロット時間をTとして、
【０１２１】
【数１】
2006101004.tif 000004
【０１２２】
で上限値Lmaxを算出することを特徴とする付記１記載の伝送装置。
（付記４）  パケット伝送を行う際には、前記リーキバケット制御部は、パケットが出力される毎に、加算後の値から、パケット長に対応したレート変換を行ったフルレートを減算して、カウント値を算出することを特徴とする付記１記載の伝送装置。
【０１２３】
（付記５）  複数のコネクション毎に帯域制御を行う場合、出力レート、フルレート、ユーザパラメータの少なくとも１つの情報を含むコネクション情報を保持する複数のコネクション情報保持部と、使用コネクションが選択された場合に、該当の前記コネクション情報保持部を選択して、前記コネクション情報を前記リーキバケット制御部へ送信するセレクタと、をさらに有することを特徴とする付記１記載の伝送装置。
【０１２４】
（付記６）  帯域制御を行ってセルを伝送する伝送装置において、
セルを格納し、有効なセル出力要求を受信してセルを出力するセルバッファと、
前記セルバッファの蓄積セル数を管理する蓄積セル数管理部と、
１セルスロット時間毎に、出力レートとカウント変更値とを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値を算出するリーキバケットカウンタ部と、カウント値と出力基準値とを比較し、カウント値が出力基準値以上であり、かつ蓄積セル数がゼロの場合はカウント値を出力基準値に変更し、カウント値が出力基準値未満、または蓄積セル数が１以上の場合は変更しないカウント値変更処理を行って、変更処理後の値をカウント変更値として出力するカウント値変更部と、カウント変更値と出力基準値とを比較し、カウント変更値が出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値が出力基準値未満ならば出力タイミング信号を無効とする比較部と、から構成されて、リーキバケット・アルゴリズムにもとづく送信側での平均セルレート制御を行うリーキバケット制御部と、
出力タイミング信号が有効で、蓄積セル数が１以上ならば、セル出力要求を有効とし、出力タイミング信号が無効、または蓄積セル数が０ならば、セル出力要求を無効とする出力判断部と、
を有することを特徴とする伝送装置。
【０１２５】
（付記７）  パケット伝送を行う際には、前記リーキバケット制御部は、パケットが出力される毎に、加算後の値から、パケット長に対応したレート変換を行ったフルレートを減算して、カウント値を算出することを特徴とする付記６記載の伝送装置。
【０１２６】
（付記８）  複数のコネクション毎に帯域制御を行う場合、出力レート、フルレート、ユーザパラメータの少なくとも１つの情報を含むコネクション情報を保持する複数のコネクション情報保持部と、使用コネクションが選択された場合に、該当の前記コネクション情報保持部を選択して、前記コネクション情報を前記リーキバケット制御部へ送信するセレクタと、をさらに有することを特徴とする付記６記載の伝送装置。
【０１２７】
（付記９）  帯域制御を行ってセルを伝送する伝送装置において、
セルを格納し、有効なセル出力要求を受信してセルを出力するセルバッファと、
前記セルバッファの蓄積セル数を管理する蓄積セル数管理部と、
１セルスロット時間毎に、出力レートとカウント変更値とを加算し、有効なセル出力要求を受信した場合は、加算後の値からフルレートを減算してカウント値を算出するリーキバケットカウンタ部と、カウント値の上限値を算出する上限値算出部と、カウント値が上限値以上の場合は、カウント値を上限値に変更し、カウント値が上限値未満の場合は変更しないカウント値変更処理を行って、変更処理後の値を第１のカウント変更値として出力する第１のカウント値変更部と、カウント値と出力基準値とを比較し、カウント値が出力基準値以上であり、かつ蓄積セル数がゼロの場合はカウント値を出力基準値に変更し、カウント値が出力基準値未満、または蓄積セル数が１以上の場合は変更しないカウント値変更処理を行って、変更処理後の値を第２のカウント変更値として出力する第２のカウント値変更部と、サービスモードにもとづき、第１のカウント変更値または第２のカウント変更値のいずれかを選択して出力するセレクタと、前記セレクタから出力されたカウント変更値と出力基準値とを比較し、カウント変更値が出力基準値以上ならば、出力タイミング信号を有効とし、カウント変更値が出力基準値未満ならば出力タイミング信号を無効とする比較部と、から構成されて、リーキバケット・アルゴリズムにもとづく送信側での帯域制御を行うリーキバケット制御部と、
出力タイミング信号が有効で、蓄積セル数が１以上ならば、セル出力要求を有効とし、出力タイミング信号が無効、または蓄積セル数が０ならば、セル出力要求を無効とする出力判断部と、
を有することを特徴とする伝送装置。
【０１２８】
（付記１０）  セル送信時の最大バーストセル数を制御する際は、前記上限値算出部は、ユーザパラメータとして最大バーストセル数をMBS、出力レートをRout、フルレートをRmaxとして、
Lmax＝（Rmax−Rout）×（MBS−１）  …（１）
で上限値Lmaxを算出することを特徴とする付記９記載の伝送装置。
【０１２９】
（付記１１）  セル送信時のセル遅延変動許容値を制御する際は、前記上限値算出部は、ユーザパラメータとしてセル遅延変動許容値をCDVT、出力レートをRout、１セルスロット時間をTとして、
【０１３０】
【数１】
2006101004.tif 000005
【０１３１】
で上限値Lmaxを算出することを特徴とする付記９記載の伝送装置。
（付記１２）  パケット伝送を行う際には、前記リーキバケット制御部は、パケットが出力される毎に、加算後の値から、パケット長に対応したレート変換を行ったフルレートを減算して、カウント値を算出することを特徴とする付記９記載の伝送装置。
【０１３２】
（付記１３）  複数のコネクション毎に帯域制御を行う場合、出力レート、フルレート、ユーザパラメータの少なくとも１つの情報を含むコネクション情報を保持する複数のコネクション情報保持部と、使用コネクションが選択された場合に、該当の前記コネクション情報保持部を選択して、前記コネクション情報を前記リーキバケット制御部へ送信するセレクタと、をさらに有することを特徴とする付記９記載の伝送装置。
【０１３３】
（付記１４）  リーキバケット・アルゴリズムにもとづいて、送信側での帯域制御を行うリーキバケット帯域制御方法において、
リーキバケットカウンタにより、１セルスロット時間毎に出力レートを加算し、セルを出力した際には加算後の値からフルレートを減算してカウント値を算出し、
最大バーストセル数、セル遅延変動許容値、平均セルレートのいずれかを設定し、
最大バーストセル数またはセル遅延変動許容値を設定した場合には、算出されたカウント値に対し、カウント値の上限値を算出し、
カウント値が上限値以上の場合は、カウント値を上限値に変更し、カウント値が上限値未満の場合は変更しないカウント値の変更処理を行い、
平均セルレートを設定した場合には、算出されたカウント値に対し、カウント値と出力基準値とを比較し、
カウント値が出力基準値以上であり、かつ蓄積セル数がゼロの場合は、カウント値を出力基準値に変更し、カウント値が出力基準値未満、または蓄積セル数が１以上の場合は変更しないカウント値の変更処理を行い、
変更処理後のカウント変更値に対して、カウント変更値と出力基準値とを比較し、カウント変更値が出力基準値以上ならば、セルを出力し、カウント変更値が出力基準値未満ならばセルの出力を停止して帯域制御を行うことを特徴とするリーキバケット帯域制御方法。
【０１３４】
（付記１５）  セル送信時の最大バーストセル数を制御する際は、ユーザパラメータとして最大バーストセル数をMBS、出力レートをRout、フルレートをRmaxとして、
Lmax＝（Rmax−Rout）×（MBS−１）  …（１）
で上限値Lmaxを算出することを特徴とする付記１４記載のリーキバケット帯域制御方法。
【０１３５】
（付記１６）  セル送信時のセル遅延変動許容値を制御する際は、ユーザパラメータとしてセル遅延変動許容値をCDVT、出力レートをRout、１セルスロット時間をTとして、
【０１３６】
【数１】
2006101004.tif 000006
【０１３７】
で上限値Lmaxを算出することを特徴とする付記１４記載のリーキバケット帯域制御方法。
（付記１７）  パケット伝送を行う際には、パケットが出力される毎に、加算後の値から、パケット長に対応したレート変換を行ったフルレートを減算して、カウント値を算出することを特徴とする付記１４記載のリーキバケット帯域制御方法。
【０１３８】
（付記１８）  複数のコネクション毎に帯域制御を行う場合、出力レート、フルレート、ユーザパラメータの少なくとも１つの情報を含むコネクション情報をコネクションの数だけ保持し、使用コネクションが選択された場合には、該当の前記コネクション情報を用いて、リーキバケットカウンタによるカウント処理及び上限値の算出処理を行うことを特徴とする付記１４記載のリーキバケット帯域制御方法。
【図面の簡単な説明】
【０１３９】
【図１】伝送装置の原理図である。
【図２】ＬＢ制御部の構成を示す図である。
【図３】上限値を設定しないときのＬＢカウント動作を示す図である。
【図４】MBS制御の動作を示す図である。
【図５】MBSの上限値算出式の内容を説明するための図である。
【図６】伝送装置のCDVT制御の概念を示す図である。
【図７】CDVT制御の動作を示す図である。
【図８】CDVT制御の動作を示す図である。
【図９】伝送装置の原理図である。
【図１０】ＬＢ制御部の構成を示す図である。
【図１１】SCR制御の動作を示す図である。
【図１２】伝送装置の原理図である。
【図１３】複数コネクションに対応した伝送装置の構成を示す図である。
【図１４】リーキバケットの概念を示す図である。
【符号の説明】
【０１４０】
１−１  伝送装置
１０  セルバッファ部
２０  蓄積セル数管理部
３０−１  リーキバケット制御部
３１  リーキバケットカウンタ部
３２−１  カウント値変更部
３３  比較部
３４  上限値算出部
４０  出力判断部
Ｃ１  カウント値
Ｃ２ａ  カウント変更値
【図１】
2006101004.tif 000008
【図２】
2006101004.tif 000009
【図３】
2006101004.tif 000010
【図４】
2006101004.tif 000011
【図５】
2006101004.tif 000012
【図６】
2006101004.tif 000013
【図７】
2006101004.tif 000014
【図８】
2006101004.tif 000015
【図９】
2006101004.tif 000016
【図１０】
2006101004.tif 000017
【図１１】
2006101004.tif 000018
【図１２】
2006101004.tif 000019
【図１３】
2006101004.tif 000020
【図１４】
2006101004.tif 000021