(57)【特許請求の範囲】
【請求項１】
複数の入力回線と複数の出力回線に接続され、上記各入力回線から受信されたセルを各セルのヘッダに含まれるコネクション識別情報によって特定される上記複数の出力回線のうちの１つに送出するＡＴＭ(Asynchronous Transfer Mode)通信装置において、
上記各入力回線から受信されたセルを一時的に蓄積するためのバッファメモリと、
上記バッファメモリ内の蓄積セルが出力回線別にコネクション対応のセルキューを形成するように、上記各入力回線から受信されたセルを上記バッファメモリ内に書き込むための書き込み制御装置と、
上記バッファメモリに形成された各セルキューから、コネクション毎に予め決められた最低帯域を保証し、予め決められた最大帯域を超えない範囲でセルを読み出すための読み出し制御装置と、
蓄積セル量が予め設定された閾値を超えたセルキューからの読み出しセルに輻輳表示を付すための手段とを有し、
上記読み出し制御装置が、
上記出力回線毎に、該出力回線に多重化された複数のコネクションについて、各々の最低帯域を保証して割り当てられた一定期間内のタイムスロット情報を記憶した保証帯域テーブルと、
上記出力回線毎に、多重化された各コネクションに許容される一定期間内の空きタイムスロットの割り当て範囲を示す情報を記憶した共有帯域テーブルと、
各タイムスロットで、上記保証帯域テーブルに従ってセルを読み出すべきコネクションを特定し、上記保証帯域テーブルで指定されたコネクションのセルキューに送出すべきセルがないために空き状態となったタイムスロットと、上記保証帯域テーブルでコネクションが指定されていない空きタイムスロットでは、上記共有帯域テーブルを参照してセルを読み出すべきコネクションを決定するコネクション決定手段とを有することを特徴とするＡＴＭ通信装置。
【請求項２】
請求項１に記載のＡＴＭ通信システムにおいて、更に、
前記出力回線毎に、多重化されたコネクション毎の蓄積セルの有無をフラグビットで表示したフラグテーブルを有し、
前記共有帯域テーブルが、前記情報として、多重化されたコネクション毎に空きタイムスロットの割り当て個数を示すフラグビット列を記憶しており、
前記コネクション決定手段が、上記フラグテーブルが示すコネクション順に配列されたフラグビット群と、上記共有帯域テーブルから抽出されたコネクション順に配列されたフラグビット群との演算結果に基づいて、セルを読み出すべきコネクションを決定することを特徴とするＡＴＭ通信装置。
【請求項３】
前記コネクション決定手段が、同一コネクションへの連続的な空きタイムスロット割り当てを回避するための手段を備えることを特徴とする請求項２に記載のＡＴＭ通信装置。
【請求項４】
前記書き込み制御装置が、前記バッファメモリへの書き込みが不可能となった受信セルと、該受信セルと同一コネクションに属した後続の受信セルを選択的に廃棄するための手段を備えたことを特徴とする請求項１〜請求項３の何れかに記載のＡＴＭ通信装置。
【請求項５】
前記書き込み制御装置が、前記バッファメモリへの書き込みが不可能となった受信セルと、該受信セルと同一コネクションに属した既に蓄積済みのセルと、該受信セルと同一コネクションに属した後続の受信セルを選択的に廃棄するための手段を備えたことを特徴とする請求項１〜請求項３の何れかに記載のＡＴＭ通信装置。
【請求項６】
前記セル廃棄手段が、前記バッファメモリへの書き込みが不可能となった受信セルと同一のパケットに属したセルを選択的に廃棄することを特徴とする請求項１〜請求項４の何れかに記載のＡＴＭ通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＡＴＭ(Asynchronous Transfer Mode)通信装置およびＡＴＭセル転送制御方法に関し、更に詳しくは、ＡＴＭ網内での輻輳発生を回避するための機能を備えたＡＴＭ通信装置および輻輳発生を回避するためのＡＴＭセル転送制御方法に関する。
【０００２】
【従来の技術】
近年のパーソナルコンピュータの普及と、インターネットの利用拡大に伴い、アクセス網では、音声、画像の他に、バースト性をもったデータ系トラヒックが増加している。アクセス網における今後の動向を考慮に入れて、ＡＴＭフォーラムおよびＩＴＵ(International Telecommunication Union)では、トラフィックの集中するアクセス網内で起り得る輻輳状態からの回避制御とトラヒックの効率的な収容を目的としたサービスクラスとして、ＡＢＲ(Available Bit Rate)とＧＦＲ(Guaranteed Frame Rate)とが提案されている。
【０００３】
ＡＢＲでは、各ユーザー端末が、セル送出レートの上限をＰＣＲ（Peak Cell Rate）、下限をＭＣＲ（Minimum Cell Rate）として、ネットワークの状態に応じて、その時々に利用できる帯域ＡＣＲ（Allowed Cell Rate ）を決定している。データ送信側の端末は、データセル列に所定周期（または使用帯域に応じた所定の頻度）で挿入したＲＭセルによって、自分が利用可能な帯域ＡＣＲを探索する。各ＲＭセルには、明示的セルレート（ＥＲ：Explicit Cell Rate）として、送信側端末がもつＰＣＲの値が設定されている。ＡＢＲコネクション上の各ノードは、受信したＲＭセルのＥＲフィールドの値を自分がサポート可能なセルレートに下方修正することができる。また、輻輳が発生したノードでは、通過するデータセルの輻輳表示（ＥＦＣＩ）ビットを“１”に設定することによって、データ受信側の端末に輻輳の発生を通知することができる。
【０００４】
受信側の端末は、ＲＭセルを受信すると、これを送信側端末に折り返す。もし、データセルの輻輳表示（ＥＦＣＩ）ビットによって、ネットワーク内での輻輳の発生を通知されていた場合は、送信側端末に折り返すＲＭセルの輻輳表示（ＣＩ）ビットを“１”に書き変える。送信側端末は、戻ってきたＲＭセルの内容に特別な変更がなければ、利用可能帯域ＡＣＲの値を所定のレートで増加することによって、送信セル量を漸次ＰＣＲに近づけていく。逆に、 受信したＲＭセルの輻輳表示（ＣＩ）ビットが“１”になっていた場合は、ＡＣＲを所定レート（１／ＲＤＦ：Rate Decrease Factor）で低下させ、もし、自分が設定したＥＲの値が低い値に書き換えられていた場合は、利用可能帯域ＡＣＲを上記ＥＲで指定された値にまで下げることによって、輻輳状態からの脱却を図る。
【０００５】
一方、ＧＦＲでは、トラヒックを効率的に収容するために、各コネクションに最低帯域を保証し、もし、伝送路に未使用の帯域が存在していた場合は、該伝送路に多重化された複数のコネクション間で未使用帯域を公平に分配することを可能としている。また、ＧＦＲでは、輻輳時にＡＴＭセルが廃棄された場合、ＴＣＰ／ＩＰ(Transmission Control Protocol / Internet Protocol)など、端末間通信における上位レイヤによるデータ再送機能を期待して、セル廃棄をパケット単位で行うことが提案されている。
【０００６】
【発明が解決しようとする課題】
上述したＧＦＲでは、各コネクションの最大帯域の範囲内で伝送路の未使用帯域を有効に利用した通信が可能となる。しかしながら、ＧＦＲでは、各コネクションの伝送レートが伝送路上のトラフィック量に依存しており、トラフィックが増加して未使用帯域が少なくなると、各コネクションの転送レートが最低帯域近くにまで低下するという問題がある。このため、例えば、送信側端末が最大帯域に近いレートでＡＴＭセルを送出した場合、伝送路が空いていれば、未使用帯域を有効に利用した高速度のデータ転送が可能となるが、トラフィック量が増加して各コネクションに割り当て可能な転送レートが低下すると、ＡＴＭノード内に蓄積されるセル量が増加し、輻輳状態に陥るコネクションが発生する。
【０００７】
従来のＧＦＲでは、輻輳が発生した場合、セル廃棄によって無効となったパケットを送信側端末からの再送によって回復すると言う消極的な対策をとっており、輻輳の発生を未然に防止するためのトラフィック量に応じた端末送信セル量の制御は行われていない。
【０００８】
また、ＡＢＲでは、送信側端末による使用帯域ＡＣＲ（送信セル量）の制御は、送信側端末から送出したＲＭセルが受信側端末で折り返され、送信側に戻ってきた時点で行われているため、トラフィックの状態変化に応じた迅速な帯域制御を行うことができず、伝送路の空き帯域を常時有効利用することができない。
【０００９】
本発明の目的は、各コネクションに最低帯域を保証し、トラフィックの変動に応じて各コネクションに空き帯域を割り当て、輻輳の発生の未然に防止できるようにしたＡＴＭ通信装置を提供することにある。
本発明の他の目的は、コネクション毎の伝送帯域を予め決められた帯域範囲内で動的に制御し、ＡＴＭ網における各伝送路の帯域を有効利用できるようにしたＡＴＭセル転送制御方法を提供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、本発明では、複数の入力回線と複数の出力回線に接続され、上記各入力回線から受信されたセルを各セルのヘッダに含まれるコネクション識別情報によって特定される上記複数の出力回線のうちの１つに送出するＡＴＭ通信装置において、（ａ）上記各入力回線から受信されたセルを一時的に蓄積するためのバッファメモリと、（ｂ）上記バッファメモリ内の蓄積セルが出力回線別にコネクション対応のセルキューを形成するように、上記各入力回線から受信されたセルを上記バッファメモリ内に書き込むための書き込み制御装置と、（ｃ）上記バッファメモリに形成された各セルキューから、コネクション毎に予め決められた最低帯域を保証し、予め決められた最大帯域を超えない範囲でセルを読み出すための読み出し制御装置と、（ｄ）蓄積セル量が予め設定された閾値を超えたセルキューからの読み出しセルに輻輳表示を付すための手段とを有することを特徴とする。
【００１１】
上記読み出し制御装置は、例えば、（ｃ１）各出力回線毎に、該出力回線に多重化された複数のコネクションに各々の最低帯域を保証してタイムスロットを割り当てるための情報を記憶した保証帯域テーブルと、（ｃ２）各出力回線毎に、多重化された各コネクションに許容される空きタイムスロットの割り当て範囲を示す情報を記憶した共有帯域テーブルと、（ｃ３）上記保証帯域テーブルで指定されたコネクションのセルキューに送出すべきセルがないために空き状態となったタイムスロットと、上記保証帯域テーブルでコネクションが指定されていない空きタイムスロットとにおいて、上記共有帯域テーブルを参照してセルを読み出すべきコネクションを決定するための手段とを有することを特徴とする。
【００１２】
また、本発明は、それぞれ複数の入力回線と複数の出力回線とに接続され複数のノードからなるＡＴＭ網におけるＡＴＭセル転送制御方法において、
上記何れかのノードで、蓄積セルが出力回線別にコネクション対応のセルキューを形成するように、上記各入力回線から受信されたＡＴＭセルをバッファメモリに書き込むステップと、
上記ＡＴＭノードで、上記バッファメモリに形成された各セルキューから、コネクション毎に予め決められた最低帯域を保証し、予め決められた最大帯域を超えない範囲に帯域制御しながらＡＴＭセルを読み出し、蓄積セル量が予め設定された閾値を超えたセルキューからの読み出しセルには輻輳表示を付した上で、コネクションと対応した出力回線にＡＴＭセルを送出するステップとを含むことを特徴とする。
【００１３】
本発明によれば、ＡＴＭノードが実際に輻輳状態となる前に、セルキューからの読み出しセルには輻輳表示を付し、上記輻輳表示が付されたＡＴＭセルの宛先端末装置で、受信ＡＴＭセルの送信元端末装置に対して、輻輳が発生したことを示す制御セル（ＲＭセル）を送信し、上記制御セルを受信した送信元端末装置で、ＡＴＭセルの送出量を抑制することによって、ＡＴＭノードでの輻輳の発生を未然に防止できる。
【００１４】
【発明の実施の形態】
以下、本発明の実施例を図面を参照して説明する。
図１は、本発明を適用したＡＴＭ通信システムの１実施例として、複数の入力回線（入力ハイウェイ）ＩＮ−ｉ(ｉ＝１〜ｎ)と複数の出力回線（出力ハイウェイ）ＯＵＴ−ｉ(ｉ＝１〜ｎ)とに接続されるＡＴＭ交換機を示す。
【００１５】
各入力回線ＩＮ−ｉに入力されるＡＴＭセル５０は、図２に示すように、５バイトのセルヘッダ５１と、４８バイトのペイロード部（情報フィールド）５２とからなり、上記セルヘッダ５１は、コネクション識別子であるＶＰＩ／ＶＣＩと、３ビットのペイロードタイプＰＴと、１ビットのセル損失優先表示ＣＬＰと、ヘッダ誤り制御情報ＨＥＣとを含む。ペイロードタイプＰＴの３ビットをＡ、Ｂ、Ｃとすると、ビットＡは、そのセルがユーザセルか管理用のセルかの区別、ビットＢは輻輳の有無を示し、ビットＣは、フレーム（パケット）の継続、終了を識別するためのセグメントタイプ表示ビットとなっている。
【００１６】
各入力回線ＩＮ−ｉから入力されたＡＴＭセル５０は、各入力回線と対応した複数の入力回線インタフェースを含む入力処理部１０でヘッダ情報を書き換えた後、信号線５１を介して、バッファメモリ１１のセルバッファル領域１１Ａに入力される。上記ヘッダ情報の書き換えには、コネクション識別子（ＶＰＩ／ＶＣＩ）の書き換えと、入力セルを送出すべき出力回線（または出力ポート）の番号ｐを含む内部ヘッダの付加とが含まれる。
【００１７】
入力処理部１０は、上記信号線５１への入力セルの送出に先立って、該入力セルの出力回線番号ｐと、セルヘッダから抽出されたコネクション識別子およびセグメントタイプを、それぞれ信号線５２Ａ、５２Ｂ、５２Ｃを介して、書き込み制御装置１３に通知する。上記書き込み制御装置１３と入力処理部１０は、書き込みサイクルを示す制御クロックＷＣＫに同期して動作している。
【００１８】
書き込み制御装置１３は、出力回線番号毎に、各出力回線に多重化されているコネクションの識別子と対応してポインタアドレスを記憶した書き込みアドレス管理テーブル１３Ｔと、出力回線番号毎に、コネクション識別子と対応してキュー管理情報を記憶したキュー管理テーブル１５とを具備し、各書き込みサイクルにおいて、図３に示すフローチャートに従った書き込み制御動作を実行する。
即ち、書き込み制御装置１３は、信号線５２Ａ〜５２Ｃから入力セルの出力回線番号ｐ、コネクション識別子、セグメントタイプを受信すると（ステップ１３１）、上記出力回線番号ｐと対応したキュー管理テーブル１５―ｐから、上記コネクション識別子をもつキュー管理情報を読み出す（１３２）。
【００１９】
上記キュー管理テーブル１５―ｐは、図４に示すように、回線番号ｐの出力回線に多重化されているコネクションの識別子（ＶＰＩ／ＶＣＩ）１５１と対応して、バッファメモリ１１に形成されたセルキューの長さ（蓄積セル数）１５２と、セル送信抑制のための閾値１５３と、受信中のセルと同一パケットに属した先行セルの廃棄の有無を示す廃棄フラグ１５４とを示す複数のキュー管理情報エントリを記憶している。上記閾値１５３は、例えば、各コネクション毎の最大帯域の値に応じて決定される。
【００２０】
書き込み制御装置１３は、信号線５２Ｃから受信したセグメントタイプから、受信セルが１つのパケットの最終セグメントを含むセル（以下、ＥＯＰセルと言う）か否かを判定する（１３３）。受信セルがＥＯＰセル以外のセル（先頭セルまたは中間セル）場合は、バッファメモリ１１のセルバッファ領域１１Ａがオーバーフロー状態か否かを判定し（１３４）、もし、オーバーフロー状態となっていた場合、キュー管理テーブル１５−ｐにおける該当エントリの廃棄フラグをセル廃棄の発生を示す状態“１”に変更し（１３５）、受信セルをバッファメモリ１１に書き込むことなく、この書き込みサイクルを終了する。
【００２１】
上記セルバッファ領域１１Ａがオーバーフロー状態か否かは、空きアドレスメモリ１４に残っている空きアドレスの個数によって判断できる。もし、セルバッファ領域１１Ａがオーバーフロー状態でなければ、キュー管理情報の廃棄フラグ１５５をチェックし（１３６）、廃棄フラグが“１”、すなわち、先行セルが廃棄されていた場合は、上記受信セルをバッファメモリ１１に書き込むことなく、この書き込みサイクルを終了する。
【００２２】
ステップ１３６で廃棄フラグが“０”の場合、または、ステップ１３３で受信セルがＥＯＰセルの場合、書き込み制御装置１３は、出力回線番号ｐに対応する書き込みアドレス管理テーブル１３Ｔ−ｐから、上記コネクション識別子と対応するポインタアドレスを読み出して（１４０）、信号線５３に出力する。
上記ポインタアドレスは、バッファメモリ１１に書き込みアドレスＷＡとして与えられ、これによって、入力処理部１０から信号線５１に出力された受信セルが、セルバッファ領域１１ＡのアドレスＷＡに書き込まれ、空きアドレスメモリ１４から信号線５４に取り出されたメモリアドレスが、上記受信セルと対をなすポインタアドレスとして、バッファメモリ１１のポインタ領域１１ＢのアドレスＷＡに書き込まれる（１４１）。
【００２３】
信号線５４に取り出されメモリアドレスは、書き込み制御装置１３によって、今回、書き込みアドレスＷＡとして使用したポインタアドレスに代わる次のポインタアドレスとして、書き込みアドレス管理テーブル１３Ｔ―ｐに記憶される（１４２）。次回、同一の出力回線番号ｐで同一コネクション識別子をもつＡＴＭセルが入力された時、上記次ポインタアドレスを書き込みアドレスＷＡとして、セルバッファ領域へのセルの書き込みが行われる。これによって、バッファメモリ１１内には、出力回線別に、同一コネクション識別子を持つ一連のＡＴＭセルをポインタアドレスで順次にリンクした論理的なセルキューが多数形成される。
【００２４】
書き込み制御装置１３は、上述したバッファメモリ１１へのＡＴＭセルの書き込みに連動して、上記キュー管理テーブル１５―ｐの該当エントリにおいて、セル数１５２をインクリメントすると共に、廃棄フラグ１５５を“０”に設定し（１４３）、キューフラグテーブル１６を更新する（１４４）。
上記キューフラグテーブル１６は、図１０で後述するように、同一出力回線に多重化された複数のコネクションについて、蓄積セルの有無をフラグビット“１”または“０”によって表示するためのものであり、上記キュー管理テーブル１５と同様、出力回線番号と対応した複数のテーブル１６−ｐ(ｐ＝１〜ｎ)からなっている。上記ステップ１４４では、受信セルの出力回線番号ｐと対応するキューフラグテーブル１６−ｐの上記コネクション識別子と対応するビットが“１”に設定される。
【００２５】
上記書き込み制御によって、バッファメモリ１１には、図５に示すように、コネクション識別子と対応した論理的なセルキュー１１０―ｉが形成される。上記セルキューには、例えば、既に一部のセルＣ１１〜Ｃ１５が出力済みとなっているパケットＰ１０の残りセルＣ１６、Ｃ１７と、次のパケットＰ２０に属したセルＣ２１〜Ｃ２３とが蓄積される。パケットＰ２０に属した新たなセルＣ２４が受信された時点で、もし、バッファメモリがオーバーフロー状態になった場合は、セルＣ２４が廃棄される。
【００２６】
本発明のＡＴＭ通信装置では、一旦、セル廃棄が発生すると、廃棄セルＣ２４と同一のパケットＰ２０に属した後続セルＣ２５〜Ｃ２６は、セル受信時のバッファメモリの空き状態に無関係に次々と廃棄され、廃棄パケットＰ２０のＥＯＰセルＣ２７と、それに続く新たなパケットの受信セルがセルキュー１１０―ｉに追加される。この場合、パケットＰ２０の宛先装置では、セル廃棄が発生する前にセルキューに蓄積されたセルＣ２３を受信した後、暫くしてＥＯＰセルＣ２７を受信し、受信セルＣ２３とＥＯＰセルＣ２７との関係から、パケットＰ２０の一部（セルＣ２４〜Ｃ２６）が欠落したことを認識できる。この場合、宛先装置は、送信側装置に対して、上記パケットの再送を要求することになる。
【００２７】
バッファメモリ１１に蓄積されたＡＴＭセルとポインタアドレスは、読み出し制御装置１７によって読み出される。読み出し制御装置１７は、出力回線番号毎に各コネクション識別子と対応してポインタアドレスを記憶するための読み出しアドレス管理テーブル１７Ｔを備えており、信号線５８、５９を介して出力コネクション選択部２００と接続されている。
【００２８】
読み出し制御装置１７は、書き込みサイクルと交互に現れる読み出しサイクルを示すための制御クロックＲＣＫをカウントして、セルを送出すべき出力回線番号ｐと、各出力回線上のタイムスロット番号ｓとを発生し、これを信号線５８を介して出力コネクション選択部２００に与える。出力コネクション選択部２００は、後述するように、保証帯域テーブル１８、共有帯域テーブル１９、制御情報テーブル２０を参照して、上記回線番号ｐの出力回線の第ｓタイムスロットにセル送出すべきコネクションの番号を決定し、信号線５９に出力する。
【００２９】
読み出し制御装置１７は、信号線５９をからコネクション識別子を受け取ると、出力回線番号ｐと対応するキュー管理テーブル１５―ｐから、上記コネクション識別子と対応するキュー管理情報エントリを読み出し、該コネクションの蓄積セル数（キュー長）１５２が閾値（ＴＨ）１５３を越えているか否かを判定する。
【００３０】
もし、キュー長が閾値ＴＨを超えていた場合は、信号線５６Ａを介して出力制御部１２に、ＥＦＣＩ（Explicit Forward Congestion Indication）ビットの挿入を指示し、上記出力回線番号ｐとコネクション識別子に基づいて、読み出しアドレス管理テーブル１７Ｔからポインタアドレスを読み出す。上記ポインタアドレスは、信号線５７を介して、バッファメモリ１１に読み出しアドレスＲＡとして与えられ、これによって、セルバッファ領域１１Ａから信号線５５ＡにＡＴＭセルが読み出され、同時に、ポインタ領域１１Ｂから信号線５５Ｂにポインタアドレスが読み出される。
【００３１】
読み出し制御装置１７は、上述したバッファメモリ１１からのＡＴＭセルの読み出しに同期して、信号線５６Ｂに出力回線番号ｐを出力する。出力制御部１２は、信号線５５Ａに出力されたＡＴＭセルから内部ヘッダを除去し、これを上記出力回線番号ｐが示す出力回線ＯＵＴ−ｐに出力する。この時、信号線５６ＡからＥＦＣＩビットの挿入指示信号を受けていた場合は、上記ＡＴＭセルのヘッダ部に含まれるペイロードタイプ表示ビットＰＴ（３ビット）の中の第２ビット（ＥＦＣＩビット）を「輻輳中」を示すビット状態“１”にした後、出力回線ＯＵＴ−ｐに送出する。
【００３２】
ポインタ領域１１Ｂから信号線５５Ｂに読み出されたポインタアドレスは、読み出しアドレスＲＡとして使用された現在のポインタアドレスに代わる次ポインタアドレスとして、読み出しアドレス管理テーブル１７Ｔに記憶される。また、読み出しアドレスＲＡとして使用済みとなったポインタアドレスは、空きアドレスメモリ１４に解放される。
【００３３】
読み出し制御装置１７は、バッファメモリ１１からのＡＴＭセル読み出しの都度、上記出力回線番号ｐと対応するキュー管理テーブル１５−ｐで、上記コネクション識別子と対応するエントリの蓄積セル数１５２をデクリメント（−１）し、カウント値がゼロとなった場合は、フラグテーブル１６−ｐの上記コネクション識別子と対応するビットを“０”に変更する。
【００３４】
出力コネクション選択部２００は、読み出し制御装置１７が信号線５８に出力した出力回線番号ｐとタイムスロット番号ｓに基づいて、キューフラグテーブル１６、保証帯域テーブル１８、共有帯域テーブル１９、制御情報テーブル２０を参照し、セルを送出すべきコネクションの識別子を決定し、これを信号線５９に出力する。
【００３５】
上記保証帯域テーブル１８、共有帯域テーブル１９および制御情報テーブル２０は、キューフラグテーブル１６と同様、それぞれ出力回線番号と対応した複数のテーブル１８−ｉ(ｉ＝１〜ｎ)、１９−ｉ(ｉ＝１〜ｎ)、２０−ｉ(ｉ＝１〜ｎ)からなる。
ここで、出力回線ＯＵＴ−ｊに多重化された各コネクションについて、例えば、図６に示すコネクション定義テーブル３０−ｊで指定された帯域を保証する場合を考える。
【００３６】
コネクション定義テーブル３０−ｊは、回線番号ｊを持つ出力回線上に多重化された複数のコネクションについて、コネクションの識別子３１と、最大帯域（ＰＣＲ）３２と、最低（保証）帯域（ｍＣＲ）３３と、共有帯域３４との関係を示している。
【００３７】
共用帯域３４は、最大帯域３３から最低帯域３４を差し引いた値（ＰＣＲ−ｍＣＲ）となっている。通常、コネクション識別子３１は、ＶＰＩ／ＶＣＩで示されるが、ここでは、説明の都合上、出力回線ＯＵＴ−ｊにコネクション識別子Ａ、Ｂ、Ｃ、Ｄ、Ｅを持つ５つのコネクションが多重化された場合を想定する。以下、これらのコネクションをコネクションＡ、Ｂ、Ｃ、Ｄ、Ｅと呼ぶこととする。
【００３８】
図７は、上記コネクション定義テーブル３０−ｊに基づいて作成される保証帯域テーブル１８−ｊの構成を示す。
保証帯域テーブル１８−ｊは、出力回線ＯＵＴ−ｊ上の一定期間分の出力帯域において、該出力回線に多重化された各コネクションの割当てタイムスロットを示している。この場合、タイムスロットの割当ては、コネクション定義テーブル３０−ｊに定義された各コネクションの最低帯域３３に従ったウェイト比で行われる。
【００３９】
今、出力回線ＯＵＴ−ｊ上で各タイムスロットが 0.1Mbit/s 帯域をもつと仮定すると、３０タイムスロット期間の出力帯域は、3Mbit/s になる。コネクション定義テーブル３０−ｊによれば、コネクションＡは、最低帯域が 0.4Mbit/s となっているため、コネクションＡには、コネクション定義テーブル３０−ｊ上で４個のタイムスロットが割当てられる。同様に、最低帯域が 0.3Mbit/s のコネクションＢには、３個のタイムスロットが割当てられる。
【００４０】
保証帯域テーブル１８−ｊは、3Mbit/s の出力帯域に相当する３０タイムスロット分の指定コネクションを記憶する３０個のエントリ領域からなり、図７では、最低帯域値の大きいコネクションから順に、各コネクションが出来るだけ均等なセル間隔を持つようにタイムスロットが割当てられている。この例では、コネクションＡ〜Ｄの最初のタイムスロットを連続する第１〜第５タイムスロットに割当てているが、例えば、図８に示すように、各コネクションの最初のタイムスロット位置を離間させ、割当てタイムスロットが出来るだけ分散するようにしてもよい。
【００４１】
図９は、出力回線ＯＵＴ−ｊと対応した共有帯域テーブル１９−ｊの実施例を示したものである。
共有帯域テーブル１９−ｊは、コネクション識別子Ａ〜Ｅと対応したフラグビットパターン１９Ａ〜１９Ｅを記憶している。各フラグビットパターンは、コネクション定義テーブル３０−ｊにおける共有帯域３４に相当するタイムスロット数を示すためのものであり、タイムスロット数に等しい連続したフラグビットパターンを含んでいる。この例では、フラグビットパターンのビット長は、共有帯域３４の最大値に合わせてある。
【００４２】
コネクション定義テーブル３０−ｊによれば、コネクションＢが共有帯域の最大値 0.5Mbit/s を有し、タイムスロット数が５となるため、コネクションＢのフラグビットパターン１９Ｂは“11111”となる。同様に、コネクションＡは、共有帯域の値が 0.4Mbit/s で、タイムスロット数が４となるため、フラグビットパターン１９Ａは“11110”となっている。
【００４３】
上記共有帯域テーブル１９−ｊのフラグビットパターンは、各コネクションが使用可能な空きタイムスロットの数を意味しており、例えば、コネクションＢが空きタイムスロットでセルを１回送出すると、図（Ｂ）に示すように、ビットパターン１９Ｂが“11111”から“11110”に変更される。コネクションＢは、空きタイムスロットによるセルの送出回数が５回となった時点でフラグビットパターンが“00000”になり、その後の空きタイムスロットの使用が禁止される。本実施例によれば、各コネクションは、保証帯域テーブル１８−ｊで保証されたタイムスロットと、上記共有帯域テーブル１９−ｊのフラグビットパターンが示す空きタイムスロットとを最大限に利用した場合、コネクション定義テーブル３０−ｊが示す最大帯域３２の範囲内でセル送出したことになる。
上記共有帯域テーブル１９−ｊのフラグビットパターンは、図７、図８に示した保証帯域テーブルにおけるタイムスロット位置が一巡して、第１タイムスロットに戻った時点で、図７の（Ａ）に示すビットパターンに初期化される。
【００４４】
図１０は、出力コネクション選択部２００が備える空きタイムスロットへのコネクション割当て機能を概略的に示した図である。
出力コネクション選択部２００は、読み出し制御装置１７から指定された出力回線番号ｐの第ｓ番目のタイムスロットが空き状態であることが判明すると、上記出力回線番号ｐと対応した共有帯域テーブル１９−ｐに記憶されたフラグビットパターン群における第１ビットの集合ビットパターン（図９に太枠で示すビット列）１９０−ｐと、上記出力回線番号ｐと対応するフラグテーブル１６−ｐが示すビットパターンの論理積（ＡＮＤ）をとる。
【００４５】
この場合、上記２つのビットパターン１９０−ｐ、１６−ｐは、同一ビット位置が同一コネクションのフラグとなるように、コネクション識別子順のビット配列となっている。従って、上記論理積（ＡＮＤ）の演算結果は、空きタイムスロットの使用権があり、且つ、バッファメモリ１１内のセルキューに蓄積セルを持つ送信待ちコネクションをビット“１”で示したビットパターン２２となる。
【００４６】
コネクション決定論理２３は、上記論理積演算によって得られたビットパターン２２と、制御情報テーブルメモリ２０−ｐに記憶された最優先コネクション指定情報２０Ｂとに基づいて、空き状態にある第ｓタイムスロットでセル送信すべきコネクションを決定する。上記最優先コネクション指定情報は、空きタイムスロット（共有帯域）が同一のコネクションに連続的に割当てられるのを回避するためのものであり、例えば、コネクション識別子配列において、前回の共有帯域割当てコネクションの次に位置するコネクションと対応するビット位置を示す。
【００４７】
コネクション決定論理２３は、ビットパターン２２中の上記最優先コネクション指定情報が示すビットが“１”であれば、該ビットと対応するコネクション識別子を信号線５９に出力し、次のビット位置を新たな最優先コネクション指定情報２０Ｂとしてメモリ２０−ｐに記憶する。上記最優先コネクション指定情報が示すビットが“０”の場合は、上記ビットパターン２２中の次のビットから循環的に判定し、最初に見つかったビット“１”に対応するコネクション識別子を信号線５９に出力し、次のビット位置を新たな最優先コネクション指定情報としてメモリ２０Ｂに記憶する。ビットパターン２２におけるビット位置からコネクション識別子への変換は、制御情報テーブル２０−ｐに記憶されたコネクション識別子配列情報２２Ａを参照して行われる。
【００４８】
図１１は、読み出し制御装置１７が実行する制御動作フロー示す。
読み出し制御１７は、制御クロックＲＣＫに同期して、出力ポート番号を示すパラメータｐの値をインクリメントし（ステップ１７１）、ｐの値と出力回線番号の最大値Pmaxとを比較する（１７２）。パラメータｐの値がPmaxを超えた場合は、ｐの値を初期値１に戻し（１７３）、保証帯域テーブル１８におけるタイムスロット番号を示すパラメータｓの値をインクリメントする（１７４）。次に、パラメータｓの値を最大値Smaxと比較し（１７５）、パラメータｓの値がSmaxを超えた場合は、その値を初期値（ｓ＝１）に戻す（１７６）。
【００４９】
読み出し制御装置１７は、上記パラメータｐ、ｓの値を出力コネクション選択部に与え、出力コネクションを決定させる（２００）。セル送出すべきコネクション識別子が決定すると、出力ポート番号ｐと対応するキュー管理テーブル１５−ｐから上記コネクション識別子と対応するキュー管理情報を読み出し（１７７）、廃棄フラグ１５４の状態と、蓄積セル数（キュー長）１５２が閾値１５３を超えているか否かを判定する（１７８）。上記閾値１５３は、図５で符号ＴＨで示すように、バッファメモリ１１のセルバッファ領域１１Ａに形成された各コネクション毎のセルキュー１１０−ｉにおける許容蓄積セル数を示している。
【００５０】
本実施例では、キュー長１５２が閾値ＴＨを超えた場合、または廃棄フラグが“１”になっていた場合、読み出し制御１７は、当該コネクションにおけるセルの送出レートが許容範囲を超えているものと判断し、セル送信元装置に送信セル量の抑制を指示する。上記送信セル量の抑制は、信号線５６Ａを介して、読み出し制御１７から出力処理部１２に輻輳表示（ＥＦＣＩ）ビットの挿入を指示し（１７９）、上記指示を受けた出力処理部１２が、セルキュー１１０−ｉから読み出されたユーザセルのヘッダ部におけるペイロードタイプ（ＰＴ）フィールドのＥＦＣＩビットを“１”に変更することによって、受信側装置に輻輳の発生を通知し、受信側装置がＲＭセルを送信側装置に折り返すことによって達成される。
【００５１】
読み出し制御１７は、上記ＥＦＣＩビットの挿入を指示した後、出力ポート番号ｐと対応する読み出しアドレス管理テーブル１７Ｔ−ｐから上記コネクション識別子と対応する読み出しアドレスＲＡを取り出し、この読み出しアドレスＲＡに従ってバッファメモリ１１からＡＴＭセルとポインタアドレスを読み出す（１８０）。尚、セル送出すべきコネクションが存在しなかった場合は、空きセルが送信される。
【００５２】
この後、読み出し制御装置１７は、キュー管理テーブル１５−ｐの上記コネクション識別子と対応する蓄積セル数１５２のカウント値を１セル分減算し（１８１）、蓄積セル数がゼロになった場合は（１８２）、キューフラグテーブル１６−ｐの上記コネクション識別子と対応するフラグを“０”に変更する。
【００５３】
図１２は、出力コネクション選択部２００が実行する制御動作のフローチャートを示す。
出力コネクション選択部２００は、読み出し制御装置１７からパラメータｐ、ｓを受け取ると、先ず、タイムスロット番号ｓの値を判定し（２０１）、タイムスロット番号ｓが初期値（ｓ＝１）になった時点で、出力回線番号ｐと対応する共有帯域テーブル１８−ｐのフラグビットを初期のビットパターンに戻す（２０２）。
【００５４】
出力コネクション選択部２００は、出力回線番号ｐと対応する保証帯域テーブル１８−ｐの第ｓタイムスロットを参照し（２０３）、指定コネクションの有無を判定する（２０４）。指定コネクションがあれば、出力回線番号ｐと対応するフラグテーブル１６−ｐを参照し（２０４）、上記指定コネクションにおける蓄積セルの有無を判定する（２０５）。上記指定コネクションに蓄積セルがあった場合は、該指定コネクションをＡＴＭセルの読み出し対象コネクションに決定する（２０７）。
【００５５】
保証帯域テーブル１８−ｐで第ｓタイムスロットに指定コネクションがなかった場合、または、指定コネクションに蓄積セルがなかった場合は、出力回線番号ｐと対応する共有帯域テーブル１９−ｐとフラグテーブル１６−ｐのフラグビットパターンの論理積を演算する（２１０）。演算結果を判定し（２１１）、演算結果の値がゼロの場合は、セル送出すべき出力コネクションなしと判断する（２１２）。
【００５６】
演算結果がゼロでなければ、演算結果が示すビットパターンから最優先コネクション情報に基づいて出力コネクションを決定し（２１３）、その後で最優先コネクション情報と出力コネクションの共有帯域フラグパターンを更新する（２１４、２１５）。
上記ステップ２０７または２１３で決定した出力コネクションの識別子、またはステップ２１２で決定した出力コネクションなしを示す選択結果は、信号線５９を介して読み出し制御部１７に回答される。
【００５７】
図１３は、本発明による輻輳回避制御手順を示す。
図において、１Ａは送信側端末装置、１Ｂは受信側端末装置、２は上述した構成をもつＡＴＭ交換機であり、５０−１〜５０−４は、上記送信側端末装置１Ａから送出された端末装置１Ｂ宛のＡＴＭセルを示している。
【００５８】
送信側端末装置１Ａからの送出セル量が増え、例えば、予め申告された最大帯域（ＰＣＬ）を超えた場合、ＡＴＭ交換機２内に形成される上記端末１Ａ―１Ｂ間のコネクションと対応するセルキューの蓄積セル量が増加し、キュー長が閾値ＴＨを超えてしまう。本発明のＡＴＭ交換機２では、キュー長が閾値ＴＨを超えた場合、バッファメモリ１１が実際にセル廃棄状態に至ったか否かには関係なく、上記セルキューからの読み出しセルのＥＦＣＩビットを“１”に設定することによって、受信端末装置１Ｂに、あたかもＡＴＭ交換機２内で輻輳が発生したかの如く通知し、受信端末装置１Ｂから送信側端末装置１ＡにＲＭセル６０−１、６０−２を折り返すようにしている。
【００５９】
ＲＭセルは、図１４に示すように、ユーザセルと同様、５バイトのヘッダ部６１と４８バイトのペイロード部６２とからなり、ＲＭセルのヘッダ部６１には、例えば、バーチャルパスの場合、バーチャルチャネル識別子（ＶＣＩ）フィールドに“６”を設定し、ペイロードタイプ識別子（ＰＴＩ)フィールドに“１１０”が設定される。バーチャルコネクションの場合は、上記ＰＴＩに“１１０”が設定される。
【００６０】
ＲＭセルの第６バイトから始まるペイロード部６２は、第６バイトにＲＭプロトコル識別子を含み、第７バイトの第１〜第５ビットを将来利用される予約領域、第６ビットを後方輻輳通知用のＢＮ(Backward Notification)ビット、第７ビットを輻輳表示用のＣＩ(Congestion Indication)ビット、第８ビットをＲＭセルの転送方向を示すＤＩＲ(Direction)ビットとしている。ＲＭセルの第８、第９バイトは、予約領域となっており、第１０、第１１バイトには、現在のセルレート(ＣＣＲ：Current Cell Rate)、第１２、第１３バイトには、最低セルレート(ｍＣＲ：minimum Cell Rate)、第１４、第１５バイトには、明示的セルレート(ＥＲ：Explicit Cell Rate)が設定される。第１６バイト〜第５１バイトと、第５２バイトの第３〜第８ビットは、将来利用される予約領域となっており、第５２バイトの第１、第２ビットと第５３バイトは、ペイロード情報の巡回冗長性検査用の符号ＣＲＣが設定される。
【００６１】
ＡＴＭ交換機２から輻輳表示を含むユーザセル５０を受信した受信側端末装置１Ｂは、送信側端末装置１Ａに、ＣＩビットとＤＩＲビットを“１”に設定したＲＭセル６０を送信することによって、セル送出量の抑制を促す。送信側端末装置１Ａは、ＣＩビットが“１”に設定されたＲＭセルを受信すると、ＡＴＭ網における輻輳を回避するために、送出セル量を抑制する。上記送出セル量の抑制動作は、ＣＩビット＝“１”のＲＭセルの送信停止が確認されるまで継続される。
【００６２】
以上の実施例では、各コネクション識別子と対応して、共通バッファメモリ１１内に、ポインタアドレスでリンクされた論理的な可変長セルキューを形成し、キュー長が閾値ＴＨを越えたコネクションについて、送信側端末装置に通知して送出セル量を抑制させ、輻輳の発生を未然に回避するようにしている。また、仮に、バッファメモリの容量不足によってセル廃棄が発生した場合、廃棄セルと同一のパケットに属した後続セルを廃棄することによって、無用セルによってバッファメモリと回線帯域が使用されるのを防止している。
【００６３】
本発明の他の実施形態として、バッファメモリ１１を予め固定長の複数のバッファ領域に分割し、各コネクションに固定長のバッファ領域を割り当てることによって、上記バッファ領域を固定長の個別セルキューとして、ＦＩＦＯ形式でセルの書き込み、読み出しを行うようにしてもよい。
固定長の個別セルキューでは、各キュー毎に、次に読み出すべきセル領域を読み出しアドレスポインタＲＡＰ、次に書き込むべきセル領域を書き込みアドレスポインタＷＡＰとして記憶しておき、セルの読み出し／書き込みの都度、ポインタＲＡＰ／ＷＡＰを１セル分ずつ循環的に更新すればよい。
【００６４】
例えば、図１のＡＴＭ交換機において、出力回線毎に設けた各キュー管理テーブル１５に、コネクション識別子と対応して、使用すべきバッファ領域（セルキュー）の識別子とポインタＷＡＰ、ＲＡＰを記憶しておき、書き込み制御装置１３は、入力セルの出力回線番号ｐとコネクション識別子に基づいて、キュー管理テーブル１５−ｐからキュー識別子と書き込みアドレスポインタＷＡを読み出し、上記キュー識別子が示すバッファ領域の上記ポインタＷＡＰが示すセル領域に入力セルを書き込んだ後、アドレスポインタＷＡＰを更新する。一方、読み出し制御装置１７は、出力回線番号ｐと出力コネクション選択部２００が指定したコネクション番号とに基づいて、キュー管理テーブル１５−ｐからキュー識別子と読み出しアドレスポインタＲＡＰを読み出し、上記キュー識別子が示すバッファ領域の上記ポインタＲＡＰが示すセル領域からセルを読み出した後、アドレスポインタＲＡＰを更新する。
【００６５】
上述した固定長の個別セルキュー方式を採用した場合、書き込みアドレス管理テーブル１３Ｔと、読み出しアドレステーブル１７Ｔ、バッファメモリのポインタ領域１１Ｂが不要となる。但し、固定長の個別セルキュー方式では、共通バッファ方式と異なり、コネクション毎に蓄積可能なセル数に制限（上限値）があるため、セル書き込み時点で蓄積セル数が上限値に達していれば、セル廃棄が発生する。
セルの廃棄は、出力セルのＥＦＣＩビットを“１”に設定するための閾値ＴＨを蓄積セル数の上限値よりも充分に低く設定し、蓄積セル数が上限値に達する前に、送信側端末装置に送出セル量を抑制させることによって回避できる。しかしながら、送信側端末と受信側端末との間に多数のノードが介在すると、セル抑制制御の応答が遅れる。
【００６６】
例えば、トラフィックの増加によって各コネクションへの未使用帯域の割り当て量が減少し、ＡＴＭ網内での転送レートが最低帯域に近い帯域まで低下した場合や、逆に、送信側端末が最大帯域を超えるレートでセルを送出した場合は、何れかのノードにおいて蓄積セル量が漸増し、蓄積セル数が閾値ＴＨを超えたセルキューからの読み出しセルに輻輳表示が付加される。この場合、送信側端末と受信側端末との間に多数のノードが介在すると、受信側端末で発生したＲＭセルが送信側端末に到着するまでの間に、セルキューが溢れ、セルが廃棄される可能性がある。セル廃棄の可能性は、閾値ＴＨを低くすることによって低減できる。また、セルキューが可変長になる共通バッファ方式を採用すれば、セル廃棄の可能性を一層低減できる。
【００６７】
固定長の個別セルキューを採用した場合、例えば、各セルキューに蓄積中のパケットの先頭セルの格納位置をポインタＨＣＰとしてキュー管理テーブル１５に記憶しておけば、セル廃棄が発生した時、書き込みポインタＷＡＰをＨＣＰの値に戻すことによって、廃棄されたセルと同一のパケットに属した既に蓄積済みの先行セルを一括して廃棄することが可能となる。この場合、上記パケットの後続セルを（ＥＯＰセルを含めて）次々と廃棄することによって、パケット単位のセル廃棄が可能となる。
【００６８】
もし、パケットの先頭セルがセルキューから読み出し済みで、上記ポインタＨＣＰがクリアされた状態となっていた場合は、書き込みポインタＷＡＰを読み出しポインタＲＡＰの値に戻すことによって、蓄積セルを全て廃棄する。この場合、後続セルを次々と廃棄して、廃棄パケットのＥＯＰセルと、その後に受信される次のパケットのセル群をセルキューに蓄積するようにすればよい。
【００６９】
上述したように、バッファメモリに既に蓄積済みのセルを含めて、パケット単位でセルを廃棄することにより、ＡＴＭノードにおける輻輳を急速に解消できる。また、後続のセルが廃棄されたために転送しても無意味となる先行セルの送出を止めることによって、ＡＴＭ網の下流における無用セルのトラフィックを抑制できる。
【００７０】
【発明の効果】
以上の説明から明かなように、本発明によれば、各コネクションの最低帯域を保証し、且つ、伝送路の空き帯域を各コネクションの最大帯域の範囲内で有効に利用したＡＴＭセル転送が行われるため、ＡＴＭノードにおけるセルのスループットが向上し、結果的に、コネクション当たりに必要なバッファメモリ容量を低減できる。
【００７１】
更に、本発明によれば、バッファメモリにおける蓄積セル量がコネクション毎に予め設定された閾値を超えた時、送信元装置からの送出セル量を抑制するための制御動作が開始されるため、バッファメモリにおける蓄積セル量の増加を抑え、セル廃棄の発生を未然に防止できる。また、本発明によれば、仮にセル廃棄が発生した場合でも、廃棄セルと同一のパケットに属した後続セルを廃棄し、可能ならば廃棄セルと同一のパケットに属した既に蓄積済みの先行セルも廃棄することによって、輻輳状態を速やかに解消し、ＡＴＭ網リソースを有効に利用することが可能となる。
【図面の簡単な説明】
【図１】本発明によるＡＴＭ通信装置の１実施例を示すブロック図。
【図２】ＡＴＭセルのフォーマットを示す図。
【図３】図１に示した書き込み制御装置１３の動作を示すフローチャート。
【図４】図１に示したキュー管理テーブル１５の１実施例を示す図。
【図５】図１に示したバッファメモリ１１に形成される論理的なセルキューを説明するための図。
【図６】同一回線上に多重化される複数のコネクションに関する定義テーブルの１例を示す図。
【図７】図１に示した保証帯域テーブル１８の構成の１例を示す図。
【図８】保証帯域テーブル１８の他の構成例を示す図。
【図９】図１に示した共有帯域テーブル１９の構成の１例を示す図。
【図１０】図１に示した出力コネクション選択部２００が備える空きタイムスロットへのコネクション割当て機能を概略的に示した図。
【図１１】図１に示した読み出し制御装置１７の動作を示すフローチャート。
【図１２】出力コネクション選択部２００の動作を示すフローチャート。
【図１３】本発明における輻輳回避のための制御手順を示す図。
【図１４】ＲＭセルのセルフォーマットを示す図。
【符号の説明】
１Ａ：送信側端末装置、１Ｂ：受信側端末装置、２：ＡＴＭ通信装置、
１０：入力処理部、１１：バッファメモリ、１２：出力処理部、
１３：書き込み制御装置、１３Ｔ：書き込みアドレス管理テーブル、
１４：空きアドレスメモリ、１５：キュー管理テーブル、
１６：キューフラグテーブル、１７：読み出し制御装置、１７Ｔ：読み出しアドレス管理テーブル、１８：保証帯域テーブル、１９：共有帯域テーブル、
２０：制御情報テーブル、２００：コネクション選択部、
５０：ＡＴＭユーザーセル、６０：ＲＭセル。
【図１】
0003730846.tif 000002
【図２】
0003730846.tif 000003
【図３】
0003730846.tif 000004
【図４】
0003730846.tif 000005
【図５】
0003730846.tif 000006
【図６】
0003730846.tif 000007
【図７】
0003730846.tif 000008
【図８】
0003730846.tif 000009
【図９】
0003730846.tif 000010
【図１０】
0003730846.tif 000011
【図１１】
0003730846.tif 000012
【図１２】
0003730846.tif 000013
【図１３】
0003730846.tif 000014
【図１４】
0003730846.tif 000015