(57)【特許請求の範囲】
【請求項１】
パケット転送網に接続され、第一の送信帯域が割り当てられた第一のコネクション、および送信帯域の割り当てられていない第二のコネクションのいずれかに属するパケットであって、上記第一および第二のコネクションを少なくとも一つずつ含みつつさらに第二の送信帯域が割り当てられたコネクション束に属するパケットを転送するパケット通信装置であって、
受信した上記パケットを一時的に蓄積するパケットバッファ部と、
上記パケットが上記第一のコネクションに属する場合は、上記第一及び第二の送信帯域内で該パケットを送信可能か否かを判定し、上記パケットが上記第二のコネクションに属する場合は、上記第二の送信帯域内でかつ上記第一のコネクションが使用していない帯域内で該パケットを送信可能か否かを判定し、上記いずれかの判定の結果、送信可能な場合には上記パケットバッファ部から上記パケットを読み出して送信する送信制御部を有するパケット通信装置。
【請求項２】
請求項１記載のパケット転送装置であって、
上記第二のコネクション毎にさらに優先度が割り当てられており、
上記送信制御部は、上記第二の送信帯域内でかつ上記第一のコネクションが使用していない帯域内で上記第二のコネクションに属するパケットを送信可能な場合に、上記第二のコネクションのうち上記優先度が高いコネクションに属するパケットから順に送信可能であると判定することを特徴とするパケット通信装置。
【請求項３】
請求項１記載のパケット通信装置であって、
上記コネクション毎に決められた帯域に従った送信間隔を守るパケット第１送信予定時刻を計算する第１送信予定時刻計算部と、
前記第１送信予定時刻計算部で計算されたパケット第１送信予定時刻が最も早いコネクションを選択する第１ソーティング部と、
上記コネクション束毎に決められた帯域に従った送信間隔を守るパケット第２送信予定時刻を計算する第２送信予定時刻計算部と、
前記第２送信予定時刻計算部で計算されたパケット第２送信予定時刻が最も早いコネクション束を選択する第２ソーティング部とをさらに備え、
上記送信制御部は、
前記第２ソーティング部で選択されたコネクション束に属するパケットを送信してもよいか否かを判定し、パケットを送信してもよい場合には第１ソーティング部で選択されたコネクションに属するパケットを送信してもよいか否かを判定し、パケットを送信してもよい場合には上記パケットバッファ部からパケットを読み出して送信することを特徴とするパケット通信装置。
【請求項４】
請求項３に記載のパケット通信装置において、
前記パケットバッファからパケットを読み出す際に、パケットのヘッダに記述してあるパケット長情報を抽出する機能を備え、
前記第１送信予定時刻計算部において、前記パケット長情報に比例した送信間隔を用いてパケット第１送信予定時刻を計算し、第２送信予定時刻計算部において、前記パケット長情報に比例した送信間隔を用いてパケット第２送信予定時刻を計算することを特徴とするパケット通信装置。
【請求項５】
請求項３に記載のパケット通信装置において、
前記コネクション毎に、前記パケットバッファ部内に送信待ちのパケットが存在するか否かを示す判別ビットを備えたことを特徴とするパケット通信装置。
【請求項６】
請求項３に記載のパケット通信装置において、
前記コネクション束毎に、前記パケットバッファ部内に送信待ちのパケットが存在するか否かを示す判別ビットを備えたことを特徴とするパケット通信装置。
【請求項７】
請求項５に記載のパケット通信装置において、
前記第１ソーティング部が、パケット第１送信予定時刻、および前記パケット存在判別ビットを二分木構造で管理する手段を備え、過去のソーティング結果を利用して最優先で送信すべきコネクションを選び出すことを特徴とするパケット通信装置。
【請求項８】
請求項６に記載のパケット通信装置において、
前記第２ソーティング部が、パケット第２送信予定時刻、および前記パケット存在判別ビットを二分木構造で管理する手段を備え、過去のソーティング結果を利用して最優先で送信すべきコネクション束を選び出すことを特徴とするパケット通信装置。
【請求項９】
請求項５に記載のパケット通信装置において、
前記第１ソーティング部で選択されたコネクションのパケット第１送信予定時刻が、第２送信予定時刻計算部で計算されたパケット第２送信予定時刻よりも未来であり、かつ前記第１ソーティング部で選択されたコネクションのパケット存在判別ビットがセットされているときに、前記パケット第２送信予定時刻として前記パケット第１送信予定時刻を用いる時刻修正回路を備えたことを特徴とするパケット通信装置。
【請求項１０】
請求項３に記載のパケット通信装置において、前記第１ソーティング部が行う処理と、前記第２ソーティング部が行う処理を並行して行うことを特徴とするパケット通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、トラヒックシェーピング機能を有する装置、ＡＴＭ端末、およびＡＴＭ交換機、または可変長パケットに対するトラヒックシェーピング機能を有する装置に関する。
【０００２】
【従来の技術】
非同期転送技術（Asynchronous Transfer Mode：ＡＴＭ）は、セルと呼ばれる固定長パケットを用いて、音声・画像・データ等の様々な種類のトラヒックを効率的にサポートすることができ、マルチメディア通信に適した通信技術として広く知られている。
【０００３】
ＡＴＭでは、ユーザは、セル送信前に、予めＶＣ（Virtual Connection）と呼ばれる単位で網との間に送信帯域に関する契約を行う。契約の内容は、該ＶＣを介して転送したい情報の種類によって異なる。例えば、音声・画像系トラヒックでは低遅延転送が求められるため、回線内に一定の帯域を予め確保し、その帯域に従ってセルを送信する。“The ATM Forum TM4.0”（従来技術１）では、音声・画像系トラヒックを転送するためのサービスクラスとして、完全に固定帯域を確保し契約帯域内でセルを送信するＣＢＲ（Constant Bit Rate）、および最大送信帯域と平均送信帯域を契約し送信帯域が時間の経過に従って変化するＶＢＲ（Variable Bit Rate）が示されている。一方、データ系トラヒックはバースト的（突発的）に発生・終了するために、回線内に予め帯域を確保しておくと回線帯域を有効に利用できない。そこで、一般にデータ系トラヒックは、音声等に比べてさほど遅延を重視しないので、帯域を確保せずにセルを送信し、一度に多くのセルが集中したノードでは、一時的にセルを蓄積する（該ノードが許容できなければセルは廃棄される）ことで、回線帯域を有効に利用している。
【０００４】
従来技術１では、データ系トラヒックを転送するためのサービスクラスは、網内の輻輳（混雑）状態をセル送信端末にフィードバックさせセル廃棄を防止する手段を有するＡＢＲ（Available Bit Rate）、および回線帯域を有効利用するために送信端末は回線に空き帯域があればセルを送信し続けるＵＢＲ（Unspecified Bit Rate）が示されている。各ＶＣは、いずれかのサービスクラスに属している。以上に示した各サービスクラスの遅延・廃棄に関する特徴から、四つのサービスクラスに属するＶＣのセルが網内のノードで競合（衝突）した場合、ＣＢＲに属するＶＣのセルを最も優先して転送し、以下ＶＢＲ、ＡＢＲ、ＵＢＲの順に優先して転送する。
【０００５】
上述のＣＢＲ、ＶＢＲ、ＡＢＲのＶＣに関しては、端末（ユーザ）は網との間に最大送信帯域等の送信帯域に関する契約を行う。ＵＢＲのＶＣに関しては、最大送信帯域の契約を行う場合と、送信帯域に関する契約は何も行わない場合がある。公衆ＡＴＭ網では、端末が送信しているセル流量を網の入口で監視し、契約帯域を違反しているＶＣを検出して、該ＶＣのセルに対してセルを廃棄したりする。この機能をＵＰＣ（Usage Parameter Control）機能という。送信途中でセルが廃棄されても、通常、受信端末側でセル廃棄が生じたことを認識し、廃棄された情報を再送する様に送信端末に通知し送信端末が再送を行うので、最終的な情報の欠落はないが、最終的な遅延が大きくなったり、あるいは再送セルのために２次的な新たな輻輳を引き起こす原因にもなる。従って、網側のＵＰＣ機能で違反セルと判定されない様に、端末側が、契約帯域に従ってセル流量を制御して送信することが重要である。このセル流量を制御する機能をトラヒックシェーピング（Traffic Shaping）機能という。端末の他にも、網内で生じたゆらぎを吸収するために、網内の要所にある交換機にトラヒックシェーピング機能を備えてもよい。
【０００６】
トラヒックシェーピング機能を実現するトラヒックシェーピング装置に関しては、例えば、特開平6-315034号公報「セル流制御装置およびＡＴＭ通信網」（従来技術２）がある。契約帯域以上の帯域で受信したセルを網に向けて同じ帯域で送信していると過剰なセルを送信することになるので、網側のＵＰＣ機能で廃棄されてしまう。そこで、従来技術２では、セルを一時的に記憶しておくメモリ（従来技術２の符号４）を設け、契約帯域以上の帯域で受信したセルは該メモリに一時的に格納し、契約帯域に従って読み出すことで、トラヒックシェーピング機能を実現する方式を示している。従来技術２では、トラヒックシェーピングを行うために最低限必要な機能である、メモリに一時的に記憶するという点については述べられているが、具体的な実現方法や必要メモリ量や処理時間に関しては述べられていない。
【０００７】
トラヒックシェーピング装置のもう一つの例として、特開平9-307566号公報「トラフィックシェーピング装置」（従来技術３）がある。従来技術３では、各ＶＣ毎に次にセルを送信することができる時刻（以下、送信予定時刻）を二分木構造を用いて記憶している。これにより、前回のソーティング結果を利用してソーティングを行うことができるため、log(ＶＣ数)のオーダの処理時間で最優先に送信すべきＶＣを選び出すことができると述べられている。従来技術３を適用したトラヒックシェーピング装置では、必要メモリ量が低減され、送信すべきセルを選び出す処理時間が従来技術２によるトラヒックシェーピング装置よりも大幅に短縮される。
【０００８】
【発明が解決しようとする課題】
ユーザが公衆ＡＴＭ網を利用する際の契約単位として、上述のＶＣ単位で契約する場合と、複数のＶＣを束ねたＶＰ（Virtual Path）単位で契約する場合がある。このＶＰ単位で帯域の契約を行う場合、通常、契約は通信相手である相手方拠点毎に行う。この様な網の例を図１９に示す。図１９では、公衆ＡＴＭ網３４０に端末３００、１９０１、１９０２、１９０３が接続されている様子を示している。例えば、端末３００が各端末１９０１、１９０２、１９０３と通信を行うとき、ＶＰの契約は端末間毎に契約する。すなわち、端末３００−端末１９０１間はＶＰ（０）２１０として９０Ｍｂｐｓの契約、端末３００−端末１９０２間はＶＰ（１）２２０として、３０Ｍｂｐｓの契約、端末３００−端末１９０３間はＶＰ（２）２３０として、３０Ｍｂｐｓの契約を行う。そして、ＶＰ（０）〜ＶＰ（２）を端末３００−ＡＴＭスイッチ３４１との間を結んでいる１５０Ｍｂｐｓの回線に束ねて送信する。
【０００９】
図２は、図１９における端末３００−ＡＴＭスイッチ３４１間の回線とＶＰ、ＶＣの関係を示す概念図である。図２では、９０ＭｂｐｓのＶＰ（０）２１０内に３本のＶＣ２１１、２１２、２１３が、３０ＭｂｐｓのＶＰ（１）２２０内に２本のＶＣ２２１、２２２が、３０ＭｂｐｓのＶＰ（２）２３０内に２本のＶＣ２３１、２３２が束ねられている。
【００１０】
ＶＰ単位で契約を行った場合には、網管理側としては、ＶＰ単位の帯域を守っているかという点のみを監視する。すなわち、公衆ＡＴＭ網３４０の入口に位置しているＡＴＭスイッチ３４１において（図１９）、ＶＰに対しては上述のＵＰＣ機能により違反セルに対してはセルを廃棄したりするが、ＶＰ内に束ねられている個々のＶＣの帯域は監視しない。ＶＰに対するＵＰＣ機能で違反セルと判定されてセルが廃棄されると上述の様に、転送遅延が大きくなったり、あるいは新たな輻輳の原因にもなるために、端末側（ユーザ側）が、契約帯域であるＶＰの帯域を守ってセルを送信するトラヒックシェーピング機能（以下、ＶＰシェーピング）が必要となる。また、ＶＰ内の各ＶＣの帯域は網側では監視されないからといって、例えば、トラヒックシェーピング装置が受信した順序（送信端末なら上位パケットが分割された順序（後述）、交換機なら交換機が受信した順序）でそのまま送信するといった方法でＶＣのセルを送信していると、網全体として音声・画像系トラヒックに対して一定の帯域を保証し、低遅延転送を実現することができなくなる。そこで、音声・画像系トラヒック（ＣＢＲ、ＶＢＲ）の低遅延転送を実現するためには、該ＶＰに束ねられている各ＶＣの帯域を制御し、かつ異なるサービスクラス間では優先制御を行うトラヒックシェーピング機能（以下、ＶＣシェーピング）が重要となる。しかしながら、従来技術２および従来技術３に示されているトラヒックシェーピング装置では、ＶＰシェーピングまたはＶＣシェーピングのみについて述べられており、両シェーピングを同時に行うトラヒックシェーピングを対象としていない。また、従来技術３においても、ＶＰとＶＣの両方を考慮したトラヒックシェーピングについては述べていない。
【００１１】
本発明の第１の目的は、ＶＰの契約帯域を守りつつ、該ＶＰ内の各ＶＣの帯域を制御することができ、該ＶＰ内、および回線の帯域を有効に利用し得る、トラヒックシェーピング機能を有する装置、ＡＴＭ端末またはＡＴＭ交換機を提供することである。
本発明の第２の目的は、一つのトラヒックシェーピング装置で複数の出力回線のシェーピングを行うことができる装置、ＡＴＭ端末、またはＡＴＭ交換機を提供することである。
本発明の第３の目的は、可変長パケットに対して網との間の契約帯域を守りつつ、該契約帯域内でパケット毎に帯域を制御することができ、該契約帯域内、および回線の帯域を有効に利用し得る、パケット送信端末またはパケット交換機向けのトラヒックシェーピング機能を有する装置、ＡＴＭ端末またはＡＴＭ交換機を提供することである。
【００１２】
【課題を解決するための手段】
ＶＰおよびＶＣに対する両方のトラヒックシェーピングを同時に行うためには、ＶＰおよびＶＣに対するトラヒックシェーピング回路を備え、両方のトラヒックシェーピング回路がセルを送信してもよい状態（送信予定時刻に至っている）になっているかを監視することが必要となる。従来技術３に記述されている二分木構造で送信予定時刻を管理する方式を用いれば、全ＶＰの中で最優先に送信すべきＶＰを選び出すこと、あるいは同一ＶＰ内の複数のＶＣの中で最優先で送信すべきＶＣを選び出すことを実現できる。しかしながら、独立に送信予定時刻を計算していると、ＶＰが送信してもよい状態（送信予定時刻に至っている）でも、該ＶＣ内に送信してもよいＶＣが存在しない、という状況が起こり得る。この場合、自ＶＰの帯域を減少させるか、あるいは他のＶＰの帯域を減少させることで、セルを送信することができるが、いずれの場合も通信路の帯域、および契約したＶＰの帯域を有効利用できていない。従って、ＶＰとしての送信予定時刻とＶＣとしての送信予定時刻を連繋させて考えることが必要である。
【００１３】
また、多数の低速回線に対してトラヒックシェーピングを行うとき、各回線インタフェース部毎にトラヒックシェーピング装置を設けることは、装置コストの増加の原因となる。そこで、一つのトラヒックシェーピング装置で複数の出力回線のトラヒックシェーピングを行うことができると、低コストで多数の回線のトラヒックシェーピングを行うことができる。
【００１４】
また、上記課題は、固定長のＡＴＭセルに対するトラヒックシェーピングに特化した課題ではない。例えば、インターネット等の様に、共用回線を利用して複数の網を接続し、それらの網毎に共用回線を契約している場合を考える。図１８にこの様な形態の網を示す。図１８において、網Ａ１８１０と網ａ１８２０はプロバイダＡが所有し、端末１８１１、１８２１はプロバイダＡのユーザとする。同様に、網Ｂ１８３０と網ｂ１８４０はプロバイダＢが所有し、端末１８３１、１８４１はプロバイダＢのユーザとする。また、網Ａ、網a、網Ｂ、網ｂはそれぞれルータによって網Ｃ１８００に接続されている。プロバイダＡ、プロバイダＢは、それぞれ網Ｃとの間に送信帯域を契約し、網Ｃの中では共用回線１８０１をプロバイダＡ、プロバイダＢが共用で使用している。この様な網環境で、端末１８１１と端末１８２１が、また端末１８３１と端末１８４１が通信を行う場合には、共用回線１８０１の入口では、共用回線を契約した帯域を守りつつ（ＡＴＭでいうところのＶＰに相当）、該契約帯域内で転送されているパケット毎に優先度を設けて（例えば、TELNET用のパケットは、電子メール用のパケットよりも優先、等）、帯域を管理できる（ＡＴＭでいうところのＶＣに相当）ことが望ましい。以上の様な網形態は、プロバイダによる回線の共用のみではなく、複数の企業が長距離通信回線を共用する場合、あるいは同一企業内でも部課毎のトラヒックを管理したい場合等、様々な運用形態が考えられ、これに対応した形で実現する必要がある。
【００１５】
上記考察から、目的を達成するために、通信装置に、コネクション毎に契約した帯域を元にセルを送信する第１セル送信予定時刻を計算する第１送信予定時刻計算部と、前記コネクションを複数纏めたコネクション束毎に契約した帯域を元に前記セルを送信する第２セル送信予定時刻を計算する第２送信予定時刻計算部と、及び、前記セルを送信するとき、前記第２セル送信予定時刻を用いるか前記第１セル送信予定時刻を用いるか選択する手段を設ける。必要に応じて第１セル送信予定時刻と第２セル送信予定時刻を用いることができるので、契約帯域を守ることができる。
【００１６】
また、上記考察から、上記第１〜第３の目的を達成するために、本発明では、多段階にシェーピングするトラヒックシェーピング装置を提案する。すなわち、上記第１の目的を達成するために、ＡＴＭ網に接続されている端末または交換スイッチ内にあり、受信したセルを一時的に蓄積するセルバッファ部と、ＶＣ毎に契約した帯域に従った送信間隔を守るセル第１送信予定時刻を計算する第１送信予定時刻計算部と、前記第１送信予定時刻計算部で計算されたセル第１送信予定時刻が最も早いＶＣを選択する第１ソーティング部と、前記第１ソーティング部で選択されたＶＣに属するセルを送信してもよいか否かを判定し、セルを送信してもよい場合にはセルバッファ部からセルを読み出して送信する送信制御部を備えたトラヒックシェーピング装置において、ＶＰ毎に契約した帯域に従った送信間隔を守るセル第２送信予定時刻を計算する第２送信予定時刻計算部と、前記第２送信予定時刻計算部で計算されたセル第２送信予定時刻が最も早いＶＰを選択する第２ソーティング部を備え、前記送信制御部に前記第２ソーティング部で選択されたＶＰに属するセルを送信してもよいか否かを判定し、セルを送信してもよい場合には第１ソーティング部で選択されたＶＣに属するセルを送信してもよいか否かを判定し、セルを送信してもよい場合にはセルバッファ部からセルを読み出して送信する機能を備える。
【００１７】
また、ＶＰ内の複数のサービスクラス間で優先制御を行うために、前記トラヒックシェーピング装置において、各ＶＰ内のＶＣに対して優先度を設定し、前記第１ソーティング部が、各ＶＰ内の同一優先度をもつＶＣの集まりに対して、セル第１送信予定時刻が最も早いＶＣを選択する機能を備え、前記送信制御部は、前記第２ソーティング部で選択されたＶＰに属するセルを送信してもよいか否かを判定し、セルを送信してもよい場合には第１ソーティング部で各優先度毎に選択されたＶＣの中から、送信してもよい状態になっていて、かつ最も優先度が高いＶＣに属するセルを送信する機能を備える。
【００１８】
更に、ＶＣ毎に、前記セルバッファ部内に送信待ちのセルが存在するか否かを示す判別ビットを備える。また、ＶＰ毎に、前記セルバッファ部内に送信待ちのセルが存在するか否かを示す判別ビットを備える。
【００１９】
更に、前記第１ソーティング回路は、セル第１送信予定時刻、および前記セル存在判別ビットを二分木構造で管理する手段を備え、過去のソーティング結果を利用して最優先で送信すべきＶＣを選び出す。また、前記第２ソーティング回路は、セル第２送信予定時刻、および請求項４記載のセル存在判別ビットを二分木構造で管理する手段を備え、過去のソーティング結果を利用して最優先で送信すべきＶＰを選び出す。
【００２０】
次に更に、前記第２送信予定時刻計算部に、第１ソーティング部で選択されたＶＣのセル第１送信予定時刻が、第２送信予定時刻計算部で計算されたセル第２送信予定時刻よりも未来であり、かつ第１ソーティング部で選択されたＶＣの前記セル存在判別ビットがセットされているときに、セル第２送信予定時刻としてセル第１送信予定時刻を用いる時刻修正回路を備えることで、ＶＰの送信予定時刻とＶＣの送信予定時刻を適合させることができる。
【００２１】
更にまた、ＶＰ内のサービスクラス間で優先制御を行っている場合には、前記第２送信予定時刻計算部に、第１ソーティング部で各優先度毎に選択されたＶＣであり、前記セル存在判別ビットがセットされているＶＣの中で、セル第１送信予定時刻が最も早いＶＣのセル第１送信予定時刻が、第２送信予定時刻計算部で計算されたセル第２送信予定時刻よりも未来であるときに、セル第２送信予定時刻としてセル第１送信予定時刻を用いて、第１ソーティング部で各優先度毎に選択されたＶＣのすべてに対して、前記セル存在判別ビットがセットされていないときには、セル第２送信予定時刻を変更しない時刻修正回路を備える。このとき、第２送信予定時刻計算部に、第１ソーティング部で或るＶＰ内の各優先度毎に選択されたＶＣのすべてに対して、セル存在判別ビットがセットされていないときには、該ＶＰに対するセル存在判別ビットをリセットし、第１ソーティング部で或るＶＰ内の各優先度毎に選択されたＶＣのいずれかに対して、セル存在判別ビットがセットされているときには、該ＶＰに対するセル存在判別ビットをセットする機能を備える。これにより、第２ソーティング回路で選択されたＶＰ内のＶＣには、必ず送信待ちのセルが存在するという状況を作ることができる。
【００２２】
また、第１ソーティング回路が行う処理と、第２ソーティング回路が行う処理を並行して行うこともできる。これにより、ソーティング処理に要する時間を短縮することができる。
【００２３】
上記第２の目的は、交換スイッチに付したトランクとして本発明のトラヒックシェーピング装置を備え、上記ＶＰを回線（低速回線）と読み替えることにより達成することができる。
【００２４】
また、上記第３の目標を達成するために、本発明では、パケット送信端末またはパケット交換機に、パケット受信したパケットを一時的に蓄積するパケットバッファ部と、パケット優先度毎に決められた帯域に従った送信間隔を守るパケット第１送信予定時刻を計算する第１送信予定時刻計算部と、前記第１送信予定時刻計算部で計算されたパケット第１送信予定時刻が最も早いパケット優先度を選択する第１ソーティング部と、パケット転送先毎に契約した帯域に従った送信間隔を守るパケット第２送信予定時刻を計算する第２送信予定時刻計算部と、前記第２送信予定時刻計算部で計算されたパケット第２送信予定時刻が最も早いパケット転送先を選択する第２ソーティング部と、前記第２ソーティング部で選択されたパケット転送先に属するパケットを送信してもよいか否かを判定し、パケットを送信してもよい場合には第１ソーティング部で選択されたパケット優先度に属するパケットを送信してもよいか否かを判定し、パケットを送信してもよい場合にはパケットバッファ部からパケットを読み出して送信する送信制御部を備えたトラヒックシェーピング装置を備える。
【００２５】
また、前記パケットバッファからパケットを読み出す際に、パケットのヘッダに記述してあるパケット長情報を抽出する機能を備え、前記第１送信予定時刻計算部において、前記パケット長情報に比例した送信間隔を用いてパケット第１送信予定時刻を計算し、第２送信予定時刻計算部において、前記パケット長情報に比例した送信間隔を用いてパケット第２送信予定時刻を計算する。
【００２６】
また、該パケット送信端末またはパケット交換機向けのトラヒックシェーピング装置は、上述のＡＴＭ送信端またはＡＴＭ交換スイッチ向けのトラヒックシェーピング装置と同じ構造を備える。
【００２７】
【発明の実施の形態】
以下では、本発明の一実施例として、本発明を適用したトラヒックシェーピング装置を詳細に説明する（実施例１）。以下に示す実施例は、ＡＴＭ送信端末がＶＰシェーピングとＶＣシェーピングを同時に行い、ＶＰ内に四つのサービスクラス（ＣＢＲ、ＶＢＲ、ＡＢＲ、ＵＢＲ）を設け、クラス間の優先制御を行うトラヒックシェーピング装置の例である。
【００２８】
図３は、公衆ＡＴＭ網３４０に接続されているＡＴＭ送信端末３００のブロック図を示している。ＡＴＭ送信端末３００は、ＣＰＵとメモリから構成される上位層処理部３６０と、公衆網３４０に対する回線インタフェース部３２４から構成される。上位層処理部では、該ＡＴＭ網を用いて情報を転送するための上位プロトコル（例えばＩＰ（Internet Protocol））が動作し、上位プロトコルが認識し得る上位パケットを生成・終端する。
【００２９】
回線インタフェース部３２４は、更に、以下の構成要素を備える。ＳＡＲ（Segmentation And Reassembly）３５０は、上位層処理部３６０で生成された上位パケットとＡＴＭセル（５３バイト固定長）の変換（分割・組立て）を行う部分である。従って、ＳＡＲから上位層処理部側では上位パケットの形で処理が行われ、ＳＡＲから公衆ＡＴＭ網側ではＡＴＭセルの形で処理が行われる。変換はハードウェアによって行われる場合とソフトウェアによって行われる場合がある。トラヒックシェーピング部１００は、公衆ＡＴＭ網３４０と契約した帯域を守った送信間隔でセルを送信する。本願発明はこのトラヒックシェーピング部１００に主に関係する。光モジュール３７４は、ＡＴＭセルを光ファイバ等の物理回線に対応した信号に変換して送受信する。尚、可変長パケットを用いる場合においては、ＳＡＲは不要である。
【００３０】
図１は、トラヒックシェーピング部１００の構成を示すブロック図である。また、図４は、トラヒックシェーピング部１００の動作フロー図であり、図５はそのタイムチャートである。
【００３１】
本発明を適用したトラヒックシェーピング部１００は、以下に示す構成要素を備える。トラヒックシェーピング部は、セルをＶＣ毎のキューにキューイングするセルバッファ部１１０、ＶＣの契約帯域に従った送信予定時刻を計算するＶＣ送信予定時刻計算部１３０、同一ＶＰ内、同一サービスクラス内に属するＶＣの中で、最も優先して送信するＶＣを選び出すＶＣソーティング部１３５、ＶＰの契約帯域に従い、かつＶＣ送信予定時刻にも適合した送信予定時刻を計算するＶＰ送信予定時刻計算部１４０、全ＶＰの中で最も優先して送信するＶＰを選び出すＶＰソーティング部１４５、ＶＰソーティング部１４５およびＶＣソーティング部１３５のソーティング結果を用いて最終的なセル送信を決定してセルバッファ部１１０に伝える送信制御部１２０から構成される。
【００３２】
セルバッファ部１１０は、セルを一時的に蓄積しておくバッファであるセルバッファ１１１と、セルバッファ内でＶＣ毎にＡＴＭセルのキューイングを実現するためのセルバッファアドレスを記憶し、また、ＶＣ毎、およびＶＰ毎のキュー長の情報も記憶しておくバッファであるセルバッファアドレスメモリ１１２と、ＳＡＲ３５０から受信したセルをセルバッファに書込む制御回路であるセルバッファ書込み制御回路１１３と、セルバッファから光モジュールへ送信すべきセルを読み出すセルバッファ読出し制御回路１１４とから構成される。
【００３３】
ＶＣ送信予定時刻計算部１３０には、セル受信、またはセル送信が行われたＶＣの送信予定時刻を計算するＶＣ予定時刻計算回路１３１が含まれる（具体的な計算方法は後述）。
【００３４】
ＶＣソーティング部１３５は、セル受信、または送信が行われたＶＣが属するＶＰ、およびサービスクラス内で、最も優先して送信するＶＣを選び出すＶＣ二分木ソート回路１３６を有する。更に、ＶＣ二分木ソート回路がソーティングを行うのに必要な情報（ＶＣ識別番号、ＶＣ送信予定時刻、ＶＣのＶＬＤ（該ＶＣに送信待ちセルが存在するか否かを示すフラグ）（以下、この三つをまとめてＶＣソーティング情報と呼ぶ））が記憶されているＶＣソーティング情報メモリ１３７を有する。このＶＰソーティング情報は二分木で管理されており、そのメモリマップを図７に示す（詳細は後述）。
【００３５】
ＶＰ送信予定時刻計算部１４０は、セル受信、または送信が行われたＶＰの契約帯域に従った送信予定時刻を計算するＶＰ予定時刻計算回路１４１と、ＶＰ予定時刻計算回路で計算されたＶＰ送信予定時刻を、ＶＣの送信予定時刻に適合する値に修正するＶＰ時刻修正回路１４３から構成される（具体的な計算方法は後述）。
【００３６】
ＶＰソーティング部１４５は、全ＶＰの中で最も優先して送信するＶＰを選び出すＶＰ二分木ソート回路１４６を有する。更に、ＶＰ二分木ソート回路１４６がソーティングを行うのに必要な情報（ＶＰ識別番号、ＶＰ送信予定時刻、ＶＰのＶＬＤ（該ＶＰに送信待ちセルが存在するか否かを示すフラグ）（以下、この三つをまとめてＶＰソーティング情報と呼ぶ））が記憶されているＶＰソーティング情報メモリ１４７を有する。ＶＰソーティング情報も二分木で管理されており、そのメモリマップを図６に示す（詳細は後述）。
【００３７】
本発明を適用したトラヒックシェーピング部１００は、１セル処理時間に次に示す６つの処理を繰り返すことによって、１セル処理時間内に一つのセルを受信し、一つのセルを送信する。ここで、１セル処理時間とは、トラヒックシェーピング装置が１セル（５３バイト）送受信するために要する時間のことをいう。例えば、１５５．８８Ｍｂｐｓ（Bit Per Second）のシェーピング能力をもつトラヒックシェーピング装置では、１セル処理時間は２．７２μ秒となる。
【００３８】
（処理１）受信セル判定処理
（処理２）送信予定時刻計算（セル受信時）
（処理３）ソーティング処理（セル受信時）
（処理４）送信ＶＣ選択処理
（処理５）送信予定時刻計算（セル送信時）
（処理６）ソーティング処理（セル送信時）
以上６つの処理の内、（処理１）〜（処理３）はセル受信時の処理、（処理４）〜（処理６）はセル送信時の処理である。以下に、それぞれの処理を、図１、図４および図５を用いて詳細に説明する。また、以下では、複数のＶＰを識別するために、ＶＰ識別番号ｐを付して、ＶＰ(ｐ)と表記する。同様に、ＶＰ(ｐ)に属しているＶＣを識別するために、ＶＣ識別番号ｃを付して、ＶＣ(ｐ,ｃ)と表記する。
【００３９】
（処理１）受信セル判定処理
この処理は、図５の５００の時間に行われる処理である。尚、図５は、本発明を適用したトラヒックシェーピング部のタイムチャートを示す。
【００４０】
トラヒックシェーピング部１００に到着したセルは、ＶＣ毎のキューに一時的に蓄積される。具体的には、まず、セルバッファ書込み制御回路１１３は、受信したセルのヘッダ部に記述してあるＶＰを識別するＶＰＩ（Virtual Path Identifier）、およびＶＣを識別するＶＣＩ（Virtual Connection Identifier）を基に、該セルが属するＶＰ、あるいはＶＣを判別する。次に、トラヒックシューピング部は、受信セルをＶＣ毎のキューイングを行うために、未使用のセルバッファのアドレスをセルバッファアドレスメモリ１１２から読み出し、セルバッファ１１１内の該セルバッファアドレスが示す領域に受信セルを書込む（図４の４００、４０１）。前記セルバッファアドレスは受信セルが記録されたセルバッファアドレスとしてセルバッファアドレスメモリ１１２に記憶される。
【００４１】
以下では、該受信セルが属するＶＰをＶＰ(ｒ)、該受信セルが属するＶＣをＶＣ(ｒ,ｓ)とする。セルバッファ書込み制御回路１１３は、セルを受信すると、セルを受信したことを示すセル受信信号９９をＶＣ送信予定時刻計算部のＶＣ予定時刻計算回路１３１とＶＰ送信予定時刻計算部のＶＰ予定時刻計算回路１４１に通知する。セル受信信号９９と同時に、ＶＣ予定時刻計算回路１３１に向けてはＶＣ識別番号ｒ,ｓを、ＶＰ予定時刻計算回路１４１に向けてはＶＰ識別番号ｒを通知する。
【００４２】
（処理２）送信予定時刻計算（セル受信時）
この処理は、図５の５０２−１、５０２−２の時間に行われる処理である。セル受信信号９９を受けたＶＣ送信予定時刻計算回路１３１は、ＶＣ(ｒ,ｓ)のＶＣ送信予定時刻（単位は「１セル処理時間」）を計算する。計算結果は、ＶＣソーティング情報メモリ１３７に記憶される。セル受信信号９９を受けたＶＣ送信予定時刻計算回路１３１は、該ＶＣに送信待ちセルが存在するか否かを判定するために、ＶＣソーティング部１３５のＶＣソーティング情報メモリ１３７から読み出されたＶＣ(ｒ,ｓ)のＶＬＤが‘０’であるか‘１’であるかを調べる（図４の４０２）。ＶＬＤが‘１’であるときは、既に該ＶＣに送信待ちセルが存在していることを示しており、送信予定時刻を更新すると契約帯域を守ることができなくなるので、この場合は送信予定時刻を変更してはいけない。一方、ＶＬＤが‘０’であるときは、既に計算してあるＶＣ送信予定時刻が現在時刻を規準としたときに未来である場合には送信予定時刻を更新すると契約帯域が守れなくなるので、送信予定時刻を更新してはいけないが、既に計算してあるＶＣ送信予定時刻が現在時刻を規準として過去または現在時刻と同時刻である場合には、セルはいつでも送信してよい状態となっているので送信予定時刻を適当な時刻に更新してもよい。従って、ＶＬＤが‘０’であるときは、既に計算してあるＶＣ送信予定時刻をＶＣソーティング情報メモリ１３７から読み出し、該時刻が現在時刻を規準としたときに未来となっているか、過去あるいは現在時刻と同じになっているかを調べる（図４の４０４）。前者（未来）の場合にはＶＣ送信予定時刻を変更しない。後者（過去あるいは現在）の場合には、該ＶＣのセルを最も早く送信させるために（実際に送信するかは分からない）、
ＶＣ送信予定時刻＝現在時刻＋１
と更新する（図４の４０５）。以上のいずれの場合にも、セル受信信号９９を受けた場合には該ＶＣのＶＬＤ＝‘１’にセットする（図４の４０３）。
【００４３】
また、同様に、セル受信信号９９を受けたＶＰ送信予定時刻計算回路１４０は、ＶＰ送信予定時刻を計算する。ＶＰ送信予定時刻の計算は、ＶＣ送信予定時刻の計算と全く同じ手順で計算する。すなわち、ＶＰ(ｒ)のＶＬＤをチェックし、ＶＬＤが‘０’であり、かつ既に計算してあるＶＰ送信予定時刻が過去あるいは現在時刻と同時刻である場合にのみ、
ＶＰ送信予定時刻＝現在時刻＋１
と更新し、それ以外の場合には既に計算してあるＶＰ送信予定時刻を更新しない。
【００４４】
尚、ＶＰ送信予定時刻の計算は、ＶＣ送信予定時刻の計算と全く同じ手順で計算できるので、同一の回路で時系列に計算することもできるが、ここでは、ＶＣ送信予定時刻の計算とＶＰ送信予定時刻の計算は、それぞれ、互いに独立の回路であるＶＣ予定時刻計算回路とＶＰ予定時刻計算回路を用いることで、時間的に平行して計算できるようにし、その計算時間を短縮している。図４では、ＶＰ送信予定時刻計算回路での計算ステップは示されていない。ＶＰ送信予定時刻計算回路が、図４のステップ４０２からステップ４０５と並行してＶＰ送信予定時刻を計算する。
【００４５】
（処理３）ソーティング処理（セル受信時）
この処理は、次の三つの処理に分けることができる。
（処理３−１）ＶＣソーティング処理（セル受信時）
（処理３−２）ＶＰ送信予定時刻修正（セル受信時）
（処理３−３）ＶＰソーティング処理（セル受信時）
以下、順に説明する。
（処理３−１）ＶＣソーティング処理（セル受信時）
このＶＣソーティング処理は、図５で、時刻計算５０２の後の時間５０６に行われる処理である。ＶＣ(ｒ,ｓ)のＶＣ送信予定時刻が更新されると、ＶＰ(ｒ)の中で、かつＶＣ(ｒ,ｓ)が属するサービスクラスの中で最も早くセルを送信すべきＶＣ（以下、暫定送信ＶＣ）が変化している可能性があるので、ＶＣ二分木ソート回路１３６において暫定送信ＶＣを求めるためのソーティングを行う（図４の４０６）。
【００４６】
以下に、同一ＶＰ、同一サービスクラス内の暫定送信ＶＣを選び出す方法について説明する。簡単のために８つのＶＣ（ＶＣ(ｐ,０)〜ＶＣ(ｐ,７)）の中から選び出す例を、図９、図１０を用いて説明する。まず二分木の各要素に記憶されている情報の関係を説明する。以下では、図９において、二分木の頂点９００を根、底辺９３０〜９３７を葉、任意の要素からみて根側にある要素を親、葉側にある二つの要素を子と呼ぶ。二分木の葉９３０〜９３７（ＶＣ識別番号順に並べておく）には各ＶＣの送信予定時刻とＶＬＤ（括弧内の数値（０または１）がＶＬＤを示す）が記憶してある。葉を除く他の要素には、ＶＣ識別番号、送信予定時刻、ＶＬＤが記憶され、最終的に以下の条件を満たすＶＣの情報が根に記憶される。
【００４７】
（条件１）ＶＬＤが‘１’であること。（送信待ちセルがないＶＣよりも送信待ちセルがあるＶＣの方を優先して選択する）
（条件２）送信予定時刻が早いこと。（常時最優先で送信すべきＶＣを選択する）
根に記憶するＶＣとして上記（条件１）および（条件２）を満たすＶＣを選択するために、葉を除く他の要素は、以下の［１］〜［３］の規則に従って二つの子のいずれかの情報がそのまま記憶される。
【００４８】
［１］子のＶＬＤが共に‘１’のときは、上記（条件２）を満たすために、送信予定時刻がより過去である子を選択する。例えば二分木の要素９２０には、要素９３１の情報がそのまま記憶され、ＶＣ識別番号はＶＣ(ｐ,１)となる。時刻が同じ場合はどちらでもよい。
［２］一方の子のＶＬＤが‘１’、他方が‘０’のときは、上記（条件１）を満たすために、無条件にＶＬＤが‘１’である方を選択する。例えば二分木の要素９２２には、送信予定時刻は要素９３４の方が過去であるにも関わらず、要素９３５が選択され、その情報がそのまま記憶される。
［３］子のＶＬＤが共に‘０’のときは、上記（条件２）を満たすために、送信予定時刻がより過去である子を選択する。例えば二分木の要素９２１には、要素９３２の情報がそのまま記憶され、ＶＣ識別子はＶＣ(ｐ,２)となる。時刻が同じ場合はどちらでもよい。
【００４９】
この様な構造をもつ二分木が各ＶＰ毎に四つあり、ＣＢＲ、ＶＢＲ、ＡＢＲ、ＵＢＲに割り当てられている。例えばＣＢＲ用の二分木の根には、ＣＢＲの中で最も優先して送信すべきＶＣ（暫定送信ＶＣ）の識別番号、送信予定時刻、ＶＬＤが記憶されている。
【００５０】
以上の規則に従って、二分木が構成されているが、セルを受信したときには送信予定時刻やＶＬＤが変化するため、二分木の情報が変化し、暫定送信ＶＣが変化することが考えられる。しかし、ここで、二分木のすべての情報が更新される訳ではない。例えば図９において、ＶＣ(ｐ<４)（葉９３４に対応）のセルを受信し、該ＶＣの送信予定時刻、ＶＬＤが更新された場合を考えると、二分木の要素が更新されるのは、該ＶＣの情報が記憶してある要素９３４から根９００に向かう経路にある要素のみである。本例の場合は９２２、９１１、９００の要素の情報のみをこの順序で［１］〜［３］の規則に従って更新することで、最優先で送信すべきＶＣが二分木の根９００に記憶され、かつ上述の二分木の構造は保たれている（図１０）。
【００５１】
以上の手順で同一ＶＰ内、同一サービスクラス内の暫定送信ＶＣを選び出すことができる。尚、実際のＶＣソーティング情報メモリ１３７のアドレス割当て等に関しては後述とする。
【００５２】
（処理３−２）ＶＰ送信予定時刻修正（セル受信時）
次に、ＶＰ予定時刻計算回路１４１で計算されたＶＰ契約帯域に従ったＶＰ送信予定時刻を、ＶＰ時刻修正回路１４２においてＶＣ送信予定時刻に適合した値に修正する（図４の４０７）。この処理は、図５の５０７の時間に行われる処理である。
【００５３】
図８は、ＶＰ時刻修正回路１４２の詳細なブロック図を示す。ＶＰ予定時刻計算回路１４１で計算されたＶＰ送信予定時刻をそのまま用いてＶＰソーティングを行うと、ＶＰとしては送信可能な状態になっていても、該ＶＰ内で最優先で送信すべきＶＣですら送信可能な状態になっていないというケースが生じる。この場合、自ＶＰの帯域、他ＶＰの帯域共に最大限に帯域を利用することができないため、上記のＶＰ予定時刻修正処理が必要となる。具体的には、以下の処理を行う。尚、ＶＣ二分木ソート回路１３６によって選ばれたＶＰ(ｒ)の中のＣＢＲの暫定送信ＶＣをＶＣ(ｒ,ｃ)、ＶＢＲの暫定送信ＶＣをＶＣ(ｒ,ｖ)、ＡＢＲの暫定送信ＶＣをＶＣ(ｒ,ａ)、ＵＢＲの暫定送信ＶＣをＶＣ(ｒ,ｕ)とする。まず、図８の選択回路８１０が、ＶＣソーティング情報メモリ１３７から読み出されたＶＣ(ｒ,ｃ)、ＶＣ(ｒ,ｖ)、ＶＣ(ｒ,ａ)およびＶＣ(ｒ,ｕ)の送信予定時刻の中で、時間的に最も過去である時刻を暫定ＶＣ送信予定時刻とする計算を行う。但し、この時刻計算にはＶＬＤが‘０’であるＶＣは含めない。ＶＣ(ｒ,ｃ)、ＶＣ(ｒ,ｖ)、ＶＣ(ｒ,ａ)およびＶＣ(ｒ,ｕ)のＶＬＤがすべて‘０’である場合には、暫定ＶＣ送信予定時刻を現在時刻とする。この暫定ＶＣ送信予定時刻は、ＶＰ(ｒ)に属する複数のＶＣの中で最も早く送信することができる時刻を示している。換言すれば、現在時刻が暫定ＶＣ送信予定時刻に至れば、ＶＰ(ｒ)内の少なくとも一つのＶＣはセルを送信することができる（ＶＰ(ｒ)の契約帯域を守っているか否かは別問題）。次に、図８の選択回路８１１が、ＶＰ予定時刻計算回路１４１で計算された時刻と選択回路８１０で得られた暫定ＶＣ送信予定時刻を比較し、より未来の時刻を選択して、ＶＰ(ｒ)の送信予定時刻とする。これにより、選ばれたＶＰ(ｒ)の送信予定時刻は、ＶＰ(ｒ)としての契約帯域も守り、かつＶＰ(ｒ)内に一つ以上の送信可能なＶＣが存在するような最も早い時刻を示している。換言すれば、現在時刻がＶＰ(ｒ)の送信予定時刻に至れば、ＶＰ(ｒ)内の少なくとも一つのＶＣはセルを送信することができる（ＶＰ(ｒ)の契約帯域も守っている）。一方、図８のＯＲ回路８２０は、ＶＣソーティング情報メモリ１３７から得られるＶＣ(ｒ,ｃ)、ＶＣ(ｒ,ｖ)、ＶＣ(ｒ,ａ)およびＶＣ(ｒ,ｕ)のいずれかのＶＬＤが‘１’であれば、該ＶＰのＶＬＤを‘１’にセットする。
【００５４】
（処理３−３）ＶＰソーティング処理（セル受信時）
この処理は、図５の５０８の時間に行われる処理である。上述の様に、各ＶＰのＶＰソーティング情報も二分木によって管理している。ＶＣの場合と同様に、ＶＰ(ｒ)のＶＰ送信予定時刻が更新されると、最も早くセルを送信すべきＶＰ（以下、暫定送信ＶＰ）が変化している可能性があるので、ＶＰ二分木ソート回路１４６においてソーティングを行う（図４の４０８）。ＶＰ二分木ソート回路１４６の動作は、ＶＣ二分木ソート回路１３６の動作と同じであり、ＶＰ用二分木の根には、全ＶＰの中で最優先で送信すべきＶＰのＶＰ識別番号、送信予定時刻、ＶＬＤが記憶される。尚、実際のＶＰソーティング情報メモリ１４７のアドレス割当て等に関しては後述とする。
【００５５】
（処理４）送信ＶＣ選択処理
この処理は、図５の５０９の時間に行われる処理である。以下では、現在時刻とＶＣ送信予定時刻（あるいはＶＰ送信予定時刻）を比較した結果、現在時刻を基準としてＶＣ送信予定時刻（あるいはＶＰ送信予定時刻）が過去または現在時刻と同時刻であるとき、該ＶＣ（あるいはＶＰ）は送信可能状態と呼ぶことにする。ＶＰ二分木ソート回路１４６によって選ばれた暫定送信ＶＰをＶＰ(ｉ)、およびＶＰ(ｉ)の各サービスクラスの暫定送信ＶＣをＶＣ(ｉ,ｃ)、ＶＣ(ｉ,ｖ)、ＶＣ(ｉ,ａ)、およびＶＣ(ｉ,ｕ)とする。
【００５６】
送信制御回路（送信制御部）１２０は、常時ＶＰソーティング情報メモリ１４７の根に対応するアドレスから、ＶＬＤと送信予定時刻を読み出し、ＶＬＤ＝‘１’かつ送信予定時刻と現在時刻と比較してＶＰ(ｉ)が送信可能状態になったか否かを監視し、送信可能状態であるセルを送信するために、セルバッファ読出し制御回路１１４へ送信許可信号９５を送る。ＶＰ(ｉ)が送信可能状態でないときは、いかなるセルも送信しない。ＶＰ(ｉ)が送信可能状態であるとき、各サービスクラスの暫定送信ＶＣ、すなわちＶＣ(ｉ,ｃ)、ＶＣ(ｉ,ｖ)、ＶＣ(ｉ,ａ)、およびＶＣ(ｉ,ｕ)の間で送信順序に関するクラス間優先制御を行う（図４の４０９、４１０）。クラス間優先制御は、例えば完全優先制御（Head of Line）や、重み付き順廻優先制御（Weighted Round Robin）等がある。完全優先制御とは、上位のクラスが完全に優先される優先制御の方法で、上位クラス（ＣＢＲ＞ＶＢＲ＞ＡＢＲ＞ＵＢＲ）に送信待ちセルが存在していると、下位クラスのセルは送信されない。この場合、最上位クラスに属するＶＣのセルは最も小さい遅延で転送されるが、下位クラスのセルは、上位クラスのセルがなくなるまで送信されない。また、重み付き順廻優先制御とは、下位クラスにも一定の帯域を割当てる。例えば「上位クラス：下位クラス」のセル送信の比率（＝送信帯域の比率）を２：１、あるいは４：１等に制御することができる。いずれの優先制御の場合も、ＶＣ(ｉ,ｃ)、ＶＣ(ｉ,ｖ)、ＶＣ(ｉ,ａ)、およびＶＣ(ｉ,ｕ)のＶＬＤが‘０’であるＶＣ、および送信可能状態になっていない（現在時刻を規準として送信予定時刻が未来にある）ＶＣは、最終的に選ばれても送信するセルがないので、最も低優先度として扱う。ＶＣ(ｉ,ｃ)、ＶＣ(ｉ,ｖ)、ＶＣ(ｉ,ａ)、およびＶＣ(ｉ,ｕ)の中でクラス間優先制御を行った結果選ばれたＶＣをＶＣ(ｉ,ｊ)とし、ＶＣ(ｉ,ｊ)のセルを送信する。
【００５７】
具体的には、送信許可信号９５がセルバッファ読出し制御回路１１４に送られる。送信許可信号９５を受けたセルバッファ読出し制御回路１１４は、セルバッファアドレスメモリ１１２から読み出したセルバッファアドレスを用いて、セルバッファか１１０からセルを読み出す。そして、セルバッファ読出し制御回路１１４は、回線インタフェース部３２４にセルを送信する（図４の４１１）。セルを送信したＶＰ(ｉ)、ＶＣ(ｉ,ｊ)の次のセル送信予定時刻を修正するために、送信制御回路（送信制御部）１２０は、セル送信信号９８をＶＣ送信時刻計算回路１３０とＶＰ送信時刻計算回路１４０に通知する。また、送信制御回路１２０は、セル送信信号９８と同時に、ＶＣ予定時刻計算回路１３１に向けてはＶＣ識別番号ｉ,ｊを、ＶＰ予定時刻計算回路１４１に向けてはＶＰ識別番号ｉを通知する。
【００５８】
（処理５）送信予定時刻計算（セル送信時）
この処理は、図５の５１２−１、５１２−２の時間に行われる処理である。セル送信信号９８を受けたＶＣ送信時刻計算回路１３０およびＶＰ送信時刻計算回路１４０は、契約帯域に従った次のセル送信予定時刻を計算する（図４の４１２）。
【００５９】
次のセル送信予定時刻の計算は、例えばリーキーバケット方式を用いて行う。リーキーバケット方式に関しては、例えば“The ATM Forum TM4.0  Normative Annex C： Traffic Contract Related Algorithms and Procedures (P.71)”（従来技術３）に述べられている。
【００６０】
あるいは、他のセル送信予定時刻の計算方法として、契約帯域に対応する送信間隔値を記憶しておき、以下の計算を行ってもよい。
次のセル送信予定時刻＝今回のセル送信予定時刻＋送信間隔値
ＶＣ(ｉ,ｊ)のセルを送信しても、まだＶＣ毎のキューにセルが残っている（送信待ちセルがある）場合に次の送信予定時刻を計算するのは当然であるが、セルを送信することによってＶＣ毎のキューが空になった（送信待ちセルがない）場合にも次の送信予定時刻を計算する。これは、例えば次のセル受信タイミングでＶＣ(ｉ,ｊ)のセルを受信した場合にも契約帯域を守ってセルを送信するために必要である。尚、ＵＢＲクラスのＶＣで送信帯域に関する契約を行わない場合には、いつでもセルを送信することができるようにするために、
次のセル送信予定時刻＝今回のセル送信予定時刻＋１
とすればよい。
また、ＶＬＤは、ＶＣ毎のキューにセルが残っている場合には‘１’とし、ＶＣ毎のキューが空になった場合には‘０’とする。
以上の送信予定時刻の計算は、ＶＰに対しても全く同様である。
【００６１】
（処理６）ソーティング処理（セル送信時）
（処理６−１）ＶＣソーティング処理（セル送信時）
（処理６−２）ＶＰ送信予定時刻修正（セル送信時）
（処理６−３）ＶＰソーティング処理（セル送信時）
この処理は、図５の５１３〜５１５の時間に行われる処理である。ソーティングの詳細は、セル受信時と全く同様である。セル送信予定時刻を修正した場合には、暫定送信ＶＣ、および暫定送信ＶＰが変化している可能性があるので、ＶＣ二分木ソート回路１３６、およびＶＰ二分木ソート回路１４６においてソーティングを行う（図４の４１３〜４１５）。
【００６２】
以上の（処理１）〜（処理６）の処理が１セル処理時間内に行われ、再び（処理１）の処理から繰り返す。
【００６３】
次に、ＶＰソーティング情報メモリ１４７のＶＰソーティング情報、ＶＣソーティング情報メモリ１３７のＶＣソーティング情報の管理方法について、図６、および図７を用いて説明する。以下では、サポートできるＶＰ数をＭ（＝２のｍ乗）、各ＶＰ内に束ねているＶＣ数をＮ（＝２のｎ乗）とする。
【００６４】
図６は、ＶＰソーティング情報メモリ１４７の記憶書式およびＶＰ用二分木との関係を示す。ＶＰ用二分木の各要素と、ＶＰソーティング情報メモリ１４７のアドレスの関係は、以下に示す通りである。以下では、アドレスは２進数（ｍ＋１ビット）で示すこととする。
【００６５】
［１］二分木の根に対応するアドレスは、０００…００１番地である。
［２］アドレス：ｘｙｙ…ｙｙｚ番地の要素の親のアドレスは０ｘｙ…ｙｙｙ番地であり、二つの子のアドレスはｙｙｙ…ｙｚ０番地とｙｙｙ…ｙｚ１番地である。
【００６６】
上記［１］［２］の規則に従って情報を記憶していくと、二分木の葉に対応するアドレスは、１００…０００番地から１１１…１１１番地（全部で２のｍ乗＝Ｍ個）に記憶される。以上の規則でメモリのアドレスを管理していると、ソーティング時に行うメモリアクセスのためのアドレス生成回路を簡単に構成することができる。すなわち、ｘｙｙ…ｙｙｚ番地の比較相手はｘｙｙ…ｙｙ(ｚ)番地に記憶してある情報（(ｚ)はｚの‘０’←→‘１’反転を示す）であり、その比較結果を書込むのは０ｘｙ…ｙｙｙ番地である。
【００６７】
従って、Ｍ個の要素のソーティングを、ｍ回のシフト演算とｍ回の反転演算で行うことができる。例として、８ＶＰ（ｍ＝３）の場合のＶＰソーティング情報メモリ１４７のメモリマップを図６に示す。前述の様に、ＶＰソーティング情報メモリ１４７には、ＶＰ識別番号６００、ＶＰ送信予定時刻６０１、およびＶＰのＶＬＤ６０２が記憶されている。
【００６８】
以上、図６を用いて、ＶＰソーティング情報の管理方法について説明したが、ＶＣソーティング情報の管理も、全く同様に行うことができる。図７は、２ＶＰ（ｍ＝１）内で四つのサービスクラスをサポートする場合のＶＣソーティング情報メモリ１３７のメモリマップを示す。ＶＣソーティング情報メモリ１３７は、ＶＰソーティング情報メモリ１４７と全く同じ方法で記憶するが、各ＶＰ、各サービスクラス毎に一つのＶＣが選び出された時点でソーティングを終了する点のみが異なっている（本例では８個のＶＣが選ばれた時点でソーティング終了）。
【００６９】
上述の実施例では、自ＶＰの契約帯域、回線の帯域を最大限に利用するために、ＶＰ送信予定時刻にＶＣ送信予定時刻の情報を反映させたが（ＶＰ時刻修正回路１４３の動作による）、ＶＰ送信予定時刻とＶＣ送信予定時刻を全く独立に計算することもできる。この場合、前述の様に、現在時刻がＶＰ送信予定時刻には達しているが、ＶＣ送信予定時刻には達していない場合に、自ＶＰの送信タイミングをスキップすることが考えられる（現在時刻がＶＣ送信予定時刻に達するまで待つことは大幅に回線帯域の利用率が低下する）。これにより、自ＶＰの送信帯域が若干低下するが、図１１のタイムチャートに示す様に、ＶＣソーティングとＶＰソーティングを並行して行うことができるため、ソーティングに要する処理時間を大幅に低減させることができる。サポートしているＶＰ数（＝Ｍ）、各ＶＰ内に束ねられているＶＣ数（＝Ｎ）がほぼ等しいときは、ソーティングに要する時間を最大で１／２にまで低減させることができる。
【００７０】
また、上述の実施例では、本発明のトラヒックシェーピング装置をＡＴＭ送信端末に適用した例を示したが、先に述べた様に、トラヒックシェーピング装置はＡＴＭ送信端末の他にも、私設網から公衆網への中継点等の網内の要所に設置することがある。
【００７１】
図１２は、本発明のトラヒックシェーピング装置を公衆ＡＴＭ網３４０に接続されているＡＴＭ交換機３０１に適用した構成図を示す。ＡＴＭ交換機３０１は、ＡＴＭ端末３３０、３３１に対する回線インターフェース部３２０、３２１、スイッチ部３１０、公衆ＡＴＭ網３４０に対する回線インタフェース部３２５、および公衆ＡＴＭ網に対応したトラヒックシェーピング部１００、および、光モジュール３７５により構成される。
【００７２】
本発明の他の実施例として、複数回線のトラヒックシェーピングを一つのトラヒックシェーピング装置で行うトランク方式のトラヒックシェーピング装置について説明する（実施例２）。
【００７３】
図１３は、トランク方式のトラヒックシェーピング装置としてＡＴＭ交換機を構成した例を示している。端末３３２、３３３で生成されたセル流は、ＡＴＭ交換機３０２の回線インタフェース部３２２、３２３を介してスイッチ部３１１に入力される。スイッチ部３１１でいずれの出力先回線が決定された場合でも、セルは一時的にトラヒックシェーピング部１０１に転送される。トラヒックシェーピング部１０１では、実施例１のＶＰソーティングを回線ソーティングと考え、全く同じ動作を行う。トラヒックシェーピング部１０１の出力セルは、再びスイッチ部３１１を介して、各出力回線の回線インタフェース部３２６、３２７から公衆ＡＴＭ網３４０に送信される。トラヒックシェーピング部１０１から出力されたセルがスイッチのセルバッファに蓄積されると、行ったトラヒックシェーピングが無意味なものとなってしまうために、トラヒックシェーピング部１０１から送信されたセルは最優先で網まで転送されなければならない。
【００７４】
また、実施例１と実施例２のシェーピング装置を組み合わせた実施例として、トランク方式を用いたＶＰシェーピング装置を構成することができる（実施例３）。構造は図１３のシェーピング装置と全く同じであるが、トラヒックシェーピング部１０１では、ＶＣ単位のシェーピング、ＶＰ単位のシェーピング、回線単位のシェーピングの３段階にトラヒックシェーピングを行う。ＶＣ単位、ＶＰ単位、回線単位のそれぞれに送信予定時刻計算回路とソーティング回路を備え、すべてが送信可能状態となった場合にセルを送信する。実施例２と同様に、トラヒックシェーピング部１０１の送信セルは最優先で公衆ＡＴＭ網３４０に転送されなければならない。
【００７５】
以上はＡＴＭ網に対する本発明の実施例を示したが、本発明はＡＴＭに特化した発明ではなく、可変長のパケットに対しても同様にトラヒックシェーピングを行うことができる。次にＩＰパケットに対するトラヒックシェーピング装置について説明する（実施例４）。
【００７６】
図１５は、ルータの構成の一例を示す図である。ルータ１５００は、パケット転送網１（１５５０）、パケット転送網２（１５５１）に対応したネットワークインタフェース部１５２０、１５３０と、ＩＰパケットのヘッダを参照して行き先を判別し、行き先毎のネットワークインタフェース部に送るルーティング部１５１０から構成される。更に、ネットワークインタフェース部１５２０、１５３０は、トラヒックシェーピング部１４００と、パケットを光ファイバ等の物理回線に対応した信号に変換して送信する光モジュール１５２２から構成される。その逆変換も光モジュールで行われる。
【００７７】
図１４は、ＩＰパケットに対する図１５のトラヒックシェーピング部１４００の構成を示すブロック図である。本発明を適用したＩＰパケット対応トラヒックシェーピング部１４００は、図１に示したトラヒックシェーピング装置１００のＡＴＭセルに対する処理をＩＰパケットに対する処理に変換した点、およびパケット読出制御回路１４１３がパケットバッファからＩＰパケットを読み出した際に、ＩＰパケットヘッダに記述されているＩＰパケット長情報を識別するパケットパケット長識別回路１４９９を追加した点のみが異なる構成となっている。この識別されたパケット長は、第１送信予定時刻計算部１４３０の優先度予定時刻計算回路１４３１と、契約送信予定時刻計算部１４４０の契約予定時刻計算回路１４４１で、送信予定時刻を計算する際に使用される。
【００７８】
図１６は、ＩＰパケットに対するトラヒックシェーピング部１４００の帯域制御の概念を示している。受信したＩＰパケットは、優先度制御回路１５２１０において転送先毎、パケットの優先度毎のキューに振り分けられ、パケットバッファ１５２１１内にキューイングされる。パケット送信時には、第１の読み出し回路１５２１３が送信してもよい状態にある転送先を選び（図１６において複数の転送先候補から一つの転送先を選ぶ）、選ばれた転送先に対応する第２の読み出し回路１５２１２では、パケット毎の送信順序に関する優先制御を行い、優先度の高いＩＰパケットをパケットバッファから読み出し、光モジュール１５２２へ転送する。このようにすることで、送信可能状態となっている転送先の中で、パケット毎の優先度が高いパケットから順に送信される。図１６の各回路を図１４の回路と対応させると、図１６の優先度制御回路１５２１０は図１４のパケットバッファ書込み回路１４１３として、図１６の第２の読み出し回路１５２１２は図１４の第１ソーティング部１４３５として、また図１６の第１の読み出し回路１５２１３は図１４の契約ソーティング部１４４５として、それぞれ実現することができる。
【００７９】
ＩＰパケットの送受信を行うために、ＡＴＭセルと同様に次の（処理１）〜（処理６）の処理を行う。
【００８０】
（処理１）受信パケット判定処理
（処理２）送信予定時刻計算（パケット受信時）
（処理３）ソーティング処理（パケット受信時）
（処理４）送信パケット選択処理
（処理５）送信予定時刻計算（パケット送信時）
（処理６）ソーティング処理（パケット送信時）
以上の処理の（処理２）〜（処理４）、および（処理６）はＡＴＭセル（固定長）に対する処理と同じである。以下に、（処理１）受信パケット判定処理、および（処理５）送信予定時刻計算について説明する。
【００８１】
（処理１）受信パケット判定処理
上述のＡＴＭセルの場合は、各セルのヘッダ部にＶＰＩ（Virtual Path Identifier）、およびＶＣＩ（Virtual Connection Identifier）が記述してあるので、これらを基に該セルが属するＶＰ、あるいはＶＣを判別する事ができた。一方、ＩＰパケットの場合は、ユーザが網との間に契約を行っている単位（ＶＰに相当）は、ＩＰパケットヘッダに記述されている送信元アドレス、宛先アドレスから、対応付けることができる。また、パケットの優先度は（ＶＣに相当）、同じくＩＰパケットヘッダ内のＴＯＳ（Type of Service）フィールド（０〜２ビット目）に記述されている。
【００８２】
本発明を適用したトラヒックシェーピング装置においては、パケットバッファ書込み回路１４１３で、受信したＩＰパケットのヘッダを参照し、該受信パケットの、転送先、優先度を決定し、パケットバッファ１４１１内に転送先毎、かつ優先度毎に設けられたキューにキューイングされる。
【００８３】
（処理５）送信予定時刻計算（パケット送信時）
パケット送信信号９３を受けた優先度予定時刻計算回路１４３１および契約予定時刻計算回路１４４１では、ＡＴＭセルの場合と同様に契約帯域に従った次のパケット送信予定時刻を計算する。このとき、ＡＴＭセルの場合とは異なり、パケット長が可変であるので、固定値の送信間隔を用いることができない。
【００８４】
図１７は、固定値の送信間隔を用いたときに、（１）パケット長が短いパケット１７００、１７０１、１７０２を連続して送信した場合と、（２）パケット長が長いパケット１７１０、１７１１、１７１２を連続して送信した場合の送信間隔を示している。（１）の場合と（２）の場合を比較すると、（２）の場合の方が送信バイト数が多くなることが分かる。従って、可変長パケットに対するトラヒックシェーピングを行う場合、パケット長に応じて送信間隔を可変にする処理が必要となる。
【００８５】
本発明においては、パケット長を識別するパケット長識別回路１４９９を備え、パケットバッファ読出し回路１４１４がパケットバッファ１４１１からＩＰパケットを読み出したときに、ＩＰパケットヘッダに記述されているパケット長情報を参照する。参照したパケット長情報９１は、優先度予定時刻計算回路１４３１および契約予定時刻計算回路１４４１に伝えられる。パケット長情報９１を受けた優先度予定時刻計算回路１４３１および契約予定時刻計算回路１４４１では、例えば以下の計算を行い、予定送信時刻計算に用いる送信間隔を決定する。
0003711752.tif 000002
ここで、ＩＰパケット長はバイト単位で表している。
この様に５３バイトで正規化することで、パケット長が短いＩＰパケットを送信した場合には次のパケット送信までの時間は短く、パケット長が長いＩＰパケットを送信した場合には次のパケット送信までの時間を長く空けることができる。従って、パケット長に関係なく契約帯域に従ったパケット送信間隔を短くすることができ、かつ契約帯域内で効率的な転送が可能となる。
【００８６】
尚、以上の例では、ＩＰパケットの優先度に基づいて契約帯域内を優先制御していたが、前記ＴＯＳフィールドの低遅延要求（３ビット目）、高スループット要求（４ビット目）、高信頼性情報（５ビット目）等の情報を用いてもよい。
【００８７】
【発明の効果】
以上に述べた様に、本発明によれば、公衆ＡＴＭ網とＶＰ単位で契約した場合に、ＶＰの契約帯域を守りつつ、該ＶＰの帯域を有効に利用することができ、かつ同一ＶＰ内の複数のＶＣ間で優先制御を行うことができるトラヒックシェーピング装置を提供することができる。また、一つのトラヒックシェーピング装置で複数の出力回線のシェーピングを行うことができるトラヒックシェーピング装置を提供することができる。更に、本発明はＡＴＭに特化した発明ではなく、可変長パケットに対するトラヒックシェーピングも行うことができる。
【図面の簡単な説明】
【図１】本発明を適用したトラヒックシェーピング装置の一実施例の構成を示すブロック図である。
【図２】回線とＶＰとＶＣの概念を示す図である。
【図３】本発明を適用したトラヒックシェーピング装置をＶＰシェーピング装置としてＡＴＭ送信端末に適用した場合の構成を示す図である。
【図４】本発明を適用したトラヒックシェーピング部のセル受信・送信動作のフロー図である。
【図５】本発明を適用したトラヒックシェーピング部のタイムチャートである。
【図６】ＶＰソーティング情報メモリ１４７の記憶書式およびＶＰ用二分木との関係を示す図である。
【図７】ＶＣソーティング情報メモリ１３７の記憶書式およびＶＣ用二分木との関係を示す図である。
【図８】ＶＰ時刻修正回路１４２の構造を示す詳細なブロック図である。
【図９】ＶＣ用の二分木の各要素に記憶されている情報の関係を示す図である。
【図１０】ＶＣ用の二分木の各要素に記憶されている情報の関係を示す図である。
【図１１】一組の送信予定時刻計算回路およびソーティング回路を時分割で利用した場合のトラヒックシェーピング部のタイムチャートである。
【図１２】本発明を適用したトラヒックシェーピング装置をＶＰシェーピング装置としてＡＴＭ交換機に適用した場合の構成を示す図である。
【図１３】本発明を適用したトラヒックシェーピング装置をトランク方式のシェーピング装置としてＡＴＭ交換機に適用した場合の装置の構成を示す図である。
【図１４】本発明を適用したＩＰパケット用トラヒックシェーピング装置の一実施例の構成を示すブロック図である。
【図１５】ルータの構成の一例を示すブロック図である。
【図１６】ＩＰパケット用トラヒックシェーピング部の帯域制御の概念を示す図である。
【図１７】パケット長と送信間隔の関係を示す図である。
【図１８】本発明の実施例４で示す網構成を示す図である。
【図１９】ＶＰ単位の契約を行っている場合の網構成を示す図である。
【符号の説明】
１００、１０１：トラヒックシェーピング部、１１０：セルバッファ部、１２０：送信制御部、１３０：ＶＣ送信予定時刻計算部、１３５：ＶＣソーティング部、１４０：ＶＰ送信予定時刻計算部、１４２：ＶＰ時刻修正回路、１４５：ＶＰソーティング部、３００：ＡＴＭ送信端末、３０１、３０２：ＡＴＭ交換機、３１０、３１１：スイッチ部、３２０〜３２６：回線インタフェース部、３３０〜３３３ＡＴＭ端末、３４０：公衆ＡＴＭ網、３５０：ＳＡＲ（上位パケット・ＡＴＭセル変換回路）、３６０：上位層処理部、１４００：ＩＰパケット対応トラヒックシェーピング装置、１４９９：パケット長識別回路。
【図１】
0003711752.tif 000003
【図２】
0003711752.tif 000004
【図３】
0003711752.tif 000005
【図４】
0003711752.tif 000006
【図５】
0003711752.tif 000007
【図６】
0003711752.tif 000008
【図７】
0003711752.tif 000009
【図８】
0003711752.tif 000010
【図９】
0003711752.tif 000011
【図１０】
0003711752.tif 000012
【図１１】
0003711752.tif 000013
【図１２】
0003711752.tif 000014
【図１３】
0003711752.tif 000015
【図１４】
0003711752.tif 000016
【図１５】
0003711752.tif 000017
【図１６】
0003711752.tif 000018
【図１７】
0003711752.tif 000019
【図１８】
0003711752.tif 000020
【図１９】
0003711752.tif 000021