以下、本発明の実施の形態を図面を参照して説明する。図1は伝送システムの原理図である。伝送システム1は、フロー制御指示受信側伝送装置2とフロー制御指示送信側伝送装置3から構成され、フロー制御を行って信号を伝送するシステムである。
フロー制御指示送信側伝送装置3に対し、データ受信部3aは、相手側から送られたデータの受信制御を行う。フロー制御指示送信部30は、データ受信時、輻輳が発生または解除となった状態のeventが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から1つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有する。
両方の機能を有している場合に、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側の輻輳状態のフロー制御指示を優先的に送信する。
なお、フロー制御指示とは、データ送信側に対して、データ送信停止、またはデータ送信(データ送信停止解除)のいずれかを指示する情報である。例えば、データ受信側で回線#1に輻輳発生を認識したならば、データ送信側へ、回線#1へのデータ送信停止内容を含む情報をフロー制御指示として送信することになる。また、フロー制御は、bitmap形式ではなく、event形式に対応したフロー制御指示の送信を行うシステムである。
フロー制御指示受信側伝送装置2に対し、データ送信部2aは、データの送信制御を行う。フロー制御指示受信部20は、フロー制御指示送信側伝送装置3から送信されたフロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行う。
このとき、フロー制御指示の内容がデータ送信停止を示す場合にはタイマを起動する。そして、タイマでカウントして、あらかじめ設定された一定時間を経過してもデータ送信停止解除を示すフロー制御指示をその後受信しなければ、データ送信停止の自律解除を行う(自律にデータ送信を再開する)。
次に図1を用いてフロー制御指示送信部30とフロー制御指示受信部20の動作概要を説明する(詳細動作は図7以降で後述する)。フロー制御指示送信部30において、キュー(queue)#1〜#nにデータが格納されるとする。
フロー制御指示送信部30では、キュー#1〜#nの輻輳状態に対応するフロー制御指示をフロー制御指示受信部20へ送信するが、本発明では大きく3つの送信パターンでフロー制御指示の送信を行っている。
1つ目は、キュー#1〜#nのどれかがしきい値を超えたキュー長になって輻輳したとき(または、前回の輻輳発生からキュー長がしきい値以下となって輻輳解除となったとき)、しきい値を超えた(しきい値を下回った)1つのキューに対応するフロー制御指示をフロー制御指示受信部20へ送信する(通常送信と呼ぶ)。
2つ目は、通常送信時以外で、ある周期毎にキュー#1〜#nの輻輳状態を1つ選んで、選択したキューに対応するフロー制御指示をフロー制御指示受信部20へ自律的に送信する(自律送信と呼ぶ)。
3つ目は、自律送信と通常送信のタイミングが一致したときは、通常送信側を優先して、フロー制御指示をフロー制御指示受信部20へ送信する。例えば、自律送信でキュー#2が選択されて、キュー#2のフロー制御指示を送信する周期になったときに、キュー#nの輻輳が実際に発生して、自律送信と通常送信のタイミングがかち合ったような場合には、実際にeventが生じたキュー#nを通知することの方が重要度は高いので、キュー#nに関する通常送信側のフロー制御指示を優先して送信することになる。
従来の単純なevent形式のフロー制御では、輻輳状態のeventが発生したときのみ、その旨を示すフロー制御情報を送信していたので、受信側でこのフロー制御情報を受信できなかったときは、フロー制御が行えないといった欠点があった。
一方、輻輳状態のeventが発生したときの通常送信、一定周期間隔で輻輳状態を通知するための自律送信、かつ通常送信と自律送信が一致したときには、通常送信を優先するといった送信制御を行うため、受信側で、あるフロー制御指示を受信できなかった場合でも、その後に該当フロー制御指示を再び送信することになるので、受信側へ確実にフロー制御を実行させることが可能になる。
また、フロー制御指示受信部20では、キュー#nのフロー制御指示(キュー#nへのデータ送信を停止せよ、といった内容が記されている)を受信すると、データ送信部2aに対して、キュー#nへのデータ送信を停止するフロー制御を行い、かつ自律解除用のタイマを起動させてカウントアップを開始する(このタイマは、輻輳発生時(データ送信停止のフロー制御を受信したとき)にカウントしはじめ、輻輳解除時(データ送信のフロー制御を受信したとき)にクリアされるタイマである)。
データ送信部2aでは、キュー#nへのデータ送信を停止したので、データ受信部3a内のキュー#nへの入力はなくなり、キュー#nからは順にデータの読み出しだけが行われるので、いずれはキュー#nの輻輳は解除されることになる。
フロー制御指示送信部30は、キュー#nの輻輳が解除すると、輻輳解除に対応するフロー制御指示(キュー#nへデータを送信せよ、といった内容が記されている)を送信する。フロー制御指示受信部20は、このフロー制御指示を受信すると、タイマのカウントアップを停止させ、データ送信部2aに対して、キュー#nへのデータ送信を開始するフロー制御を行う。
ここで、もし、フロー制御指示受信側伝送装置2、フロー制御指示送信側伝送装置3間の伝送路上で何らかの障害が発生して、フロー制御指示受信部20が、キュー#nへの送信再開指示を示すフロー制御指示を正常に受信できなかった場合には、そのままの送信停止状態が続いてしまい、システム誤動作の原因となってしまう。
したがって、タイマのカウントアップに対して、あらかじめ設定時間を設けておき、この設定時間に達しても、該当キューに対する送信再開を示すフロー制御指示を受信できなければ、何らかの障害でフロー制御指示を正常受信できなかったとみなして、自律的にキュー#nへのデータ送信の再開を行うようにする。このように、フロー制御指示受信部20では、データ送信停止の自律解除制御を行うため、誤動作の状態からすみやかに正常動作に復旧することが可能になる。
次に伝送システム1の具体的な構成について説明する。図2、図3は伝送システム1の構成を示す図である。伝送システム1は、回線制御部2−1〜2−n(総称する場合は回線制御部2)と、メインスイッチ制御部3から構成される。回線制御部2は、フロー制御指示受信側伝送装置2に対応し、メインスイッチ制御部3は、フロー制御指示送信側伝送装置3に対応する。なお、図中の太実線矢印は主信号を表し、細実線矢印は制御信号を表している。
回線制御部2−1〜2−nは、各回線に対応して、入力したパケットをセルに変換して、フロー制御を行いつつ、メインスイッチ制御部3へ出力する。メインスイッチ制御部3は、受信したセルをスイッチングし、該当回線へスイッチングした後のセルを所定の回線制御部2−1〜2−nへ出力する。回線制御部2−1〜2−nは、メインスイッチ制御部3から送信されたセルを受信して、パケットに変換してから、スイッチング後の各回線へ送出する。
図2の回線制御部2−1〜2−nは、フロー制御指示受信部20、セル送信部201、P/C(パリティ・チェッカー)202、パケット送信部203から構成され、セル送信部201は、書き込み制御部201a、パケット/セル変換バッファ201b、読み出し制御部201c、P/G(パリティ・ジェネレータ)201dを含む。パケット送信部203は、書き込み制御部203a、セル/パケット変換バッファ203b、読み出し制御部203cを含む。
図3のメインスイッチ制御部3は、フロー制御指示送信部30−1〜30−n、セル受信部301、読み出し制御部302、バッファ監視部303、DMUX(分離部)304、P/G305−1〜305−nから構成される。セル受信部301は、P/C301a−1〜301a−n、MUX(多重化部)301b、書き込み制御部301c、共通バッファ301dを含む。
図2の回線制御部2−1〜2−nに対して、書き込み制御部201aは、入力される可変長パケットを固定長セルに変換するためのパケット/セル変換バッファ201bへ書き込むための書き込み制御を行う。書き込み制御部201aは、write enable、write address等の書き込み制御信号W1を生成する。また、1パケット分の書き込み完了時に、パケット長(length)、キュー情報(キュー番号)等を含む書き込み完了通知W2を生成し通知する。
ここで、キューについて説明する。キューを物理的な格納領域と見た場合には、バッファ内部には各回線に対応した複数の格納領域が存在し、これら物理的な格納領域がそれぞれキューとなる。また、この場合のキュー情報とは、個々の格納領域の識別子のことになる。
一方、キューを論理的なデータ格納領域と見た場合には、複数の物理領域に回線毎に振り分けて格納するのではなく、バッファ内部には、1つの格納領域だけが存在して、その中で各回線に対応させた論理的な格納領域に対応するものがキューとなる。したがって、この場合のキュー情報とは、回線番号とみなしてよい(具体的には、メインスイッチ制御部3でスイッチングされた後の回線番号(P/G305−1〜の出力ラインの番号)とする)。
いずれの考え方を用いてもよいが、以降ではキューといった場合は、後者の論理的なキューを意味するものとする(図1では、説明を簡単にするため、キューを物理的なイメージで示した)。
読み出し制御部201cは、パケットをセルに変換するために、パケット/セル変換バッファ201bの読み出し制御を行う。読み出し制御部201cは、書き込み完了通知W2を受信すると、パケット/セル変換バッファ201b内にパケットが存在すれば、length情報にもとづき、セルのペイロードに格納できるデータ量を比較しながら、パケット/セル変換バッファ201bの読み出しを行う。このとき、read enable、read address等の読み出し制御信号R1を生成する。
そして、読み出したデータをセルのペイロードに付与する。さらに、ペイロードに付与すべきデータの読み出しが完了すると、セルのヘッダにキュー情報や、パケットを構成していたときの位置(先頭かつ最終、先頭/中間/最終)情報を付与する(なお、最終セル、または先頭かつ最終セルのペイロード領域には、パケットのlength情報が付与される)。このようにしてパケットからセルへの変換が行われる。
ただし、フロー制御指示受信部20から、メインスイッチ輻輳情報Mとしてデータ送信停止の内容が通知されている場合には、読み出し制御部201cは、パケット/セル変換バッファ201bから読み出しを行わず、メインスイッチ制御部3へのセル出力を停止する。
ここで、メインスイッチ輻輳情報Mの通知内容(すなわち、フロー制御指示の内容)には、キューレベルの輻輳状態とラインレベルの輻輳状態の2種類の内容がある。図4はキューレベルの輻輳状態を説明するための図であり、図5はラインレベルの輻輳状態を説明するための図である。説明がわかりやすいように物理的なキューで示す。
図4に対し、キューレベルの輻輳状態とは、n個のキュー#1〜#nがある場合(回線がn本ある場合)、個々のキューが輻輳しているか否かといった単一キューに対するキューの輻輳状態のことを指す。
したがって、図に示すキュー状態のキューレベルによるフロー制御指示では、キュー#1のキューレベルフロー制御指示は輻輳あり、キュー#2のキューレベルフロー制御指示は輻輳なし、・・・、キュー#nのキューレベルフロー制御指示は輻輳なし、といった内容となる。
図5に対し、ラインレベルの輻輳状態とは、すべてのキュー#1〜#nに対しての輻輳状態のことを指す。図のように、キュー#1〜#nの個々を見た場合には、それぞれには輻輳が発生していなくても、各キューに対するデータ格納量はしきい値より下近傍に位置しているため、キュー#1〜#n全体としては相当量のデータが格納されていることになる。ラインレベルの輻輳状態とは、このような状態に対応するためのものであり、図の場合ではラインレベルフロー制御指示は輻輳あり、といった内容となる。
なお、event形式のフロー制御なので、フロー制御指示の送信(受信)時は、キュー#1〜#nのキューレベルフロー制御指示及びラインレベルフロー制御指示の(n+1)個の中からいずれか1つのフロー制御指示を送信(受信)することになる。
図2の説明に戻り、読み出し制御部201cでは、メインスイッチ輻輳情報Mとして、ラインレベルの輻輳ありの通知を受信した場合には、パケット/セル変換バッファ201bからの読み出しを完全に停止する。また、キューレベルの輻輳ありの通知を受信した場合には、対応するキューの読み出しのみを停止する。P/G201dは、生成されたセルにパリティビットを付加して、メインスイッチ制御部3へ送信する。
図3のメインスイッチ制御部3に対して、P/C301a−1〜301a−nは、回線制御部2−1〜2−nより送信されるセルのパリティチェックを行う。パリティエラーを検出した場合には、障害検出フラグを該当のセルのヘッダへ付与し、セル廃棄処理を行う。
MUX301bは、スイッチング効率を上げるため、回線単位のセルを多重化する。書き込み制御部301cは、多重化セルを一旦共通バッファ301dに格納するための書き込み制御を行う。書き込み制御部301cは、write enable、write address等の書き込み制御信号W3を生成する。また、1セル分の書き込み完了時にキュー情報等を含む書き込み完了通知W4を生成し通知する。
読み出し制御部302は、共通バッファ301dの読み出し制御を行う。読み出し制御部302は、バッファ監視部303から通知されるキュー単位のempty flagを参照し、スケジューリング制御(例えば、セルの優先度の高/低によって共通バッファ31dからの読み出し順番を変えるなど)を行い、どのキューのセルを読み出すかを判定する。そしてread enable、read address等の読み出し制御信号R2を生成する。また、1セル分の読み出し完了時にキュー情報等を含む読み出し完了通知R3を生成し通知する。
バッファ監視部303は、書き込み完了通知W4と、読み出し完了通知R3より加減算処理を行い、共通バッファ301d内のキュー単位のバッファリングセル数を監視する。そして、バッファリングセル数からキュー単位のempty flagを生成する。また、バッファリングセル数と、上位のソフトウェアより設定される輻輳しきい値とを比較することにより、ラインレベル/キューレベルの輻輳状態フラグFを生成する。
DMUX304は、共通バッファ301dから読み出された多重化セルを回線単位に分離する。フロー制御指示送信部30−1〜30−nは、輻輳状態フラグFを参照し、分離されたセルのセルヘッダにフロー制御指示を付与する(event 形式なので、1つのセルヘッダ中には、キュー#1〜#nのキューレベルフロー制御指示及びラインレベルフロー制御指示の中からいずれか1つが付与される)。P/G305−1〜305−nは、フロー制御指示が付与された各セルに対してパリティビットを生成して付与し、セルデータを回線制御部2−1〜2−nへ送信する。
図2の回線制御部2−1〜2−nに対し、P/C202は、メインスイッチ制御部3より送信されるセルのパリティチェックを行う。パリティエラーを検出した場合には、障害検出フラグをセルヘッダに付与し、フロー制御指示のクリア(無効化)やセル廃棄等を行う。
フロー制御指示受信部20は、セルからフロー制御指示を抽出し、メインスイッチ輻輳情報Mを生成する。フロー制御指示の抽出後は、セルヘッダに付与されているフロー制御指示をクリアする。
書き込み制御部203aは、セルからパケットに変換するためのセル/パケット変換バッファ203bに、セルを書き込むための書き込み制御を行う。書き込み制御部203aは、セルのキュー情報とパケットを構成する際の位置情報(先頭かつ最終、先頭、中間、最終)を参照し、パケットの組み上げを行いつつ、パケットを構成する実データのみをセル/パケット変換バッファ203bに書き込む。このとき、write enable、write address等の書き込み制御信号W5を生成する。そして1パケット分の書き込み完了時に、パケット長(length)、キュー情報等を含む書き込み完了通知W6を生成し通知する。
読み出し制御部203cは、セルをパケットに変換するためにセル/パケット変換バッファ203bの読み出し制御を行う。読み出し制御部203cは、書き込み制御部203aから通知されるlength情報、キュー情報等を管理しており、セル/パケット変換バッファ203bにパケットが存在するのであればlength情報分のデータをセル/パケット変換バッファ203bから読み出す。このとき、read enable、read address等の読み出し制御信号R4を生成する。読み出されたパケットは、回線上へ送出される。
次にフロー制御指示送信部30、フロー制御指示受信部20の詳細を説明する前に、解決すべき問題点について、フロー制御指示のフォーマット例を示して詳しく説明する。伝送路上の障害などで、フロー制御指示が付与されているセルにパリティエラーが検出された場合は、フロー制御指示が無効となりフロー制御を行うことができない。また、誤り訂正としてのパリティチェックでは、偶数ビット化けが生じるとエラーが検出できず、このときフロー制御指示の受信側では、誤ってフロー制御指示が付与されていると認識してしまい、誤動作を起こす可能性もある。
図6はフロー制御指示のフォーマット例を示す図である。セルは、制御情報を含むヘッダと、主信号を含むペイロードとから構成され、フロー制御指示はヘッダ内に含まれている。フロー制御指示は、指示内容、パリティビット、キュー番号の3つのフィールドからなる。
フロー制御指示fa、fbは、キューレベル輻輳状態に対応したフロー制御指示であり、指示内容が“010100”と記されると該当キューのセルデータ送信停止を意味し、指示内容が“010101”と記されると該当キューのセルデータ送信を意味する。したがって、図のフロー制御指示faは、キュー#1のセルデータ送信停止を意味し、フロー制御指示fbは、キュー#2のセルデータ送信を意味する。
フロー制御指示fc、fdは、ラインレベル輻輳状態に対応したフロー制御指示であり、指示内容が“010110”と記されると全キューのセルデータ送信停止を意味し、指示内容が“010111”と記されると全キューのセルデータ送信を意味する。したがって、フロー制御指示fcは、キュー#1〜#nすべてのセルデータ送信停止を意味し、フロー制御指示fdは、キュー#1〜#nすべてのセルデータ送信を意味する。
また、パリティビットは、指定内容に対する冗長ビットとして1ビット設けられている。指示内容のフィールドの1の個数(または0の個数)が偶数個なら0、奇数個なら1を設定する(例えば、フロー制御指示faの指示内容の1の個数は2個なので、パリティビットは0が設定されている)。
ここで、受信側でフロー制御指示faのパリティチェックを行った際、フロー制御指示faのパリティビットに1が検出されたとする。フロー制御指示faの指示内容の1の個数が偶数個であるにもかかわらず、パリティビットが1と検出された場合、伝送途中でビット化けが生じているので、送信されたフロー制御指示faは信頼性が低いものとみなして無効となる。このような場合、従来のevent形式では、キュー#1のフロー制御指示の再送はされないので、それ以降、キュー#1に対するフロー制御を行うことができなかった。
一方、指示内容のビットが偶数個化けた場合は、パリティチェック方式では、パリティエラーを引っかけることができない。例えば、フロー制御指示faの指示内容の“010100”の2ビットが化けて“010111”となったとしても1の個数は偶数個であるので、受信側では正常とみなしてしまい、エラーを検出することができない(この場合、キュー#1のデータ送信停止のフロー制御指示であるはずなのに、ラインとして全キューに対するデータ送信と誤認識してしまう)。
本発明では、これらの問題点を解決し、伝送路上の障害等でフロー制御指示にビット化けが生じたときでも、その後のフロー制御を可能とし、また誤動作した場合も自律的に正常な動作に戻って通信を行うようにして、伝送品質及び信頼性の向上を図るものである。
次にフロー制御指示送信部30の構成及び動作について詳しく説明する。図7はフロー制御指示送信部30の構成を示す図である。フロー制御指示送信部30は、自律送信用タイミング生成部31、FCRR(Flow Control Request Register)生成部32、通常送信用フロー制御指示生成部33、自律送信用フロー制御指示生成部34、フロー制御指示付与部35、FCCR(Flow Control Curent Register)生成部36から構成される。
自律送信用タイミング生成部31は、フロー制御指示を自律で送信するための周期を監視して、自律送信イネーブルe2を生成する。自律送信イネーブルe2は、セルフレームを基準にして内部のカウンタを動作させ、上位より設定される周期設定値とカウント値とを比較して生成される。
例えば、周期設定値が64セルフレーム時間と設定されているとする。自律送信用タイミング生成部31は、1セルフレーム毎にカウンタをカウントアップし、カウント値が周期設定値以上になるのを待つ。64個のセルが到着すると、カウント値は64になっている。このときカウント値≧周期設定値の条件が成立するので、条件が成立しているセル区間は、自律送信イネーブルe2を有効(例えば、“H”)にする。そして、条件が成立した次のセルフレームでカウンタを1にロードする。以降、カウンタはこの動作を繰り返す。また、自律送信イネーブルe2が有効で通常送信優先イネーブルe1が無効な場合にはカウンタは1にロードする
ただし、通常送信用フロー制御指示生成部33より通知される通常送信優先イネーブルe1が有効な場合には、カウンタの値を周期設定値の値にロードし、その結果次のセルフレーム時間から自律送信イネーブルe2が通知されるようにする(図13で後述)。
FCRR生成部32は、図3のバッファ監視部303から送信された輻輳状態フラグFを保存するレジスタである。具体的には、ラインレベルの輻輳状態フラグと、n個のキューレベルの輻輳状態フラグをラッチして、ラッチ後のフラグ情報(FCRRと呼ぶ)を出力する。
通常送信用フロー制御指示生成部33は、通常送信周期(1セルフレーム)単位での処理を行い、フロー制御の対象となるキューまたはラインをFCRRにもとづき決定し、FCRRとFCCRの値とを比較する(FCCRは、前回の周期のときのFCRRの値を示していることになるので、現在の通常送信周期で取得したFCRRと比較することで、eventが発生したか否かが判断できる。値が異なっていたら、eventが発生したということになる)。
そして、通常送信を行うときは、FCRRとFCCRの値とが互いに不一致となる該当輻輳状態を選択して、通常送信用フロー制御指示f1を生成する(図9〜図12で後述する)。なお、自律送信イネーブルe2が有効で、eventが発生していない場合には動作は停止し、自律送信イネーブルe2が有効で、eventが発生した場合は、通常送信優先イネーブルe1を有効にして通知する。
自律送信用フロー制御指示生成部34は、自律送信周期(例えば、64セルフレーム)単位での処理を行い、自律送信イネーブルe2が有効で、通常送信優先イネーブルe1が無効の場合のみ動作して(通常送信優先イネーブルe1が有効であったならば動作は停止する)、FCRRにもとづき、自律送信用フロー制御指示f2を生成する(自律送信を行う場合は、event発生の有無に関係なく、FCRRの値を順次選択して、キューまたはラインを決定するので、自律送信のフロー制御指示の生成にはFCCRは使用しない)。
フロー制御指示付与部35は、通常送信用フロー制御指示f1または自律送信用フロー制御指示f2のいずれかをセルフレーム単位で認識し、セルのヘッダにフロー制御指示を付与して、フロー制御指示が付与されたセルデータを図3のP/G305−1〜305−nへ送信する。FCCR生成部36は、通常送信用フロー制御指示f1及び自律送信用フロー制御指示f2を受信して、データ送信停止の内容を含むフロー制御指示が通知されているか否かを示すデータを出力する。
このデータをFCCRと呼ぶ。FCCRは、通常送信用フロー制御指示f1あるいは自律送信用フロー制御指示f2にもとづき、前回のキューまたはラインの輻輳状態を記録しているデータである。
図8は自律送信用フロー制御指示生成部34の動作概要を示す図である。自律送信用フロー制御指示生成部34は、自律送信イネーブルe2が有効な時に、FCRRから1つのフラグを選択する。例えば、FCRRは10ビットで、1〜9ビット目までがキュー#1〜#9の輻輳状態のフラグを示し、10ビット目がラインの輻輳状態のフラグを示しているとき(1で輻輳発生、0で輻輳なし)、これらのビットを1ビットずつ巡回的に選択する。
図の場合、最初の自律送信周期では、FCRRの1ビット目を選択している。1ビット目は、キュー#1の輻輳状態を表すビットであり、輻輳発生となっているので、自律送信用フロー制御指示生成部34は、キュー#1に対するデータ送信停止を意味する自律送信用フロー制御指示f2を生成する。
次の自律送信周期では、FCRRの2ビット目を選択する。2ビット目は、キュー#2の輻輳状態を表すビットであり、輻輳なしとなっているので、自律送信用フロー制御指示生成部34は、キュー#2に対するデータ送信を意味する自律送信用フロー制御指示f2を生成する。以降、このような処理が繰り返される。
このように、自律送信を行う場合は、FCRRのビットを例えば、自律送信周期がきたら巡回的に選択して、自律送信周期毎にフロー制御指示を定期的に生成して送信する。
次に図9〜図12を用いてFCRRとFCCRにもとづくフロー制御指示生成の動作概要について説明する。図9は通常送信時のフロー制御指示生成を示すタイムチャートであり、1つのeventが生じたときの動作を示している。
通常送信用フロー制御指示生成部33は、通常送信周期(1セルフレーム)毎に、FCRR生成部32から送信されるFCRRを監視する。今、サイクルC1でキュー#1の輻輳発生を検出したとする。すなわち、FCRRのキュー#1のビットに1(“H”)が立っていたとする(キュー#1のビットのFCRRをFCRR#1と記す)。また、検出時点では、FCCR生成部36から送信されるキュー#1のFCCR(FCCR#1と記す)は、初期状態の0(“L”)である。
〔S1〕サイクルC1において、通常送信用フロー制御指示生成部33は、FCRR#1とFCCR#1のレベルが一致しているか否かを比較する。FCRRのレベルが“H”でFCCRのレベルが“L”のときには(輻輳が生じたというeventが発生したことになる)、データ送信停止を意味するフロー制御指示の生成を行う。したがって、ここでは、キュー#1の輻輳発生の旨を表すフロー制御指示を生成することになる。また、通常送信優先イネーブルe1を有効(“H”)にする。
〔S2〕FCCR生成部36は、このフロー制御指示を受信して、キュー#1のデータ送信停止の内容のフロー制御指示であることを認識すると、FCCR#1を“H”にする。
なお、FCRRのレベル値として、輻輳が発生したときを“H”、輻輳なしのときのレベルを“L”とすれば、データ送信を停止せよの意味のフロー制御指示が通常送信用フロー制御指示生成部33(または自律送信用フロー制御指示生成部34)から出力された場合には、FCCRは“H”となり、データを送信せよの意味のフロー制御指示が出力された場合には、FCCRは“L”になる。
〔S3〕サイクルC2において、FCRR#1の輻輳はまだ続いている。通常送信用フロー制御指示生成部33は、FCRR#1とFCCR#1のレベルを比較すると、両方とも“H”であり同じレベル値である。したがって、キュー#1に関するフロー制御指示は生成せず、通常送信優先イネーブルe1を無効(“L”)にする。また、FCCR生成部36もFCRR#1のあらたなフロー制御指示が送られてこないので(あらたなeventが発生していないので)、FCCR#1は変化せずに“H”のままである。
〔S4〕サイクルC3において、通常送信用フロー制御指示生成部33は、FCRR#1を監視すると、“L”であり、輻輳が解除されていることを認識する。通常送信用フロー制御指示生成部33は、FCRRとFCCRのレベルを比較して、FCRRのレベルが“L”でFCCRのレベルが“H”のときには(輻輳が解除されたというeventが発生したことになる)、データ送信を意味するフロー制御指示の生成を行う。したがって、ここでは、キュー#1の輻輳解除(データ送信)の旨を表すフロー制御指示を生成することになる。また、通常送信優先イネーブルe1を有効(“H”)にする。
〔S5〕FCCR生成部36は、ステップS4で生成されたフロー制御指示を受信して、キュー#1のデータ送信の内容のフロー制御指示であることを認識すると、FCCR#1を“L”にする。
〔S6〕サイクルC4において、FCRR#1の輻輳は発生していない。通常送信用フロー制御指示生成部33は、FCRR#1とFCCR#1のレベルを比較すると、両方とも“L”であり同じレベル値である(eventは生じていないということ)。したがって、キュー#1に関するフロー制御指示は生成しない。そして、通常送信優先イネーブルe1を無効(“L”)にする。また、FCCR生成部36もFCRR#1のあらたなフロー制御指示が送られてこないので(あらたなeventが発生していないので)FCCR#1は変化せずに“L”のままである。
図10は通常送信時のフロー制御指示生成を示すタイムチャートであり、2つのeventが同時に生じたときの動作を示している。通常送信用フロー制御指示生成部33は、通常送信周期(1セルフレーム)毎に、FCRR生成部32から送信されるFCRRを監視する。今、サイクルC1でキュー#1、#2の2つの輻輳発生を検出したとする。すなわち、FCRR#1に1、FCCR#2に1が立っていたとする。また、検出時点では、FCCR生成部36から送信されるキュー#1、#2のFCCR#1、#2は、初期状態の0である。
〔S11〕サイクルC1において、通常送信用フロー制御指示生成部33は、FCRRとFCCRとのレベルの比較を行う。この場合、FCRR#1、#2は“H”、FCCR#1、#2は“L”であり、レベル値が異なる2つのキューが存在するが、event形式のフロー制御なので、いずれか一方の側のフロー制御指示しか送れない。したがって、ここではキュー#1の方を選択して、キュー#1の輻輳発生の旨を表すフロー制御指示A#1−1を生成したとする。また、通常送信優先イネーブルe1を有効にする。
〔S12〕FCCR生成部36は、このフロー制御指示A#1−1を受信して、キュー#1のデータ送信停止の内容のフロー制御指示であることを認識すると、FCCR#1を“H”にする。なお、キュー#2のフロー制御指示は受信していないので、“L”のまま変化しない。
〔S13〕サイクルC2において、通常送信用フロー制御指示生成部33は、FCRRとFCCRとのレベルの比較を行う。この場合、FCRR#1は“H”及びFCCR#1は“H”であり、FCRR#2は“H”及びFCCR#2は“L”である。キュー#2の方のレベルが異なっているので、キュー#2の輻輳発生の旨を表すフロー制御指示A#2−1を生成する。通常送信優先イネーブルe1は有効のままである。
〔S14〕FCCR生成部36は、このフロー制御指示A#2−1を受信して、キュー#2のデータ送信停止の内容のフロー制御指示であることを認識すると、FCCR#2を“H”にする。なお、キュー#1のフロー制御指示は受信していないので、“H”のまま変化しない。
〔S15〕サイクルC3において、通常送信用フロー制御指示生成部33は、FCRR#1を監視すると、“L”であり、輻輳が解除されていることを認識する。通常送信用フロー制御指示生成部33は、FCRRとFCCRのレベルを比較して、FCRR#1のレベルが“L”でFCCR#1のレベルが“H”であるので、キュー#1のデータ送信を意味するフロー制御指示A#1−2の生成を行う。また、通常送信優先イネーブルe1は有効のままである。
〔S16〕FCCR生成部36は、ステップS15で生成されたフロー制御指示A#1−2を受信して、キュー#1のデータ送信の内容のフロー制御指示であることを認識すると、FCCR#1を“L”にする。キュー#2のフロー制御指示は受信していないので、“H”のまま変化しない。
〔S17〕サイクルC4において、通常送信用フロー制御指示生成部33は、FCRR#2を監視すると、“L”であり、輻輳が解除されていることを認識する。通常送信用フロー制御指示生成部33は、FCRRとFCCRのレベルを比較して、FCRR#2のレベルが“L”でFCCR#2のレベルが“H”であるので、キュー#2のデータ送信を意味するフロー制御指示A#2−2の生成を行う。また、通常送信優先イネーブルe1は有効のままである。
〔S18〕FCCR生成部36は、ステップS17で生成されたフロー制御指示A#2−2を受信して、キュー#2のデータ送信の内容のフロー制御指示であることを認識すると、FCCR#2を“L”にする。キュー#1のフロー制御指示は受信していないので、“L”のまま変化しない。
〔S19〕サイクルC5において、FCRR#1、#2の輻輳は発生していない。通常送信用フロー制御指示生成部33は、FCRR#1、#2とFCCR#1、#2のレベルを比較すると、両方とも“L”であり同じレベル値である。したがって、キュー#1、#2に関するフロー制御指示は生成しない。そして、通常送信優先イネーブルe1を無効にする。また、FCCR生成部36もFCRR#1、#2のあらたなフロー制御指示が送られてこないのでFCCR#1、#2は“L”のままである。
図11は自律送信時のフロー制御指示生成を示すタイムチャートであり、キュー#1〜#3のキューレベルの自律送信を示している。自律送信用フロー制御指示生成部34は、自律送信周期(64セルフレーム)毎に、FCRR生成部32から送信されるFCRRを監視する。サイクルC1でFCRR#1に1が立っており、サイクルC2でFCRR#2が0であり、サイクルC3でFCRR#3が1であったとする。
〔S21〕サイクルC1において、自律送信用フロー制御指示生成部34は、FCRR#1を検出する。FCRR#1は“H”であるので、キュー#1の輻輳発生の旨を表すフロー制御指示A#1−1を生成する。また、自律送信イネーブルe2を有効にする。
なお、自律送信イネーブルe2は、上述したように、周期設定値=64とカウント値とが一致したときに有効となり、その後、次のセルフレームでカウンタは1にロードされるので、“H”となる区間は1セルフレーム区間である。
〔S22〕サイクルC2において、自律送信用フロー制御指示生成部34は、FCRR#2を検出する。FCRR#2は“L”であるので、キュー#2の輻輳解除の旨を表すフロー制御指示A#2−2を生成する。また、自律送信イネーブルe2を有効にする。
〔S23〕サイクルC3において、自律送信用フロー制御指示生成部34は、FCRR#3を検出する。FCRR#3は“H”であるので、キュー#3の輻輳発生の旨を表すフロー制御指示A#3−1を生成する。また、自律送信イネーブルe2を有効にする。
図12は通常送信と自律送信のタイミングが一致した時のフロー制御指示生成を示すタイムチャートである。自律送信ではキュー#2を選択するタイミングのときに、キュー#1の輻輳発生のイベントを検出したものとする。
〔S31〕サイクルC1において、通常送信と自律送信のタイミングが一致している。このときには、通常送信を優先する。通常送信用フロー制御指示生成部33は、FCRR#1とFCCR#1とのレベルの比較を行う。この場合、FCRR#1は“H”、FCCR#1は“L”である。したがって、キュー#1の輻輳発生の旨を表すフロー制御指示A#1−1を生成する。また、通常送信優先イネーブルe1を有効にする。この通常送信優先イネーブルe1は、自律送信用フロー制御指示生成部34へ通知され、自律送信用フロー制御指示生成部34は、自律送信タイミングであるので、自律送信イネーブルe2を有効にするが通常送信優先イネーブルe1が有効であるため動作を停止する。
〔S32〕FCCR生成部36は、このフロー制御指示A#1−1を受信して、キュー#1のデータ送信停止の内容のフロー制御指示であることを認識すると、FCCR#1を“H”にする。
〔S33〕サイクルC2において、FCRR#1の輻輳はまだ続いている。通常送信用フロー制御指示生成部33は、FCRR#1とFCCR#1のレベルを比較すると、両方とも“H”であり同じレベル値である。したがって、キュー#1に関するフロー制御指示は生成せず、通常送信優先イネーブルe1を無効(“L”)にする。また、FCCR生成部36もFCRR#1のあらたなフロー制御指示が送られてこないので変化せずにFCCR#1は“H”のままである。
〔S34〕自律送信用フロー制御指示生成部34は、前回(サイクルC1)通常送信が優先されたため、サイクルC2においては自律送信イネーブルe2を有効にする。通常送信用フロー制御指示生成部33から通知される通常送信優先イネーブルe1は無効であるのでキュー#2に対する自律送信を行う。FCRR#2は“L”である。したがって、キュー#2のデータ送信を意味するフロー制御指示A#2−2の生成を行う。
〔S35〕FCCR生成部36は、ステップS34で生成されたフロー制御指示A#2−2を受信して、キュー#2のデータ送信の内容のフロー制御指示であることを認識すると、FCCR#2を“L”にする(元々FCCR#2は“L”であったので、FCCR#2のレベル自体は変化しない)。
〔S36〕サイクルC3において、通常送信用フロー制御指示生成部33は、FCRR#1を監視すると“L”であり、輻輳が解除されていることを認識する。通常送信用フロー制御指示生成部33は、FCRRとFCCRのレベルを比較して、FCRR#1のレベルが“L”でFCCR#1のレベルが“H”なので、データ送信を意味するフロー制御指示A#1−2の生成を行う。また、通常送信優先イネーブルe1を有効(“H”)にする。
〔S37〕FCCR生成部36は、ステップS36で生成されたフロー制御指示A#1−2を受信して、キュー#1のデータ送信の内容のフロー制御指示であることを認識するとFCCR#1を“L”にする。
〔S38〕サイクルC4において、FCRR#1の輻輳は発生していない。通常送信用フロー制御指示生成部33は、FCRR#1とFCCR#1のレベルを比較すると、両方とも“L”であり同じレベル値である。したがって、キュー#1に関するフロー制御指示は生成しない。そして、通常送信優先イネーブルe1を無効(“L”)にする。また、FCCR生成部36もFCRR#1のあらたなフロー制御指示が送られてこないのでFCCR#1は“L”のままである。
図13は自律送信と通常送信のタイミングが一致したときの自律送信周期の設定の様子を示す図である。自律送信と通常送信のタイミングが一致したときは、通常送信が行われることになるが、通常送信が終了して自律送信に戻る場合は、通常送信を行った次の1セルフレーム後から自律送信の周期がスタートするようにする。
図の場合、位置P1で自律送信と通常送信のタイミングが一致し、通常送信が行われたら、図7の自律送信用タイミング生成部31は、次の1セルフレーム後の位置P2から自律送信周期をカウントし始める。このような制御を行うことで、通常送信終了後、次のセルフレームの位置P2から自律送信を行うことが可能になる(もし、このような制御を行わないと、自律送信は位置P3から始まることになり、通常送信から自律送信が始まるまで、長めのブランクが生じてしまう)。
次にフロー制御指示受信部20の構成及び動作について詳しく説明する。図14はフロー制御指示受信部20の構成を示す図である。フロー制御指示受信部20は、フロー制御指示抽出部21、自律解除機能停止判定部22、自律解除活性化判定部23、自律解除イネーブル生成部24、輻輳レベル制御部25−0〜25−nから構成される。
輻輳レベル制御部25−0〜25−nは、自律解除タイマ25a、メインスイッチ輻輳情報生成部25b、自律解除通知部25cを含む。輻輳レベル制御部25−0はラインレベルに対応した制御を行い、輻輳レベル制御部25−1〜25−nそれぞれはキュー#1〜#nに対応した制御を行う。なお、以降の輻輳レベル制御部の動作としては、ラインレベルの輻輳レベル制御部25−0に着目して説明する。
フロー制御指示抽出部21は、図2のP/C202から出力されたセルデータからフロー制御指示を抽出する。抽出するのは、ラインレベルフロー制御指示fL及びn個のキューレベルフロー制御指示fq#1〜fq#nの内の1つである。またフロー制御指示の抽出後は、セルヘッダ中のフロー制御指示付与領域をクリアする。
自律解除機能停止判定部22は、自律解除機能(データ送信停止のフロー制御指示を受信して、該当セルデータの送信を停止した後に、一定時間経過してもデータ送信のフロー制御指示を受けない場合に、自律的にデータ送信停止のフロー制御を解除して、セルデータの送信を始める機能)の動作を強制的に停止するかどうかの判定制御を行う。これはある1つのフロー制御指示にもとづいて行う。図ではラインレベルフロー制御指示fLを用いている。
ここで、図7のフロー制御指示送信部30で上述した自律送信機能(event発生によらず、周期的に何らかのフロー制御指示を送る機能)を有している場合には、フロー制御指示受信部20は、自律解除を行う必要はない。なぜなら、あるフロー制御指示を伝送路障害等で正常に受信できなくても、フロー制御指示送信部30が自律送信機能を持っていれば、正常受信できなかったフロー制御指示がいずれは再び送られてくるからである。
したがって、自律送信でフロー制御指示を送信している場合には、フロー制御指示受信部20は、フロー制御を自律で解除する必要はなく、この場合には、フロー制御自律解除機能の動作を停止させることになる。
また、フロー制御指示送信部30が通常送信機能(event発生した輻輳状態のフロー制御指示を送る機能)しか装備していない場合には、ある1つのフロー制御指示は、「データ送信停止」→「データ送信(データ送信停止解除)」、「データ送信停止」→「データ送信」、・・・の内容を繰り返して送信する。例えば、「キュー#1が輻輳したのでデータ送信停止のフロー制御指示を送る」→「データ送信停止のフロー制御が行われてキュー#1が輻輳解除となって、データ送信のフロー制御指示を送る」、「キュー#5が輻輳したのでデータ送信停止のフロー制御指示を送る」→「データ送信停止のフロー制御が行われてキュー#5が輻輳解除となって、データ送信のフロー制御指示を送る」、・・・といった具合である。
これに対し、フロー制御指示送信部30が自律送信を行う場合には、周期的にフロー制御指示を送信しているので、ある1つのキューまたはラインを見ると、そのフロー制御指示は「データ送信停止」→「データ送信停止」→「データ送信停止」→・・・、または「データ送信」→「データ送信」→「データ送信」→・・・の内容を繰り返して送信する。
例えば、ラインの輻輳状態を見たとき、輻輳していれば、ラインに対するデータ送信停止のフロー制御指示が輻輳解除となるまで周期毎に何度も送られることになる。また、輻輳解除ならば、ラインに対するデータ送信のフロー制御指示が周期毎に何度も送られることになる。
したがって、自律解除機能停止判定部22は、ある1つのキューまたはラインに対して、データ送信停止のフロー制御指示を連続回数受信している、またはデータ送信のフロー制御指示を連続回数受信していることを監視し、連続して受信しているならば自律解除停止指示a1を出力する。
ここで、監視する連続受信回数が上位から10回と設定されて、データ送信内容のラインレベルフロー制御指示fLをカウントするならば、自律解除機能停止判定部22は、このラインレベルフロー制御指示fLを受信する度にカウントアップする。カウント値が10回となったら、フロー制御指示送信部30には自律送信機能が具備されているものとみなして、自律解除停止指示a1を出力することになる。
自律解除活性化判定部23は、メインスイッチ制御部3が二重化(0系、1系の冗長構成)されている場合に、自律解除機能を強制的に活性化するかどうかの判定制御を行う(自律解除機能を活性化するとは、自律解除の制御を起動させるということ)。
この機能はメインスイッチ制御部3が二重化されている際に、一方の系が自律送信機能を有し、他方の系が自律送信機能を有していなような場合に特に有効な機能となる。ここで、メインスイッチ制御部3の0系側が自律送信機能及び通常送信機能を有しており、1系側が自律送信機能を持たず、通常送信機能だけを有しているものとする。
今、メインスイッチ制御部3の0系と回線制御部2とが通信を行っている。この状態では、メインスイッチ制御部3の0系は自律送信を行い、フロー制御指示受信部20は、自律解除を行う必要がないので、同一内容のフロー制御指示の連続受信を確認することで、自律解除機能は停止させている。その後、メインスイッチ制御部3が0系から1系に切り替わったとする。
自律解除活性化判定部23は、上位から通知された系切替え情報により、メインスイッチ制御部3が0系から1系に切り替わったことを知る。自律解除活性化判定部23は、自律解除機能を活性化するための自律解除活性化指示a2を出力する。メインスイッチ制御部3の1系は、自律送信機能を持たず、通常送信だけを行うので、回線制御部2とメインスイッチ制御部3間で、輻輳解除を示すフロー制御指示がエラーとなった場合でも、回線制御部2は自律解除機能が作動しているので、誤動作から自律に復旧することができる。
なお、自律解除活性化判定部23は、0/1のいずれの系のメインスイッチ制御部3に自律送信機能が具備されているかということは知る必要がなく、0系→1系、または1系→0系のどちらかに系切替えが起きたら、自律解除機能を活性化するものである。なぜなら、系切替え時に自律解除機能をONにしておけば、切り替わった系が自律送信機能を備えていなければそのままのONした状態でよいし、切り替わった系が自律送信機能を備えていれば、同一内容の連続受信判断処理によって、自律解除がOFFされるからである。
一方、自律解除イネーブル生成部24は、自律解除停止指示a1及び自律解除活性化指示a2にもとづいて、自律解除を行うか否かの自律解除イネーブルe3を出力する(自律解除を行うときは自律解除イネーブルe3は有効となり、自律解除を行わないときは無効となる)。
自律解除停止指示a1が有効ならば、自律解除を停止するために、自律解除イネーブルe3は無効となる。自律解除活性化指示a2が有効ならば、自律解除を起動するために、自律解除イネーブルe3は有効となる。なお、ハードリセット後のデフォルトは、自律解除を行う側に設定しておき、自律解除イネーブルe3は有効とする。
自律解除タイマ25aは、データ送信停止のフロー制御を自律的に解除して、データ送信を再び実行するためのタイマであり、自律解除イネーブルe3が有効なときのみ動作する。ラインレベルフロー制御指示fLがデータ送信停止の内容ならばカウントアップを開始し、その後、データ送信の内容のラインレベルフロー制御指示fLを受信するとカウント値をクリアする(この場合、メインスイッチ制御部3と回線制御部2との通信は正常に行われたことになる)。
また、カウント時間が上位から設定された時間を越えてしまった場合には、異常が発生したものとみなして(データ送信の内容のラインレベルフロー制御指示fLを正常受信できなかったなど)、自律解除指示(データ送信再開指示)a3を出力する(出力したらカウント値はクリアする)。
メインスイッチ輻輳情報生成部25bは、メインスイッチ輻輳情報Mを生成し、図2の読み出し制御部201cへ送信する。メインスイッチ輻輳情報Mは、ラインレベル輻輳情報mL、キューレベル輻輳情報mq#1〜mq#nのいずれかを含む。図に示すメインスイッチ輻輳情報生成部25bは、ラインレベルフロー制御指示fLを受信して、ラインレベル輻輳情報mLを出力している。また、自律解除指示a3が有効の場合には、受信するラインレベルフロー制御指示fLがデータ送信の内容を示していなくても、データを送信させるためのラインレベル輻輳情報mLを出力することになる。
自律解除通知部25cは、フロー制御指示受信部20で自律解除を動作させた場合には、その旨(自律解除の履歴情報)を上位へ通知する(自律解除を行うのは何らかの異常状態が発生したことであるから上位へ通知してやる)。ラインレベルに対して自律解除を行ったらラインレベル自律解除通知信号hL、キューレベルに対して自律解除を行ったらキューレベル自律解除通知信号hq#1〜hq#nを出力する。上位が自律解除通知信号を認識した際にはこれらの信号はクリアされる。
次にフロー制御指示送信部30の変形例について説明する。図15はフロー制御指示送信部30の変形例の構成を示す図である。変形例のフロー制御指示送信部30aが図7の構成と異なる点は、自律送信用フロー制御指示生成部34に対して、ラインレベル輻輳情報mL及びキューレベル輻輳情報mq#1〜mq#nが入力されている点である。その他のブロック構成は同じである。
図7で上述したフロー制御指示送信部30の自律送信では、自律送信の周期がきたら、ラインレベルまたはキューレベルの輻輳状態を選択して、フロー制御指示を送信するものであった。一方、変形例では、フロー制御指示送信部30が送信したフロー制御指示の内容を、フロー制御指示受信部20が正常に認識できていないものを選択して送信するものである。
自律送信用フロー制御指示生成部34aは、フロー制御指示受信部20から送信されたラインレベル輻輳情報mL及びキューレベル輻輳情報mq#1〜mq#nを受信する。そして、自律送信用フロー制御指示を生成する場合、値の食い違うものを選択する。
例えば、FCRR#8が輻輳を発生しており、キューレベル輻輳情報mq#8が輻輳解除を示し、その他のキュー及びラインの内容が一致していたとする。この場合、フロー制御指示送信部30とフロー制御指示受信部20との間でキュー#8の内容が異なっているので、自律送信用フロー制御指示生成部34aは、自律送信周期がきたらキュー#8を選択して、キュー#8に関するフロー制御指示を生成する(回線制御部2から送信されたラインレベル輻輳情報mL及びキューレベル輻輳情報mq#1〜mq#nは、通常送信時に用いたFCCRと同じような役目を果たしているといえる)。このように、フロー制御指示受信部20が誤認識しているフロー制御指示だけを送信することで、フロー制御の効率をさらに向上することができる。
なお、図15に示した変形例のフロー制御指示送信部30aにおいても、自律送信と通常送信の周期が一致した際には、通常送信側のフロー制御指示を選択することは変わらない。
次に図7で示したフロー制御指示送信部30の構成ブロックの詳細ついて説明する。図16〜図19はフロー制御指示送信部30の構成ブロックを示す図である。自律送信用タイミング生成部31は、セルフレームカウンタ31a、比較器31bから構成され、通常送信用フロー制御指示生成部33は、ラインレベルデータ送信停止判定部33a−1、キューレベルデータ送信停止判定部33b−1、ラインレベルデータ送信判定部33a−2、キューレベルデータ送信判定部33b−2、判定結果選択部33cから構成される。
自律送信用フロー制御指示生成部34は、カウンタ34a、セレクタ34b、情報変換部34cから構成され、フロー制御指示付与部35は、フロー制御指示選択部35a、情報付与部35bから構成される。
FCCR生成部36は、デコーダ36a−1、キュー/ライン単位セット指示生成部36a−2、キュー/ライン単位クリア指示生成部36a−3、デコーダ36b−1、キュー/ライン単位セット指示生成部36b−2、キュー/ライン単位クリア指示生成部36b−3、FCCR保持部36cから構成される。
図16の自律送信用タイミング生成部31に対し、セルフレームカウンタ31aは、セルフレームをカウントイネーブルにしてカウントアップを行う。そして、自律送信イネーブルe2が有効で、通常送信優先イネーブルe1が無効であるときのセルフレームでカウンタを1にロードする(例えば、64セルフレーム内の1セルフレームの区間が自律送信イネーブルe2が有効となるので、自律送信イネーブルe2の有効を確認したら、次の64セルフレームをカウントするために1をロードする)。さらに、通常送信優先イネーブルe1及び自律送信イネーブルe2が共に有効なときのセルフレームでカウンタを周期設定値にロードする(周期設定値をロードすれば次のセルフレームでカウントアップが開始されるので、通常送信後即座に自律送信の周期カウントが開始することになる(∵図13))。
比較器31bは、カウント値と、上位より通知された周期設定値(例えば、64セルフレーム)とを比較して、カウント値≧周期設定値となれば、自律送信イネーブルe2を1セルフレーム区間有効にする。
図17の通常送信用フロー制御指示生成部33に対し、ラインレベルデータ送信停止判定部33a−1は、ラインレベルのデータ送信停止判定を行う。FCRRのラインレベルのビットが1で、FCCRのラインレベルのビットが0のときに、ラインレベルデータ送信停止の判定結果を有効にする。
キューレベルデータ送信停止判定部33b−1は、キューレベルのデータ送信停止判定を行う。キュー単位にFCRRのビットが1で、FCCRのビットが0のものを検索する(検索条件αとする)。この検索条件αに該当するキューが存在するならば、キューレベルデータ送信停止の判定結果を有効にし、該当のキュー番号(キュー情報)も含めて送信する。また、検索条件αを満たすキューが複数ある場合、ラウンドロビン方式で1つのキューを選択し、そのキュー番号も含めて、キューレベルデータ送信停止の判定結果と一緒に通知する。
ラウンドロビンによる動作について説明する。まず、検索ポインタを定義する。
このポインタはデフォルトが1である。n個のキューがあるとすると、キューレベルのFCRR、FCCRはそれぞれn個存在するので、これに1からnまでの番号を与える。
現在の検索ポインタの値が1であるとすると、1から順に検索条件αを満たしているキューを検索し、最初に検索条件αを満たしたキューの番号をキューレベルデータ送信停止の判定結果と一緒に通知する。
さらに、そのキュー番号を一旦保存しておき、キューレベルの判定選択結果の通知があった場合には、検索ポインタの値を「保存したキュー番号+1」の値に更新する(保存したキュー番号が#nのときには、検索ポインタの値を1にする)。また、キューレベルデータ送信停止判定結果が有効である通知を行っても、キューレベル判定選択結果の通知がなければ、検索ポインタの値は更新しない。このような方法でキューを選択する。
ラインレベルデータ送信判定部33a−2は、ラインレベルのデータ送信判定を行う。FCRRのラインレベルのビットが0で、FCCRのラインレベルのビットが1のときに、ラインレベルデータ送信の判定結果を有効にする。
キューレベルデータ送信判定部33b−2は、キューレベルのデータ送信判定を行う。キュー単位にFCRRが0で、FCCRが1のものを検索する(検索条件βとする)。この検索条件βに該当するキューが存在するならば、キューレベルデータ送信の判定結果を有効にし、該当のキュー番号も含めて送信する。また、検索条件βを満たすキューが複数ある場合、上記と同様のラウンドロビン方式で1つのキューを選択し、そのキュー番号も含めて、キューレベルデータ送信の判定結果と一緒に通知する。
なお、上記ではキューにおいて、FCRRとFCCRのレベル値が不一致となって、輻輳状態が変化したものが複数発生したときのラウンドロビンによるキュー選択を示したが、キューの中で状態不一致があり、かつラインに対しても状態不一致がでたときは、例えば、以下のような優先順位で選択する。
[高優先] ラインレベルフロー制御指示(データ送信停止)→キューレベルフロー制御指示(データ送信停止)→ラインレベルフロー制御指示(データ送信)→キューレベルフロー制御指示(データ送信) [低優先]
一方、判定結果選択部33cは、ラインレベルデータ送信停止判定部33a−1から通知されるラインレベルデータ送信停止判定結果が有効な場合には、通常送信用フロー制御指示f1は、ラインレベルのデータ送信停止の内容のフロー制御指示とする。
ラインレベルデータ送信停止判定結果が無効で、キューレベルデータ送信停止判定部33b−1より通知されるキューレベルデータ送信停止判定結果が有効な場合には、通常送信用フロー制御指示f1は、キューレベルデータ送信停止判定結果と一緒に通知されたキュー番号に該当するキューレベルのデータ送信停止の内容のフロー制御指示とする。そして、キューレベルデータ送信停止判定選択を通知する。
また、ラインレベルデータ送信停止判定結果とキューレベルデータ送信停止判定結果との双方が無効で、ラインレベルデータ送信判定部33a−2より通知されるラインレベルデータ送信判定結果が有効な場合には、通常送信用フロー制御指示f1は、ラインレベルのデータ送信の内容のフロー制御指示とする。
さらに、ラインレベルデータ送信停止判定結果、キューレベルデータ送信停止判定結果、ラインレベルデータ送信判定結果の3つが無効で、キューレベルデータ送信判定部33b−2より通知されるキューレベルデータ送信判定結果が有効な場合には、通常送信用フロー制御指示f1は、キューレベルデータ送信判定結果と一緒に通知されたキュー番号に該当するキューレベルのデータ送信の内容のフロー制御指示とする。そして、キューレベルデータ送信判定選択を通知する。
さらにまた、ラインレベルデータ送信停止判定結果、キューレベルデータ送信停止判定結果、ラインレベルデータ送信判定結果、キューレベルデータ送信判定結果のいずれかが有効で、図16の比較器31bより通知される自律送信イネーブルe2が有効な場合には通常送信優先イネーブルe1を出力する。
図18の自律送信用フロー制御指示生成部34に対し、カウンタ34aは、自律送信用にどのキューを選択するかを示すカウンタである。n個のキューがあるとすると、ラインレベルと合わせて(n+1)個のビットのFCRRが存在する。カウンタ34aは、自律送信イネーブルe2が有効で、通常送信優先イネーブルe1が無効なときのセルフレームのタイミングでカウントアップを行う。カウントアップは0からnまでを繰り返して行われる。
セレクタ34bは、(n+1)個のビットのFCRRの中から、カウンタ34aより通知されるカウント値で示されるビットの値を選択する。そして、選択したFCRRのビット値と、そのキュー番号を選択結果として通知する。
情報変換部34cは、セレクタ34bより通知される選択結果を、自律送信用フロー制御指示f2に変換する。選択したFCRRのビット値が0の場合には、自律送信用フロー制御指示f2は、データ送信の内容のフロー制御指示とし、一緒に選択したキュー番号と含めて通知する。また、選択したFCRRのビット値が1の場合には、自律送信用フロー制御指示f2は、データ送信停止のフロー制御指示とし、一緒に選択したキュー番号と含めて通知する。なお、情報変換部34cは、自律送信イネーブルe2が有効で、通常送信優先イネーブルe1が無効な場合のみ動作する。
図18のフロー制御指示付与部35に対し、フロー制御指示選択部35aは、通常送信用フロー制御指示f1または自律送信用フロー制御指示f2のいずれかを選択する。通常送信用フロー制御指示f1と自律送信用フロー制御指示f2は、同一セル時間内に2つ同時に有効になることはない。したがって、有効なフロー制御指示を選択すればよい(なお、通常送信用フロー制御指示f1と自律送信用フロー制御指示f2が2つとも無効な場合には、どちらのフロー制御指示を選択してもかまわない)。
情報付与部35bは、セルフレームでフロー制御指示選択部35aより通知されるフロー制御指示を取得し、セルデータ中のセルヘッダにフロー制御指示を付与する。
図19のFCCR生成部36に対し、デコーダ36a−1、36b−1は、通常送信用フロー制御指示f1と自律送信用フロー制御指示f2のキュー番号、ラインをデコードし、結果(n+1)個のデコードフラグを生成する。
キュー/ライン単位セット指示生成部36a−2は、通常送信用フロー制御指示f1がデータ送信停止の内容の場合に、デコーダ36a−1より通知されるデコードフラグをそのまま通常送信のフロー制御によるFCCRセット指示とする。
キュー/ライン単位クリア指示生成部36a−3は、通常送信用フロー制御指示f1がデータ送信の内容の場合に、デコードフラグをそのまま通常送信用フロー制御によるFCCRクリア指示とする。
キュー/ライン単位セット指示生成部36b−2は、自律送信用フロー制御指示f2がデータ送信停止の内容の場合に、デコーダ36b−1より通知されるデコードフラグをそのまま自律送信のフロー制御によるFCCRセット指示とする。
キュー/ライン単位クリア指示生成部36b−3は、自律送信用フロー制御指示f2がデータ送信の内容の場合に、デコードフラグをそのまま自律送信用フロー制御によるFCCRクリア指示とする。
FCCR保持部36cは、(n+1)個のFCCRを生成し保持する。キュー単位またはラインに対し、通常送信用フロー制御によるFCCRセット指示が通知された場合、または自律送信用フロー制御によるFCCRセット指示が通知された場合に、対応するキューまたはラインのFCCRをセットする。
そして、通常送信用フロー制御によるFCCRクリア指示が通知された場合、または自律送信用フロー制御によるFCCRクリア指示が通知された場合に、対応するキューまたはラインのFCCRをクリアする(FCCRは、通常送信時のフロー制御指示生成処理のときに使用されるが、FCCRの情報自体を生成するには、通常送信用フロー制御指示f1及び自律送信用フロー制御指示f2の両方を利用して前回の輻輳状態を記録しておくものである)。
次に図14で示したフロー制御指示受信部20の構成ブロックの詳細ついて説明する。図20〜図22はフロー制御指示受信部20の構成ブロックを示す図である。フロー制御指示抽出部21は、情報抽出部21a、ラインレベル認識部21b、デコーダ21c、キューレベル認識部21dから構成され、自律解除機能停止判定部22は、データ送信停止連続受信カウンタ22a、比較器22b、データ送信連続受信カウンタ22c、比較器22d、OR素子22eから構成される。
自律解除活性化判定部23は、立ち上がりエッジ検出部23a、立ち下がりエッジ検出部23b、OR素子23cから構成され、輻輳レベル制御部25内の自律解除タイマ25aは、カウンタ25a−1、比較器25a−2から構成される。
図20のフロー制御指示抽出部21に対し、情報抽出部21aは、図2のP/C202から出力されたセルデータを受信し、セルヘッダに付与されているフロー制御指示を抽出する。抽出後はセルヘッダのフロー制御指示領域をクリアする。
ラインレベル認識部21bは、情報抽出部21aより通知されるフロー制御指示がラインレベルのフロー制御指示か否かを判断し、ラインレベルであればラインレベルフロー制御指示fLを生成する。デコーダ21cは、情報抽出部21aより通知されるフロー制御指示がキューレベルのフロー制御指示である場合に、キュー番号をデコードしデコードフラグを生成する。
キューレベル認識部21dは、情報抽出部21aより通知されるフロー制御指示が、キューレベルフロー制御指示であることを認識し、デコーダ21cより通知されるn個のデコードフラグを参照する。そしてn個のキューレベルフロー制御指示fq#1〜fq#nを生成する。
図21の自律解除機能停止判定部22に対し、データ送信停止連続受信カウンタ22aは、ラインレベルフロー制御指示fLがデータ送信停止の内容の場合にカウントアップし、データ送信の内容の場合に0にロードする。さらに、比較器22bより停止指示が通知された場合には、カウントを0にロードする。
比較器22bは、データ送信停止連続受信カウンタ22aより通知されるカウント値と、上位より通知される連続受信回数設定値とを比較する。「カウント値≧連続受信回数設定値」となる場合に、データ送信停止連続受信による停止指示を通知する。
データ送信連続受信カウンタ22cは、ラインレベルフロー制御指示fLがデータ送信の内容の場合にカウントアップし、データ送信停止の内容の場合に0にロードする。さらに、比較器22dより停止指示が通知された場合には、カウントを0にロードする。
比較器22dは、データ送信連続受信カウンタ22cより通知されるカウント値と、上位より通知される連続受信回数設定値とを比較する。「カウント値≧連続受信回数設定値」となる場合に、データ送信連続受信による停止指示を通知する。
OR素子22eは、比較器22bより通知されるデータ送信停止連続受信による停止指示と、比較器22dより通知されるデータ送信連続受信による停止指示のOR論理をとり、自律解除停止指示a1とする。
図21の自律解除活性化判定部23に対し、立ち上がりエッジ検出部23aは、系切替え情報の立ち上がりエッジを検出する。立ち下がりエッジ検出部23bは、系切替え情報の立ち下がりエッジを検出する。OR素子23cは、立ち上がり検出パルスと立ち下がり検出パルスのOR論理をとり、自律解除活性化指示a2とする。
自律解除イネーブル生成部24は、フリップフロップであり、自律解除イネーブルe3を生成する。OR素子23cより通知される自律解除活性化指示a2により、自律解除イネーブルe3をセットし、OR素子22eより通知される自律解除停止指示a1により自律解除イネーブルe3をクリアする。なお、自律解除イネーブルe3の初期状態はセット状態である。
図22の自律解除タイマ25aに対し、カウンタ25a−1は、自律解除を行うためのタイマとして動作するカウンタである。自律解除イネーブルe3が有効な場合のみカウンタが動作し、自律解除イネーブルe3が無効な時はカウント値は0である。
自律解除イネーブルe3が有効で、ラインレベルフロー制御指示fLがデータ送信停止の内容のときにカウンタがタイマとして動作し、経過時間を計測し始める。また、ラインレベルフロー制御指示fLがデータ送信の内容のときにカウンタを0にロードし経過時間の計測をやめる。また、比較器25a−2より自律解除指示が通知された時もカウンタを0にロードし、経過時間の計測をやめる。
比較器25a−2は、カウンタ25a−1より通知されるカウント値と上位より通知される自律解除タイマ設定値とを比較する。そして「カウント値≧自律解除タイマ設定値」の時に自律解除指示a3を通知する。
メインスイッチ輻輳情報生成部25bは、フリップフロップでありラインレベル輻輳情報mLを生成する。ラインレベルフロー制御指示fLがデータ送信停止である場合には、ラインレベル輻輳情報mLをセットする。ラインレベルフロー制御指示fLがデータ送信である場合、または比較器25a−2より自律解除指示a3の通知があった場合には、ラインレベル輻輳情報mLをクリアする。
自律解除通知部25cは、フリップフロップであり自律解除を行ったことを示すラインレベルの自律解除通知信号hLを生成する。比較器25a−2より自律解除指示a3が通知された場合には、ラインレベルの自律解除通知信号hLをセットする。ソフト等の上位よりこのフラグが読み出されて、もしくは自律解除活性化指示a2が通知された場合には、ラインレベルの自律解除通知信号hLをクリアする。
以上説明したように、event 形式のフロー制御において、フロー制御指示送信部30とフロー制御指示受信部20の間で伝送路上の障害等によりフロー制御指示が認識できなかったり、フロー制御指示を誤認識して誤動作しても、ハード自律で正常動作に復旧することができ、フロー制御の効率のよいアーキテクチャを構成することが可能になる。
(付記1) フロー制御を行って信号の伝送を行う伝送システムにおいて、
データの受信制御を行うデータ受信部と、データ受信時、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から1つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側のフロー制御指示を優先的に送信するフロー制御指示送信部と、から構成されるフロー制御指示送信側伝送装置と、
データの送信制御を行うデータ送信部と、フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行うフロー制御指示受信部と、から構成されるフロー制御指示受信側伝送装置と、
を有することを特徴とする伝送システム。
(付記2) 前記フロー制御指示送信部は、単一キューに対するキューレベルの輻輳状態、またはすべてのキューに対するラインレベルの輻輳状態、のいずれかに対応するフロー制御指示を送信することを特徴とする付記1記載の伝送システム。
(付記3) 前記フロー制御指示受信部は、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うことを特徴とする付記1記載の伝送システム。
(付記4) 前記フロー制御指示受信部は、データ送信停止の自律解除を行った場合は、上位へ通知することを特徴とする付記3記載の伝送システム。
(付記5) 前記フロー制御指示受信部は、同一内容の輻輳状態のフロー制御指示を一定回数連続して受信した場合には、自律解除制御を停止することを特徴とする付記3記載の伝送システム。
(付記6) 前記フロー制御指示受信部は、前記フロー制御送信装置が二重化されている場合、系切り替え時には、自律解除制御を活性化することを特徴とする付記3記載の伝送システム。
(付記7) 前記フロー制御指示受信部は、自己が認識したフロー制御指示の内容を前記フロー制御指示送信部へ通知し、前記フロー制御指示送信部は、通知されたフロー制御指示の内容とは異なる輻輳状態に関するフロー制御指示の自律送信を行い、かつ通常送信と自律送信とのタイミングが一致したときには、通常送信側のフロー制御指示を優先的に送信することを特徴とする付記1記載の伝送システム。
(付記8) フロー制御を行って信号の伝送を行う伝送装置において、
データの受信制御を行うデータ受信部と、
データ受信時、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から1つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側のフロー制御指示を優先的に送信するフロー制御指示送信部と、
を有することを特徴とする伝送装置。
(付記9) フロー制御を行って信号の伝送を行う伝送装置において、
データの送信制御を行うデータ送信部と、
フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行い、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うフロー制御指示受信部と、
を有することを特徴とする伝送装置。
(付記10) フロー制御を行って信号の伝送を行う伝送システムにおいて、
各回線から送信された固定長のセルを受信して、多重化した後に共通バッファにバッファリングするセル受信部と、前記共通バッファから多重化セルを読み出してスイッチングするセル読み出し部と、バッファリング状態から輻輳状態を監視し輻輳状態フラグを生成するバッファ監視部と、多重化したセルを回線毎に分離する分離部と、輻輳状態フラグにもとづき、フロー制御指示を作成してセルに付加し、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から1つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側の輻輳状態のフロー制御指示を優先的に送信するフロー制御指示送信部と、フロー制御指示が付加されたセルに誤り訂正符号を付加して送信する誤り訂正符号付加部と、から構成されるメインスイッチ制御装置と、
可変長のパケットをパケット/セル変換バッファに書き込んで、フロー制御指示にもとづき読み出し、回線毎にセルを前記メインスイッチ制御装置へ送信するセル送信部と、フロー制御指示が付加されたセルを受信して誤り訂正処理を行う誤り訂正処理部と、フロー制御指示にもとづき、データ送信停止及びデータ送信によるフロー制御を行うフロー制御指示受信部と、セルをパケットに変換してパケット回線側へ送信するパケット送信部と、から構成される回線制御装置と、
を有することを特徴とする伝送システム。
(付記11) 前記フロー制御指示送信部は、単一キューに対するキューレベルの輻輳状態、またはすべてのキューに対するラインレベルの輻輳状態、のいずれかに対応するフロー制御指示を送信することを特徴とする付記10記載の伝送システム。
(付記12) 前記フロー制御指示受信部は、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うことを特徴とする付記10記載の伝送システム。
(付記13) 前記フロー制御指示受信部は、データ送信停止の自律解除を行った場合は、上位へ通知することを特徴とする付記12記載の伝送システム。
(付記14) 前記フロー制御指示受信部は、同一内容の輻輳状態のフロー制御指示を一定回数連続して受信した場合には、自律解除制御を停止することを特徴とする付記12記載の伝送システム。
(付記15) 前記フロー制御指示受信部は、前記フロー制御送信装置が二重化されている場合、系切り替え時には、自律解除制御を活性化することを特徴とする付記12記載の伝送システム。
(付記16) 前記フロー制御指示受信部は、自己が認識したフロー制御指示の内容を前記フロー制御指示送信部へ通知し、前記フロー制御指示送信部は、通知されたフロー制御指示の内容とは異なる輻輳状態に関するフロー制御指示の自律送信を行い、かつ通常送信と自律送信とのタイミングが一致したときには、通常送信側のフロー制御指示を優先的に送信することを特徴とする付記10記載の伝送システム。
(付記17) フロー制御を行ってセルのスイッチングを行うメインスイッチ制御装置において、
各回線から送信された固定長のセルを受信して、多重化した後に共通バッファにバッファリングするセル受信部と、
前記共通バッファから多重化セルを読み出してスイッチングするセル読み出し部と、
バッファリング状態から輻輳状態を監視し輻輳状態フラグを生成するバッファ監視部と、
多重化したセルを回線毎に分離する分離部と、
輻輳状態フラグにもとづき、フロー制御指示を作成してセルに付加し、輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から1つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側の輻輳状態のフロー制御指示を優先的に送信するフロー制御指示送信部と、
フロー制御指示が付加されたセルに誤り訂正符号を付加して送信する誤り訂正符号付加部と、
を有することを特徴とするメインスイッチ制御装置。
(付記18) フロー制御を行って回線毎にセルの送信を行う回線制御装置において、
可変長のパケットをパケット/セル変換バッファに書き込んで、フロー制御指示にもとづき読み出し、回線毎にセルを送信するセル送信部と、
フロー制御指示が付加されたセルを受信して誤り訂正処理を行う誤り訂正処理部と、
フロー制御指示にもとづき、データ送信停止及びデータ送信によるフロー制御を行い、フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うフロー制御指示受信部と、
セルをパケットに変換してパケット回線側へ送信するパケット送信部と、
を有することを特徴とする回線制御装置。
(付記19) フロー制御指示の通知をイベント形式で行ってフロー制御を行うフロー制御方法において、
輻輳が発生または解除となった状態のイベントが生じた場合には、該当の輻輳状態のフロー制御を行うためのフロー制御指示を送信する通常送信、または周期毎に現在の複数の輻輳状態から1つの輻輳状態を選択して、選択した輻輳状態に対応するフロー制御指示を自律的に送信する自律送信の少なくとも一方の機能を有し、
通常送信と自律送信とのタイミングが一致したときには、実際に輻輳が発生または解除となった通常送信側の輻輳状態のフロー制御指示を優先的に送信し、
フロー制御指示を受信して、データ送信停止及びデータ送信によるフロー制御を行うことを特徴とするフロー制御方法。
(付記20) 単一キューに対するキューレベルの輻輳状態、またはすべてのキューに対するラインレベルの輻輳状態、のいずれかに対応するフロー制御指示を送信することを特徴とする付記19記載のフロー制御方法。
(付記21) フロー制御指示の内容がデータ送信停止を示す場合はタイマを起動し、一定時間経過してもデータ送信停止解除を示すフロー制御指示を受信しなければ、データ送信停止の自律解除を行うことを特徴とする付記19記載のフロー制御方法。
(付記22) データ送信停止の自律解除を行った場合は、上位へ通知することを特徴とする付記21記載のフロー制御方法。
(付記23) 同一内容の輻輳状態のフロー制御指示を一定回数連続して受信した場合には、自律解除制御を停止することを特徴とする付記21記載のフロー制御方法。
(付記24) フロー制御を送信する装置が二重化されている場合、系切り替え時には、自律解除制御を活性化することを特徴とする付記21記載のフロー制御方法。
(付記25) フロー制御指示の受信装置は、自己が認識したフロー制御指示の内容を、フロー制御指示の送信装置へ通知し、前記送信装置は、通知されたフロー制御指示の内容とは異なる輻輳状態に関するフロー制御指示の自律送信を行い、かつ通常送信と自律送信とのタイミングが一致したときには、通常送信側のフロー制御指示を優先的に送信することを特徴とする付記19記載のフロー制御方法。