(57)【特許請求の範囲】
【請求項１】
入力されるパケットを第１のバッファに格納するとともに、入力されたパケットの出力先を複数の出力先から選択する第１のスイッチ回路と、
入力されるパケットを第２のバッファに格納するとともに、入力されたパケットの出力先を前記複数の出力先から選択する第２のスイッチ回路と、
前記第１および第２のバッファから優先的に読み出される高優先クラスに分類されるパケット、および、前記高優先クラスよりも優先度が低い低優先クラスに分類されるパケットを受信し、前記第１および第２のスイッチ回路に入力する入力部と、
前記第１のスイッチ回路から出力される低優先クラスのパケットが、前記第２のスイッチ回路から出力される低優先クラスのパケットよりも後に前記入力部に入力されたパケットである場合、前記高優先クラスのパケットで送受信されるデータの量が多いほど、前記第１のスイッチ回路で前記低優先クラスのパケットの読み出し処理を停止する時間が長くなるように、前記読み出し処理が行われる時間を制御する制御部と、
前記第１または第２のスイッチ回路から出力されたパケットを選択された出力先に出力するパケット出力部
を備えることを特徴とするスイッチ装置。
【請求項２】
前記読み出し処理を停止する時間の計算に用いられる補正強度を、前記高優先クラスのパケットを用いて送受信されているデータの量が多いほど、大きくなるように決定する補正強度決定部をさらに備え、
前記制御部は、前記第１のスイッチ回路で前記読み出し処理が停止される時間を、前記第２のスイッチ回路で中継処理が行われる時間と前記補正強度の積とする
ことを特徴とする請求項１に記載のスイッチ装置。
【請求項３】
前記第１のスイッチ回路から出力されたパケットと前記第２のスイッチ回路から出力されたパケットをクラスごとに比較する比較部と、
前記クラスごとに、受信された順序を表すシーケンス番号を受信されたパケットに付加するシーケンス番号付加部をさらに備え、
前記入力部は、前記シーケンス番号が付加されたパケットを、前記第１および第２のスイッチ回路に出力し、
前記比較部は、
前記クラスごとに、前記第１のスイッチ回路から出力されたパケットに付加されている第１のシーケンス番号と、前記第１のシーケンス番号が付加されたパケットが出力されたときに、前記第２のスイッチ回路から出力されたパケットに付されている第２のシーケンス番号の差分を求め、
前記差分が閾値よりも大きい場合に、前記第１および第２のスイッチ回路が同期していないと判定する
ことを特徴とする請求項１もしくは２に記載のスイッチ装置。
【請求項４】
前記第１のスイッチ回路から出力されたパケットと前記第２のスイッチ回路から出力されたパケットをクラスごとに比較する比較部と、
前記クラスごとに、受信された順序を表すシーケンス番号を受信されたパケットに付加するシーケンス番号付加部をさらに備え、
前記入力部は、前記シーケンス番号が付加されたパケットを、前記第１および第２のスイッチ回路に出力し、
前記比較部は、
前記クラスごとに、前記第１のスイッチ回路から出力されたパケットに付加されている第１のシーケンス番号と、前記第１のシーケンス番号が付加されたパケットが出力されたときに、前記第２のスイッチ回路から出力されたパケットに付されている第２のシーケンス番号の差分を求め、
前記差分が閾値よりも大きい場合に、前記第１および第２のスイッチ回路が同期していないと判定し、
前記差分と前記低優先クラスで第１および第２のスイッチ回路が同期していないことを、前記補正強度決定部に通知し、
前記補正強度決定部は、前記差分が大きいほど、前記補正強度が大きくなるように、前記補正強度を決定する
ことを特徴とする請求項２に記載のスイッチ装置。
【請求項５】
入力されるパケットを第１のバッファに格納するとともに、入力されたパケットの出力先を複数の出力先から選択する第１のスイッチ回路と、入力されるパケットを第２のバッファに格納するとともに、入力されたパケットの出力先を前記複数の出力先から選択する第２のスイッチ回路を備えるスイッチ装置において、
前記第１および第２のバッファから優先的に読み出される高優先クラスに分類されるパケット、および、前記高優先クラスよりも優先度が低い低優先クラスに分類されるパケットを受信し、
受信したパケットを、前記第１および第２のスイッチ回路に入力し、
前記第１のスイッチ回路から出力された低優先クラスのパケットが、前記第２のスイッチ回路から出力された低優先クラスのパケットよりも後に受信したパケットである場合、前記高優先クラスのパケットで送受信されているデータの量が多いほど、前記第１のスイッチ回路で前記低優先クラスのパケットの読み出し処理を停止する時間が長くなるように、前記読み出し処理が行われる時間を制御し、
前記第１もしくは第２のスイッチ回路から出力されたパケットを出力する
ことを特徴とするパケットのスイッチ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットのスイッチ装置とパケットのスイッチ方法に関する。
【背景技術】
【０００２】
パケットの送信元の装置から宛先の装置までの間が、スイッチにより中継されることがある。図１に中継装置１の例を示す。図１に示す中継装置１は、管理モジュール２、インタフェースカード３（３ａ〜３ｃ）、および、スイッチ回路４（４ａ、４ｂ）を備えている。インタフェースカード３は、ユーザデータの入力と出力を行う。スイッチ回路４は、インタフェースカード３から入力されたパケットの宛先に応じて、スイッチングを行う。すなわち、スイッチ回路４は、入力されたパケットの宛先に応じて、出力するインタフェースカード３を選択し、選択したインタフェースカード３にパケットを出力する。管理モジュール２は、中継装置１の状態を管理し、スイッチ回路４やインタフェースカード３に制御情報を出力する。
【０００３】
図１に示す中継装置１では、故障の発生や計画的な装置交換に対応できるように、スイッチ回路４を２枚備えている。このように複数のスイッチ回路４を用いて冗長化している中継装置１では、障害が発生した場合などに切り替えを行うために、スイッチ回路４同士で同期を取っている。しかし、様々な要因により、スイッチ回路４の間で同期がとれなくなることがある。例えば、個々のスイッチ回路４がクロックを持っている場合、各クロックに同一の周波数が設定されていても、クロック間の偏差が原因となって、スイッチ回路４の間で動作する周波数に差が出てしまう。
【０００４】
図２（ａ）と図２（ｂ）は、スイッチ回路４ａとスイッチ回路４ｂの間で同期が取れていないときの動作の例を説明する図である。図２（ａ）と図２（ｂ）のいずれの場合も、スイッチ回路４ａのクロック周波数の方がスイッチ回路４ｂのクロック周波数よりも高いものとする。なお、図２（ａ）と図２（ｂ）において、インタフェースカード３ａ〜３ｃを、説明のため入力（Ｉｎｇｒｅｓｓ）側と出力（Ｅｇｒｅｓｓ）側に分けて記載している。しかし、図２（ａ）や図２（ｂ）の記載は図を見やすくするためのものであり、同一の符号が付されたインタフェースカード３は、物理的に１枚のインタフェースカード３であるものとする。例えば、インタフェースカード３ａは、入力側と出力側の両方に１枚ずつ記載されているが、物理的には、１枚のインタフェースカード３ａである。また、説明し易くするために、図２（ａ）および図２（ｂ）では、パケットが中継装置１に受信された順序を用いてパケットを図示している。番号が同じパケットは同一のパケットである。
【０００５】
インタフェースカード３ａは、受信したパケットをコピーして２つのパケットにした上で、一方のパケットをスイッチ回路４ａに出力し、残りのパケットをスイッチ回路４ｂに出力する。輻輳が発生していない間は、スイッチ回路４ｂでの処理がスイッチ回路４ａでの処理よりも遅れても、次に処理対象とするパケットがスイッチ回路４ｂに入力される前に遅れた分の処理が終了する。このため、スイッチ回路４ａとスイッチ回路４ｂのいずれも、図２（ａ）に示すように、処理対象のパケットは同じパケットである。
【０００６】
しかし、輻輳が発生すると、スイッチ回路４ｂでの処理の遅れが解消される前に、スイッチ回路４ａでは次のパケットの処理が開始される。このため、輻輳状態が継続すると次第にクロックが速いスイッチ回路４ａの読出しがスイッチ回路４ｂよりも先行し、スイッチ回路４ａとスイッチ回路４ｂでは、処理対象のパケットが異なってしまうことがある。図２（ｂ）の例では、スイッチ回路４ａが１６番目のパケットをインタフェースカード３ａに出力しているのに対し、スイッチ回路４ｂは１４番目のパケットをインタフェースカード３ａに出力している。この様な非同期状態において、現用のスイッチ回路４を切り替えてしまうと、パケットの重複や欠落が発生してしまう。例えば、図２（ｂ）において、スイッチ回路４ａが現用であり、スイッチ回路４ｂへ切り替えられたとすると、宛先の通信装置は１４番目と１５番目のパケットをスイッチ回路４ｂから受信する。しかし、宛先の通信装置では既にスイッチ回路４ａでスイッチングされた１４番目と１５番目のパケットを受信してしまっている。このため、宛先の通信装置は、１４番目と１５番目のパケットを重複して受信することになる。一方、スイッチ回路４ｂが現用であり、スイッチ回路４ａへ切り替えたとする。この場合、１４番目と１５番目のパケットは既にスイッチ回路４ａからの出力が終わっている。このため、スイッチ回路４ａは、現用に設定された後に１４番目と１５番目のパケットを宛先に転送しないが、宛先の通信装置は、スイッチ回路４ｂから１４番目と１５番目のパケットを受信していない。そこで、スイッチを切り替えたことにより、宛先の通信装置ではパケットの欠落が発生する。
【０００７】
このようなデータの重複や欠落を防ぐために、試験セルを用いて２重化スイッチのセルフローを同期化することができるAsynchronous Transfer Mode（ＡＴＭ）交換機が考案されている。このＡＴＭ交換機は、スイッチを切り替える際に、入力されるセルを監視し、空きセルの変わりに試験セルを挿入する。ＡＴＭ交換機は、スイッチから出力されるセルから試験セルを抽出し、試験セルの出力時刻を取得する。試験セルの出力時刻がスイッチによって異なる場合、ＡＴＭ交換機は、セルの出力時刻が早い方のスイッチに対して、セルの出力を遅らせる制御を行い、スイッチの同期が取れると、スイッチを切り替える。
【０００８】
さらに、関連する技術として、優先度の高いセルを予備運用系のスイッチに備えられたバッファに入力しておくことにより、障害発生時にスイッチが切り替えられても、優先度の高いセルの脱落を防ぐ方法が考案されている。さらに、現用系スイッチのバッファ部に蓄積されている蓄積セル数分だけキュー選択を行うことにより、現用系スイッチ部と予備系スイッチ部のセル蓄積状態とキュー選択状態を一致させる方法が提案されている。また、音声処理ブレード同士が音声処理の基準タイミングと時刻情報を共有し、基準タイミングに合わせて同期した音声処理を実施して同期化パケットを供給し、時刻情報に則って系切り替えを実施する方法も提案されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平５−５６０６５号公報
【特許文献２】特開平３−１３５１３５号公報
【特許文献３】特開２００９−２１２７２４号公報
【特許文献４】特開２０１０−７４６２９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
近年普及している中継装置では、複数のクラスに分類されたパケットの送受信が可能である。しかし、試験セルを用いて２重化スイッチのセルフローを同期化する方法、蓄積セル数分だけキュー選択を行う方法、音声処理の基準タイミングと時刻情報を共有する方法のいずれも、複数のクラスに分類されたデータの送受信を考慮していない。従って、これらの技術は、複数のクラスに分類されたパケットの送受信を行う中継装置に適用しても、非同期状態になっている複数のスイッチ回路を同期させることができない場合がある。
【００１１】
例えば、時刻Ｔ１にスイッチ回路４ａが出力する優先度の低いパケットは、同じ時刻にスイッチ回路４ｂが出力する優先度の低いパケットよりも１パケット分遅れていたとする。この場合、スイッチ回路４ａが１つのパケットを出力する時間の間、スイッチ回路４ｂの動作を停止させたとする。しかし、スイッチ回路４ｂが停止している間に、スイッチ回路４ａに優先度の高いパケットが入力されると、スイッチ回路４ａは優先度の低いパケットの処理を行わずに優先度の高いパケットを１つ出力してしまう。このため、非同期状態は解消されない。
【００１２】
また、優先度の高いセルを予備運用系のスイッチに備えられたバッファに入力しておく方法を適用しても、非同期状態を解消することはできない。
【００１３】
本発明は、複数のクラスに分類されたパケットを送受信する中継装置において、その中継装置に含まれている複数のスイッチ回路を同期させることを目的とする。
【課題を解決するための手段】
【００１４】
中継装置は、第１のスイッチ回路、第２のスイッチ回路、入力部、制御部、パケット出力部を備える。第１のスイッチ回路は、入力されるパケットを第１のバッファに格納するとともに、入力されたパケットの出力先を複数の出力先から選択する。第２のスイッチ回路は、入力されるパケットを第２のバッファに格納するとともに、入力されたパケットの出力先を前記複数の出力先から選択する。入力部は、前記第１および第２のバッファから優先的に読み出される高優先クラスに分類されるパケット、および、前記高優先クラスよりも優先度が低い低優先クラスに分類されるパケットを受信し、前記第１および第２のスイッチ回路に入力する。制御部は、前記第１のスイッチ回路から出力される低優先クラスのパケットが、前記第２のスイッチ回路から出力される低優先クラスのパケットよりも後に入力されたパケットである場合、前記第１のスイッチ回路で読み出し処理が行われる時間を制御する。このとき、前記高優先クラスのパケットで送受信されるデータの量が多いほど、前記第１のスイッチ回路で前記低優先クラスのパケットの読み出し処理を停止する時間が長くなるように、制御が行われる。パケット出力部は、前記第１または第２のスイッチ回路から出力されたパケットを選択された出力先に出力する。
【発明の効果】
【００１５】
複数のクラスに分類されたパケットを送受信する中継装置において、その中継装置に含まれている複数のスイッチ回路が同期される。
【図面の簡単な説明】
【００１６】
【図１】中継装置の例を示す図である。
【図２】複数のスイッチ回路の間で同期が取れていないときの動作の例を説明する図である。
【図３】中継装置の構成の例を示す図である。
【図４】シーケンス番号を加えられたパケットのフォーマットの例を示す図である。
【図５】中継装置のハードウェア構成の例を示す図である。
【図６】中継装置によりパケットが中継される場合の例を示す図である。
【図７】比較部が保持するテーブルの例を示す図である。
【図８】補正強度決定部が備えるテーブルの例を示す図である。
【図９】同期の確立のための処理の例を示すシーケンス図である。
【図１０】比較部の処理の例を説明するフローチャートである。
【図１１】制御部の処理の例を説明するフローチャートである。
【図１２】第２の実施形態で補正強度決定部が備えるテーブルの例を示す図である。
【図１３】第２の実施形態での比較部の処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
＜装置構成＞
図３は、中継装置１０の構成の例を示す図である。中継装置１０は、ＱｏＳ（Quality of Service）の複数のクラスに分類されたパケットを中継することができるものとする。例えば、第１のクラスに分類されるパケットと第２のクラスに分類されるパケットを中継するとき、第１のクラスの方が第２のクラスよりも優先度が高いとする。この場合、中継装置１０は、第１のクラスのパケットを第２のクラスのパケットに比べて優先的に中継する。以下の例では、高優先クラスと低優先クラスにパケットが分類されている場合について説明するが、パケットが分類されるクラスの数は実装に応じて変更されることがある。また、以下の例では、スイッチ回路３０が２枚の場合について説明しているが、実装に応じて、スイッチ回路３０の数が変更されることがある。
【００１８】
中継装置１０は、入力部２０、スイッチ回路３０（３０ａ、３０ｂ）、出力部４０を備える。以下の説明では、単に図を見やすくするために入力部２０と出力部４０を異なるブロックとして図示するが、入力部２０と出力部４０は物理的に同一のインタフェースカードに含まれているものとする。
【００１９】
入力部２０は、パケット入力部２１とシーケンス番号付加部２２を備える。中継装置１０が受信したパケットは、パケット入力部２１に入力される。パケット入力部２１は、入力されたパケットをシーケンス番号付加部２２に出力する。シーケンス番号付加部２２は、入力されたパケットのクラス別に、パケットの入力順序を示すシーケンス番号をパケットに付加する。
【００２０】
図４は、シーケンス番号を加えられたパケットのフォーマットの例を示す。図４に示すパケットは、パケットペイロード５１、パケットヘッダ５２、クラス情報５３、装置内ヘッダ５４を含む。ここで、装置内ヘッダ５４は、シーケンス番号付加部２２によって付加される。シーケンス番号付加部２２は、装置内ヘッダ５４に含まれる情報要素と個々の情報要素の値を記憶することができる。シーケンス番号（ＳＮ）フィールド５５は、装置内ヘッダ５４の情報要素の１つであり、シーケンス番号付加部２２によって生成される。シーケンス番号付加部２２は、パケットが分類されるクラスを特定し、クラスごとに受信したパケットの通し番号をシーケンス番号とする。シーケンス番号付加部２２は、パケットヘッダ５２に含まれているクラス情報５３を用いて送受信されるデータの優先度を確認することができるものとする。クラス情報５３は、例えば、Internet Protocol（ＩＰ）ヘッダに含まれているサービスタイプ（Type Of Service、ＴＯＳ）フィールドもしくはTraffic Classフィールドの値とすることができる。なお、装置内ヘッダ５４は、中継装置１０の内部で使用されるヘッダであり、中継装置１０から他の通信装置にパケットが出力されるときには、パケットから除去される。
【００２１】
シーケンス番号付加部２２は、装置内ヘッダ５４を付したパケットを複製して、一方をスイッチ回路３０ａへ出力し、他方のパケットをスイッチ回路３０ｂへ出力する。
【００２２】
スイッチ回路３０は、パケットバッファ３１、クロック３４、スイッチング部３５を備える。パケットバッファ３１は、高優先パケットバッファ３２と低優先パケットバッファ３３を有する。シーケンス番号付加部２２から入力されたパケットのうち優先度が高いパケットは高優先パケットバッファ３２に格納され、優先度が低いパケットは低優先パケットバッファ３３に格納される。クロック３４は、スイッチ回路３０が動作するためのクロックを生成する。スイッチング部３５は、高優先パケットバッファ３２および低優先パケットバッファ３３に格納されているパケットを、転送先に応じてスイッチングする。このとき、スイッチング部３５は、高優先パケットバッファ３２に格納されているパケットを優先的に処理する。スイッチング部３５は、パケットを宛先に転送するために、出力部４０に出力する。
【００２３】
出力部４０は、比較部４１、パケット合流部４２、レート監視部４３、補正強度決定部４４、制御部４５、および、パケット出力部４６を有する。比較部４１は、クラスごとに、スイッチ回路３０ａと３０ｂから出力されてきたパケットのシーケンス番号を比較する。例えば、比較部４１は、スイッチング部３５ａから出力された高優先クラスのパケットのシーケンス番号と、スイッチング部３５ｂから出力された高優先クラスのパケットのシーケンス番号を比較する。このとき、比較部４１は、スイッチング部３５ａから出力された高優先クラスのパケットのシーケンス番号と、スイッチング部３５ｂから出力された高優先クラスのパケットのシーケンス番号の差分を求める。さらに、比較部４１は、得られた差分を閾値と比較し、差分が閾値よりも大きい場合、高優先クラスのパケットの処理がスイッチ回路３０ａと３０ｂで同期していないと判断する。同期が取れていないと判断すると、比較部４１は、同期が取れていないクラスを特定する情報と共に、同期が取れていないことを、制御部４５と補正強度決定部４４に通知する。また、比較部４１は、スイッチ回路３０ａと３０ｂのいずれでの処理が先行しているかを示す情報も、制御部４５に通知する。
【００２４】
比較部４１は、低優先クラスのパケットについても同様の処理を行う。比較部４１の処理については、後で詳しく説明する。なお、比較部４１では、スイッチ回路３０ａから出力されたパケットとスイッチ回路３０ｂから出力されたパケットは、混合されない。このため、比較部４１では、図３に示すように、スイッチ回路３０ａから出力されたパケットが流れる配線とスイッチ回路３０ｂから出力されたパケットが流れる配線は、互いに接続されていないものとする。
【００２５】
比較部４１は、スイッチ回路３０ａと３０ｂから入力されたパケットをパケット合流部４２に出力する。パケット合流部４２では、スイッチ回路３０ａと３０ｂの各々でスイッチングされたパケットのうち、パケットの中継に使用しているスイッチ回路３０でスイッチングされたパケットをパケット出力部４６に出力する。パケット出力部４６に出力されないパケットは、パケット合流部４２により廃棄される。例えば、スイッチ回路３０ａが現用のスイッチである場合、パケット合流部４２は、スイッチ回路３０ａから出力されたパケットをパケット出力部４６に出力し、スイッチ回路３０ｂから出力されたパケットを廃棄する。パケット出力部４６は、パケット合流部４２から入力されたパケットを送信する際に、シーケンス番号付加部２２によって付された装置内ヘッダ５４を除去するものとする。
【００２６】
レート監視部４３は、パケット合流部４２からパケット出力部４６に出力されるパケットに含まれているデータの量を、パケットのクラスごとに計数することにより、所定の時間に中継されるデータ量に占める各クラスのデータの量の割合を算出する。データ量は、例えば、中継されるデータのバイト数、中継されるパケット数など、実装に応じた任意の単位を用いて計数されるものとする。レート監視部４３は、各クラスのデータの割合を、補正強度決定部４４に出力する。補正強度決定部４４は、比較部４１から同期が取れていないことと、同期が取れていないクラスが通知されると補正強度を決定する。補正強度の決定方法については後述する。補正強度決定部４４は、決定した補正強度を制御部４５に通知する。
【００２７】
制御部４５は、処理が進んでいる方のスイッチ回路３０において、同期が取れていないことが検出されたクラスのパケットのスイッチングが行われる時間を、通知された補正強度に応じて短くする。例えば、制御部４５は、ＯＮタイマとＯＦＦタイマを備えることができる。制御部４５は、ＯＮタイマがセットされてからタイムアップするまでの間、処理が進んでいる方のスイッチ回路３０にバックプレッシャをかける。以下の説明で、「バックプレッシャ」は、処理が進んでいる方のスイッチ回路３０において、同期が取れていないことが検出されたクラスのパケットのスイッチングを停止させることを指すものとする。例えば、制御部４５は、同期が取れていないことが検出されたクラスのパケットが格納されているバッファからの読み出しを停止することにより、バックプレッシャをかけることができる。その後、制御部４５は、ＯＦＦタイマをセットし、ＯＦＦタイマがタイムアップするまでの間は、バックプレッシャを停止する。従って、ＯＦＦタイマがセットされてからＯＦＦタイマがタイムアップするまでの間は、処理が進んでいる方のスイッチング部３５でも、同期が取れていないクラスのパケットのスイッチングが行われる。
【００２８】
制御部４５は、ＯＮタイマとＯＦＦタイマの各々に設定する時間の長さを、補正強度決定部４４から通知された補正強度に応じて決定する。例えば、ＯＮタイマにセットされる時間とＯＦＦタイマにセットされる時間の合計値を基準としたときに、ＯＮタイマにセットされる時間の割合が補正強度になるように、制御部４５は、各タイマにセットする時間を計算する。制御部４５の動作については、後で詳しく説明する。
【００２９】
図５に中継装置１０のハードウェア構成の例を示す。中継装置１０は、インタフェース７０とスイッチ回路３０ａ、３０ｂを備える。なお、インタフェース７０は、入力部２０および出力部４０として動作する。インタフェース７０は、制御回路７１とネットワーク接続装置７２を備える。ネットワーク接続装置７２は、パケット入力部２１およびパケット出力部４６として動作する。シーケンス番号付加部２２、比較部４１、パケット合流部４２、レート監視部４３、補正強度決定部４４、制御部４５は、制御回路７１により実現される。制御回路７１は、例えば、ＦＰＧＡ（Field-Programmable Gate Array）やＬＳＩ（Large Scale Integration）などとすることができる。スイッチ回路３０は、メモリ６１（６１ａ、６１ｂ）、スケジューラ回路６２（６２ａ、６２ｂ）、クロック３４ａ、３４ｂを備えている。ここで、メモリ６１は、パケットバッファ３１として動作する。スケジューラ回路６２は、スイッチング部３５として動作する。さらに、クロックは、クロック３４として動作する。なお、インタフェース７０、スイッチ回路３０ａ、３０ｂの一部又は全部がＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のプロセッサを備え、比較部４１、パケット合流部４２、レート監視部４３、補正強度決定部４４、制御部４５、スイッチング部３５等がＣＰＵによって実現されてもかまわない。
【００３０】
＜第１の実施形態＞
図６は、中継装置１０によりパケットが中継される場合の例を示す。ここでは、スイッチ回路３０ａがパケットのスイッチングに使用されていて、スイッチ回路３０ｂは予備とされているものとする。つまり、スイッチ回路３０ａでスイッチングされたパケットがパケット出力部４６から出力されるものとする。
【００３１】
以下の説明では、クロック３４ａの方がクロック３４ｂよりも僅かに周波数が高いものとする。このため、スイッチ回路３０ａはスイッチ回路３０ｂよりも速いクロックで動作し、スイッチ回路３０ｂよりも処理が進むものとする。また、以下の説明や図面では、スイッチ回路３０ａを「ＳＷ＃０」、スイッチ回路３０ｂを「ＳＷ＃１」と表すことがある。
【００３２】
（１）パケット入力部２１は、受信したパケットをシーケンス番号付加部２２に入力する。
【００３３】
（２）シーケンス番号付加部２２は、入力されたパケットに装置内ヘッダ５４を付加する。シーケンス番号付加部２２は、パケット入力部２１から入力されたパケットのクラス情報５３を確認して、入力されたパケットが高優先クラスと低優先クラスのいずれに属しているかを確認する。入力されたパケットが高優先パケットである場合、シーケンス番号付加部２２は、入力されたパケットが高優先クラスのパケットのうちで何番目に入力されたパケットであるかを示すシーケンス番号をシーケンス番号フィールド５５に記録する。一方、入力されたパケットが低優先パケットである場合、シーケンス番号付加部２２は、入力されたパケットが低優先クラスのパケットのうちで何番目に入力されたパケットであるかを示すシーケンス番号をシーケンス番号フィールド５５に記録する。シーケンス番号付加部２２は、シーケンス番号フィールド５５にシーケンス番号を格納したパケットを複製し、スイッチ回路３０ａとスイッチ回路３０ｂに出力する。
【００３４】
（３）スイッチ回路３０ａは、シーケンス番号付加部２２から入力されたパケットのクラス情報５３を確認する。クラス情報５３が高優先クラスを示す情報である場合、スイッチ回路３０ａは、入力されたパケットを高優先パケットバッファ３２ａに格納する。一方、クラス情報５３が低優先クラスを示す情報である場合、スイッチ回路３０ａは、入力されたパケットを低優先パケットバッファ３３ａに格納する。スイッチ回路３０ｂも同様の動作を行う。
【００３５】
図６は、スイッチ回路３０ａと３０ｂに、８番目の高優先パケットが入力されたときの様子を示す。スイッチ回路３０ａは、８番目の高優先パケットを、高優先パケットバッファ３２ａに格納する。また、スイッチ回路３０ｂも、同様に、８番目の高優先パケットを、高優先パケットバッファ３２ｂに格納する。
【００３６】
図６の例では、中継装置１０は、低優先パケットを２２個受信しており、８番目の高優先パケットが高優先パケットバッファ３２ａに格納される前に、スイッチング部３５ａは、２０番目の低優先パケットのスイッチングを行ったものとする。従って、スイッチ回路３０ａの低優先パケットバッファ３３ａには、２１番目と２２番目の低優先パケットが格納されている。一方、８番目の高優先パケットが高優先パケットバッファ３２ｂに格納される前に、スイッチング部３５ｂでは、１７番目の低優先パケットのスイッチングが行われたものとする。従って、スイッチ回路３０ｂの低優先パケットバッファ３３ｂには、１８〜２２番目の低優先パケットが格納されている。
【００３７】
（４）比較部４１は、スイッチ回路３０ａと３０ｂから入力されたパケットのシーケンス番号とクラス情報５３を確認する。比較部４１は、クラスごとに最後に入力されたパケットのシーケンス番号を、クラス情報５３と対応付けて記憶する。図７は、比較部４１が保持するテーブルの例を示す。図７は、手順（３）でスイッチングされたパケットを比較部４１が処理したときのテーブルの例である。比較部４１は、スイッチ回路３０ａ（ＳＷ＃０）から２０番目の低優先パケットが入力されたことを認識する。すると、比較部４１は、低優先クラスに対応付けられたＳＷ＃０の最新のシーケンス番号を図７に示すように、２０に更新する。また、比較部４１は、スイッチ回路３０ｂ（ＳＷ＃１）から１７番目の低優先パケットが入力されたことを認識し、低優先クラスに対応付けられたＳＷ＃１の最新のシーケンス番号を１７に更新する。図７の例では、高優先クラスについては、これまでにスイッチ回路３０ａ、３０ｂのいずれからも、７番目までの高優先パケットのスイッチングが終了している。
【００３８】
（５）比較部４１は、クラスごとに、スイッチ回路３０ａから入力された最新のパケットのシーケンス番号と、スイッチ回路３０ｂから入力された最新のパケットのシーケンス番号の差分を求める。さらに、予め記憶している閾値と差分を比較し、差分が閾値を超えると、閾値を越えていることが確認されたクラスで同期が取れていないと判断する。以下の説明では、比較部４１が記憶している閾値は２であるとする。なお、閾値の値は実装に応じて任意の整数に変更されることがある。
【００３９】
図７の例では、高優先クラスでは、スイッチ回路３０ａから最後に入力されたパケットのシーケンス番号と、スイッチ回路３０ｂから最後に入力されたパケットのシーケンス番号のいずれも７である。従って、高優先クラスについての差分は０である。そこで、比較部４１は、高優先クラスでは、スイッチ回路３０ａと３０ｂの間で同期が取れていると判断する。
【００４０】
一方、低優先クラスでは、スイッチ回路３０ａから最後に入力されたパケットのシーケンス番号が２０で、スイッチ回路３０ｂから最後に入力されたパケットのシーケンス番号は１７である。従って、低優先クラスについての差分は２０−１７＝３であり、閾値を超えている。そこで、比較部４１は、低優先クラスでは、スイッチ回路３０ａと３０ｂの間で同期が取れていないと判断する。
【００４１】
（６）比較部４１は、シーケンス番号の比較が終了したパケットをパケット合流部４２に出力する。例えば、図６では、スイッチ回路３０ａでスイッチングされた１９番目の低優先クラスのパケットが比較部４１から出力されている。また、比較部４１は、スイッチ回路３０ｂでスイッチングされた１６番目の低優先クラスのパケットもパケット合流部４２に出力する。
【００４２】
（７）パケット合流部４２は、比較部４１から出力されたパケットのうち、現用のスイッチ回路３０でスイッチングされたパケットをパケット出力部４６に出力する。比較部４１は、予備のスイッチ回路３０でスイッチングされたパケットを廃棄する。例えば、スイッチ回路３０ａでスイッチングされた１８番目の低優先クラスのパケットと、スイッチ回路３０ｂでスイッチングされた１５番目の低優先クラスのパケットがパケット合流部４２に入力されたとする。ここでは、スイッチ回路３０ａが現用であるので、パケット合流部４２は、スイッチ回路３０ａでスイッチングされた１８番目の低優先クラスのパケットをパケット出力部４６に出力する。パケット出力部４６は、パケット合流部４２から入力されたパケットを宛先に向けて送信する。
【００４３】
（８）次に、中継装置１０で行われる同期の確立について説明する。比較部４１は、手順（５）の処理により、非同期状態となっているクラスがあることを検出している。同期が確立していないクラスは、制御部４５により同期を確立する処理の対象とされるので、以下の説明では、「制御クラス」と記載することがある。比較部４１は、制御クラスを補正強度決定部４４と制御部４５に通知する。さらに比較部４１は、スイッチ回路３０ａと３０ｂのいずれの処理が進んでいるかも制御部４５に通知する。
【００４４】
図７の例では、比較部４１は、低優先クラスのパケットについて、スイッチ回路３０ａとスイッチ回路３０ｂが非同期状態であることを検出している。そこで、比較部４１は、低優先クラスが制御クラスであることを、補正強度決定部４４に通知する。また、比較部４１は、制御部４５に対して、制御クラスが低優先クラスであることと、スイッチ回路３０ａの処理がスイッチ回路３０ｂの処理よりも進んでいることを通知する。なお、以下の説明では、同期を確立しようとする２つのスイッチ回路３０のうちで制御クラスのパケットの処理が進んでいるスイッチ回路３０を「対象スイッチ」と記載することがある。対象スイッチは、後述するように、制御部４５による制御の対象となるスイッチ回路３０である。図７の例では、対象スイッチは、スイッチ回路３０ａである。
【００４５】
（９）補正強度決定部４４は、比較部４１から非同期状態であることが通知されると、制御クラスのデータ量が送受信されている全データに占める割合をレート監視部４３に問い合わせる。レート監視部４３は、パケット合流部４２から一定時間に出力される全てのデータをクラス別に分類し、一定時間に出力されたデータに占める各クラスのデータの割合を求める。このとき、レート監視部４３は、周期的な観測によって得られたデータの割合を用いて、移動平均を求めることができる。以下の説明では、制御クラスのデータの割合の移動平均を、「平均レート」と記載することがある。平均レートを用いることにより、短期間のデータの割合の変動による影響を小さくすることができる。レート監視部４３は、次の式を用いて得られた平均レートを、ｎ番目の平均レートとして補正強度決定部４４に通知することができる。
【００４６】
ｎ番目の平均レート = （ｎ−１）番目の平均レート×Wq + 観測レート×(1 − Wq)
ここで、観測レートは、レート監視部４３が平均レートの計算が行われる前の最後の周期の間に観測して得られたデータの割合である。Ｗｑは重み係数で、０≦Ｗｑ＜１を満たす値である。また、ｎは２以上の任意の整数である。なお、レート監視部４３で行われる計算は、実装に応じて任意に変更されることがある。
【００４７】
（１０）補正強度決定部４４は、制御クラスのデータが送受信されているデータ全体に占める割合に応じて、補正強度を決定する。例えば、制御クラスの受信レートが高い場合、制御クラスよりも優先度が高いクラスのトラヒックは比較的少ない。この場合、図２（ｂ）に示したように、１種類のクラスのパケットがスイッチングされている状態に近く、スイッチ回路３０にかけた補正（バックプレッシャ）の効果が比較的現れやすい状態にある。従って、制御クラスの割合が高い場合、バックプレッシャ時間が短い補正、すなわち、比較的弱い補正でも、効果的に作用する確率が高い。そこで、補正強度決定部４４は、補正強度の値を小さくして、弱い補正を実施することを決定する。
【００４８】
一方、制御クラスの受信レートが低い場合、制御クラスよりも優先度が高いクラスのトラヒックが比較的多く、制御クラスのパケットの処理は優先度が高いパケットの処理により圧迫されている。この場合は、対象スイッチにバックプレッシャがかけられている間に、対象スイッチよりも処理が遅れているスイッチ回路３０において、制御クラスよりも優先度が高いクラスのパケットが処理される可能性が高い。対象スイッチよりも処理が遅れているスイッチ回路３０は、対象スイッチにバックプレッシャがかけられている間に、制御クラスのパケットを処理しないと、制御クラスのパケットの処理が対象スイッチに追いつかない。つまり、対象スイッチにバックプレッシャがかけられている間に、対象スイッチよりも処理が遅れているスイッチが制御クラスのパケットを処理できないと、同期が確立できない。このように、制御クラスのパケットの割合が低い場合は、スイッチ回路３０にかけられた補正が比較的効きにくい状態にあるといえる。そこで、補正強度決定部４４は、制御クラスの割合が低い場合、補正強度の値を大きくして、対象スイッチにバックプレッシャをかける時間を長くする。また、制御クラスよりも優先度の高いクラスのトラフィックが多い場合、補正強度決定部４４は、補正強度の値を大きくしているともいえる。
【００４９】
図８は、補正強度決定部４４が備えるテーブルの例を示す。図８に示すようなテーブルを備えている場合、補正強度決定部４４は、テーブルから補正強度を選択する。例えば、低優先クラスのデータが７５％未満であるとする。この場合、全データの２５％以上が高優先クラスのデータである。そのため、スイッチ回路３０ａにバックプレッシャをかけたときに、スイッチ回路３０ｂで高優先クラスのパケットが処理される可能性がある。そこで、補正強度決定部４４は、スイッチ回路３０ａにバックプレッシャがかけられているときに、スイッチ回路３０ｂで低優先クラスのパケットが処理される可能性を大きくするために、補正強度を強くする。ここでは、補正強度決定部４４は、補正強度を６０％に決定するものとする。補正強度決定部４４は、決定した補正強度を、制御クラスを識別する情報と対にして制御部４５に通知する。
【００５０】
（１１）制御部４５は、手順（８）において、比較部４１から制御クラスが低優先クラスであることと、対象スイッチがスイッチ回路３０ａであることを通知されている。そこで、制御部４５は、補正強度決定部４４から補正強度が通知されると、対象スイッチにおいて、制御クラスのパケットの処理を停止させる時間を求める。すなわち、制御部４５は、
補正強度＝ＯＮタイマの設定時間／（ＯＮタイマの設定時間＋ＯＦＦタイマの設定時間）
を満たすように、ＯＮタイマとＯＦＦタイマの設定時間を決定する。
【００５１】
制御部４５は、ＯＮタイマに設定された時間の間、対象スイッチでの制御クラスのパケットの読み出し処理を停止させる。このため、ＯＮタイマの設定時間の間は、対象スイッチでは制御クラスのパケットのスイッチングが行われない。ＯＮタイマがタイムアウトすると、制御部４５は、ＯＦＦタイマに設定された時間の間、対象スイッチでの制御クラスのパケットの読み出し処理を再開させる。従って、ＯＦＦタイマの設定時間の間は、対象スイッチでも制御クラスのパケットのスイッチングが行われる。制御部４５は、補正強度決定部４４もしくは比較部４１から新たな通知を受け取るまで、決定した設定時間を用いて、対象スイッチで制御クラスのパケットの処理が行われる時間を制限する。ここで、１度の制御で同期が確立できない場合、制御部４５は、対象スイッチでの制御クラスのパケットの読み出しを制限する処理を繰り返す。
【００５２】
例えば、手順（１０）により、補正強度が６０％であることが補正強度決定部４４から通知された場合、制御部４５は、ＯＮタイマの設定時間を６スロット時間、ＯＦＦタイマの設定時間を４スロット時間に決定できる。ここでは、対象スイッチがスイッチ回路３０ａで制御クラスが低優先クラスであるので、制御部４５は、６スロット時間の間、スイッチ回路３０ａでの低優先パケットバッファ３３ａからの読み出し動作を停止させる。その後、制御部４５は、４スロット時間の間、低優先パケットバッファ３３ａからの読み出しを再開させる。
【００５３】
ここで、スイッチング部３５ａが低優先パケットバッファ３３ａから制御クラスのパケットを読み出していない間も、スイッチング部３５ｂでは制御クラスのパケットのスイッチングが行われる。言い換えると、スイッチング部３５ｂは、ＯＮタイマの設定時間とＯＦＦタイマの設定時間の和と同じ時間の間、動作している。従って、スイッチング部３５ｂが動作を行っている時間を基準としたときの、低優先パケットバッファ３３ａからの読み出しが行われる時間の割合は、補正強度に一致する。つまり、制御部４５は、対象スイッチで制御クラスのパケットの読み出しを停止させる時間を、対象スイッチではない方のスイッチ回路３０でスイッチングを行う時間と補正強度の積としているといえる。例えば、補正強度が６０％であれば、対象スイッチではないスイッチ回路３０でスイッチングが行われている時間の６０％の期間、対象スイッチで制御クラスのパケットの読み出しが停止される。従って、対象スイッチでは、対象スイッチではないスイッチ回路３０でスイッチングが行われている時間の６０％の期間、制御クラスのパケットのスイッチングが停止される。
【００５４】
（１２）手順（１１）の処理が行われている間も、比較部４１、パケット合流部４２、レート監視部４３は動作を継続している。従って、手順（１１）の処理が行われている間も、レート監視部４３は、パケットのクラスごとに、中継装置１０が中継するデータ量に占める割合を求め、得られた値を補正強度決定部４４に通知する。補正強度決定部４４は、レート監視部４３から通知された値に応じて補正強度を変更する際、制御部４５に新たな補正強度を通知する。
【００５５】
例えば、制御部４５が手順（１１）の処理を行っている間に、中継装置１０で中継される低優先クラスのデータ量が増加した結果、低優先クラスのデータの割合が８０％になったとする。この場合、手順（１０）で補正強度が決定されたときに比べて低優先クラスのデータの割合が大きくなっているため、補正強度を変更しないと補正が強すぎてスイッチ回路３０ａの処理がスイッチ回路３０ｂよりも遅れる恐れがある。そこで、補正強度決定部４４は、図８に示すテーブルを用いて、補正強度を２０％に変更する。補正強度決定部４４は、変更後の補正強度を、制御クラスと対にして制御部４５に通知する。
【００５６】
（１３）制御部４５は、補正強度決定部４４から補正強度の通知を受けると、手順（１１）と同様の計算により、ＯＮタイマとＯＦＦタイマの設定時間を決定する。ここでは、制御部４５は、ＯＮタイマの設定時間を２スロット時間、ＯＦＦタイマの設定時間を８スロット時間に決定したものとする。設定時間を決定すると、制御部４５は次回のバックプレッシャから、ＯＮタイマとＯＦＦタイマの設定時間を変更する。すなわち、制御部４５は、２スロット時間の間、低優先パケットバッファ３３ａからの読み出しを停止させた後、８スロット時間の間、低優先パケットバッファ３３ａからの読み出しを再開させる。
【００５７】
（１４）手順（１１）〜（１３）の処理が行われている間も、比較部４１は、スイッチ回路３０ａと３０ｂの各々から出力されたパケットに付されたシーケンス番号をクラスごとに比較する。同期が確立したことを確認すると、比較部４１は、同期が確立したことと、同期が確立したクラスを制御部４５と補正強度決定部４４に通知する。制御部４５は、比較部４１からの通知を受けると、同期が確立したことを通知されたクラスについての処理を終了する。一方、補正強度決定部４４は、比較部４１から通知を受けると、同期が確立されたことが通知されたクラスの処理に用いる補正強度の決定を中止する。
【００５８】
例えば、低優先パケットバッファ３３ａから出力されたパケットのシーケンス番号と、低優先パケットバッファ３３ｂから出力されたパケットのシーケンス番号の差分が閾値よりも小さいことを比較部４１が検出したとする。この場合、比較部４１は、スイッチ回路３０ａと３０ｂの間で、低優先クラスのパケットの処理について同期がとれていると判断する。そこで、比較部４１は、補正強度決定部４４と制御部４５に、低優先クラスのパケットの処理についてはスイッチ回路３０ａと３０ｂの間で同期が確立したことを通知する。すると、制御部４５は、低優先パケットバッファ３３ａからの読み出しを制限する処理を終了する。また、補正強度決定部４４は、低優先クラスのパケットの処理に用いる補正強度の計算を終了する。
【００５９】
（１５）比較部４１は、手順（１４）が終了した後も、スイッチ回路３０ａと３０ｂから出力されるパケットのシーケンス番号をクラスごとに比較し、スイッチ回路３０ａと３０ｂで同期が取れているかを監視し続ける。スイッチ回路３０ａと３０ｂで同期が取れなくなると、手順（５）以降で説明した処理が繰り返される。
【００６０】
以上の手順により、クロック３４ａと３４ｂの周波数が異なる場合に、非同期となったスイッチ回路３０ａと３０ｂの間で同期が確立される。スイッチ回路３０ａと３０ｂは動作する周波数が異なるので、同期を確立しても、再度、非同期となることがあるが、非同期であることが比較部４１で検出されるたびに、同期が確立される。なお、前述の（１）〜（１５）は処理の例であり、手順は様々に変形されることがある。
【００６１】
図９は、同期の確立のための処理の例を示すシーケンス図である。図９中の数字は、前述の手順の番号である。図９に示すように、比較部４１で非同期が検出される前から、レート監視部４３が定期的に各クラスの平均レートを、補正強度決定部４４に通知することもできる。この場合、比較部４１から非同期であることが通知されると、補正強度決定部４４は制御クラスについて、最後にレート監視部４３から通知されたレートを用いて補正強度を決定することができる。補正強度決定部４４は、補正強度を決定すると、制御部４５に補正強度を通知し、前述の（１１）のように制御が行われる。図９において、期間Ａ〜Ｄの間は、低優先パケットバッファ３３ａからの読み出し処理が停止される。このため、期間Ａ〜Ｄの間は、低優先パケットバッファ３３ｂに蓄積されたパケットがスイッチングされる可能性があるが、低優先パケットバッファ３３ａに蓄積されたパケットはスイッチングされない。そこで、低優先パケットバッファ３３ｂに蓄積されたパケットのシーケンス番号の最小値と、低優先パケットバッファ３３ａに蓄積されたパケットのシーケンス番号の最小値の差分は小さくなる可能性がある。このシーケンス番号の差分が比較部４１に記憶されている閾値よりも小さくなると、比較部４１により、スイッチ回路３０ａと３０ｂで同期が確立されたと判定される。すると、手順（１４）に対応付けて示す矢印のように、同期が確立したことが、比較部４１から、補正強度決定部４４および制御部４５に通知される。
【００６２】
また、平均レートに応じて、補正強度決定部４４が補正強度を変更すると、（１２）の矢印で示すように、新たな補正強度が制御部４５に通知される。制御部４５は、最新の補正強度を用いて、ＯＮタイマとＯＦＦタイマに設定する時間を求め、（１３）の矢印で示すように制御を行う。
【００６３】
図１０は、比較部４１の処理の例を説明するフローチャートである。図１０の例では、比較部４１は、クラス別に、前回の判定結果を記憶しているものとする。すなわち、前回の処理で同期が確立していると判定された場合、比較部４１は判定を行ったクラスについて同期状態であることを記憶する。一方、前回の処理で同期が確立していないと判定された場合、比較部４１は判定を行ったクラスについて非同期状態であることを記憶する。なお、初めて判定を行う場合、比較部４１は、前回の判定結果が同期状態である場合と同様に扱うものとする。また、比較部４１は、同期が確立しているかを判定する閾値Ｔｈ１と、非同期が解消されたかを判定する閾値Ｔｈ２の２つの閾値を用いるものとする。閾値Ｔｈ１は、閾値Ｔｈ２よりも１つ大きい整数である。
【００６４】
比較部４１は、シーケンス番号の差分を求めるクラスを決定し、そのクラスについて、前回の判定結果が同期状態と非同期状態のいずれであったかを判定する（ステップＳ１）。前回の判定結果が非同期状態であった場合、比較部４１は、シーケンス番号の差分を求めて、閾値Ｔｈ２と比較する（ステップＳ１でＹｅｓ、ステップＳ２）。シーケンス番号の差分が閾値Ｔｈ２以下であれば、比較部４１は、制御部４５の処理により、スイッチ回路３０ａと３０ｂの間で同期が確立されたと判断する（ステップＳ２でＹｅｓ）。そこで、比較部４１は、制御部４５と補正強度決定部４４に、制御クラスについて同期が確立したこと（非同期解除）を通知する。さらに、比較部４１は、今回の判定結果が同期状態であることを記憶して処理を終了する（ステップＳ３）。一方、シーケンス番号の差分が閾値Ｔｈ２より大きい場合、比較部４１は、制御クラスの非同期状態が継続していると判断し、ステップＳ３の処理を行わずに処理を終了する（ステップＳ２でＮｏ）。
【００６５】
一方、前回の判定結果が同期状態であった場合か、初めてシーケンス番号の差分を算出する場合、比較部４１は、シーケンス番号の差分を閾値Ｔｈ１と比較する（ステップＳ１でＮｏ、ステップＳ４）。シーケンス番号の差分が閾値Ｔｈ１以上であれば、比較部４１は、判定を行っているクラスのパケットについて、スイッチ回路３０ａと３０ｂの間で同期が取れなくなったと判断する（ステップＳ４でＹｅｓ）。そこで、比較部４１は、制御部４５と補正強度決定部４４に、スイッチ回路３０の間の同期が取れていないこと（非同期検出）を通知する。さらに、比較部４１は、今回の判定結果が非同期状態であることを記憶して処理を終了する（ステップＳ５）。一方、シーケンス番号の差分が閾値Ｔｈ１より小さい場合、比較部４１は、同期状態が継続していると判断し、ステップＳ５の処理を行わずに処理を終了する（ステップＳ４でＮｏ）。
【００６６】
図１１は、制御部４５の処理の例を説明するフローチャートである。なお、制御部４５もクラスごとに処理を行う。制御部４５は、処理対象のクラスについて、比較部４１から非同期状態であることと、対象スイッチを通知されたかを確認する（ステップＳ１１）。非同期状態である場合、制御部４５は、補正強度決定部４４から通知された補正強度に基づいてＯＮタイマの設定値を計算し、ＯＮタイマを設定する（ステップＳ１２）。さらに、制御部４５は、対象スイッチにバックプレッシャをかけることにより、対象スイッチでの制御クラスのパケットの読み出し処理を停止させる（ステップＳ１３）。制御部４５は、ＯＮタイマがタイムアップするまでの間に、比較部４１から非同期解除を受信するかを確認する（ステップＳ１４でＮｏ、ステップＳ１５）。非同期解除を受信していない場合、ＯＮタイマがタイムアップするまで待機する（ステップＳ１５でＮｏ）。ＯＮタイマがタイムアップすると、制御部４５は、補正強度決定部４４から通知された補正強度に基づいてＯＦＦタイマの設定値を計算し、ＯＦＦタイマを設定する（ステップＳ１４でＹｅｓ、ステップＳ１６）。さらに、制御部４５は、対象スイッチにかけられていたバックプレッシャを解除することにより、対象スイッチでの制御クラスのパケットの読み出し処理を再開させる（ステップＳ１７）。制御部４５は、ＯＦＦタイマがタイムアップするまでの間に、比較部４１から非同期解除を受信するかを確認する（ステップＳ１８でＮｏ、ステップＳ１９）。非同期解除を受信していない場合、ＯＦＦタイマがタイムアップするまで待機する（ステップＳ１９でＮｏ）。ＯＦＦタイマがタイムアップすると、制御部４５は、ステップＳ１１に戻って、非同期状態が継続しているかを確認する（ステップＳ１８でＹｅｓ、ステップＳ１１）。非同期状態の解除が比較部４１から通知されていない場合、制御部４５は非同期状態が継続していると判断し、ステップＳ１２〜Ｓ１９の処理を繰り返す。
【００６７】
ＯＮタイマがタイムアップする前に制御部４５が非同期解除を受信した場合は、制御部４５での処理中に同期が確立されている（ステップＳ１５でＹｅｓ）。また、ＯＦＦタイマがタイムアップする前に制御部４５が非同期解除を受信した場合も、制御部４５での処理中に同期が確立されている（ステップＳ１９でＹｅｓ）。このように、制御部４５の処理中に同期が確立されると、制御部４５は、ＯＮタイマがセット中であるかを確認する（ステップＳ２０）。ＯＮタイマがセット中である場合、制御部４５は、ＯＮタイマをリセットし、対象スイッチにかけられていたバックプレッシャを解除する（ステップＳ２０でＹｅｓ、ステップＳ２１、Ｓ２２）。ステップＳ２２の処理により、制御部４５は、対象スイッチでの制御クラスのパケットの読み出し処理を再開させる。一方、ＯＮタイマがセット中ではない場合、制御部４５は、ＯＦＦタイマをリセットしてステップＳ１１に戻る（ステップＳ２０でＮｏ、ステップＳ２３）。
【００６８】
一方、比較部４１から非同期状態であることを一度も通知されたことが無いときと、同期が確立されたことが通知された後に非同期状態であることを通知されていないときは、制御部４５は非同期状態ではないと判断する（ステップＳ１１でＮｏ）。すると、制御部４５は、ステップＳ２０〜Ｓ２３の処理を行う。
【００６９】
このように、中継装置１０は、パケットのクラス別に、中継されているデータ量を算出し、平均レートに応じた補正強度を用いてバックプレッシャをかける。このため、中継装置１０は、複数のクラスのうちの優先度の低いクラスのスイッチングが同期されていない場合であっても、効率的に同期を確立することができる。従って、中継装置１０において、障害等が発生したときに瞬断しないようにスイッチ回路３０を切り替えた場合でも、中継先でのパケットの欠落や重複を防ぐことができる。
【００７０】
＜第２の実施形態＞
第２の実施形態では、補正強度の決定に、シーケンス番号の差分の大きさを用いる。比較部４１は、同期が取れていないことを補正強度決定部４４に通知する際に、制御クラスとシーケンス番号の差分を通知する。補正強度決定部４４は、制御クラスのデータの平均レートと、シーケンス番号の差分の大きさを用いて補正強度を決定する。
【００７１】
補正強度決定部４４は、シーケンス番号の差分が大きいほど、補正強度が強くなるように、補正強度を決定する。また、補正強度決定部４４は、中継されているデータの量に対する制御クラスのデータの割合が小さいほど、補正強度が大きくなるように、補正強度を決定する。
【００７２】
図１２は、第２の実施形態で補正強度決定部４４が備えるテーブルの例を示す。図１２はテーブルの一例であり、補正強度を決定する際に閾値として用いる差分値の大きさや、制御クラスのレートの値は、実装に応じて任意に変更されることがある。
【００７３】
次に、図１２に示すテーブルを用いて補正強度決定部４４が補正強度を決定する方法について述べる。補正強度決定部４４は、比較部４１から通知されたシーケンス番号の差分に対応する欄に記録されている値を補正強度の候補とする。さらに、補正強度決定部４４は、レート監視部４３に制御クラスの平均レートを問い合わせる。補正強度決定部４４は、補正強度の候補とした値から、レート監視部４３によって通知された平均レートに対応付けられた補正強度を、制御に用いる値に決定する。例えば、制御クラスが低優先クラスであって、シーケンス番号の差分が３であると、補正強度決定部４４は、図１２のテーブルを参照し、シーケンス番号番号の差分が６以下の場合の補正強度を候補とする。すなわち、補正強度決定部４４は、補正強度を１０％補正か５０％補正にする可能性が有ると認識する。次に、レート監視部４３から低優先クラスのデータが中継されているデータ全体の８０％であることが通知されると、補正強度決定部４４は補正強度を１０％に決定する。
【００７４】
すなわち、補正強度決定部４４は、シーケンス番号の差分と、制御クラスのデータが占める割合をキーとして特定できた値を、補正強度に決定する。補正強度決定部４４は、決定した補正強度を制御部４５に通知する。その後に行われる処理は、第１の実施形態と同様である。
【００７５】
図１３は、第２の実施形態での比較部の処理の例を説明するフローチャートである。ステップＳ３１〜Ｓ３５は、図１０を参照しながら説明したステップＳ１〜Ｓ５と同様である。比較部４１は、ステップＳ３３の処理が終わった後に、シーケンス番号の差分を補正強度決定部４４に通知する（ステップＳ３６）。ステップＳ３５の処理が行われた後もステップＳ３６の処理が行われる。また、ステップＳ３２でシーケンス番号の差分が閾値Ｔｈ２以下であると判定された場合と、ステップＳ３２でシーケンス番号の差分が閾値Ｔｈ１以上であると判定された場合も、比較部４１は、補正強度決定部４４にシーケンス番号の差分を通知する。
【００７６】
なお、図１３は、比較部４１の動作の一例である。例えば、同期が確立されたことを比較部４１が確認した場合、比較部４１は、シーケンス番号の差分を補正強度決定部４４に通知しなくても良い。この場合、ステップＳ３３の処理が終わった後では、比較部４１は、シーケンス番号の差分を補正強度決定部４４に通知しない。また、ステップＳ３４でシーケンス番号の差分が閾値Ｔｈ１未満である（ステップＳ３４でＮｏ）と判定された場合も、比較部４１は、シーケンス番号の差分を補正強度決定部４４に通知しない。
【００７７】
このように、制御クラスのデータの割合に加えて、シーケンス番号の差分を用いて補正強度を決定することにより、補正強度を第１の実施形態よりも詳細に設定することができる。従って、第１の実施形態で設定される補正強度よりも適切な補正強度により、同期の再確立を開始でき、迅速に同期を確立することができる。
【００７８】
＜その他＞
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【００７９】
図８や図１２は、補正強度決定部４４が備えるテーブルの例であり、補正強度を決定する際に閾値として用いられる数値は、実装に応じて任意に変更されることがある。また、図８と図１２では、一例として、各パラメータについて１つの閾値を用いて補正強度を決定したが、１つのパラメータについて複数の閾値を用いることもできる。例えば、制御クラスのデータの割合について、５０％、７５％、９０％の３つを閾値として用い、
制御クラスのデータの割合が５０％未満            ：７０％補正
制御クラスのデータの割合が５０％以上で７５％未満：４０％補正
制御クラスのデータの割合が７５％以上で９０％未満：２０％補正
制御クラスのデータの割合が９０％以上            ：１０％補正
等のように、補正強度を決定することもできる。シーケンス番号の差分についても、同様に、複数の閾値に応じて補正強度を決定することもできる。
【００８０】
また、補正強度は、経験則に基づいて決定された計算式により求められることもある。この場合、補正強度決定部４４は、予め、計算式を記憶しているものとする。
【００８１】
比較部４１でスイッチ回路３０ａから出力されたパケットとスイッチ回路３０ｂから出力されたパケットが混合されるように変形することもできる。この場合、各スイッチ回路３０は、スイッチングの際に、装置内ヘッダ５４にスイッチングしたスイッチ回路３０を特定する情報を書き込むことができる。パケット合流部４２は、予備のスイッチ回路３０でスイッチングされたパケットを、装置内ヘッダ５４を用いて特定した上で削除する。
【００８２】
なお、優先度が最も高いクラスのパケットで、スイッチ回路３０ａと３０ｂが非同期状態になる場合は、制御クラスのデータが中継されているデータに占める割合はほぼ１００％である。従って、優先度が最も高いクラスが制御クラスとなった場合は、制御クラスのデータの割合によらずに、シーケンス番号の差分によって補正強度を決定するように、補正強度決定部４４の動作が変形される場合がある。
【００８３】
さらに、以上の説明では、ＯＮタイマとＯＦＦタイマの設定は、スロット時間の倍数として設定する場合を例としたが、これらのタイマへの設定の最小単位は、実装に応じて任意に選択される。例えば、制御部４５は、補正強度が１０％のときに、ＯＮタイマに１μＳ、ＯＦＦタイマに９μＳを設定することもできる。
【００８４】
以上の説明では、レート監視部４３は、所定の時間に中継されるデータ量に占める各クラスのデータ量の割合を算出し、補正強度決定部４４は、データ量の割合を用いて補正強度を求めているが、これは一例である。輻輳が発生した状況においては、パケット合流部４２からパケット出力部４６に出力されるデータ量は、最大量になっている。従って、輻輳が起こっている場合に、高優先クラスのパケットにより送受信されるデータの割合が大きいことは、高優先クラスのパケットにより送受信されるデータ量が多いことを意味する。従って、補正強度決定部４４は、高優先クラスのパケットにより送受信されるデータ量に応じて、補正強度を決定することができる。すなわち、高優先クラスのパケットにより送受信されるデータ量が多いほど、補正強度が大きくなる。なお、この場合、レート監視部４３は、各クラスのパケットにより送受信されるデータ量を計測して補正強度決定部４４に通知する。
【００８５】
さらに、輻輳が起こっている場合に、高優先クラスのパケットにより送受信されるデータの割合が大きいことは、一定時間に高優先クラスのパケットにより送受信されるデータ量（転送レート）が多いことを意味する。従って、補正強度決定部４４は、高優先クラスのパケットの転送レートに応じて、補正強度を決定することもできる。すなわち、高優先クラスのパケットの転送レートが高いほど、補正強度が大きくなる。なお、この場合、レート監視部４３は、クラスごとに転送レートを計測して補正強度決定部４４に通知する。
【符号の説明】
【００８６】
１、１０  中継装置
２  管理モジュール
３  インタフェースカード
４  スイッチ回路
２０  入力部
２１  パケット入力部
２２  シーケンス番号付加部
３０  スイッチ回路
３１  パケットバッファ
３２  高優先パケットバッファ
３３  低優先パケットバッファ
３４  クロック
３５  スイッチング部
４０  出力部
４１  比較部
４２  パケット合流部
４３  レート監視部
４４  補正強度決定部
４５  制御部
４６  パケット出力部
５１  パケットペイロード
５２  パケットヘッダ
５３  クラス情報
５４  装置内ヘッダ
５５  シーケンス番号フィールド
６１  メモリ
６２  スケジューラ回路
７０  インタフェース
７１  制御回路
７２  ネットワーク接続装置
【図１】
0005754328.tif 000002
【図２】
0005754328.tif 000003
【図３】
0005754328.tif 000004
【図４】
0005754328.tif 000005
【図５】
0005754328.tif 000006
【図６】
0005754328.tif 000007
【図７】
0005754328.tif 000008
【図８】
0005754328.tif 000009
【図９】
0005754328.tif 000010
【図１０】
0005754328.tif 000011
【図１１】
0005754328.tif 000012
【図１２】
0005754328.tif 000013
【図１３】
0005754328.tif 000014